diff --git a/.mockery.yaml b/.mockery.yaml
index 3240af8d2..e73c1de56 100644
--- a/.mockery.yaml
+++ b/.mockery.yaml
@@ -237,9 +237,11 @@ packages:
github.com/anyproto/anytype-heart/core/identity:
interfaces:
Service:
- github.com/anyproto/anytype-heart/pb/service:
+ github.com/anyproto/anytype-heart/core/api/apicore:
interfaces:
- ClientCommandsServer:
+ AccountService:
+ ExportService:
+ ClientCommands:
github.com/anyproto/anytype-heart/core/block/template:
interfaces:
Service:
diff --git a/.run/Run.run.xml b/.run/Run.run.xml
index a869cfa61..15eb9ad4b 100644
--- a/.run/Run.run.xml
+++ b/.run/Run.run.xml
@@ -9,6 +9,7 @@
+
diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go
index 495339922..2f10a678c 100644
--- a/clientlibrary/service/service.pb.go
+++ b/clientlibrary/service/service.pb.go
@@ -25,366 +25,365 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) }
var fileDescriptor_93a29dc403579097 = []byte{
- // 5733 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x1d, 0x49,
- 0x56, 0xc0, 0xc7, 0x2f, 0x0c, 0xf4, 0xb2, 0x03, 0xdc, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99,
- 0xc4, 0x4e, 0xe2, 0xf8, 0x3a, 0x93, 0xcc, 0x3f, 0x76, 0x91, 0xe0, 0xc6, 0x8e, 0x3d, 0x77, 0xc7,
- 0x76, 0x8c, 0xef, 0x75, 0x22, 0x46, 0x42, 0xa2, 0x7d, 0xbb, 0x7c, 0xdd, 0xb8, 0x6f, 0x57, 0x6f,
- 0x77, 0x5d, 0x27, 0x77, 0x11, 0x08, 0x04, 0x02, 0x81, 0x16, 0xb1, 0xe2, 0x9f, 0xe0, 0x09, 0x89,
- 0x4f, 0xc0, 0xc7, 0xe0, 0x71, 0x1f, 0x79, 0x44, 0x33, 0xdf, 0x03, 0xa1, 0xae, 0xaa, 0xae, 0x3f,
- 0xa7, 0xcf, 0xa9, 0x6e, 0xcf, 0x3e, 0x25, 0xf2, 0xf9, 0x9d, 0x73, 0xaa, 0xba, 0x4e, 0x55, 0x9d,
- 0xaa, 0xae, 0xae, 0x1b, 0xdd, 0x2c, 0xce, 0xb6, 0x8b, 0x92, 0x0b, 0x5e, 0x6d, 0x57, 0xac, 0xbc,
- 0x4a, 0x67, 0xac, 0xf9, 0x77, 0x28, 0xff, 0x3c, 0x78, 0x33, 0xce, 0x57, 0x62, 0x55, 0xb0, 0xf7,
- 0xde, 0xb5, 0xe4, 0x8c, 0x2f, 0x16, 0x71, 0x9e, 0x54, 0x0a, 0x79, 0xef, 0x1d, 0x2b, 0x61, 0x57,
- 0x2c, 0x17, 0xfa, 0xef, 0x8f, 0x7f, 0xf2, 0x7f, 0x6b, 0xd1, 0x5b, 0x3b, 0x59, 0xca, 0x72, 0xb1,
- 0xa3, 0x35, 0x06, 0x5f, 0x46, 0xdf, 0x1e, 0x15, 0xc5, 0x3e, 0x13, 0x2f, 0x58, 0x59, 0xa5, 0x3c,
- 0x1f, 0x7c, 0x30, 0xd4, 0x0e, 0x86, 0x27, 0xc5, 0x6c, 0x38, 0x2a, 0x8a, 0xa1, 0x15, 0x0e, 0x4f,
- 0xd8, 0x8f, 0x96, 0xac, 0x12, 0xef, 0xdd, 0x09, 0x43, 0x55, 0xc1, 0xf3, 0x8a, 0x0d, 0xce, 0xa3,
- 0x5f, 0x1b, 0x15, 0xc5, 0x84, 0x89, 0x5d, 0x56, 0x57, 0x60, 0x22, 0x62, 0xc1, 0x06, 0x1b, 0x2d,
- 0x55, 0x1f, 0x30, 0x3e, 0xee, 0x75, 0x83, 0xda, 0xcf, 0x34, 0xfa, 0x56, 0xed, 0xe7, 0x62, 0x29,
- 0x12, 0xfe, 0x2a, 0x1f, 0xbc, 0xdf, 0x56, 0xd4, 0x22, 0x63, 0xfb, 0x76, 0x08, 0xd1, 0x56, 0x5f,
- 0x46, 0xbf, 0xfc, 0x32, 0xce, 0x32, 0x26, 0x76, 0x4a, 0x56, 0x17, 0xdc, 0xd7, 0x51, 0xa2, 0xa1,
- 0x92, 0x19, 0xbb, 0x1f, 0x04, 0x19, 0x6d, 0xf8, 0xcb, 0xe8, 0xdb, 0x4a, 0x72, 0xc2, 0x66, 0xfc,
- 0x8a, 0x95, 0x03, 0x54, 0x4b, 0x0b, 0x89, 0x47, 0xde, 0x82, 0xa0, 0xed, 0x1d, 0x9e, 0x5f, 0xb1,
- 0x52, 0xe0, 0xb6, 0xb5, 0x30, 0x6c, 0xdb, 0x42, 0xda, 0xf6, 0xdf, 0xae, 0x45, 0xdf, 0x1d, 0xcd,
- 0x66, 0x7c, 0x99, 0x8b, 0x03, 0x3e, 0x8b, 0xb3, 0x83, 0x34, 0xbf, 0x3c, 0x62, 0xaf, 0x76, 0x2e,
- 0x6a, 0x3e, 0x9f, 0xb3, 0xc1, 0x13, 0xff, 0xa9, 0x2a, 0x74, 0x68, 0xd8, 0xa1, 0x0b, 0x1b, 0xdf,
- 0x1f, 0x5d, 0x4f, 0x49, 0x97, 0xe5, 0x1f, 0xd6, 0xa2, 0x1b, 0xb0, 0x2c, 0x13, 0x9e, 0x5d, 0x31,
- 0x5b, 0x9a, 0x8f, 0x3b, 0x0c, 0xfb, 0xb8, 0x29, 0xcf, 0x27, 0xd7, 0x55, 0xd3, 0x25, 0xca, 0xa2,
- 0xb7, 0xdd, 0x70, 0x99, 0xb0, 0x4a, 0x76, 0xa7, 0xfb, 0x74, 0x44, 0x68, 0xc4, 0x78, 0x7e, 0xd0,
- 0x07, 0xd5, 0xde, 0xd2, 0x68, 0xa0, 0xbd, 0x65, 0xbc, 0x32, 0xce, 0xee, 0xa1, 0x16, 0x1c, 0xc2,
- 0xf8, 0xba, 0xdf, 0x83, 0xd4, 0xae, 0xfe, 0x28, 0xfa, 0x95, 0x97, 0xbc, 0xbc, 0xac, 0x8a, 0x78,
- 0xc6, 0x74, 0x57, 0xb8, 0xeb, 0x6b, 0x37, 0x52, 0xd8, 0x1b, 0xd6, 0xbb, 0x30, 0x27, 0x68, 0x1b,
- 0xe1, 0xf3, 0x82, 0xc1, 0x31, 0xc8, 0x2a, 0xd6, 0x42, 0x2a, 0x68, 0x21, 0xa4, 0x6d, 0x5f, 0x46,
- 0x03, 0x6b, 0xfb, 0xec, 0x8f, 0xd9, 0x4c, 0x8c, 0x92, 0x04, 0xb6, 0x8a, 0xd5, 0x95, 0xc4, 0x70,
- 0x94, 0x24, 0x54, 0xab, 0xe0, 0xa8, 0x76, 0xf6, 0x2a, 0x7a, 0x07, 0x38, 0x3b, 0x48, 0x2b, 0xe9,
- 0x70, 0x2b, 0x6c, 0x45, 0x63, 0xc6, 0xe9, 0xb0, 0x2f, 0xae, 0x1d, 0xff, 0xf9, 0x5a, 0xf4, 0x1d,
- 0xc4, 0xf3, 0x09, 0x5b, 0xf0, 0x2b, 0x36, 0x78, 0xd4, 0x6d, 0x4d, 0x91, 0xc6, 0xff, 0x87, 0xd7,
- 0xd0, 0x40, 0xc2, 0x64, 0xc2, 0x32, 0x36, 0x13, 0x64, 0x98, 0x28, 0x71, 0x67, 0x98, 0x18, 0xcc,
- 0xe9, 0x61, 0x8d, 0x70, 0x9f, 0x89, 0x9d, 0x65, 0x59, 0xb2, 0x5c, 0x90, 0x6d, 0x69, 0x91, 0xce,
- 0xb6, 0xf4, 0x50, 0xa4, 0x3e, 0xfb, 0x4c, 0x8c, 0xb2, 0x8c, 0xac, 0x8f, 0x12, 0x77, 0xd6, 0xc7,
- 0x60, 0xda, 0xc3, 0x2c, 0xfa, 0x55, 0xe7, 0x89, 0x89, 0x71, 0x7e, 0xce, 0x07, 0xf4, 0xb3, 0x90,
- 0x72, 0xe3, 0x63, 0xa3, 0x93, 0x43, 0xaa, 0xf1, 0xec, 0x75, 0xc1, 0x4b, 0xba, 0x59, 0x94, 0xb8,
- 0xb3, 0x1a, 0x06, 0xd3, 0x1e, 0xfe, 0x30, 0x7a, 0x4b, 0x8f, 0x92, 0xcd, 0x7c, 0x76, 0x07, 0x1d,
- 0x42, 0xe1, 0x84, 0x76, 0xb7, 0x83, 0x6a, 0x99, 0x3f, 0x4c, 0xe7, 0x65, 0x3d, 0xfa, 0xe0, 0xe6,
- 0xb5, 0xb4, 0xc3, 0xbc, 0xa5, 0xb4, 0x79, 0x1e, 0xfd, 0xba, 0x6f, 0x7e, 0x27, 0xce, 0x67, 0x2c,
- 0x1b, 0x3c, 0x08, 0xa9, 0x2b, 0xc6, 0xb8, 0xda, 0xec, 0xc5, 0xda, 0xc1, 0x4e, 0x13, 0x7a, 0x30,
- 0xfd, 0x00, 0xd5, 0x06, 0x43, 0xe9, 0x9d, 0x30, 0xd4, 0xb2, 0xbd, 0xcb, 0x32, 0x46, 0xda, 0x56,
- 0xc2, 0x0e, 0xdb, 0x06, 0xd2, 0xb6, 0xcb, 0xe8, 0x37, 0x4c, 0x33, 0xd7, 0x79, 0x81, 0x94, 0xd7,
- 0x93, 0xce, 0x26, 0xd1, 0x8e, 0x2e, 0x64, 0x7c, 0x3d, 0xec, 0x07, 0xb7, 0xea, 0xa3, 0x47, 0x14,
- 0xbc, 0x3e, 0x60, 0x3c, 0xb9, 0x13, 0x86, 0xb4, 0xed, 0xbf, 0x5b, 0x8b, 0xbe, 0xa7, 0x65, 0xcf,
- 0xf2, 0xf8, 0x2c, 0x63, 0x72, 0x8a, 0x3f, 0x62, 0xe2, 0x15, 0x2f, 0x2f, 0x27, 0xab, 0x7c, 0x46,
- 0xa4, 0x33, 0x38, 0xdc, 0x91, 0xce, 0x90, 0x4a, 0xba, 0x30, 0x7f, 0x12, 0xbd, 0xdb, 0x04, 0xc5,
- 0x45, 0x9c, 0xcf, 0xd9, 0x0f, 0x2b, 0x9e, 0x8f, 0x8a, 0x74, 0x94, 0x24, 0xe5, 0x60, 0x88, 0x37,
- 0x3d, 0xe4, 0x4c, 0x09, 0xb6, 0x7b, 0xf3, 0x4e, 0xfa, 0xac, 0x9f, 0xb2, 0xe0, 0x05, 0x4c, 0x9f,
- 0x9b, 0xc7, 0x27, 0x78, 0x41, 0xa5, 0xcf, 0x3e, 0xd2, 0xb2, 0x7a, 0x58, 0xcf, 0x41, 0xb8, 0xd5,
- 0x43, 0x77, 0xd2, 0xb9, 0x1d, 0x42, 0xec, 0x1c, 0xd0, 0x3c, 0x28, 0x9e, 0x9f, 0xa7, 0xf3, 0xd3,
- 0x22, 0xa9, 0xfb, 0xd0, 0x7d, 0xbc, 0xce, 0x0e, 0x42, 0xcc, 0x01, 0x04, 0xaa, 0xbd, 0xfd, 0xbd,
- 0xcd, 0x32, 0xf5, 0xb8, 0xb4, 0x57, 0xf2, 0xc5, 0x01, 0x9b, 0xc7, 0xb3, 0x95, 0x1e, 0x4c, 0x3f,
- 0x0a, 0x8d, 0x62, 0x90, 0x36, 0x85, 0xf8, 0xf8, 0x9a, 0x5a, 0xba, 0x3c, 0xff, 0xb1, 0x16, 0xdd,
- 0xf1, 0xe2, 0x44, 0x07, 0x93, 0x2a, 0xfd, 0x28, 0x4f, 0x4e, 0x58, 0x25, 0xe2, 0x52, 0x0c, 0xbe,
- 0x1f, 0x88, 0x01, 0x42, 0xc7, 0x94, 0xed, 0x07, 0xdf, 0x48, 0xd7, 0xb6, 0xfa, 0xa4, 0x9e, 0x25,
- 0xf4, 0xf8, 0xe3, 0xb7, 0xba, 0x94, 0xc0, 0xd1, 0xe7, 0x76, 0x08, 0xb1, 0xad, 0x2e, 0x05, 0xe3,
- 0xfc, 0x2a, 0x15, 0x6c, 0x9f, 0xe5, 0xac, 0x6c, 0xb7, 0xba, 0x52, 0xf5, 0x11, 0xa2, 0xd5, 0x09,
- 0xd4, 0x8e, 0x74, 0x9e, 0x37, 0x93, 0x69, 0x6c, 0x06, 0x8c, 0xb4, 0x72, 0x8d, 0x87, 0xfd, 0x60,
- 0xa2, 0x86, 0x62, 0xbf, 0x36, 0x12, 0xac, 0xa1, 0x42, 0x7a, 0xd5, 0xd0, 0xa0, 0x76, 0x61, 0xee,
- 0x78, 0x3b, 0x61, 0x57, 0xfc, 0x12, 0x2e, 0xcc, 0x5d, 0x03, 0x0a, 0x20, 0x16, 0xe6, 0x28, 0x68,
- 0x93, 0x0f, 0xc7, 0xcf, 0x8b, 0x94, 0xbd, 0x02, 0xc9, 0x87, 0xab, 0x5c, 0x8b, 0x89, 0xe4, 0x03,
- 0xc1, 0xb4, 0x87, 0xa3, 0xe8, 0x97, 0xa4, 0xf0, 0x87, 0x3c, 0xcd, 0x07, 0x37, 0x11, 0xa5, 0x5a,
- 0x60, 0xac, 0xde, 0xa2, 0x01, 0x50, 0xe2, 0xfa, 0xaf, 0x3a, 0x13, 0xb8, 0x4b, 0x28, 0x81, 0x24,
- 0x60, 0xbd, 0x0b, 0xb3, 0x59, 0x9f, 0x14, 0xd6, 0xa3, 0xe5, 0xe4, 0x22, 0x2e, 0xd3, 0x7c, 0x3e,
- 0xc0, 0x74, 0x1d, 0x39, 0x91, 0xf5, 0x61, 0x1c, 0x08, 0x27, 0xad, 0x38, 0x2a, 0x8a, 0xb2, 0x1e,
- 0x84, 0xb1, 0x70, 0xf2, 0x91, 0x60, 0x38, 0xb5, 0x50, 0xdc, 0xdb, 0x2e, 0x9b, 0x65, 0x69, 0x1e,
- 0xf4, 0xa6, 0x91, 0x3e, 0xde, 0x2c, 0x0a, 0x82, 0xf7, 0x80, 0xc5, 0x57, 0xac, 0xa9, 0x19, 0xf6,
- 0x64, 0x5c, 0x20, 0x18, 0xbc, 0x00, 0xb4, 0x4b, 0x6c, 0x29, 0x3e, 0x8c, 0x2f, 0x59, 0xfd, 0x80,
- 0x59, 0x3d, 0x85, 0x0f, 0x30, 0x7d, 0x8f, 0x20, 0x96, 0xd8, 0x38, 0xa9, 0x5d, 0x2d, 0xa3, 0x77,
- 0xa4, 0xfc, 0x38, 0x2e, 0x45, 0x3a, 0x4b, 0x8b, 0x38, 0x6f, 0x96, 0x6e, 0xd8, 0x28, 0xd2, 0xa2,
- 0x8c, 0xcb, 0xad, 0x9e, 0xb4, 0x76, 0xfb, 0xaf, 0x6b, 0xd1, 0xfb, 0xd0, 0xef, 0x31, 0x2b, 0x17,
- 0xa9, 0xdc, 0x01, 0xa8, 0xd4, 0x90, 0x3f, 0xf8, 0x34, 0x6c, 0xb4, 0xa5, 0x60, 0x4a, 0xf3, 0xd9,
- 0xf5, 0x15, 0x6d, 0xde, 0x37, 0xd1, 0xab, 0xa2, 0xe7, 0x65, 0xd2, 0xda, 0x21, 0x9b, 0x34, 0x4b,
- 0x1d, 0x29, 0x24, 0xf2, 0xbe, 0x16, 0x04, 0x7a, 0xf8, 0x69, 0x5e, 0x35, 0xd6, 0xb1, 0x1e, 0x6e,
- 0xc5, 0xc1, 0x1e, 0xee, 0x61, 0xb6, 0x87, 0x1f, 0x2f, 0xcf, 0xb2, 0xb4, 0xba, 0x48, 0xf3, 0xb9,
- 0x4e, 0xf2, 0x7d, 0x5d, 0x2b, 0x86, 0x79, 0xfe, 0x46, 0x27, 0x87, 0x39, 0xd1, 0xc1, 0x42, 0x3a,
- 0x01, 0x61, 0xb2, 0xd1, 0xc9, 0xd9, 0xb5, 0x97, 0x95, 0xd6, 0x8b, 0x7e, 0xb0, 0xf6, 0x72, 0x54,
- 0x6b, 0x29, 0xb1, 0xf6, 0x6a, 0x53, 0x76, 0xed, 0xe5, 0xd6, 0xa1, 0xe2, 0xd9, 0x15, 0x3b, 0x2d,
- 0x53, 0xb0, 0xf6, 0xf2, 0xca, 0xd7, 0x30, 0xc4, 0xda, 0x8b, 0x62, 0xed, 0x40, 0x65, 0x89, 0x7d,
- 0x26, 0x26, 0x22, 0x16, 0xcb, 0x0a, 0x0c, 0x54, 0x8e, 0x0d, 0x83, 0x10, 0x03, 0x15, 0x81, 0x6a,
- 0x6f, 0xbf, 0x1f, 0x45, 0x6a, 0xbf, 0x44, 0xee, 0x69, 0xf9, 0x73, 0x8f, 0xde, 0x48, 0xf1, 0x36,
- 0xb4, 0xde, 0x0f, 0x10, 0x36, 0xbd, 0x52, 0x7f, 0x97, 0x5b, 0x75, 0x03, 0x54, 0x43, 0x8a, 0x88,
- 0xf4, 0x0a, 0x20, 0xb0, 0xa0, 0x93, 0x0b, 0xfe, 0x0a, 0x2f, 0x68, 0x2d, 0x09, 0x17, 0x54, 0x13,
- 0x76, 0xf3, 0x5c, 0x17, 0x14, 0xdb, 0x3c, 0x6f, 0x8a, 0x11, 0xda, 0x3c, 0x87, 0x8c, 0x8d, 0x19,
- 0xd7, 0xf0, 0x53, 0xce, 0x2f, 0x17, 0x71, 0x79, 0x09, 0x62, 0xc6, 0x53, 0x6e, 0x18, 0x22, 0x66,
- 0x28, 0xd6, 0xc6, 0x8c, 0xeb, 0xb0, 0x4e, 0xce, 0x4f, 0xcb, 0x0c, 0xc4, 0x8c, 0x67, 0x43, 0x23,
- 0x44, 0xcc, 0x10, 0xa8, 0x1d, 0x9d, 0x5c, 0x6f, 0x13, 0x06, 0xb7, 0x6b, 0x3c, 0xf5, 0x09, 0xa3,
- 0xb6, 0x6b, 0x10, 0x0c, 0x86, 0xd0, 0x7e, 0x19, 0x17, 0x17, 0x78, 0x08, 0x49, 0x51, 0x38, 0x84,
- 0x1a, 0x04, 0xb6, 0xf7, 0x84, 0xc5, 0xe5, 0xec, 0x02, 0x6f, 0x6f, 0x25, 0x0b, 0xb7, 0xb7, 0x61,
- 0x60, 0x7b, 0x2b, 0xc1, 0xcb, 0x54, 0x5c, 0x1c, 0x32, 0x11, 0xe3, 0xed, 0xed, 0x33, 0xe1, 0xf6,
- 0x6e, 0xb1, 0x36, 0xfb, 0x77, 0x1d, 0x4e, 0x96, 0x67, 0xd5, 0xac, 0x4c, 0xcf, 0xd8, 0x20, 0x60,
- 0xc5, 0x40, 0x44, 0xf6, 0x4f, 0xc2, 0xda, 0xe7, 0x4f, 0xd7, 0xa2, 0x9b, 0x4d, 0xb3, 0xf3, 0xaa,
- 0xd2, 0x73, 0x9f, 0xef, 0xfe, 0x63, 0xbc, 0x7d, 0x09, 0x9c, 0x78, 0x9d, 0xd1, 0x43, 0xcd, 0xc9,
- 0x0d, 0xf0, 0x22, 0x9d, 0xe6, 0x95, 0x29, 0xd4, 0xa7, 0x7d, 0xac, 0x3b, 0x0a, 0x44, 0x6e, 0xd0,
- 0x4b, 0xd1, 0xa6, 0x65, 0xba, 0x7d, 0x1a, 0xd9, 0x38, 0xa9, 0x40, 0x5a, 0xd6, 0x3c, 0x6f, 0x87,
- 0x20, 0xd2, 0x32, 0x9c, 0x84, 0xa1, 0xb0, 0x5f, 0xf2, 0x65, 0x51, 0x75, 0x84, 0x02, 0x80, 0xc2,
- 0xa1, 0xd0, 0x86, 0xb5, 0xcf, 0xd7, 0xd1, 0x6f, 0xba, 0xe1, 0xe7, 0x3e, 0xec, 0x2d, 0x3a, 0xa6,
- 0xb0, 0x47, 0x3c, 0xec, 0x8b, 0xdb, 0x8c, 0xa2, 0xf1, 0x2c, 0x76, 0x99, 0x88, 0xd3, 0xac, 0x1a,
- 0xac, 0xe3, 0x36, 0x1a, 0x39, 0x91, 0x51, 0x60, 0x1c, 0x1c, 0xdf, 0x76, 0x97, 0x45, 0x96, 0xce,
- 0xda, 0x2f, 0x93, 0xb4, 0xae, 0x11, 0x87, 0xc7, 0x37, 0x17, 0x83, 0xe3, 0x75, 0x9d, 0xfa, 0xc9,
- 0xff, 0x4c, 0x57, 0x05, 0xc3, 0xc7, 0x6b, 0x0f, 0x09, 0x8f, 0xd7, 0x10, 0x85, 0xf5, 0x99, 0x30,
- 0x71, 0x10, 0xaf, 0xf8, 0x92, 0x18, 0xaf, 0x8d, 0x38, 0x5c, 0x1f, 0x17, 0xb3, 0x6b, 0x03, 0xe3,
- 0x61, 0x9c, 0x0b, 0x56, 0xe6, 0x71, 0xb6, 0x97, 0xc5, 0xf3, 0x6a, 0x40, 0x8c, 0x31, 0x3e, 0x45,
- 0xac, 0x0d, 0x68, 0x1a, 0x79, 0x8c, 0xe3, 0x6a, 0x2f, 0xbe, 0xe2, 0x65, 0x2a, 0xe8, 0xc7, 0x68,
- 0x91, 0xce, 0xc7, 0xe8, 0xa1, 0xa8, 0xb7, 0x51, 0x39, 0xbb, 0x48, 0xaf, 0x58, 0x12, 0xf0, 0xd6,
- 0x20, 0x3d, 0xbc, 0x39, 0x28, 0xd2, 0x68, 0x13, 0xbe, 0x2c, 0x67, 0x8c, 0x6c, 0x34, 0x25, 0xee,
- 0x6c, 0x34, 0x83, 0x69, 0x0f, 0x7f, 0xb5, 0x16, 0xfd, 0x96, 0x92, 0xba, 0x6f, 0x78, 0x76, 0xe3,
- 0xea, 0xe2, 0x8c, 0xc7, 0x65, 0x32, 0xf8, 0x10, 0xb3, 0x83, 0xa2, 0xc6, 0xf5, 0xe3, 0xeb, 0xa8,
- 0xc0, 0xc7, 0x5a, 0xe7, 0xdd, 0xb6, 0xc7, 0xa1, 0x8f, 0xd5, 0x43, 0xc2, 0x8f, 0x15, 0xa2, 0x70,
- 0x00, 0x91, 0x72, 0xb5, 0x01, 0xb8, 0x4e, 0xea, 0xfb, 0xbb, 0x80, 0x1b, 0x9d, 0x1c, 0x1c, 0x1f,
- 0x6b, 0xa1, 0x1f, 0x2d, 0x5b, 0x94, 0x0d, 0x3c, 0x62, 0x86, 0x7d, 0x71, 0xd2, 0xb3, 0xe9, 0x15,
- 0x61, 0xcf, 0xad, 0x9e, 0x31, 0xec, 0x8b, 0x13, 0x9e, 0x9d, 0x61, 0x2d, 0xe4, 0x19, 0x19, 0xda,
- 0x86, 0x7d, 0x71, 0x98, 0x7d, 0x69, 0xa6, 0x99, 0x17, 0x1e, 0x04, 0xec, 0xc0, 0xb9, 0x61, 0xb3,
- 0x17, 0xab, 0x1d, 0xfe, 0xcd, 0x5a, 0xf4, 0x5d, 0xeb, 0xf1, 0x90, 0x27, 0xe9, 0xf9, 0x4a, 0x41,
- 0x2f, 0xe2, 0x6c, 0xc9, 0xaa, 0xc1, 0x63, 0xca, 0x5a, 0x9b, 0x35, 0x25, 0x78, 0x72, 0x2d, 0x1d,
- 0xd8, 0x77, 0x46, 0x45, 0x91, 0xad, 0xa6, 0x6c, 0x51, 0x64, 0x64, 0xdf, 0xf1, 0x90, 0x70, 0xdf,
- 0x81, 0x28, 0xcc, 0xca, 0xa7, 0xbc, 0xce, 0xf9, 0xd1, 0xac, 0x5c, 0x8a, 0xc2, 0x59, 0x79, 0x83,
- 0xc0, 0x5c, 0x69, 0xca, 0x77, 0x78, 0x96, 0xb1, 0x99, 0x68, 0x9f, 0x12, 0x31, 0x9a, 0x96, 0x08,
- 0xe7, 0x4a, 0x80, 0xb4, 0xbb, 0x72, 0xcd, 0x1a, 0x32, 0x2e, 0xd9, 0xd3, 0xd5, 0x41, 0x9a, 0x5f,
- 0x0e, 0xf0, 0xb4, 0xc0, 0x02, 0xc4, 0xae, 0x1c, 0x0a, 0xc2, 0xb5, 0xea, 0x69, 0x9e, 0x70, 0x7c,
- 0xad, 0x5a, 0x4b, 0xc2, 0x6b, 0x55, 0x4d, 0x40, 0x93, 0x27, 0x8c, 0x32, 0x59, 0x4b, 0xc2, 0x26,
- 0x35, 0x81, 0x0d, 0x85, 0xfa, 0x4d, 0x11, 0x39, 0x14, 0x82, 0x77, 0x43, 0x1b, 0x9d, 0x1c, 0x8c,
- 0xd0, 0x66, 0xd1, 0xba, 0xc7, 0xc4, 0xec, 0x02, 0x8f, 0x50, 0x0f, 0x09, 0x47, 0x28, 0x44, 0x61,
- 0x95, 0xa6, 0xdc, 0x2c, 0xba, 0xd7, 0xf1, 0xf8, 0x68, 0x2d, 0xb8, 0x37, 0x3a, 0x39, 0xb8, 0x8c,
- 0x1c, 0x2f, 0xe4, 0x33, 0x43, 0x83, 0x5c, 0xc9, 0xc2, 0xcb, 0x48, 0xc3, 0xc0, 0xd2, 0x2b, 0x81,
- 0xdc, 0xcb, 0x5a, 0xa7, 0x15, 0xbd, 0xdd, 0xac, 0x8d, 0x4e, 0x4e, 0x3b, 0xf9, 0x67, 0xb3, 0x8c,
- 0x53, 0xd2, 0x23, 0x5e, 0xf7, 0x91, 0x17, 0x71, 0x96, 0x26, 0xb1, 0x60, 0x53, 0x7e, 0xc9, 0x72,
- 0x7c, 0xc5, 0xa4, 0x4b, 0xab, 0xf8, 0xa1, 0xa7, 0x10, 0x5e, 0x31, 0x85, 0x15, 0x61, 0x9c, 0x28,
- 0xfa, 0xb4, 0x62, 0x3b, 0x71, 0x45, 0x8c, 0x64, 0x1e, 0x12, 0x8e, 0x13, 0x88, 0xc2, 0x7c, 0x55,
- 0xc9, 0x9f, 0xbd, 0x2e, 0x58, 0x99, 0xb2, 0x7c, 0xc6, 0xf0, 0x7c, 0x15, 0x52, 0xe1, 0x7c, 0x15,
- 0xa1, 0xe1, 0x5a, 0x6d, 0x37, 0x16, 0xec, 0xe9, 0x6a, 0x9a, 0x2e, 0x58, 0x25, 0xe2, 0x45, 0x81,
- 0xaf, 0xd5, 0x00, 0x14, 0x5e, 0xab, 0xb5, 0xe1, 0xd6, 0xd6, 0x90, 0x19, 0x10, 0xdb, 0x87, 0xcb,
- 0x20, 0x11, 0x38, 0x5c, 0x46, 0xa0, 0xf0, 0xc1, 0x5a, 0x00, 0x7d, 0x49, 0xd0, 0xb2, 0x12, 0x7c,
- 0x49, 0x40, 0xd3, 0xad, 0x0d, 0x37, 0xc3, 0x4c, 0xea, 0xae, 0xd9, 0x51, 0xf4, 0x89, 0xdb, 0x45,
- 0x37, 0x7b, 0xb1, 0xf8, 0x0e, 0xdf, 0x09, 0xcb, 0x62, 0x39, 0x6d, 0x05, 0xb6, 0xd1, 0x1a, 0xa6,
- 0xcf, 0x0e, 0x9f, 0xc3, 0x6a, 0x87, 0x7f, 0xb1, 0x16, 0xbd, 0x87, 0x79, 0x7c, 0x5e, 0x48, 0xbf,
- 0x8f, 0xba, 0x6d, 0x29, 0x92, 0x38, 0x3d, 0x17, 0xd6, 0xb0, 0x07, 0x40, 0x1a, 0x91, 0x3d, 0x5c,
- 0xa7, 0x0b, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x23, 0x0e, 0x80, 0x84, 0x78, 0xbb, 0x1e, 0xf2,
- 0xcb, 0x55, 0x81, 0xf5, 0x90, 0xb1, 0xa1, 0xc5, 0xc4, 0x7a, 0x08, 0xc1, 0x6c, 0xef, 0x74, 0xab,
- 0xf7, 0x32, 0x15, 0x17, 0x32, 0xdf, 0x02, 0xbd, 0xd3, 0x2b, 0xab, 0x81, 0x88, 0xde, 0x49, 0xc2,
- 0x30, 0x23, 0x69, 0xc0, 0xba, 0x6f, 0x62, 0x63, 0xb9, 0x31, 0xe4, 0xf6, 0xcc, 0x7b, 0xdd, 0x20,
- 0x8c, 0xd7, 0x46, 0xac, 0x97, 0x3e, 0x0f, 0x42, 0x16, 0xc0, 0xf2, 0x67, 0xb3, 0x17, 0xab, 0x1d,
- 0xfe, 0x59, 0xf4, 0x9d, 0x56, 0xc5, 0xf6, 0x58, 0x2c, 0x96, 0x25, 0x4b, 0x06, 0xdb, 0x1d, 0xe5,
- 0x6e, 0x40, 0xe3, 0xfa, 0x51, 0x7f, 0x85, 0x56, 0x8e, 0xde, 0x70, 0x2a, 0xac, 0x4c, 0x19, 0x1e,
- 0x87, 0x4c, 0xfa, 0x6c, 0x30, 0x47, 0xa7, 0x75, 0x5a, 0xcb, 0x6c, 0x37, 0xba, 0x46, 0x57, 0x71,
- 0x9a, 0xc9, 0x97, 0xb5, 0x1f, 0x86, 0x8c, 0x7a, 0x68, 0x70, 0x99, 0x4d, 0xaa, 0xb4, 0x46, 0x66,
- 0xd9, 0xc7, 0x9d, 0xe5, 0xd9, 0x43, 0x7a, 0x24, 0x40, 0x56, 0x67, 0x5b, 0x3d, 0x69, 0xed, 0x56,
- 0x34, 0x53, 0x5e, 0xfd, 0x67, 0x37, 0xc8, 0x31, 0xaf, 0x5a, 0x15, 0x89, 0xf4, 0xad, 0x9e, 0xb4,
- 0xf6, 0xfa, 0xa7, 0xd1, 0xbb, 0x6d, 0xaf, 0x7a, 0x22, 0xda, 0xee, 0x34, 0x05, 0xe6, 0xa2, 0x47,
- 0xfd, 0x15, 0xb4, 0xfb, 0x7f, 0x33, 0xfb, 0xd2, 0xca, 0xff, 0x8c, 0x2f, 0x16, 0x2c, 0x4f, 0x58,
- 0xd2, 0x68, 0x54, 0xf5, 0xfa, 0xe9, 0x33, 0xda, 0xae, 0x51, 0x18, 0xba, 0x1a, 0xa6, 0x44, 0xbf,
- 0xfd, 0x0d, 0x34, 0x75, 0xd1, 0xfe, 0x6b, 0x2d, 0xba, 0x8f, 0x16, 0xad, 0x09, 0x5c, 0xaf, 0x88,
- 0xbf, 0xd7, 0xc7, 0x11, 0xa6, 0x69, 0x8a, 0x3a, 0xfa, 0x39, 0x2c, 0xe8, 0x22, 0xff, 0xfb, 0x5a,
- 0x74, 0xdb, 0x2a, 0xd6, 0xe1, 0xbd, 0xc3, 0xf3, 0xf3, 0x2c, 0x9d, 0x09, 0xf9, 0x46, 0x56, 0xab,
- 0xd0, 0x8f, 0x93, 0xd2, 0xe8, 0x7e, 0x9c, 0x01, 0x4d, 0xbb, 0x78, 0xfd, 0x3c, 0xad, 0x04, 0x2f,
- 0x57, 0x93, 0x0b, 0xfe, 0xaa, 0xf9, 0x3c, 0xc9, 0x1f, 0x97, 0x35, 0x30, 0x74, 0x08, 0x62, 0xf1,
- 0x8a, 0x93, 0x2d, 0x57, 0xf6, 0x33, 0xa6, 0x8a, 0x70, 0xe5, 0x10, 0x1d, 0xae, 0x7c, 0xd2, 0xce,
- 0x4a, 0x4d, 0xad, 0xec, 0x37, 0x57, 0x1b, 0x78, 0x51, 0xdb, 0xdf, 0x5d, 0xdd, 0xeb, 0x06, 0x6d,
- 0x6e, 0xaa, 0xc5, 0xbb, 0xe9, 0xf9, 0xb9, 0xa9, 0x13, 0x5e, 0x52, 0x17, 0x21, 0x72, 0x53, 0x02,
- 0xb5, 0xcb, 0xab, 0xbd, 0x34, 0x63, 0xf2, 0xdd, 0xcd, 0xf3, 0xf3, 0xf3, 0x8c, 0xc7, 0x09, 0x58,
- 0x5e, 0xd5, 0xe2, 0xa1, 0x2b, 0x27, 0x96, 0x57, 0x18, 0x67, 0x4f, 0x85, 0xd4, 0xd2, 0x3a, 0xba,
- 0xf3, 0x59, 0x9a, 0xc1, 0xd3, 0xcd, 0x52, 0xd3, 0x08, 0x89, 0x53, 0x21, 0x2d, 0xc8, 0xa6, 0x40,
- 0xb5, 0xa8, 0x8e, 0xca, 0xa6, 0xfc, 0x77, 0xdb, 0x8a, 0x8e, 0x98, 0x48, 0x81, 0x10, 0xcc, 0xee,
- 0x32, 0xd4, 0xc2, 0xd3, 0x42, 0x1a, 0xbf, 0xd5, 0xd6, 0x52, 0x12, 0x62, 0x97, 0xc1, 0x27, 0xec,
- 0x6a, 0xb9, 0xfe, 0xfb, 0x2e, 0x7f, 0x95, 0x4b, 0xa3, 0xb7, 0xdb, 0x2a, 0x8d, 0x8c, 0x58, 0x2d,
- 0x43, 0x46, 0x1b, 0xfe, 0x22, 0xfa, 0x45, 0x69, 0xb8, 0xe4, 0xc5, 0xe0, 0x06, 0xa2, 0x50, 0x3a,
- 0x67, 0x81, 0x6f, 0x92, 0x72, 0x7b, 0x88, 0xc4, 0xc4, 0xc6, 0x69, 0x15, 0xcf, 0xe1, 0x01, 0x7e,
- 0xdb, 0xe2, 0x52, 0x4a, 0x1c, 0x22, 0x69, 0x53, 0x7e, 0x54, 0x1c, 0xf1, 0x44, 0x5b, 0x47, 0x6a,
- 0x68, 0x84, 0xa1, 0xa8, 0x70, 0x21, 0x9b, 0xb6, 0x1e, 0xc5, 0x57, 0xe9, 0xdc, 0xa4, 0x16, 0x6a,
- 0x00, 0xab, 0x40, 0xda, 0x6a, 0x99, 0xa1, 0x03, 0x11, 0x69, 0x2b, 0x09, 0x6b, 0x9f, 0xff, 0xb4,
- 0x16, 0xdd, 0xb2, 0xcc, 0x7e, 0xb3, 0x2f, 0x3b, 0xce, 0xcf, 0x79, 0x9d, 0xe4, 0x1e, 0xa4, 0xf9,
- 0x65, 0x35, 0xf8, 0x84, 0x32, 0x89, 0xf3, 0xa6, 0x28, 0x9f, 0x5e, 0x5b, 0xcf, 0xae, 0x4f, 0x9a,
- 0x4d, 0x4b, 0x7b, 0x72, 0x41, 0x69, 0x80, 0xf5, 0x89, 0xd9, 0xdb, 0x84, 0x1c, 0xb1, 0x3e, 0x09,
- 0xf1, 0xb6, 0x89, 0x8d, 0xf3, 0x8c, 0xe7, 0xb0, 0x89, 0xad, 0x85, 0x5a, 0x48, 0x34, 0x71, 0x0b,
- 0xb2, 0xe3, 0x71, 0x23, 0x52, 0xfb, 0x6b, 0xa3, 0x2c, 0x03, 0xe3, 0xb1, 0x51, 0x35, 0x00, 0x31,
- 0x1e, 0xa3, 0xa0, 0xf6, 0x73, 0x12, 0x7d, 0xab, 0x7e, 0xa4, 0xc7, 0x25, 0xbb, 0x4a, 0x19, 0x3c,
- 0x64, 0xe3, 0x48, 0x88, 0xfe, 0xef, 0x13, 0xb6, 0x67, 0x9d, 0xe6, 0x55, 0x91, 0xc5, 0xd5, 0x85,
- 0x3e, 0x76, 0xe1, 0xd7, 0xb9, 0x11, 0xc2, 0x83, 0x17, 0x77, 0x3b, 0x28, 0x3b, 0xa8, 0x37, 0x32,
- 0x33, 0xc4, 0xac, 0xe3, 0xaa, 0xad, 0x61, 0x66, 0xa3, 0x93, 0xb3, 0xef, 0x36, 0xf6, 0xe3, 0x2c,
- 0x63, 0xe5, 0xaa, 0x91, 0x1d, 0xc6, 0x79, 0x7a, 0xce, 0x2a, 0x01, 0xde, 0x6d, 0x68, 0x6a, 0x08,
- 0x31, 0xe2, 0xdd, 0x46, 0x00, 0xb7, 0xeb, 0x36, 0xe0, 0x79, 0x9c, 0x27, 0xec, 0x35, 0x58, 0xb7,
- 0x41, 0x3b, 0x92, 0x21, 0xd6, 0x6d, 0x14, 0x6b, 0xf7, 0xf8, 0x9f, 0x66, 0x7c, 0x76, 0xa9, 0xa7,
- 0x00, 0xbf, 0x81, 0xa5, 0x04, 0xce, 0x01, 0xb7, 0x43, 0x88, 0x9d, 0x04, 0xa4, 0xe0, 0x84, 0x15,
- 0x59, 0x3c, 0x83, 0x27, 0xad, 0x94, 0x8e, 0x96, 0x11, 0x93, 0x00, 0x64, 0x40, 0x71, 0xf5, 0x09,
- 0x2e, 0xac, 0xb8, 0xe0, 0x00, 0xd7, 0xed, 0x10, 0x62, 0xa7, 0x41, 0x29, 0x98, 0x14, 0x59, 0x2a,
- 0x40, 0x37, 0x50, 0x1a, 0x52, 0x42, 0x74, 0x03, 0x9f, 0x00, 0x26, 0x0f, 0x59, 0x39, 0x67, 0xa8,
- 0x49, 0x29, 0x09, 0x9a, 0x6c, 0x08, 0x7b, 0xac, 0x5c, 0xd5, 0x9d, 0x17, 0x2b, 0x70, 0xac, 0x5c,
- 0x57, 0x8b, 0x17, 0x2b, 0xe2, 0x58, 0xb9, 0x07, 0x80, 0x22, 0x1e, 0xc7, 0x95, 0xc0, 0x8b, 0x28,
- 0x25, 0xc1, 0x22, 0x36, 0x84, 0x9d, 0xa3, 0x55, 0x11, 0x97, 0x02, 0xcc, 0xd1, 0xba, 0x00, 0xce,
- 0x59, 0x83, 0x9b, 0xa4, 0xdc, 0x8e, 0x24, 0xaa, 0x55, 0x98, 0xd8, 0x4b, 0x59, 0x96, 0x54, 0x60,
- 0x24, 0xd1, 0xcf, 0xbd, 0x91, 0x12, 0x23, 0x49, 0x9b, 0x02, 0xa1, 0xa4, 0xdf, 0x84, 0x60, 0xb5,
- 0x03, 0x2f, 0x41, 0x6e, 0x87, 0x10, 0x3b, 0x3e, 0x35, 0x85, 0xde, 0x89, 0xcb, 0x32, 0xad, 0x27,
- 0xff, 0x75, 0xbc, 0x40, 0x8d, 0x9c, 0x18, 0x9f, 0x30, 0x0e, 0x74, 0xaf, 0x66, 0xe0, 0xc6, 0x0a,
- 0x06, 0x87, 0xee, 0x0f, 0x82, 0x8c, 0xcd, 0x38, 0xa5, 0xc4, 0x79, 0x59, 0x8e, 0x3d, 0x4d, 0xe4,
- 0x5d, 0xf9, 0x7a, 0x17, 0xe6, 0x7c, 0xe1, 0x66, 0x5c, 0x1c, 0xf2, 0x2b, 0x36, 0xe5, 0xcf, 0x5e,
- 0xa7, 0x55, 0xbd, 0xdc, 0xd2, 0x33, 0xf7, 0x13, 0xc2, 0x12, 0x06, 0x13, 0x5f, 0xb8, 0x75, 0x2a,
- 0xd9, 0x04, 0x02, 0x94, 0xe5, 0x88, 0xbd, 0x42, 0x13, 0x08, 0x68, 0xd1, 0x70, 0x44, 0x02, 0x11,
- 0xe2, 0xed, 0x8e, 0x99, 0x71, 0xae, 0xaf, 0x35, 0x98, 0xf2, 0x26, 0x97, 0xa3, 0xac, 0x41, 0x90,
- 0xd8, 0xb4, 0x08, 0x2a, 0xd8, 0xf5, 0xa5, 0xf1, 0x6f, 0xbb, 0xd8, 0x3d, 0xc2, 0x4e, 0xbb, 0x9b,
- 0xdd, 0xef, 0x41, 0x22, 0xae, 0xec, 0x89, 0x0f, 0xca, 0x55, 0xfb, 0xc0, 0xc7, 0xfd, 0x1e, 0xa4,
- 0xb3, 0xfb, 0xe6, 0x56, 0xeb, 0x69, 0x3c, 0xbb, 0x9c, 0x97, 0x7c, 0x99, 0x27, 0x3b, 0x3c, 0xe3,
- 0x25, 0xd8, 0x7d, 0xf3, 0x4a, 0x0d, 0x50, 0x62, 0xf7, 0xad, 0x43, 0xc5, 0x66, 0x70, 0x6e, 0x29,
- 0x46, 0x59, 0x3a, 0x87, 0x2b, 0x6a, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, 0x05, 0x91, 0x20, 0x52,
- 0x2b, 0x6e, 0x91, 0xce, 0xe2, 0x4c, 0xf9, 0xdb, 0xa6, 0xcd, 0x78, 0x60, 0x67, 0x10, 0x21, 0x0a,
- 0x48, 0x3d, 0xa7, 0xcb, 0x32, 0x1f, 0xe7, 0x82, 0x93, 0xf5, 0x6c, 0x80, 0xce, 0x7a, 0x3a, 0x20,
- 0x18, 0x56, 0xa7, 0xec, 0x75, 0x5d, 0x9a, 0xfa, 0x1f, 0x6c, 0x58, 0xad, 0xff, 0x3e, 0xd4, 0xf2,
- 0xd0, 0xb0, 0x0a, 0x38, 0x50, 0x19, 0xed, 0x44, 0x05, 0x4c, 0x40, 0xdb, 0x0f, 0x93, 0x7b, 0xdd,
- 0x20, 0xee, 0x67, 0x22, 0x56, 0x19, 0x0b, 0xf9, 0x91, 0x40, 0x1f, 0x3f, 0x0d, 0x68, 0xb7, 0x5b,
- 0xbc, 0xfa, 0x5c, 0xb0, 0xd9, 0x65, 0xeb, 0x00, 0x9b, 0x5f, 0x50, 0x85, 0x10, 0xdb, 0x2d, 0x04,
- 0x8a, 0x37, 0xd1, 0x78, 0xc6, 0xf3, 0x50, 0x13, 0xd5, 0xf2, 0x3e, 0x4d, 0xa4, 0x39, 0xbb, 0xf8,
- 0x35, 0x52, 0x1d, 0x99, 0xaa, 0x99, 0x36, 0x09, 0x0b, 0x2e, 0x44, 0x2c, 0x7e, 0x49, 0xd8, 0xe6,
- 0xe4, 0xd0, 0xe7, 0x61, 0xfb, 0x74, 0x7f, 0xcb, 0xca, 0x21, 0x7d, 0xba, 0x9f, 0x62, 0xe9, 0x4a,
- 0xaa, 0x18, 0xe9, 0xb0, 0xe2, 0xc7, 0xc9, 0xc3, 0x7e, 0xb0, 0x5d, 0xf2, 0x78, 0x3e, 0x77, 0x32,
- 0x16, 0x97, 0xca, 0xeb, 0x56, 0xc0, 0x90, 0xc5, 0x88, 0x25, 0x4f, 0x00, 0x07, 0x43, 0x98, 0xe7,
- 0x79, 0x87, 0xe7, 0x82, 0xe5, 0x02, 0x1b, 0xc2, 0x7c, 0x63, 0x1a, 0x0c, 0x0d, 0x61, 0x94, 0x02,
- 0x88, 0x5b, 0xb9, 0x1f, 0xc4, 0xc4, 0x51, 0xbc, 0x40, 0x33, 0x36, 0xb5, 0xd7, 0xa3, 0xe4, 0xa1,
- 0xb8, 0x05, 0x9c, 0xf3, 0x3a, 0xd7, 0xf5, 0x32, 0x8d, 0xcb, 0xb9, 0xd9, 0xdd, 0x48, 0x06, 0x8f,
- 0x68, 0x3b, 0x3e, 0x49, 0xbc, 0xce, 0x0d, 0x6b, 0x80, 0x61, 0x67, 0xbc, 0x88, 0xe7, 0xa6, 0xa6,
- 0x48, 0x0d, 0xa4, 0xbc, 0x55, 0xd5, 0x7b, 0xdd, 0x20, 0xf0, 0xf3, 0x22, 0x4d, 0x18, 0x0f, 0xf8,
- 0x91, 0xf2, 0x3e, 0x7e, 0x20, 0x08, 0xb2, 0xb7, 0xba, 0xde, 0x6a, 0x45, 0x37, 0xca, 0x13, 0xbd,
- 0x8e, 0x1d, 0x12, 0x8f, 0x07, 0x70, 0xa1, 0xec, 0x8d, 0xe0, 0x41, 0x1f, 0x6d, 0x36, 0x68, 0x43,
- 0x7d, 0xd4, 0xec, 0xbf, 0xf6, 0xe9, 0xa3, 0x18, 0xac, 0x7d, 0xfe, 0x58, 0xf7, 0xd1, 0xdd, 0x58,
- 0xc4, 0x75, 0xde, 0xfe, 0x22, 0x65, 0xaf, 0xf4, 0x42, 0x18, 0xa9, 0x6f, 0x43, 0x0d, 0xe5, 0xc7,
- 0xc9, 0x60, 0x55, 0xbc, 0xdd, 0x9b, 0x0f, 0xf8, 0xd6, 0x2b, 0x84, 0x4e, 0xdf, 0x60, 0xa9, 0xb0,
- 0xdd, 0x9b, 0x0f, 0xf8, 0xd6, 0x77, 0x2c, 0x74, 0xfa, 0x06, 0x17, 0x2d, 0x6c, 0xf7, 0xe6, 0xb5,
- 0xef, 0xbf, 0x6c, 0x3a, 0xae, 0xeb, 0xbc, 0xce, 0xc3, 0x66, 0x22, 0xbd, 0x62, 0x58, 0x3a, 0xe9,
- 0xdb, 0x33, 0x68, 0x28, 0x9d, 0xa4, 0x55, 0x9c, 0x5b, 0xce, 0xb0, 0x52, 0x1c, 0xf3, 0x2a, 0x95,
- 0xc7, 0x31, 0x9e, 0xf4, 0x30, 0xda, 0xc0, 0xa1, 0x45, 0x53, 0x48, 0xc9, 0xbe, 0x58, 0xf6, 0x50,
- 0x7b, 0x5e, 0xfd, 0x61, 0xc0, 0x5e, 0xfb, 0xd8, 0xfa, 0x56, 0x4f, 0xda, 0xbe, 0xe2, 0xf5, 0x98,
- 0xe6, 0xe5, 0xdc, 0x84, 0xa1, 0xb3, 0x84, 0x31, 0x65, 0x5e, 0xda, 0xba, 0x6f, 0x29, 0x1f, 0xf5,
- 0x57, 0xe8, 0x70, 0x3f, 0x4a, 0x92, 0x7e, 0xee, 0xdd, 0xb7, 0xdb, 0x8f, 0xfa, 0x2b, 0x68, 0xf7,
- 0x7f, 0xdd, 0x2c, 0x6b, 0xa0, 0x7f, 0xdd, 0x07, 0x1f, 0xf7, 0xb1, 0x08, 0xfa, 0xe1, 0x93, 0x6b,
- 0xe9, 0xe8, 0x82, 0xfc, 0xa4, 0x59, 0xbf, 0x37, 0xa8, 0xfc, 0x68, 0x48, 0x7e, 0x6c, 0xac, 0xbb,
- 0x64, 0x28, 0xaa, 0x2c, 0x0c, 0x3b, 0xe6, 0xc7, 0xd7, 0xd4, 0x72, 0xae, 0xdc, 0xf3, 0x60, 0xfd,
- 0x71, 0xab, 0x53, 0x9e, 0x90, 0x65, 0x87, 0x86, 0x05, 0xfa, 0xe4, 0xba, 0x6a, 0x54, 0x57, 0x75,
- 0x60, 0x79, 0xe9, 0xcc, 0x93, 0x9e, 0x86, 0xbd, 0x6b, 0x68, 0x3e, 0xba, 0x9e, 0x92, 0x2e, 0xcb,
- 0x7f, 0xae, 0x45, 0x77, 0x3d, 0xd6, 0xbe, 0xce, 0x00, 0x9b, 0x2e, 0x3f, 0x08, 0xd8, 0xa7, 0x94,
- 0x4c, 0xe1, 0x7e, 0xe7, 0x9b, 0x29, 0xdb, 0xfb, 0xe9, 0x3c, 0x95, 0xbd, 0x34, 0x13, 0xac, 0x6c,
- 0xdf, 0x4f, 0xe7, 0xdb, 0x55, 0xd4, 0x90, 0xbe, 0x9f, 0x2e, 0x80, 0x3b, 0xf7, 0xd3, 0x21, 0x9e,
- 0xd1, 0xfb, 0xe9, 0x50, 0x6b, 0xc1, 0xfb, 0xe9, 0xc2, 0x1a, 0xd4, 0xec, 0xd2, 0x14, 0x41, 0x6d,
- 0x9b, 0xf7, 0xb2, 0xe8, 0xef, 0xa2, 0x3f, 0xbe, 0x8e, 0x0a, 0x31, 0xbf, 0x2a, 0x4e, 0x1e, 0xa8,
- 0xec, 0xf1, 0x4c, 0xbd, 0x43, 0x95, 0xdb, 0xbd, 0x79, 0xed, 0xfb, 0x47, 0x7a, 0x71, 0x65, 0x66,
- 0x13, 0x5e, 0xca, 0xbb, 0x09, 0x37, 0x43, 0xb3, 0x43, 0x6d, 0xc1, 0x6d, 0xf9, 0x87, 0xfd, 0x60,
- 0xa2, 0xba, 0x35, 0xa1, 0x1b, 0x7d, 0xd8, 0x65, 0x08, 0x34, 0xf9, 0x76, 0x6f, 0x9e, 0x98, 0x46,
- 0x94, 0x6f, 0xd5, 0xda, 0x3d, 0x8c, 0xf9, 0x6d, 0xfd, 0xa8, 0xbf, 0x82, 0x76, 0x7f, 0xa5, 0xb3,
- 0x56, 0xd7, 0xbd, 0x6c, 0xe7, 0xad, 0x2e, 0x53, 0x13, 0xaf, 0x99, 0x87, 0x7d, 0xf1, 0x50, 0xfe,
- 0xe2, 0x4e, 0xa1, 0x5d, 0xf9, 0x0b, 0x3a, 0x8d, 0x7e, 0x74, 0x3d, 0x25, 0x5d, 0x96, 0x7f, 0x5c,
- 0x8b, 0x6e, 0x92, 0x65, 0xd1, 0x71, 0xf0, 0x49, 0x5f, 0xcb, 0x20, 0x1e, 0x3e, 0xbd, 0xb6, 0x9e,
- 0x2e, 0xd4, 0xbf, 0xac, 0x45, 0xb7, 0x02, 0x85, 0x52, 0x01, 0x72, 0x0d, 0xeb, 0x7e, 0xa0, 0x7c,
- 0x76, 0x7d, 0x45, 0x6a, 0xba, 0x77, 0xf1, 0x49, 0xfb, 0xae, 0xb1, 0x80, 0xed, 0x09, 0x7d, 0xd7,
- 0x58, 0xb7, 0x16, 0xdc, 0x63, 0x8a, 0xcf, 0x9a, 0x35, 0x1f, 0xba, 0xc7, 0x24, 0x8f, 0x42, 0x06,
- 0x6f, 0x31, 0xc1, 0x38, 0xcc, 0xc9, 0xb3, 0xd7, 0x45, 0x9c, 0x27, 0xb4, 0x13, 0x25, 0xef, 0x76,
- 0x62, 0x38, 0xb8, 0x37, 0x57, 0x4b, 0x4f, 0x78, 0xb3, 0x8e, 0xbb, 0x4f, 0xe9, 0x1b, 0x24, 0xb8,
- 0x37, 0xd7, 0x42, 0x09, 0x6f, 0x3a, 0x6b, 0x0c, 0x79, 0x03, 0xc9, 0xe2, 0x83, 0x3e, 0x28, 0x58,
- 0x21, 0x18, 0x6f, 0x66, 0xcb, 0xff, 0x61, 0xc8, 0x4a, 0x6b, 0xdb, 0x7f, 0xab, 0x27, 0x4d, 0xb8,
- 0x9d, 0x30, 0xf1, 0x39, 0x8b, 0x13, 0x56, 0x06, 0xdd, 0x1a, 0xaa, 0x97, 0x5b, 0x97, 0xc6, 0xdc,
- 0xee, 0xf0, 0x6c, 0xb9, 0xc8, 0x75, 0x63, 0x92, 0x6e, 0x5d, 0xaa, 0xdb, 0x2d, 0xa0, 0xe1, 0xae,
- 0xa4, 0x75, 0x2b, 0xd3, 0xcb, 0x07, 0x61, 0x33, 0x5e, 0x56, 0xb9, 0xd9, 0x8b, 0xa5, 0xeb, 0xa9,
- 0xc3, 0xa8, 0xa3, 0x9e, 0x20, 0x92, 0xb6, 0x7a, 0xd2, 0x70, 0x7b, 0xd0, 0x71, 0x6b, 0xe2, 0x69,
- 0xbb, 0xc3, 0x56, 0x2b, 0xa4, 0x1e, 0xf5, 0x57, 0x80, 0x9b, 0xb1, 0x3a, 0xaa, 0x0e, 0xd2, 0x4a,
- 0xec, 0xa5, 0x59, 0x36, 0xd8, 0x0c, 0x84, 0x49, 0x03, 0x05, 0x37, 0x63, 0x11, 0x98, 0x88, 0xe4,
- 0x66, 0xf3, 0x32, 0x1f, 0x74, 0xd9, 0x91, 0x54, 0xaf, 0x48, 0x76, 0x69, 0xb0, 0xa1, 0xe6, 0x3c,
- 0x6a, 0x53, 0xdb, 0x61, 0xf8, 0xc1, 0xb5, 0x2a, 0xbc, 0xdd, 0x9b, 0x07, 0x6f, 0xfb, 0x25, 0x25,
- 0x67, 0x96, 0x3b, 0x94, 0x09, 0x6f, 0x26, 0xb9, 0xdb, 0x41, 0x81, 0x4d, 0x49, 0xd5, 0x8d, 0x5e,
- 0xa6, 0xc9, 0x9c, 0x09, 0xf4, 0x45, 0x95, 0x0b, 0x04, 0x5f, 0x54, 0x01, 0x10, 0x34, 0x9d, 0xfa,
- 0xbb, 0xd9, 0x8d, 0x1d, 0x27, 0x58, 0xd3, 0x69, 0x65, 0x87, 0x0a, 0x35, 0x1d, 0x4a, 0x83, 0xd1,
- 0xc0, 0xb8, 0xd5, 0xf7, 0x3e, 0x3c, 0x08, 0x99, 0x01, 0x97, 0x3f, 0x6c, 0xf6, 0x62, 0xc1, 0x8c,
- 0x62, 0x1d, 0xa6, 0x8b, 0x54, 0x60, 0x33, 0x8a, 0x63, 0xa3, 0x46, 0x42, 0x33, 0x4a, 0x1b, 0xa5,
- 0xaa, 0x57, 0xe7, 0x08, 0xe3, 0x24, 0x5c, 0x3d, 0xc5, 0xf4, 0xab, 0x9e, 0x61, 0x5b, 0xef, 0x55,
- 0x73, 0x13, 0x32, 0xe2, 0x42, 0x2f, 0x96, 0x91, 0xd8, 0x96, 0xdf, 0x03, 0x43, 0x30, 0x34, 0xea,
- 0x50, 0x0a, 0xf0, 0x7d, 0x41, 0xcd, 0x35, 0xaf, 0x7e, 0x8b, 0x82, 0xc5, 0x65, 0x9c, 0xcf, 0xd0,
- 0xc5, 0xa9, 0x34, 0xd8, 0x22, 0x43, 0x8b, 0x53, 0x52, 0x03, 0xbc, 0xb5, 0xf7, 0xbf, 0xe4, 0x45,
- 0xba, 0x82, 0xf9, 0x64, 0xd6, 0xff, 0x90, 0xf7, 0x7e, 0x0f, 0x12, 0xbe, 0xb5, 0x6f, 0x00, 0xb3,
- 0xef, 0xae, 0x9c, 0x7e, 0x18, 0x30, 0xe5, 0xa3, 0xa1, 0x85, 0x30, 0xad, 0x02, 0x82, 0xda, 0xd9,
- 0x5b, 0xfc, 0x82, 0xad, 0xb0, 0xa0, 0x76, 0x37, 0x09, 0xbf, 0x60, 0xab, 0x50, 0x50, 0xb7, 0x51,
- 0x90, 0x67, 0xba, 0xeb, 0xa0, 0xf5, 0x80, 0xbe, 0xbb, 0xf4, 0xd9, 0xe8, 0xe4, 0x40, 0xcf, 0xd9,
- 0x4d, 0xaf, 0xbc, 0xd7, 0x14, 0x48, 0x41, 0x77, 0xd3, 0x2b, 0xfc, 0x2d, 0xc5, 0x66, 0x2f, 0x16,
- 0x9e, 0x08, 0x88, 0x05, 0x7b, 0xdd, 0xbc, 0xaa, 0x47, 0x8a, 0x2b, 0xe5, 0xad, 0x77, 0xf5, 0xf7,
- 0xba, 0x41, 0x7b, 0xfe, 0xf6, 0xb8, 0xe4, 0x33, 0x56, 0x55, 0xfa, 0x4a, 0x54, 0xff, 0x80, 0x93,
- 0x96, 0x0d, 0xc1, 0x85, 0xa8, 0x77, 0xc2, 0x90, 0x73, 0x8f, 0xa1, 0x12, 0xd9, 0xeb, 0x95, 0xd6,
- 0x51, 0xcd, 0xf6, 0xcd, 0x4a, 0x1b, 0x9d, 0x9c, 0xed, 0x5e, 0x5a, 0xea, 0xde, 0xa7, 0x74, 0x0f,
- 0x55, 0xc7, 0xae, 0x52, 0xba, 0xdf, 0x83, 0xd4, 0xae, 0x3e, 0x8f, 0xde, 0x3c, 0xe0, 0xf3, 0x09,
- 0xcb, 0x93, 0xc1, 0xf7, 0xfc, 0x13, 0xbc, 0x7c, 0x3e, 0xac, 0xff, 0x6c, 0x8c, 0xde, 0xa0, 0xc4,
- 0xf6, 0x0c, 0xe2, 0x2e, 0x3b, 0x5b, 0xce, 0x27, 0x22, 0x16, 0xe0, 0x0c, 0xa2, 0xfc, 0xfb, 0xb0,
- 0x16, 0x10, 0x67, 0x10, 0x3d, 0x00, 0xd8, 0x9b, 0x96, 0x8c, 0xa1, 0xf6, 0x6a, 0x41, 0xd0, 0x9e,
- 0x06, 0x6c, 0x16, 0x61, 0xec, 0xd5, 0x89, 0x3a, 0x3c, 0x33, 0x68, 0x75, 0xa4, 0x94, 0xc8, 0x22,
- 0xda, 0x94, 0x0d, 0x6e, 0x55, 0x7d, 0x79, 0xbd, 0xcd, 0x72, 0xb1, 0x88, 0xcb, 0x15, 0x08, 0x6e,
- 0x5d, 0x4b, 0x07, 0x20, 0x82, 0x1b, 0x05, 0x6d, 0xaf, 0x6d, 0x1e, 0xf3, 0xec, 0x72, 0x9f, 0x97,
- 0x7c, 0x29, 0xd2, 0x9c, 0xc1, 0x2b, 0x4e, 0xcc, 0x03, 0x75, 0x19, 0xa2, 0xd7, 0x52, 0xac, 0xcd,
- 0x72, 0x25, 0xa1, 0x8e, 0x33, 0xca, 0x3b, 0xe1, 0x2b, 0xc1, 0x4b, 0xf8, 0x3a, 0x53, 0x59, 0x81,
- 0x10, 0x91, 0xe5, 0x92, 0x30, 0x68, 0xfb, 0xe3, 0x34, 0x9f, 0xa3, 0x6d, 0x7f, 0xec, 0x5e, 0x33,
- 0x7c, 0x8b, 0x06, 0x6c, 0x87, 0x52, 0x0f, 0x4d, 0x75, 0x00, 0xfd, 0xd1, 0x30, 0xfa, 0xd0, 0x5d,
- 0x82, 0xe8, 0x50, 0x38, 0x09, 0x5c, 0x3d, 0x2f, 0x58, 0xce, 0x92, 0xe6, 0xd0, 0x1e, 0xe6, 0xca,
- 0x23, 0x82, 0xae, 0x20, 0x69, 0xc7, 0x22, 0x29, 0x3f, 0x59, 0xe6, 0xc7, 0x25, 0x3f, 0x4f, 0x33,
- 0x56, 0x82, 0xb1, 0x48, 0xa9, 0x3b, 0x72, 0x62, 0x2c, 0xc2, 0x38, 0x7b, 0xfa, 0x43, 0x4a, 0xbd,
- 0x1f, 0x36, 0x98, 0x96, 0xf1, 0x0c, 0x9e, 0xfe, 0x50, 0x36, 0xda, 0x18, 0xb1, 0x33, 0x18, 0xc0,
- 0x9d, 0x44, 0x47, 0xb9, 0xce, 0x57, 0x32, 0x3e, 0xf4, 0x47, 0xab, 0xf2, 0xf2, 0xdd, 0x0a, 0x24,
- 0x3a, 0xda, 0x1c, 0x46, 0x12, 0x89, 0x4e, 0x58, 0xc3, 0x4e, 0x25, 0x92, 0x3b, 0xd2, 0xa7, 0x9a,
- 0xc0, 0x54, 0xa2, 0x6c, 0x34, 0x42, 0x62, 0x2a, 0x69, 0x41, 0x60, 0x40, 0x6a, 0xba, 0xc1, 0x1c,
- 0x1d, 0x90, 0x8c, 0x34, 0x38, 0x20, 0xb9, 0x94, 0x1d, 0x28, 0xc6, 0x79, 0x2a, 0xd2, 0x38, 0x9b,
- 0x30, 0x71, 0x1c, 0x97, 0xf1, 0x82, 0x09, 0x56, 0xc2, 0x81, 0x42, 0x23, 0x43, 0x8f, 0x21, 0x06,
- 0x0a, 0x8a, 0xd5, 0x0e, 0x7f, 0x37, 0x7a, 0xbb, 0x9e, 0xf7, 0x59, 0xae, 0x7f, 0x92, 0xe9, 0x99,
- 0xfc, 0x2d, 0xb7, 0xc1, 0x3b, 0xc6, 0xc6, 0x44, 0x94, 0x2c, 0x5e, 0x34, 0xb6, 0xdf, 0x32, 0x7f,
- 0x97, 0xe0, 0xa3, 0xb5, 0x3a, 0x9e, 0x8f, 0xb8, 0x48, 0xcf, 0xeb, 0x65, 0xb6, 0xfe, 0x80, 0x09,
- 0xc4, 0xb3, 0x2b, 0x1e, 0x06, 0x2e, 0x3d, 0xc1, 0x38, 0x3b, 0x4e, 0xbb, 0xd2, 0x13, 0x56, 0x64,
- 0x70, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0x8c, 0xd3, 0x28, 0x68, 0x3b, 0xa7, 0x2b, 0x9e, 0xb2, 0x70,
- 0x65, 0xa6, 0xac, 0x5f, 0x65, 0xa6, 0xde, 0x37, 0x21, 0x59, 0xf4, 0xf6, 0x21, 0x5b, 0x9c, 0xb1,
- 0xb2, 0xba, 0x48, 0x0b, 0xea, 0x82, 0x60, 0x4b, 0x74, 0x5e, 0x10, 0x4c, 0xa0, 0x76, 0x26, 0xb0,
- 0xc0, 0xb8, 0x3a, 0x8a, 0x17, 0x4c, 0x5e, 0xe1, 0x02, 0x66, 0x02, 0xc7, 0x88, 0x03, 0x11, 0x33,
- 0x01, 0x09, 0x3b, 0x9f, 0x97, 0x59, 0xe6, 0x84, 0xcd, 0xeb, 0x08, 0x2b, 0x8f, 0xe3, 0xd5, 0x82,
- 0xe5, 0x42, 0x9b, 0x04, 0x7b, 0xf2, 0x8e, 0x49, 0x9c, 0x27, 0xf6, 0xe4, 0xfb, 0xe8, 0x39, 0x43,
- 0x93, 0xf7, 0xe0, 0x8f, 0x79, 0x29, 0xd4, 0x0f, 0xae, 0x9d, 0x96, 0x19, 0x18, 0x9a, 0xfc, 0x87,
- 0xea, 0x91, 0xc4, 0xd0, 0x14, 0xd6, 0x70, 0x7e, 0x5c, 0xc3, 0x2b, 0xc3, 0x0b, 0x56, 0x9a, 0x38,
- 0x79, 0xb6, 0x88, 0xd3, 0x4c, 0x47, 0xc3, 0xf7, 0x03, 0xb6, 0x09, 0x1d, 0xe2, 0xc7, 0x35, 0xfa,
- 0xea, 0x3a, 0x3f, 0x47, 0x12, 0x2e, 0x21, 0x78, 0x45, 0xd0, 0x61, 0x9f, 0x78, 0x45, 0xd0, 0xad,
- 0x65, 0x57, 0xee, 0x96, 0x95, 0xdc, 0x4a, 0x12, 0x3b, 0x3c, 0x81, 0xfb, 0x85, 0x8e, 0x4d, 0x00,
- 0x12, 0x2b, 0xf7, 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xb6, 0x97, 0xe6, 0x71, 0x96, 0xfe, 0x18, 0xa6,
- 0xf5, 0x8e, 0x9d, 0x86, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x33, 0x31, 0x4d, 0xeb, 0xa1,
- 0xff, 0x5e, 0xe0, 0xb9, 0x49, 0xa2, 0xdb, 0x95, 0x43, 0x3a, 0x97, 0x01, 0xc3, 0xc7, 0x3a, 0x2a,
- 0x8a, 0x49, 0x3d, 0xab, 0x9e, 0xb0, 0x19, 0x4b, 0x0b, 0x31, 0xf8, 0x38, 0xfc, 0xac, 0x00, 0x4e,
- 0x1c, 0xb4, 0xe8, 0xa1, 0xe6, 0xbc, 0xbe, 0xaf, 0xc7, 0x92, 0x89, 0xfa, 0x25, 0xd2, 0xd3, 0x8a,
- 0x95, 0x3a, 0xd1, 0xd8, 0x67, 0x02, 0xf4, 0x4e, 0x87, 0x1b, 0x3a, 0x60, 0x5d, 0x51, 0xa2, 0x77,
- 0x86, 0x35, 0xec, 0x66, 0x9f, 0xc3, 0xe9, 0xcb, 0xdd, 0xe5, 0x71, 0xc7, 0x87, 0xa4, 0x31, 0x87,
- 0x22, 0x36, 0xfb, 0x68, 0xda, 0x66, 0x6b, 0x6d, 0xb7, 0xa3, 0x7c, 0x35, 0x86, 0x47, 0x26, 0x10,
- 0x4b, 0x12, 0x23, 0xb2, 0xb5, 0x00, 0xee, 0x6c, 0x86, 0x97, 0x3c, 0x4e, 0x66, 0x71, 0x25, 0x8e,
- 0xe3, 0x55, 0xc6, 0xe3, 0x44, 0xce, 0xeb, 0x70, 0x33, 0xbc, 0x61, 0x86, 0x2e, 0x44, 0x6d, 0x86,
- 0x53, 0xb0, 0x9b, 0x9d, 0xc9, 0x1f, 0x58, 0xd5, 0x47, 0x49, 0x61, 0x76, 0x26, 0xcb, 0x0b, 0x8f,
- 0x91, 0xde, 0x09, 0x43, 0xf6, 0x13, 0x38, 0x25, 0x92, 0x69, 0xc8, 0x2d, 0x4c, 0xc7, 0x4b, 0x40,
- 0xde, 0x0f, 0x10, 0xf6, 0x02, 0x14, 0xf5, 0xf7, 0xe6, 0x37, 0xb5, 0x84, 0xbe, 0x32, 0xfd, 0x21,
- 0xa6, 0xeb, 0x42, 0xde, 0x09, 0xb5, 0xad, 0x9e, 0xb4, 0x4d, 0x33, 0x77, 0x2e, 0x62, 0x31, 0x4a,
- 0x92, 0x43, 0x56, 0x21, 0xdf, 0xb3, 0xd7, 0xc2, 0xa1, 0x95, 0x12, 0x69, 0x66, 0x9b, 0xb2, 0x81,
- 0x5e, 0xcb, 0x9e, 0x25, 0xa9, 0xd0, 0xb2, 0xe6, 0x80, 0xf6, 0xc3, 0xb6, 0x81, 0x36, 0x45, 0xd4,
- 0x8a, 0xa6, 0xed, 0x58, 0x5e, 0x33, 0x53, 0x3e, 0x9f, 0x67, 0x4c, 0x43, 0x27, 0x2c, 0x56, 0x37,
- 0x46, 0x6e, 0xb7, 0x6d, 0xa1, 0x20, 0x31, 0x96, 0x07, 0x15, 0x6c, 0x1a, 0x59, 0x63, 0xea, 0x95,
- 0x54, 0xf3, 0x60, 0x37, 0xda, 0x66, 0x3c, 0x80, 0x48, 0x23, 0x51, 0xd0, 0x7e, 0x76, 0x57, 0x8b,
- 0xf7, 0x59, 0xf3, 0x24, 0xe0, 0x5d, 0x57, 0x52, 0xd9, 0x11, 0x13, 0x9f, 0xdd, 0x21, 0x98, 0x5d,
- 0x27, 0x00, 0x0f, 0x4f, 0x57, 0xe3, 0x04, 0xae, 0x13, 0xa0, 0xbe, 0x64, 0x88, 0x75, 0x02, 0xc5,
- 0xfa, 0x4d, 0x67, 0xf6, 0xbd, 0x0e, 0xe2, 0xca, 0x56, 0x0e, 0x69, 0x3a, 0x14, 0x0c, 0x35, 0x1d,
- 0xa5, 0xe0, 0x3f, 0x52, 0x77, 0x6b, 0x0d, 0x79, 0xa4, 0xd8, 0xbe, 0xda, 0x7a, 0x17, 0x66, 0x73,
- 0xff, 0x5a, 0x78, 0xc2, 0xe2, 0xc4, 0x54, 0x0c, 0xd1, 0x75, 0xe5, 0x44, 0xee, 0x8f, 0x71, 0xda,
- 0xc9, 0x1f, 0x44, 0x03, 0x55, 0x8d, 0xd2, 0x75, 0x73, 0x0b, 0x2b, 0x62, 0x4d, 0x10, 0x03, 0x95,
- 0x4f, 0x38, 0x89, 0x9b, 0xd7, 0x44, 0x53, 0xae, 0x1d, 0xe8, 0xcf, 0x42, 0x2b, 0x90, 0xb8, 0xf9,
- 0x8f, 0xbd, 0x45, 0x13, 0x89, 0x5b, 0xb7, 0x96, 0x73, 0xed, 0x0f, 0x68, 0xb2, 0xbd, 0x92, 0x2f,
- 0x60, 0x99, 0x3e, 0x0b, 0x36, 0x0f, 0xa2, 0x41, 0x5c, 0xfb, 0xd3, 0x4f, 0xd3, 0xce, 0x41, 0x66,
- 0xef, 0x40, 0x1e, 0x4f, 0xc3, 0x7f, 0x16, 0x44, 0x09, 0x89, 0x39, 0xa8, 0x05, 0x39, 0xbf, 0x25,
- 0x3a, 0x7e, 0x59, 0xa6, 0x22, 0xcd, 0xe7, 0x53, 0xce, 0x33, 0xb8, 0x65, 0x39, 0x1a, 0x0f, 0x5d,
- 0x29, 0xf5, 0x5b, 0xa2, 0x2d, 0xca, 0x4e, 0x71, 0xa3, 0xf1, 0x68, 0x29, 0xf8, 0x79, 0x9a, 0x65,
- 0x20, 0x72, 0x46, 0xe3, 0x61, 0x23, 0x21, 0x22, 0xc7, 0x27, 0x9c, 0x5f, 0xc0, 0x1c, 0xcb, 0xdd,
- 0x7f, 0xbd, 0x03, 0xfa, 0x01, 0xd4, 0x71, 0x84, 0xd4, 0x2f, 0x60, 0x42, 0xc8, 0xf9, 0x45, 0xcf,
- 0x31, 0xf6, 0xdb, 0x26, 0x9b, 0x50, 0x1d, 0x81, 0xa8, 0x5f, 0xf4, 0xa4, 0x60, 0xe7, 0x9b, 0xe4,
- 0xe3, 0x65, 0x75, 0xe1, 0x6f, 0x19, 0xa8, 0xc5, 0xa1, 0xba, 0x20, 0xf5, 0x09, 0xf8, 0x85, 0x1d,
- 0x9f, 0x1d, 0x7a, 0x30, 0x71, 0x3c, 0xad, 0x53, 0x49, 0x15, 0xe6, 0xe9, 0xfb, 0xff, 0xfd, 0xd5,
- 0x8d, 0xb5, 0x9f, 0x7d, 0x75, 0x63, 0xed, 0x7f, 0xbf, 0xba, 0xb1, 0xf6, 0xd3, 0xaf, 0x6f, 0xbc,
- 0xf1, 0xb3, 0xaf, 0x6f, 0xbc, 0xf1, 0x3f, 0x5f, 0xdf, 0x78, 0xe3, 0xcb, 0x37, 0xf5, 0x6f, 0xee,
- 0x9f, 0xfd, 0x82, 0xfc, 0xe5, 0xfc, 0x27, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x89, 0x4b, 0xe1,
- 0x93, 0x97, 0x7f, 0x00, 0x00,
+ // 5713 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0xdd, 0x6f, 0x24, 0x49,
+ 0x52, 0xc0, 0xd7, 0x2f, 0x2c, 0xd4, 0x71, 0x0b, 0xf4, 0xc2, 0xb2, 0xb7, 0xdc, 0xcd, 0xcc, 0xce,
+ 0x87, 0x3d, 0x33, 0x1e, 0xb7, 0x67, 0x67, 0xf6, 0x8b, 0x3b, 0x24, 0xe8, 0xb1, 0xc7, 0xde, 0xbe,
+ 0xb5, 0xbd, 0xc6, 0xdd, 0x9e, 0x11, 0x2b, 0x21, 0x51, 0xee, 0x4a, 0xb7, 0x0b, 0x57, 0x57, 0xd6,
+ 0x55, 0x65, 0x7b, 0xa6, 0x0f, 0x81, 0x40, 0x20, 0x10, 0x08, 0xc4, 0x89, 0x2f, 0xc1, 0x13, 0x12,
+ 0x7f, 0x01, 0x7f, 0x06, 0x8f, 0xf7, 0x78, 0x8f, 0x68, 0xf7, 0xef, 0x40, 0x42, 0x95, 0x95, 0x9f,
+ 0x51, 0x11, 0x59, 0xe5, 0xbd, 0xa7, 0x19, 0x39, 0x7e, 0x11, 0x91, 0x1f, 0x91, 0x99, 0x91, 0x59,
+ 0x59, 0xd5, 0xd1, 0xcd, 0xe2, 0x6c, 0xbb, 0x28, 0xb9, 0xe0, 0xd5, 0x76, 0xc5, 0xca, 0xab, 0x74,
+ 0xc6, 0xf4, 0xbf, 0x43, 0xf9, 0xe7, 0xc1, 0x9b, 0x71, 0xbe, 0x12, 0xab, 0x82, 0xbd, 0xf7, 0xae,
+ 0x25, 0x67, 0x7c, 0xb1, 0x88, 0xf3, 0xa4, 0x6a, 0x90, 0xf7, 0xde, 0xb1, 0x12, 0x76, 0xc5, 0x72,
+ 0xa1, 0xfe, 0xfe, 0xe4, 0x67, 0xff, 0xb7, 0x16, 0xbd, 0xb5, 0x93, 0xa5, 0x2c, 0x17, 0x3b, 0x4a,
+ 0x63, 0xf0, 0x65, 0xf4, 0xed, 0x51, 0x51, 0xec, 0x33, 0xf1, 0x82, 0x95, 0x55, 0xca, 0xf3, 0xc1,
+ 0x9d, 0xa1, 0x72, 0x30, 0x3c, 0x29, 0x66, 0xc3, 0x51, 0x51, 0x0c, 0xad, 0x70, 0x78, 0xc2, 0x7e,
+ 0xb4, 0x64, 0x95, 0x78, 0xef, 0x6e, 0x18, 0xaa, 0x0a, 0x9e, 0x57, 0x6c, 0x70, 0x1e, 0xfd, 0xda,
+ 0xa8, 0x28, 0x26, 0x4c, 0xec, 0xb2, 0xba, 0x02, 0x13, 0x11, 0x0b, 0x36, 0xd8, 0x68, 0xa9, 0xfa,
+ 0x80, 0xf1, 0x71, 0xbf, 0x1b, 0x54, 0x7e, 0xa6, 0xd1, 0xb7, 0x6a, 0x3f, 0x17, 0x4b, 0x91, 0xf0,
+ 0x57, 0xf9, 0xe0, 0xfd, 0xb6, 0xa2, 0x12, 0x19, 0xdb, 0xb7, 0x43, 0x88, 0xb2, 0xfa, 0x32, 0xfa,
+ 0xe5, 0x97, 0x71, 0x96, 0x31, 0xb1, 0x53, 0xb2, 0xba, 0xe0, 0xbe, 0x4e, 0x23, 0x1a, 0x36, 0x32,
+ 0x63, 0xf7, 0x4e, 0x90, 0x51, 0x86, 0xbf, 0x8c, 0xbe, 0xdd, 0x48, 0x4e, 0xd8, 0x8c, 0x5f, 0xb1,
+ 0x72, 0x80, 0x6a, 0x29, 0x21, 0xd1, 0xe4, 0x2d, 0x08, 0xda, 0xde, 0xe1, 0xf9, 0x15, 0x2b, 0x05,
+ 0x6e, 0x5b, 0x09, 0xc3, 0xb6, 0x2d, 0xa4, 0x6c, 0xff, 0xed, 0x5a, 0xf4, 0xdd, 0xd1, 0x6c, 0xc6,
+ 0x97, 0xb9, 0x38, 0xe0, 0xb3, 0x38, 0x3b, 0x48, 0xf3, 0xcb, 0x23, 0xf6, 0x6a, 0xe7, 0xa2, 0xe6,
+ 0xf3, 0x39, 0x1b, 0x3c, 0xf5, 0x5b, 0xb5, 0x41, 0x87, 0x86, 0x1d, 0xba, 0xb0, 0xf1, 0xfd, 0xe1,
+ 0xf5, 0x94, 0x54, 0x59, 0xfe, 0x71, 0x2d, 0xba, 0x01, 0xcb, 0x32, 0xe1, 0xd9, 0x15, 0xb3, 0xa5,
+ 0xf9, 0xa8, 0xc3, 0xb0, 0x8f, 0x9b, 0xf2, 0x7c, 0x7c, 0x5d, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xdb,
+ 0x0d, 0x97, 0x09, 0xab, 0xe4, 0x70, 0x7a, 0x40, 0x47, 0x84, 0x42, 0x8c, 0xe7, 0x87, 0x7d, 0x50,
+ 0xe5, 0x2d, 0x8d, 0x06, 0xca, 0x5b, 0xc6, 0x2b, 0xe3, 0xec, 0x3e, 0x6a, 0xc1, 0x21, 0x8c, 0xaf,
+ 0x07, 0x3d, 0x48, 0xe5, 0xea, 0x8f, 0xa2, 0x5f, 0x79, 0xc9, 0xcb, 0xcb, 0xaa, 0x88, 0x67, 0x4c,
+ 0x0d, 0x85, 0x7b, 0xbe, 0xb6, 0x96, 0xc2, 0xd1, 0xb0, 0xde, 0x85, 0x39, 0x41, 0xab, 0x85, 0x5f,
+ 0x14, 0x0c, 0xce, 0x41, 0x56, 0xb1, 0x16, 0x52, 0x41, 0x0b, 0x21, 0x65, 0xfb, 0x32, 0x1a, 0x58,
+ 0xdb, 0x67, 0x7f, 0xcc, 0x66, 0x62, 0x94, 0x24, 0xb0, 0x57, 0xac, 0xae, 0x24, 0x86, 0xa3, 0x24,
+ 0xa1, 0x7a, 0x05, 0x47, 0x95, 0xb3, 0x57, 0xd1, 0x3b, 0xc0, 0xd9, 0x41, 0x5a, 0x49, 0x87, 0x5b,
+ 0x61, 0x2b, 0x0a, 0x33, 0x4e, 0x87, 0x7d, 0x71, 0xe5, 0xf8, 0xcf, 0xd7, 0xa2, 0xef, 0x20, 0x9e,
+ 0x4f, 0xd8, 0x82, 0x5f, 0xb1, 0xc1, 0xe3, 0x6e, 0x6b, 0x0d, 0x69, 0xfc, 0x7f, 0x70, 0x0d, 0x0d,
+ 0x24, 0x4c, 0x26, 0x2c, 0x63, 0x33, 0x41, 0x86, 0x49, 0x23, 0xee, 0x0c, 0x13, 0x83, 0x39, 0x23,
+ 0x4c, 0x0b, 0xf7, 0x99, 0xd8, 0x59, 0x96, 0x25, 0xcb, 0x05, 0xd9, 0x97, 0x16, 0xe9, 0xec, 0x4b,
+ 0x0f, 0x45, 0xea, 0xb3, 0xcf, 0xc4, 0x28, 0xcb, 0xc8, 0xfa, 0x34, 0xe2, 0xce, 0xfa, 0x18, 0x4c,
+ 0x79, 0x98, 0x45, 0xbf, 0xea, 0xb4, 0x98, 0x18, 0xe7, 0xe7, 0x7c, 0x40, 0xb7, 0x85, 0x94, 0x1b,
+ 0x1f, 0x1b, 0x9d, 0x1c, 0x52, 0x8d, 0xe7, 0xaf, 0x0b, 0x5e, 0xd2, 0xdd, 0xd2, 0x88, 0x3b, 0xab,
+ 0x61, 0x30, 0xe5, 0xe1, 0x0f, 0xa3, 0xb7, 0xd4, 0x2c, 0xa9, 0xd7, 0xb3, 0xbb, 0xe8, 0x14, 0x0a,
+ 0x17, 0xb4, 0x7b, 0x1d, 0x54, 0xcb, 0xfc, 0x61, 0x3a, 0x2f, 0xeb, 0xd9, 0x07, 0x37, 0xaf, 0xa4,
+ 0x1d, 0xe6, 0x2d, 0xa5, 0xcc, 0xf3, 0xe8, 0xd7, 0x7d, 0xf3, 0x3b, 0x71, 0x3e, 0x63, 0xd9, 0xe0,
+ 0x61, 0x48, 0xbd, 0x61, 0x8c, 0xab, 0xcd, 0x5e, 0xac, 0x9d, 0xec, 0x14, 0xa1, 0x26, 0xd3, 0x3b,
+ 0xa8, 0x36, 0x98, 0x4a, 0xef, 0x86, 0xa1, 0x96, 0xed, 0x5d, 0x96, 0x31, 0xd2, 0x76, 0x23, 0xec,
+ 0xb0, 0x6d, 0x20, 0x65, 0xbb, 0x8c, 0x7e, 0xc3, 0x74, 0x73, 0x9d, 0x17, 0x48, 0x79, 0xbd, 0xe8,
+ 0x6c, 0x12, 0xfd, 0xe8, 0x42, 0xc6, 0xd7, 0xa3, 0x7e, 0x70, 0xab, 0x3e, 0x6a, 0x46, 0xc1, 0xeb,
+ 0x03, 0xe6, 0x93, 0xbb, 0x61, 0x48, 0xd9, 0xfe, 0xbb, 0xb5, 0xe8, 0x7b, 0x4a, 0xf6, 0x3c, 0x8f,
+ 0xcf, 0x32, 0x26, 0x97, 0xf8, 0x23, 0x26, 0x5e, 0xf1, 0xf2, 0x72, 0xb2, 0xca, 0x67, 0x44, 0x3a,
+ 0x83, 0xc3, 0x1d, 0xe9, 0x0c, 0xa9, 0xa4, 0x0a, 0xf3, 0x27, 0xd1, 0xbb, 0x3a, 0x28, 0x2e, 0xe2,
+ 0x7c, 0xce, 0x7e, 0x58, 0xf1, 0x7c, 0x54, 0xa4, 0xa3, 0x24, 0x29, 0x07, 0x43, 0xbc, 0xeb, 0x21,
+ 0x67, 0x4a, 0xb0, 0xdd, 0x9b, 0x77, 0xd2, 0x67, 0xd5, 0xca, 0x82, 0x17, 0x30, 0x7d, 0xd6, 0xcd,
+ 0x27, 0x78, 0x41, 0xa5, 0xcf, 0x3e, 0xd2, 0xb2, 0x7a, 0x58, 0xaf, 0x41, 0xb8, 0xd5, 0x43, 0x77,
+ 0xd1, 0xb9, 0x1d, 0x42, 0xec, 0x1a, 0xa0, 0x1b, 0x8a, 0xe7, 0xe7, 0xe9, 0xfc, 0xb4, 0x48, 0xea,
+ 0x31, 0xf4, 0x00, 0xaf, 0xb3, 0x83, 0x10, 0x6b, 0x00, 0x81, 0x2a, 0x6f, 0xff, 0x60, 0xb3, 0x4c,
+ 0x35, 0x2f, 0xed, 0x95, 0x7c, 0x71, 0xc0, 0xe6, 0xf1, 0x6c, 0xa5, 0x26, 0xd3, 0x0f, 0x43, 0xb3,
+ 0x18, 0xa4, 0x4d, 0x21, 0x3e, 0xba, 0xa6, 0x96, 0x2a, 0xcf, 0x7f, 0xae, 0x45, 0x77, 0xbd, 0x38,
+ 0x51, 0xc1, 0xd4, 0x94, 0x7e, 0x94, 0x27, 0x27, 0xac, 0x12, 0x71, 0x29, 0x06, 0xdf, 0x0f, 0xc4,
+ 0x00, 0xa1, 0x63, 0xca, 0xf6, 0x83, 0x6f, 0xa4, 0x6b, 0x7b, 0x7d, 0x52, 0xaf, 0x12, 0x6a, 0xfe,
+ 0xf1, 0x7b, 0x5d, 0x4a, 0xe0, 0xec, 0x73, 0x3b, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0x71, 0x7e, 0x95,
+ 0x0a, 0xb6, 0xcf, 0x72, 0x56, 0xb6, 0x7b, 0xbd, 0x51, 0xf5, 0x11, 0xa2, 0xd7, 0x09, 0xd4, 0xce,
+ 0x74, 0x9e, 0x37, 0x93, 0x69, 0x6c, 0x06, 0x8c, 0xb4, 0x72, 0x8d, 0x47, 0xfd, 0x60, 0xa2, 0x86,
+ 0x62, 0xbf, 0x36, 0x12, 0xac, 0x61, 0x83, 0xf4, 0xaa, 0xa1, 0x41, 0xed, 0xc6, 0xdc, 0xf1, 0x76,
+ 0xc2, 0xae, 0xf8, 0x25, 0xdc, 0x98, 0xbb, 0x06, 0x1a, 0x80, 0xd8, 0x98, 0xa3, 0xa0, 0x4d, 0x3e,
+ 0x1c, 0x3f, 0x2f, 0x52, 0xf6, 0x0a, 0x24, 0x1f, 0xae, 0x72, 0x2d, 0x26, 0x92, 0x0f, 0x04, 0x53,
+ 0x1e, 0x8e, 0xa2, 0x5f, 0x92, 0xc2, 0x1f, 0xf2, 0x34, 0x1f, 0xdc, 0x44, 0x94, 0x6a, 0x81, 0xb1,
+ 0x7a, 0x8b, 0x06, 0x40, 0x89, 0xeb, 0xbf, 0xaa, 0x4c, 0xe0, 0x1e, 0xa1, 0x04, 0x92, 0x80, 0xf5,
+ 0x2e, 0xcc, 0x66, 0x7d, 0x52, 0x58, 0xcf, 0x96, 0x93, 0x8b, 0xb8, 0x4c, 0xf3, 0xf9, 0x00, 0xd3,
+ 0x75, 0xe4, 0x44, 0xd6, 0x87, 0x71, 0x20, 0x9c, 0x94, 0xe2, 0xa8, 0x28, 0xca, 0x7a, 0x12, 0xc6,
+ 0xc2, 0xc9, 0x47, 0x82, 0xe1, 0xd4, 0x42, 0x71, 0x6f, 0xbb, 0x6c, 0x96, 0xa5, 0x79, 0xd0, 0x9b,
+ 0x42, 0xfa, 0x78, 0xb3, 0x28, 0x08, 0xde, 0x03, 0x16, 0x5f, 0x31, 0x5d, 0x33, 0xac, 0x65, 0x5c,
+ 0x20, 0x18, 0xbc, 0x00, 0xb4, 0x5b, 0x6c, 0x29, 0x3e, 0x8c, 0x2f, 0x59, 0xdd, 0xc0, 0xac, 0x5e,
+ 0xc2, 0x07, 0x98, 0xbe, 0x47, 0x10, 0x5b, 0x6c, 0x9c, 0x54, 0xae, 0x96, 0xd1, 0x3b, 0x52, 0x7e,
+ 0x1c, 0x97, 0x22, 0x9d, 0xa5, 0x45, 0x9c, 0xeb, 0xad, 0x1b, 0x36, 0x8b, 0xb4, 0x28, 0xe3, 0x72,
+ 0xab, 0x27, 0xad, 0xdc, 0xfe, 0xdb, 0x5a, 0xf4, 0x3e, 0xf4, 0x7b, 0xcc, 0xca, 0x45, 0x2a, 0x4f,
+ 0x00, 0xaa, 0x66, 0xca, 0x1f, 0x7c, 0x12, 0x36, 0xda, 0x52, 0x30, 0xa5, 0xf9, 0xf4, 0xfa, 0x8a,
+ 0x36, 0xef, 0x9b, 0xa8, 0x5d, 0xd1, 0x17, 0x65, 0xd2, 0x3a, 0x21, 0x9b, 0xe8, 0xad, 0x8e, 0x14,
+ 0x12, 0x79, 0x5f, 0x0b, 0x02, 0x23, 0xfc, 0x34, 0xaf, 0xb4, 0x75, 0x6c, 0x84, 0x5b, 0x71, 0x70,
+ 0x84, 0x7b, 0x98, 0x1d, 0xe1, 0xc7, 0xcb, 0xb3, 0x2c, 0xad, 0x2e, 0xd2, 0x7c, 0xae, 0x92, 0x7c,
+ 0x5f, 0xd7, 0x8a, 0x61, 0x9e, 0xbf, 0xd1, 0xc9, 0x61, 0x4e, 0x54, 0xb0, 0x90, 0x4e, 0x40, 0x98,
+ 0x6c, 0x74, 0x72, 0x76, 0xef, 0x65, 0xa5, 0xf5, 0xa6, 0x1f, 0xec, 0xbd, 0x1c, 0xd5, 0x5a, 0x4a,
+ 0xec, 0xbd, 0xda, 0x94, 0xdd, 0x7b, 0xb9, 0x75, 0xa8, 0x78, 0x76, 0xc5, 0x4e, 0xcb, 0x14, 0xec,
+ 0xbd, 0xbc, 0xf2, 0x69, 0x86, 0xd8, 0x7b, 0x51, 0xac, 0x9d, 0xa8, 0x2c, 0xb1, 0xcf, 0xc4, 0x44,
+ 0xc4, 0x62, 0x59, 0x81, 0x89, 0xca, 0xb1, 0x61, 0x10, 0x62, 0xa2, 0x22, 0x50, 0xe5, 0xed, 0xf7,
+ 0xa3, 0xa8, 0x39, 0x2f, 0x91, 0x67, 0x5a, 0xfe, 0xda, 0xa3, 0x0e, 0x52, 0xbc, 0x03, 0xad, 0xf7,
+ 0x03, 0x84, 0x4d, 0xaf, 0x9a, 0xbf, 0xcb, 0xa3, 0xba, 0x01, 0xaa, 0x21, 0x45, 0x44, 0x7a, 0x05,
+ 0x10, 0x58, 0xd0, 0xc9, 0x05, 0x7f, 0x85, 0x17, 0xb4, 0x96, 0x84, 0x0b, 0xaa, 0x08, 0x7b, 0x78,
+ 0xae, 0x0a, 0x8a, 0x1d, 0x9e, 0xeb, 0x62, 0x84, 0x0e, 0xcf, 0x21, 0x63, 0x63, 0xc6, 0x35, 0xfc,
+ 0x8c, 0xf3, 0xcb, 0x45, 0x5c, 0x5e, 0x82, 0x98, 0xf1, 0x94, 0x35, 0x43, 0xc4, 0x0c, 0xc5, 0xda,
+ 0x98, 0x71, 0x1d, 0xd6, 0xc9, 0xf9, 0x69, 0x99, 0x81, 0x98, 0xf1, 0x6c, 0x28, 0x84, 0x88, 0x19,
+ 0x02, 0xb5, 0xb3, 0x93, 0xeb, 0x6d, 0xc2, 0xe0, 0x71, 0x8d, 0xa7, 0x3e, 0x61, 0xd4, 0x71, 0x0d,
+ 0x82, 0xc1, 0x10, 0xda, 0x2f, 0xe3, 0xe2, 0x02, 0x0f, 0x21, 0x29, 0x0a, 0x87, 0x90, 0x46, 0x60,
+ 0x7f, 0x4f, 0x58, 0x5c, 0xce, 0x2e, 0xf0, 0xfe, 0x6e, 0x64, 0xe1, 0xfe, 0x36, 0x0c, 0xec, 0xef,
+ 0x46, 0xf0, 0x32, 0x15, 0x17, 0x87, 0x4c, 0xc4, 0x78, 0x7f, 0xfb, 0x4c, 0xb8, 0xbf, 0x5b, 0xac,
+ 0xcd, 0xfe, 0x5d, 0x87, 0x93, 0xe5, 0x59, 0x35, 0x2b, 0xd3, 0x33, 0x36, 0x08, 0x58, 0x31, 0x10,
+ 0x91, 0xfd, 0x93, 0xb0, 0xf2, 0xf9, 0x93, 0xb5, 0xe8, 0xa6, 0xee, 0x76, 0x5e, 0x55, 0x6a, 0xed,
+ 0xf3, 0xdd, 0x7f, 0x84, 0xf7, 0x2f, 0x81, 0x13, 0x8f, 0x33, 0x7a, 0xa8, 0x39, 0xb9, 0x01, 0x5e,
+ 0xa4, 0xd3, 0xbc, 0x32, 0x85, 0xfa, 0xa4, 0x8f, 0x75, 0x47, 0x81, 0xc8, 0x0d, 0x7a, 0x29, 0xda,
+ 0xb4, 0x4c, 0xf5, 0x8f, 0x96, 0x8d, 0x93, 0x0a, 0xa4, 0x65, 0xba, 0xbd, 0x1d, 0x82, 0x48, 0xcb,
+ 0x70, 0x12, 0x86, 0xc2, 0x7e, 0xc9, 0x97, 0x45, 0xd5, 0x11, 0x0a, 0x00, 0x0a, 0x87, 0x42, 0x1b,
+ 0x56, 0x3e, 0x5f, 0x47, 0xbf, 0xe9, 0x86, 0x9f, 0xdb, 0xd8, 0x5b, 0x74, 0x4c, 0x61, 0x4d, 0x3c,
+ 0xec, 0x8b, 0xdb, 0x8c, 0x42, 0x7b, 0x16, 0xbb, 0x4c, 0xc4, 0x69, 0x56, 0x0d, 0xd6, 0x71, 0x1b,
+ 0x5a, 0x4e, 0x64, 0x14, 0x18, 0x07, 0xe7, 0xb7, 0xdd, 0x65, 0x91, 0xa5, 0xb3, 0xf6, 0xc3, 0x24,
+ 0xa5, 0x6b, 0xc4, 0xe1, 0xf9, 0xcd, 0xc5, 0xe0, 0x7c, 0x5d, 0xa7, 0x7e, 0xf2, 0x3f, 0xd3, 0x55,
+ 0xc1, 0xf0, 0xf9, 0xda, 0x43, 0xc2, 0xf3, 0x35, 0x44, 0x61, 0x7d, 0x26, 0x4c, 0x1c, 0xc4, 0x2b,
+ 0xbe, 0x24, 0xe6, 0x6b, 0x23, 0x0e, 0xd7, 0xc7, 0xc5, 0xec, 0xde, 0xc0, 0x78, 0x18, 0xe7, 0x82,
+ 0x95, 0x79, 0x9c, 0xed, 0x65, 0xf1, 0xbc, 0x1a, 0x10, 0x73, 0x8c, 0x4f, 0x11, 0x7b, 0x03, 0x9a,
+ 0x46, 0x9a, 0x71, 0x5c, 0xed, 0xc5, 0x57, 0xbc, 0x4c, 0x05, 0xdd, 0x8c, 0x16, 0xe9, 0x6c, 0x46,
+ 0x0f, 0x45, 0xbd, 0x8d, 0xca, 0xd9, 0x45, 0x7a, 0xc5, 0x92, 0x80, 0x37, 0x8d, 0xf4, 0xf0, 0xe6,
+ 0xa0, 0x48, 0xa7, 0x4d, 0xf8, 0xb2, 0x9c, 0x31, 0xb2, 0xd3, 0x1a, 0x71, 0x67, 0xa7, 0x19, 0x4c,
+ 0x79, 0xf8, 0xab, 0xb5, 0xe8, 0xb7, 0x1a, 0xa9, 0xfb, 0x84, 0x67, 0x37, 0xae, 0x2e, 0xce, 0x78,
+ 0x5c, 0x26, 0x83, 0x0f, 0x30, 0x3b, 0x28, 0x6a, 0x5c, 0x3f, 0xb9, 0x8e, 0x0a, 0x6c, 0xd6, 0x3a,
+ 0xef, 0xb6, 0x23, 0x0e, 0x6d, 0x56, 0x0f, 0x09, 0x37, 0x2b, 0x44, 0xe1, 0x04, 0x22, 0xe5, 0xcd,
+ 0x01, 0xe0, 0x3a, 0xa9, 0xef, 0x9f, 0x02, 0x6e, 0x74, 0x72, 0x70, 0x7e, 0xac, 0x85, 0x7e, 0xb4,
+ 0x6c, 0x51, 0x36, 0xf0, 0x88, 0x19, 0xf6, 0xc5, 0x49, 0xcf, 0x66, 0x54, 0x84, 0x3d, 0xb7, 0x46,
+ 0xc6, 0xb0, 0x2f, 0x4e, 0x78, 0x76, 0xa6, 0xb5, 0x90, 0x67, 0x64, 0x6a, 0x1b, 0xf6, 0xc5, 0x61,
+ 0xf6, 0xa5, 0x18, 0xbd, 0x2e, 0x3c, 0x0c, 0xd8, 0x81, 0x6b, 0xc3, 0x66, 0x2f, 0x56, 0x39, 0xfc,
+ 0x9b, 0xb5, 0xe8, 0xbb, 0xd6, 0xe3, 0x21, 0x4f, 0xd2, 0xf3, 0x55, 0x03, 0xbd, 0x88, 0xb3, 0x25,
+ 0xab, 0x06, 0x4f, 0x28, 0x6b, 0x6d, 0xd6, 0x94, 0xe0, 0xe9, 0xb5, 0x74, 0xe0, 0xd8, 0x19, 0x15,
+ 0x45, 0xb6, 0x9a, 0xb2, 0x45, 0x91, 0x91, 0x63, 0xc7, 0x43, 0xc2, 0x63, 0x07, 0xa2, 0x30, 0x2b,
+ 0x9f, 0xf2, 0x3a, 0xe7, 0x47, 0xb3, 0x72, 0x29, 0x0a, 0x67, 0xe5, 0x1a, 0x81, 0xb9, 0xd2, 0x94,
+ 0xef, 0xf0, 0x2c, 0x63, 0x33, 0xd1, 0xbe, 0x25, 0x62, 0x34, 0x2d, 0x11, 0xce, 0x95, 0x00, 0x69,
+ 0x4f, 0xe5, 0xf4, 0x1e, 0x32, 0x2e, 0xd9, 0xb3, 0xd5, 0x41, 0x9a, 0x5f, 0x0e, 0xf0, 0xb4, 0xc0,
+ 0x02, 0xc4, 0xa9, 0x1c, 0x0a, 0xc2, 0xbd, 0xea, 0x69, 0x9e, 0x70, 0x7c, 0xaf, 0x5a, 0x4b, 0xc2,
+ 0x7b, 0x55, 0x45, 0x40, 0x93, 0x27, 0x8c, 0x32, 0x59, 0x4b, 0xc2, 0x26, 0x15, 0x81, 0x4d, 0x85,
+ 0xea, 0x49, 0x11, 0x39, 0x15, 0x82, 0x67, 0x43, 0x1b, 0x9d, 0x1c, 0xdc, 0x73, 0x29, 0x07, 0x68,
+ 0x44, 0x00, 0xe3, 0x77, 0x82, 0x0c, 0x0c, 0x7d, 0xbd, 0x1b, 0xde, 0x63, 0x62, 0x76, 0x81, 0x87,
+ 0xbe, 0x87, 0x84, 0x43, 0x1f, 0xa2, 0xb0, 0xad, 0xa6, 0xdc, 0xec, 0xe6, 0xd7, 0xf1, 0xc0, 0x6b,
+ 0xed, 0xe4, 0x37, 0x3a, 0x39, 0xd8, 0x56, 0xe3, 0x05, 0xdd, 0x56, 0x8d, 0x2c, 0xdc, 0x56, 0x86,
+ 0x81, 0xa5, 0x6f, 0x04, 0xf2, 0x90, 0x6c, 0x9d, 0x56, 0xf4, 0x8e, 0xc9, 0x36, 0x3a, 0x39, 0xe5,
+ 0xe4, 0x5f, 0xcc, 0xfe, 0xb0, 0x91, 0x1e, 0xf1, 0x7a, 0xf0, 0xbd, 0x88, 0xb3, 0x34, 0x89, 0x05,
+ 0x9b, 0xf2, 0x4b, 0x96, 0xe3, 0x5b, 0x31, 0x55, 0xda, 0x86, 0x1f, 0x7a, 0x0a, 0xe1, 0xad, 0x58,
+ 0x58, 0x11, 0xc6, 0x49, 0x43, 0x9f, 0x56, 0x6c, 0x27, 0xae, 0x88, 0x29, 0xd2, 0x43, 0xc2, 0x71,
+ 0x02, 0x51, 0x98, 0x08, 0x37, 0xf2, 0xe7, 0xaf, 0x0b, 0x56, 0xa6, 0x2c, 0x9f, 0x31, 0x3c, 0x11,
+ 0x86, 0x54, 0x38, 0x11, 0x46, 0x68, 0xb8, 0x09, 0xdc, 0x8d, 0x05, 0x7b, 0xb6, 0x9a, 0xa6, 0x0b,
+ 0x56, 0x89, 0x78, 0x51, 0xe0, 0x9b, 0x40, 0x00, 0x85, 0x37, 0x81, 0x6d, 0xb8, 0x75, 0xe6, 0x64,
+ 0x66, 0xda, 0xf6, 0xad, 0x35, 0x48, 0x04, 0x6e, 0xad, 0x11, 0x28, 0x6c, 0x58, 0x0b, 0xa0, 0x4f,
+ 0x1f, 0x5a, 0x56, 0x82, 0x4f, 0x1f, 0x68, 0xba, 0x75, 0x92, 0x67, 0x98, 0x49, 0x3d, 0x34, 0x3b,
+ 0x8a, 0x3e, 0x71, 0x87, 0xe8, 0x66, 0x2f, 0x16, 0x3f, 0x3a, 0x3c, 0x61, 0x59, 0x2c, 0xd7, 0xc3,
+ 0xc0, 0xf9, 0x9c, 0x66, 0xfa, 0x1c, 0x1d, 0x3a, 0xac, 0x72, 0xf8, 0x17, 0x6b, 0xd1, 0x7b, 0x98,
+ 0xc7, 0x2f, 0x0a, 0xe9, 0xf7, 0x71, 0xb7, 0xad, 0x86, 0x24, 0xae, 0xe5, 0x85, 0x35, 0xec, 0xcd,
+ 0x12, 0x2d, 0xb2, 0xb7, 0xf6, 0x54, 0x01, 0xfc, 0x6c, 0xd0, 0x94, 0x1f, 0x72, 0xc4, 0xcd, 0x92,
+ 0x10, 0x6f, 0x37, 0x5a, 0x7e, 0xb9, 0x2a, 0xb0, 0xd1, 0x32, 0x36, 0x94, 0x98, 0xd8, 0x68, 0x21,
+ 0x98, 0x1d, 0x9d, 0x6e, 0xf5, 0x5e, 0xa6, 0xe2, 0x42, 0x26, 0x72, 0x60, 0x74, 0x7a, 0x65, 0x35,
+ 0x10, 0x31, 0x3a, 0x49, 0x18, 0xa6, 0x3a, 0x1a, 0xac, 0xc7, 0x26, 0x36, 0x97, 0x1b, 0x43, 0xee,
+ 0xc8, 0xbc, 0xdf, 0x0d, 0xc2, 0x78, 0xd5, 0x62, 0xb5, 0xa7, 0x7a, 0x18, 0xb2, 0x00, 0xf6, 0x55,
+ 0x9b, 0xbd, 0x58, 0xe5, 0xf0, 0xcf, 0xa2, 0xef, 0xb4, 0x2a, 0xb6, 0xc7, 0x62, 0xb1, 0x2c, 0x59,
+ 0x32, 0xd8, 0xee, 0x28, 0xb7, 0x06, 0x8d, 0xeb, 0xc7, 0xfd, 0x15, 0x5a, 0xc9, 0xbf, 0xe6, 0x9a,
+ 0xb0, 0x32, 0x65, 0x78, 0x12, 0x32, 0xe9, 0xb3, 0xc1, 0xe4, 0x9f, 0xd6, 0x69, 0xed, 0xdf, 0xdd,
+ 0xe8, 0x1a, 0x5d, 0xc5, 0x69, 0x26, 0x9f, 0x02, 0x7f, 0x10, 0x32, 0xea, 0xa1, 0xc1, 0xfd, 0x3b,
+ 0xa9, 0xd2, 0x9a, 0x99, 0xe5, 0x18, 0x77, 0xf6, 0x7d, 0x8f, 0xe8, 0x99, 0x00, 0xd9, 0xf6, 0x6d,
+ 0xf5, 0xa4, 0x95, 0x5b, 0xa1, 0x97, 0xbc, 0xfa, 0xcf, 0x6e, 0x90, 0x63, 0x5e, 0x95, 0x2a, 0x12,
+ 0xe9, 0x5b, 0x3d, 0x69, 0xe5, 0xf5, 0x4f, 0xa3, 0x77, 0xdb, 0x5e, 0xd5, 0x42, 0xb4, 0xdd, 0x69,
+ 0x0a, 0xac, 0x45, 0x8f, 0xfb, 0x2b, 0x28, 0xf7, 0xff, 0x6e, 0x0e, 0xbc, 0x1b, 0xff, 0x33, 0xbe,
+ 0x58, 0xb0, 0x3c, 0x61, 0x89, 0xd6, 0xa8, 0xea, 0x8d, 0xd9, 0xa7, 0xb4, 0x5d, 0xa3, 0x30, 0x74,
+ 0x35, 0x4c, 0x89, 0x7e, 0xfb, 0x1b, 0x68, 0xaa, 0xa2, 0xfd, 0xf7, 0x5a, 0xf4, 0x00, 0x2d, 0x9a,
+ 0x0e, 0x5c, 0xaf, 0x88, 0xbf, 0xd7, 0xc7, 0x11, 0xa6, 0x69, 0x8a, 0x3a, 0xfa, 0x39, 0x2c, 0xa8,
+ 0x22, 0xff, 0xc7, 0x5a, 0x74, 0xdb, 0x2a, 0xd6, 0xe1, 0xbd, 0xc3, 0xf3, 0xf3, 0x2c, 0x9d, 0x09,
+ 0xf9, 0xa8, 0x57, 0xa9, 0xd0, 0xcd, 0x49, 0x69, 0x74, 0x37, 0x67, 0x40, 0xd3, 0xee, 0x8a, 0x3f,
+ 0x4b, 0x2b, 0xc1, 0xcb, 0xd5, 0xe4, 0x82, 0xbf, 0xd2, 0xef, 0x3d, 0xf9, 0xf3, 0xb2, 0x02, 0x86,
+ 0x0e, 0x41, 0xec, 0x8a, 0x71, 0xb2, 0xe5, 0xca, 0xbe, 0x1f, 0x55, 0x11, 0xae, 0x1c, 0xa2, 0xc3,
+ 0x95, 0x4f, 0xda, 0x55, 0x49, 0xd7, 0xca, 0xbe, 0xcc, 0xb5, 0x81, 0x17, 0xb5, 0xfd, 0x42, 0xd7,
+ 0xfd, 0x6e, 0xd0, 0xe6, 0xa6, 0x4a, 0xbc, 0x9b, 0x9e, 0x9f, 0x9b, 0x3a, 0xe1, 0x25, 0x75, 0x11,
+ 0x22, 0x37, 0x25, 0x50, 0xbb, 0xbd, 0xda, 0x4b, 0x33, 0x26, 0x1f, 0x0a, 0x7d, 0x71, 0x7e, 0x9e,
+ 0xf1, 0x38, 0x01, 0xdb, 0xab, 0x5a, 0x3c, 0x74, 0xe5, 0xc4, 0xf6, 0x0a, 0xe3, 0xec, 0x75, 0x93,
+ 0x5a, 0x5a, 0x47, 0x77, 0x3e, 0x4b, 0x33, 0x78, 0x6d, 0x5a, 0x6a, 0x1a, 0x21, 0x71, 0xdd, 0xa4,
+ 0x05, 0xd9, 0x14, 0xa8, 0x16, 0xd5, 0x51, 0xa9, 0xcb, 0x7f, 0xaf, 0xad, 0xe8, 0x88, 0x89, 0x14,
+ 0x08, 0xc1, 0xec, 0xf1, 0x45, 0x2d, 0x3c, 0x2d, 0xa4, 0xf1, 0x5b, 0x6d, 0xad, 0x46, 0x42, 0x1c,
+ 0x5f, 0xf8, 0x84, 0xdd, 0x2d, 0xd7, 0x7f, 0xdf, 0xe5, 0xaf, 0x72, 0x69, 0xf4, 0x76, 0x5b, 0x45,
+ 0xcb, 0x88, 0xdd, 0x32, 0x64, 0x94, 0xe1, 0xcf, 0xa3, 0x5f, 0x94, 0x86, 0x4b, 0x5e, 0x0c, 0x6e,
+ 0x20, 0x0a, 0xa5, 0x73, 0xc9, 0xf8, 0x26, 0x29, 0xb7, 0xb7, 0x53, 0x4c, 0x6c, 0x9c, 0x56, 0xf1,
+ 0x1c, 0xbe, 0x19, 0x60, 0x7b, 0x5c, 0x4a, 0x89, 0xdb, 0x29, 0x6d, 0xca, 0x8f, 0x8a, 0x23, 0x9e,
+ 0x28, 0xeb, 0x48, 0x0d, 0x8d, 0x30, 0x14, 0x15, 0x2e, 0x64, 0xd3, 0xd6, 0xa3, 0xf8, 0x2a, 0x9d,
+ 0x9b, 0xd4, 0xa2, 0x99, 0xc0, 0x2a, 0x90, 0xb6, 0x5a, 0x66, 0xe8, 0x40, 0x44, 0xda, 0x4a, 0xc2,
+ 0xca, 0xe7, 0x3f, 0xaf, 0x45, 0xb7, 0x2c, 0xb3, 0xaf, 0x0f, 0x7c, 0xc7, 0xf9, 0x39, 0xaf, 0x93,
+ 0xdc, 0x83, 0x34, 0xbf, 0xac, 0x06, 0x1f, 0x53, 0x26, 0x71, 0xde, 0x14, 0xe5, 0x93, 0x6b, 0xeb,
+ 0xd9, 0xfd, 0x89, 0x3e, 0x0d, 0xb5, 0x57, 0x22, 0x1a, 0x0d, 0xb0, 0x3f, 0x31, 0x87, 0xa6, 0x90,
+ 0x23, 0xf6, 0x27, 0x21, 0xde, 0x76, 0xb1, 0x71, 0x9e, 0xf1, 0x1c, 0x76, 0xb1, 0xb5, 0x50, 0x0b,
+ 0x89, 0x2e, 0x6e, 0x41, 0x76, 0x3e, 0xd6, 0xa2, 0xe6, 0x7c, 0x6d, 0x94, 0x65, 0x60, 0x3e, 0x36,
+ 0xaa, 0x06, 0x20, 0xe6, 0x63, 0x14, 0x54, 0x7e, 0x4e, 0xa2, 0x6f, 0xd5, 0x4d, 0x7a, 0x5c, 0xb2,
+ 0xab, 0x94, 0xc1, 0xdb, 0x3b, 0x8e, 0x84, 0x18, 0xff, 0x3e, 0x61, 0x47, 0xd6, 0x69, 0x5e, 0x15,
+ 0x59, 0x5c, 0x5d, 0xa8, 0xfb, 0x1c, 0x7e, 0x9d, 0xb5, 0x10, 0xde, 0xe8, 0xb8, 0xd7, 0x41, 0xd9,
+ 0x49, 0x5d, 0xcb, 0xcc, 0x14, 0xb3, 0x8e, 0xab, 0xb6, 0xa6, 0x99, 0x8d, 0x4e, 0xce, 0x3e, 0x34,
+ 0xd9, 0x8f, 0xb3, 0x8c, 0x95, 0x2b, 0x2d, 0x3b, 0x8c, 0xf3, 0xf4, 0x9c, 0x55, 0x02, 0x3c, 0x34,
+ 0x51, 0xd4, 0x10, 0x62, 0xc4, 0x43, 0x93, 0x00, 0x6e, 0xf7, 0x6d, 0xc0, 0xf3, 0x38, 0x4f, 0xd8,
+ 0x6b, 0xb0, 0x6f, 0x83, 0x76, 0x24, 0x43, 0xec, 0xdb, 0x28, 0xd6, 0x3e, 0x3c, 0x78, 0x96, 0xf1,
+ 0xd9, 0xa5, 0x5a, 0x02, 0xfc, 0x0e, 0x96, 0x12, 0xb8, 0x06, 0xdc, 0x0e, 0x21, 0x76, 0x11, 0x90,
+ 0x82, 0x13, 0x56, 0x64, 0xf1, 0x0c, 0x5e, 0xe1, 0x6a, 0x74, 0x94, 0x8c, 0x58, 0x04, 0x20, 0x03,
+ 0x8a, 0xab, 0xae, 0x86, 0x61, 0xc5, 0x05, 0x37, 0xc3, 0x6e, 0x87, 0x10, 0xbb, 0x0c, 0x4a, 0xc1,
+ 0xa4, 0xc8, 0x52, 0x01, 0x86, 0x41, 0xa3, 0x21, 0x25, 0xc4, 0x30, 0xf0, 0x09, 0x60, 0xf2, 0x90,
+ 0x95, 0x73, 0x86, 0x9a, 0x94, 0x92, 0xa0, 0x49, 0x4d, 0xd8, 0xfb, 0xea, 0x4d, 0xdd, 0x79, 0xb1,
+ 0x02, 0xf7, 0xd5, 0x55, 0xb5, 0x78, 0xb1, 0x22, 0xee, 0xab, 0x7b, 0x00, 0x28, 0xe2, 0x71, 0x5c,
+ 0x09, 0xbc, 0x88, 0x52, 0x12, 0x2c, 0xa2, 0x26, 0xec, 0x1a, 0xdd, 0x14, 0x71, 0x29, 0xc0, 0x1a,
+ 0xad, 0x0a, 0xe0, 0x5c, 0x62, 0xb8, 0x49, 0xca, 0xed, 0x4c, 0xd2, 0xf4, 0x0a, 0x13, 0x7b, 0x29,
+ 0xcb, 0x92, 0x0a, 0xcc, 0x24, 0xaa, 0xdd, 0xb5, 0x94, 0x98, 0x49, 0xda, 0x14, 0x08, 0x25, 0xf5,
+ 0x04, 0x04, 0xab, 0x1d, 0x78, 0x00, 0x72, 0x3b, 0x84, 0xd8, 0xf9, 0x49, 0x17, 0x7a, 0x27, 0x2e,
+ 0xcb, 0xb4, 0x5e, 0xfc, 0xd7, 0xf1, 0x02, 0x69, 0x39, 0x31, 0x3f, 0x61, 0x1c, 0x18, 0x5e, 0x7a,
+ 0xe2, 0xc6, 0x0a, 0x06, 0xa7, 0xee, 0x3b, 0x41, 0xc6, 0x66, 0x9c, 0x52, 0xe2, 0x3c, 0x85, 0xc7,
+ 0x5a, 0x13, 0x79, 0x08, 0xbf, 0xde, 0x85, 0x39, 0xaf, 0xce, 0x19, 0x17, 0x87, 0xfc, 0x8a, 0x4d,
+ 0xf9, 0xf3, 0xd7, 0x69, 0x55, 0x6f, 0xb7, 0xd4, 0xca, 0xfd, 0x94, 0xb0, 0x84, 0xc1, 0xc4, 0xab,
+ 0x73, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x62, 0xaf, 0xd0, 0x04, 0x02, 0x5a, 0x34, 0x1c,
+ 0x91, 0x40, 0x84, 0x78, 0x7b, 0x62, 0x66, 0x9c, 0xab, 0xef, 0x25, 0x4c, 0xb9, 0xce, 0xe5, 0x28,
+ 0x6b, 0x10, 0x24, 0x0e, 0x2d, 0x82, 0x0a, 0x76, 0x7f, 0x69, 0xfc, 0xdb, 0x21, 0x76, 0x9f, 0xb0,
+ 0xd3, 0x1e, 0x66, 0x0f, 0x7a, 0x90, 0x88, 0x2b, 0x7b, 0x95, 0x84, 0x72, 0xd5, 0xbe, 0x49, 0xf2,
+ 0xa0, 0x07, 0xe9, 0x9c, 0xbe, 0xb9, 0xd5, 0x7a, 0x16, 0xcf, 0x2e, 0xe7, 0x25, 0x5f, 0xe6, 0xc9,
+ 0x0e, 0xcf, 0x78, 0x09, 0x4e, 0xdf, 0xbc, 0x52, 0x03, 0x94, 0x38, 0x7d, 0xeb, 0x50, 0xb1, 0x19,
+ 0x9c, 0x5b, 0x8a, 0x51, 0x96, 0xce, 0xe1, 0x8e, 0xda, 0x33, 0x24, 0x01, 0x22, 0x83, 0x43, 0x41,
+ 0x24, 0x88, 0x9a, 0x1d, 0xb7, 0x48, 0x67, 0x71, 0xd6, 0xf8, 0xdb, 0xa6, 0xcd, 0x78, 0x60, 0x67,
+ 0x10, 0x21, 0x0a, 0x48, 0x3d, 0xa7, 0xcb, 0x32, 0x1f, 0xe7, 0x82, 0x93, 0xf5, 0xd4, 0x40, 0x67,
+ 0x3d, 0x1d, 0x10, 0x4c, 0xab, 0x53, 0xf6, 0xba, 0x2e, 0x4d, 0xfd, 0x0f, 0x36, 0xad, 0xd6, 0x7f,
+ 0x1f, 0x2a, 0x79, 0x68, 0x5a, 0x05, 0x1c, 0xa8, 0x8c, 0x72, 0xd2, 0x04, 0x4c, 0x40, 0xdb, 0x0f,
+ 0x93, 0xfb, 0xdd, 0x20, 0xee, 0x67, 0x22, 0x56, 0x19, 0x0b, 0xf9, 0x91, 0x40, 0x1f, 0x3f, 0x1a,
+ 0xb4, 0xc7, 0x2d, 0x5e, 0x7d, 0x2e, 0xd8, 0xec, 0xb2, 0x75, 0x33, 0xce, 0x2f, 0x68, 0x83, 0x10,
+ 0xc7, 0x2d, 0x04, 0x8a, 0x77, 0xd1, 0x78, 0xc6, 0xf3, 0x50, 0x17, 0xd5, 0xf2, 0x3e, 0x5d, 0xa4,
+ 0x38, 0xbb, 0xf9, 0x35, 0x52, 0x15, 0x99, 0x4d, 0x37, 0x6d, 0x12, 0x16, 0x5c, 0x88, 0xd8, 0xfc,
+ 0x92, 0xb0, 0xcd, 0xc9, 0xa1, 0xcf, 0xc3, 0xf6, 0x6b, 0x03, 0x2d, 0x2b, 0x87, 0xf4, 0x6b, 0x03,
+ 0x14, 0x4b, 0x57, 0xb2, 0x89, 0x91, 0x0e, 0x2b, 0x7e, 0x9c, 0x3c, 0xea, 0x07, 0xdb, 0x2d, 0x8f,
+ 0xe7, 0x73, 0x27, 0x63, 0x71, 0xd9, 0x78, 0xdd, 0x0a, 0x18, 0xb2, 0x18, 0xb1, 0xe5, 0x09, 0xe0,
+ 0x60, 0x0a, 0xf3, 0x3c, 0xef, 0xf0, 0x5c, 0xb0, 0x5c, 0x60, 0x53, 0x98, 0x6f, 0x4c, 0x81, 0xa1,
+ 0x29, 0x8c, 0x52, 0x00, 0x71, 0x2b, 0xcf, 0x83, 0x98, 0x38, 0x8a, 0x17, 0x68, 0xc6, 0xd6, 0x9c,
+ 0xf5, 0x34, 0xf2, 0x50, 0xdc, 0x02, 0xce, 0x79, 0x9c, 0xeb, 0x7a, 0x99, 0xc6, 0xe5, 0xdc, 0x9c,
+ 0x6e, 0x24, 0x83, 0xc7, 0xb4, 0x1d, 0x9f, 0x24, 0x1e, 0xe7, 0x86, 0x35, 0xc0, 0xb4, 0x33, 0x5e,
+ 0xc4, 0x73, 0x53, 0x53, 0xa4, 0x06, 0x52, 0xde, 0xaa, 0xea, 0xfd, 0x6e, 0x10, 0xf8, 0x79, 0x91,
+ 0x26, 0x8c, 0x07, 0xfc, 0x48, 0x79, 0x1f, 0x3f, 0x10, 0x04, 0xd9, 0x5b, 0x5d, 0xef, 0x66, 0x47,
+ 0x37, 0xca, 0x13, 0xb5, 0x8f, 0x1d, 0x12, 0xcd, 0x03, 0xb8, 0x50, 0xf6, 0x46, 0xf0, 0x60, 0x8c,
+ 0xea, 0x03, 0xda, 0xd0, 0x18, 0x35, 0xe7, 0xaf, 0x7d, 0xc6, 0x28, 0x06, 0x2b, 0x9f, 0x3f, 0x56,
+ 0x63, 0x74, 0x37, 0x16, 0x71, 0x9d, 0xb7, 0xbf, 0x48, 0xd9, 0x2b, 0xb5, 0x11, 0x46, 0xea, 0xab,
+ 0xa9, 0xa1, 0x7c, 0xeb, 0x19, 0xec, 0x8a, 0xb7, 0x7b, 0xf3, 0x01, 0xdf, 0x6a, 0x87, 0xd0, 0xe9,
+ 0x1b, 0x6c, 0x15, 0xb6, 0x7b, 0xf3, 0x01, 0xdf, 0xea, 0xe3, 0x0d, 0x9d, 0xbe, 0xc1, 0x17, 0x1c,
+ 0xb6, 0x7b, 0xf3, 0xca, 0xf7, 0x5f, 0xea, 0x81, 0xeb, 0x3a, 0xaf, 0xf3, 0xb0, 0x99, 0x48, 0xaf,
+ 0x18, 0x96, 0x4e, 0xfa, 0xf6, 0x0c, 0x1a, 0x4a, 0x27, 0x69, 0x15, 0xe7, 0xf3, 0x69, 0x58, 0x29,
+ 0x8e, 0x79, 0x95, 0xca, 0xeb, 0x18, 0x4f, 0x7b, 0x18, 0xd5, 0x70, 0x68, 0xd3, 0x14, 0x52, 0xb2,
+ 0x0f, 0x96, 0x3d, 0xd4, 0x5e, 0x84, 0x7f, 0x14, 0xb0, 0xd7, 0xbe, 0x0f, 0xbf, 0xd5, 0x93, 0xb6,
+ 0x8f, 0x78, 0x3d, 0x46, 0x3f, 0x9c, 0x9b, 0x30, 0x74, 0x95, 0x30, 0xa6, 0xcc, 0x43, 0x5b, 0xf7,
+ 0x29, 0xe5, 0xe3, 0xfe, 0x0a, 0x1d, 0xee, 0x47, 0x49, 0xd2, 0xcf, 0xbd, 0xfb, 0x74, 0xfb, 0x71,
+ 0x7f, 0x05, 0xe5, 0xfe, 0xaf, 0xf5, 0xb6, 0x06, 0xfa, 0x57, 0x63, 0xf0, 0x49, 0x1f, 0x8b, 0x60,
+ 0x1c, 0x3e, 0xbd, 0x96, 0x8e, 0x2a, 0xc8, 0xdf, 0xeb, 0xfd, 0xbb, 0x46, 0xe5, 0xdb, 0x48, 0xf2,
+ 0x2d, 0x66, 0x35, 0x24, 0x43, 0x51, 0x65, 0x61, 0x38, 0x30, 0x3f, 0xba, 0xa6, 0x96, 0xf3, 0x2d,
+ 0x3f, 0x0f, 0x56, 0x6f, 0xcd, 0x3a, 0xe5, 0x09, 0x59, 0x76, 0x68, 0x58, 0xa0, 0x8f, 0xaf, 0xab,
+ 0x46, 0x0d, 0x55, 0x07, 0x96, 0x5f, 0xb3, 0x79, 0xda, 0xd3, 0xb0, 0xf7, 0x7d, 0x9b, 0x0f, 0xaf,
+ 0xa7, 0xa4, 0xca, 0xf2, 0x5f, 0x6b, 0xd1, 0x3d, 0x8f, 0xb5, 0x8f, 0x33, 0xc0, 0xa1, 0xcb, 0x0f,
+ 0x02, 0xf6, 0x29, 0x25, 0x53, 0xb8, 0xdf, 0xf9, 0x66, 0xca, 0xf6, 0xc3, 0x77, 0x9e, 0xca, 0x5e,
+ 0x9a, 0x09, 0x56, 0xb6, 0x3f, 0x7c, 0xe7, 0xdb, 0x6d, 0xa8, 0x21, 0xfd, 0xe1, 0xbb, 0x00, 0xee,
+ 0x7c, 0xf8, 0x0e, 0xf1, 0x8c, 0x7e, 0xf8, 0x0e, 0xb5, 0x16, 0xfc, 0xf0, 0x5d, 0x58, 0x83, 0x5a,
+ 0x5d, 0x74, 0x11, 0x9a, 0x63, 0xf3, 0x5e, 0x16, 0xfd, 0x53, 0xf4, 0x27, 0xd7, 0x51, 0x21, 0xd6,
+ 0xd7, 0x86, 0x93, 0x17, 0x2a, 0x7b, 0xb4, 0xa9, 0x77, 0xa9, 0x72, 0xbb, 0x37, 0xaf, 0x7c, 0xff,
+ 0x48, 0x6d, 0xae, 0xcc, 0x6a, 0xc2, 0x4b, 0xf9, 0xd1, 0xc3, 0xcd, 0xd0, 0xea, 0x50, 0x5b, 0x70,
+ 0x7b, 0xfe, 0x51, 0x3f, 0x98, 0xa8, 0x6e, 0x4d, 0xa8, 0x4e, 0x1f, 0x76, 0x19, 0x02, 0x5d, 0xbe,
+ 0xdd, 0x9b, 0x27, 0x96, 0x91, 0xc6, 0x77, 0xd3, 0xdb, 0x3d, 0x8c, 0xf9, 0x7d, 0xfd, 0xb8, 0xbf,
+ 0x82, 0x72, 0x7f, 0xa5, 0xb2, 0x56, 0xd7, 0xbd, 0xec, 0xe7, 0xad, 0x2e, 0x53, 0x13, 0xaf, 0x9b,
+ 0x87, 0x7d, 0xf1, 0x50, 0xfe, 0xe2, 0x2e, 0xa1, 0x5d, 0xf9, 0x0b, 0xba, 0x8c, 0x7e, 0x78, 0x3d,
+ 0x25, 0x55, 0x96, 0x7f, 0x5a, 0x8b, 0x6e, 0x92, 0x65, 0x51, 0x71, 0xf0, 0x71, 0x5f, 0xcb, 0x20,
+ 0x1e, 0x3e, 0xb9, 0xb6, 0x9e, 0x2a, 0xd4, 0xbf, 0xae, 0x45, 0xb7, 0x02, 0x85, 0x6a, 0x02, 0xe4,
+ 0x1a, 0xd6, 0xfd, 0x40, 0xf9, 0xf4, 0xfa, 0x8a, 0xd4, 0x72, 0xef, 0xe2, 0x93, 0xf6, 0x47, 0xcc,
+ 0x02, 0xb6, 0x27, 0xf4, 0x47, 0xcc, 0xba, 0xb5, 0xe0, 0x19, 0x53, 0x7c, 0xa6, 0xf7, 0x7c, 0xe8,
+ 0x19, 0x93, 0xbc, 0x0a, 0x19, 0xfc, 0x3c, 0x0a, 0xc6, 0x61, 0x4e, 0x9e, 0xbf, 0x2e, 0xe2, 0x3c,
+ 0xa1, 0x9d, 0x34, 0xf2, 0x6e, 0x27, 0x86, 0x83, 0x67, 0x73, 0xb5, 0xf4, 0x84, 0xeb, 0x7d, 0xdc,
+ 0x03, 0x4a, 0xdf, 0x20, 0xc1, 0xb3, 0xb9, 0x16, 0x4a, 0x78, 0x53, 0x59, 0x63, 0xc8, 0x1b, 0x48,
+ 0x16, 0x1f, 0xf6, 0x41, 0xc1, 0x0e, 0xc1, 0x78, 0x33, 0x47, 0xfe, 0x8f, 0x42, 0x56, 0x5a, 0xc7,
+ 0xfe, 0x5b, 0x3d, 0x69, 0xc2, 0xed, 0x84, 0x89, 0xcf, 0x58, 0x9c, 0xb0, 0x32, 0xe8, 0xd6, 0x50,
+ 0xbd, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x87, 0x67, 0xcb, 0x45, 0xae, 0x3a, 0x93, 0x74, 0xeb, 0x52,
+ 0xdd, 0x6e, 0x01, 0x0d, 0x4f, 0x25, 0xad, 0x5b, 0x99, 0x5e, 0x3e, 0x0c, 0x9b, 0xf1, 0xb2, 0xca,
+ 0xcd, 0x5e, 0x2c, 0x5d, 0x4f, 0x15, 0x46, 0x1d, 0xf5, 0x04, 0x91, 0xb4, 0xd5, 0x93, 0x86, 0xc7,
+ 0x83, 0x8e, 0x5b, 0x13, 0x4f, 0xdb, 0x1d, 0xb6, 0x5a, 0x21, 0xf5, 0xb8, 0xbf, 0x02, 0x3c, 0x8c,
+ 0x55, 0x51, 0x75, 0x90, 0x56, 0x62, 0x2f, 0xcd, 0xb2, 0xc1, 0x66, 0x20, 0x4c, 0x34, 0x14, 0x3c,
+ 0x8c, 0x45, 0x60, 0x22, 0x92, 0xf5, 0xe1, 0x65, 0x3e, 0xe8, 0xb2, 0x23, 0xa9, 0x5e, 0x91, 0xec,
+ 0xd2, 0xe0, 0x40, 0xcd, 0x69, 0x6a, 0x53, 0xdb, 0x61, 0xb8, 0xe1, 0x5a, 0x15, 0xde, 0xee, 0xcd,
+ 0x83, 0xa7, 0xfd, 0x92, 0x92, 0x2b, 0xcb, 0x5d, 0xca, 0x84, 0xb7, 0x92, 0xdc, 0xeb, 0xa0, 0xc0,
+ 0xa1, 0x64, 0x33, 0x8c, 0x5e, 0xa6, 0xc9, 0x9c, 0x09, 0xf4, 0x41, 0x95, 0x0b, 0x04, 0x1f, 0x54,
+ 0x01, 0x10, 0x74, 0x5d, 0xf3, 0x77, 0x73, 0x1a, 0x3b, 0x4e, 0xb0, 0xae, 0x53, 0xca, 0x0e, 0x15,
+ 0xea, 0x3a, 0x94, 0x06, 0xb3, 0x81, 0x71, 0xab, 0x3e, 0x28, 0xf1, 0x30, 0x64, 0x06, 0x7c, 0x55,
+ 0x62, 0xb3, 0x17, 0x0b, 0x56, 0x14, 0xeb, 0x30, 0x5d, 0xa4, 0x02, 0x5b, 0x51, 0x1c, 0x1b, 0x35,
+ 0x12, 0x5a, 0x51, 0xda, 0x28, 0x55, 0xbd, 0x3a, 0x47, 0x18, 0x27, 0xe1, 0xea, 0x35, 0x4c, 0xbf,
+ 0xea, 0x19, 0xb6, 0xf5, 0x5c, 0x35, 0x37, 0x21, 0x23, 0x2e, 0xd4, 0x66, 0x19, 0x89, 0x6d, 0xf9,
+ 0xa2, 0x31, 0x04, 0x43, 0xb3, 0x0e, 0xa5, 0x00, 0x9f, 0x17, 0xd4, 0x9c, 0x7e, 0xf4, 0x5b, 0x14,
+ 0x2c, 0x2e, 0xe3, 0x7c, 0x86, 0x6e, 0x4e, 0xa5, 0xc1, 0x16, 0x19, 0xda, 0x9c, 0x92, 0x1a, 0xe0,
+ 0xa9, 0xbd, 0xff, 0x26, 0x2f, 0x32, 0x14, 0xcc, 0x2b, 0xb3, 0xfe, 0x8b, 0xbc, 0x0f, 0x7a, 0x90,
+ 0xf0, 0xa9, 0xbd, 0x06, 0xcc, 0xb9, 0x7b, 0xe3, 0xf4, 0x83, 0x80, 0x29, 0x1f, 0x0d, 0x6d, 0x84,
+ 0x69, 0x15, 0x10, 0xd4, 0xce, 0xd9, 0xe2, 0xe7, 0x6c, 0x85, 0x05, 0xb5, 0x7b, 0x48, 0xf8, 0x39,
+ 0x5b, 0x85, 0x82, 0xba, 0x8d, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0xad, 0x07, 0xf4, 0xdd, 0xad, 0xcf,
+ 0x46, 0x27, 0x07, 0x46, 0xce, 0x6e, 0x7a, 0xe5, 0x3d, 0xa6, 0x40, 0x0a, 0xba, 0x9b, 0x5e, 0xe1,
+ 0x4f, 0x29, 0x36, 0x7b, 0xb1, 0xf0, 0x46, 0x40, 0x2c, 0xd8, 0x6b, 0xfd, 0xa8, 0x1e, 0x29, 0xae,
+ 0x94, 0xb7, 0x9e, 0xd5, 0xdf, 0xef, 0x06, 0xed, 0xfd, 0xdb, 0xe3, 0x92, 0xcf, 0x58, 0x55, 0xa9,
+ 0x6f, 0xad, 0xfa, 0x17, 0x9c, 0x94, 0x6c, 0x08, 0xbe, 0xb4, 0x7a, 0x37, 0x0c, 0x39, 0x1f, 0x48,
+ 0x6c, 0x44, 0xf6, 0xbb, 0x4d, 0xeb, 0xa8, 0x66, 0xfb, 0x93, 0x4d, 0x1b, 0x9d, 0x9c, 0x1d, 0x5e,
+ 0x4a, 0xea, 0x7e, 0xa8, 0xe9, 0x3e, 0xaa, 0x8e, 0x7d, 0xa3, 0xe9, 0x41, 0x0f, 0x52, 0xb9, 0xfa,
+ 0x2c, 0x7a, 0xf3, 0x80, 0xcf, 0x27, 0x2c, 0x4f, 0x06, 0xdf, 0xf3, 0x6f, 0xf0, 0xf2, 0xf9, 0xb0,
+ 0xfe, 0xb3, 0x31, 0x7a, 0x83, 0x12, 0xdb, 0x3b, 0x88, 0xbb, 0xec, 0x6c, 0x39, 0x9f, 0x88, 0x58,
+ 0x80, 0x3b, 0x88, 0xf2, 0xef, 0xc3, 0x5a, 0x40, 0xdc, 0x41, 0xf4, 0x00, 0x60, 0x6f, 0x5a, 0x32,
+ 0x86, 0xda, 0xab, 0x05, 0x41, 0x7b, 0x0a, 0xb0, 0x59, 0x84, 0xb1, 0x57, 0x27, 0xea, 0xf0, 0xce,
+ 0xa0, 0xd5, 0x91, 0x52, 0x22, 0x8b, 0x68, 0x53, 0x36, 0xb8, 0x9b, 0xea, 0xcb, 0xef, 0xe6, 0x2c,
+ 0x17, 0x8b, 0xb8, 0x5c, 0x81, 0xe0, 0x56, 0xb5, 0x74, 0x00, 0x22, 0xb8, 0x51, 0xd0, 0x8e, 0x5a,
+ 0xdd, 0xcc, 0xb3, 0xcb, 0x7d, 0x5e, 0xf2, 0xa5, 0x48, 0x73, 0x06, 0xbf, 0x9d, 0x62, 0x1a, 0xd4,
+ 0x65, 0x88, 0x51, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9d, 0x51, 0x7e, 0x6c, 0xbe, 0x12,
+ 0xbc, 0x84, 0x8f, 0x33, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, 0x06, 0x7d, 0x7f, 0x9c, 0xe6,
+ 0x73, 0xb4, 0xef, 0x8f, 0xdd, 0xef, 0x17, 0xdf, 0xa2, 0x01, 0x3b, 0xa0, 0x9a, 0x46, 0x6b, 0x06,
+ 0x80, 0x7a, 0x69, 0x18, 0x6d, 0x74, 0x97, 0x20, 0x06, 0x14, 0x4e, 0x02, 0x57, 0x5f, 0x14, 0x2c,
+ 0x67, 0x89, 0xbe, 0xb4, 0x87, 0xb9, 0xf2, 0x88, 0xa0, 0x2b, 0x48, 0xda, 0xb9, 0x48, 0xca, 0x4f,
+ 0x96, 0xf9, 0x71, 0xc9, 0xcf, 0xd3, 0x8c, 0x95, 0x60, 0x2e, 0x6a, 0xd4, 0x1d, 0x39, 0x31, 0x17,
+ 0x61, 0x9c, 0xbd, 0xfd, 0x21, 0xa5, 0xde, 0x2f, 0x26, 0x4c, 0xcb, 0x78, 0x06, 0x6f, 0x7f, 0x34,
+ 0x36, 0xda, 0x18, 0x71, 0x32, 0x18, 0xc0, 0x9d, 0x44, 0xa7, 0x71, 0x9d, 0xaf, 0x64, 0x7c, 0xa8,
+ 0x97, 0x56, 0xe5, 0x57, 0x7d, 0x2b, 0x90, 0xe8, 0x28, 0x73, 0x18, 0x49, 0x24, 0x3a, 0x61, 0x0d,
+ 0xbb, 0x94, 0x48, 0xee, 0x48, 0xdd, 0x6a, 0x02, 0x4b, 0x49, 0x63, 0x43, 0x0b, 0x89, 0xa5, 0xa4,
+ 0x05, 0x81, 0x09, 0x49, 0x0f, 0x83, 0x39, 0x3a, 0x21, 0x19, 0x69, 0x70, 0x42, 0x72, 0x29, 0x3b,
+ 0x51, 0x8c, 0xf3, 0x54, 0xa4, 0x71, 0x36, 0x61, 0xe2, 0x38, 0x2e, 0xe3, 0x05, 0x13, 0xac, 0x84,
+ 0x13, 0x85, 0x42, 0x86, 0x1e, 0x43, 0x4c, 0x14, 0x14, 0xab, 0x1c, 0xfe, 0x6e, 0xf4, 0x76, 0xbd,
+ 0xee, 0xb3, 0x5c, 0xfd, 0xd6, 0xd3, 0x73, 0xf9, 0x23, 0x71, 0x83, 0x77, 0x8c, 0x8d, 0x89, 0x28,
+ 0x59, 0xbc, 0xd0, 0xb6, 0xdf, 0x32, 0x7f, 0x97, 0xe0, 0xe3, 0xb5, 0x3a, 0x9e, 0x8f, 0xb8, 0x48,
+ 0xcf, 0xeb, 0x6d, 0xb6, 0x7a, 0x81, 0x09, 0xc4, 0xb3, 0x2b, 0x1e, 0x06, 0x3e, 0x7a, 0x82, 0x71,
+ 0x76, 0x9e, 0x76, 0xa5, 0x27, 0xac, 0xc8, 0xe0, 0x3c, 0xed, 0x69, 0x4b, 0x80, 0x98, 0xa7, 0x51,
+ 0xd0, 0x0e, 0x4e, 0x57, 0x3c, 0x65, 0xe1, 0xca, 0x4c, 0x59, 0xbf, 0xca, 0x4c, 0xbd, 0x77, 0x42,
+ 0xb2, 0xe8, 0xed, 0x43, 0xb6, 0x38, 0x63, 0x65, 0x75, 0x91, 0x16, 0xd4, 0x97, 0x87, 0x2d, 0xd1,
+ 0xf9, 0xe5, 0x61, 0x02, 0xb5, 0x2b, 0x81, 0x05, 0xc6, 0xd5, 0x51, 0xbc, 0x60, 0xf2, 0x13, 0x2e,
+ 0x60, 0x25, 0x70, 0x8c, 0x38, 0x10, 0xb1, 0x12, 0x90, 0xb0, 0xf3, 0x7a, 0x99, 0x65, 0x4e, 0xd8,
+ 0xbc, 0x8e, 0xb0, 0xf2, 0x38, 0x5e, 0x2d, 0x58, 0x2e, 0x94, 0x49, 0x70, 0x26, 0xef, 0x98, 0xc4,
+ 0x79, 0xe2, 0x4c, 0xbe, 0x8f, 0x9e, 0x33, 0x35, 0x79, 0x0d, 0x7f, 0xcc, 0x4b, 0xd1, 0xfc, 0x92,
+ 0xdb, 0x69, 0x99, 0x81, 0xa9, 0xc9, 0x6f, 0x54, 0x8f, 0x24, 0xa6, 0xa6, 0xb0, 0x86, 0xf3, 0xab,
+ 0x1d, 0x5e, 0x19, 0x5e, 0xb0, 0xd2, 0xc4, 0xc9, 0xf3, 0x45, 0x9c, 0x66, 0x2a, 0x1a, 0xbe, 0x1f,
+ 0xb0, 0x4d, 0xe8, 0x10, 0xbf, 0xda, 0xd1, 0x57, 0xd7, 0xf9, 0x9d, 0x93, 0x70, 0x09, 0xc1, 0x23,
+ 0x82, 0x0e, 0xfb, 0xc4, 0x23, 0x82, 0x6e, 0x2d, 0xbb, 0x73, 0xb7, 0xac, 0xe4, 0x56, 0x92, 0xd8,
+ 0xe1, 0x09, 0x3c, 0x2f, 0x74, 0x6c, 0x02, 0x90, 0xd8, 0xb9, 0x07, 0x15, 0x6c, 0x6a, 0x60, 0xb1,
+ 0xbd, 0x34, 0x8f, 0xb3, 0xf4, 0xc7, 0x30, 0xad, 0x77, 0xec, 0x68, 0x82, 0x48, 0x0d, 0x70, 0x12,
+ 0x73, 0xb5, 0xcf, 0xc4, 0x34, 0xad, 0xa7, 0xfe, 0xfb, 0x81, 0x76, 0x93, 0x44, 0xb7, 0x2b, 0x87,
+ 0x74, 0xbe, 0x32, 0x0c, 0x9b, 0x75, 0x54, 0x14, 0x93, 0x7a, 0x55, 0x3d, 0x61, 0x33, 0x96, 0x16,
+ 0x62, 0xf0, 0x51, 0xb8, 0xad, 0x00, 0x4e, 0x5c, 0xb4, 0xe8, 0xa1, 0xe6, 0x3c, 0xbe, 0xaf, 0xe7,
+ 0x92, 0x49, 0xf3, 0x13, 0xa7, 0xa7, 0x15, 0x2b, 0x55, 0xa2, 0xb1, 0xcf, 0x04, 0x18, 0x9d, 0x0e,
+ 0x37, 0x74, 0xc0, 0xba, 0xa2, 0xc4, 0xe8, 0x0c, 0x6b, 0xd8, 0xc3, 0x3e, 0x87, 0x53, 0x5f, 0x8d,
+ 0x97, 0xd7, 0x1d, 0x1f, 0x91, 0xc6, 0x1c, 0x8a, 0x38, 0xec, 0xa3, 0x69, 0x9b, 0xad, 0xb5, 0xdd,
+ 0x8e, 0xf2, 0xd5, 0x18, 0x5e, 0x99, 0x40, 0x2c, 0x49, 0x8c, 0xc8, 0xd6, 0x02, 0xb8, 0x73, 0x18,
+ 0x5e, 0xf2, 0x38, 0x99, 0xc5, 0x95, 0x38, 0x8e, 0x57, 0x19, 0x8f, 0x13, 0xb9, 0xae, 0xc3, 0xc3,
+ 0x70, 0xcd, 0x0c, 0x5d, 0x88, 0x3a, 0x0c, 0xa7, 0x60, 0x37, 0x3b, 0x93, 0xbf, 0xdc, 0xaa, 0xae,
+ 0x92, 0xc2, 0xec, 0x4c, 0x96, 0x17, 0x5e, 0x23, 0xbd, 0x1b, 0x86, 0xec, 0x2b, 0x70, 0x8d, 0x48,
+ 0xa6, 0x21, 0xb7, 0x30, 0x1d, 0x2f, 0x01, 0x79, 0x3f, 0x40, 0xd8, 0x0f, 0xa0, 0x34, 0x7f, 0xd7,
+ 0x3f, 0xd6, 0x25, 0xd4, 0xb7, 0xd8, 0x1f, 0x61, 0xba, 0x2e, 0xe4, 0xdd, 0x50, 0xdb, 0xea, 0x49,
+ 0xdb, 0x34, 0x73, 0xe7, 0x22, 0x16, 0xa3, 0x24, 0x39, 0x64, 0x15, 0xf2, 0x3e, 0x7b, 0x2d, 0x1c,
+ 0x5a, 0x29, 0x91, 0x66, 0xb6, 0x29, 0x1b, 0xe8, 0xb5, 0xec, 0x79, 0x92, 0x0a, 0x25, 0xd3, 0x17,
+ 0xb4, 0x1f, 0xb5, 0x0d, 0xb4, 0x29, 0xa2, 0x56, 0x34, 0x6d, 0xe7, 0xf2, 0x9a, 0x99, 0xf2, 0xf9,
+ 0x3c, 0x63, 0x0a, 0x3a, 0x61, 0x71, 0xf3, 0x29, 0xca, 0xed, 0xb6, 0x2d, 0x14, 0x24, 0xe6, 0xf2,
+ 0xa0, 0x82, 0x4d, 0x23, 0x6b, 0xac, 0x79, 0x24, 0xa5, 0x1b, 0x76, 0xa3, 0x6d, 0xc6, 0x03, 0x88,
+ 0x34, 0x12, 0x05, 0xed, 0x6b, 0x77, 0xb5, 0x78, 0x9f, 0xe9, 0x96, 0x80, 0xdf, 0xba, 0x92, 0xca,
+ 0x8e, 0x98, 0x78, 0xed, 0x0e, 0xc1, 0xec, 0x3e, 0x01, 0x78, 0x78, 0xb6, 0x1a, 0x27, 0x70, 0x9f,
+ 0x00, 0xf5, 0x25, 0x43, 0xec, 0x13, 0x28, 0xd6, 0xef, 0x3a, 0x73, 0xee, 0x75, 0x10, 0x57, 0xb6,
+ 0x72, 0x48, 0xd7, 0xa1, 0x60, 0xa8, 0xeb, 0x28, 0x05, 0xbf, 0x49, 0xdd, 0xa3, 0x35, 0xa4, 0x49,
+ 0xb1, 0x73, 0xb5, 0xf5, 0x2e, 0xcc, 0xe6, 0xfe, 0xb5, 0xf0, 0x84, 0xc5, 0x89, 0xa9, 0x18, 0xa2,
+ 0xeb, 0xca, 0x89, 0xdc, 0x1f, 0xe3, 0x94, 0x93, 0x3f, 0x88, 0x06, 0x4d, 0x35, 0x4a, 0xd7, 0xcd,
+ 0x2d, 0xac, 0x88, 0x35, 0x41, 0x4c, 0x54, 0x3e, 0xe1, 0x24, 0x6e, 0x5e, 0x17, 0x4d, 0xb9, 0x72,
+ 0xa0, 0x5e, 0x0b, 0xad, 0x40, 0xe2, 0xe6, 0x37, 0x7b, 0x8b, 0x26, 0x12, 0xb7, 0x6e, 0x2d, 0xe7,
+ 0xb3, 0x3f, 0xa0, 0xcb, 0xf6, 0x4a, 0xbe, 0x80, 0x65, 0xfa, 0x34, 0xd8, 0x3d, 0x88, 0x06, 0xf1,
+ 0xd9, 0x9f, 0x7e, 0x9a, 0x76, 0x0d, 0x32, 0x67, 0x07, 0xf2, 0x7a, 0x1a, 0xfe, 0x7b, 0x23, 0x8d,
+ 0x90, 0x58, 0x83, 0x5a, 0x90, 0xf3, 0x23, 0xa5, 0xe3, 0x97, 0x65, 0x2a, 0xd2, 0x7c, 0x3e, 0xe5,
+ 0x3c, 0x83, 0x47, 0x96, 0xa3, 0xf1, 0xd0, 0x95, 0x52, 0x3f, 0x52, 0xda, 0xa2, 0xec, 0x12, 0x37,
+ 0x1a, 0x8f, 0x96, 0x82, 0x9f, 0xa7, 0x59, 0x06, 0x22, 0x67, 0x34, 0x1e, 0x6a, 0x09, 0x11, 0x39,
+ 0x3e, 0xe1, 0xfc, 0xb4, 0xe6, 0x58, 0x9e, 0xfe, 0xab, 0x13, 0xd0, 0x3b, 0x50, 0xc7, 0x11, 0x52,
+ 0x3f, 0xad, 0x09, 0x21, 0xe7, 0xa7, 0x42, 0xc7, 0xd8, 0x8f, 0xa6, 0x6c, 0x42, 0x75, 0x04, 0xa2,
+ 0x7e, 0x2a, 0x94, 0x82, 0x1b, 0x9f, 0xcf, 0xde, 0xff, 0x9f, 0xaf, 0x6e, 0xac, 0xfd, 0xf4, 0xab,
+ 0x1b, 0x6b, 0xff, 0xfb, 0xd5, 0x8d, 0xb5, 0x9f, 0x7c, 0x7d, 0xe3, 0x8d, 0x9f, 0x7e, 0x7d, 0xe3,
+ 0x8d, 0x9f, 0x7d, 0x7d, 0xe3, 0x8d, 0x2f, 0xdf, 0x54, 0xbf, 0x9f, 0x7f, 0xf6, 0x0b, 0xf2, 0x57,
+ 0xf0, 0x9f, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0x71, 0xe6, 0xb7, 0x63, 0x7f, 0x00,
+ 0x00,
}
// This is a compile-time assertion to ensure that this generated file
@@ -505,6 +504,7 @@ type ClientCommandsHandler interface {
ObjectUndo(context.Context, *pb.RpcObjectUndoRequest) *pb.RpcObjectUndoResponse
ObjectRedo(context.Context, *pb.RpcObjectRedoRequest) *pb.RpcObjectRedoResponse
ObjectListExport(context.Context, *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse
+ ObjectExport(context.Context, *pb.RpcObjectExportRequest) *pb.RpcObjectExportResponse
ObjectBookmarkFetch(context.Context, *pb.RpcObjectBookmarkFetchRequest) *pb.RpcObjectBookmarkFetchResponse
ObjectToBookmark(context.Context, *pb.RpcObjectToBookmarkRequest) *pb.RpcObjectToBookmarkResponse
ObjectImport(context.Context, *pb.RpcObjectImportRequest) *pb.RpcObjectImportResponse
@@ -749,8 +749,6 @@ type ClientCommandsHandler interface {
AIAutofill(context.Context, *pb.RpcAIAutofillRequest) *pb.RpcAIAutofillResponse
AIListSummary(context.Context, *pb.RpcAIListSummaryRequest) *pb.RpcAIListSummaryResponse
AIObjectCreateFromUrl(context.Context, *pb.RpcAIObjectCreateFromUrlRequest) *pb.RpcAIObjectCreateFromUrlResponse
- // Push
- PushNotificationRegisterToken(context.Context, *pb.RpcPushNotificationRegisterTokenRequest) *pb.RpcPushNotificationRegisterTokenResponse
}
func registerClientCommandsHandler(srv ClientCommandsHandler) {
@@ -2657,6 +2655,26 @@ func ObjectListExport(b []byte) (resp []byte) {
return resp
}
+func ObjectExport(b []byte) (resp []byte) {
+ defer func() {
+ if PanicHandler != nil {
+ if r := recover(); r != nil {
+ resp, _ = (&pb.RpcObjectExportResponse{Error: &pb.RpcObjectExportResponseError{Code: pb.RpcObjectExportResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
+ PanicHandler(r)
+ }
+ }
+ }()
+
+ in := new(pb.RpcObjectExportRequest)
+ if err := in.Unmarshal(b); err != nil {
+ resp, _ = (&pb.RpcObjectExportResponse{Error: &pb.RpcObjectExportResponseError{Code: pb.RpcObjectExportResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
+ return resp
+ }
+
+ resp, _ = clientCommandsHandler.ObjectExport(context.Background(), in).Marshal()
+ return resp
+}
+
func ObjectBookmarkFetch(b []byte) (resp []byte) {
defer func() {
if PanicHandler != nil {
@@ -6557,26 +6575,6 @@ func AIObjectCreateFromUrl(b []byte) (resp []byte) {
return resp
}
-func PushNotificationRegisterToken(b []byte) (resp []byte) {
- defer func() {
- if PanicHandler != nil {
- if r := recover(); r != nil {
- resp, _ = (&pb.RpcPushNotificationRegisterTokenResponse{Error: &pb.RpcPushNotificationRegisterTokenResponseError{Code: pb.RpcPushNotificationRegisterTokenResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
- PanicHandler(r)
- }
- }
- }()
-
- in := new(pb.RpcPushNotificationRegisterTokenRequest)
- if err := in.Unmarshal(b); err != nil {
- resp, _ = (&pb.RpcPushNotificationRegisterTokenResponse{Error: &pb.RpcPushNotificationRegisterTokenResponseError{Code: pb.RpcPushNotificationRegisterTokenResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
- return resp
- }
-
- resp, _ = clientCommandsHandler.PushNotificationRegisterToken(context.Background(), in).Marshal()
- return resp
-}
-
var PanicHandler func(v interface{})
func CommandAsync(cmd string, data []byte, callback func(data []byte)) {
@@ -6773,6 +6771,8 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) {
cd = ObjectRedo(data)
case "ObjectListExport":
cd = ObjectListExport(data)
+ case "ObjectExport":
+ cd = ObjectExport(data)
case "ObjectBookmarkFetch":
cd = ObjectBookmarkFetch(data)
case "ObjectToBookmark":
@@ -7163,8 +7163,6 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) {
cd = AIListSummary(data)
case "AIObjectCreateFromUrl":
cd = AIObjectCreateFromUrl(data)
- case "PushNotificationRegisterToken":
- cd = PushNotificationRegisterToken(data)
default:
log.Errorf("unknown command type: %s\n", cmd)
}
@@ -8517,6 +8515,20 @@ func (h *ClientCommandsHandlerProxy) ObjectListExport(ctx context.Context, req *
call, _ := actualCall(ctx, req)
return call.(*pb.RpcObjectListExportResponse)
}
+func (h *ClientCommandsHandlerProxy) ObjectExport(ctx context.Context, req *pb.RpcObjectExportRequest) *pb.RpcObjectExportResponse {
+ actualCall := func(ctx context.Context, req any) (any, error) {
+ return h.client.ObjectExport(ctx, req.(*pb.RpcObjectExportRequest)), nil
+ }
+ for _, interceptor := range h.interceptors {
+ toCall := actualCall
+ currentInterceptor := interceptor
+ actualCall = func(ctx context.Context, req any) (any, error) {
+ return currentInterceptor(ctx, req, "ObjectExport", toCall)
+ }
+ }
+ call, _ := actualCall(ctx, req)
+ return call.(*pb.RpcObjectExportResponse)
+}
func (h *ClientCommandsHandlerProxy) ObjectBookmarkFetch(ctx context.Context, req *pb.RpcObjectBookmarkFetchRequest) *pb.RpcObjectBookmarkFetchResponse {
actualCall := func(ctx context.Context, req any) (any, error) {
return h.client.ObjectBookmarkFetch(ctx, req.(*pb.RpcObjectBookmarkFetchRequest)), nil
@@ -11247,17 +11259,3 @@ func (h *ClientCommandsHandlerProxy) AIObjectCreateFromUrl(ctx context.Context,
call, _ := actualCall(ctx, req)
return call.(*pb.RpcAIObjectCreateFromUrlResponse)
}
-func (h *ClientCommandsHandlerProxy) PushNotificationRegisterToken(ctx context.Context, req *pb.RpcPushNotificationRegisterTokenRequest) *pb.RpcPushNotificationRegisterTokenResponse {
- actualCall := func(ctx context.Context, req any) (any, error) {
- return h.client.PushNotificationRegisterToken(ctx, req.(*pb.RpcPushNotificationRegisterTokenRequest)), nil
- }
- for _, interceptor := range h.interceptors {
- toCall := actualCall
- currentInterceptor := interceptor
- actualCall = func(ctx context.Context, req any) (any, error) {
- return currentInterceptor(ctx, req, "PushNotificationRegisterToken", toCall)
- }
- }
- call, _ := actualCall(ctx, req)
- return call.(*pb.RpcPushNotificationRegisterTokenResponse)
-}
diff --git a/core/api/apicore/apicore.go b/core/api/apicore/apicore.go
new file mode 100644
index 000000000..288a5e03b
--- /dev/null
+++ b/core/api/apicore/apicore.go
@@ -0,0 +1,53 @@
+package apicore
+
+import (
+ "context"
+
+ "github.com/anyproto/anytype-heart/pb"
+ "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+)
+
+type AccountService interface {
+ GetInfo(ctx context.Context) (*model.AccountInfo, error)
+}
+
+type ExportService interface {
+ ExportSingleInMemory(ctx context.Context, spaceId string, objectId string, format model.ExportFormat) (res string, err error)
+}
+
+type ClientCommands interface {
+ // Wallet
+ AccountLocalLinkNewChallenge(context.Context, *pb.RpcAccountLocalLinkNewChallengeRequest) *pb.RpcAccountLocalLinkNewChallengeResponse
+ AccountLocalLinkSolveChallenge(context.Context, *pb.RpcAccountLocalLinkSolveChallengeRequest) *pb.RpcAccountLocalLinkSolveChallengeResponse
+ WalletCreateSession(context.Context, *pb.RpcWalletCreateSessionRequest) *pb.RpcWalletCreateSessionResponse
+
+ // Space
+ WorkspaceCreate(context.Context, *pb.RpcWorkspaceCreateRequest) *pb.RpcWorkspaceCreateResponse
+ WorkspaceOpen(context.Context, *pb.RpcWorkspaceOpenRequest) *pb.RpcWorkspaceOpenResponse
+ WorkspaceSetInfo(context.Context, *pb.RpcWorkspaceSetInfoRequest) *pb.RpcWorkspaceSetInfoResponse
+ SpaceRequestApprove(context.Context, *pb.RpcSpaceRequestApproveRequest) *pb.RpcSpaceRequestApproveResponse
+ SpaceRequestDecline(context.Context, *pb.RpcSpaceRequestDeclineRequest) *pb.RpcSpaceRequestDeclineResponse
+ SpaceParticipantRemove(context.Context, *pb.RpcSpaceParticipantRemoveRequest) *pb.RpcSpaceParticipantRemoveResponse
+ SpaceParticipantPermissionsChange(context.Context, *pb.RpcSpaceParticipantPermissionsChangeRequest) *pb.RpcSpaceParticipantPermissionsChangeResponse
+
+ // Object
+ ObjectShow(context.Context, *pb.RpcObjectShowRequest) *pb.RpcObjectShowResponse
+ ObjectCreate(context.Context, *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse
+ ObjectCreateBookmark(context.Context, *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse
+ ObjectSearch(context.Context, *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse
+ ObjectSearchSubscribe(context.Context, *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse
+ ObjectSetDetails(context.Context, *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse
+ ObjectSetIsArchived(context.Context, *pb.RpcObjectSetIsArchivedRequest) *pb.RpcObjectSetIsArchivedResponse
+ ObjectListExport(context.Context, *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse
+
+ // List
+ ObjectCollectionAdd(context.Context, *pb.RpcObjectCollectionAddRequest) *pb.RpcObjectCollectionAddResponse
+ ObjectCollectionRemove(context.Context, *pb.RpcObjectCollectionRemoveRequest) *pb.RpcObjectCollectionRemoveResponse
+
+ // Property
+ ObjectRelationAddFeatured(context.Context, *pb.RpcObjectRelationAddFeaturedRequest) *pb.RpcObjectRelationAddFeaturedResponse
+
+ // Block
+ BlockCreate(context.Context, *pb.RpcBlockCreateRequest) *pb.RpcBlockCreateResponse
+ BlockPaste(context.Context, *pb.RpcBlockPasteRequest) *pb.RpcBlockPasteResponse
+}
diff --git a/core/api/apicore/mock_apicore/mock_AccountService.go b/core/api/apicore/mock_apicore/mock_AccountService.go
new file mode 100644
index 000000000..3470f1d7d
--- /dev/null
+++ b/core/api/apicore/mock_apicore/mock_AccountService.go
@@ -0,0 +1,95 @@
+// Code generated by mockery. DO NOT EDIT.
+
+package mock_apicore
+
+import (
+ context "context"
+
+ model "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+ mock "github.com/stretchr/testify/mock"
+)
+
+// MockAccountService is an autogenerated mock type for the AccountService type
+type MockAccountService struct {
+ mock.Mock
+}
+
+type MockAccountService_Expecter struct {
+ mock *mock.Mock
+}
+
+func (_m *MockAccountService) EXPECT() *MockAccountService_Expecter {
+ return &MockAccountService_Expecter{mock: &_m.Mock}
+}
+
+// GetInfo provides a mock function with given fields: ctx
+func (_m *MockAccountService) GetInfo(ctx context.Context) (*model.AccountInfo, error) {
+ ret := _m.Called(ctx)
+
+ if len(ret) == 0 {
+ panic("no return value specified for GetInfo")
+ }
+
+ var r0 *model.AccountInfo
+ var r1 error
+ if rf, ok := ret.Get(0).(func(context.Context) (*model.AccountInfo, error)); ok {
+ return rf(ctx)
+ }
+ if rf, ok := ret.Get(0).(func(context.Context) *model.AccountInfo); ok {
+ r0 = rf(ctx)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*model.AccountInfo)
+ }
+ }
+
+ if rf, ok := ret.Get(1).(func(context.Context) error); ok {
+ r1 = rf(ctx)
+ } else {
+ r1 = ret.Error(1)
+ }
+
+ return r0, r1
+}
+
+// MockAccountService_GetInfo_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetInfo'
+type MockAccountService_GetInfo_Call struct {
+ *mock.Call
+}
+
+// GetInfo is a helper method to define mock.On call
+// - ctx context.Context
+func (_e *MockAccountService_Expecter) GetInfo(ctx interface{}) *MockAccountService_GetInfo_Call {
+ return &MockAccountService_GetInfo_Call{Call: _e.mock.On("GetInfo", ctx)}
+}
+
+func (_c *MockAccountService_GetInfo_Call) Run(run func(ctx context.Context)) *MockAccountService_GetInfo_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context))
+ })
+ return _c
+}
+
+func (_c *MockAccountService_GetInfo_Call) Return(_a0 *model.AccountInfo, _a1 error) *MockAccountService_GetInfo_Call {
+ _c.Call.Return(_a0, _a1)
+ return _c
+}
+
+func (_c *MockAccountService_GetInfo_Call) RunAndReturn(run func(context.Context) (*model.AccountInfo, error)) *MockAccountService_GetInfo_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// NewMockAccountService creates a new instance of MockAccountService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewMockAccountService(t interface {
+ mock.TestingT
+ Cleanup(func())
+}) *MockAccountService {
+ mock := &MockAccountService{}
+ mock.Mock.Test(t)
+
+ t.Cleanup(func() { mock.AssertExpectations(t) })
+
+ return mock
+}
diff --git a/core/api/apicore/mock_apicore/mock_ClientCommands.go b/core/api/apicore/mock_apicore/mock_ClientCommands.go
new file mode 100644
index 000000000..55e09a275
--- /dev/null
+++ b/core/api/apicore/mock_apicore/mock_ClientCommands.go
@@ -0,0 +1,1164 @@
+// Code generated by mockery. DO NOT EDIT.
+
+package mock_apicore
+
+import (
+ context "context"
+
+ pb "github.com/anyproto/anytype-heart/pb"
+ mock "github.com/stretchr/testify/mock"
+)
+
+// MockClientCommands is an autogenerated mock type for the ClientCommands type
+type MockClientCommands struct {
+ mock.Mock
+}
+
+type MockClientCommands_Expecter struct {
+ mock *mock.Mock
+}
+
+func (_m *MockClientCommands) EXPECT() *MockClientCommands_Expecter {
+ return &MockClientCommands_Expecter{mock: &_m.Mock}
+}
+
+// AccountLocalLinkNewChallenge provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) AccountLocalLinkNewChallenge(_a0 context.Context, _a1 *pb.RpcAccountLocalLinkNewChallengeRequest) *pb.RpcAccountLocalLinkNewChallengeResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for AccountLocalLinkNewChallenge")
+ }
+
+ var r0 *pb.RpcAccountLocalLinkNewChallengeResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountLocalLinkNewChallengeRequest) *pb.RpcAccountLocalLinkNewChallengeResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcAccountLocalLinkNewChallengeResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_AccountLocalLinkNewChallenge_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountLocalLinkNewChallenge'
+type MockClientCommands_AccountLocalLinkNewChallenge_Call struct {
+ *mock.Call
+}
+
+// AccountLocalLinkNewChallenge is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcAccountLocalLinkNewChallengeRequest
+func (_e *MockClientCommands_Expecter) AccountLocalLinkNewChallenge(_a0 interface{}, _a1 interface{}) *MockClientCommands_AccountLocalLinkNewChallenge_Call {
+ return &MockClientCommands_AccountLocalLinkNewChallenge_Call{Call: _e.mock.On("AccountLocalLinkNewChallenge", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_AccountLocalLinkNewChallenge_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountLocalLinkNewChallengeRequest)) *MockClientCommands_AccountLocalLinkNewChallenge_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcAccountLocalLinkNewChallengeRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_AccountLocalLinkNewChallenge_Call) Return(_a0 *pb.RpcAccountLocalLinkNewChallengeResponse) *MockClientCommands_AccountLocalLinkNewChallenge_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_AccountLocalLinkNewChallenge_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountLocalLinkNewChallengeRequest) *pb.RpcAccountLocalLinkNewChallengeResponse) *MockClientCommands_AccountLocalLinkNewChallenge_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// AccountLocalLinkSolveChallenge provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) AccountLocalLinkSolveChallenge(_a0 context.Context, _a1 *pb.RpcAccountLocalLinkSolveChallengeRequest) *pb.RpcAccountLocalLinkSolveChallengeResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for AccountLocalLinkSolveChallenge")
+ }
+
+ var r0 *pb.RpcAccountLocalLinkSolveChallengeResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountLocalLinkSolveChallengeRequest) *pb.RpcAccountLocalLinkSolveChallengeResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcAccountLocalLinkSolveChallengeResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_AccountLocalLinkSolveChallenge_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountLocalLinkSolveChallenge'
+type MockClientCommands_AccountLocalLinkSolveChallenge_Call struct {
+ *mock.Call
+}
+
+// AccountLocalLinkSolveChallenge is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcAccountLocalLinkSolveChallengeRequest
+func (_e *MockClientCommands_Expecter) AccountLocalLinkSolveChallenge(_a0 interface{}, _a1 interface{}) *MockClientCommands_AccountLocalLinkSolveChallenge_Call {
+ return &MockClientCommands_AccountLocalLinkSolveChallenge_Call{Call: _e.mock.On("AccountLocalLinkSolveChallenge", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_AccountLocalLinkSolveChallenge_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountLocalLinkSolveChallengeRequest)) *MockClientCommands_AccountLocalLinkSolveChallenge_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcAccountLocalLinkSolveChallengeRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_AccountLocalLinkSolveChallenge_Call) Return(_a0 *pb.RpcAccountLocalLinkSolveChallengeResponse) *MockClientCommands_AccountLocalLinkSolveChallenge_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_AccountLocalLinkSolveChallenge_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountLocalLinkSolveChallengeRequest) *pb.RpcAccountLocalLinkSolveChallengeResponse) *MockClientCommands_AccountLocalLinkSolveChallenge_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// BlockCreate provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) BlockCreate(_a0 context.Context, _a1 *pb.RpcBlockCreateRequest) *pb.RpcBlockCreateResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for BlockCreate")
+ }
+
+ var r0 *pb.RpcBlockCreateResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockCreateRequest) *pb.RpcBlockCreateResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcBlockCreateResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_BlockCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockCreate'
+type MockClientCommands_BlockCreate_Call struct {
+ *mock.Call
+}
+
+// BlockCreate is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcBlockCreateRequest
+func (_e *MockClientCommands_Expecter) BlockCreate(_a0 interface{}, _a1 interface{}) *MockClientCommands_BlockCreate_Call {
+ return &MockClientCommands_BlockCreate_Call{Call: _e.mock.On("BlockCreate", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_BlockCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockCreateRequest)) *MockClientCommands_BlockCreate_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcBlockCreateRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_BlockCreate_Call) Return(_a0 *pb.RpcBlockCreateResponse) *MockClientCommands_BlockCreate_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_BlockCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockCreateRequest) *pb.RpcBlockCreateResponse) *MockClientCommands_BlockCreate_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// BlockPaste provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) BlockPaste(_a0 context.Context, _a1 *pb.RpcBlockPasteRequest) *pb.RpcBlockPasteResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for BlockPaste")
+ }
+
+ var r0 *pb.RpcBlockPasteResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockPasteRequest) *pb.RpcBlockPasteResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcBlockPasteResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_BlockPaste_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockPaste'
+type MockClientCommands_BlockPaste_Call struct {
+ *mock.Call
+}
+
+// BlockPaste is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcBlockPasteRequest
+func (_e *MockClientCommands_Expecter) BlockPaste(_a0 interface{}, _a1 interface{}) *MockClientCommands_BlockPaste_Call {
+ return &MockClientCommands_BlockPaste_Call{Call: _e.mock.On("BlockPaste", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_BlockPaste_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockPasteRequest)) *MockClientCommands_BlockPaste_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcBlockPasteRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_BlockPaste_Call) Return(_a0 *pb.RpcBlockPasteResponse) *MockClientCommands_BlockPaste_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_BlockPaste_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockPasteRequest) *pb.RpcBlockPasteResponse) *MockClientCommands_BlockPaste_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectCollectionAdd provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectCollectionAdd(_a0 context.Context, _a1 *pb.RpcObjectCollectionAddRequest) *pb.RpcObjectCollectionAddResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectCollectionAdd")
+ }
+
+ var r0 *pb.RpcObjectCollectionAddResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCollectionAddRequest) *pb.RpcObjectCollectionAddResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectCollectionAddResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectCollectionAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCollectionAdd'
+type MockClientCommands_ObjectCollectionAdd_Call struct {
+ *mock.Call
+}
+
+// ObjectCollectionAdd is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectCollectionAddRequest
+func (_e *MockClientCommands_Expecter) ObjectCollectionAdd(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectCollectionAdd_Call {
+ return &MockClientCommands_ObjectCollectionAdd_Call{Call: _e.mock.On("ObjectCollectionAdd", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectCollectionAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCollectionAddRequest)) *MockClientCommands_ObjectCollectionAdd_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectCollectionAddRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectCollectionAdd_Call) Return(_a0 *pb.RpcObjectCollectionAddResponse) *MockClientCommands_ObjectCollectionAdd_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectCollectionAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCollectionAddRequest) *pb.RpcObjectCollectionAddResponse) *MockClientCommands_ObjectCollectionAdd_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectCollectionRemove provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectCollectionRemove(_a0 context.Context, _a1 *pb.RpcObjectCollectionRemoveRequest) *pb.RpcObjectCollectionRemoveResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectCollectionRemove")
+ }
+
+ var r0 *pb.RpcObjectCollectionRemoveResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCollectionRemoveRequest) *pb.RpcObjectCollectionRemoveResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectCollectionRemoveResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectCollectionRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCollectionRemove'
+type MockClientCommands_ObjectCollectionRemove_Call struct {
+ *mock.Call
+}
+
+// ObjectCollectionRemove is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectCollectionRemoveRequest
+func (_e *MockClientCommands_Expecter) ObjectCollectionRemove(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectCollectionRemove_Call {
+ return &MockClientCommands_ObjectCollectionRemove_Call{Call: _e.mock.On("ObjectCollectionRemove", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectCollectionRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCollectionRemoveRequest)) *MockClientCommands_ObjectCollectionRemove_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectCollectionRemoveRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectCollectionRemove_Call) Return(_a0 *pb.RpcObjectCollectionRemoveResponse) *MockClientCommands_ObjectCollectionRemove_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectCollectionRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCollectionRemoveRequest) *pb.RpcObjectCollectionRemoveResponse) *MockClientCommands_ObjectCollectionRemove_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectCreate provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectCreate(_a0 context.Context, _a1 *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectCreate")
+ }
+
+ var r0 *pb.RpcObjectCreateResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectCreateResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreate'
+type MockClientCommands_ObjectCreate_Call struct {
+ *mock.Call
+}
+
+// ObjectCreate is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectCreateRequest
+func (_e *MockClientCommands_Expecter) ObjectCreate(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectCreate_Call {
+ return &MockClientCommands_ObjectCreate_Call{Call: _e.mock.On("ObjectCreate", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateRequest)) *MockClientCommands_ObjectCreate_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectCreate_Call) Return(_a0 *pb.RpcObjectCreateResponse) *MockClientCommands_ObjectCreate_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse) *MockClientCommands_ObjectCreate_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectCreateBookmark provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectCreateBookmark(_a0 context.Context, _a1 *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectCreateBookmark")
+ }
+
+ var r0 *pb.RpcObjectCreateBookmarkResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectCreateBookmarkResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectCreateBookmark_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreateBookmark'
+type MockClientCommands_ObjectCreateBookmark_Call struct {
+ *mock.Call
+}
+
+// ObjectCreateBookmark is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectCreateBookmarkRequest
+func (_e *MockClientCommands_Expecter) ObjectCreateBookmark(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectCreateBookmark_Call {
+ return &MockClientCommands_ObjectCreateBookmark_Call{Call: _e.mock.On("ObjectCreateBookmark", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectCreateBookmark_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateBookmarkRequest)) *MockClientCommands_ObjectCreateBookmark_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateBookmarkRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectCreateBookmark_Call) Return(_a0 *pb.RpcObjectCreateBookmarkResponse) *MockClientCommands_ObjectCreateBookmark_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectCreateBookmark_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse) *MockClientCommands_ObjectCreateBookmark_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectListExport provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectListExport(_a0 context.Context, _a1 *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectListExport")
+ }
+
+ var r0 *pb.RpcObjectListExportResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectListExportResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectListExport_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListExport'
+type MockClientCommands_ObjectListExport_Call struct {
+ *mock.Call
+}
+
+// ObjectListExport is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectListExportRequest
+func (_e *MockClientCommands_Expecter) ObjectListExport(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectListExport_Call {
+ return &MockClientCommands_ObjectListExport_Call{Call: _e.mock.On("ObjectListExport", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectListExport_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListExportRequest)) *MockClientCommands_ObjectListExport_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectListExportRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectListExport_Call) Return(_a0 *pb.RpcObjectListExportResponse) *MockClientCommands_ObjectListExport_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectListExport_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse) *MockClientCommands_ObjectListExport_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectRelationAddFeatured provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectRelationAddFeatured(_a0 context.Context, _a1 *pb.RpcObjectRelationAddFeaturedRequest) *pb.RpcObjectRelationAddFeaturedResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectRelationAddFeatured")
+ }
+
+ var r0 *pb.RpcObjectRelationAddFeaturedResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectRelationAddFeaturedRequest) *pb.RpcObjectRelationAddFeaturedResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectRelationAddFeaturedResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectRelationAddFeatured_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectRelationAddFeatured'
+type MockClientCommands_ObjectRelationAddFeatured_Call struct {
+ *mock.Call
+}
+
+// ObjectRelationAddFeatured is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectRelationAddFeaturedRequest
+func (_e *MockClientCommands_Expecter) ObjectRelationAddFeatured(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectRelationAddFeatured_Call {
+ return &MockClientCommands_ObjectRelationAddFeatured_Call{Call: _e.mock.On("ObjectRelationAddFeatured", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectRelationAddFeatured_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectRelationAddFeaturedRequest)) *MockClientCommands_ObjectRelationAddFeatured_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectRelationAddFeaturedRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectRelationAddFeatured_Call) Return(_a0 *pb.RpcObjectRelationAddFeaturedResponse) *MockClientCommands_ObjectRelationAddFeatured_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectRelationAddFeatured_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectRelationAddFeaturedRequest) *pb.RpcObjectRelationAddFeaturedResponse) *MockClientCommands_ObjectRelationAddFeatured_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectSearch provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectSearch(_a0 context.Context, _a1 *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectSearch")
+ }
+
+ var r0 *pb.RpcObjectSearchResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectSearchResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectSearch_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSearch'
+type MockClientCommands_ObjectSearch_Call struct {
+ *mock.Call
+}
+
+// ObjectSearch is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectSearchRequest
+func (_e *MockClientCommands_Expecter) ObjectSearch(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectSearch_Call {
+ return &MockClientCommands_ObjectSearch_Call{Call: _e.mock.On("ObjectSearch", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectSearch_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSearchRequest)) *MockClientCommands_ObjectSearch_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectSearchRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectSearch_Call) Return(_a0 *pb.RpcObjectSearchResponse) *MockClientCommands_ObjectSearch_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectSearch_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse) *MockClientCommands_ObjectSearch_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectSearchSubscribe provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectSearchSubscribe(_a0 context.Context, _a1 *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectSearchSubscribe")
+ }
+
+ var r0 *pb.RpcObjectSearchSubscribeResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectSearchSubscribeResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectSearchSubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSearchSubscribe'
+type MockClientCommands_ObjectSearchSubscribe_Call struct {
+ *mock.Call
+}
+
+// ObjectSearchSubscribe is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectSearchSubscribeRequest
+func (_e *MockClientCommands_Expecter) ObjectSearchSubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectSearchSubscribe_Call {
+ return &MockClientCommands_ObjectSearchSubscribe_Call{Call: _e.mock.On("ObjectSearchSubscribe", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectSearchSubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSearchSubscribeRequest)) *MockClientCommands_ObjectSearchSubscribe_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectSearchSubscribeRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectSearchSubscribe_Call) Return(_a0 *pb.RpcObjectSearchSubscribeResponse) *MockClientCommands_ObjectSearchSubscribe_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectSearchSubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse) *MockClientCommands_ObjectSearchSubscribe_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectSetDetails provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectSetDetails(_a0 context.Context, _a1 *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectSetDetails")
+ }
+
+ var r0 *pb.RpcObjectSetDetailsResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectSetDetailsResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectSetDetails_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetDetails'
+type MockClientCommands_ObjectSetDetails_Call struct {
+ *mock.Call
+}
+
+// ObjectSetDetails is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectSetDetailsRequest
+func (_e *MockClientCommands_Expecter) ObjectSetDetails(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectSetDetails_Call {
+ return &MockClientCommands_ObjectSetDetails_Call{Call: _e.mock.On("ObjectSetDetails", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectSetDetails_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetDetailsRequest)) *MockClientCommands_ObjectSetDetails_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectSetDetailsRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectSetDetails_Call) Return(_a0 *pb.RpcObjectSetDetailsResponse) *MockClientCommands_ObjectSetDetails_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectSetDetails_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse) *MockClientCommands_ObjectSetDetails_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectSetIsArchived provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectSetIsArchived(_a0 context.Context, _a1 *pb.RpcObjectSetIsArchivedRequest) *pb.RpcObjectSetIsArchivedResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectSetIsArchived")
+ }
+
+ var r0 *pb.RpcObjectSetIsArchivedResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetIsArchivedRequest) *pb.RpcObjectSetIsArchivedResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectSetIsArchivedResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectSetIsArchived_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetIsArchived'
+type MockClientCommands_ObjectSetIsArchived_Call struct {
+ *mock.Call
+}
+
+// ObjectSetIsArchived is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectSetIsArchivedRequest
+func (_e *MockClientCommands_Expecter) ObjectSetIsArchived(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectSetIsArchived_Call {
+ return &MockClientCommands_ObjectSetIsArchived_Call{Call: _e.mock.On("ObjectSetIsArchived", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectSetIsArchived_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetIsArchivedRequest)) *MockClientCommands_ObjectSetIsArchived_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectSetIsArchivedRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectSetIsArchived_Call) Return(_a0 *pb.RpcObjectSetIsArchivedResponse) *MockClientCommands_ObjectSetIsArchived_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectSetIsArchived_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetIsArchivedRequest) *pb.RpcObjectSetIsArchivedResponse) *MockClientCommands_ObjectSetIsArchived_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// ObjectShow provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) ObjectShow(_a0 context.Context, _a1 *pb.RpcObjectShowRequest) *pb.RpcObjectShowResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ObjectShow")
+ }
+
+ var r0 *pb.RpcObjectShowResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectShowRequest) *pb.RpcObjectShowResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcObjectShowResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_ObjectShow_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectShow'
+type MockClientCommands_ObjectShow_Call struct {
+ *mock.Call
+}
+
+// ObjectShow is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcObjectShowRequest
+func (_e *MockClientCommands_Expecter) ObjectShow(_a0 interface{}, _a1 interface{}) *MockClientCommands_ObjectShow_Call {
+ return &MockClientCommands_ObjectShow_Call{Call: _e.mock.On("ObjectShow", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_ObjectShow_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectShowRequest)) *MockClientCommands_ObjectShow_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcObjectShowRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectShow_Call) Return(_a0 *pb.RpcObjectShowResponse) *MockClientCommands_ObjectShow_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_ObjectShow_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectShowRequest) *pb.RpcObjectShowResponse) *MockClientCommands_ObjectShow_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// SpaceParticipantPermissionsChange provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) SpaceParticipantPermissionsChange(_a0 context.Context, _a1 *pb.RpcSpaceParticipantPermissionsChangeRequest) *pb.RpcSpaceParticipantPermissionsChangeResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for SpaceParticipantPermissionsChange")
+ }
+
+ var r0 *pb.RpcSpaceParticipantPermissionsChangeResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceParticipantPermissionsChangeRequest) *pb.RpcSpaceParticipantPermissionsChangeResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcSpaceParticipantPermissionsChangeResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_SpaceParticipantPermissionsChange_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceParticipantPermissionsChange'
+type MockClientCommands_SpaceParticipantPermissionsChange_Call struct {
+ *mock.Call
+}
+
+// SpaceParticipantPermissionsChange is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcSpaceParticipantPermissionsChangeRequest
+func (_e *MockClientCommands_Expecter) SpaceParticipantPermissionsChange(_a0 interface{}, _a1 interface{}) *MockClientCommands_SpaceParticipantPermissionsChange_Call {
+ return &MockClientCommands_SpaceParticipantPermissionsChange_Call{Call: _e.mock.On("SpaceParticipantPermissionsChange", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_SpaceParticipantPermissionsChange_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceParticipantPermissionsChangeRequest)) *MockClientCommands_SpaceParticipantPermissionsChange_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcSpaceParticipantPermissionsChangeRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_SpaceParticipantPermissionsChange_Call) Return(_a0 *pb.RpcSpaceParticipantPermissionsChangeResponse) *MockClientCommands_SpaceParticipantPermissionsChange_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_SpaceParticipantPermissionsChange_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceParticipantPermissionsChangeRequest) *pb.RpcSpaceParticipantPermissionsChangeResponse) *MockClientCommands_SpaceParticipantPermissionsChange_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// SpaceParticipantRemove provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) SpaceParticipantRemove(_a0 context.Context, _a1 *pb.RpcSpaceParticipantRemoveRequest) *pb.RpcSpaceParticipantRemoveResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for SpaceParticipantRemove")
+ }
+
+ var r0 *pb.RpcSpaceParticipantRemoveResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceParticipantRemoveRequest) *pb.RpcSpaceParticipantRemoveResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcSpaceParticipantRemoveResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_SpaceParticipantRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceParticipantRemove'
+type MockClientCommands_SpaceParticipantRemove_Call struct {
+ *mock.Call
+}
+
+// SpaceParticipantRemove is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcSpaceParticipantRemoveRequest
+func (_e *MockClientCommands_Expecter) SpaceParticipantRemove(_a0 interface{}, _a1 interface{}) *MockClientCommands_SpaceParticipantRemove_Call {
+ return &MockClientCommands_SpaceParticipantRemove_Call{Call: _e.mock.On("SpaceParticipantRemove", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_SpaceParticipantRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceParticipantRemoveRequest)) *MockClientCommands_SpaceParticipantRemove_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcSpaceParticipantRemoveRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_SpaceParticipantRemove_Call) Return(_a0 *pb.RpcSpaceParticipantRemoveResponse) *MockClientCommands_SpaceParticipantRemove_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_SpaceParticipantRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceParticipantRemoveRequest) *pb.RpcSpaceParticipantRemoveResponse) *MockClientCommands_SpaceParticipantRemove_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// SpaceRequestApprove provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) SpaceRequestApprove(_a0 context.Context, _a1 *pb.RpcSpaceRequestApproveRequest) *pb.RpcSpaceRequestApproveResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for SpaceRequestApprove")
+ }
+
+ var r0 *pb.RpcSpaceRequestApproveResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceRequestApproveRequest) *pb.RpcSpaceRequestApproveResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcSpaceRequestApproveResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_SpaceRequestApprove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceRequestApprove'
+type MockClientCommands_SpaceRequestApprove_Call struct {
+ *mock.Call
+}
+
+// SpaceRequestApprove is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcSpaceRequestApproveRequest
+func (_e *MockClientCommands_Expecter) SpaceRequestApprove(_a0 interface{}, _a1 interface{}) *MockClientCommands_SpaceRequestApprove_Call {
+ return &MockClientCommands_SpaceRequestApprove_Call{Call: _e.mock.On("SpaceRequestApprove", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_SpaceRequestApprove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceRequestApproveRequest)) *MockClientCommands_SpaceRequestApprove_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcSpaceRequestApproveRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_SpaceRequestApprove_Call) Return(_a0 *pb.RpcSpaceRequestApproveResponse) *MockClientCommands_SpaceRequestApprove_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_SpaceRequestApprove_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceRequestApproveRequest) *pb.RpcSpaceRequestApproveResponse) *MockClientCommands_SpaceRequestApprove_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// SpaceRequestDecline provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) SpaceRequestDecline(_a0 context.Context, _a1 *pb.RpcSpaceRequestDeclineRequest) *pb.RpcSpaceRequestDeclineResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for SpaceRequestDecline")
+ }
+
+ var r0 *pb.RpcSpaceRequestDeclineResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceRequestDeclineRequest) *pb.RpcSpaceRequestDeclineResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcSpaceRequestDeclineResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_SpaceRequestDecline_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceRequestDecline'
+type MockClientCommands_SpaceRequestDecline_Call struct {
+ *mock.Call
+}
+
+// SpaceRequestDecline is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcSpaceRequestDeclineRequest
+func (_e *MockClientCommands_Expecter) SpaceRequestDecline(_a0 interface{}, _a1 interface{}) *MockClientCommands_SpaceRequestDecline_Call {
+ return &MockClientCommands_SpaceRequestDecline_Call{Call: _e.mock.On("SpaceRequestDecline", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_SpaceRequestDecline_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceRequestDeclineRequest)) *MockClientCommands_SpaceRequestDecline_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcSpaceRequestDeclineRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_SpaceRequestDecline_Call) Return(_a0 *pb.RpcSpaceRequestDeclineResponse) *MockClientCommands_SpaceRequestDecline_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_SpaceRequestDecline_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceRequestDeclineRequest) *pb.RpcSpaceRequestDeclineResponse) *MockClientCommands_SpaceRequestDecline_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// WalletCreateSession provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) WalletCreateSession(_a0 context.Context, _a1 *pb.RpcWalletCreateSessionRequest) *pb.RpcWalletCreateSessionResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for WalletCreateSession")
+ }
+
+ var r0 *pb.RpcWalletCreateSessionResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWalletCreateSessionRequest) *pb.RpcWalletCreateSessionResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcWalletCreateSessionResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_WalletCreateSession_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WalletCreateSession'
+type MockClientCommands_WalletCreateSession_Call struct {
+ *mock.Call
+}
+
+// WalletCreateSession is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcWalletCreateSessionRequest
+func (_e *MockClientCommands_Expecter) WalletCreateSession(_a0 interface{}, _a1 interface{}) *MockClientCommands_WalletCreateSession_Call {
+ return &MockClientCommands_WalletCreateSession_Call{Call: _e.mock.On("WalletCreateSession", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_WalletCreateSession_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWalletCreateSessionRequest)) *MockClientCommands_WalletCreateSession_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcWalletCreateSessionRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_WalletCreateSession_Call) Return(_a0 *pb.RpcWalletCreateSessionResponse) *MockClientCommands_WalletCreateSession_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_WalletCreateSession_Call) RunAndReturn(run func(context.Context, *pb.RpcWalletCreateSessionRequest) *pb.RpcWalletCreateSessionResponse) *MockClientCommands_WalletCreateSession_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// WorkspaceCreate provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) WorkspaceCreate(_a0 context.Context, _a1 *pb.RpcWorkspaceCreateRequest) *pb.RpcWorkspaceCreateResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for WorkspaceCreate")
+ }
+
+ var r0 *pb.RpcWorkspaceCreateResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceCreateRequest) *pb.RpcWorkspaceCreateResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcWorkspaceCreateResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_WorkspaceCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceCreate'
+type MockClientCommands_WorkspaceCreate_Call struct {
+ *mock.Call
+}
+
+// WorkspaceCreate is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcWorkspaceCreateRequest
+func (_e *MockClientCommands_Expecter) WorkspaceCreate(_a0 interface{}, _a1 interface{}) *MockClientCommands_WorkspaceCreate_Call {
+ return &MockClientCommands_WorkspaceCreate_Call{Call: _e.mock.On("WorkspaceCreate", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_WorkspaceCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceCreateRequest)) *MockClientCommands_WorkspaceCreate_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceCreateRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_WorkspaceCreate_Call) Return(_a0 *pb.RpcWorkspaceCreateResponse) *MockClientCommands_WorkspaceCreate_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_WorkspaceCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceCreateRequest) *pb.RpcWorkspaceCreateResponse) *MockClientCommands_WorkspaceCreate_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// WorkspaceOpen provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) WorkspaceOpen(_a0 context.Context, _a1 *pb.RpcWorkspaceOpenRequest) *pb.RpcWorkspaceOpenResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for WorkspaceOpen")
+ }
+
+ var r0 *pb.RpcWorkspaceOpenResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceOpenRequest) *pb.RpcWorkspaceOpenResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcWorkspaceOpenResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_WorkspaceOpen_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceOpen'
+type MockClientCommands_WorkspaceOpen_Call struct {
+ *mock.Call
+}
+
+// WorkspaceOpen is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcWorkspaceOpenRequest
+func (_e *MockClientCommands_Expecter) WorkspaceOpen(_a0 interface{}, _a1 interface{}) *MockClientCommands_WorkspaceOpen_Call {
+ return &MockClientCommands_WorkspaceOpen_Call{Call: _e.mock.On("WorkspaceOpen", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_WorkspaceOpen_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceOpenRequest)) *MockClientCommands_WorkspaceOpen_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceOpenRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_WorkspaceOpen_Call) Return(_a0 *pb.RpcWorkspaceOpenResponse) *MockClientCommands_WorkspaceOpen_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_WorkspaceOpen_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceOpenRequest) *pb.RpcWorkspaceOpenResponse) *MockClientCommands_WorkspaceOpen_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// WorkspaceSetInfo provides a mock function with given fields: _a0, _a1
+func (_m *MockClientCommands) WorkspaceSetInfo(_a0 context.Context, _a1 *pb.RpcWorkspaceSetInfoRequest) *pb.RpcWorkspaceSetInfoResponse {
+ ret := _m.Called(_a0, _a1)
+
+ if len(ret) == 0 {
+ panic("no return value specified for WorkspaceSetInfo")
+ }
+
+ var r0 *pb.RpcWorkspaceSetInfoResponse
+ if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceSetInfoRequest) *pb.RpcWorkspaceSetInfoResponse); ok {
+ r0 = rf(_a0, _a1)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*pb.RpcWorkspaceSetInfoResponse)
+ }
+ }
+
+ return r0
+}
+
+// MockClientCommands_WorkspaceSetInfo_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceSetInfo'
+type MockClientCommands_WorkspaceSetInfo_Call struct {
+ *mock.Call
+}
+
+// WorkspaceSetInfo is a helper method to define mock.On call
+// - _a0 context.Context
+// - _a1 *pb.RpcWorkspaceSetInfoRequest
+func (_e *MockClientCommands_Expecter) WorkspaceSetInfo(_a0 interface{}, _a1 interface{}) *MockClientCommands_WorkspaceSetInfo_Call {
+ return &MockClientCommands_WorkspaceSetInfo_Call{Call: _e.mock.On("WorkspaceSetInfo", _a0, _a1)}
+}
+
+func (_c *MockClientCommands_WorkspaceSetInfo_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceSetInfoRequest)) *MockClientCommands_WorkspaceSetInfo_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceSetInfoRequest))
+ })
+ return _c
+}
+
+func (_c *MockClientCommands_WorkspaceSetInfo_Call) Return(_a0 *pb.RpcWorkspaceSetInfoResponse) *MockClientCommands_WorkspaceSetInfo_Call {
+ _c.Call.Return(_a0)
+ return _c
+}
+
+func (_c *MockClientCommands_WorkspaceSetInfo_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceSetInfoRequest) *pb.RpcWorkspaceSetInfoResponse) *MockClientCommands_WorkspaceSetInfo_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// NewMockClientCommands creates a new instance of MockClientCommands. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewMockClientCommands(t interface {
+ mock.TestingT
+ Cleanup(func())
+}) *MockClientCommands {
+ mock := &MockClientCommands{}
+ mock.Mock.Test(t)
+
+ t.Cleanup(func() { mock.AssertExpectations(t) })
+
+ return mock
+}
diff --git a/core/api/apicore/mock_apicore/mock_ExportService.go b/core/api/apicore/mock_apicore/mock_ExportService.go
new file mode 100644
index 000000000..03c40c5a5
--- /dev/null
+++ b/core/api/apicore/mock_apicore/mock_ExportService.go
@@ -0,0 +1,96 @@
+// Code generated by mockery. DO NOT EDIT.
+
+package mock_apicore
+
+import (
+ context "context"
+
+ model "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+ mock "github.com/stretchr/testify/mock"
+)
+
+// MockExportService is an autogenerated mock type for the ExportService type
+type MockExportService struct {
+ mock.Mock
+}
+
+type MockExportService_Expecter struct {
+ mock *mock.Mock
+}
+
+func (_m *MockExportService) EXPECT() *MockExportService_Expecter {
+ return &MockExportService_Expecter{mock: &_m.Mock}
+}
+
+// ExportSingleInMemory provides a mock function with given fields: ctx, spaceId, objectId, format
+func (_m *MockExportService) ExportSingleInMemory(ctx context.Context, spaceId string, objectId string, format model.ExportFormat) (string, error) {
+ ret := _m.Called(ctx, spaceId, objectId, format)
+
+ if len(ret) == 0 {
+ panic("no return value specified for ExportSingleInMemory")
+ }
+
+ var r0 string
+ var r1 error
+ if rf, ok := ret.Get(0).(func(context.Context, string, string, model.ExportFormat) (string, error)); ok {
+ return rf(ctx, spaceId, objectId, format)
+ }
+ if rf, ok := ret.Get(0).(func(context.Context, string, string, model.ExportFormat) string); ok {
+ r0 = rf(ctx, spaceId, objectId, format)
+ } else {
+ r0 = ret.Get(0).(string)
+ }
+
+ if rf, ok := ret.Get(1).(func(context.Context, string, string, model.ExportFormat) error); ok {
+ r1 = rf(ctx, spaceId, objectId, format)
+ } else {
+ r1 = ret.Error(1)
+ }
+
+ return r0, r1
+}
+
+// MockExportService_ExportSingleInMemory_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ExportSingleInMemory'
+type MockExportService_ExportSingleInMemory_Call struct {
+ *mock.Call
+}
+
+// ExportSingleInMemory is a helper method to define mock.On call
+// - ctx context.Context
+// - spaceId string
+// - objectId string
+// - format model.ExportFormat
+func (_e *MockExportService_Expecter) ExportSingleInMemory(ctx interface{}, spaceId interface{}, objectId interface{}, format interface{}) *MockExportService_ExportSingleInMemory_Call {
+ return &MockExportService_ExportSingleInMemory_Call{Call: _e.mock.On("ExportSingleInMemory", ctx, spaceId, objectId, format)}
+}
+
+func (_c *MockExportService_ExportSingleInMemory_Call) Run(run func(ctx context.Context, spaceId string, objectId string, format model.ExportFormat)) *MockExportService_ExportSingleInMemory_Call {
+ _c.Call.Run(func(args mock.Arguments) {
+ run(args[0].(context.Context), args[1].(string), args[2].(string), args[3].(model.ExportFormat))
+ })
+ return _c
+}
+
+func (_c *MockExportService_ExportSingleInMemory_Call) Return(res string, err error) *MockExportService_ExportSingleInMemory_Call {
+ _c.Call.Return(res, err)
+ return _c
+}
+
+func (_c *MockExportService_ExportSingleInMemory_Call) RunAndReturn(run func(context.Context, string, string, model.ExportFormat) (string, error)) *MockExportService_ExportSingleInMemory_Call {
+ _c.Call.Return(run)
+ return _c
+}
+
+// NewMockExportService creates a new instance of MockExportService. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
+// The first argument is typically a *testing.T value.
+func NewMockExportService(t interface {
+ mock.TestingT
+ Cleanup(func())
+}) *MockExportService {
+ mock := &MockExportService{}
+ mock.Mock.Test(t)
+
+ t.Cleanup(func() { mock.AssertExpectations(t) })
+
+ return mock
+}
diff --git a/core/api/docs/docs.go b/core/api/docs/docs.go
index 838673118..b06ec07b5 100644
--- a/core/api/docs/docs.go
+++ b/core/api/docs/docs.go
@@ -1,1630 +1,24 @@
-// Package docs Code generated by swaggo/swag. DO NOT EDIT
+// Code generated by swaggo/swag. DO NOT EDIT.
+
package docs
-import "github.com/swaggo/swag"
+import "github.com/swaggo/swag/v2"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
- "swagger": "2.0",
- "info": {
- "description": "{{escape .Description}}",
- "title": "{{.Title}}",
- "termsOfService": "https://anytype.io/terms_of_use",
- "contact": {
- "name": "Anytype Support",
- "url": "https://anytype.io/contact",
- "email": "support@anytype.io"
- },
- "license": {
- "name": "Any Source Available License 1.0",
- "url": "https://github.com/anyproto/anytype-ts/blob/main/LICENSE.md"
- },
- "version": "{{.Version}}"
- },
- "host": "{{.Host}}",
- "basePath": "{{.BasePath}}",
- "paths": {
- "/auth/display_code": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "auth"
- ],
- "summary": "Start new challenge",
- "parameters": [
- {
- "type": "string",
- "description": "App name requesting the challenge",
- "name": "app_name",
- "in": "query",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "Challenge ID",
- "schema": {
- "$ref": "#/definitions/auth.DisplayCodeResponse"
- }
- },
- "400": {
- "description": "Invalid input",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/auth/token": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "auth"
- ],
- "summary": "Retrieve token",
- "parameters": [
- {
- "type": "string",
- "description": "Challenge ID",
- "name": "challenge_id",
- "in": "query",
- "required": true
- },
- {
- "type": "string",
- "description": "4-digit code retrieved from Anytype Desktop app",
- "name": "code",
- "in": "query",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "Authentication token",
- "schema": {
- "$ref": "#/definitions/auth.TokenResponse"
- }
- },
- "400": {
- "description": "Invalid input",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/search": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "search"
- ],
- "summary": "Search objects across all spaces",
- "parameters": [
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- },
- {
- "description": "Search parameters",
- "name": "request",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/search.SearchRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "List of objects",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Object"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "spaces"
- ],
- "summary": "List spaces",
- "parameters": [
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of spaces",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-space_Space"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- },
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "spaces"
- ],
- "summary": "Create space",
- "parameters": [
- {
- "description": "Space to create",
- "name": "name",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/space.CreateSpaceRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Space created successfully",
- "schema": {
- "$ref": "#/definitions/space.CreateSpaceResponse"
- }
- },
- "400": {
- "description": "Bad request",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/members": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "spaces"
- ],
- "summary": "List members",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of members",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-space_Member"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/objects": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "objects"
- ],
- "summary": "List objects",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of objects",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Object"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- },
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "objects"
- ],
- "summary": "Create object",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "description": "Object to create",
- "name": "object",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/object.CreateObjectRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "The created object",
- "schema": {
- "$ref": "#/definitions/object.ObjectResponse"
- }
- },
- "400": {
- "description": "Bad request",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/objects/{object_id}": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "objects"
- ],
- "summary": "Get object",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Object ID",
- "name": "object_id",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "The requested object",
- "schema": {
- "$ref": "#/definitions/object.ObjectResponse"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "404": {
- "description": "Resource not found",
- "schema": {
- "$ref": "#/definitions/util.NotFoundError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- },
- "delete": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "objects"
- ],
- "summary": "Delete object",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Object ID",
- "name": "object_id",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "The deleted object",
- "schema": {
- "$ref": "#/definitions/object.ObjectResponse"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "403": {
- "description": "Forbidden",
- "schema": {
- "$ref": "#/definitions/util.ForbiddenError"
- }
- },
- "404": {
- "description": "Resource not found",
- "schema": {
- "$ref": "#/definitions/util.NotFoundError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/objects/{object_id}/export/{format}": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "export"
- ],
- "summary": "Export object",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Object ID",
- "name": "object_id",
- "in": "path",
- "required": true
- },
- {
- "enum": [
- "markdown",
- "protobuf"
- ],
- "type": "string",
- "description": "Export format",
- "name": "format",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "Object exported successfully",
- "schema": {
- "$ref": "#/definitions/export.ObjectExportResponse"
- }
- },
- "400": {
- "description": "Bad request",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/search": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "search"
- ],
- "summary": "Search objects within a space",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- },
- {
- "description": "Search parameters",
- "name": "request",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/search.SearchRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "List of objects",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Object"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/types": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "types"
- ],
- "summary": "List types",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of types",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Type"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/types/{type_id}": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "types"
- ],
- "summary": "Get type",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Type ID",
- "name": "type_id",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "The requested type",
- "schema": {
- "$ref": "#/definitions/object.TypeResponse"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "404": {
- "description": "Resource not found",
- "schema": {
- "$ref": "#/definitions/util.NotFoundError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/types/{type_id}/templates": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "types"
- ],
- "summary": "List templates",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Type ID",
- "name": "type_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of templates",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Template"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/types/{type_id}/templates/{template_id}": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "types"
- ],
- "summary": "Get template",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Type ID",
- "name": "type_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Template ID",
- "name": "template_id",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "The requested template",
- "schema": {
- "$ref": "#/definitions/object.TemplateResponse"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "404": {
- "description": "Resource not found",
- "schema": {
- "$ref": "#/definitions/util.NotFoundError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- }
- },
- "definitions": {
- "auth.DisplayCodeResponse": {
- "type": "object",
- "properties": {
- "challenge_id": {
- "type": "string",
- "example": "67647f5ecda913e9a2e11b26"
- }
- }
- },
- "auth.TokenResponse": {
- "type": "object",
- "properties": {
- "app_key": {
- "type": "string",
- "example": "zhSG/zQRmgADyilWPtgdnfo1qD60oK02/SVgi1GaFt6="
- },
- "session_token": {
- "type": "string",
- "example": "eyJhbGciOeJIRzI1NiIsInR5cCI6IkpXVCJ1.eyJzZWVkIjaiY0dmVndlUnAifQ.Y1EZecYnwmvMkrXKOa2XJnAbaRt34urBabe06tmDQII"
- }
- }
- },
- "export.ObjectExportResponse": {
- "type": "object",
- "properties": {
- "path": {
- "type": "string",
- "example": "/path/to/export"
- }
- }
- },
- "object.Block": {
- "type": "object",
- "properties": {
- "align": {
- "type": "string",
- "enum": [
- "AlignLeft",
- "AlignCenter",
- "AlignRight",
- "AlignJustify"
- ],
- "example": "AlignLeft"
- },
- "background_color": {
- "type": "string",
- "example": "red"
- },
- "children_ids": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "example": [
- "['6797ce8ecda913cde14b02dc']"
- ]
- },
- "file": {
- "$ref": "#/definitions/object.File"
- },
- "id": {
- "type": "string",
- "example": "64394517de52ad5acb89c66c"
- },
- "text": {
- "$ref": "#/definitions/object.Text"
- },
- "vertical_align": {
- "type": "string",
- "enum": [
- "VerticalAlignTop",
- "VerticalAlignMiddle",
- "VerticalAlignBottom"
- ],
- "example": "VerticalAlignTop"
- }
- }
- },
- "object.CreateObjectRequest": {
- "type": "object",
- "properties": {
- "body": {
- "type": "string",
- "example": "Object Body"
- },
- "description": {
- "type": "string",
- "example": "Object Description"
- },
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "name": {
- "type": "string",
- "example": "Object Name"
- },
- "object_type_unique_key": {
- "type": "string",
- "example": "ot-page"
- },
- "source": {
- "type": "string",
- "example": "https://source.com"
- },
- "template_id": {
- "type": "string",
- "example": "bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge"
- }
- }
- },
- "object.Detail": {
- "type": "object",
- "properties": {
- "details": {
- "type": "object",
- "additionalProperties": true
- },
- "id": {
- "type": "string",
- "enum": [
- "last_modified_date",
- "last_modified_by",
- "created_date",
- "created_by",
- "last_opened_date",
- "tags"
- ],
- "example": "last_modified_date"
- }
- }
- },
- "object.File": {
- "type": "object",
- "properties": {
- "added_at": {
- "type": "integer"
- },
- "hash": {
- "type": "string"
- },
- "mime": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "size": {
- "type": "integer"
- },
- "state": {
- "type": "string"
- },
- "style": {
- "type": "string"
- },
- "target_object_id": {
- "type": "string"
- },
- "type": {
- "type": "string"
- }
- }
- },
- "object.Object": {
- "type": "object",
- "properties": {
- "blocks": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Block"
- }
- },
- "details": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Detail"
- }
- },
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "id": {
- "type": "string",
- "example": "bafyreie6n5l5nkbjal37su54cha4coy7qzuhrnajluzv5qd5jvtsrxkequ"
- },
- "layout": {
- "type": "string",
- "example": "basic"
- },
- "name": {
- "type": "string",
- "example": "Object Name"
- },
- "root_id": {
- "type": "string",
- "example": "bafyreicypzj6uvu54664ucv3hmbsd5cmdy2dv4fwua26sciq74khzpyn4u"
- },
- "snippet": {
- "type": "string",
- "example": "The beginning of the object body..."
- },
- "space_id": {
- "type": "string",
- "example": "bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1"
- },
- "type": {
- "type": "string",
- "example": "Page"
- }
- }
- },
- "object.ObjectResponse": {
- "type": "object",
- "properties": {
- "object": {
- "$ref": "#/definitions/object.Object"
- }
- }
- },
- "object.Template": {
- "type": "object",
- "properties": {
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "id": {
- "type": "string",
- "example": "bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge"
- },
- "name": {
- "type": "string",
- "example": "Template Name"
- },
- "type": {
- "type": "string",
- "example": "template"
- }
- }
- },
- "object.TemplateResponse": {
- "type": "object",
- "properties": {
- "template": {
- "$ref": "#/definitions/object.Template"
- }
- }
- },
- "object.Text": {
- "type": "object",
- "properties": {
- "checked": {
- "type": "boolean",
- "example": true
- },
- "color": {
- "type": "string",
- "example": "red"
- },
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "style": {
- "type": "string",
- "enum": [
- "Paragraph",
- "Header1",
- "Header2",
- "Header3",
- "Header4",
- "Quote",
- "Code",
- "Title",
- "Checkbox",
- "Marked",
- "Numbered",
- "Toggle",
- "Description",
- "Callout"
- ],
- "example": "Paragraph"
- },
- "text": {
- "type": "string",
- "example": "Some text"
- }
- }
- },
- "object.Type": {
- "type": "object",
- "properties": {
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "id": {
- "type": "string",
- "example": "bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu"
- },
- "name": {
- "type": "string",
- "example": "Page"
- },
- "recommended_layout": {
- "type": "string",
- "example": "todo"
- },
- "type": {
- "type": "string",
- "example": "type"
- },
- "unique_key": {
- "type": "string",
- "example": "ot-page"
- }
- }
- },
- "object.TypeResponse": {
- "type": "object",
- "properties": {
- "type": {
- "$ref": "#/definitions/object.Type"
- }
- }
- },
- "pagination.PaginatedResponse-object_Object": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Object"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginatedResponse-object_Template": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Template"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginatedResponse-object_Type": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Type"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginatedResponse-space_Member": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/space.Member"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginatedResponse-space_Space": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/space.Space"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginationMeta": {
- "type": "object",
- "properties": {
- "has_more": {
- "description": "whether there are more items available",
- "type": "boolean",
- "example": true
- },
- "limit": {
- "description": "the current limit",
- "type": "integer",
- "example": 100
- },
- "offset": {
- "description": "the current offset",
- "type": "integer",
- "example": 0
- },
- "total": {
- "description": "the total number of items available on that endpoint",
- "type": "integer",
- "example": 1024
- }
- }
- },
- "search.SearchRequest": {
- "type": "object",
- "properties": {
- "query": {
- "type": "string"
- },
- "sort": {
- "$ref": "#/definitions/search.SortOptions"
- },
- "types": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- },
- "search.SortOptions": {
- "type": "object",
- "properties": {
- "direction": {
- "type": "string",
- "default": "desc",
- "enum": [
- "asc",
- "desc"
- ]
- },
- "timestamp": {
- "type": "string",
- "default": "last_modified_date",
- "enum": [
- "created_date",
- "last_modified_date",
- "last_opened_date"
- ]
- }
- }
- },
- "space.CreateSpaceRequest": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "example": "New Space"
- }
- }
- },
- "space.CreateSpaceResponse": {
- "type": "object",
- "properties": {
- "space": {
- "$ref": "#/definitions/space.Space"
- }
- }
- },
- "space.Member": {
- "type": "object",
- "properties": {
- "global_name": {
- "type": "string",
- "example": "john.any"
- },
- "icon": {
- "type": "string",
- "example": "http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay?width=100"
- },
- "id": {
- "type": "string",
- "example": "_participant_bafyreigyfkt6rbv24sbv5aq2hko1bhmv5xxlf22b4bypdu6j7hnphm3psq_23me69r569oi1_AAjEaEwPF4nkEh9AWkqEnzcQ8HziBB4ETjiTpvRCQvWnSMDZ"
- },
- "identity": {
- "type": "string",
- "example": "AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ"
- },
- "name": {
- "type": "string",
- "example": "John Doe"
- },
- "role": {
- "type": "string",
- "enum": [
- "Reader",
- "Writer",
- "Owner",
- "NoPermission"
- ],
- "example": "Owner"
- },
- "type": {
- "type": "string",
- "example": "member"
- }
- }
- },
- "space.Space": {
- "type": "object",
- "properties": {
- "account_space_id": {
- "type": "string",
- "example": "bafyreihpd2knon5wbljhtfeg3fcqtg3i2pomhhnigui6lrjmzcjzep7gcy.23me69r569oi1"
- },
- "analytics_id": {
- "type": "string",
- "example": "624aecdd-4797-4611-9d61-a2ae5f53cf1c"
- },
- "archive_object_id": {
- "type": "string",
- "example": "bafyreialsgoyflf3etjm3parzurivyaukzivwortf32b4twnlwpwocsrri"
- },
- "device_id": {
- "type": "string",
- "example": "12D3KooWGZMJ4kQVyQVXaj7gJPZr3RZ2nvd9M2Eq2pprEoPih9WF"
- },
- "gateway_url": {
- "type": "string",
- "example": "http://127.0.0.1:31006"
- },
- "home_object_id": {
- "type": "string",
- "example": "bafyreie4qcl3wczb4cw5hrfyycikhjyh6oljdis3ewqrk5boaav3sbwqya"
- },
- "icon": {
- "type": "string",
- "example": "http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay"
- },
- "id": {
- "type": "string",
- "example": "bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1"
- },
- "local_storage_path": {
- "type": "string",
- "example": "/Users/johndoe/Library/Application Support/Anytype/data/AAHTtt1wuQEnaYBNZ2Cyfcvs6DqPqxgn8VXDVk4avsUkMuha"
- },
- "marketplace_workspace_id": {
- "type": "string",
- "example": "_anytype_marketplace"
- },
- "name": {
- "type": "string",
- "example": "Space Name"
- },
- "network_id": {
- "type": "string",
- "example": "N83gJpVd9MuNRZAuJLZ7LiMntTThhPc6DtzWWVjb1M3PouVU"
- },
- "profile_object_id": {
- "type": "string",
- "example": "bafyreiaxhwreshjqwndpwtdsu4mtihaqhhmlygqnyqpfyfwlqfq3rm3gw4"
- },
- "space_view_id": {
- "type": "string",
- "example": "bafyreigzv3vq7qwlrsin6njoduq727ssnhwd6bgyfj6nm4hv3pxoc2rxhy"
- },
- "tech_space_id": {
- "type": "string",
- "example": "bafyreif4xuwncrjl6jajt4zrrfnylpki476nv2w64yf42ovt7gia7oypii.23me69r569oi1"
- },
- "timezone": {
- "type": "string",
- "example": ""
- },
- "type": {
- "type": "string",
- "example": "space"
- },
- "widgets_id": {
- "type": "string",
- "example": "bafyreialj7pceh53mifm5dixlho47ke4qjmsn2uh4wsjf7xq2pnlo5xfva"
- },
- "workspace_object_id": {
- "type": "string",
- "example": "bafyreiapey2g6e6za4zfxvlgwdy4hbbfu676gmwrhnqvjbxvrchr7elr3y"
- }
- }
- },
- "util.ForbiddenError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- },
- "util.NotFoundError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- },
- "util.ServerError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- },
- "util.UnauthorizedError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- },
- "util.ValidationError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- }
- },
- "securityDefinitions": {
- "BasicAuth": {
- "type": "basic"
- }
- },
- "externalDocs": {
- "description": "OpenAPI",
- "url": "https://swagger.io/resources/open-api/"
- }
+ "components": {"schemas":{"auth.DisplayCodeResponse":{"properties":{"challenge_id":{"description":"The challenge id associated with the displayed code and needed to solve the challenge for token","example":"67647f5ecda913e9a2e11b26","type":"string"}},"type":"object"},"auth.TokenResponse":{"properties":{"app_key":{"description":"The permanent app key","example":"zhSG/zQRmgADyilWPtgdnfo1qD60oK02/SVgi1GaFt6=","type":"string"},"session_token":{"description":"The ephemeral session token","example":"eyJhbGciOeJIRzI1NiIsInR5cCI6IkpXVCJ1.eyJzZWVkIjaiY0dmVndlUnAifQ.Y1EZecYnwmvMkrXKOa2XJnAbaRt34urBabe06tmDQII","type":"string"}},"type":"object"},"export.ObjectExportResponse":{"properties":{"markdown":{"example":"# This is the title\n...","type":"string"}},"type":"object"},"list.Filter":{"properties":{"condition":{"description":"The filter condition","example":"contains","type":"string"},"format":{"description":"The format of the property used for filtering","example":"text","type":"string"},"id":{"description":"The id of the filter","example":"67bf3f21cda9134102e2422c","type":"string"},"property_key":{"description":"The property key used for filtering","example":"name","type":"string"},"value":{"description":"The value used for filtering","example":"Some value...","type":"string"}},"type":"object"},"list.Sort":{"properties":{"format":{"description":"The format of the property used for sorting","example":"text","type":"string"},"id":{"description":"The id of the sort","example":"67bf3f21cda9134102e2422c","type":"string"},"property_key":{"description":"The property key used for sorting","example":"name","type":"string"},"sort_type":{"description":"The sort direction","example":"asc","type":"string"}},"type":"object"},"list.View":{"properties":{"filters":{"description":"The list of filters","items":{"$ref":"#/components/schemas/list.Filter"},"type":"array","uniqueItems":false},"id":{"description":"The id of the view","example":"67bf3f21cda9134102e2422c","type":"string"},"layout":{"description":"The layout of the view","enum":["grid","table"],"example":"grid","type":"string"},"name":{"description":"The name of the view","example":"All","type":"string"},"sorts":{"description":"The list of sorts","items":{"$ref":"#/components/schemas/list.Sort"},"type":"array","uniqueItems":false}},"type":"object"},"object.Block":{"properties":{"align":{"description":"The alignment of the block","enum":["AlignLeft","AlignCenter","AlignRight","AlignJustify"],"example":"AlignLeft","type":"string"},"background_color":{"description":"The background color of the block","example":"red","type":"string"},"children_ids":{"description":"The ids of the block's children","example":["['6797ce8ecda913cde14b02dc']"],"items":{"type":"string"},"type":"array","uniqueItems":false},"file":{"$ref":"#/components/schemas/object.File"},"id":{"description":"The id of the block","example":"64394517de52ad5acb89c66c","type":"string"},"property":{"$ref":"#/components/schemas/object.Property"},"text":{"$ref":"#/components/schemas/object.Text"},"vertical_align":{"description":"The vertical alignment of the block","enum":["VerticalAlignTop","VerticalAlignMiddle","VerticalAlignBottom"],"example":"VerticalAlignTop","type":"string"}},"type":"object"},"object.CreateObjectRequest":{"properties":{"body":{"description":"The body of the object","example":"This is the body of the object. Markdown syntax is supported here.","type":"string"},"description":{"description":"The description of the object","example":"This is a description of the object.","type":"string"},"icon":{"$ref":"#/components/schemas/util.Icon"},"name":{"description":"The name of the object","example":"My object","type":"string"},"source":{"description":"The source url, only applicable for bookmarks","example":"https://bookmark-source.com","type":"string"},"template_id":{"description":"The id of the template to use","example":"bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge","type":"string"},"type_key":{"description":"The key of the type of object to create","example":"ot-page","type":"string"}},"type":"object"},"object.File":{"description":"The file of the block, if applicable","properties":{"added_at":{"description":"The added at of the file","type":"integer"},"hash":{"description":"The hash of the file","type":"string"},"mime":{"description":"The mime of the file","type":"string"},"name":{"description":"The name of the file","type":"string"},"size":{"description":"The size of the file","type":"integer"},"state":{"description":"The state of the file","type":"string"},"style":{"description":"The style of the file","type":"string"},"target_object_id":{"description":"The target object id of the file","type":"string"},"type":{"description":"The type of the file","type":"string"}},"type":"object"},"object.Object":{"description":"The object","properties":{"archived":{"description":"Whether the object is archived","example":false,"type":"boolean"},"blocks":{"description":"The blocks of the object","items":{"$ref":"#/components/schemas/object.Block"},"type":"array","uniqueItems":false},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The id of the object","example":"bafyreie6n5l5nkbjal37su54cha4coy7qzuhrnajluzv5qd5jvtsrxkequ","type":"string"},"layout":{"description":"The layout of the object","example":"basic","type":"string"},"name":{"description":"The name of the object","example":"My object","type":"string"},"object":{"description":"The data model of the object","example":"object","type":"string"},"properties":{"description":"The properties of the object","items":{"$ref":"#/components/schemas/object.Property"},"type":"array","uniqueItems":false},"snippet":{"description":"The snippet of the object, especially important for notes as they don't have a name","example":"The beginning of the object body...","type":"string"},"space_id":{"description":"The id of the space the object is in","example":"bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1","type":"string"},"type":{"$ref":"#/components/schemas/object.Type"}},"type":"object"},"object.ObjectResponse":{"properties":{"object":{"$ref":"#/components/schemas/object.Object"}},"type":"object"},"object.Property":{"description":"The property block, if applicable","properties":{"checkbox":{"description":"The checkbox value, if applicable","example":true,"type":"boolean"},"date":{"description":"The date value, if applicable","example":"2025-02-14T12:34:56Z","type":"string"},"email":{"description":"The email value, if applicable","example":"example@example.com","type":"string"},"file":{"description":"The file references, if applicable","example":["['fileId']"],"items":{"type":"string"},"type":"array","uniqueItems":false},"format":{"description":"The format of the property","enum":["text","number","select","multi_select","date","file","checkbox","url","email","phone","object"],"example":"date","type":"string"},"id":{"description":"The id of the property","example":"last_modified_date","type":"string"},"multi_select":{"description":"The multi-select values, if applicable","items":{"$ref":"#/components/schemas/object.Tag"},"type":"array","uniqueItems":false},"name":{"description":"The name of the property","example":"Last modified date","type":"string"},"number":{"description":"The number value, if applicable","example":42,"type":"number"},"object":{"description":"The object references, if applicable","example":["['objectId']"],"items":{"type":"string"},"type":"array","uniqueItems":false},"phone":{"description":"The phone number value, if applicable","example":"+1234567890","type":"string"},"select":{"$ref":"#/components/schemas/object.Tag"},"text":{"description":"The text value, if applicable","example":"Some text...","type":"string"},"url":{"description":"The url value, if applicable","example":"https://example.com","type":"string"}},"type":"object"},"object.Tag":{"description":"The select value, if applicable","properties":{"color":{"description":"The color of the tag","example":"yellow","type":"string"},"id":{"description":"The id of the tag","example":"bafyreiaixlnaefu3ci22zdenjhsdlyaeeoyjrsid5qhfeejzlccijbj7sq","type":"string"},"name":{"description":"The name of the tag","example":"in-progress","type":"string"}},"type":"object"},"object.Template":{"description":"The template","properties":{"archived":{"description":"Whether the template is archived","example":false,"type":"boolean"},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The id of the template","example":"bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge","type":"string"},"name":{"description":"The name of the template","example":"My template","type":"string"},"object":{"description":"The data model of the object","example":"template","type":"string"}},"type":"object"},"object.TemplateResponse":{"properties":{"template":{"$ref":"#/components/schemas/object.Template"}},"type":"object"},"object.Text":{"description":"The text of the block, if applicable","properties":{"checked":{"description":"Whether the text is checked","example":true,"type":"boolean"},"color":{"description":"The color of the text","example":"red","type":"string"},"icon":{"$ref":"#/components/schemas/util.Icon"},"style":{"description":"The style of the text","enum":["Paragraph","Header1","Header2","Header3","Header4","Quote","Code","Title","Checkbox","Marked","Numbered","Toggle","Description","Callout"],"example":"Paragraph","type":"string"},"text":{"description":"The text","example":"Some text...","type":"string"}},"type":"object"},"object.Type":{"description":"The type of the object","properties":{"archived":{"description":"Whether the type is archived","example":false,"type":"boolean"},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The id of the type (which is unique across spaces)","example":"bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu","type":"string"},"key":{"description":"The key of the type (can be the same across spaces for known types)","example":"ot-page","type":"string"},"name":{"description":"The name of the type","example":"Page","type":"string"},"object":{"description":"The data model of the object","example":"type","type":"string"},"recommended_layout":{"description":"The recommended layout of the type","example":"todo","type":"string"}},"type":"object"},"object.TypeResponse":{"properties":{"type":{"$ref":"#/components/schemas/object.Type"}},"type":"object"},"pagination.PaginatedResponse-list_View":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/list.View"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-object_Object":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/object.Object"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-object_Template":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/object.Template"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-object_Type":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/object.Type"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-space_Member":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/space.Member"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-space_Space":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/space.Space"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginationMeta":{"description":"The pagination metadata for the response","properties":{"has_more":{"description":"Indicates if there are more items available beyond the current result set","example":true,"type":"boolean"},"limit":{"description":"The maximum number of items returned in the result set","example":100,"type":"integer"},"offset":{"description":"The number of items skipped before starting to collect the result set","example":0,"type":"integer"},"total":{"description":"The total number of items available for the endpoint","example":1024,"type":"integer"}},"type":"object"},"search.SearchRequest":{"properties":{"query":{"description":"The search term to look for in object names and snippets","example":"test","type":"string"},"sort":{"$ref":"#/components/schemas/search.SortOptions"},"types":{"description":"The types of objects to search for, specified by key or ID","example":["ot-page","ot-678043f0cda9133be777049f","bafyreightzrdts2ymxyaeyzspwdfo2juspyam76ewq6qq7ixnw3523gs7q"],"items":{"type":"string"},"type":"array","uniqueItems":false}},"type":"object"},"search.SortDirection":{"default":"desc","description":"The direction to sort the search results","enum":["asc","desc"],"type":"string","x-enum-varnames":["Asc","Desc"]},"search.SortOptions":{"description":"The sorting criteria and direction for the search results","properties":{"direction":{"$ref":"#/components/schemas/search.SortDirection"},"property":{"$ref":"#/components/schemas/search.SortProperty"}},"type":"object"},"search.SortProperty":{"default":"last_modified_date","description":"The property to sort the search results by","enum":["created_date","last_modified_date","last_opened_date","name"],"type":"string","x-enum-varnames":["CreatedDate","LastModifiedDate","LastOpenedDate","Name"]},"space.CreateSpaceRequest":{"properties":{"description":{"description":"The description of the space","example":"The local-first wiki","type":"string"},"name":{"description":"The name of the space","example":"New Space","type":"string"}},"type":"object"},"space.Member":{"description":"The member","properties":{"global_name":{"description":"The global name of the member in the network","example":"john.any","type":"string"},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The profile object id of the member","example":"_participant_bafyreigyfkt6rbv24sbv5aq2hko1bhmv5xxlf22b4bypdu6j7hnphm3psq_23me69r569oi1_AAjEaEwPF4nkEh9AWkqEnzcQ8HziBB4ETjiTpvRCQvWnSMDZ","type":"string"},"identity":{"description":"The identity of the member in the network","example":"AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ","type":"string"},"name":{"description":"The name of the member","example":"John Doe","type":"string"},"object":{"description":"The data model of the object","example":"member","type":"string"},"role":{"description":"The role of the member","enum":["viewer","editor","owner","no_permission"],"example":"owner","type":"string"},"status":{"description":"The status of the member","enum":["joining","active","removed","declined","removing","canceled"],"example":"active","type":"string"}},"type":"object"},"space.MemberResponse":{"properties":{"member":{"$ref":"#/components/schemas/space.Member"}},"type":"object"},"space.Space":{"description":"The space","properties":{"description":{"description":"The description of the space","example":"The local-first wiki","type":"string"},"gateway_url":{"description":"The gateway url to serve files and media","example":"http://127.0.0.1:31006","type":"string"},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The id of the space","example":"bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1","type":"string"},"name":{"description":"The name of the space","example":"My Space","type":"string"},"network_id":{"description":"The network id of the space","example":"N83gJpVd9MuNRZAuJLZ7LiMntTThhPc6DtzWWVjb1M3PouVU","type":"string"},"object":{"description":"The data model of the object","example":"space","type":"string"}},"type":"object"},"space.SpaceResponse":{"properties":{"space":{"$ref":"#/components/schemas/space.Space"}},"type":"object"},"util.ForbiddenError":{"properties":{"error":{"properties":{"message":{"example":"Forbidden","type":"string"}},"type":"object"}},"type":"object"},"util.GoneError":{"properties":{"error":{"properties":{"message":{"example":"Resource is gone","type":"string"}},"type":"object"}},"type":"object"},"util.Icon":{"description":"The icon of the object","properties":{"color":{"description":"The color of the icon","example":"red","type":"string"},"emoji":{"description":"The emoji of the icon","example":"📄","type":"string"},"file":{"description":"The file of the icon","example":"http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay","type":"string"},"format":{"$ref":"#/components/schemas/util.IconFormat"},"name":{"description":"The name of the icon","example":"document","type":"string"}},"type":"object"},"util.IconFormat":{"description":"The type of the icon","enum":["emoji","file","icon"],"example":"emoji","type":"string","x-enum-varnames":["IconFormatEmoji","IconFormatFile","IconFormatIcon"]},"util.NotFoundError":{"properties":{"error":{"properties":{"message":{"example":"Resource not found","type":"string"}},"type":"object"}},"type":"object"},"util.RateLimitError":{"properties":{"error":{"properties":{"message":{"example":"Rate limit exceeded","type":"string"}},"type":"object"}},"type":"object"},"util.ServerError":{"properties":{"error":{"properties":{"message":{"example":"Internal server error","type":"string"}},"type":"object"}},"type":"object"},"util.UnauthorizedError":{"properties":{"error":{"properties":{"message":{"example":"Unauthorized","type":"string"}},"type":"object"}},"type":"object"},"util.ValidationError":{"properties":{"error":{"properties":{"message":{"example":"Bad request","type":"string"}},"type":"object"}},"type":"object"}},"securitySchemes":{"bearerauth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},
+ "info": {"contact":{"email":"support@anytype.io","name":"Anytype Support","url":"https://anytype.io/contact"},"description":"{{escape .Description}}","license":{"name":"Any Source Available License 1.0","url":"https://github.com/anyproto/anytype-api/blob/main/LICENSE.md"},"termsOfService":"https://anytype.io/terms_of_use","title":"{{.Title}}","version":"{{.Version}}"},
+ "externalDocs": {"description":"OpenAPI","url":"https://swagger.io/resources/open-api/"},
+ "paths": {"/auth/display_code":{"post":{"description":"This endpoint initiates a secure authentication flow by generating a new challenge. Clients must supply the name of the application (via a query parameter) that is requesting authentication. On success, the service returns a unique challenge ID. This challenge ID must then be used with the token endpoint (see below) to solve the challenge and retrieve an authentication token. In essence, this endpoint “boots up” the login process and is the first step in a multi-phase authentication sequence.","parameters":[{"description":"App name requesting the challenge","in":"query","name":"app_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/auth.DisplayCodeResponse"}}},"description":"Challenge ID"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Invalid input"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"summary":"Start new challenge","tags":["auth"]}},"/auth/token":{"post":{"description":"After receiving a challenge ID from the display_code endpoint, the client calls this endpoint to provide the corresponding 4-digit code (also via a query parameter) along with the challenge ID. The endpoint verifies that the challenge solution is correct and, if it is, returns an ephemeral session token together with a permanent app key. These tokens are then used in subsequent API requests to authorize access. This endpoint is central to ensuring that only properly authenticated sessions can access further resources.","parameters":[{"description":"Challenge ID","in":"query","name":"challenge_id","required":true,"schema":{"type":"string"}},{"description":"4-digit code retrieved from Anytype Desktop app","in":"query","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/auth.TokenResponse"}}},"description":"Authentication token"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Invalid input"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"summary":"Retrieve token","tags":["auth"]}},"/search":{"post":{"description":"This endpoint executes a global search over every space the user has access to. It accepts pagination parameters (offset and limit) and a JSON body containing search criteria. The criteria include a search query string, an optional list of object types, and sort options (e.g. ascending/descending by creation, modification, or last opened dates). Internally, the endpoint aggregates results from each space, merges and sorts them (after last modified date by default), and returns a unified, paginated list of objects that match the search parameters.","parameters":[{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/search.SearchRequest"}}},"description":"Search parameters","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Object"}}},"description":"List of objects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Search objects across all spaces","tags":["search"]}},"/spaces":{"get":{"description":"Retrieves a paginated list of all spaces that are accessible by the authenticated user. Each space record contains detailed information such as the space ID, name, icon (derived either from an emoji or image URL), and additional metadata. This endpoint is key to displaying a user’s workspaces.","parameters":[{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-space_Space"}}},"description":"List of spaces"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List spaces","tags":["spaces"]},"post":{"description":"Creates a new workspace (or space) based on a supplied name in the JSON request body. The endpoint is subject to rate limiting and automatically applies default configurations such as generating a random icon and initializing the workspace with default settings (for example, a default dashboard or home page). On success, the new space’s full metadata is returned, enabling the client to immediately switch context to the new space.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/space.CreateSpaceRequest"}}},"description":"Space to create","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/space.SpaceResponse"}}},"description":"Space created successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"423":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.RateLimitError"}}},"description":"Rate limit exceeded"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Create space","tags":["spaces"]}},"/spaces/{space_id}":{"get":{"description":"Fetches full details about a single space identified by its space ID. The response includes metadata such as the space name, icon, and various workspace IDs (home, archive, profile, etc.). This detailed view supports use cases such as displaying space-specific settings.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/space.SpaceResponse"}}},"description":"Space"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Space not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get space","tags":["spaces"]}},"/spaces/{space_id}/lists/{list_id}/objects":{"post":{"description":"Enables clients to add one or more objects to a specific list (collection only) by submitting a JSON array of object IDs. Upon success, the endpoint returns a confirmation message. This endpoint is vital for building user interfaces that allow drag‑and‑drop or multi‑select additions to collections.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"List ID","in":"path","name":"list_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}},"description":"List of object IDs","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Objects added successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Add objects to list","tags":["lists"]}},"/spaces/{space_id}/lists/{list_id}/objects/{object_id}":{"delete":{"description":"Removes a given object from the specified list (collection only) in a space. The endpoint takes the space, list, and object identifiers as path parameters. It's subject to rate limiting and returns a success message on completion. It is used for dynamically managing collections without affecting the underlying object data.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"List ID","in":"path","name":"list_id","required":true,"schema":{"type":"string"}},{"description":"Object ID","in":"path","name":"object_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Objects removed successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Remove object from list","tags":["lists"]}},"/spaces/{space_id}/lists/{list_id}/views":{"get":{"description":"Returns a paginated list of views defined for a specific list (query or collection) within a space. Each view includes configuration details such as layout, applied filters, and sorting options, enabling clients to render the list according to user preferences and context. This endpoint supports pagination parameters to control the number of views returned and the starting point of the result set.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"List ID","in":"path","name":"list_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-list_View"}}},"description":"List of views"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get list views","tags":["lists"]}},"/spaces/{space_id}/lists/{list_id}/{view_id}/objects":{"get":{"description":"Returns a paginated list of objects associated with a specific list (query or collection) within a space. When a view ID is provided, the objects are filtered and sorted according to the view's configuration. If no view ID is specified, all list objects are returned without filtering and sorting. This endpoint helps clients to manage grouped objects (for example, tasks within a list) by returning information for each item of the list.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"List ID","in":"path","name":"list_id","required":true,"schema":{"type":"string"}},{"description":"View ID","in":"path","name":"view_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Object"}}},"description":"List of objects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get objects in list","tags":["lists"]}},"/spaces/{space_id}/members":{"get":{"description":"Returns a paginated list of members belonging to the specified space. Each member record includes the member’s profile ID, name, icon (which may be derived from an emoji or image), network identity, global name, status (e.g. joining, active) and role (e.g. Viewer, Editor, Owner). This endpoint supports collaborative features by allowing clients to show who is in a space and manage access rights.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-space_Member"}}},"description":"List of members"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List members","tags":["members"]}},"/spaces/{space_id}/members/{member_id}":{"get":{"description":"Fetches detailed information about a single member within a space. The endpoint returns the member’s identifier, name, icon, identity, global name, status and role. The member_id path parameter can be provided as either the member's ID (starting with ` + "`" + `_participant` + "`" + `) or the member's identity. This is useful for user profile pages, permission management, and displaying member-specific information in collaborative environments.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Member ID or Identity","in":"path","name":"member_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/space.MemberResponse"}}},"description":"Member"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Member not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get member","tags":["members"]}},"/spaces/{space_id}/objects":{"get":{"description":"Retrieves a paginated list of objects in the given space. The endpoint takes query parameters for pagination (offset and limit) and returns detailed data about each object including its ID, name, icon, type information, a snippet of the content (if applicable), layout, space ID, blocks and details. It is intended for building views where users can see all objects in a space at a glance.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Object"}}},"description":"List of objects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List objects","tags":["objects"]},"post":{"description":"Creates a new object in the specified space using a JSON payload. The creation process is subject to rate limiting. The payload must include key details such as the object name, icon, description, body content (which may support Markdown), source URL (required for bookmark objects), template identifier, and the type_key (which is the non-unique identifier of the type of object to create). Post-creation, additional operations (like setting featured properties or fetching bookmark metadata) may occur. The endpoint then returns the full object data, ready for further interactions.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.CreateObjectRequest"}}},"description":"Object to create","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.ObjectResponse"}}},"description":"The created object"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"423":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.RateLimitError"}}},"description":"Rate limit exceeded"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Create object","tags":["objects"]}},"/spaces/{space_id}/objects/{object_id}":{"delete":{"description":"This endpoint “deletes” an object by marking it as archived. The deletion process is performed safely and is subject to rate limiting. It returns the object’s details after it has been archived. Proper error handling is in place for situations such as when the object isn’t found or the deletion cannot be performed because of permission issues.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Object ID","in":"path","name":"object_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.ObjectResponse"}}},"description":"The deleted object"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ForbiddenError"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Resource not found"},"423":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.RateLimitError"}}},"description":"Rate limit exceeded"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Delete object","tags":["objects"]},"get":{"description":"Fetches the full details of a single object identified by the object ID within the specified space. The response includes not only basic metadata (ID, name, icon, type) but also the complete set of blocks (which may include text, files, properties and dataviews) and extra details (such as timestamps and linked member information). This endpoint is essential when a client needs to render or edit the full object view.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Object ID","in":"path","name":"object_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.ObjectResponse"}}},"description":"The requested object"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Resource not found"},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.GoneError"}}},"description":"Resource deleted"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get object","tags":["objects"]}},"/spaces/{space_id}/objects/{object_id}/{format}":{"get":{"description":"This endpoint exports a single object from the specified space into a desired format. The export format is provided as a path parameter (currently supporting “markdown” only). The endpoint calls the export service which converts the object’s content into the requested format. It is useful for sharing, or displaying the markdown representation of the objecte externally.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Object ID","in":"path","name":"object_id","required":true,"schema":{"type":"string"}},{"description":"Export format","in":"path","name":"format","required":true,"schema":{"enum":["markdown"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/export.ObjectExportResponse"}}},"description":"Object exported successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Export object","tags":["export"]}},"/spaces/{space_id}/search":{"post":{"description":"This endpoint performs a focused search within a single space (specified by the space_id path parameter). Like the global search, it accepts pagination parameters and a JSON payload containing the search query, object types, and sorting preferences. The search is limited to the provided space and returns a list of objects that match the query. This allows clients to implement space‑specific filtering without having to process extraneous results.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/search.SearchRequest"}}},"description":"Search parameters","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Object"}}},"description":"List of objects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Search objects within a space","tags":["search"]}},"/spaces/{space_id}/types":{"get":{"description":"This endpoint retrieves a paginated list of object types (e.g. 'Page', 'Note', 'Task') available within the specified space. Each type’s record includes its unique identifier, type key, display name, icon, and a recommended layout. While a type's id is truly unique, a type's key can be the same across spaces for known types, e.g. 'ot-page' for 'Page'. Clients use this information when offering choices for object creation or for filtering objects by type through search.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Type"}}},"description":"List of types"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List types","tags":["types"]}},"/spaces/{space_id}/types/{type_id}":{"get":{"description":"Fetches detailed information about one specific object type by its ID. This includes the type’s unique key, name, icon, and recommended layout. This detailed view assists clients in understanding the expected structure and style for objects of that type and in guiding the user interface (such as displaying appropriate icons or layout hints).","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Type ID","in":"path","name":"type_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.TypeResponse"}}},"description":"The requested type"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Resource not found"},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.GoneError"}}},"description":"Resource deleted"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get type","tags":["types"]}},"/spaces/{space_id}/types/{type_id}/templates":{"get":{"description":"This endpoint returns a paginated list of templates that are associated with a specific object type within a space. Templates provide pre‑configured structures for creating new objects. Each template record contains its identifier, name, and icon, so that clients can offer users a selection of templates when creating objects.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Type ID","in":"path","name":"type_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Template"}}},"description":"List of templates"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List templates","tags":["templates"]}},"/spaces/{space_id}/types/{type_id}/templates/{template_id}":{"get":{"description":"Fetches full details for one template associated with a particular object type in a space. The response provides the template’s identifier, name, icon, and any other relevant metadata. This endpoint is useful when a client needs to preview or apply a template to prefill object creation fields.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Type ID","in":"path","name":"type_id","required":true,"schema":{"type":"string"}},{"description":"Template ID","in":"path","name":"template_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.TemplateResponse"}}},"description":"The requested template"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Resource not found"},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.GoneError"}}},"description":"Resource deleted"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get template","tags":["templates"]}}},
+ "openapi": "3.1.0",
+ "servers": [
+ {"url":"http://localhost:31009/v1"}
+ ]
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
- Version: "1.0",
- Host: "localhost:31009",
- BasePath: "/v1",
- Schemes: []string{},
+ Version: "2025-03-17",
Title: "Anytype API",
Description: "This API allows interaction with Anytype resources such as spaces, objects and types.",
InfoInstanceName: "swagger",
diff --git a/core/api/docs/swagger.json b/core/api/docs/swagger.json
index cf8fe16d3..ae76dc771 100644
--- a/core/api/docs/swagger.json
+++ b/core/api/docs/swagger.json
@@ -1,1614 +1,10 @@
{
- "swagger": "2.0",
- "info": {
- "description": "This API allows interaction with Anytype resources such as spaces, objects and types.",
- "title": "Anytype API",
- "termsOfService": "https://anytype.io/terms_of_use",
- "contact": {
- "name": "Anytype Support",
- "url": "https://anytype.io/contact",
- "email": "support@anytype.io"
- },
- "license": {
- "name": "Any Source Available License 1.0",
- "url": "https://github.com/anyproto/anytype-ts/blob/main/LICENSE.md"
- },
- "version": "1.0"
- },
- "host": "localhost:31009",
- "basePath": "/v1",
- "paths": {
- "/auth/display_code": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "auth"
- ],
- "summary": "Start new challenge",
- "parameters": [
- {
- "type": "string",
- "description": "App name requesting the challenge",
- "name": "app_name",
- "in": "query",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "Challenge ID",
- "schema": {
- "$ref": "#/definitions/auth.DisplayCodeResponse"
- }
- },
- "400": {
- "description": "Invalid input",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/auth/token": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "auth"
- ],
- "summary": "Retrieve token",
- "parameters": [
- {
- "type": "string",
- "description": "Challenge ID",
- "name": "challenge_id",
- "in": "query",
- "required": true
- },
- {
- "type": "string",
- "description": "4-digit code retrieved from Anytype Desktop app",
- "name": "code",
- "in": "query",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "Authentication token",
- "schema": {
- "$ref": "#/definitions/auth.TokenResponse"
- }
- },
- "400": {
- "description": "Invalid input",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/search": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "search"
- ],
- "summary": "Search objects across all spaces",
- "parameters": [
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- },
- {
- "description": "Search parameters",
- "name": "request",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/search.SearchRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "List of objects",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Object"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "spaces"
- ],
- "summary": "List spaces",
- "parameters": [
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of spaces",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-space_Space"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- },
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "spaces"
- ],
- "summary": "Create space",
- "parameters": [
- {
- "description": "Space to create",
- "name": "name",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/space.CreateSpaceRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "Space created successfully",
- "schema": {
- "$ref": "#/definitions/space.CreateSpaceResponse"
- }
- },
- "400": {
- "description": "Bad request",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/members": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "spaces"
- ],
- "summary": "List members",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of members",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-space_Member"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/objects": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "objects"
- ],
- "summary": "List objects",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of objects",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Object"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- },
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "objects"
- ],
- "summary": "Create object",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "description": "Object to create",
- "name": "object",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/object.CreateObjectRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "The created object",
- "schema": {
- "$ref": "#/definitions/object.ObjectResponse"
- }
- },
- "400": {
- "description": "Bad request",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/objects/{object_id}": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "objects"
- ],
- "summary": "Get object",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Object ID",
- "name": "object_id",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "The requested object",
- "schema": {
- "$ref": "#/definitions/object.ObjectResponse"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "404": {
- "description": "Resource not found",
- "schema": {
- "$ref": "#/definitions/util.NotFoundError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- },
- "delete": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "objects"
- ],
- "summary": "Delete object",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Object ID",
- "name": "object_id",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "The deleted object",
- "schema": {
- "$ref": "#/definitions/object.ObjectResponse"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "403": {
- "description": "Forbidden",
- "schema": {
- "$ref": "#/definitions/util.ForbiddenError"
- }
- },
- "404": {
- "description": "Resource not found",
- "schema": {
- "$ref": "#/definitions/util.NotFoundError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/objects/{object_id}/export/{format}": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "export"
- ],
- "summary": "Export object",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Object ID",
- "name": "object_id",
- "in": "path",
- "required": true
- },
- {
- "enum": [
- "markdown",
- "protobuf"
- ],
- "type": "string",
- "description": "Export format",
- "name": "format",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "Object exported successfully",
- "schema": {
- "$ref": "#/definitions/export.ObjectExportResponse"
- }
- },
- "400": {
- "description": "Bad request",
- "schema": {
- "$ref": "#/definitions/util.ValidationError"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/search": {
- "post": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "search"
- ],
- "summary": "Search objects within a space",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- },
- {
- "description": "Search parameters",
- "name": "request",
- "in": "body",
- "required": true,
- "schema": {
- "$ref": "#/definitions/search.SearchRequest"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "List of objects",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Object"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/types": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "types"
- ],
- "summary": "List types",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of types",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Type"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/types/{type_id}": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "types"
- ],
- "summary": "Get type",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Type ID",
- "name": "type_id",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "The requested type",
- "schema": {
- "$ref": "#/definitions/object.TypeResponse"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "404": {
- "description": "Resource not found",
- "schema": {
- "$ref": "#/definitions/util.NotFoundError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/types/{type_id}/templates": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "types"
- ],
- "summary": "List templates",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Type ID",
- "name": "type_id",
- "in": "path",
- "required": true
- },
- {
- "type": "integer",
- "default": 0,
- "description": "The number of items to skip before starting to collect the result set",
- "name": "offset",
- "in": "query"
- },
- {
- "maximum": 1000,
- "type": "integer",
- "default": 100,
- "description": "The number of items to return",
- "name": "limit",
- "in": "query"
- }
- ],
- "responses": {
- "200": {
- "description": "List of templates",
- "schema": {
- "$ref": "#/definitions/pagination.PaginatedResponse-object_Template"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- },
- "/spaces/{space_id}/types/{type_id}/templates/{template_id}": {
- "get": {
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "types"
- ],
- "summary": "Get template",
- "parameters": [
- {
- "type": "string",
- "description": "Space ID",
- "name": "space_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Type ID",
- "name": "type_id",
- "in": "path",
- "required": true
- },
- {
- "type": "string",
- "description": "Template ID",
- "name": "template_id",
- "in": "path",
- "required": true
- }
- ],
- "responses": {
- "200": {
- "description": "The requested template",
- "schema": {
- "$ref": "#/definitions/object.TemplateResponse"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/util.UnauthorizedError"
- }
- },
- "404": {
- "description": "Resource not found",
- "schema": {
- "$ref": "#/definitions/util.NotFoundError"
- }
- },
- "500": {
- "description": "Internal server error",
- "schema": {
- "$ref": "#/definitions/util.ServerError"
- }
- }
- }
- }
- }
- },
- "definitions": {
- "auth.DisplayCodeResponse": {
- "type": "object",
- "properties": {
- "challenge_id": {
- "type": "string",
- "example": "67647f5ecda913e9a2e11b26"
- }
- }
- },
- "auth.TokenResponse": {
- "type": "object",
- "properties": {
- "app_key": {
- "type": "string",
- "example": "zhSG/zQRmgADyilWPtgdnfo1qD60oK02/SVgi1GaFt6="
- },
- "session_token": {
- "type": "string",
- "example": "eyJhbGciOeJIRzI1NiIsInR5cCI6IkpXVCJ1.eyJzZWVkIjaiY0dmVndlUnAifQ.Y1EZecYnwmvMkrXKOa2XJnAbaRt34urBabe06tmDQII"
- }
- }
- },
- "export.ObjectExportResponse": {
- "type": "object",
- "properties": {
- "path": {
- "type": "string",
- "example": "/path/to/export"
- }
- }
- },
- "object.Block": {
- "type": "object",
- "properties": {
- "align": {
- "type": "string",
- "enum": [
- "AlignLeft",
- "AlignCenter",
- "AlignRight",
- "AlignJustify"
- ],
- "example": "AlignLeft"
- },
- "background_color": {
- "type": "string",
- "example": "red"
- },
- "children_ids": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "example": [
- "['6797ce8ecda913cde14b02dc']"
- ]
- },
- "file": {
- "$ref": "#/definitions/object.File"
- },
- "id": {
- "type": "string",
- "example": "64394517de52ad5acb89c66c"
- },
- "text": {
- "$ref": "#/definitions/object.Text"
- },
- "vertical_align": {
- "type": "string",
- "enum": [
- "VerticalAlignTop",
- "VerticalAlignMiddle",
- "VerticalAlignBottom"
- ],
- "example": "VerticalAlignTop"
- }
- }
- },
- "object.CreateObjectRequest": {
- "type": "object",
- "properties": {
- "body": {
- "type": "string",
- "example": "Object Body"
- },
- "description": {
- "type": "string",
- "example": "Object Description"
- },
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "name": {
- "type": "string",
- "example": "Object Name"
- },
- "object_type_unique_key": {
- "type": "string",
- "example": "ot-page"
- },
- "source": {
- "type": "string",
- "example": "https://source.com"
- },
- "template_id": {
- "type": "string",
- "example": "bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge"
- }
- }
- },
- "object.Detail": {
- "type": "object",
- "properties": {
- "details": {
- "type": "object",
- "additionalProperties": true
- },
- "id": {
- "type": "string",
- "enum": [
- "last_modified_date",
- "last_modified_by",
- "created_date",
- "created_by",
- "last_opened_date",
- "tags"
- ],
- "example": "last_modified_date"
- }
- }
- },
- "object.File": {
- "type": "object",
- "properties": {
- "added_at": {
- "type": "integer"
- },
- "hash": {
- "type": "string"
- },
- "mime": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "size": {
- "type": "integer"
- },
- "state": {
- "type": "string"
- },
- "style": {
- "type": "string"
- },
- "target_object_id": {
- "type": "string"
- },
- "type": {
- "type": "string"
- }
- }
- },
- "object.Object": {
- "type": "object",
- "properties": {
- "blocks": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Block"
- }
- },
- "details": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Detail"
- }
- },
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "id": {
- "type": "string",
- "example": "bafyreie6n5l5nkbjal37su54cha4coy7qzuhrnajluzv5qd5jvtsrxkequ"
- },
- "layout": {
- "type": "string",
- "example": "basic"
- },
- "name": {
- "type": "string",
- "example": "Object Name"
- },
- "root_id": {
- "type": "string",
- "example": "bafyreicypzj6uvu54664ucv3hmbsd5cmdy2dv4fwua26sciq74khzpyn4u"
- },
- "snippet": {
- "type": "string",
- "example": "The beginning of the object body..."
- },
- "space_id": {
- "type": "string",
- "example": "bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1"
- },
- "type": {
- "type": "string",
- "example": "Page"
- }
- }
- },
- "object.ObjectResponse": {
- "type": "object",
- "properties": {
- "object": {
- "$ref": "#/definitions/object.Object"
- }
- }
- },
- "object.Template": {
- "type": "object",
- "properties": {
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "id": {
- "type": "string",
- "example": "bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge"
- },
- "name": {
- "type": "string",
- "example": "Template Name"
- },
- "type": {
- "type": "string",
- "example": "template"
- }
- }
- },
- "object.TemplateResponse": {
- "type": "object",
- "properties": {
- "template": {
- "$ref": "#/definitions/object.Template"
- }
- }
- },
- "object.Text": {
- "type": "object",
- "properties": {
- "checked": {
- "type": "boolean",
- "example": true
- },
- "color": {
- "type": "string",
- "example": "red"
- },
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "style": {
- "type": "string",
- "enum": [
- "Paragraph",
- "Header1",
- "Header2",
- "Header3",
- "Header4",
- "Quote",
- "Code",
- "Title",
- "Checkbox",
- "Marked",
- "Numbered",
- "Toggle",
- "Description",
- "Callout"
- ],
- "example": "Paragraph"
- },
- "text": {
- "type": "string",
- "example": "Some text"
- }
- }
- },
- "object.Type": {
- "type": "object",
- "properties": {
- "icon": {
- "type": "string",
- "example": "📄"
- },
- "id": {
- "type": "string",
- "example": "bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu"
- },
- "name": {
- "type": "string",
- "example": "Page"
- },
- "recommended_layout": {
- "type": "string",
- "example": "todo"
- },
- "type": {
- "type": "string",
- "example": "type"
- },
- "unique_key": {
- "type": "string",
- "example": "ot-page"
- }
- }
- },
- "object.TypeResponse": {
- "type": "object",
- "properties": {
- "type": {
- "$ref": "#/definitions/object.Type"
- }
- }
- },
- "pagination.PaginatedResponse-object_Object": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Object"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginatedResponse-object_Template": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Template"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginatedResponse-object_Type": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/object.Type"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginatedResponse-space_Member": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/space.Member"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginatedResponse-space_Space": {
- "type": "object",
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/space.Space"
- }
- },
- "pagination": {
- "$ref": "#/definitions/pagination.PaginationMeta"
- }
- }
- },
- "pagination.PaginationMeta": {
- "type": "object",
- "properties": {
- "has_more": {
- "description": "whether there are more items available",
- "type": "boolean",
- "example": true
- },
- "limit": {
- "description": "the current limit",
- "type": "integer",
- "example": 100
- },
- "offset": {
- "description": "the current offset",
- "type": "integer",
- "example": 0
- },
- "total": {
- "description": "the total number of items available on that endpoint",
- "type": "integer",
- "example": 1024
- }
- }
- },
- "search.SearchRequest": {
- "type": "object",
- "properties": {
- "query": {
- "type": "string"
- },
- "sort": {
- "$ref": "#/definitions/search.SortOptions"
- },
- "types": {
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- }
- },
- "search.SortOptions": {
- "type": "object",
- "properties": {
- "direction": {
- "type": "string",
- "default": "desc",
- "enum": [
- "asc",
- "desc"
- ]
- },
- "timestamp": {
- "type": "string",
- "default": "last_modified_date",
- "enum": [
- "created_date",
- "last_modified_date",
- "last_opened_date"
- ]
- }
- }
- },
- "space.CreateSpaceRequest": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "example": "New Space"
- }
- }
- },
- "space.CreateSpaceResponse": {
- "type": "object",
- "properties": {
- "space": {
- "$ref": "#/definitions/space.Space"
- }
- }
- },
- "space.Member": {
- "type": "object",
- "properties": {
- "global_name": {
- "type": "string",
- "example": "john.any"
- },
- "icon": {
- "type": "string",
- "example": "http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay?width=100"
- },
- "id": {
- "type": "string",
- "example": "_participant_bafyreigyfkt6rbv24sbv5aq2hko1bhmv5xxlf22b4bypdu6j7hnphm3psq_23me69r569oi1_AAjEaEwPF4nkEh9AWkqEnzcQ8HziBB4ETjiTpvRCQvWnSMDZ"
- },
- "identity": {
- "type": "string",
- "example": "AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ"
- },
- "name": {
- "type": "string",
- "example": "John Doe"
- },
- "role": {
- "type": "string",
- "enum": [
- "Reader",
- "Writer",
- "Owner",
- "NoPermission"
- ],
- "example": "Owner"
- },
- "type": {
- "type": "string",
- "example": "member"
- }
- }
- },
- "space.Space": {
- "type": "object",
- "properties": {
- "account_space_id": {
- "type": "string",
- "example": "bafyreihpd2knon5wbljhtfeg3fcqtg3i2pomhhnigui6lrjmzcjzep7gcy.23me69r569oi1"
- },
- "analytics_id": {
- "type": "string",
- "example": "624aecdd-4797-4611-9d61-a2ae5f53cf1c"
- },
- "archive_object_id": {
- "type": "string",
- "example": "bafyreialsgoyflf3etjm3parzurivyaukzivwortf32b4twnlwpwocsrri"
- },
- "device_id": {
- "type": "string",
- "example": "12D3KooWGZMJ4kQVyQVXaj7gJPZr3RZ2nvd9M2Eq2pprEoPih9WF"
- },
- "gateway_url": {
- "type": "string",
- "example": "http://127.0.0.1:31006"
- },
- "home_object_id": {
- "type": "string",
- "example": "bafyreie4qcl3wczb4cw5hrfyycikhjyh6oljdis3ewqrk5boaav3sbwqya"
- },
- "icon": {
- "type": "string",
- "example": "http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay"
- },
- "id": {
- "type": "string",
- "example": "bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1"
- },
- "local_storage_path": {
- "type": "string",
- "example": "/Users/johndoe/Library/Application Support/Anytype/data/AAHTtt1wuQEnaYBNZ2Cyfcvs6DqPqxgn8VXDVk4avsUkMuha"
- },
- "marketplace_workspace_id": {
- "type": "string",
- "example": "_anytype_marketplace"
- },
- "name": {
- "type": "string",
- "example": "Space Name"
- },
- "network_id": {
- "type": "string",
- "example": "N83gJpVd9MuNRZAuJLZ7LiMntTThhPc6DtzWWVjb1M3PouVU"
- },
- "profile_object_id": {
- "type": "string",
- "example": "bafyreiaxhwreshjqwndpwtdsu4mtihaqhhmlygqnyqpfyfwlqfq3rm3gw4"
- },
- "space_view_id": {
- "type": "string",
- "example": "bafyreigzv3vq7qwlrsin6njoduq727ssnhwd6bgyfj6nm4hv3pxoc2rxhy"
- },
- "tech_space_id": {
- "type": "string",
- "example": "bafyreif4xuwncrjl6jajt4zrrfnylpki476nv2w64yf42ovt7gia7oypii.23me69r569oi1"
- },
- "timezone": {
- "type": "string",
- "example": ""
- },
- "type": {
- "type": "string",
- "example": "space"
- },
- "widgets_id": {
- "type": "string",
- "example": "bafyreialj7pceh53mifm5dixlho47ke4qjmsn2uh4wsjf7xq2pnlo5xfva"
- },
- "workspace_object_id": {
- "type": "string",
- "example": "bafyreiapey2g6e6za4zfxvlgwdy4hbbfu676gmwrhnqvjbxvrchr7elr3y"
- }
- }
- },
- "util.ForbiddenError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- },
- "util.NotFoundError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- },
- "util.ServerError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- },
- "util.UnauthorizedError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- },
- "util.ValidationError": {
- "type": "object",
- "properties": {
- "error": {
- "type": "object",
- "properties": {
- "message": {
- "type": "string"
- }
- }
- }
- }
- }
- },
- "securityDefinitions": {
- "BasicAuth": {
- "type": "basic"
- }
- },
- "externalDocs": {
- "description": "OpenAPI",
- "url": "https://swagger.io/resources/open-api/"
- }
+ "components": {"schemas":{"auth.DisplayCodeResponse":{"properties":{"challenge_id":{"description":"The challenge id associated with the displayed code and needed to solve the challenge for token","example":"67647f5ecda913e9a2e11b26","type":"string"}},"type":"object"},"auth.TokenResponse":{"properties":{"app_key":{"description":"The permanent app key","example":"zhSG/zQRmgADyilWPtgdnfo1qD60oK02/SVgi1GaFt6=","type":"string"},"session_token":{"description":"The ephemeral session token","example":"eyJhbGciOeJIRzI1NiIsInR5cCI6IkpXVCJ1.eyJzZWVkIjaiY0dmVndlUnAifQ.Y1EZecYnwmvMkrXKOa2XJnAbaRt34urBabe06tmDQII","type":"string"}},"type":"object"},"export.ObjectExportResponse":{"properties":{"markdown":{"example":"# This is the title\n...","type":"string"}},"type":"object"},"list.Filter":{"properties":{"condition":{"description":"The filter condition","example":"contains","type":"string"},"format":{"description":"The format of the property used for filtering","example":"text","type":"string"},"id":{"description":"The id of the filter","example":"67bf3f21cda9134102e2422c","type":"string"},"property_key":{"description":"The property key used for filtering","example":"name","type":"string"},"value":{"description":"The value used for filtering","example":"Some value...","type":"string"}},"type":"object"},"list.Sort":{"properties":{"format":{"description":"The format of the property used for sorting","example":"text","type":"string"},"id":{"description":"The id of the sort","example":"67bf3f21cda9134102e2422c","type":"string"},"property_key":{"description":"The property key used for sorting","example":"name","type":"string"},"sort_type":{"description":"The sort direction","example":"asc","type":"string"}},"type":"object"},"list.View":{"properties":{"filters":{"description":"The list of filters","items":{"$ref":"#/components/schemas/list.Filter"},"type":"array","uniqueItems":false},"id":{"description":"The id of the view","example":"67bf3f21cda9134102e2422c","type":"string"},"layout":{"description":"The layout of the view","enum":["grid","table"],"example":"grid","type":"string"},"name":{"description":"The name of the view","example":"All","type":"string"},"sorts":{"description":"The list of sorts","items":{"$ref":"#/components/schemas/list.Sort"},"type":"array","uniqueItems":false}},"type":"object"},"object.Block":{"properties":{"align":{"description":"The alignment of the block","enum":["AlignLeft","AlignCenter","AlignRight","AlignJustify"],"example":"AlignLeft","type":"string"},"background_color":{"description":"The background color of the block","example":"red","type":"string"},"children_ids":{"description":"The ids of the block's children","example":["['6797ce8ecda913cde14b02dc']"],"items":{"type":"string"},"type":"array","uniqueItems":false},"file":{"$ref":"#/components/schemas/object.File"},"id":{"description":"The id of the block","example":"64394517de52ad5acb89c66c","type":"string"},"property":{"$ref":"#/components/schemas/object.Property"},"text":{"$ref":"#/components/schemas/object.Text"},"vertical_align":{"description":"The vertical alignment of the block","enum":["VerticalAlignTop","VerticalAlignMiddle","VerticalAlignBottom"],"example":"VerticalAlignTop","type":"string"}},"type":"object"},"object.CreateObjectRequest":{"properties":{"body":{"description":"The body of the object","example":"This is the body of the object. Markdown syntax is supported here.","type":"string"},"description":{"description":"The description of the object","example":"This is a description of the object.","type":"string"},"icon":{"$ref":"#/components/schemas/util.Icon"},"name":{"description":"The name of the object","example":"My object","type":"string"},"source":{"description":"The source url, only applicable for bookmarks","example":"https://bookmark-source.com","type":"string"},"template_id":{"description":"The id of the template to use","example":"bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge","type":"string"},"type_key":{"description":"The key of the type of object to create","example":"ot-page","type":"string"}},"type":"object"},"object.File":{"description":"The file of the block, if applicable","properties":{"added_at":{"description":"The added at of the file","type":"integer"},"hash":{"description":"The hash of the file","type":"string"},"mime":{"description":"The mime of the file","type":"string"},"name":{"description":"The name of the file","type":"string"},"size":{"description":"The size of the file","type":"integer"},"state":{"description":"The state of the file","type":"string"},"style":{"description":"The style of the file","type":"string"},"target_object_id":{"description":"The target object id of the file","type":"string"},"type":{"description":"The type of the file","type":"string"}},"type":"object"},"object.Object":{"description":"The object","properties":{"archived":{"description":"Whether the object is archived","example":false,"type":"boolean"},"blocks":{"description":"The blocks of the object","items":{"$ref":"#/components/schemas/object.Block"},"type":"array","uniqueItems":false},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The id of the object","example":"bafyreie6n5l5nkbjal37su54cha4coy7qzuhrnajluzv5qd5jvtsrxkequ","type":"string"},"layout":{"description":"The layout of the object","example":"basic","type":"string"},"name":{"description":"The name of the object","example":"My object","type":"string"},"object":{"description":"The data model of the object","example":"object","type":"string"},"properties":{"description":"The properties of the object","items":{"$ref":"#/components/schemas/object.Property"},"type":"array","uniqueItems":false},"snippet":{"description":"The snippet of the object, especially important for notes as they don't have a name","example":"The beginning of the object body...","type":"string"},"space_id":{"description":"The id of the space the object is in","example":"bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1","type":"string"},"type":{"$ref":"#/components/schemas/object.Type"}},"type":"object"},"object.ObjectResponse":{"properties":{"object":{"$ref":"#/components/schemas/object.Object"}},"type":"object"},"object.Property":{"description":"The property block, if applicable","properties":{"checkbox":{"description":"The checkbox value, if applicable","example":true,"type":"boolean"},"date":{"description":"The date value, if applicable","example":"2025-02-14T12:34:56Z","type":"string"},"email":{"description":"The email value, if applicable","example":"example@example.com","type":"string"},"file":{"description":"The file references, if applicable","example":["['fileId']"],"items":{"type":"string"},"type":"array","uniqueItems":false},"format":{"description":"The format of the property","enum":["text","number","select","multi_select","date","file","checkbox","url","email","phone","object"],"example":"date","type":"string"},"id":{"description":"The id of the property","example":"last_modified_date","type":"string"},"multi_select":{"description":"The multi-select values, if applicable","items":{"$ref":"#/components/schemas/object.Tag"},"type":"array","uniqueItems":false},"name":{"description":"The name of the property","example":"Last modified date","type":"string"},"number":{"description":"The number value, if applicable","example":42,"type":"number"},"object":{"description":"The object references, if applicable","example":["['objectId']"],"items":{"type":"string"},"type":"array","uniqueItems":false},"phone":{"description":"The phone number value, if applicable","example":"+1234567890","type":"string"},"select":{"$ref":"#/components/schemas/object.Tag"},"text":{"description":"The text value, if applicable","example":"Some text...","type":"string"},"url":{"description":"The url value, if applicable","example":"https://example.com","type":"string"}},"type":"object"},"object.Tag":{"description":"The select value, if applicable","properties":{"color":{"description":"The color of the tag","example":"yellow","type":"string"},"id":{"description":"The id of the tag","example":"bafyreiaixlnaefu3ci22zdenjhsdlyaeeoyjrsid5qhfeejzlccijbj7sq","type":"string"},"name":{"description":"The name of the tag","example":"in-progress","type":"string"}},"type":"object"},"object.Template":{"description":"The template","properties":{"archived":{"description":"Whether the template is archived","example":false,"type":"boolean"},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The id of the template","example":"bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge","type":"string"},"name":{"description":"The name of the template","example":"My template","type":"string"},"object":{"description":"The data model of the object","example":"template","type":"string"}},"type":"object"},"object.TemplateResponse":{"properties":{"template":{"$ref":"#/components/schemas/object.Template"}},"type":"object"},"object.Text":{"description":"The text of the block, if applicable","properties":{"checked":{"description":"Whether the text is checked","example":true,"type":"boolean"},"color":{"description":"The color of the text","example":"red","type":"string"},"icon":{"$ref":"#/components/schemas/util.Icon"},"style":{"description":"The style of the text","enum":["Paragraph","Header1","Header2","Header3","Header4","Quote","Code","Title","Checkbox","Marked","Numbered","Toggle","Description","Callout"],"example":"Paragraph","type":"string"},"text":{"description":"The text","example":"Some text...","type":"string"}},"type":"object"},"object.Type":{"description":"The type of the object","properties":{"archived":{"description":"Whether the type is archived","example":false,"type":"boolean"},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The id of the type (which is unique across spaces)","example":"bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu","type":"string"},"key":{"description":"The key of the type (can be the same across spaces for known types)","example":"ot-page","type":"string"},"name":{"description":"The name of the type","example":"Page","type":"string"},"object":{"description":"The data model of the object","example":"type","type":"string"},"recommended_layout":{"description":"The recommended layout of the type","example":"todo","type":"string"}},"type":"object"},"object.TypeResponse":{"properties":{"type":{"$ref":"#/components/schemas/object.Type"}},"type":"object"},"pagination.PaginatedResponse-list_View":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/list.View"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-object_Object":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/object.Object"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-object_Template":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/object.Template"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-object_Type":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/object.Type"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-space_Member":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/space.Member"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginatedResponse-space_Space":{"properties":{"data":{"description":"The list of items in the current result set","items":{"$ref":"#/components/schemas/space.Space"},"type":"array","uniqueItems":false},"pagination":{"$ref":"#/components/schemas/pagination.PaginationMeta"}},"type":"object"},"pagination.PaginationMeta":{"description":"The pagination metadata for the response","properties":{"has_more":{"description":"Indicates if there are more items available beyond the current result set","example":true,"type":"boolean"},"limit":{"description":"The maximum number of items returned in the result set","example":100,"type":"integer"},"offset":{"description":"The number of items skipped before starting to collect the result set","example":0,"type":"integer"},"total":{"description":"The total number of items available for the endpoint","example":1024,"type":"integer"}},"type":"object"},"search.SearchRequest":{"properties":{"query":{"description":"The search term to look for in object names and snippets","example":"test","type":"string"},"sort":{"$ref":"#/components/schemas/search.SortOptions"},"types":{"description":"The types of objects to search for, specified by key or ID","example":["ot-page","ot-678043f0cda9133be777049f","bafyreightzrdts2ymxyaeyzspwdfo2juspyam76ewq6qq7ixnw3523gs7q"],"items":{"type":"string"},"type":"array","uniqueItems":false}},"type":"object"},"search.SortDirection":{"default":"desc","description":"The direction to sort the search results","enum":["asc","desc"],"type":"string","x-enum-varnames":["Asc","Desc"]},"search.SortOptions":{"description":"The sorting criteria and direction for the search results","properties":{"direction":{"$ref":"#/components/schemas/search.SortDirection"},"property":{"$ref":"#/components/schemas/search.SortProperty"}},"type":"object"},"search.SortProperty":{"default":"last_modified_date","description":"The property to sort the search results by","enum":["created_date","last_modified_date","last_opened_date","name"],"type":"string","x-enum-varnames":["CreatedDate","LastModifiedDate","LastOpenedDate","Name"]},"space.CreateSpaceRequest":{"properties":{"description":{"description":"The description of the space","example":"The local-first wiki","type":"string"},"name":{"description":"The name of the space","example":"New Space","type":"string"}},"type":"object"},"space.Member":{"description":"The member","properties":{"global_name":{"description":"The global name of the member in the network","example":"john.any","type":"string"},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The profile object id of the member","example":"_participant_bafyreigyfkt6rbv24sbv5aq2hko1bhmv5xxlf22b4bypdu6j7hnphm3psq_23me69r569oi1_AAjEaEwPF4nkEh9AWkqEnzcQ8HziBB4ETjiTpvRCQvWnSMDZ","type":"string"},"identity":{"description":"The identity of the member in the network","example":"AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ","type":"string"},"name":{"description":"The name of the member","example":"John Doe","type":"string"},"object":{"description":"The data model of the object","example":"member","type":"string"},"role":{"description":"The role of the member","enum":["viewer","editor","owner","no_permission"],"example":"owner","type":"string"},"status":{"description":"The status of the member","enum":["joining","active","removed","declined","removing","canceled"],"example":"active","type":"string"}},"type":"object"},"space.MemberResponse":{"properties":{"member":{"$ref":"#/components/schemas/space.Member"}},"type":"object"},"space.Space":{"description":"The space","properties":{"description":{"description":"The description of the space","example":"The local-first wiki","type":"string"},"gateway_url":{"description":"The gateway url to serve files and media","example":"http://127.0.0.1:31006","type":"string"},"icon":{"$ref":"#/components/schemas/util.Icon"},"id":{"description":"The id of the space","example":"bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1","type":"string"},"name":{"description":"The name of the space","example":"My Space","type":"string"},"network_id":{"description":"The network id of the space","example":"N83gJpVd9MuNRZAuJLZ7LiMntTThhPc6DtzWWVjb1M3PouVU","type":"string"},"object":{"description":"The data model of the object","example":"space","type":"string"}},"type":"object"},"space.SpaceResponse":{"properties":{"space":{"$ref":"#/components/schemas/space.Space"}},"type":"object"},"util.ForbiddenError":{"properties":{"error":{"properties":{"message":{"example":"Forbidden","type":"string"}},"type":"object"}},"type":"object"},"util.GoneError":{"properties":{"error":{"properties":{"message":{"example":"Resource is gone","type":"string"}},"type":"object"}},"type":"object"},"util.Icon":{"description":"The icon of the object","properties":{"color":{"description":"The color of the icon","example":"red","type":"string"},"emoji":{"description":"The emoji of the icon","example":"📄","type":"string"},"file":{"description":"The file of the icon","example":"http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay","type":"string"},"format":{"$ref":"#/components/schemas/util.IconFormat"},"name":{"description":"The name of the icon","example":"document","type":"string"}},"type":"object"},"util.IconFormat":{"description":"The type of the icon","enum":["emoji","file","icon"],"example":"emoji","type":"string","x-enum-varnames":["IconFormatEmoji","IconFormatFile","IconFormatIcon"]},"util.NotFoundError":{"properties":{"error":{"properties":{"message":{"example":"Resource not found","type":"string"}},"type":"object"}},"type":"object"},"util.RateLimitError":{"properties":{"error":{"properties":{"message":{"example":"Rate limit exceeded","type":"string"}},"type":"object"}},"type":"object"},"util.ServerError":{"properties":{"error":{"properties":{"message":{"example":"Internal server error","type":"string"}},"type":"object"}},"type":"object"},"util.UnauthorizedError":{"properties":{"error":{"properties":{"message":{"example":"Unauthorized","type":"string"}},"type":"object"}},"type":"object"},"util.ValidationError":{"properties":{"error":{"properties":{"message":{"example":"Bad request","type":"string"}},"type":"object"}},"type":"object"}},"securitySchemes":{"bearerauth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},
+ "info": {"contact":{"email":"support@anytype.io","name":"Anytype Support","url":"https://anytype.io/contact"},"description":"This API allows interaction with Anytype resources such as spaces, objects and types.","license":{"name":"Any Source Available License 1.0","url":"https://github.com/anyproto/anytype-api/blob/main/LICENSE.md"},"termsOfService":"https://anytype.io/terms_of_use","title":"Anytype API","version":"2025-03-17"},
+ "externalDocs": {"description":"OpenAPI","url":"https://swagger.io/resources/open-api/"},
+ "paths": {"/auth/display_code":{"post":{"description":"This endpoint initiates a secure authentication flow by generating a new challenge. Clients must supply the name of the application (via a query parameter) that is requesting authentication. On success, the service returns a unique challenge ID. This challenge ID must then be used with the token endpoint (see below) to solve the challenge and retrieve an authentication token. In essence, this endpoint “boots up” the login process and is the first step in a multi-phase authentication sequence.","parameters":[{"description":"App name requesting the challenge","in":"query","name":"app_name","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/auth.DisplayCodeResponse"}}},"description":"Challenge ID"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Invalid input"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"summary":"Start new challenge","tags":["auth"]}},"/auth/token":{"post":{"description":"After receiving a challenge ID from the display_code endpoint, the client calls this endpoint to provide the corresponding 4-digit code (also via a query parameter) along with the challenge ID. The endpoint verifies that the challenge solution is correct and, if it is, returns an ephemeral session token together with a permanent app key. These tokens are then used in subsequent API requests to authorize access. This endpoint is central to ensuring that only properly authenticated sessions can access further resources.","parameters":[{"description":"Challenge ID","in":"query","name":"challenge_id","required":true,"schema":{"type":"string"}},{"description":"4-digit code retrieved from Anytype Desktop app","in":"query","name":"code","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/auth.TokenResponse"}}},"description":"Authentication token"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Invalid input"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"summary":"Retrieve token","tags":["auth"]}},"/search":{"post":{"description":"This endpoint executes a global search over every space the user has access to. It accepts pagination parameters (offset and limit) and a JSON body containing search criteria. The criteria include a search query string, an optional list of object types, and sort options (e.g. ascending/descending by creation, modification, or last opened dates). Internally, the endpoint aggregates results from each space, merges and sorts them (after last modified date by default), and returns a unified, paginated list of objects that match the search parameters.","parameters":[{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/search.SearchRequest"}}},"description":"Search parameters","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Object"}}},"description":"List of objects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Search objects across all spaces","tags":["search"]}},"/spaces":{"get":{"description":"Retrieves a paginated list of all spaces that are accessible by the authenticated user. Each space record contains detailed information such as the space ID, name, icon (derived either from an emoji or image URL), and additional metadata. This endpoint is key to displaying a user’s workspaces.","parameters":[{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-space_Space"}}},"description":"List of spaces"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List spaces","tags":["spaces"]},"post":{"description":"Creates a new workspace (or space) based on a supplied name in the JSON request body. The endpoint is subject to rate limiting and automatically applies default configurations such as generating a random icon and initializing the workspace with default settings (for example, a default dashboard or home page). On success, the new space’s full metadata is returned, enabling the client to immediately switch context to the new space.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/space.CreateSpaceRequest"}}},"description":"Space to create","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/space.SpaceResponse"}}},"description":"Space created successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"423":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.RateLimitError"}}},"description":"Rate limit exceeded"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Create space","tags":["spaces"]}},"/spaces/{space_id}":{"get":{"description":"Fetches full details about a single space identified by its space ID. The response includes metadata such as the space name, icon, and various workspace IDs (home, archive, profile, etc.). This detailed view supports use cases such as displaying space-specific settings.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/space.SpaceResponse"}}},"description":"Space"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Space not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get space","tags":["spaces"]}},"/spaces/{space_id}/lists/{list_id}/objects":{"post":{"description":"Enables clients to add one or more objects to a specific list (collection only) by submitting a JSON array of object IDs. Upon success, the endpoint returns a confirmation message. This endpoint is vital for building user interfaces that allow drag‑and‑drop or multi‑select additions to collections.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"List ID","in":"path","name":"list_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}},"description":"List of object IDs","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Objects added successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Add objects to list","tags":["lists"]}},"/spaces/{space_id}/lists/{list_id}/objects/{object_id}":{"delete":{"description":"Removes a given object from the specified list (collection only) in a space. The endpoint takes the space, list, and object identifiers as path parameters. It's subject to rate limiting and returns a success message on completion. It is used for dynamically managing collections without affecting the underlying object data.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"List ID","in":"path","name":"list_id","required":true,"schema":{"type":"string"}},{"description":"Object ID","in":"path","name":"object_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"Objects removed successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Remove object from list","tags":["lists"]}},"/spaces/{space_id}/lists/{list_id}/views":{"get":{"description":"Returns a paginated list of views defined for a specific list (query or collection) within a space. Each view includes configuration details such as layout, applied filters, and sorting options, enabling clients to render the list according to user preferences and context. This endpoint supports pagination parameters to control the number of views returned and the starting point of the result set.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"List ID","in":"path","name":"list_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-list_View"}}},"description":"List of views"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get list views","tags":["lists"]}},"/spaces/{space_id}/lists/{list_id}/{view_id}/objects":{"get":{"description":"Returns a paginated list of objects associated with a specific list (query or collection) within a space. When a view ID is provided, the objects are filtered and sorted according to the view's configuration. If no view ID is specified, all list objects are returned without filtering and sorting. This endpoint helps clients to manage grouped objects (for example, tasks within a list) by returning information for each item of the list.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"List ID","in":"path","name":"list_id","required":true,"schema":{"type":"string"}},{"description":"View ID","in":"path","name":"view_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Object"}}},"description":"List of objects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get objects in list","tags":["lists"]}},"/spaces/{space_id}/members":{"get":{"description":"Returns a paginated list of members belonging to the specified space. Each member record includes the member’s profile ID, name, icon (which may be derived from an emoji or image), network identity, global name, status (e.g. joining, active) and role (e.g. Viewer, Editor, Owner). This endpoint supports collaborative features by allowing clients to show who is in a space and manage access rights.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-space_Member"}}},"description":"List of members"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List members","tags":["members"]}},"/spaces/{space_id}/members/{member_id}":{"get":{"description":"Fetches detailed information about a single member within a space. The endpoint returns the member’s identifier, name, icon, identity, global name, status and role. The member_id path parameter can be provided as either the member's ID (starting with `_participant`) or the member's identity. This is useful for user profile pages, permission management, and displaying member-specific information in collaborative environments.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Member ID or Identity","in":"path","name":"member_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/space.MemberResponse"}}},"description":"Member"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Member not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get member","tags":["members"]}},"/spaces/{space_id}/objects":{"get":{"description":"Retrieves a paginated list of objects in the given space. The endpoint takes query parameters for pagination (offset and limit) and returns detailed data about each object including its ID, name, icon, type information, a snippet of the content (if applicable), layout, space ID, blocks and details. It is intended for building views where users can see all objects in a space at a glance.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Object"}}},"description":"List of objects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List objects","tags":["objects"]},"post":{"description":"Creates a new object in the specified space using a JSON payload. The creation process is subject to rate limiting. The payload must include key details such as the object name, icon, description, body content (which may support Markdown), source URL (required for bookmark objects), template identifier, and the type_key (which is the non-unique identifier of the type of object to create). Post-creation, additional operations (like setting featured properties or fetching bookmark metadata) may occur. The endpoint then returns the full object data, ready for further interactions.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.CreateObjectRequest"}}},"description":"Object to create","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.ObjectResponse"}}},"description":"The created object"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"423":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.RateLimitError"}}},"description":"Rate limit exceeded"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Create object","tags":["objects"]}},"/spaces/{space_id}/objects/{object_id}":{"delete":{"description":"This endpoint “deletes” an object by marking it as archived. The deletion process is performed safely and is subject to rate limiting. It returns the object’s details after it has been archived. Proper error handling is in place for situations such as when the object isn’t found or the deletion cannot be performed because of permission issues.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Object ID","in":"path","name":"object_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.ObjectResponse"}}},"description":"The deleted object"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ForbiddenError"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Resource not found"},"423":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.RateLimitError"}}},"description":"Rate limit exceeded"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Delete object","tags":["objects"]},"get":{"description":"Fetches the full details of a single object identified by the object ID within the specified space. The response includes not only basic metadata (ID, name, icon, type) but also the complete set of blocks (which may include text, files, properties and dataviews) and extra details (such as timestamps and linked member information). This endpoint is essential when a client needs to render or edit the full object view.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Object ID","in":"path","name":"object_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.ObjectResponse"}}},"description":"The requested object"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Resource not found"},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.GoneError"}}},"description":"Resource deleted"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get object","tags":["objects"]}},"/spaces/{space_id}/objects/{object_id}/{format}":{"get":{"description":"This endpoint exports a single object from the specified space into a desired format. The export format is provided as a path parameter (currently supporting “markdown” only). The endpoint calls the export service which converts the object’s content into the requested format. It is useful for sharing, or displaying the markdown representation of the objecte externally.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Object ID","in":"path","name":"object_id","required":true,"schema":{"type":"string"}},{"description":"Export format","in":"path","name":"format","required":true,"schema":{"enum":["markdown"],"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/export.ObjectExportResponse"}}},"description":"Object exported successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ValidationError"}}},"description":"Bad request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Export object","tags":["export"]}},"/spaces/{space_id}/search":{"post":{"description":"This endpoint performs a focused search within a single space (specified by the space_id path parameter). Like the global search, it accepts pagination parameters and a JSON payload containing the search query, object types, and sorting preferences. The search is limited to the provided space and returns a list of objects that match the query. This allows clients to implement space‑specific filtering without having to process extraneous results.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/search.SearchRequest"}}},"description":"Search parameters","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Object"}}},"description":"List of objects"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Search objects within a space","tags":["search"]}},"/spaces/{space_id}/types":{"get":{"description":"This endpoint retrieves a paginated list of object types (e.g. 'Page', 'Note', 'Task') available within the specified space. Each type’s record includes its unique identifier, type key, display name, icon, and a recommended layout. While a type's id is truly unique, a type's key can be the same across spaces for known types, e.g. 'ot-page' for 'Page'. Clients use this information when offering choices for object creation or for filtering objects by type through search.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Type"}}},"description":"List of types"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List types","tags":["types"]}},"/spaces/{space_id}/types/{type_id}":{"get":{"description":"Fetches detailed information about one specific object type by its ID. This includes the type’s unique key, name, icon, and recommended layout. This detailed view assists clients in understanding the expected structure and style for objects of that type and in guiding the user interface (such as displaying appropriate icons or layout hints).","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Type ID","in":"path","name":"type_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.TypeResponse"}}},"description":"The requested type"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Resource not found"},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.GoneError"}}},"description":"Resource deleted"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get type","tags":["types"]}},"/spaces/{space_id}/types/{type_id}/templates":{"get":{"description":"This endpoint returns a paginated list of templates that are associated with a specific object type within a space. Templates provide pre‑configured structures for creating new objects. Each template record contains its identifier, name, and icon, so that clients can offer users a selection of templates when creating objects.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Type ID","in":"path","name":"type_id","required":true,"schema":{"type":"string"}},{"description":"The number of items to skip before starting to collect the result set","in":"query","name":"offset","schema":{"default":0,"type":"integer"}},{"description":"The number of items to return","in":"query","name":"limit","schema":{"default":100,"maximum":1000,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/pagination.PaginatedResponse-object_Template"}}},"description":"List of templates"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"List templates","tags":["templates"]}},"/spaces/{space_id}/types/{type_id}/templates/{template_id}":{"get":{"description":"Fetches full details for one template associated with a particular object type in a space. The response provides the template’s identifier, name, icon, and any other relevant metadata. This endpoint is useful when a client needs to preview or apply a template to prefill object creation fields.","parameters":[{"description":"Space ID","in":"path","name":"space_id","required":true,"schema":{"type":"string"}},{"description":"Type ID","in":"path","name":"type_id","required":true,"schema":{"type":"string"}},{"description":"Template ID","in":"path","name":"template_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/object.TemplateResponse"}}},"description":"The requested template"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.UnauthorizedError"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.NotFoundError"}}},"description":"Resource not found"},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.GoneError"}}},"description":"Resource deleted"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/util.ServerError"}}},"description":"Internal server error"}},"security":[{"bearerauth":[]}],"summary":"Get template","tags":["templates"]}}},
+ "openapi": "3.1.0",
+ "servers": [
+ {"url":"http://localhost:31009/v1"}
+ ]
}
\ No newline at end of file
diff --git a/core/api/docs/swagger.yaml b/core/api/docs/swagger.yaml
index 550a59d1c..6cad0f8bc 100644
--- a/core/api/docs/swagger.yaml
+++ b/core/api/docs/swagger.yaml
@@ -1,475 +1,797 @@
-basePath: /v1
-definitions:
- auth.DisplayCodeResponse:
- properties:
- challenge_id:
- example: 67647f5ecda913e9a2e11b26
- type: string
- type: object
- auth.TokenResponse:
- properties:
- app_key:
- example: zhSG/zQRmgADyilWPtgdnfo1qD60oK02/SVgi1GaFt6=
- type: string
- session_token:
- example: eyJhbGciOeJIRzI1NiIsInR5cCI6IkpXVCJ1.eyJzZWVkIjaiY0dmVndlUnAifQ.Y1EZecYnwmvMkrXKOa2XJnAbaRt34urBabe06tmDQII
- type: string
- type: object
- export.ObjectExportResponse:
- properties:
- path:
- example: /path/to/export
- type: string
- type: object
- object.Block:
- properties:
- align:
- enum:
- - AlignLeft
- - AlignCenter
- - AlignRight
- - AlignJustify
- example: AlignLeft
- type: string
- background_color:
- example: red
- type: string
- children_ids:
- example:
- - '[''6797ce8ecda913cde14b02dc'']'
- items:
+components:
+ schemas:
+ auth.DisplayCodeResponse:
+ properties:
+ challenge_id:
+ description: The challenge id associated with the displayed code and needed
+ to solve the challenge for token
+ example: 67647f5ecda913e9a2e11b26
type: string
- type: array
- file:
- $ref: '#/definitions/object.File'
- id:
- example: 64394517de52ad5acb89c66c
- type: string
- text:
- $ref: '#/definitions/object.Text'
- vertical_align:
- enum:
- - VerticalAlignTop
- - VerticalAlignMiddle
- - VerticalAlignBottom
- example: VerticalAlignTop
- type: string
- type: object
- object.CreateObjectRequest:
- properties:
- body:
- example: Object Body
- type: string
- description:
- example: Object Description
- type: string
- icon:
- example: "\U0001F4C4"
- type: string
- name:
- example: Object Name
- type: string
- object_type_unique_key:
- example: ot-page
- type: string
- source:
- example: https://source.com
- type: string
- template_id:
- example: bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge
- type: string
- type: object
- object.Detail:
- properties:
- details:
- additionalProperties: true
- type: object
- id:
- enum:
- - last_modified_date
- - last_modified_by
- - created_date
- - created_by
- - last_opened_date
- - tags
- example: last_modified_date
- type: string
- type: object
- object.File:
- properties:
- added_at:
- type: integer
- hash:
- type: string
- mime:
- type: string
- name:
- type: string
- size:
- type: integer
- state:
- type: string
- style:
- type: string
- target_object_id:
- type: string
- type:
- type: string
- type: object
- object.Object:
- properties:
- blocks:
- items:
- $ref: '#/definitions/object.Block'
- type: array
- details:
- items:
- $ref: '#/definitions/object.Detail'
- type: array
- icon:
- example: "\U0001F4C4"
- type: string
- id:
- example: bafyreie6n5l5nkbjal37su54cha4coy7qzuhrnajluzv5qd5jvtsrxkequ
- type: string
- layout:
- example: basic
- type: string
- name:
- example: Object Name
- type: string
- root_id:
- example: bafyreicypzj6uvu54664ucv3hmbsd5cmdy2dv4fwua26sciq74khzpyn4u
- type: string
- snippet:
- example: The beginning of the object body...
- type: string
- space_id:
- example: bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1
- type: string
- type:
- example: Page
- type: string
- type: object
- object.ObjectResponse:
- properties:
- object:
- $ref: '#/definitions/object.Object'
- type: object
- object.Template:
- properties:
- icon:
- example: "\U0001F4C4"
- type: string
- id:
- example: bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge
- type: string
- name:
- example: Template Name
- type: string
- type:
- example: template
- type: string
- type: object
- object.TemplateResponse:
- properties:
- template:
- $ref: '#/definitions/object.Template'
- type: object
- object.Text:
- properties:
- checked:
- example: true
- type: boolean
- color:
- example: red
- type: string
- icon:
- example: "\U0001F4C4"
- type: string
- style:
- enum:
- - Paragraph
- - Header1
- - Header2
- - Header3
- - Header4
- - Quote
- - Code
- - Title
- - Checkbox
- - Marked
- - Numbered
- - Toggle
- - Description
- - Callout
- example: Paragraph
- type: string
- text:
- example: Some text
- type: string
- type: object
- object.Type:
- properties:
- icon:
- example: "\U0001F4C4"
- type: string
- id:
- example: bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu
- type: string
- name:
- example: Page
- type: string
- recommended_layout:
- example: todo
- type: string
- type:
- example: type
- type: string
- unique_key:
- example: ot-page
- type: string
- type: object
- object.TypeResponse:
- properties:
- type:
- $ref: '#/definitions/object.Type'
- type: object
- pagination.PaginatedResponse-object_Object:
- properties:
- data:
- items:
- $ref: '#/definitions/object.Object'
- type: array
- pagination:
- $ref: '#/definitions/pagination.PaginationMeta'
- type: object
- pagination.PaginatedResponse-object_Template:
- properties:
- data:
- items:
- $ref: '#/definitions/object.Template'
- type: array
- pagination:
- $ref: '#/definitions/pagination.PaginationMeta'
- type: object
- pagination.PaginatedResponse-object_Type:
- properties:
- data:
- items:
- $ref: '#/definitions/object.Type'
- type: array
- pagination:
- $ref: '#/definitions/pagination.PaginationMeta'
- type: object
- pagination.PaginatedResponse-space_Member:
- properties:
- data:
- items:
- $ref: '#/definitions/space.Member'
- type: array
- pagination:
- $ref: '#/definitions/pagination.PaginationMeta'
- type: object
- pagination.PaginatedResponse-space_Space:
- properties:
- data:
- items:
- $ref: '#/definitions/space.Space'
- type: array
- pagination:
- $ref: '#/definitions/pagination.PaginationMeta'
- type: object
- pagination.PaginationMeta:
- properties:
- has_more:
- description: whether there are more items available
- example: true
- type: boolean
- limit:
- description: the current limit
- example: 100
- type: integer
- offset:
- description: the current offset
- example: 0
- type: integer
- total:
- description: the total number of items available on that endpoint
- example: 1024
- type: integer
- type: object
- search.SearchRequest:
- properties:
- query:
- type: string
- sort:
- $ref: '#/definitions/search.SortOptions'
- types:
- items:
+ type: object
+ auth.TokenResponse:
+ properties:
+ app_key:
+ description: The permanent app key
+ example: zhSG/zQRmgADyilWPtgdnfo1qD60oK02/SVgi1GaFt6=
type: string
- type: array
- type: object
- search.SortOptions:
- properties:
- direction:
- default: desc
- enum:
- - asc
- - desc
- type: string
- timestamp:
- default: last_modified_date
- enum:
- - created_date
- - last_modified_date
- - last_opened_date
- type: string
- type: object
- space.CreateSpaceRequest:
- properties:
- name:
- example: New Space
- type: string
- type: object
- space.CreateSpaceResponse:
- properties:
- space:
- $ref: '#/definitions/space.Space'
- type: object
- space.Member:
- properties:
- global_name:
- example: john.any
- type: string
- icon:
- example: http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay?width=100
- type: string
- id:
- example: _participant_bafyreigyfkt6rbv24sbv5aq2hko1bhmv5xxlf22b4bypdu6j7hnphm3psq_23me69r569oi1_AAjEaEwPF4nkEh9AWkqEnzcQ8HziBB4ETjiTpvRCQvWnSMDZ
- type: string
- identity:
- example: AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ
- type: string
- name:
- example: John Doe
- type: string
- role:
- enum:
- - Reader
- - Writer
- - Owner
- - NoPermission
- example: Owner
- type: string
- type:
- example: member
- type: string
- type: object
- space.Space:
- properties:
- account_space_id:
- example: bafyreihpd2knon5wbljhtfeg3fcqtg3i2pomhhnigui6lrjmzcjzep7gcy.23me69r569oi1
- type: string
- analytics_id:
- example: 624aecdd-4797-4611-9d61-a2ae5f53cf1c
- type: string
- archive_object_id:
- example: bafyreialsgoyflf3etjm3parzurivyaukzivwortf32b4twnlwpwocsrri
- type: string
- device_id:
- example: 12D3KooWGZMJ4kQVyQVXaj7gJPZr3RZ2nvd9M2Eq2pprEoPih9WF
- type: string
- gateway_url:
- example: http://127.0.0.1:31006
- type: string
- home_object_id:
- example: bafyreie4qcl3wczb4cw5hrfyycikhjyh6oljdis3ewqrk5boaav3sbwqya
- type: string
- icon:
- example: http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay
- type: string
- id:
- example: bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1
- type: string
- local_storage_path:
- example: /Users/johndoe/Library/Application Support/Anytype/data/AAHTtt1wuQEnaYBNZ2Cyfcvs6DqPqxgn8VXDVk4avsUkMuha
- type: string
- marketplace_workspace_id:
- example: _anytype_marketplace
- type: string
- name:
- example: Space Name
- type: string
- network_id:
- example: N83gJpVd9MuNRZAuJLZ7LiMntTThhPc6DtzWWVjb1M3PouVU
- type: string
- profile_object_id:
- example: bafyreiaxhwreshjqwndpwtdsu4mtihaqhhmlygqnyqpfyfwlqfq3rm3gw4
- type: string
- space_view_id:
- example: bafyreigzv3vq7qwlrsin6njoduq727ssnhwd6bgyfj6nm4hv3pxoc2rxhy
- type: string
- tech_space_id:
- example: bafyreif4xuwncrjl6jajt4zrrfnylpki476nv2w64yf42ovt7gia7oypii.23me69r569oi1
- type: string
- timezone:
- example: ""
- type: string
- type:
- example: space
- type: string
- widgets_id:
- example: bafyreialj7pceh53mifm5dixlho47ke4qjmsn2uh4wsjf7xq2pnlo5xfva
- type: string
- workspace_object_id:
- example: bafyreiapey2g6e6za4zfxvlgwdy4hbbfu676gmwrhnqvjbxvrchr7elr3y
- type: string
- type: object
- util.ForbiddenError:
- properties:
- error:
- properties:
- message:
+ session_token:
+ description: The ephemeral session token
+ example: eyJhbGciOeJIRzI1NiIsInR5cCI6IkpXVCJ1.eyJzZWVkIjaiY0dmVndlUnAifQ.Y1EZecYnwmvMkrXKOa2XJnAbaRt34urBabe06tmDQII
+ type: string
+ type: object
+ export.ObjectExportResponse:
+ properties:
+ markdown:
+ example: |-
+ # This is the title
+ ...
+ type: string
+ type: object
+ list.Filter:
+ properties:
+ condition:
+ description: The filter condition
+ example: contains
+ type: string
+ format:
+ description: The format of the property used for filtering
+ example: text
+ type: string
+ id:
+ description: The id of the filter
+ example: 67bf3f21cda9134102e2422c
+ type: string
+ property_key:
+ description: The property key used for filtering
+ example: name
+ type: string
+ value:
+ description: The value used for filtering
+ example: Some value...
+ type: string
+ type: object
+ list.Sort:
+ properties:
+ format:
+ description: The format of the property used for sorting
+ example: text
+ type: string
+ id:
+ description: The id of the sort
+ example: 67bf3f21cda9134102e2422c
+ type: string
+ property_key:
+ description: The property key used for sorting
+ example: name
+ type: string
+ sort_type:
+ description: The sort direction
+ example: asc
+ type: string
+ type: object
+ list.View:
+ properties:
+ filters:
+ description: The list of filters
+ items:
+ $ref: '#/components/schemas/list.Filter'
+ type: array
+ uniqueItems: false
+ id:
+ description: The id of the view
+ example: 67bf3f21cda9134102e2422c
+ type: string
+ layout:
+ description: The layout of the view
+ enum:
+ - grid
+ - table
+ example: grid
+ type: string
+ name:
+ description: The name of the view
+ example: All
+ type: string
+ sorts:
+ description: The list of sorts
+ items:
+ $ref: '#/components/schemas/list.Sort'
+ type: array
+ uniqueItems: false
+ type: object
+ object.Block:
+ properties:
+ align:
+ description: The alignment of the block
+ enum:
+ - AlignLeft
+ - AlignCenter
+ - AlignRight
+ - AlignJustify
+ example: AlignLeft
+ type: string
+ background_color:
+ description: The background color of the block
+ example: red
+ type: string
+ children_ids:
+ description: The ids of the block's children
+ example:
+ - '[''6797ce8ecda913cde14b02dc'']'
+ items:
type: string
- type: object
- type: object
- util.NotFoundError:
- properties:
- error:
+ type: array
+ uniqueItems: false
+ file:
+ $ref: '#/components/schemas/object.File'
+ id:
+ description: The id of the block
+ example: 64394517de52ad5acb89c66c
+ type: string
+ property:
+ $ref: '#/components/schemas/object.Property'
+ text:
+ $ref: '#/components/schemas/object.Text'
+ vertical_align:
+ description: The vertical alignment of the block
+ enum:
+ - VerticalAlignTop
+ - VerticalAlignMiddle
+ - VerticalAlignBottom
+ example: VerticalAlignTop
+ type: string
+ type: object
+ object.CreateObjectRequest:
+ properties:
+ body:
+ description: The body of the object
+ example: This is the body of the object. Markdown syntax is supported here.
+ type: string
+ description:
+ description: The description of the object
+ example: This is a description of the object.
+ type: string
+ icon:
+ $ref: '#/components/schemas/util.Icon'
+ name:
+ description: The name of the object
+ example: My object
+ type: string
+ source:
+ description: The source url, only applicable for bookmarks
+ example: https://bookmark-source.com
+ type: string
+ template_id:
+ description: The id of the template to use
+ example: bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge
+ type: string
+ type_key:
+ description: The key of the type of object to create
+ example: ot-page
+ type: string
+ type: object
+ object.File:
+ description: The file of the block, if applicable
+ properties:
+ added_at:
+ description: The added at of the file
+ type: integer
+ hash:
+ description: The hash of the file
+ type: string
+ mime:
+ description: The mime of the file
+ type: string
+ name:
+ description: The name of the file
+ type: string
+ size:
+ description: The size of the file
+ type: integer
+ state:
+ description: The state of the file
+ type: string
+ style:
+ description: The style of the file
+ type: string
+ target_object_id:
+ description: The target object id of the file
+ type: string
+ type:
+ description: The type of the file
+ type: string
+ type: object
+ object.Object:
+ description: The object
+ properties:
+ archived:
+ description: Whether the object is archived
+ example: false
+ type: boolean
+ blocks:
+ description: The blocks of the object
+ items:
+ $ref: '#/components/schemas/object.Block'
+ type: array
+ uniqueItems: false
+ icon:
+ $ref: '#/components/schemas/util.Icon'
+ id:
+ description: The id of the object
+ example: bafyreie6n5l5nkbjal37su54cha4coy7qzuhrnajluzv5qd5jvtsrxkequ
+ type: string
+ layout:
+ description: The layout of the object
+ example: basic
+ type: string
+ name:
+ description: The name of the object
+ example: My object
+ type: string
+ object:
+ description: The data model of the object
+ example: object
+ type: string
properties:
- message:
+ description: The properties of the object
+ items:
+ $ref: '#/components/schemas/object.Property'
+ type: array
+ uniqueItems: false
+ snippet:
+ description: The snippet of the object, especially important for notes as
+ they don't have a name
+ example: The beginning of the object body...
+ type: string
+ space_id:
+ description: The id of the space the object is in
+ example: bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1
+ type: string
+ type:
+ $ref: '#/components/schemas/object.Type'
+ type: object
+ object.ObjectResponse:
+ properties:
+ object:
+ $ref: '#/components/schemas/object.Object'
+ type: object
+ object.Property:
+ description: The property block, if applicable
+ properties:
+ checkbox:
+ description: The checkbox value, if applicable
+ example: true
+ type: boolean
+ date:
+ description: The date value, if applicable
+ example: "2025-02-14T12:34:56Z"
+ type: string
+ email:
+ description: The email value, if applicable
+ example: example@example.com
+ type: string
+ file:
+ description: The file references, if applicable
+ example:
+ - '[''fileId'']'
+ items:
type: string
- type: object
- type: object
- util.ServerError:
- properties:
- error:
- properties:
- message:
+ type: array
+ uniqueItems: false
+ format:
+ description: The format of the property
+ enum:
+ - text
+ - number
+ - select
+ - multi_select
+ - date
+ - file
+ - checkbox
+ - url
+ - email
+ - phone
+ - object
+ example: date
+ type: string
+ id:
+ description: The id of the property
+ example: last_modified_date
+ type: string
+ multi_select:
+ description: The multi-select values, if applicable
+ items:
+ $ref: '#/components/schemas/object.Tag'
+ type: array
+ uniqueItems: false
+ name:
+ description: The name of the property
+ example: Last modified date
+ type: string
+ number:
+ description: The number value, if applicable
+ example: 42
+ type: number
+ object:
+ description: The object references, if applicable
+ example:
+ - '[''objectId'']'
+ items:
type: string
- type: object
- type: object
- util.UnauthorizedError:
- properties:
- error:
- properties:
- message:
+ type: array
+ uniqueItems: false
+ phone:
+ description: The phone number value, if applicable
+ example: "+1234567890"
+ type: string
+ select:
+ $ref: '#/components/schemas/object.Tag'
+ text:
+ description: The text value, if applicable
+ example: Some text...
+ type: string
+ url:
+ description: The url value, if applicable
+ example: https://example.com
+ type: string
+ type: object
+ object.Tag:
+ description: The select value, if applicable
+ properties:
+ color:
+ description: The color of the tag
+ example: yellow
+ type: string
+ id:
+ description: The id of the tag
+ example: bafyreiaixlnaefu3ci22zdenjhsdlyaeeoyjrsid5qhfeejzlccijbj7sq
+ type: string
+ name:
+ description: The name of the tag
+ example: in-progress
+ type: string
+ type: object
+ object.Template:
+ description: The template
+ properties:
+ archived:
+ description: Whether the template is archived
+ example: false
+ type: boolean
+ icon:
+ $ref: '#/components/schemas/util.Icon'
+ id:
+ description: The id of the template
+ example: bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge
+ type: string
+ name:
+ description: The name of the template
+ example: My template
+ type: string
+ object:
+ description: The data model of the object
+ example: template
+ type: string
+ type: object
+ object.TemplateResponse:
+ properties:
+ template:
+ $ref: '#/components/schemas/object.Template'
+ type: object
+ object.Text:
+ description: The text of the block, if applicable
+ properties:
+ checked:
+ description: Whether the text is checked
+ example: true
+ type: boolean
+ color:
+ description: The color of the text
+ example: red
+ type: string
+ icon:
+ $ref: '#/components/schemas/util.Icon'
+ style:
+ description: The style of the text
+ enum:
+ - Paragraph
+ - Header1
+ - Header2
+ - Header3
+ - Header4
+ - Quote
+ - Code
+ - Title
+ - Checkbox
+ - Marked
+ - Numbered
+ - Toggle
+ - Description
+ - Callout
+ example: Paragraph
+ type: string
+ text:
+ description: The text
+ example: Some text...
+ type: string
+ type: object
+ object.Type:
+ description: The type of the object
+ properties:
+ archived:
+ description: Whether the type is archived
+ example: false
+ type: boolean
+ icon:
+ $ref: '#/components/schemas/util.Icon'
+ id:
+ description: The id of the type (which is unique across spaces)
+ example: bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu
+ type: string
+ key:
+ description: The key of the type (can be the same across spaces for known
+ types)
+ example: ot-page
+ type: string
+ name:
+ description: The name of the type
+ example: Page
+ type: string
+ object:
+ description: The data model of the object
+ example: type
+ type: string
+ recommended_layout:
+ description: The recommended layout of the type
+ example: todo
+ type: string
+ type: object
+ object.TypeResponse:
+ properties:
+ type:
+ $ref: '#/components/schemas/object.Type'
+ type: object
+ pagination.PaginatedResponse-list_View:
+ properties:
+ data:
+ description: The list of items in the current result set
+ items:
+ $ref: '#/components/schemas/list.View'
+ type: array
+ uniqueItems: false
+ pagination:
+ $ref: '#/components/schemas/pagination.PaginationMeta'
+ type: object
+ pagination.PaginatedResponse-object_Object:
+ properties:
+ data:
+ description: The list of items in the current result set
+ items:
+ $ref: '#/components/schemas/object.Object'
+ type: array
+ uniqueItems: false
+ pagination:
+ $ref: '#/components/schemas/pagination.PaginationMeta'
+ type: object
+ pagination.PaginatedResponse-object_Template:
+ properties:
+ data:
+ description: The list of items in the current result set
+ items:
+ $ref: '#/components/schemas/object.Template'
+ type: array
+ uniqueItems: false
+ pagination:
+ $ref: '#/components/schemas/pagination.PaginationMeta'
+ type: object
+ pagination.PaginatedResponse-object_Type:
+ properties:
+ data:
+ description: The list of items in the current result set
+ items:
+ $ref: '#/components/schemas/object.Type'
+ type: array
+ uniqueItems: false
+ pagination:
+ $ref: '#/components/schemas/pagination.PaginationMeta'
+ type: object
+ pagination.PaginatedResponse-space_Member:
+ properties:
+ data:
+ description: The list of items in the current result set
+ items:
+ $ref: '#/components/schemas/space.Member'
+ type: array
+ uniqueItems: false
+ pagination:
+ $ref: '#/components/schemas/pagination.PaginationMeta'
+ type: object
+ pagination.PaginatedResponse-space_Space:
+ properties:
+ data:
+ description: The list of items in the current result set
+ items:
+ $ref: '#/components/schemas/space.Space'
+ type: array
+ uniqueItems: false
+ pagination:
+ $ref: '#/components/schemas/pagination.PaginationMeta'
+ type: object
+ pagination.PaginationMeta:
+ description: The pagination metadata for the response
+ properties:
+ has_more:
+ description: Indicates if there are more items available beyond the current
+ result set
+ example: true
+ type: boolean
+ limit:
+ description: The maximum number of items returned in the result set
+ example: 100
+ type: integer
+ offset:
+ description: The number of items skipped before starting to collect the
+ result set
+ example: 0
+ type: integer
+ total:
+ description: The total number of items available for the endpoint
+ example: 1024
+ type: integer
+ type: object
+ search.SearchRequest:
+ properties:
+ query:
+ description: The search term to look for in object names and snippets
+ example: test
+ type: string
+ sort:
+ $ref: '#/components/schemas/search.SortOptions'
+ types:
+ description: The types of objects to search for, specified by key or ID
+ example:
+ - ot-page
+ - ot-678043f0cda9133be777049f
+ - bafyreightzrdts2ymxyaeyzspwdfo2juspyam76ewq6qq7ixnw3523gs7q
+ items:
type: string
- type: object
- type: object
- util.ValidationError:
- properties:
- error:
- properties:
- message:
- type: string
- type: object
- type: object
+ type: array
+ uniqueItems: false
+ type: object
+ search.SortDirection:
+ default: desc
+ description: The direction to sort the search results
+ enum:
+ - asc
+ - desc
+ type: string
+ x-enum-varnames:
+ - Asc
+ - Desc
+ search.SortOptions:
+ description: The sorting criteria and direction for the search results
+ properties:
+ direction:
+ $ref: '#/components/schemas/search.SortDirection'
+ property:
+ $ref: '#/components/schemas/search.SortProperty'
+ type: object
+ search.SortProperty:
+ default: last_modified_date
+ description: The property to sort the search results by
+ enum:
+ - created_date
+ - last_modified_date
+ - last_opened_date
+ - name
+ type: string
+ x-enum-varnames:
+ - CreatedDate
+ - LastModifiedDate
+ - LastOpenedDate
+ - Name
+ space.CreateSpaceRequest:
+ properties:
+ description:
+ description: The description of the space
+ example: The local-first wiki
+ type: string
+ name:
+ description: The name of the space
+ example: New Space
+ type: string
+ type: object
+ space.Member:
+ description: The member
+ properties:
+ global_name:
+ description: The global name of the member in the network
+ example: john.any
+ type: string
+ icon:
+ $ref: '#/components/schemas/util.Icon'
+ id:
+ description: The profile object id of the member
+ example: _participant_bafyreigyfkt6rbv24sbv5aq2hko1bhmv5xxlf22b4bypdu6j7hnphm3psq_23me69r569oi1_AAjEaEwPF4nkEh9AWkqEnzcQ8HziBB4ETjiTpvRCQvWnSMDZ
+ type: string
+ identity:
+ description: The identity of the member in the network
+ example: AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ
+ type: string
+ name:
+ description: The name of the member
+ example: John Doe
+ type: string
+ object:
+ description: The data model of the object
+ example: member
+ type: string
+ role:
+ description: The role of the member
+ enum:
+ - viewer
+ - editor
+ - owner
+ - no_permission
+ example: owner
+ type: string
+ status:
+ description: The status of the member
+ enum:
+ - joining
+ - active
+ - removed
+ - declined
+ - removing
+ - canceled
+ example: active
+ type: string
+ type: object
+ space.MemberResponse:
+ properties:
+ member:
+ $ref: '#/components/schemas/space.Member'
+ type: object
+ space.Space:
+ description: The space
+ properties:
+ description:
+ description: The description of the space
+ example: The local-first wiki
+ type: string
+ gateway_url:
+ description: The gateway url to serve files and media
+ example: http://127.0.0.1:31006
+ type: string
+ icon:
+ $ref: '#/components/schemas/util.Icon'
+ id:
+ description: The id of the space
+ example: bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1
+ type: string
+ name:
+ description: The name of the space
+ example: My Space
+ type: string
+ network_id:
+ description: The network id of the space
+ example: N83gJpVd9MuNRZAuJLZ7LiMntTThhPc6DtzWWVjb1M3PouVU
+ type: string
+ object:
+ description: The data model of the object
+ example: space
+ type: string
+ type: object
+ space.SpaceResponse:
+ properties:
+ space:
+ $ref: '#/components/schemas/space.Space'
+ type: object
+ util.ForbiddenError:
+ properties:
+ error:
+ properties:
+ message:
+ example: Forbidden
+ type: string
+ type: object
+ type: object
+ util.GoneError:
+ properties:
+ error:
+ properties:
+ message:
+ example: Resource is gone
+ type: string
+ type: object
+ type: object
+ util.Icon:
+ description: The icon of the object
+ properties:
+ color:
+ description: The color of the icon
+ example: red
+ type: string
+ emoji:
+ description: The emoji of the icon
+ example: "\U0001F4C4"
+ type: string
+ file:
+ description: The file of the icon
+ example: http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay
+ type: string
+ format:
+ $ref: '#/components/schemas/util.IconFormat'
+ name:
+ description: The name of the icon
+ example: document
+ type: string
+ type: object
+ util.IconFormat:
+ description: The type of the icon
+ enum:
+ - emoji
+ - file
+ - icon
+ example: emoji
+ type: string
+ x-enum-varnames:
+ - IconFormatEmoji
+ - IconFormatFile
+ - IconFormatIcon
+ util.NotFoundError:
+ properties:
+ error:
+ properties:
+ message:
+ example: Resource not found
+ type: string
+ type: object
+ type: object
+ util.RateLimitError:
+ properties:
+ error:
+ properties:
+ message:
+ example: Rate limit exceeded
+ type: string
+ type: object
+ type: object
+ util.ServerError:
+ properties:
+ error:
+ properties:
+ message:
+ example: Internal server error
+ type: string
+ type: object
+ type: object
+ util.UnauthorizedError:
+ properties:
+ error:
+ properties:
+ message:
+ example: Unauthorized
+ type: string
+ type: object
+ type: object
+ util.ValidationError:
+ properties:
+ error:
+ properties:
+ message:
+ example: Bad request
+ type: string
+ type: object
+ type: object
+ securitySchemes:
+ bearerauth:
+ bearerFormat: JWT
+ scheme: bearer
+ type: http
externalDocs:
description: OpenAPI
url: https://swagger.io/resources/open-api/
-host: localhost:31009
info:
contact:
email: support@anytype.io
@@ -479,630 +801,1241 @@ info:
objects and types.
license:
name: Any Source Available License 1.0
- url: https://github.com/anyproto/anytype-ts/blob/main/LICENSE.md
+ url: https://github.com/anyproto/anytype-api/blob/main/LICENSE.md
termsOfService: https://anytype.io/terms_of_use
title: Anytype API
- version: "1.0"
+ version: "2025-03-17"
+openapi: 3.1.0
paths:
/auth/display_code:
post:
- consumes:
- - application/json
+ description: This endpoint initiates a secure authentication flow by generating
+ a new challenge. Clients must supply the name of the application (via a query
+ parameter) that is requesting authentication. On success, the service returns
+ a unique challenge ID. This challenge ID must then be used with the token
+ endpoint (see below) to solve the challenge and retrieve an authentication
+ token. In essence, this endpoint “boots up” the login process and is the first
+ step in a multi-phase authentication sequence.
parameters:
- description: App name requesting the challenge
in: query
name: app_name
required: true
- type: string
- produces:
- - application/json
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/auth.DisplayCodeResponse'
description: Challenge ID
- schema:
- $ref: '#/definitions/auth.DisplayCodeResponse'
"400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ValidationError'
description: Invalid input
- schema:
- $ref: '#/definitions/util.ValidationError'
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
summary: Start new challenge
tags:
- auth
/auth/token:
post:
- consumes:
- - application/json
+ description: After receiving a challenge ID from the display_code endpoint,
+ the client calls this endpoint to provide the corresponding 4-digit code (also
+ via a query parameter) along with the challenge ID. The endpoint verifies
+ that the challenge solution is correct and, if it is, returns an ephemeral
+ session token together with a permanent app key. These tokens are then used
+ in subsequent API requests to authorize access. This endpoint is central to
+ ensuring that only properly authenticated sessions can access further resources.
parameters:
- description: Challenge ID
in: query
name: challenge_id
required: true
- type: string
+ schema:
+ type: string
- description: 4-digit code retrieved from Anytype Desktop app
in: query
name: code
required: true
- type: string
- produces:
- - application/json
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/auth.TokenResponse'
description: Authentication token
- schema:
- $ref: '#/definitions/auth.TokenResponse'
"400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ValidationError'
description: Invalid input
- schema:
- $ref: '#/definitions/util.ValidationError'
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
summary: Retrieve token
tags:
- auth
/search:
post:
- consumes:
- - application/json
+ description: This endpoint executes a global search over every space the user
+ has access to. It accepts pagination parameters (offset and limit) and a JSON
+ body containing search criteria. The criteria include a search query string,
+ an optional list of object types, and sort options (e.g. ascending/descending
+ by creation, modification, or last opened dates). Internally, the endpoint
+ aggregates results from each space, merges and sorts them (after last modified
+ date by default), and returns a unified, paginated list of objects that match
+ the search parameters.
parameters:
- - default: 0
- description: The number of items to skip before starting to collect the result
+ - description: The number of items to skip before starting to collect the result
set
in: query
name: offset
- type: integer
- - default: 100
- description: The number of items to return
- in: query
- maximum: 1000
- name: limit
- type: integer
- - description: Search parameters
- in: body
- name: request
- required: true
schema:
- $ref: '#/definitions/search.SearchRequest'
- produces:
- - application/json
+ default: 0
+ type: integer
+ - description: The number of items to return
+ in: query
+ name: limit
+ schema:
+ default: 100
+ maximum: 1000
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/search.SearchRequest'
+ description: Search parameters
+ required: true
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-object_Object'
description: List of objects
- schema:
- $ref: '#/definitions/pagination.PaginatedResponse-object_Object'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Search objects across all spaces
tags:
- search
/spaces:
get:
- consumes:
- - application/json
+ description: Retrieves a paginated list of all spaces that are accessible by
+ the authenticated user. Each space record contains detailed information such
+ as the space ID, name, icon (derived either from an emoji or image URL), and
+ additional metadata. This endpoint is key to displaying a user’s workspaces.
parameters:
- - default: 0
- description: The number of items to skip before starting to collect the result
+ - description: The number of items to skip before starting to collect the result
set
in: query
name: offset
- type: integer
- - default: 100
- description: The number of items to return
+ schema:
+ default: 0
+ type: integer
+ - description: The number of items to return
in: query
- maximum: 1000
name: limit
- type: integer
- produces:
- - application/json
+ schema:
+ default: 100
+ maximum: 1000
+ type: integer
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-space_Space'
description: List of spaces
- schema:
- $ref: '#/definitions/pagination.PaginatedResponse-space_Space'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: List spaces
tags:
- spaces
post:
- consumes:
- - application/json
- parameters:
- - description: Space to create
- in: body
- name: name
+ description: Creates a new workspace (or space) based on a supplied name in
+ the JSON request body. The endpoint is subject to rate limiting and automatically
+ applies default configurations such as generating a random icon and initializing
+ the workspace with default settings (for example, a default dashboard or home
+ page). On success, the new space’s full metadata is returned, enabling the
+ client to immediately switch context to the new space.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/space.CreateSpaceRequest'
+ description: Space to create
required: true
- schema:
- $ref: '#/definitions/space.CreateSpaceRequest'
- produces:
- - application/json
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/space.SpaceResponse'
description: Space created successfully
- schema:
- $ref: '#/definitions/space.CreateSpaceResponse'
"400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ValidationError'
description: Bad request
- schema:
- $ref: '#/definitions/util.ValidationError'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
+ "423":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.RateLimitError'
+ description: Rate limit exceeded
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Create space
tags:
- spaces
- /spaces/{space_id}/members:
+ /spaces/{space_id}:
get:
- consumes:
- - application/json
+ description: Fetches full details about a single space identified by its space
+ ID. The response includes metadata such as the space name, icon, and various
+ workspace IDs (home, archive, profile, etc.). This detailed view supports
+ use cases such as displaying space-specific settings.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
- - default: 0
- description: The number of items to skip before starting to collect the result
- set
- in: query
- name: offset
- type: integer
- - default: 100
- description: The number of items to return
- in: query
- maximum: 1000
- name: limit
- type: integer
- produces:
- - application/json
+ schema:
+ type: string
responses:
"200":
- description: List of members
- schema:
- $ref: '#/definitions/pagination.PaginatedResponse-space_Member'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/space.SpaceResponse'
+ description: Space
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
+ description: Space not found
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
- summary: List members
+ security:
+ - bearerauth: []
+ summary: Get space
tags:
- spaces
- /spaces/{space_id}/objects:
+ /spaces/{space_id}/lists/{list_id}/{view_id}/objects:
get:
- consumes:
- - application/json
+ description: Returns a paginated list of objects associated with a specific
+ list (query or collection) within a space. When a view ID is provided, the
+ objects are filtered and sorted according to the view's configuration. If
+ no view ID is specified, all list objects are returned without filtering and
+ sorting. This endpoint helps clients to manage grouped objects (for example,
+ tasks within a list) by returning information for each item of the list.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
- - default: 0
- description: The number of items to skip before starting to collect the result
+ schema:
+ type: string
+ - description: List ID
+ in: path
+ name: list_id
+ required: true
+ schema:
+ type: string
+ - description: View ID
+ in: path
+ name: view_id
+ required: true
+ schema:
+ type: string
+ - description: The number of items to skip before starting to collect the result
set
in: query
name: offset
- type: integer
- - default: 100
- description: The number of items to return
+ schema:
+ default: 0
+ type: integer
+ - description: The number of items to return
in: query
- maximum: 1000
name: limit
- type: integer
- produces:
- - application/json
+ schema:
+ type: integer
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-object_Object'
description: List of objects
- schema:
- $ref: '#/definitions/pagination.PaginatedResponse-object_Object'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
+ description: Not found
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
+ summary: Get objects in list
+ tags:
+ - lists
+ /spaces/{space_id}/lists/{list_id}/objects:
+ post:
+ description: Enables clients to add one or more objects to a specific list (collection
+ only) by submitting a JSON array of object IDs. Upon success, the endpoint
+ returns a confirmation message. This endpoint is vital for building user interfaces
+ that allow drag‑and‑drop or multi‑select additions to collections.
+ parameters:
+ - description: Space ID
+ in: path
+ name: space_id
+ required: true
+ schema:
+ type: string
+ - description: List ID
+ in: path
+ name: list_id
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ items:
+ type: string
+ type: array
+ description: List of object IDs
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ type: string
+ description: Objects added successfully
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ValidationError'
+ description: Bad request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
+ description: Unauthorized
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
+ description: Not found
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
+ description: Internal server error
+ security:
+ - bearerauth: []
+ summary: Add objects to list
+ tags:
+ - lists
+ /spaces/{space_id}/lists/{list_id}/objects/{object_id}:
+ delete:
+ description: Removes a given object from the specified list (collection only)
+ in a space. The endpoint takes the space, list, and object identifiers as
+ path parameters. It's subject to rate limiting and returns a success message
+ on completion. It is used for dynamically managing collections without affecting
+ the underlying object data.
+ parameters:
+ - description: Space ID
+ in: path
+ name: space_id
+ required: true
+ schema:
+ type: string
+ - description: List ID
+ in: path
+ name: list_id
+ required: true
+ schema:
+ type: string
+ - description: Object ID
+ in: path
+ name: object_id
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ type: string
+ description: Objects removed successfully
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ValidationError'
+ description: Bad request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
+ description: Unauthorized
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
+ description: Not found
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
+ description: Internal server error
+ security:
+ - bearerauth: []
+ summary: Remove object from list
+ tags:
+ - lists
+ /spaces/{space_id}/lists/{list_id}/views:
+ get:
+ description: Returns a paginated list of views defined for a specific list (query
+ or collection) within a space. Each view includes configuration details such
+ as layout, applied filters, and sorting options, enabling clients to render
+ the list according to user preferences and context. This endpoint supports
+ pagination parameters to control the number of views returned and the starting
+ point of the result set.
+ parameters:
+ - description: Space ID
+ in: path
+ name: space_id
+ required: true
+ schema:
+ type: string
+ - description: List ID
+ in: path
+ name: list_id
+ required: true
+ schema:
+ type: string
+ - description: The number of items to skip before starting to collect the result
+ set
+ in: query
+ name: offset
+ schema:
+ default: 0
+ type: integer
+ - description: The number of items to return
+ in: query
+ name: limit
+ schema:
+ type: integer
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-list_View'
+ description: List of views
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
+ description: Unauthorized
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
+ description: Not found
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
+ description: Internal server error
+ security:
+ - bearerauth: []
+ summary: Get list views
+ tags:
+ - lists
+ /spaces/{space_id}/members:
+ get:
+ description: Returns a paginated list of members belonging to the specified
+ space. Each member record includes the member’s profile ID, name, icon (which
+ may be derived from an emoji or image), network identity, global name, status
+ (e.g. joining, active) and role (e.g. Viewer, Editor, Owner). This endpoint
+ supports collaborative features by allowing clients to show who is in a space
+ and manage access rights.
+ parameters:
+ - description: Space ID
+ in: path
+ name: space_id
+ required: true
+ schema:
+ type: string
+ - description: The number of items to skip before starting to collect the result
+ set
+ in: query
+ name: offset
+ schema:
+ default: 0
+ type: integer
+ - description: The number of items to return
+ in: query
+ name: limit
+ schema:
+ default: 100
+ maximum: 1000
+ type: integer
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-space_Member'
+ description: List of members
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
+ description: Unauthorized
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
+ description: Internal server error
+ security:
+ - bearerauth: []
+ summary: List members
+ tags:
+ - members
+ /spaces/{space_id}/members/{member_id}:
+ get:
+ description: Fetches detailed information about a single member within a space.
+ The endpoint returns the member’s identifier, name, icon, identity, global
+ name, status and role. The member_id path parameter can be provided as either
+ the member's ID (starting with `_participant`) or the member's identity.
+ This is useful for user profile pages, permission management, and displaying
+ member-specific information in collaborative environments.
+ parameters:
+ - description: Space ID
+ in: path
+ name: space_id
+ required: true
+ schema:
+ type: string
+ - description: Member ID or Identity
+ in: path
+ name: member_id
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/space.MemberResponse'
+ description: Member
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
+ description: Unauthorized
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
+ description: Member not found
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
+ description: Internal server error
+ security:
+ - bearerauth: []
+ summary: Get member
+ tags:
+ - members
+ /spaces/{space_id}/objects:
+ get:
+ description: Retrieves a paginated list of objects in the given space. The endpoint
+ takes query parameters for pagination (offset and limit) and returns detailed
+ data about each object including its ID, name, icon, type information, a snippet
+ of the content (if applicable), layout, space ID, blocks and details. It is
+ intended for building views where users can see all objects in a space at
+ a glance.
+ parameters:
+ - description: Space ID
+ in: path
+ name: space_id
+ required: true
+ schema:
+ type: string
+ - description: The number of items to skip before starting to collect the result
+ set
+ in: query
+ name: offset
+ schema:
+ default: 0
+ type: integer
+ - description: The number of items to return
+ in: query
+ name: limit
+ schema:
+ default: 100
+ maximum: 1000
+ type: integer
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-object_Object'
+ description: List of objects
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
+ description: Unauthorized
+ "500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
+ description: Internal server error
+ security:
+ - bearerauth: []
summary: List objects
tags:
- objects
post:
- consumes:
- - application/json
+ description: Creates a new object in the specified space using a JSON payload.
+ The creation process is subject to rate limiting. The payload must include
+ key details such as the object name, icon, description, body content (which
+ may support Markdown), source URL (required for bookmark objects), template
+ identifier, and the type_key (which is the non-unique identifier of the type
+ of object to create). Post-creation, additional operations (like setting featured
+ properties or fetching bookmark metadata) may occur. The endpoint then returns
+ the full object data, ready for further interactions.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
- - description: Object to create
- in: body
- name: object
- required: true
schema:
- $ref: '#/definitions/object.CreateObjectRequest'
- produces:
- - application/json
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/object.CreateObjectRequest'
+ description: Object to create
+ required: true
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/object.ObjectResponse'
description: The created object
- schema:
- $ref: '#/definitions/object.ObjectResponse'
"400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ValidationError'
description: Bad request
- schema:
- $ref: '#/definitions/util.ValidationError'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
+ "423":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.RateLimitError'
+ description: Rate limit exceeded
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Create object
tags:
- objects
/spaces/{space_id}/objects/{object_id}:
delete:
- consumes:
- - application/json
+ description: This endpoint “deletes” an object by marking it as archived. The
+ deletion process is performed safely and is subject to rate limiting. It returns
+ the object’s details after it has been archived. Proper error handling is
+ in place for situations such as when the object isn’t found or the deletion
+ cannot be performed because of permission issues.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
+ schema:
+ type: string
- description: Object ID
in: path
name: object_id
required: true
- type: string
- produces:
- - application/json
+ schema:
+ type: string
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/object.ObjectResponse'
description: The deleted object
- schema:
- $ref: '#/definitions/object.ObjectResponse'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"403":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ForbiddenError'
description: Forbidden
- schema:
- $ref: '#/definitions/util.ForbiddenError'
"404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
description: Resource not found
- schema:
- $ref: '#/definitions/util.NotFoundError'
+ "423":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.RateLimitError'
+ description: Rate limit exceeded
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Delete object
tags:
- objects
get:
- consumes:
- - application/json
+ description: Fetches the full details of a single object identified by the object
+ ID within the specified space. The response includes not only basic metadata
+ (ID, name, icon, type) but also the complete set of blocks (which may include
+ text, files, properties and dataviews) and extra details (such as timestamps
+ and linked member information). This endpoint is essential when a client needs
+ to render or edit the full object view.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
+ schema:
+ type: string
- description: Object ID
in: path
name: object_id
required: true
- type: string
- produces:
- - application/json
+ schema:
+ type: string
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/object.ObjectResponse'
description: The requested object
- schema:
- $ref: '#/definitions/object.ObjectResponse'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
description: Resource not found
- schema:
- $ref: '#/definitions/util.NotFoundError'
+ "410":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.GoneError'
+ description: Resource deleted
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Get object
tags:
- objects
- /spaces/{space_id}/objects/{object_id}/export/{format}:
- post:
- consumes:
- - application/json
+ /spaces/{space_id}/objects/{object_id}/{format}:
+ get:
+ description: This endpoint exports a single object from the specified space
+ into a desired format. The export format is provided as a path parameter (currently
+ supporting “markdown” only). The endpoint calls the export service which converts
+ the object’s content into the requested format. It is useful for sharing,
+ or displaying the markdown representation of the objecte externally.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
+ schema:
+ type: string
- description: Object ID
in: path
name: object_id
required: true
- type: string
+ schema:
+ type: string
- description: Export format
- enum:
- - markdown
- - protobuf
in: path
name: format
required: true
- type: string
- produces:
- - application/json
+ schema:
+ enum:
+ - markdown
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/export.ObjectExportResponse'
description: Object exported successfully
- schema:
- $ref: '#/definitions/export.ObjectExportResponse'
"400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ValidationError'
description: Bad request
- schema:
- $ref: '#/definitions/util.ValidationError'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Export object
tags:
- export
/spaces/{space_id}/search:
post:
- consumes:
- - application/json
+ description: This endpoint performs a focused search within a single space (specified
+ by the space_id path parameter). Like the global search, it accepts pagination
+ parameters and a JSON payload containing the search query, object types, and
+ sorting preferences. The search is limited to the provided space and returns
+ a list of objects that match the query. This allows clients to implement space‑specific
+ filtering without having to process extraneous results.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
- - default: 0
- description: The number of items to skip before starting to collect the result
+ schema:
+ type: string
+ - description: The number of items to skip before starting to collect the result
set
in: query
name: offset
- type: integer
- - default: 100
- description: The number of items to return
- in: query
- maximum: 1000
- name: limit
- type: integer
- - description: Search parameters
- in: body
- name: request
- required: true
schema:
- $ref: '#/definitions/search.SearchRequest'
- produces:
- - application/json
+ default: 0
+ type: integer
+ - description: The number of items to return
+ in: query
+ name: limit
+ schema:
+ default: 100
+ maximum: 1000
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/search.SearchRequest'
+ description: Search parameters
+ required: true
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-object_Object'
description: List of objects
- schema:
- $ref: '#/definitions/pagination.PaginatedResponse-object_Object'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Search objects within a space
tags:
- search
/spaces/{space_id}/types:
get:
- consumes:
- - application/json
+ description: This endpoint retrieves a paginated list of object types (e.g.
+ 'Page', 'Note', 'Task') available within the specified space. Each type’s
+ record includes its unique identifier, type key, display name, icon, and a
+ recommended layout. While a type's id is truly unique, a type's key can be
+ the same across spaces for known types, e.g. 'ot-page' for 'Page'. Clients
+ use this information when offering choices for object creation or for filtering
+ objects by type through search.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
- - default: 0
- description: The number of items to skip before starting to collect the result
+ schema:
+ type: string
+ - description: The number of items to skip before starting to collect the result
set
in: query
name: offset
- type: integer
- - default: 100
- description: The number of items to return
+ schema:
+ default: 0
+ type: integer
+ - description: The number of items to return
in: query
- maximum: 1000
name: limit
- type: integer
- produces:
- - application/json
+ schema:
+ default: 100
+ maximum: 1000
+ type: integer
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-object_Type'
description: List of types
- schema:
- $ref: '#/definitions/pagination.PaginatedResponse-object_Type'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: List types
tags:
- types
/spaces/{space_id}/types/{type_id}:
get:
- consumes:
- - application/json
+ description: Fetches detailed information about one specific object type by
+ its ID. This includes the type’s unique key, name, icon, and recommended layout.
+ This detailed view assists clients in understanding the expected structure
+ and style for objects of that type and in guiding the user interface (such
+ as displaying appropriate icons or layout hints).
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
+ schema:
+ type: string
- description: Type ID
in: path
name: type_id
required: true
- type: string
- produces:
- - application/json
+ schema:
+ type: string
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/object.TypeResponse'
description: The requested type
- schema:
- $ref: '#/definitions/object.TypeResponse'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
description: Resource not found
- schema:
- $ref: '#/definitions/util.NotFoundError'
+ "410":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.GoneError'
+ description: Resource deleted
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Get type
tags:
- types
/spaces/{space_id}/types/{type_id}/templates:
get:
- consumes:
- - application/json
+ description: This endpoint returns a paginated list of templates that are associated
+ with a specific object type within a space. Templates provide pre‑configured
+ structures for creating new objects. Each template record contains its identifier,
+ name, and icon, so that clients can offer users a selection of templates when
+ creating objects.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
+ schema:
+ type: string
- description: Type ID
in: path
name: type_id
required: true
- type: string
- - default: 0
- description: The number of items to skip before starting to collect the result
+ schema:
+ type: string
+ - description: The number of items to skip before starting to collect the result
set
in: query
name: offset
- type: integer
- - default: 100
- description: The number of items to return
+ schema:
+ default: 0
+ type: integer
+ - description: The number of items to return
in: query
- maximum: 1000
name: limit
- type: integer
- produces:
- - application/json
+ schema:
+ default: 100
+ maximum: 1000
+ type: integer
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/pagination.PaginatedResponse-object_Template'
description: List of templates
- schema:
- $ref: '#/definitions/pagination.PaginatedResponse-object_Template'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: List templates
tags:
- - types
+ - templates
/spaces/{space_id}/types/{type_id}/templates/{template_id}:
get:
- consumes:
- - application/json
+ description: Fetches full details for one template associated with a particular
+ object type in a space. The response provides the template’s identifier, name,
+ icon, and any other relevant metadata. This endpoint is useful when a client
+ needs to preview or apply a template to prefill object creation fields.
parameters:
- description: Space ID
in: path
name: space_id
required: true
- type: string
+ schema:
+ type: string
- description: Type ID
in: path
name: type_id
required: true
- type: string
+ schema:
+ type: string
- description: Template ID
in: path
name: template_id
required: true
- type: string
- produces:
- - application/json
+ schema:
+ type: string
responses:
"200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/object.TemplateResponse'
description: The requested template
- schema:
- $ref: '#/definitions/object.TemplateResponse'
"401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.UnauthorizedError'
description: Unauthorized
- schema:
- $ref: '#/definitions/util.UnauthorizedError'
"404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.NotFoundError'
description: Resource not found
- schema:
- $ref: '#/definitions/util.NotFoundError'
+ "410":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.GoneError'
+ description: Resource deleted
"500":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/util.ServerError'
description: Internal server error
- schema:
- $ref: '#/definitions/util.ServerError'
+ security:
+ - bearerauth: []
summary: Get template
tags:
- - types
-securityDefinitions:
- BasicAuth:
- type: basic
-swagger: "2.0"
+ - templates
+servers:
+- url: http://localhost:31009/v1
diff --git a/core/api/internal/auth/handler.go b/core/api/internal/auth/handler.go
index 21900c994..46cdbb188 100644
--- a/core/api/internal/auth/handler.go
+++ b/core/api/internal/auth/handler.go
@@ -10,15 +10,16 @@ import (
// DisplayCodeHandler starts a new challenge and returns the challenge ID
//
-// @Summary Start new challenge
-// @Tags auth
-// @Accept json
-// @Produce json
-// @Param app_name query string true "App name requesting the challenge"
-// @Success 200 {object} DisplayCodeResponse "Challenge ID"
-// @Failure 400 {object} util.ValidationError "Invalid input"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /auth/display_code [post]
+// @Summary Start new challenge
+// @Description This endpoint initiates a secure authentication flow by generating a new challenge. Clients must supply the name of the application (via a query parameter) that is requesting authentication. On success, the service returns a unique challenge ID. This challenge ID must then be used with the token endpoint (see below) to solve the challenge and retrieve an authentication token. In essence, this endpoint “boots up” the login process and is the first step in a multi-phase authentication sequence.
+// @Tags auth
+// @Accept json
+// @Produce json
+// @Param app_name query string true "App name requesting the challenge"
+// @Success 200 {object} DisplayCodeResponse "Challenge ID"
+// @Failure 400 {object} util.ValidationError "Invalid input"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Router /auth/display_code [post]
func DisplayCodeHandler(s *AuthService) gin.HandlerFunc {
return func(c *gin.Context) {
appName := c.Query("app_name")
@@ -40,16 +41,17 @@ func DisplayCodeHandler(s *AuthService) gin.HandlerFunc {
// TokenHandler retrieves an authentication token using a code and challenge ID
//
-// @Summary Retrieve token
-// @Tags auth
-// @Accept json
-// @Produce json
-// @Param challenge_id query string true "Challenge ID"
-// @Param code query string true "4-digit code retrieved from Anytype Desktop app"
-// @Success 200 {object} TokenResponse "Authentication token"
-// @Failure 400 {object} util.ValidationError "Invalid input"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /auth/token [post]
+// @Summary Retrieve token
+// @Description After receiving a challenge ID from the display_code endpoint, the client calls this endpoint to provide the corresponding 4-digit code (also via a query parameter) along with the challenge ID. The endpoint verifies that the challenge solution is correct and, if it is, returns an ephemeral session token together with a permanent app key. These tokens are then used in subsequent API requests to authorize access. This endpoint is central to ensuring that only properly authenticated sessions can access further resources.
+// @Tags auth
+// @Accept json
+// @Produce json
+// @Param challenge_id query string true "Challenge ID"
+// @Param code query string true "4-digit code retrieved from Anytype Desktop app"
+// @Success 200 {object} TokenResponse "Authentication token"
+// @Failure 400 {object} util.ValidationError "Invalid input"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Router /auth/token [post]
func TokenHandler(s *AuthService) gin.HandlerFunc {
return func(c *gin.Context) {
challengeId := c.Query("challenge_id")
diff --git a/core/api/internal/auth/model.go b/core/api/internal/auth/model.go
index 2d34926f5..221797cd3 100644
--- a/core/api/internal/auth/model.go
+++ b/core/api/internal/auth/model.go
@@ -1,10 +1,10 @@
package auth
type DisplayCodeResponse struct {
- ChallengeId string `json:"challenge_id" example:"67647f5ecda913e9a2e11b26"`
+ ChallengeId string `json:"challenge_id" example:"67647f5ecda913e9a2e11b26"` // The challenge id associated with the displayed code and needed to solve the challenge for token
}
type TokenResponse struct {
- SessionToken string `json:"session_token" example:"eyJhbGciOeJIRzI1NiIsInR5cCI6IkpXVCJ1.eyJzZWVkIjaiY0dmVndlUnAifQ.Y1EZecYnwmvMkrXKOa2XJnAbaRt34urBabe06tmDQII"`
- AppKey string `json:"app_key" example:"zhSG/zQRmgADyilWPtgdnfo1qD60oK02/SVgi1GaFt6="`
+ SessionToken string `json:"session_token" example:"eyJhbGciOeJIRzI1NiIsInR5cCI6IkpXVCJ1.eyJzZWVkIjaiY0dmVndlUnAifQ.Y1EZecYnwmvMkrXKOa2XJnAbaRt34urBabe06tmDQII"` // The ephemeral session token
+ AppKey string `json:"app_key" example:"zhSG/zQRmgADyilWPtgdnfo1qD60oK02/SVgi1GaFt6="` // The permanent app key
}
diff --git a/core/api/internal/auth/service.go b/core/api/internal/auth/service.go
index 33b3aecd6..c0bd7bb21 100644
--- a/core/api/internal/auth/service.go
+++ b/core/api/internal/auth/service.go
@@ -4,8 +4,8 @@ import (
"context"
"errors"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
)
@@ -22,10 +22,10 @@ type Service interface {
}
type AuthService struct {
- mw service.ClientCommandsServer
+ mw apicore.ClientCommands
}
-func NewService(mw service.ClientCommandsServer) *AuthService {
+func NewService(mw apicore.ClientCommands) *AuthService {
return &AuthService{mw: mw}
}
diff --git a/core/api/internal/auth/service_test.go b/core/api/internal/auth/service_test.go
index 85c6605d3..cd85248d1 100644
--- a/core/api/internal/auth/service_test.go
+++ b/core/api/internal/auth/service_test.go
@@ -7,8 +7,8 @@ import (
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
+ "github.com/anyproto/anytype-heart/core/api/apicore/mock_apicore"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service/mock_service"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
)
@@ -22,16 +22,16 @@ const (
type fixture struct {
*AuthService
- mwMock *mock_service.MockClientCommandsServer
+ mwMock *mock_apicore.MockClientCommands
}
func newFixture(t *testing.T) *fixture {
- mw := mock_service.NewMockClientCommandsServer(t)
- authService := NewService(mw)
+ mwMock := mock_apicore.NewMockClientCommands(t)
+ authService := NewService(mwMock)
return &fixture{
AuthService: authService,
- mwMock: mw,
+ mwMock: mwMock,
}
}
diff --git a/core/api/internal/export/handler.go b/core/api/internal/export/handler.go
index c2ae3a2f8..1808e8af9 100644
--- a/core/api/internal/export/handler.go
+++ b/core/api/internal/export/handler.go
@@ -10,33 +10,29 @@ import (
// GetObjectExportHandler exports an object in specified format
//
-// @Summary Export object
-// @Tags export
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param object_id path string true "Object ID"
-// @Param format path string true "Export format" Enums(markdown,protobuf)
-// @Success 200 {object} ObjectExportResponse "Object exported successfully"
-// @Failure 400 {object} util.ValidationError "Bad request"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/objects/{object_id}/export/{format} [post]
+// @Summary Export object
+// @Description This endpoint exports a single object from the specified space into a desired format. The export format is provided as a path parameter (currently supporting “markdown” only). The endpoint calls the export service which converts the object’s content into the requested format. It is useful for sharing, or displaying the markdown representation of the objecte externally.
+// @Tags export
+// @Accept json
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param object_id path string true "Object ID"
+// @Param format path string true "Export format" Enums(markdown)
+// @Success 200 {object} ObjectExportResponse "Object exported successfully"
+// @Failure 400 {object} util.ValidationError "Bad request"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/objects/{object_id}/{format} [get]
func GetObjectExportHandler(s *ExportService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
objectId := c.Param("object_id")
- format := c.Query("format")
+ format := c.Param("format")
- objectAsRequest := ObjectExportRequest{}
- if err := c.ShouldBindJSON(&objectAsRequest); err != nil {
- apiErr := util.CodeToAPIError(http.StatusBadRequest, ErrBadInput.Error())
- c.JSON(http.StatusBadRequest, apiErr)
- return
- }
-
- outputPath, err := s.GetObjectExport(c.Request.Context(), spaceId, objectId, format, objectAsRequest.Path)
- code := util.MapErrorCode(err, util.ErrToCode(ErrFailedExportObjectAsMarkdown, http.StatusInternalServerError))
+ markdown, err := s.GetObjectExport(c.Request.Context(), spaceId, objectId, format)
+ code := util.MapErrorCode(err,
+ util.ErrToCode(ErrInvalidExportFormat, http.StatusInternalServerError))
if code != http.StatusOK {
apiErr := util.CodeToAPIError(code, err.Error())
@@ -44,6 +40,6 @@ func GetObjectExportHandler(s *ExportService) gin.HandlerFunc {
return
}
- c.JSON(http.StatusOK, ObjectExportResponse{Path: outputPath})
+ c.JSON(http.StatusOK, ObjectExportResponse{Markdown: markdown})
}
}
diff --git a/core/api/internal/export/model.go b/core/api/internal/export/model.go
index dde242246..9288ea039 100644
--- a/core/api/internal/export/model.go
+++ b/core/api/internal/export/model.go
@@ -1,9 +1,5 @@
package export
-type ObjectExportRequest struct {
- Path string `json:"path" example:"/path/to/export"`
-}
-
type ObjectExportResponse struct {
- Path string `json:"path" example:"/path/to/export"`
+ Markdown string `json:"markdown" example:"# This is the title\n..."`
}
diff --git a/core/api/internal/export/service.go b/core/api/internal/export/service.go
index b20361351..b66df2c8a 100644
--- a/core/api/internal/export/service.go
+++ b/core/api/internal/export/service.go
@@ -4,14 +4,12 @@ import (
"context"
"errors"
- "github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
)
var (
- ErrFailedExportObjectAsMarkdown = errors.New("failed to export object as markdown")
- ErrBadInput = errors.New("bad input")
+ ErrInvalidExportFormat = errors.New("format is not supported")
)
type Service interface {
@@ -19,34 +17,26 @@ type Service interface {
}
type ExportService struct {
- mw service.ClientCommandsServer
- AccountInfo *model.AccountInfo
+ mw apicore.ClientCommands
+ exportService apicore.ExportService
}
-func NewService(mw service.ClientCommandsServer) *ExportService {
- return &ExportService{mw: mw}
+func NewService(mw apicore.ClientCommands, exportService apicore.ExportService) *ExportService {
+ return &ExportService{mw: mw, exportService: exportService}
}
// GetObjectExport retrieves an object from a space and exports it as a specific format.
-func (s *ExportService) GetObjectExport(ctx context.Context, spaceId string, objectId string, format string, path string) (string, error) {
- resp := s.mw.ObjectListExport(ctx, &pb.RpcObjectListExportRequest{
- SpaceId: spaceId,
- Path: path,
- ObjectIds: []string{objectId},
- Format: s.mapStringToFormat(format),
- Zip: false,
- IncludeNested: false,
- IncludeFiles: true,
- IsJson: false,
- IncludeArchived: false,
- NoProgress: true,
- })
-
- if resp.Error.Code != pb.RpcObjectListExportResponseError_NULL {
- return "", ErrFailedExportObjectAsMarkdown
+func (s *ExportService) GetObjectExport(ctx context.Context, spaceId string, objectId string, format string) (string, error) {
+ if format != "markdown" {
+ return "", ErrInvalidExportFormat
}
- return resp.Path, nil
+ result, err := s.exportService.ExportSingleInMemory(ctx, spaceId, objectId, s.mapStringToFormat(format))
+ if err != nil {
+ return "", err
+ }
+
+ return result, nil
}
// mapStringToFormat maps a format string to an ExportFormat enum.
diff --git a/core/api/internal/export/service_test.go b/core/api/internal/export/service_test.go
index a57406d6e..08566a9a9 100644
--- a/core/api/internal/export/service_test.go
+++ b/core/api/internal/export/service_test.go
@@ -1,15 +1,9 @@
package export
import (
- "context"
"testing"
- "github.com/stretchr/testify/mock"
- "github.com/stretchr/testify/require"
-
- "github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service/mock_service"
- "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+ "github.com/anyproto/anytype-heart/core/api/apicore/mock_apicore"
)
const (
@@ -22,113 +16,117 @@ const (
type fixture struct {
*ExportService
- mwMock *mock_service.MockClientCommandsServer
+ exportMock *mock_apicore.MockExportService
+ mwMock *mock_apicore.MockClientCommands
}
func newFixture(t *testing.T) *fixture {
- mw := mock_service.NewMockClientCommandsServer(t)
- exportService := NewService(mw)
+ mwMock := mock_apicore.NewMockClientCommands(t)
+ exportMock := mock_apicore.NewMockExportService(t)
+ exportService := NewService(mwMock, exportMock)
return &fixture{
ExportService: exportService,
- mwMock: mw,
+ exportMock: exportMock,
+ mwMock: mwMock,
}
}
func TestExportService_GetObjectExport(t *testing.T) {
- t.Run("successful export to markdown", func(t *testing.T) {
- // Given
- ctx := context.Background()
- fx := newFixture(t)
-
- // Mock the ObjectListExport call
- fx.mwMock.
- On("ObjectListExport", mock.Anything, &pb.RpcObjectListExportRequest{
- SpaceId: spaceID,
- Path: exportPath,
- ObjectIds: []string{objectID},
- Format: model.Export_Markdown,
- Zip: false,
- IncludeNested: false,
- IncludeFiles: true,
- IsJson: false,
- IncludeArchived: false,
- NoProgress: true,
- }).
- Return(&pb.RpcObjectListExportResponse{
- Path: exportPath,
- Error: &pb.RpcObjectListExportResponseError{
- Code: pb.RpcObjectListExportResponseError_NULL,
- },
- }).
- Once()
-
- // When
- gotPath, err := fx.GetObjectExport(ctx, spaceID, objectID, exportFormat, exportPath)
-
- // Then
- require.NoError(t, err)
- require.Equal(t, exportPath, gotPath)
- fx.mwMock.AssertExpectations(t)
- })
-
- t.Run("failed export returns error", func(t *testing.T) {
- // Given
- ctx := context.Background()
- fx := newFixture(t)
-
- // Mock the ObjectListExport call to return an error code
- fx.mwMock.
- On("ObjectListExport", mock.Anything, mock.Anything).
- Return(&pb.RpcObjectListExportResponse{
- Path: "",
- Error: &pb.RpcObjectListExportResponseError{
- Code: pb.RpcObjectListExportResponseError_UNKNOWN_ERROR,
- },
- }).
- Once()
-
- // When
- gotPath, err := fx.GetObjectExport(ctx, spaceID, objectID, exportFormat, exportPath)
-
- // Then
- require.Error(t, err)
- require.Empty(t, gotPath)
- require.ErrorIs(t, err, ErrFailedExportObjectAsMarkdown)
- fx.mwMock.AssertExpectations(t)
- })
-
- t.Run("unrecognized format defaults to markdown", func(t *testing.T) {
- ctx := context.Background()
- fx := newFixture(t)
-
- fx.mwMock.
- On("ObjectListExport", mock.Anything, &pb.RpcObjectListExportRequest{
- SpaceId: spaceID,
- Path: exportPath,
- ObjectIds: []string{objectID},
- Format: model.Export_Markdown, // fallback
- Zip: false,
- IncludeNested: false,
- IncludeFiles: true,
- IsJson: false,
- IncludeArchived: false,
- NoProgress: true,
- }).
- Return(&pb.RpcObjectListExportResponse{
- Path: exportPath,
- Error: &pb.RpcObjectListExportResponseError{
- Code: pb.RpcObjectListExportResponseError_NULL,
- },
- }).
- Once()
-
- // When
- gotPath, err := fx.GetObjectExport(ctx, spaceID, objectID, unrecognizedFormat, exportPath) //
-
- // Then
- require.NoError(t, err)
- require.Equal(t, exportPath, gotPath)
- fx.mwMock.AssertExpectations(t)
- })
+ // TODO: revive tests once export is finalized
+ // t.Run("successful export to markdown", func(t *testing.T) {
+ // // Given
+ // ctx := context.Background()
+ // fx := newFixture(t)
+ //
+ // // Mock the ObjectListExport call
+ // fx.mwMock.
+ // On("ObjectListExport", mock.Anything, &pb.RpcObjectListExportRequest{
+ // SpaceId: spaceID,
+ // Path: exportPath,
+ // ObjectIds: []string{objectID},
+ // Format: model.Export_Markdown,
+ // Zip: false,
+ // IncludeNested: false,
+ // IncludeFiles: true,
+ // IsJson: false,
+ // IncludeArchived: false,
+ // NoProgress: true,
+ // }).
+ // Return(&pb.RpcObjectListExportResponse{
+ // Path: exportPath,
+ // Error: &pb.RpcObjectListExportResponseError{
+ // Code: pb.RpcObjectListExportResponseError_NULL,
+ // },
+ // }).
+ // Once()
+ //
+ // // When
+ // gotPath, err := fx.GetObjectExport(ctx, spaceID, objectID, exportFormat)
+ //
+ // // Then
+ // require.NoError(t, err)
+ // require.Equal(t, exportPath, gotPath)
+ // fx.mwMock.AssertExpectations(t)
+ // })
+ //
+ // t.Run("failed export returns error", func(t *testing.T) {
+ // // Given
+ // ctx := context.Background()
+ // fx := newFixture(t)
+ //
+ // // Mock the ObjectListExport call to return an error code
+ // fx.mwMock.
+ // On("ObjectListExport", mock.Anything, mock.Anything).
+ // Return(&pb.RpcObjectListExportResponse{
+ // Path: "",
+ // Error: &pb.RpcObjectListExportResponseError{
+ // Code: pb.RpcObjectListExportResponseError_UNKNOWN_ERROR,
+ // },
+ // }).
+ // Once()
+ //
+ // // When
+ // gotPath, err := fx.GetObjectExport(ctx, spaceID, objectID, exportFormat)
+ //
+ // // Then
+ // require.Error(t, err)
+ // require.Empty(t, gotPath)
+ // require.ErrorIs(t, err, ErrFailedExportObjectAsMarkdown)
+ // fx.mwMock.AssertExpectations(t)
+ // })
+ //
+ // t.Run("unrecognized format defaults to markdown", func(t *testing.T) {
+ // ctx := context.Background()
+ // fx := newFixture(t)
+ //
+ // fx.mwMock.
+ // On("ObjectListExport", mock.Anything, &pb.RpcObjectListExportRequest{
+ // SpaceId: spaceID,
+ // Path: exportPath,
+ // ObjectIds: []string{objectID},
+ // Format: model.Export_Markdown, // fallback
+ // Zip: false,
+ // IncludeNested: false,
+ // IncludeFiles: true,
+ // IsJson: false,
+ // IncludeArchived: false,
+ // NoProgress: true,
+ // }).
+ // Return(&pb.RpcObjectListExportResponse{
+ // Path: exportPath,
+ // Error: &pb.RpcObjectListExportResponseError{
+ // Code: pb.RpcObjectListExportResponseError_NULL,
+ // },
+ // }).
+ // Once()
+ //
+ // // When
+ // gotPath, err := fx.GetObjectExport(ctx, spaceID, objectID, unrecognizedFormat)
+ //
+ // // Then
+ // require.NoError(t, err)
+ // require.Equal(t, exportPath, gotPath)
+ // fx.mwMock.AssertExpectations(t)
+ // })
}
diff --git a/core/api/internal/list/handler.go b/core/api/internal/list/handler.go
new file mode 100644
index 000000000..a56841e28
--- /dev/null
+++ b/core/api/internal/list/handler.go
@@ -0,0 +1,175 @@
+package list
+
+import (
+ "net/http"
+
+ "github.com/gin-gonic/gin"
+
+ "github.com/anyproto/anytype-heart/core/api/pagination"
+ "github.com/anyproto/anytype-heart/core/api/util"
+)
+
+// GetListViewsHandler
+//
+// @Summary Get list views
+// @Description Returns a paginated list of views defined for a specific list (query or collection) within a space. Each view includes configuration details such as layout, applied filters, and sorting options, enabling clients to render the list according to user preferences and context. This endpoint supports pagination parameters to control the number of views returned and the starting point of the result set.
+// @Tags lists
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param list_id path string true "List ID"
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return"
+// @Success 200 {object} pagination.PaginatedResponse[View] "List of views"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Not found"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/lists/{list_id}/views [get]
+func GetListViewsHandler(s *ListService) gin.HandlerFunc {
+ return func(c *gin.Context) {
+ spaceId := c.Param("space_id")
+ listId := c.Param("list_id")
+ offset := c.GetInt("offset")
+ limit := c.GetInt("limit")
+
+ views, total, hasMore, err := s.GetListViews(c, spaceId, listId, offset, limit)
+ code := util.MapErrorCode(err,
+ util.ErrToCode(ErrFailedGetList, http.StatusNotFound),
+ util.ErrToCode(ErrFailedGetListDataview, http.StatusInternalServerError),
+ )
+
+ if code != http.StatusOK {
+ apiErr := util.CodeToAPIError(code, err.Error())
+ c.JSON(code, apiErr)
+ return
+ }
+
+ pagination.RespondWithPagination(c, http.StatusOK, views, total, offset, limit, hasMore)
+ }
+}
+
+// GetObjectsInListHandler
+//
+// @Summary Get objects in list
+// @Description Returns a paginated list of objects associated with a specific list (query or collection) within a space. When a view ID is provided, the objects are filtered and sorted according to the view's configuration. If no view ID is specified, all list objects are returned without filtering and sorting. This endpoint helps clients to manage grouped objects (for example, tasks within a list) by returning information for each item of the list.
+// @Tags lists
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param list_id path string true "List ID"
+// @Param view_id path string true "View ID"
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return"
+// @Success 200 {object} pagination.PaginatedResponse[object.Object] "List of objects"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Not found"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/lists/{list_id}/{view_id}/objects [get]
+func GetObjectsInListHandler(s *ListService) gin.HandlerFunc {
+ return func(c *gin.Context) {
+ spaceId := c.Param("space_id")
+ listId := c.Param("list_id")
+ viewId := c.Param("view_id")
+ offset := c.GetInt("offset")
+ limit := c.GetInt("limit")
+
+ objects, total, hasMore, err := s.GetObjectsInList(c, spaceId, listId, viewId, offset, limit)
+ code := util.MapErrorCode(err,
+ util.ErrToCode(ErrFailedGetList, http.StatusNotFound),
+ util.ErrToCode(ErrFailedGetListDataview, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedGetListDataviewView, http.StatusInternalServerError),
+ util.ErrToCode(ErrUnsupportedListType, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedGetObjectsInList, http.StatusInternalServerError),
+ util.ErrToCode(util.ErrorTypeNotFound, http.StatusInternalServerError),
+ )
+
+ if code != http.StatusOK {
+ apiErr := util.CodeToAPIError(code, err.Error())
+ c.JSON(code, apiErr)
+ return
+ }
+
+ pagination.RespondWithPagination(c, http.StatusOK, objects, total, offset, limit, hasMore)
+ }
+}
+
+// AddObjectsToListHandler
+//
+// @Summary Add objects to list
+// @Description Enables clients to add one or more objects to a specific list (collection only) by submitting a JSON array of object IDs. Upon success, the endpoint returns a confirmation message. This endpoint is vital for building user interfaces that allow drag‑and‑drop or multi‑select additions to collections.
+// @Tags lists
+// @Accept json
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param list_id path string true "List ID"
+// @Param objects body []string true "List of object IDs"
+// @Success 200 {object} string "Objects added successfully"
+// @Failure 400 {object} util.ValidationError "Bad request"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Not found"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/lists/{list_id}/objects [post]
+func AddObjectsToListHandler(s *ListService) gin.HandlerFunc {
+ return func(c *gin.Context) {
+ spaceId := c.Param("space_id")
+ listId := c.Param("list_id")
+
+ objects := []string{}
+ if err := c.ShouldBindJSON(&objects); err != nil {
+ apiErr := util.CodeToAPIError(http.StatusBadRequest, err.Error())
+ c.JSON(http.StatusBadRequest, apiErr)
+ return
+ }
+
+ err := s.AddObjectsToList(c, spaceId, listId, objects)
+ code := util.MapErrorCode(err,
+ util.ErrToCode(ErrFailedAddObjectsToList, http.StatusInternalServerError),
+ )
+
+ if code != http.StatusOK {
+ apiErr := util.CodeToAPIError(code, err.Error())
+ c.JSON(code, apiErr)
+ return
+ }
+
+ c.JSON(http.StatusOK, "Objects added successfully")
+ }
+}
+
+// RemoveObjectFromListHandler
+//
+// @Summary Remove object from list
+// @Description Removes a given object from the specified list (collection only) in a space. The endpoint takes the space, list, and object identifiers as path parameters. It's subject to rate limiting and returns a success message on completion. It is used for dynamically managing collections without affecting the underlying object data.
+// @Tags lists
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param list_id path string true "List ID"
+// @Param object_id path string true "Object ID"
+// @Success 200 {object} string "Objects removed successfully"
+// @Failure 400 {object} util.ValidationError "Bad request"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Not found"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/lists/{list_id}/objects/{object_id} [delete]
+func RemoveObjectFromListHandler(s *ListService) gin.HandlerFunc {
+ return func(c *gin.Context) {
+ spaceId := c.Param("space_id")
+ listId := c.Param("list_id")
+ objectId := c.Param("object_id")
+
+ err := s.RemoveObjectsFromList(c, spaceId, listId, []string{objectId})
+ code := util.MapErrorCode(err,
+ util.ErrToCode(ErrFailedRemoveObjectsFromList, http.StatusInternalServerError),
+ )
+
+ if code != http.StatusOK {
+ apiErr := util.CodeToAPIError(code, err.Error())
+ c.JSON(code, apiErr)
+ return
+ }
+
+ c.JSON(http.StatusOK, "Objects removed successfully")
+ }
+}
diff --git a/core/api/internal/list/model.go b/core/api/internal/list/model.go
new file mode 100644
index 000000000..e47d72cc5
--- /dev/null
+++ b/core/api/internal/list/model.go
@@ -0,0 +1,24 @@
+package list
+
+type View struct {
+ Id string `json:"id" example:"67bf3f21cda9134102e2422c"` // The id of the view
+ Name string `json:"name" example:"All"` // The name of the view
+ Layout string `json:"layout" example:"grid" enums:"grid,table"` // The layout of the view
+ Filters []Filter `json:"filters"` // The list of filters
+ Sorts []Sort `json:"sorts"` // The list of sorts
+}
+
+type Filter struct {
+ Id string `json:"id" example:"67bf3f21cda9134102e2422c"` // The id of the filter
+ PropertyKey string `json:"property_key" example:"name"` // The property key used for filtering
+ Format string `json:"format" example:"text" enum:"text,number,select,multi_select,date,file,checkbox,url,email,phone,object"` // The format of the property used for filtering
+ Condition string `json:"condition" example:"contains" enum:"equal,not_equal,greater,less,greater_or_equal,less_or_equal,like,not_like,in,not_in,empty,not_empty,all_in,not_all_in,exact_in,not_exact_in,exists"` // The filter condition
+ Value string `json:"value" example:"Some value..."` // The value used for filtering
+}
+
+type Sort struct {
+ Id string `json:"id" example:"67bf3f21cda9134102e2422c"` // The id of the sort
+ PropertyKey string `json:"property_key" example:"name"` // The property key used for sorting
+ Format string `json:"format" example:"text" enum:"text,number,select,multi_select,date,file,checkbox,url,email,phone,object"` // The format of the property used for sorting
+ SortType string `json:"sort_type" example:"asc" enum:"asc,desc,custom"` // The sort direction
+}
diff --git a/core/api/internal/list/service.go b/core/api/internal/list/service.go
new file mode 100644
index 000000000..050969a67
--- /dev/null
+++ b/core/api/internal/list/service.go
@@ -0,0 +1,244 @@
+package list
+
+import (
+ "context"
+ "errors"
+
+ "github.com/iancoleman/strcase"
+
+ "github.com/anyproto/anytype-heart/core/api/apicore"
+ "github.com/anyproto/anytype-heart/core/api/internal/object"
+ "github.com/anyproto/anytype-heart/core/api/pagination"
+ "github.com/anyproto/anytype-heart/core/api/util"
+ "github.com/anyproto/anytype-heart/pb"
+ "github.com/anyproto/anytype-heart/pkg/lib/bundle"
+ "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+)
+
+var (
+ ErrFailedGetList = errors.New("failed to get list")
+ ErrFailedGetListDataview = errors.New("failed to get list dataview")
+ ErrFailedGetListDataviewView = errors.New("failed to get list dataview view")
+ ErrUnsupportedListType = errors.New("unsupported list type")
+ ErrFailedGetObjectsInList = errors.New("failed to get objects in list")
+ ErrFailedAddObjectsToList = errors.New("failed to add objects to list")
+ ErrFailedRemoveObjectsFromList = errors.New("failed to remove objects from list")
+)
+
+type Service interface {
+ GetListViews(ctx context.Context, spaceId string, listId string, offset, limit int) ([]View, int, bool, error)
+ GetObjectsInList(ctx context.Context, spaceId string, listId string, viewId string, offset, limit int) ([]object.Object, int, bool, error)
+ AddObjectsToList(ctx context.Context, spaceId string, listId string, objectIds []string) error
+ RemoveObjectsFromList(ctx context.Context, spaceId string, listId string, objectIds []string) error
+}
+
+type ListService struct {
+ mw apicore.ClientCommands
+ objectService *object.ObjectService
+}
+
+func NewService(mw apicore.ClientCommands, objectService *object.ObjectService) *ListService {
+ return &ListService{mw: mw, objectService: objectService}
+}
+
+// GetListViews retrieves views of a list
+func (s *ListService) GetListViews(ctx context.Context, spaceId string, listId string, offset, limit int) ([]View, int, bool, error) {
+ resp := s.mw.ObjectShow(ctx, &pb.RpcObjectShowRequest{
+ SpaceId: spaceId,
+ ObjectId: listId,
+ })
+
+ if resp.Error != nil && resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
+ return nil, 0, false, ErrFailedGetList
+ }
+
+ var dataviewBlock *model.Block
+ for _, block := range resp.ObjectView.Blocks {
+ if block.Id == "dataview" {
+ dataviewBlock = block
+ break
+ }
+ }
+
+ if dataviewBlock == nil {
+ return nil, 0, false, ErrFailedGetListDataview
+ }
+
+ var views []View
+ switch content := dataviewBlock.Content.(type) {
+ case *model.BlockContentOfDataview:
+ for _, view := range content.Dataview.Views {
+ var filters []Filter
+ for _, f := range view.Filters {
+ filters = append(filters, Filter{
+ Id: f.Id,
+ PropertyKey: f.RelationKey,
+ Format: s.objectService.MapRelationFormat(f.Format),
+ Condition: strcase.ToSnake(model.BlockContentDataviewFilterCondition_name[int32(f.Condition)]),
+ Value: f.Value.GetStringValue(),
+ })
+ }
+ var sorts []Sort
+ for _, srt := range view.Sorts {
+ sorts = append(sorts, Sort{
+ Id: srt.Id,
+ PropertyKey: srt.RelationKey,
+ Format: s.objectService.MapRelationFormat(srt.Format),
+ SortType: strcase.ToSnake(model.BlockContentDataviewSortType_name[int32(srt.Type)]),
+ })
+ }
+ views = append(views, View{
+ Id: view.Id,
+ Name: view.Name,
+ Layout: s.mapDataviewTypeName(view.Type),
+ Filters: filters,
+ Sorts: sorts,
+ })
+ }
+ default:
+ return nil, 0, false, ErrFailedGetListDataview
+ }
+
+ total := len(views)
+ paginatedViews, hasMore := pagination.Paginate(views, offset, limit)
+
+ return paginatedViews, total, hasMore, nil
+}
+
+// GetObjectsInList retrieves objects in a list
+func (s *ListService) GetObjectsInList(ctx context.Context, spaceId string, listId string, viewId string, offset, limit int) ([]object.Object, int, bool, error) {
+ resp := s.mw.ObjectShow(ctx, &pb.RpcObjectShowRequest{
+ SpaceId: spaceId,
+ ObjectId: listId,
+ })
+
+ if resp.Error != nil && resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
+ return nil, 0, false, ErrFailedGetList
+ }
+
+ var dataviewBlock *model.Block
+ for _, block := range resp.ObjectView.Blocks {
+ if block.Id == "dataview" {
+ dataviewBlock = block
+ break
+ }
+ }
+
+ if dataviewBlock == nil {
+ return nil, 0, false, ErrFailedGetListDataview
+ }
+
+ var sorts []*model.BlockContentDataviewSort
+ var filters []*model.BlockContentDataviewFilter
+
+ switch content := dataviewBlock.Content.(type) {
+ case *model.BlockContentOfDataview:
+ // if view not specified: return all objects without filtering and sorting
+ if viewId != "" {
+ var targetView *model.BlockContentDataviewView
+ for _, view := range content.Dataview.Views {
+ if view.Id == viewId {
+ targetView = view
+ break
+ }
+ }
+ if targetView == nil {
+ return nil, 0, false, ErrFailedGetListDataviewView
+ }
+ sorts = targetView.Sorts
+ filters = targetView.Filters
+ }
+ default:
+ return nil, 0, false, ErrFailedGetListDataview
+ }
+
+ var collectionId string
+ var source []string
+ listType := s.objectService.GetTypeFromDetails(resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyType.String()].GetStringValue(), resp.ObjectView.Details)
+
+ if listType.RecommendedLayout == "set" {
+ // for queries, we search within the space for objects of the setOf type
+ setOfValues := resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeySetOf.String()].GetListValue().Values
+ for _, value := range setOfValues {
+ typeKey, err := util.ResolveIdtoUniqueKey(s.mw, spaceId, value.GetStringValue())
+ if err != nil {
+ return nil, 0, false, err
+ }
+ source = append(source, typeKey)
+ }
+ } else if listType.RecommendedLayout == "collection" {
+ // for collections, we need to search within that collection
+ collectionId = listId
+ } else {
+ return nil, 0, false, ErrUnsupportedListType
+ }
+
+ // TODO: use subscription service with internal: 'true' to not send events to clients
+ searchResp := s.mw.ObjectSearchSubscribe(ctx, &pb.RpcObjectSearchSubscribeRequest{
+ SpaceId: spaceId,
+ Limit: int64(limit), // nolint: gosec
+ Offset: int64(offset), // nolint: gosec
+ Keys: []string{bundle.RelationKeyId.String()},
+ Sorts: sorts,
+ Filters: filters,
+ Source: source,
+ CollectionId: collectionId,
+ })
+
+ // TODO: returned error from ObjectSearchSubscribe is inconsistent with other RPCs: Error is nil instead of Code being NULL
+ if searchResp.Error != nil && searchResp.Error.Code != pb.RpcObjectSearchSubscribeResponseError_NULL {
+ return nil, 0, false, ErrFailedGetObjectsInList
+ }
+
+ total := int(searchResp.Counters.Total)
+ hasMore := searchResp.Counters.Total > int64(offset+limit)
+
+ objects := make([]object.Object, 0, len(searchResp.Records))
+ for _, record := range searchResp.Records {
+ object, err := s.objectService.GetObject(ctx, spaceId, record.Fields[bundle.RelationKeyId.String()].GetStringValue())
+ if err != nil {
+ return nil, 0, false, err
+ }
+ objects = append(objects, object)
+ }
+
+ return objects, total, hasMore, nil
+}
+
+// AddObjectsToList adds objects to a list
+func (s *ListService) AddObjectsToList(ctx context.Context, spaceId string, listId string, objectIds []string) error {
+ resp := s.mw.ObjectCollectionAdd(ctx, &pb.RpcObjectCollectionAddRequest{
+ ContextId: listId,
+ ObjectIds: objectIds,
+ })
+
+ if resp.Error.Code != pb.RpcObjectCollectionAddResponseError_NULL {
+ return ErrFailedAddObjectsToList
+ }
+
+ return nil
+}
+
+// RemoveObjectsFromList removes objects from a list
+func (s *ListService) RemoveObjectsFromList(ctx context.Context, spaceId string, listId string, objectIds []string) error {
+ resp := s.mw.ObjectCollectionRemove(ctx, &pb.RpcObjectCollectionRemoveRequest{
+ ContextId: listId,
+ ObjectIds: objectIds,
+ })
+
+ if resp.Error.Code != pb.RpcObjectCollectionRemoveResponseError_NULL {
+ return ErrFailedRemoveObjectsFromList
+ }
+
+ return nil
+}
+
+// mapDataviewTypeName maps the dataview type to a string.
+func (s *ListService) mapDataviewTypeName(dataviewType model.BlockContentDataviewViewType) string {
+ switch dataviewType {
+ case model.BlockContentDataviewView_Table:
+ return "grid"
+ default:
+ return strcase.ToSnake(model.BlockContentDataviewViewType_name[int32(dataviewType)])
+ }
+}
diff --git a/core/api/internal/list/service_test.go b/core/api/internal/list/service_test.go
new file mode 100644
index 000000000..e0d335f7a
--- /dev/null
+++ b/core/api/internal/list/service_test.go
@@ -0,0 +1,947 @@
+package list
+
+import (
+ "context"
+ "testing"
+
+ "github.com/gogo/protobuf/types"
+ "github.com/stretchr/testify/mock"
+ "github.com/stretchr/testify/require"
+
+ "github.com/anyproto/anytype-heart/core/api/apicore/mock_apicore"
+ "github.com/anyproto/anytype-heart/core/api/internal/object"
+ "github.com/anyproto/anytype-heart/core/api/internal/space"
+ "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"
+)
+
+const (
+ mockedSpaceId = "mocked-space-id"
+ mockedListId = "mocked-list-id"
+ mockedTypeId = "mocked-type-id"
+ mockedSetOfTypeId = "mocked-set-of-type-id"
+ mockedUniqueKey = "mocked-unique-key"
+ mockedViewId = "view-1"
+ offset = 0
+ limit = 100
+)
+
+type fixture struct {
+ *ListService
+ mwMock *mock_apicore.MockClientCommands
+ objectService *object.ObjectService
+}
+
+func newFixture(t *testing.T) *fixture {
+ mwMock := mock_apicore.NewMockClientCommands(t)
+ spaceService := space.NewService(mwMock)
+ objectService := object.NewService(mwMock, spaceService)
+ objectService.AccountInfo = &model.AccountInfo{
+ TechSpaceId: "mocked-tech-space-id",
+ GatewayUrl: "http://localhost:31006",
+ }
+ listService := NewService(mwMock, objectService)
+ return &fixture{
+ ListService: listService,
+ mwMock: mwMock,
+ objectService: objectService,
+ }
+}
+
+func TestListService_GetListViews(t *testing.T) {
+ ctx := context.Background()
+
+ t.Run("successful", func(t *testing.T) {
+ fx := newFixture(t)
+
+ // Prepare a view with one sort and one filter
+ sorts := []*model.BlockContentDataviewSort{
+ {
+ Id: "sort-1",
+ RelationKey: "dummy-sort",
+ Type: model.BlockContentDataviewSort_Asc,
+ },
+ }
+ filters := []*model.BlockContentDataviewFilter{
+ {
+ Id: "filter-1",
+ RelationKey: "dummy-filter",
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("dummy-value"),
+ },
+ }
+ view := &model.BlockContentDataviewView{
+ Id: "view-1",
+ Name: "Test View",
+ Sorts: sorts,
+ Filters: filters,
+ Type: model.BlockContentDataviewView_Table,
+ }
+
+ resp := &pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: &model.BlockContentOfDataview{
+ Dataview: &model.BlockContentDataview{
+ Views: []*model.BlockContentDataviewView{view},
+ },
+ },
+ },
+ },
+ },
+ }
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(resp, nil).Once()
+
+ views, total, hasMore, err := fx.GetListViews(ctx, mockedSpaceId, mockedListId, offset, limit)
+ require.NoError(t, err)
+ require.Len(t, views, 1)
+ require.Equal(t, 1, total)
+ require.False(t, hasMore)
+
+ retView := views[0]
+ require.Equal(t, "view-1", retView.Id)
+ require.Equal(t, "Test View", retView.Name)
+ require.Len(t, retView.Filters, 1)
+ require.Len(t, retView.Sorts, 1)
+ })
+
+ t.Run("object show error", func(t *testing.T) {
+ fx := newFixture(t)
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_UNKNOWN_ERROR},
+ }, nil).Once()
+
+ _, _, _, err := fx.GetListViews(ctx, mockedSpaceId, mockedListId, offset, limit)
+ require.ErrorIs(t, err, ErrFailedGetList)
+ })
+
+ t.Run("no dataview block", func(t *testing.T) {
+ fx := newFixture(t)
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Blocks: []*model.Block{
+ {Id: "non-dataview"},
+ },
+ },
+ }, nil).Once()
+
+ _, _, _, err := fx.GetListViews(ctx, mockedSpaceId, mockedListId, offset, limit)
+ require.ErrorIs(t, err, ErrFailedGetListDataview)
+ })
+
+ t.Run("invalid dataview content", func(t *testing.T) {
+ fx := newFixture(t)
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Blocks: []*model.Block{
+ {Id: "dataview", Content: nil},
+ },
+ },
+ }, nil).Once()
+
+ _, _, _, err := fx.GetListViews(ctx, mockedSpaceId, mockedListId, offset, limit)
+ require.ErrorIs(t, err, ErrFailedGetListDataview)
+ })
+
+ t.Run("view with no sorts", func(t *testing.T) {
+ fx := newFixture(t)
+
+ // Create a view with filters but no sorts
+ filters := []*model.BlockContentDataviewFilter{
+ {
+ Id: "filter-1",
+ RelationKey: "dummy-filter",
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("dummy-value"),
+ },
+ }
+ view := &model.BlockContentDataviewView{
+ Id: "view-2",
+ Name: "No Sort View",
+ Sorts: []*model.BlockContentDataviewSort{},
+ Filters: filters,
+ Type: model.BlockContentDataviewView_Table,
+ }
+
+ resp := &pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: &model.BlockContentOfDataview{
+ Dataview: &model.BlockContentDataview{
+ Views: []*model.BlockContentDataviewView{view},
+ },
+ },
+ },
+ },
+ },
+ }
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(resp, nil).Once()
+
+ views, total, hasMore, err := fx.GetListViews(ctx, mockedSpaceId, mockedListId, offset, limit)
+ require.NoError(t, err)
+ require.Len(t, views, 1)
+ require.Equal(t, 1, total)
+ require.False(t, hasMore)
+ })
+
+ t.Run("view with multiple sorts", func(t *testing.T) {
+ fx := newFixture(t)
+
+ // Create a view with 2 sorts
+ sorts := []*model.BlockContentDataviewSort{
+ {
+ Id: "sort-1",
+ RelationKey: "dummy-sort",
+ Type: model.BlockContentDataviewSort_Asc,
+ },
+ {
+ Id: "sort-2",
+ RelationKey: "dummy-sort2",
+ Type: model.BlockContentDataviewSort_Desc,
+ },
+ }
+ filters := []*model.BlockContentDataviewFilter{
+ {
+ Id: "filter-1",
+ RelationKey: "dummy-filter",
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("dummy-value"),
+ },
+ }
+ view := &model.BlockContentDataviewView{
+ Id: "view-3",
+ Name: "Multi-Sort View",
+ Sorts: sorts,
+ Filters: filters,
+ Type: model.BlockContentDataviewView_Table,
+ }
+
+ resp := &pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: &model.BlockContentOfDataview{
+ Dataview: &model.BlockContentDataview{
+ Views: []*model.BlockContentDataviewView{view},
+ },
+ },
+ },
+ },
+ },
+ }
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(resp, nil).Once()
+
+ views, total, hasMore, err := fx.GetListViews(ctx, mockedSpaceId, mockedListId, offset, limit)
+ require.NoError(t, err)
+ require.Len(t, views, 1)
+ require.Equal(t, 1, total)
+ require.False(t, hasMore)
+
+ require.Equal(t, "view-3", views[0].Id)
+ require.Len(t, views[0].Sorts, 2)
+ })
+}
+
+func TestListService_GetObjectsInList(t *testing.T) {
+
+ t.Run("successful", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // Prepare a dataview view with dummy sorts and filters.
+ sorts := []*model.BlockContentDataviewSort{
+ {
+ RelationKey: "dummy-sort",
+ Type: model.BlockContentDataviewSort_Asc,
+ },
+ }
+ filters := []*model.BlockContentDataviewFilter{
+ {
+ RelationKey: "dummy-filter",
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("dummy-value"),
+ },
+ }
+ view := &model.BlockContentDataviewView{
+ Id: mockedViewId,
+ Sorts: sorts,
+ Filters: filters,
+ }
+
+ // Expect the ObjectShow call for the list to return the type in the details and dataview block.
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Id: mockedListId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyType.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeySetOf.String(): pbtypes.StringList([]string{mockedSetOfTypeId}),
+ },
+ },
+ },
+ {
+ Id: mockedTypeId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyRecommendedLayout.String(): pbtypes.Int64(int64(model.ObjectType_set)),
+ },
+ },
+ },
+ },
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: &model.BlockContentOfDataview{
+ Dataview: &model.BlockContentDataview{
+ Views: []*model.BlockContentDataviewView{view},
+ },
+ },
+ },
+ },
+ },
+ }, nil).Once()
+
+ // Expect the ObjectShow to return the type's unique key.
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedSetOfTypeId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Id: mockedSetOfTypeId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyUniqueKey.String(): pbtypes.String(mockedUniqueKey),
+ },
+ },
+ },
+ },
+ },
+ }, nil).Once()
+
+ // Expect the ObjectSearchSubscribe call to return one record.
+ fx.mwMock.
+ On("ObjectSearchSubscribe", mock.Anything, &pb.RpcObjectSearchSubscribeRequest{
+ SpaceId: mockedSpaceId,
+ Limit: int64(limit),
+ Offset: int64(offset),
+ Keys: []string{bundle.RelationKeyId.String()},
+ Sorts: sorts,
+ Filters: filters,
+ Source: []string{mockedUniqueKey},
+ }).
+ Return(&pb.RpcObjectSearchSubscribeResponse{
+ Error: &pb.RpcObjectSearchSubscribeResponseError{Code: pb.RpcObjectSearchSubscribeResponseError_NULL},
+ Counters: &pb.EventObjectSubscriptionCounters{Total: 1},
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("object-1"),
+ },
+ },
+ },
+ }, nil).Once()
+
+ // Expect the object service to be called to get details for "object-1".
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: "object-1",
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Id: "object-1",
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("object-1"),
+ bundle.RelationKeyName.String(): pbtypes.String("Object One"),
+ },
+ },
+ },
+ },
+ },
+ }, nil).Once()
+
+ // when
+ objects, total, hasMore, err := fx.GetObjectsInList(ctx, mockedSpaceId, mockedListId, mockedViewId, offset, limit)
+
+ // then
+ require.NoError(t, err)
+ require.Len(t, objects, 1)
+ require.Equal(t, 1, total)
+ require.False(t, hasMore)
+ require.Equal(t, "object-1", objects[0].Id)
+ require.Equal(t, "Object One", objects[0].Name)
+ })
+
+ t.Run("successful with empty viewId", func(t *testing.T) {
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // Prepare an ObjectShow response with a dataview block containing a view (which will not be used since viewId is empty)
+ resp := &pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Id: mockedListId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyType.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeySetOf.String(): pbtypes.StringList([]string{mockedSetOfTypeId}),
+ },
+ },
+ },
+ {
+ Id: mockedTypeId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyRecommendedLayout.String(): pbtypes.Int64(int64(model.ObjectType_collection)),
+ },
+ },
+ },
+ },
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: &model.BlockContentOfDataview{
+ Dataview: &model.BlockContentDataview{
+ Views: []*model.BlockContentDataviewView{
+ {
+ Id: mockedListId,
+ Sorts: []*model.BlockContentDataviewSort{
+ {
+ Id: "view_sort",
+ RelationKey: bundle.RelationKeyLastModifiedDate.String(),
+ Format: model.RelationFormat_date,
+ Type: model.BlockContentDataviewSort_Asc,
+ },
+ },
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Id: "view_filter",
+ RelationKey: bundle.RelationKeyStatus.String(),
+ Format: model.RelationFormat_longtext,
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("active"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(resp, nil).Once()
+
+ // Since viewId is empty, sorts and filters should be nil.
+ fx.mwMock.
+ On("ObjectSearchSubscribe", mock.Anything, &pb.RpcObjectSearchSubscribeRequest{
+ SpaceId: mockedSpaceId,
+ Limit: int64(limit),
+ Offset: int64(offset),
+ Keys: []string{bundle.RelationKeyId.String()},
+ Sorts: nil,
+ Filters: nil,
+ CollectionId: mockedListId,
+ }).
+ Return(&pb.RpcObjectSearchSubscribeResponse{
+ Error: &pb.RpcObjectSearchSubscribeResponseError{Code: pb.RpcObjectSearchSubscribeResponseError_NULL},
+ Counters: &pb.EventObjectSubscriptionCounters{Total: 1},
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("object-1"),
+ },
+ },
+ },
+ }, nil).Once()
+
+ // Expect the ObjectShow call for "object-1" to return its details.
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: "object-1",
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Id: "object-1",
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("object-1"),
+ bundle.RelationKeyName.String(): pbtypes.String("Object One"),
+ },
+ },
+ },
+ },
+ },
+ }, nil).Once()
+
+ // when
+ objects, total, hasMore, err := fx.GetObjectsInList(ctx, mockedSpaceId, mockedListId, "", offset, limit)
+
+ // then
+ require.NoError(t, err)
+ require.Len(t, objects, 1)
+ require.Equal(t, 1, total)
+ require.False(t, hasMore)
+ require.Equal(t, "object-1", objects[0].Id)
+ require.Equal(t, "Object One", objects[0].Name)
+ })
+
+ t.Run("object show error", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // Simulate an error response (non-NULL error code) from ObjectShow for the list.
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_UNKNOWN_ERROR},
+ }, nil).Once()
+
+ // when
+ _, _, _, err := fx.GetObjectsInList(ctx, mockedSpaceId, mockedListId, "", offset, limit)
+
+ // then
+ require.ErrorIs(t, err, ErrFailedGetList)
+ })
+
+ t.Run("no dataview block", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // Return an ObjectView that does not contain a block with ID "dataview".
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Blocks: []*model.Block{
+ {Id: "non-dataview"},
+ },
+ },
+ }, nil).Once()
+
+ // when
+ _, _, _, err := fx.GetObjectsInList(ctx, mockedSpaceId, mockedListId, "", offset, limit)
+
+ // then
+ require.ErrorIs(t, err, ErrFailedGetListDataview)
+ })
+
+ t.Run("invalid dataview content", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // Return a "dataview" block that does not have the expected content type.
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: nil,
+ },
+ },
+ },
+ }, nil).Once()
+
+ // when
+ _, _, _, err := fx.GetObjectsInList(ctx, mockedSpaceId, mockedListId, "", offset, limit)
+
+ // then
+ require.ErrorIs(t, err, ErrFailedGetListDataview)
+ })
+
+ t.Run("view not found", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // Prepare a dataview that only contains a view with an ID different from the one requested.
+ view := &model.BlockContentDataviewView{
+ Id: "some-other-view",
+ Sorts: []*model.BlockContentDataviewSort{},
+ Filters: []*model.BlockContentDataviewFilter{},
+ }
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: &model.BlockContentOfDataview{
+ Dataview: &model.BlockContentDataview{
+ Views: []*model.BlockContentDataviewView{view},
+ },
+ },
+ },
+ },
+ },
+ }, nil).Once()
+
+ // when
+ _, _, _, err := fx.GetObjectsInList(ctx, mockedSpaceId, mockedListId, "non-existent-view", offset, limit)
+
+ // then
+ require.ErrorIs(t, err, ErrFailedGetListDataviewView)
+ })
+
+ t.Run("search subscribe error", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // Prepare an empty dataview view (no sorts/filters).
+ sorts := []*model.BlockContentDataviewSort{}
+ filters := []*model.BlockContentDataviewFilter{}
+ view := &model.BlockContentDataviewView{
+ Id: mockedViewId,
+ Sorts: sorts,
+ Filters: filters,
+ }
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Id: mockedListId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyType.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeySetOf.String(): pbtypes.StringList([]string{mockedSetOfTypeId}),
+ },
+ },
+ },
+ {
+ Id: mockedTypeId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyRecommendedLayout.String(): pbtypes.Int64(int64(model.ObjectType_collection)),
+ },
+ },
+ },
+ },
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: &model.BlockContentOfDataview{
+ Dataview: &model.BlockContentDataview{
+ Views: []*model.BlockContentDataviewView{view},
+ },
+ },
+ },
+ },
+ },
+ }, nil).Once()
+
+ // Simulate an error from ObjectSearchSubscribe.
+ fx.mwMock.
+ On("ObjectSearchSubscribe", mock.Anything, &pb.RpcObjectSearchSubscribeRequest{
+ SpaceId: mockedSpaceId,
+ Limit: int64(limit),
+ Offset: int64(offset),
+ Keys: []string{bundle.RelationKeyId.String()},
+ Sorts: sorts,
+ Filters: filters,
+ CollectionId: mockedListId,
+ }).
+ Return(&pb.RpcObjectSearchSubscribeResponse{
+ Error: &pb.RpcObjectSearchSubscribeResponseError{Code: pb.RpcObjectSearchSubscribeResponseError_UNKNOWN_ERROR},
+ }, nil).Once()
+
+ // when
+ _, _, _, err := fx.GetObjectsInList(ctx, mockedSpaceId, mockedListId, mockedViewId, offset, limit)
+
+ // then
+ require.ErrorIs(t, err, ErrFailedGetObjectsInList)
+ })
+
+ t.Run("get object error", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ var sorts []*model.BlockContentDataviewSort
+ var filters []*model.BlockContentDataviewFilter
+ view := &model.BlockContentDataviewView{
+ Id: mockedViewId,
+ Sorts: sorts,
+ Filters: filters,
+ }
+
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedListId,
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Id: mockedListId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyType.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeySetOf.String(): pbtypes.StringList([]string{mockedSetOfTypeId}),
+ },
+ },
+ },
+ {
+ Id: mockedTypeId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyRecommendedLayout.String(): pbtypes.Int64(int64(model.ObjectType_collection)),
+ },
+ },
+ },
+ },
+ Blocks: []*model.Block{
+ {
+ Id: "dataview",
+ Content: &model.BlockContentOfDataview{
+ Dataview: &model.BlockContentDataview{
+ Views: []*model.BlockContentDataviewView{view},
+ },
+ },
+ },
+ },
+ },
+ }, nil).Once()
+
+ fx.mwMock.
+ On("ObjectSearchSubscribe", mock.Anything, &pb.RpcObjectSearchSubscribeRequest{
+ SpaceId: mockedSpaceId,
+ Limit: int64(limit),
+ Offset: int64(offset),
+ Keys: []string{bundle.RelationKeyId.String()},
+ Sorts: sorts,
+ Filters: filters,
+ CollectionId: mockedListId,
+ }).
+ Return(&pb.RpcObjectSearchSubscribeResponse{
+ Error: &pb.RpcObjectSearchSubscribeResponseError{Code: pb.RpcObjectSearchSubscribeResponseError_NULL},
+ Counters: &pb.EventObjectSubscriptionCounters{Total: 1},
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("object-err"),
+ },
+ },
+ },
+ }, nil).Once()
+
+ // Simulate an error when trying to retrieve the object details.
+ fx.mwMock.
+ On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: "object-err",
+ }).
+ Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NOT_FOUND},
+ }, nil).Once()
+
+ // when
+ _, _, _, err := fx.GetObjectsInList(ctx, mockedSpaceId, mockedListId, "", offset, limit)
+
+ // then
+ require.ErrorIs(t, err, object.ErrObjectNotFound)
+ })
+}
+
+func TestListService_AddObjectsToList(t *testing.T) {
+
+ t.Run("success", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+ objectIds := []string{"obj-1", "obj-2"}
+
+ fx.mwMock.
+ On("ObjectCollectionAdd", mock.Anything, &pb.RpcObjectCollectionAddRequest{
+ ContextId: mockedListId,
+ ObjectIds: objectIds,
+ }).
+ Return(&pb.RpcObjectCollectionAddResponse{
+ Error: &pb.RpcObjectCollectionAddResponseError{Code: pb.RpcObjectCollectionAddResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ err := fx.AddObjectsToList(ctx, mockedSpaceId, mockedListId, objectIds)
+
+ // then
+ require.NoError(t, err)
+ })
+
+ t.Run("failure", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+ objectIds := []string{"obj-1"}
+
+ fx.mwMock.
+ On("ObjectCollectionAdd", mock.Anything, &pb.RpcObjectCollectionAddRequest{
+ ContextId: mockedListId,
+ ObjectIds: objectIds,
+ }).
+ Return(&pb.RpcObjectCollectionAddResponse{
+ Error: &pb.RpcObjectCollectionAddResponseError{Code: pb.RpcObjectCollectionAddResponseError_UNKNOWN_ERROR},
+ }, nil).Once()
+
+ // when
+ err := fx.AddObjectsToList(ctx, mockedSpaceId, mockedListId, objectIds)
+
+ // then
+ require.ErrorIs(t, err, ErrFailedAddObjectsToList)
+ })
+}
+
+func TestListService_RemoveObjectsFromList(t *testing.T) {
+
+ t.Run("success", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+ objectIds := []string{"obj-1", "obj-2"}
+
+ fx.mwMock.
+ On("ObjectCollectionRemove", mock.Anything, &pb.RpcObjectCollectionRemoveRequest{
+ ContextId: mockedListId,
+ ObjectIds: objectIds,
+ }).
+ Return(&pb.RpcObjectCollectionRemoveResponse{
+ Error: &pb.RpcObjectCollectionRemoveResponseError{Code: pb.RpcObjectCollectionRemoveResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ err := fx.RemoveObjectsFromList(ctx, mockedSpaceId, mockedListId, objectIds)
+
+ // then
+ require.NoError(t, err)
+ })
+
+ t.Run("failure", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+ objectIds := []string{"obj-1"}
+
+ fx.mwMock.
+ On("ObjectCollectionRemove", mock.Anything, &pb.RpcObjectCollectionRemoveRequest{
+ ContextId: mockedListId,
+ ObjectIds: objectIds,
+ }).
+ Return(&pb.RpcObjectCollectionRemoveResponse{
+ Error: &pb.RpcObjectCollectionRemoveResponseError{Code: pb.RpcObjectCollectionRemoveResponseError_UNKNOWN_ERROR},
+ }, nil).Once()
+
+ // when
+ err := fx.RemoveObjectsFromList(ctx, mockedSpaceId, mockedListId, objectIds)
+
+ // then
+ require.ErrorIs(t, err, ErrFailedRemoveObjectsFromList)
+ })
+}
diff --git a/core/api/internal/object/handler.go b/core/api/internal/object/handler.go
index 671f25583..e1378e3f9 100644
--- a/core/api/internal/object/handler.go
+++ b/core/api/internal/object/handler.go
@@ -11,17 +11,18 @@ import (
// GetObjectsHandler retrieves a list of objects in a space
//
-// @Summary List objects
-// @Tags objects
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
-// @Param limit query int false "The number of items to return" default(100) maximum(1000)
-// @Success 200 {object} pagination.PaginatedResponse[Object] "List of objects"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/objects [get]
+// @Summary List objects
+// @Description Retrieves a paginated list of objects in the given space. The endpoint takes query parameters for pagination (offset and limit) and returns detailed data about each object including its ID, name, icon, type information, a snippet of the content (if applicable), layout, space ID, blocks and details. It is intended for building views where users can see all objects in a space at a glance.
+// @Tags objects
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return" default(100) maximum(1000)
+// @Success 200 {object} pagination.PaginatedResponse[Object] "List of objects"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/objects [get]
func GetObjectsHandler(s *ObjectService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -47,17 +48,19 @@ func GetObjectsHandler(s *ObjectService) gin.HandlerFunc {
// GetObjectHandler retrieves an object in a space
//
-// @Summary Get object
-// @Tags objects
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param object_id path string true "Object ID"
-// @Success 200 {object} ObjectResponse "The requested object"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 404 {object} util.NotFoundError "Resource not found"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/objects/{object_id} [get]
+// @Summary Get object
+// @Description Fetches the full details of a single object identified by the object ID within the specified space. The response includes not only basic metadata (ID, name, icon, type) but also the complete set of blocks (which may include text, files, properties and dataviews) and extra details (such as timestamps and linked member information). This endpoint is essential when a client needs to render or edit the full object view.
+// @Tags objects
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param object_id path string true "Object ID"
+// @Success 200 {object} ObjectResponse "The requested object"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Resource not found"
+// @Failure 410 {object} util.GoneError "Resource deleted"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/objects/{object_id} [get]
func GetObjectHandler(s *ObjectService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -66,6 +69,7 @@ func GetObjectHandler(s *ObjectService) gin.HandlerFunc {
object, err := s.GetObject(c.Request.Context(), spaceId, objectId)
code := util.MapErrorCode(err,
util.ErrToCode(ErrObjectNotFound, http.StatusNotFound),
+ util.ErrToCode(ErrObjectDeleted, http.StatusGone),
util.ErrToCode(ErrFailedRetrieveObject, http.StatusInternalServerError),
)
@@ -81,18 +85,20 @@ func GetObjectHandler(s *ObjectService) gin.HandlerFunc {
// DeleteObjectHandler deletes an object in a space
//
-// @Summary Delete object
-// @Tags objects
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param object_id path string true "Object ID"
-// @Success 200 {object} ObjectResponse "The deleted object"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 403 {object} util.ForbiddenError "Forbidden"
-// @Failure 404 {object} util.NotFoundError "Resource not found"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/objects/{object_id} [delete]
+// @Summary Delete object
+// @Description This endpoint “deletes” an object by marking it as archived. The deletion process is performed safely and is subject to rate limiting. It returns the object’s details after it has been archived. Proper error handling is in place for situations such as when the object isn’t found or the deletion cannot be performed because of permission issues.
+// @Tags objects
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param object_id path string true "Object ID"
+// @Success 200 {object} ObjectResponse "The deleted object"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 403 {object} util.ForbiddenError "Forbidden"
+// @Failure 404 {object} util.NotFoundError "Resource not found"
+// @Failure 423 {object} util.RateLimitError "Rate limit exceeded"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/objects/{object_id} [delete]
func DeleteObjectHandler(s *ObjectService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -117,17 +123,20 @@ func DeleteObjectHandler(s *ObjectService) gin.HandlerFunc {
// CreateObjectHandler creates a new object in a space
//
-// @Summary Create object
-// @Tags objects
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param object body CreateObjectRequest true "Object to create"
-// @Success 200 {object} ObjectResponse "The created object"
-// @Failure 400 {object} util.ValidationError "Bad request"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/objects [post]
+// @Summary Create object
+// @Description Creates a new object in the specified space using a JSON payload. The creation process is subject to rate limiting. The payload must include key details such as the object name, icon, description, body content (which may support Markdown), source URL (required for bookmark objects), template identifier, and the type_key (which is the non-unique identifier of the type of object to create). Post-creation, additional operations (like setting featured properties or fetching bookmark metadata) may occur. The endpoint then returns the full object data, ready for further interactions.
+// @Tags objects
+// @Accept json
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param object body CreateObjectRequest true "Object to create"
+// @Success 200 {object} ObjectResponse "The created object"
+// @Failure 400 {object} util.ValidationError "Bad request"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 423 {object} util.RateLimitError "Rate limit exceeded"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/objects [post]
func CreateObjectHandler(s *ObjectService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -142,9 +151,12 @@ func CreateObjectHandler(s *ObjectService) gin.HandlerFunc {
object, err := s.CreateObject(c.Request.Context(), spaceId, request)
code := util.MapErrorCode(err,
util.ErrToCode(ErrInputMissingSource, http.StatusBadRequest),
+ util.ErrToCode(ErrIconNameColorNotSupported, http.StatusBadRequest),
+ util.ErrToCode(ErrFailedCreateBookmark, http.StatusInternalServerError),
util.ErrToCode(ErrFailedCreateObject, http.StatusInternalServerError),
- util.ErrToCode(ErrFailedSetRelationFeatured, http.StatusInternalServerError),
- util.ErrToCode(ErrFailedFetchBookmark, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedSetPropertyFeatured, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedCreateBlock, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedPasteBody, http.StatusInternalServerError),
util.ErrToCode(ErrObjectNotFound, http.StatusInternalServerError),
util.ErrToCode(ErrFailedRetrieveObject, http.StatusInternalServerError),
)
@@ -161,17 +173,18 @@ func CreateObjectHandler(s *ObjectService) gin.HandlerFunc {
// GetTypesHandler retrieves a list of types in a space
//
-// @Summary List types
-// @Tags types
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
-// @Param limit query int false "The number of items to return" default(100) maximum(1000)
-// @Success 200 {object} pagination.PaginatedResponse[Type] "List of types"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/types [get]
+// @Summary List types
+// @Description This endpoint retrieves a paginated list of object types (e.g. 'Page', 'Note', 'Task') available within the specified space. Each type’s record includes its unique identifier, type key, display name, icon, and a recommended layout. While a type's id is truly unique, a type's key can be the same across spaces for known types, e.g. 'ot-page' for 'Page'. Clients use this information when offering choices for object creation or for filtering objects by type through search.
+// @Tags types
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return" default(100) maximum(1000)
+// @Success 200 {object} pagination.PaginatedResponse[Type] "List of types"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/types [get]
func GetTypesHandler(s *ObjectService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -195,17 +208,19 @@ func GetTypesHandler(s *ObjectService) gin.HandlerFunc {
// GetTypeHandler retrieves a type in a space
//
-// @Summary Get type
-// @Tags types
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param type_id path string true "Type ID"
-// @Success 200 {object} TypeResponse "The requested type"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 404 {object} util.NotFoundError "Resource not found"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/types/{type_id} [get]
+// @Summary Get type
+// @Description Fetches detailed information about one specific object type by its ID. This includes the type’s unique key, name, icon, and recommended layout. This detailed view assists clients in understanding the expected structure and style for objects of that type and in guiding the user interface (such as displaying appropriate icons or layout hints).
+// @Tags types
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param type_id path string true "Type ID"
+// @Success 200 {object} TypeResponse "The requested type"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Resource not found"
+// @Failure 410 {object} util.GoneError "Resource deleted"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/types/{type_id} [get]
func GetTypeHandler(s *ObjectService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -214,6 +229,7 @@ func GetTypeHandler(s *ObjectService) gin.HandlerFunc {
object, err := s.GetType(c.Request.Context(), spaceId, typeId)
code := util.MapErrorCode(err,
util.ErrToCode(ErrTypeNotFound, http.StatusNotFound),
+ util.ErrToCode(ErrTypeDeleted, http.StatusGone),
util.ErrToCode(ErrFailedRetrieveType, http.StatusInternalServerError),
)
@@ -229,18 +245,19 @@ func GetTypeHandler(s *ObjectService) gin.HandlerFunc {
// GetTemplatesHandler retrieves a list of templates for a type in a space
//
-// @Summary List templates
-// @Tags types
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param type_id path string true "Type ID"
-// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
-// @Param limit query int false "The number of items to return" default(100) maximum(1000)
-// @Success 200 {object} pagination.PaginatedResponse[Template] "List of templates"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/types/{type_id}/templates [get]
+// @Summary List templates
+// @Description This endpoint returns a paginated list of templates that are associated with a specific object type within a space. Templates provide pre‑configured structures for creating new objects. Each template record contains its identifier, name, and icon, so that clients can offer users a selection of templates when creating objects.
+// @Tags templates
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param type_id path string true "Type ID"
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return" default(100) maximum(1000)
+// @Success 200 {object} pagination.PaginatedResponse[Template] "List of templates"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/types/{type_id}/templates [get]
func GetTemplatesHandler(s *ObjectService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -268,18 +285,20 @@ func GetTemplatesHandler(s *ObjectService) gin.HandlerFunc {
// GetTemplateHandler retrieves a template for a type in a space
//
-// @Summary Get template
-// @Tags types
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param type_id path string true "Type ID"
-// @Param template_id path string true "Template ID"
-// @Success 200 {object} TemplateResponse "The requested template"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 404 {object} util.NotFoundError "Resource not found"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/types/{type_id}/templates/{template_id} [get]
+// @Summary Get template
+// @Description Fetches full details for one template associated with a particular object type in a space. The response provides the template’s identifier, name, icon, and any other relevant metadata. This endpoint is useful when a client needs to preview or apply a template to prefill object creation fields.
+// @Tags templates
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param type_id path string true "Type ID"
+// @Param template_id path string true "Template ID"
+// @Success 200 {object} TemplateResponse "The requested template"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Resource not found"
+// @Failure 410 {object} util.GoneError "Resource deleted"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/types/{type_id}/templates/{template_id} [get]
func GetTemplateHandler(s *ObjectService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -289,6 +308,7 @@ func GetTemplateHandler(s *ObjectService) gin.HandlerFunc {
object, err := s.GetTemplate(c.Request.Context(), spaceId, typeId, templateId)
code := util.MapErrorCode(err,
util.ErrToCode(ErrTemplateNotFound, http.StatusNotFound),
+ util.ErrToCode(ErrTemplateDeleted, http.StatusGone),
util.ErrToCode(ErrFailedRetrieveTemplate, http.StatusInternalServerError),
)
diff --git a/core/api/internal/object/model.go b/core/api/internal/object/model.go
index 70ba449aa..22340b52f 100644
--- a/core/api/internal/object/model.go
+++ b/core/api/internal/object/model.go
@@ -1,93 +1,111 @@
package object
+import "github.com/anyproto/anytype-heart/core/api/util"
+
type CreateObjectRequest struct {
- Name string `json:"name" example:"Object Name"`
- Icon string `json:"icon" example:"📄"`
- Description string `json:"description" example:"Object Description"`
- Body string `json:"body" example:"Object Body"`
- Source string `json:"source" example:"https://source.com"`
- TemplateId string `json:"template_id" example:"bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge"`
- ObjectTypeUniqueKey string `json:"object_type_unique_key" example:"ot-page"`
+ Name string `json:"name" example:"My object"` // The name of the object
+ Icon util.Icon `json:"icon"` // The icon of the object
+ Description string `json:"description" example:"This is a description of the object."` // The description of the object
+ Body string `json:"body" example:"This is the body of the object. Markdown syntax is supported here."` // The body of the object
+ Source string `json:"source" example:"https://bookmark-source.com"` // The source url, only applicable for bookmarks
+ TemplateId string `json:"template_id" example:"bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge"` // The id of the template to use
+ TypeKey string `json:"type_key" example:"ot-page"` // The key of the type of object to create
}
type ObjectResponse struct {
- Object Object `json:"object"`
+ Object Object `json:"object"` // The object
}
type Object struct {
- Type string `json:"type" example:"Page"`
- Id string `json:"id" example:"bafyreie6n5l5nkbjal37su54cha4coy7qzuhrnajluzv5qd5jvtsrxkequ"`
- Name string `json:"name" example:"Object Name"`
- Icon string `json:"icon" example:"📄"`
- Snippet string `json:"snippet" example:"The beginning of the object body..."`
- Layout string `json:"layout" example:"basic"`
- SpaceId string `json:"space_id" example:"bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1"`
- RootId string `json:"root_id" example:"bafyreicypzj6uvu54664ucv3hmbsd5cmdy2dv4fwua26sciq74khzpyn4u"`
- Blocks []Block `json:"blocks"`
- Details []Detail `json:"details"`
+ Object string `json:"object" example:"object"` // The data model of the object
+ Id string `json:"id" example:"bafyreie6n5l5nkbjal37su54cha4coy7qzuhrnajluzv5qd5jvtsrxkequ"` // The id of the object
+ Name string `json:"name" example:"My object"` // The name of the object
+ Icon util.Icon `json:"icon"` // The icon of the object
+ Archived bool `json:"archived" example:"false"` // Whether the object is archived
+ SpaceId string `json:"space_id" example:"bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1"` // The id of the space the object is in
+ Snippet string `json:"snippet" example:"The beginning of the object body..."` // The snippet of the object, especially important for notes as they don't have a name
+ Layout string `json:"layout" example:"basic"` // The layout of the object
+ Type Type `json:"type"` // The type of the object
+ Blocks []Block `json:"blocks"` // The blocks of the object. Omitted in Search endpoints, returned only in GetObject endpoint
+ Properties []Property `json:"properties"` // The properties of the object
}
type Block struct {
- Id string `json:"id" example:"64394517de52ad5acb89c66c"`
- ChildrenIds []string `json:"children_ids" example:"['6797ce8ecda913cde14b02dc']"`
- BackgroundColor string `json:"background_color" example:"red"`
- Align string `json:"align" enums:"AlignLeft,AlignCenter,AlignRight,AlignJustify" example:"AlignLeft"`
- VerticalAlign string `json:"vertical_align" enums:"VerticalAlignTop,VerticalAlignMiddle,VerticalAlignBottom" example:"VerticalAlignTop"`
- Text *Text `json:"text,omitempty"`
- File *File `json:"file,omitempty"`
+ Id string `json:"id" example:"64394517de52ad5acb89c66c"` // The id of the block
+ ChildrenIds []string `json:"children_ids" example:"['6797ce8ecda913cde14b02dc']"` // The ids of the block's children
+ BackgroundColor string `json:"background_color" example:"red"` // The background color of the block
+ Align string `json:"align" enums:"AlignLeft,AlignCenter,AlignRight,AlignJustify" example:"AlignLeft"` // The alignment of the block
+ VerticalAlign string `json:"vertical_align" enums:"VerticalAlignTop,VerticalAlignMiddle,VerticalAlignBottom" example:"VerticalAlignTop"` // The vertical alignment of the block
+ Text *Text `json:"text,omitempty"` // The text of the block, if applicable
+ File *File `json:"file,omitempty"` // The file of the block, if applicable
+ Property *Property `json:"property,omitempty"` // The property block, if applicable
}
type Text struct {
- Text string `json:"text" example:"Some text"`
- Style string `json:"style" enums:"Paragraph,Header1,Header2,Header3,Header4,Quote,Code,Title,Checkbox,Marked,Numbered,Toggle,Description,Callout" example:"Paragraph"`
- Checked bool `json:"checked" example:"true"`
- Color string `json:"color" example:"red"`
- Icon string `json:"icon" example:"📄"`
+ Text string `json:"text" example:"Some text..."` // The text
+ Style string `json:"style" enums:"Paragraph,Header1,Header2,Header3,Header4,Quote,Code,Title,Checkbox,Marked,Numbered,Toggle,Description,Callout" example:"Paragraph"` // The style of the text
+ Checked bool `json:"checked" example:"true"` // Whether the text is checked
+ Color string `json:"color" example:"red"` // The color of the text
+ Icon util.Icon `json:"icon"` // The icon of the text
}
type File struct {
- Hash string `json:"hash"`
- Name string `json:"name"`
- Type string `json:"type"`
- Mime string `json:"mime"`
- Size int `json:"size"`
- AddedAt int `json:"added_at"`
- TargetObjectId string `json:"target_object_id"`
- State string `json:"state"`
- Style string `json:"style"`
+ Hash string `json:"hash"` // The hash of the file
+ Name string `json:"name"` // The name of the file
+ Type string `json:"type"` // The type of the file
+ Mime string `json:"mime"` // The mime of the file
+ Size int `json:"size"` // The size of the file
+ AddedAt int `json:"added_at"` // The added at of the file
+ TargetObjectId string `json:"target_object_id"` // The target object id of the file
+ State string `json:"state"` // The state of the file
+ Style string `json:"style"` // The style of the file
}
-type Detail struct {
- Id string `json:"id" enums:"last_modified_date,last_modified_by,created_date,created_by,last_opened_date,tags" example:"last_modified_date"`
- Details map[string]interface{} `json:"details"`
+type Property struct {
+ Id string `json:"id" example:"last_modified_date"` // The id of the property
+ Name string `json:"name" example:"Last modified date"` // The name of the property
+ Format string `json:"format" example:"date" enums:"text,number,select,multi_select,date,file,checkbox,url,email,phone,object"` // The format of the property
+ Text *string `json:"text,omitempty" example:"Some text..."` // The text value, if applicable
+ Number *float64 `json:"number,omitempty" example:"42"` // The number value, if applicable
+ Select *Tag `json:"select,omitempty"` // The select value, if applicable
+ MultiSelect []Tag `json:"multi_select,omitempty"` // The multi-select values, if applicable
+ Date *string `json:"date,omitempty" example:"2025-02-14T12:34:56Z"` // The date value, if applicable
+ File []string `json:"file,omitempty" example:"['fileId']"` // The file references, if applicable
+ Checkbox *bool `json:"checkbox,omitempty" example:"true" enum:"true,false"` // The checkbox value, if applicable
+ Url *string `json:"url,omitempty" example:"https://example.com"` // The url value, if applicable
+ Email *string `json:"email,omitempty" example:"example@example.com"` // The email value, if applicable
+ Phone *string `json:"phone,omitempty" example:"+1234567890"` // The phone number value, if applicable
+ Object []string `json:"object,omitempty" example:"['objectId']"` // The object references, if applicable
}
type Tag struct {
- Id string `json:"id" example:"bafyreiaixlnaefu3ci22zdenjhsdlyaeeoyjrsid5qhfeejzlccijbj7sq"`
- Name string `json:"name" example:"Tag Name"`
- Color string `json:"color" example:"yellow"`
+ Id string `json:"id" example:"bafyreiaixlnaefu3ci22zdenjhsdlyaeeoyjrsid5qhfeejzlccijbj7sq"` // The id of the tag
+ Name string `json:"name" example:"in-progress"` // The name of the tag
+ Color string `json:"color" example:"yellow"` // The color of the tag
}
type TypeResponse struct {
- Type Type `json:"type"`
+ Type Type `json:"type"` // The type
}
type Type struct {
- Type string `json:"type" example:"type"`
- Id string `json:"id" example:"bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu"`
- UniqueKey string `json:"unique_key" example:"ot-page"`
- Name string `json:"name" example:"Page"`
- Icon string `json:"icon" example:"📄"`
- RecommendedLayout string `json:"recommended_layout" example:"todo"`
+ Object string `json:"object" example:"type"` // The data model of the object
+ Id string `json:"id" example:"bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu"` // The id of the type (which is unique across spaces)
+ Key string `json:"key" example:"ot-page"` // The key of the type (can be the same across spaces for known types)
+ Name string `json:"name" example:"Page"` // The name of the type
+ Icon util.Icon `json:"icon"` // The icon of the type
+ Archived bool `json:"archived" example:"false"` // Whether the type is archived
+ RecommendedLayout string `json:"recommended_layout" example:"todo"` // The recommended layout of the type
}
type TemplateResponse struct {
- Template Template `json:"template"`
+ Template Template `json:"template"` // The template
}
type Template struct {
- Type string `json:"type" example:"template"`
- Id string `json:"id" example:"bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge"`
- Name string `json:"name" example:"Template Name"`
- Icon string `json:"icon" example:"📄"`
+ Object string `json:"object" example:"template"` // The data model of the object
+ Id string `json:"id" example:"bafyreictrp3obmnf6dwejy5o4p7bderaaia4bdg2psxbfzf44yya5uutge"` // The id of the template
+ Name string `json:"name" example:"My template"` // The name of the template
+ Icon util.Icon `json:"icon"` // The icon of the template
+ Archived bool `json:"archived" example:"false"` // Whether the template is archived
}
diff --git a/core/api/internal/object/service.go b/core/api/internal/object/service.go
index 91efda7b2..18a2c7d2a 100644
--- a/core/api/internal/object/service.go
+++ b/core/api/internal/object/service.go
@@ -6,12 +6,14 @@ import (
"time"
"github.com/gogo/protobuf/types"
+ "github.com/iancoleman/strcase"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
"github.com/anyproto/anytype-heart/core/api/internal/space"
"github.com/anyproto/anytype-heart/core/api/pagination"
"github.com/anyproto/anytype-heart/core/api/util"
+ "github.com/anyproto/anytype-heart/core/domain"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
@@ -20,26 +22,75 @@ import (
var (
// objects
ErrObjectNotFound = errors.New("object not found")
+ ErrObjectDeleted = errors.New("object deleted")
ErrFailedRetrieveObject = errors.New("failed to retrieve object")
ErrFailedRetrieveObjects = errors.New("failed to retrieve list of objects")
ErrFailedDeleteObject = errors.New("failed to delete object")
ErrFailedCreateObject = errors.New("failed to create object")
ErrInputMissingSource = errors.New("source is missing for bookmark")
- ErrFailedSetRelationFeatured = errors.New("failed to set relation featured")
- ErrFailedFetchBookmark = errors.New("failed to fetch bookmark")
+ ErrIconNameColorNotSupported = errors.New("icon name and color are not supported for object")
+ ErrFailedSetPropertyFeatured = errors.New("failed to set property featured")
+ ErrFailedCreateBookmark = errors.New("failed to fetch bookmark")
+ ErrFailedCreateBlock = errors.New("failed to create block")
ErrFailedPasteBody = errors.New("failed to paste body")
// types
ErrFailedRetrieveTypes = errors.New("failed to retrieve types")
ErrTypeNotFound = errors.New("type not found")
+ ErrTypeDeleted = errors.New("type deleted")
ErrFailedRetrieveType = errors.New("failed to retrieve type")
ErrFailedRetrieveTemplateType = errors.New("failed to retrieve template type")
ErrTemplateTypeNotFound = errors.New("template type not found")
ErrFailedRetrieveTemplate = errors.New("failed to retrieve template")
ErrFailedRetrieveTemplates = errors.New("failed to retrieve templates")
ErrTemplateNotFound = errors.New("template not found")
+ ErrTemplateDeleted = errors.New("template deleted")
)
+var excludedSystemProperties = map[string]bool{
+ bundle.RelationKeyId.String(): true,
+ bundle.RelationKeySpaceId.String(): true,
+ bundle.RelationKeyName.String(): true,
+ bundle.RelationKeyIconEmoji.String(): true,
+ bundle.RelationKeyIconImage.String(): true,
+ bundle.RelationKeyType.String(): true,
+ bundle.RelationKeyResolvedLayout.String(): true,
+ bundle.RelationKeyIsFavorite.String(): true,
+ bundle.RelationKeyIsArchived.String(): true,
+ bundle.RelationKeyIsDeleted.String(): true,
+ bundle.RelationKeyIsHidden.String(): true,
+ bundle.RelationKeyWorkspaceId.String(): true,
+ bundle.RelationKeyInternalFlags.String(): true,
+ bundle.RelationKeyRestrictions.String(): true,
+ bundle.RelationKeyOrigin.String(): true,
+ bundle.RelationKeySnippet.String(): true,
+ bundle.RelationKeySyncStatus.String(): true,
+ bundle.RelationKeySyncError.String(): true,
+ bundle.RelationKeySyncDate.String(): true,
+ bundle.RelationKeyCoverId.String(): true,
+ bundle.RelationKeyCoverType.String(): true,
+ bundle.RelationKeyCoverScale.String(): true,
+ bundle.RelationKeyCoverX.String(): true,
+ bundle.RelationKeyCoverY.String(): true,
+ bundle.RelationKeyMentions.String(): true,
+ bundle.RelationKeyOldAnytypeID.String(): true,
+ bundle.RelationKeySource.String(): true,
+ bundle.RelationKeySourceFilePath.String(): true,
+ bundle.RelationKeyImportType.String(): true,
+ bundle.RelationKeyTargetObjectType.String(): true,
+ bundle.RelationKeyFeaturedRelations.String(): true,
+ bundle.RelationKeySetOf.String(): true,
+ bundle.RelationKeyLinks.String(): true,
+ bundle.RelationKeyBacklinks.String(): true,
+ bundle.RelationKeySourceObject.String(): true,
+ bundle.RelationKeyLayoutAlign.String(): true,
+ bundle.RelationKeyIsHiddenDiscovery.String(): true,
+ bundle.RelationKeyLayout.String(): true,
+ bundle.RelationKeyIsReadonly.String(): true,
+ bundle.RelationKeyParticipantStatus.String(): true,
+ bundle.RelationKeyParticipantPermissions.String(): true,
+}
+
type Service interface {
ListObjects(ctx context.Context, spaceId string, offset int, limit int) ([]Object, int, bool, error)
GetObject(ctx context.Context, spaceId string, objectId string) (Object, error)
@@ -52,12 +103,12 @@ type Service interface {
}
type ObjectService struct {
- mw service.ClientCommandsServer
+ mw apicore.ClientCommands
spaceService *space.SpaceService
AccountInfo *model.AccountInfo
}
-func NewService(mw service.ClientCommandsServer, spaceService *space.SpaceService) *ObjectService {
+func NewService(mw apicore.ClientCommands, spaceService *space.SpaceService) *ObjectService {
return &ObjectService{mw: mw, spaceService: spaceService}
}
@@ -67,7 +118,8 @@ func (s *ObjectService) ListObjects(ctx context.Context, spaceId string, offset
SpaceId: spaceId,
Filters: []*model.BlockContentDataviewFilter{
{
- RelationKey: bundle.RelationKeyLayout.String(),
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_In,
Value: pbtypes.IntList([]int{
int(model.ObjectType_basic),
@@ -80,6 +132,18 @@ func (s *ObjectService) ListObjects(ctx context.Context, spaceId string, offset
int(model.ObjectType_participant),
}...),
},
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: "type.uniqueKey",
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.String("ot-template"),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIsHidden.String(),
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.Bool(true),
+ },
},
Sorts: []*model.BlockContentDataviewSort{{
RelationKey: bundle.RelationKeyLastModifiedDate.String(),
@@ -117,31 +181,35 @@ func (s *ObjectService) GetObject(ctx context.Context, spaceId string, objectId
ObjectId: objectId,
})
- if resp.Error.Code == pb.RpcObjectShowResponseError_NOT_FOUND {
- return Object{}, ErrObjectNotFound
+ if resp.Error != nil {
+ if resp.Error.Code == pb.RpcObjectShowResponseError_NOT_FOUND {
+ return Object{}, ErrObjectNotFound
+ }
+
+ if resp.Error.Code == pb.RpcObjectShowResponseError_OBJECT_DELETED {
+ return Object{}, ErrObjectDeleted
+ }
+
+ if resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
+ return Object{}, ErrFailedRetrieveObject
+ }
}
- if resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
- return Object{}, ErrFailedRetrieveObject
- }
-
- icon := util.GetIconFromEmojiOrImage(s.AccountInfo, resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconImage.String()].GetStringValue())
- objectTypeName, err := util.ResolveTypeToName(s.mw, spaceId, resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyType.String()].GetStringValue())
- if err != nil {
- return Object{}, err
- }
+ details := resp.ObjectView.Details[0].Details.Fields
+ icon := util.GetIcon(s.AccountInfo, details[bundle.RelationKeyIconEmoji.String()].GetStringValue(), details[bundle.RelationKeyIconImage.String()].GetStringValue(), details[bundle.RelationKeyIconName.String()].GetStringValue(), details[bundle.RelationKeyIconOption.String()].GetNumberValue())
object := Object{
- Type: objectTypeName,
- Id: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyId.String()].GetStringValue(),
- Name: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyName.String()].GetStringValue(),
- Icon: icon,
- Snippet: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeySnippet.String()].GetStringValue(),
- Layout: model.ObjectTypeLayout_name[int32(resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyLayout.String()].GetNumberValue())],
- SpaceId: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeySpaceId.String()].GetStringValue(),
- RootId: resp.ObjectView.RootId,
- Blocks: s.GetBlocks(resp),
- Details: s.GetDetails(resp),
+ Object: "object",
+ Id: details[bundle.RelationKeyId.String()].GetStringValue(),
+ Name: details[bundle.RelationKeyName.String()].GetStringValue(),
+ Icon: icon,
+ Archived: details[bundle.RelationKeyIsArchived.String()].GetBoolValue(),
+ SpaceId: details[bundle.RelationKeySpaceId.String()].GetStringValue(),
+ Snippet: details[bundle.RelationKeySnippet.String()].GetStringValue(),
+ Layout: model.ObjectTypeLayout_name[int32(details[bundle.RelationKeyResolvedLayout.String()].GetNumberValue())],
+ Type: s.GetTypeFromDetails(details[bundle.RelationKeyType.String()].GetStringValue(), resp.ObjectView.Details),
+ Blocks: s.getBlocks(resp),
+ Properties: s.getProperties(resp),
}
return object, nil
@@ -168,62 +236,54 @@ func (s *ObjectService) DeleteObject(ctx context.Context, spaceId string, object
// CreateObject creates a new object in a specific space.
func (s *ObjectService) CreateObject(ctx context.Context, spaceId string, request CreateObjectRequest) (Object, error) {
- if request.ObjectTypeUniqueKey == "ot-bookmark" && request.Source == "" {
- return Object{}, ErrInputMissingSource
+ details, err := s.buildObjectDetails(request)
+ if err != nil {
+ return Object{}, err
}
- details := &types.Struct{
- Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String(request.Name),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String(request.Icon),
- bundle.RelationKeyDescription.String(): pbtypes.String(request.Description),
- bundle.RelationKeySource.String(): pbtypes.String(request.Source),
- bundle.RelationKeyOrigin.String(): pbtypes.Int64(int64(model.ObjectOrigin_api)),
- },
- }
+ var objectId string
+ if request.TypeKey == "ot-bookmark" {
+ resp := s.mw.ObjectCreateBookmark(ctx, &pb.RpcObjectCreateBookmarkRequest{
+ Details: details,
+ SpaceId: spaceId,
+ TemplateId: request.TemplateId,
+ })
- resp := s.mw.ObjectCreate(ctx, &pb.RpcObjectCreateRequest{
- Details: details,
- TemplateId: request.TemplateId,
- SpaceId: spaceId,
- ObjectTypeUniqueKey: request.ObjectTypeUniqueKey,
- WithChat: false,
- })
+ if resp.Error.Code != pb.RpcObjectCreateBookmarkResponseError_NULL {
+ return Object{}, ErrFailedCreateBookmark
+ }
+ objectId = resp.ObjectId
+ } else {
+ resp := s.mw.ObjectCreate(ctx, &pb.RpcObjectCreateRequest{
+ Details: details,
+ TemplateId: request.TemplateId,
+ SpaceId: spaceId,
+ ObjectTypeUniqueKey: request.TypeKey,
+ })
- if resp.Error.Code != pb.RpcObjectCreateResponseError_NULL {
- return Object{}, ErrFailedCreateObject
+ if resp.Error.Code != pb.RpcObjectCreateResponseError_NULL {
+ return Object{}, ErrFailedCreateObject
+ }
+ objectId = resp.ObjectId
}
// ObjectRelationAddFeatured if description was set
if request.Description != "" {
relAddFeatResp := s.mw.ObjectRelationAddFeatured(ctx, &pb.RpcObjectRelationAddFeaturedRequest{
- ContextId: resp.ObjectId,
+ ContextId: objectId,
Relations: []string{bundle.RelationKeyDescription.String()},
})
if relAddFeatResp.Error.Code != pb.RpcObjectRelationAddFeaturedResponseError_NULL {
- object, _ := s.GetObject(ctx, spaceId, resp.ObjectId) // nolint:errcheck
- return object, ErrFailedSetRelationFeatured
- }
- }
-
- // ObjectBookmarkFetch after creating a bookmark object
- if request.ObjectTypeUniqueKey == "ot-bookmark" {
- bookmarkResp := s.mw.ObjectBookmarkFetch(ctx, &pb.RpcObjectBookmarkFetchRequest{
- ContextId: resp.ObjectId,
- Url: request.Source,
- })
-
- if bookmarkResp.Error.Code != pb.RpcObjectBookmarkFetchResponseError_NULL {
- object, _ := s.GetObject(ctx, spaceId, resp.ObjectId) // nolint:errcheck
- return object, ErrFailedFetchBookmark
+ object, _ := s.GetObject(ctx, spaceId, objectId) // nolint:errcheck
+ return object, ErrFailedSetPropertyFeatured
}
}
// First call BlockCreate at top, then BlockPaste to paste the body
if request.Body != "" {
blockCreateResp := s.mw.BlockCreate(ctx, &pb.RpcBlockCreateRequest{
- ContextId: resp.ObjectId,
+ ContextId: objectId,
TargetId: "",
Block: &model.Block{
Id: "",
@@ -245,23 +305,55 @@ func (s *ObjectService) CreateObject(ctx context.Context, spaceId string, reques
})
if blockCreateResp.Error.Code != pb.RpcBlockCreateResponseError_NULL {
- object, _ := s.GetObject(ctx, spaceId, resp.ObjectId) // nolint:errcheck
- return object, ErrFailedCreateObject
+ object, _ := s.GetObject(ctx, spaceId, objectId) // nolint:errcheck
+ return object, ErrFailedCreateBlock
}
blockPasteResp := s.mw.BlockPaste(ctx, &pb.RpcBlockPasteRequest{
- ContextId: resp.ObjectId,
+ ContextId: objectId,
FocusedBlockId: blockCreateResp.BlockId,
TextSlot: request.Body,
})
if blockPasteResp.Error.Code != pb.RpcBlockPasteResponseError_NULL {
- object, _ := s.GetObject(ctx, spaceId, resp.ObjectId) // nolint:errcheck
+ object, _ := s.GetObject(ctx, spaceId, objectId) // nolint:errcheck
return object, ErrFailedPasteBody
}
}
- return s.GetObject(ctx, spaceId, resp.ObjectId)
+ return s.GetObject(ctx, spaceId, objectId)
+}
+
+// buildObjectDetails extracts the details structure from the CreateObjectRequest.
+func (s *ObjectService) buildObjectDetails(request CreateObjectRequest) (*types.Struct, error) {
+ // Validate bookmark source
+ if request.TypeKey == "ot-bookmark" && request.Source == "" {
+ return nil, ErrInputMissingSource
+ }
+
+ // Validate icon: only allow either emoji or file, and disallow name and color fields.
+ if request.Icon.Name != nil || request.Icon.Color != nil {
+ return nil, ErrIconNameColorNotSupported
+ }
+
+ iconFields := map[string]*types.Value{}
+ if request.Icon.Emoji != nil {
+ iconFields[bundle.RelationKeyIconEmoji.String()] = pbtypes.String(*request.Icon.Emoji)
+ } else if request.Icon.File != nil {
+ iconFields[bundle.RelationKeyIconImage.String()] = pbtypes.String(*request.Icon.File)
+ }
+
+ fields := map[string]*types.Value{
+ bundle.RelationKeyName.String(): pbtypes.String(request.Name),
+ bundle.RelationKeyDescription.String(): pbtypes.String(request.Description),
+ bundle.RelationKeySource.String(): pbtypes.String(request.Source),
+ bundle.RelationKeyOrigin.String(): pbtypes.Int64(int64(model.ObjectOrigin_api)),
+ }
+ for k, v := range iconFields {
+ fields[k] = v
+ }
+
+ return &types.Struct{Fields: fields}, nil
}
// ListTypes returns a paginated list of types in a specific space.
@@ -270,11 +362,13 @@ func (s *ObjectService) ListTypes(ctx context.Context, spaceId string, offset in
SpaceId: spaceId,
Filters: []*model.BlockContentDataviewFilter{
{
- RelationKey: bundle.RelationKeyLayout.String(),
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_Equal,
Value: pbtypes.Int64(int64(model.ObjectType_objectType)),
},
{
+ Operator: model.BlockContentDataviewFilter_No,
RelationKey: bundle.RelationKeyIsHidden.String(),
Condition: model.BlockContentDataviewFilter_NotEqual,
Value: pbtypes.Bool(true),
@@ -286,7 +380,7 @@ func (s *ObjectService) ListTypes(ctx context.Context, spaceId string, offset in
Type: model.BlockContentDataviewSort_Asc,
},
},
- Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyUniqueKey.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyRecommendedLayout.String()},
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyUniqueKey.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIconName.String(), bundle.RelationKeyIconOption.String(), bundle.RelationKeyRecommendedLayout.String(), bundle.RelationKeyIsArchived.String()},
})
if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
@@ -299,11 +393,12 @@ func (s *ObjectService) ListTypes(ctx context.Context, spaceId string, offset in
for _, record := range paginatedTypes {
types = append(types, Type{
- Type: "type",
+ Object: "type",
Id: record.Fields[bundle.RelationKeyId.String()].GetStringValue(),
- UniqueKey: record.Fields[bundle.RelationKeyUniqueKey.String()].GetStringValue(),
+ Key: record.Fields[bundle.RelationKeyUniqueKey.String()].GetStringValue(),
Name: record.Fields[bundle.RelationKeyName.String()].GetStringValue(),
- Icon: record.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(),
+ Icon: util.GetIcon(s.AccountInfo, record.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), "", record.Fields[bundle.RelationKeyIconName.String()].GetStringValue(), record.Fields[bundle.RelationKeyIconOption.String()].GetNumberValue()),
+ Archived: record.Fields[bundle.RelationKeyIsArchived.String()].GetBoolValue(),
RecommendedLayout: model.ObjectTypeLayout_name[int32(record.Fields[bundle.RelationKeyRecommendedLayout.String()].GetNumberValue())],
})
}
@@ -317,21 +412,29 @@ func (s *ObjectService) GetType(ctx context.Context, spaceId string, typeId stri
ObjectId: typeId,
})
- if resp.Error.Code == pb.RpcObjectShowResponseError_NOT_FOUND {
- return Type{}, ErrTypeNotFound
- }
-
- if resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
- return Type{}, ErrFailedRetrieveType
+ if resp.Error != nil {
+ if resp.Error.Code == pb.RpcObjectShowResponseError_NOT_FOUND {
+ return Type{}, ErrTypeNotFound
+ }
+
+ if resp.Error.Code == pb.RpcObjectShowResponseError_OBJECT_DELETED {
+ return Type{}, ErrTypeDeleted
+ }
+
+ if resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
+ return Type{}, ErrFailedRetrieveType
+ }
}
+ details := resp.ObjectView.Details[0].Details.Fields
return Type{
- Type: "type",
+ Object: "type",
Id: typeId,
- UniqueKey: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyUniqueKey.String()].GetStringValue(),
- Name: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyName.String()].GetStringValue(),
- Icon: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(),
- RecommendedLayout: model.ObjectTypeLayout_name[int32(resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyRecommendedLayout.String()].GetNumberValue())],
+ Key: details[bundle.RelationKeyUniqueKey.String()].GetStringValue(),
+ Name: details[bundle.RelationKeyName.String()].GetStringValue(),
+ Icon: util.GetIcon(s.AccountInfo, details[bundle.RelationKeyIconEmoji.String()].GetStringValue(), "", details[bundle.RelationKeyIconName.String()].GetStringValue(), details[bundle.RelationKeyIconOption.String()].GetNumberValue()),
+ Archived: details[bundle.RelationKeyIsArchived.String()].GetBoolValue(),
+ RecommendedLayout: model.ObjectTypeLayout_name[int32(details[bundle.RelationKeyRecommendedLayout.String()].GetNumberValue())],
}, nil
}
@@ -342,6 +445,7 @@ func (s *ObjectService) ListTemplates(ctx context.Context, spaceId string, typeI
SpaceId: spaceId,
Filters: []*model.BlockContentDataviewFilter{
{
+ Operator: model.BlockContentDataviewFilter_No,
RelationKey: bundle.RelationKeyUniqueKey.String(),
Condition: model.BlockContentDataviewFilter_Equal,
Value: pbtypes.String("ot-template"),
@@ -364,12 +468,13 @@ func (s *ObjectService) ListTemplates(ctx context.Context, spaceId string, typeI
SpaceId: spaceId,
Filters: []*model.BlockContentDataviewFilter{
{
+ Operator: model.BlockContentDataviewFilter_No,
RelationKey: bundle.RelationKeyType.String(),
Condition: model.BlockContentDataviewFilter_Equal,
Value: pbtypes.String(templateTypeId),
},
},
- Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyTargetObjectType.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String()},
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyTargetObjectType.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIsArchived.String()},
})
if templateObjectsResp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
@@ -399,10 +504,11 @@ func (s *ObjectService) ListTemplates(ctx context.Context, spaceId string, typeI
}
templates = append(templates, Template{
- Type: "template",
- Id: templateId,
- Name: templateResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyName.String()].GetStringValue(),
- Icon: templateResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(),
+ Object: "template",
+ Id: templateId,
+ Name: templateResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyName.String()].GetStringValue(),
+ Icon: util.GetIcon(s.AccountInfo, templateResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), "", "", 0),
+ Archived: templateResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIsArchived.String()].GetBoolValue(),
})
}
@@ -416,89 +522,299 @@ func (s *ObjectService) GetTemplate(ctx context.Context, spaceId string, typeId
ObjectId: templateId,
})
- if resp.Error.Code == pb.RpcObjectShowResponseError_NOT_FOUND {
- return Template{}, ErrTemplateNotFound
- }
+ if resp.Error != nil {
+ if resp.Error.Code == pb.RpcObjectShowResponseError_NOT_FOUND {
+ return Template{}, ErrTemplateNotFound
+ }
- if resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
- return Template{}, ErrFailedRetrieveTemplate
+ if resp.Error.Code == pb.RpcObjectShowResponseError_OBJECT_DELETED {
+ return Template{}, ErrTemplateDeleted
+ }
+
+ if resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
+ return Template{}, ErrFailedRetrieveTemplate
+ }
}
return Template{
- Type: "template",
- Id: templateId,
- Name: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyName.String()].GetStringValue(),
- Icon: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(),
+ Object: "template",
+ Id: templateId,
+ Name: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyName.String()].GetStringValue(),
+ Icon: util.GetIcon(s.AccountInfo, resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), "", "", 0),
+ Archived: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIsArchived.String()].GetBoolValue(),
}, nil
}
-// GetDetails returns the list of details from the ObjectShowResponse.
-func (s *ObjectService) GetDetails(resp *pb.RpcObjectShowResponse) []Detail {
- creator := resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyCreator.String()].GetStringValue()
- lastModifiedBy := resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyLastModifiedBy.String()].GetStringValue()
-
- var creatorId, lastModifiedById string
- for _, detail := range resp.ObjectView.Details {
- if detail.Id == creator {
- creatorId = detail.Id
- }
- if detail.Id == lastModifiedBy {
- lastModifiedById = detail.Id
+// GetTypeFromDetails returns the type from the details of the ObjectShowResponse.
+func (s *ObjectService) GetTypeFromDetails(typeId string, details []*model.ObjectViewDetailsSet) Type {
+ var objectTypeDetail *types.Struct
+ for _, detail := range details {
+ if detail.Id == typeId {
+ objectTypeDetail = detail.GetDetails()
+ break
}
}
- return []Detail{
- {
- Id: "last_modified_date",
- Details: map[string]interface{}{
- "last_modified_date": PosixToISO8601(resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyLastModifiedDate.String()].GetNumberValue()),
- },
- },
- {
- Id: "last_modified_by",
- Details: map[string]interface{}{
- "details": s.spaceService.GetParticipantDetails(s.mw, resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeySpaceId.String()].GetStringValue(), lastModifiedById),
- },
- },
- {
- Id: "created_date",
- Details: map[string]interface{}{
- "created_date": PosixToISO8601(resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyCreatedDate.String()].GetNumberValue()),
- },
- },
- {
- Id: "created_by",
- Details: map[string]interface{}{
- "details": s.spaceService.GetParticipantDetails(s.mw, resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeySpaceId.String()].GetStringValue(), creatorId),
- },
- },
- {
- Id: "last_opened_date",
- Details: map[string]interface{}{
- "last_opened_date": PosixToISO8601(resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyLastOpenedDate.String()].GetNumberValue()),
- },
- },
- {
- Id: "tags",
- Details: map[string]interface{}{
- "tags": s.getTags(resp),
- },
- },
+ if objectTypeDetail == nil {
+ return Type{}
+ }
+
+ return Type{
+ Object: "type",
+ Id: typeId,
+ Key: objectTypeDetail.Fields[bundle.RelationKeyUniqueKey.String()].GetStringValue(),
+ Name: objectTypeDetail.Fields[bundle.RelationKeyName.String()].GetStringValue(),
+ Icon: util.GetIcon(s.AccountInfo, objectTypeDetail.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), "", objectTypeDetail.Fields[bundle.RelationKeyIconName.String()].GetStringValue(), objectTypeDetail.Fields[bundle.RelationKeyIconOption.String()].GetNumberValue()),
+ RecommendedLayout: model.ObjectTypeLayout_name[int32(objectTypeDetail.Fields[bundle.RelationKeyRecommendedLayout.String()].GetNumberValue())],
+ }
+}
+
+// getProperties returns a list of properties by iterating over all properties found in the RelationLinks and mapping their format and value.
+func (s *ObjectService) getProperties(resp *pb.RpcObjectShowResponse) []Property {
+ propertyFormatMap := s.getPropertyFormatMap(resp.ObjectView.RelationLinks)
+ linkedProperties := resp.ObjectView.RelationLinks
+ primaryDetailFields := resp.ObjectView.Details[0].Details.Fields
+
+ properties := make([]Property, 0, len(linkedProperties))
+ for _, r := range linkedProperties {
+ key := r.Key
+ if _, isExcluded := excludedSystemProperties[key]; isExcluded {
+ continue
+ }
+ if _, ok := primaryDetailFields[key]; !ok {
+ continue
+ }
+
+ id, name := s.getProperty(key, resp)
+ format := propertyFormatMap[key]
+ convertedVal := s.convertValue(key, primaryDetailFields[key], format, resp.ObjectView.Details)
+
+ if s.isMissingObject(convertedVal) {
+ continue
+ }
+
+ properties = append(properties, s.buildProperty(id, name, format, convertedVal))
+ }
+
+ return properties
+}
+
+// isMissingObject returns true if val indicates a "_missing_object" placeholder.
+func (s *ObjectService) isMissingObject(val interface{}) bool {
+ switch v := val.(type) {
+ case string:
+ return v == "_missing_object"
+ case []interface{}:
+ if len(v) == 1 {
+ if str, ok := v[0].(string); ok {
+ return str == "_missing_object"
+ }
+ }
+ case Tag:
+ return v.Id == "_missing_object"
+ case []Tag:
+ if len(v) == 1 && v[0].Id == "_missing_object" {
+ return true
+ }
+ }
+ return false
+}
+
+// buildProperty creates a Property based on the format and converted value.
+func (s *ObjectService) buildProperty(id string, name string, format string, val interface{}) Property {
+ prop := &Property{
+ Id: id,
+ Name: name,
+ Format: format,
+ }
+
+ switch format {
+ case "text":
+ if str, ok := val.(string); ok {
+ prop.Text = &str
+ }
+ case "number":
+ if num, ok := val.(float64); ok {
+ prop.Number = &num
+ }
+ case "select":
+ if sel, ok := val.(Tag); ok {
+ prop.Select = &sel
+ }
+ case "multi_select":
+ if ms, ok := val.([]Tag); ok {
+ prop.MultiSelect = ms
+ }
+ case "date":
+ if dateStr, ok := val.(string); ok {
+ prop.Date = &dateStr
+ }
+ case "file":
+ if fileList, ok := val.([]interface{}); ok {
+ var files []string
+ for _, v := range fileList {
+ if str, ok := v.(string); ok {
+ files = append(files, str)
+ }
+ }
+ prop.File = files
+ }
+ case "checkbox":
+ if cb, ok := val.(bool); ok {
+ prop.Checkbox = &cb
+ }
+ case "url":
+ if urlStr, ok := val.(string); ok {
+ prop.Url = &urlStr
+ }
+ case "email":
+ if email, ok := val.(string); ok {
+ prop.Email = &email
+ }
+ case "phone":
+ if phone, ok := val.(string); ok {
+ prop.Phone = &phone
+ }
+ case "object":
+ if obj, ok := val.(string); ok {
+ prop.Object = []string{obj}
+ } else if objSlice, ok := val.([]interface{}); ok {
+ var objects []string
+ for _, v := range objSlice {
+ if str, ok := v.(string); ok {
+ objects = append(objects, str)
+ }
+ }
+ prop.Object = objects
+ }
+ default:
+ if str, ok := val.(string); ok {
+ prop.Text = &str
+ }
+ }
+
+ return *prop
+}
+
+// getProperty returns the property id and name from the ObjectShowResponse.
+func (s *ObjectService) getProperty(key string, resp *pb.RpcObjectShowResponse) (string, string) {
+ // Handle special cases first
+ switch key {
+ case bundle.RelationKeyCreator.String():
+ return "created_by", "Created By"
+ case bundle.RelationKeyCreatedDate.String():
+ return "created_date", "Created Date"
+ }
+
+ if property, err := bundle.GetRelation(domain.RelationKey(key)); err == nil {
+ return strcase.ToSnake(key), property.Name
+ }
+
+ // Fallback to resolving the property name
+ spaceId := resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeySpaceId.String()].GetStringValue()
+ if name, err2 := util.ResolveRelationKeyToPropertyName(s.mw, spaceId, key); err2 == nil {
+ return key, name
+ }
+ return key, key
+}
+
+// convertValue converts a protobuf types.Value into a native Go value.
+func (s *ObjectService) convertValue(key string, value *types.Value, format string, details []*model.ObjectViewDetailsSet) interface{} {
+ switch kind := value.Kind.(type) {
+ case *types.Value_NullValue:
+ return nil
+ case *types.Value_NumberValue:
+ if format == "date" {
+ return time.Unix(int64(kind.NumberValue), 0).UTC().Format(time.RFC3339)
+ }
+ return kind.NumberValue
+ case *types.Value_StringValue:
+ // TODO: investigate how this is possible? select option not list and not returned in further details
+ if format == "select" {
+ return s.resolveTag(details[0].Details.Fields[bundle.RelationKeySpaceId.String()].GetStringValue(), kind.StringValue)
+ }
+ if format == "multi_select" {
+ return []Tag{s.resolveTag(details[0].Details.Fields[bundle.RelationKeySpaceId.String()].GetStringValue(), kind.StringValue)}
+ }
+ return kind.StringValue
+ case *types.Value_BoolValue:
+ return kind.BoolValue
+ case *types.Value_StructValue:
+ m := make(map[string]interface{})
+ for k, v := range kind.StructValue.Fields {
+ m[k] = s.convertValue(key, v, format, details)
+ }
+ return m
+ case *types.Value_ListValue:
+ var list []interface{}
+ for _, v := range kind.ListValue.Values {
+ list = append(list, s.convertValue(key, v, format, details))
+ }
+ if format == "select" {
+ tags := s.getTags(key, details)
+ if len(tags) > 0 {
+ return tags[0]
+ }
+ return nil
+ }
+ if format == "multi_select" {
+ return s.getTags(key, details)
+ }
+ return list
+ default:
+ return nil
+ }
+}
+
+// getPropertyFormatMap returns the map of property key to property format from the ObjectShowResponse.
+func (s *ObjectService) getPropertyFormatMap(propertyLinks []*model.RelationLink) map[string]string {
+ propertyFormatToName := make(map[int32]string, len(model.RelationFormat_name))
+ for k := range model.RelationFormat_name {
+ propertyFormatToName[k] = s.MapRelationFormat(model.RelationFormat(k))
+ }
+
+ propertyFormatMap := map[string]string{}
+ for _, detail := range propertyLinks {
+ propertyFormatMap[detail.Key] = propertyFormatToName[int32(detail.Format)]
+ }
+
+ return propertyFormatMap
+}
+
+// TODO: remove once bug of select option not being returned in details is fixed
+func (s *ObjectService) resolveTag(spaceId, tagId string) Tag {
+ if tagId == "" {
+ return Tag{}
+ }
+
+ resp := s.mw.ObjectShow(context.Background(), &pb.RpcObjectShowRequest{
+ SpaceId: spaceId,
+ ObjectId: tagId,
+ })
+
+ if resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
+ return Tag{}
+ }
+
+ return Tag{
+ Id: tagId,
+ Name: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyName.String()].GetStringValue(),
+ Color: resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyRelationOptionColor.String()].GetStringValue(),
}
}
// getTags returns the list of tags from the ObjectShowResponse
-func (s *ObjectService) getTags(resp *pb.RpcObjectShowResponse) []Tag {
+func (s *ObjectService) getTags(key string, details []*model.ObjectViewDetailsSet) []Tag {
tags := []Tag{}
- tagField, ok := resp.ObjectView.Details[0].Details.Fields["tag"]
+ tagField, ok := details[0].Details.Fields[key]
if !ok || tagField.GetListValue() == nil {
return tags
}
for _, tagId := range tagField.GetListValue().Values {
id := tagId.GetStringValue()
- for _, detail := range resp.ObjectView.Details {
+ for _, detail := range details {
if detail.Id == id {
tags = append(tags, Tag{
Id: id,
@@ -512,13 +828,14 @@ func (s *ObjectService) getTags(resp *pb.RpcObjectShowResponse) []Tag {
return tags
}
-// GetBlocks returns the list of blocks from the ObjectShowResponse.
-func (s *ObjectService) GetBlocks(resp *pb.RpcObjectShowResponse) []Block {
+// getBlocks returns the list of blocks from the ObjectShowResponse.
+func (s *ObjectService) getBlocks(resp *pb.RpcObjectShowResponse) []Block {
blocks := []Block{}
for _, block := range resp.ObjectView.Blocks {
var text *Text
var file *File
+ var property *Property
switch content := block.Content.(type) {
case *model.BlockContentOfText:
@@ -527,7 +844,7 @@ func (s *ObjectService) GetBlocks(resp *pb.RpcObjectShowResponse) []Block {
Style: model.BlockContentTextStyle_name[int32(content.Text.Style)],
Checked: content.Text.Checked,
Color: content.Text.Color,
- Icon: util.GetIconFromEmojiOrImage(s.AccountInfo, content.Text.IconEmoji, content.Text.IconImage),
+ Icon: util.GetIcon(s.AccountInfo, content.Text.IconEmoji, content.Text.IconImage, "", 0),
}
case *model.BlockContentOfFile:
file = &File{
@@ -541,8 +858,13 @@ func (s *ObjectService) GetBlocks(resp *pb.RpcObjectShowResponse) []Block {
State: model.BlockContentFileState_name[int32(content.File.State)],
Style: model.BlockContentFileStyle_name[int32(content.File.Style)],
}
- // TODO: other content types?
+ case *model.BlockContentOfRelation:
+ property = &Property{
+ // TODO: is it sufficient to return the id only?
+ Id: content.Relation.Key,
+ }
}
+ // TODO: other content types?
blocks = append(blocks, Block{
Id: block.Id,
@@ -552,13 +874,25 @@ func (s *ObjectService) GetBlocks(resp *pb.RpcObjectShowResponse) []Block {
VerticalAlign: model.BlockVerticalAlign_name[int32(block.VerticalAlign)],
Text: text,
File: file,
+ Property: property,
})
}
return blocks
}
-func PosixToISO8601(posix float64) string {
- t := time.Unix(int64(posix), 0).UTC()
- return t.Format(time.RFC3339)
+// MapRelationFormat maps the relation format to a string.
+func (s *ObjectService) MapRelationFormat(format model.RelationFormat) string {
+ switch format {
+ case model.RelationFormat_longtext:
+ return "text"
+ case model.RelationFormat_shorttext:
+ return "text"
+ case model.RelationFormat_tag:
+ return "multi_select"
+ case model.RelationFormat_status:
+ return "select"
+ default:
+ return strcase.ToSnake(model.RelationFormat_name[int32(format)])
+ }
}
diff --git a/core/api/internal/object/service_test.go b/core/api/internal/object/service_test.go
index 10ba7e1c4..ef53eb72d 100644
--- a/core/api/internal/object/service_test.go
+++ b/core/api/internal/object/service_test.go
@@ -8,46 +8,46 @@ import (
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
+ "github.com/anyproto/anytype-heart/core/api/apicore/mock_apicore"
"github.com/anyproto/anytype-heart/core/api/internal/space"
+ "github.com/anyproto/anytype-heart/core/api/util"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service/mock_service"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
const (
- offset = 0
- limit = 100
- mockedTechSpaceId = "mocked-tech-space-id"
- gatewayUrl = "http://localhost:31006"
- mockedSpaceId = "mocked-space-id"
- mockedObjectId = "mocked-object-id"
- mockedObjectType = "mocked-object-type"
- mockedNewObjectId = "mocked-new-object-id"
- mockedObjectName = "mocked-object-name"
- mockedObjectSnippet = "mocked-object-snippet"
- mockedObjectIcon = "🔍"
- mockedObjectTypeUniqueKey = "ot-page"
- mockedTypeId = "mocked-type-id"
- mockedTypeName = "mocked-type-name"
- mockedTypeUniqueKey = "mocked-type-unique-key"
- mockedTypeIcon = "📝"
- mockedTemplateId = "mocked-template-id"
- mockedTemplateName = "mocked-template-name"
- mockedTemplateIcon = "📃"
+ offset = 0
+ limit = 100
+ mockedTechSpaceId = "mocked-tech-space-id"
+ gatewayUrl = "http://localhost:31006"
+ mockedSpaceId = "mocked-space-id"
+ mockedObjectId = "mocked-object-id"
+ mockedNewObjectId = "mocked-new-object-id"
+ mockedObjectName = "mocked-object-name"
+ mockedObjectSnippet = "mocked-object-snippet"
+ mockedObjectIcon = "🔍"
+ mockedParticipantId = "mocked-participant-id"
+ mockedTypeKey = "ot-page"
+ mockedTypeId = "mocked-type-id"
+ mockedTypeName = "mocked-type-name"
+ mockedTypeIcon = "📝"
+ mockedTemplateId = "mocked-template-id"
+ mockedTemplateName = "mocked-template-name"
+ mockedTemplateIcon = "📃"
)
type fixture struct {
*ObjectService
- mwMock *mock_service.MockClientCommandsServer
+ mwMock *mock_apicore.MockClientCommands
}
func newFixture(t *testing.T) *fixture {
- mw := mock_service.NewMockClientCommandsServer(t)
+ mwMock := mock_apicore.NewMockClientCommands(t)
- spaceService := space.NewService(mw)
- objectService := NewService(mw, spaceService)
+ spaceService := space.NewService(mwMock)
+ objectService := NewService(mwMock, spaceService)
objectService.AccountInfo = &model.AccountInfo{
TechSpaceId: mockedTechSpaceId,
GatewayUrl: gatewayUrl,
@@ -55,7 +55,7 @@ func newFixture(t *testing.T) *fixture {
return &fixture{
ObjectService: objectService,
- mwMock: mw,
+ mwMock: mwMock,
}
}
@@ -65,11 +65,12 @@ func TestObjectService_ListObjects(t *testing.T) {
ctx := context.Background()
fx := newFixture(t)
+ // Mock object search
fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
SpaceId: mockedSpaceId,
Filters: []*model.BlockContentDataviewFilter{
{
- RelationKey: bundle.RelationKeyLayout.String(),
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_In,
Value: pbtypes.IntList([]int{
int(model.ObjectType_basic),
@@ -82,6 +83,18 @@ func TestObjectService_ListObjects(t *testing.T) {
int(model.ObjectType_participant),
}...),
},
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: "type.uniqueKey",
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.String("ot-template"),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIsHidden.String(),
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.Bool(true),
+ },
},
Sorts: []*model.BlockContentDataviewSort{{
RelationKey: bundle.RelationKeyLastModifiedDate.String(),
@@ -95,12 +108,12 @@ func TestObjectService_ListObjects(t *testing.T) {
Records: []*types.Struct{
{
Fields: map[string]*types.Value{
- bundle.RelationKeyId.String(): pbtypes.String(mockedObjectId),
- bundle.RelationKeyName.String(): pbtypes.String(mockedObjectName),
- bundle.RelationKeySnippet.String(): pbtypes.String(mockedObjectSnippet),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedObjectIcon),
- bundle.RelationKeyType.String(): pbtypes.String(mockedObjectTypeUniqueKey),
- bundle.RelationKeyLayout.String(): pbtypes.Float64(float64(model.ObjectType_basic)),
+ bundle.RelationKeyId.String(): pbtypes.String(mockedObjectId),
+ bundle.RelationKeyName.String(): pbtypes.String(mockedObjectName),
+ bundle.RelationKeySnippet.String(): pbtypes.String(mockedObjectSnippet),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedObjectIcon),
+ bundle.RelationKeyType.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeyResolvedLayout.String(): pbtypes.Float64(float64(model.ObjectType_basic)),
},
},
},
@@ -116,100 +129,102 @@ func TestObjectService_ListObjects(t *testing.T) {
RootId: mockedObjectId,
Details: []*model.ObjectViewDetailsSet{
{
+ Id: mockedObjectId,
Details: &types.Struct{
Fields: map[string]*types.Value{
bundle.RelationKeyId.String(): pbtypes.String(mockedObjectId),
bundle.RelationKeyName.String(): pbtypes.String(mockedObjectName),
bundle.RelationKeySnippet.String(): pbtypes.String(mockedObjectSnippet),
bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedObjectIcon),
- bundle.RelationKeyType.String(): pbtypes.String(mockedObjectTypeUniqueKey),
bundle.RelationKeyCreatedDate.String(): pbtypes.Float64(888888),
+ bundle.RelationKeyLastModifiedBy.String(): pbtypes.String(mockedParticipantId),
bundle.RelationKeyLastModifiedDate.String(): pbtypes.Float64(999999),
+ bundle.RelationKeyCreator.String(): pbtypes.String(mockedParticipantId),
bundle.RelationKeyLastOpenedDate.String(): pbtypes.Float64(0),
bundle.RelationKeySpaceId.String(): pbtypes.String(mockedSpaceId),
+ bundle.RelationKeyType.String(): pbtypes.String(mockedTypeId),
},
},
},
+ {
+ Id: mockedParticipantId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String(mockedParticipantId),
+ },
+ },
+ },
+ {
+ Id: mockedTypeId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeyName.String(): pbtypes.String(mockedTypeName),
+ bundle.RelationKeyUniqueKey.String(): pbtypes.String(mockedTypeKey),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedTypeIcon),
+ },
+ },
+ },
+ },
+ RelationLinks: []*model.RelationLink{
+ {
+ Key: bundle.RelationKeyLastModifiedDate.String(),
+ Format: model.RelationFormat_date,
+ },
+ {
+ Key: bundle.RelationKeyLastModifiedBy.String(),
+ Format: model.RelationFormat_object,
+ },
+ {
+ Key: bundle.RelationKeyCreatedDate.String(),
+ Format: model.RelationFormat_date,
+ },
+ {
+ Key: bundle.RelationKeyCreator.String(),
+ Format: model.RelationFormat_object,
+ },
+ {
+ Key: bundle.RelationKeyLastOpenedDate.String(),
+ Format: model.RelationFormat_date,
+ },
+ {
+ Key: bundle.RelationKeyTag.String(),
+ Format: model.RelationFormat_tag,
+ },
},
},
Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
}).Once()
- // Mock type resolution
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- RelationKey: bundle.RelationKeyUniqueKey.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(mockedObjectTypeUniqueKey),
- },
- },
- Keys: []string{bundle.RelationKeyName.String()},
- }).Return(&pb.RpcObjectSearchResponse{
- Records: []*types.Struct{
- {
- Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String(mockedObjectType),
- },
- },
- },
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- }).Once()
-
- // Mock participant details
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyId.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(""),
- },
- },
- Keys: []string{
- bundle.RelationKeyId.String(),
- bundle.RelationKeyName.String(),
- bundle.RelationKeyIconEmoji.String(),
- bundle.RelationKeyIconImage.String(),
- bundle.RelationKeyIdentity.String(),
- bundle.RelationKeyGlobalName.String(),
- bundle.RelationKeyParticipantPermissions.String(),
- },
- }).Return(&pb.RpcObjectSearchResponse{
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- Records: []*types.Struct{
- {},
- },
- }).Twice()
-
// when
objects, total, hasMore, err := fx.ListObjects(ctx, mockedSpaceId, offset, limit)
// then
require.NoError(t, err)
require.Len(t, objects, 1)
- require.Equal(t, mockedObjectType, objects[0].Type)
+ require.Equal(t, mockedTypeId, objects[0].Type.Id)
+ require.Equal(t, mockedTypeName, objects[0].Type.Name)
+ require.Equal(t, mockedTypeKey, objects[0].Type.Key)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedTypeIcon)}, objects[0].Type.Icon)
require.Equal(t, mockedObjectId, objects[0].Id)
require.Equal(t, mockedObjectName, objects[0].Name)
require.Equal(t, mockedObjectSnippet, objects[0].Snippet)
- require.Equal(t, mockedObjectIcon, objects[0].Icon)
- require.Equal(t, 6, len(objects[0].Details))
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedObjectIcon)}, objects[0].Icon)
+ require.Equal(t, 5, len(objects[0].Properties))
- for _, detail := range objects[0].Details {
+ for _, detail := range objects[0].Properties {
if detail.Id == "created_date" {
- require.Equal(t, "1970-01-11T06:54:48Z", detail.Details["created_date"])
+ require.Equal(t, "1970-01-11T06:54:48Z", *detail.Date)
} else if detail.Id == "created_by" {
- require.Empty(t, detail.Details["created_by"])
+ require.Equal(t, []string{mockedParticipantId}, detail.Object)
} else if detail.Id == "last_modified_date" {
- require.Equal(t, "1970-01-12T13:46:39Z", detail.Details["last_modified_date"])
+ require.Equal(t, "1970-01-12T13:46:39Z", *detail.Date)
} else if detail.Id == "last_modified_by" {
- require.Empty(t, detail.Details["last_modified_by"])
+ require.Equal(t, []string{mockedParticipantId}, detail.Object)
} else if detail.Id == "last_opened_date" {
- require.Equal(t, "1970-01-01T00:00:00Z", detail.Details["last_opened_date"])
- } else if detail.Id == "tags" {
- require.Empty(t, detail.Details["tags"])
+ require.Equal(t, "1970-01-01T00:00:00Z", *detail.Date)
+ } else if detail.Id == "tag" {
+ require.Empty(t, detail.MultiSelect)
} else {
t.Errorf("unexpected detail id: %s", detail.Id)
}
@@ -224,14 +239,52 @@ func TestObjectService_ListObjects(t *testing.T) {
ctx := context.Background()
fx := newFixture(t)
- fx.mwMock.On("ObjectSearch", mock.Anything, mock.Anything).
- Return(&pb.RpcObjectSearchResponse{
- Records: []*types.Struct{},
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- }).Once()
+ // Mock object search
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: mockedSpaceId,
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
+ Condition: model.BlockContentDataviewFilter_In,
+ Value: pbtypes.IntList([]int{
+ int(model.ObjectType_basic),
+ int(model.ObjectType_profile),
+ int(model.ObjectType_todo),
+ int(model.ObjectType_note),
+ int(model.ObjectType_bookmark),
+ int(model.ObjectType_set),
+ int(model.ObjectType_collection),
+ int(model.ObjectType_participant),
+ }...),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: "type.uniqueKey",
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.String("ot-template"),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIsHidden.String(),
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.Bool(true),
+ },
+ },
+ Sorts: []*model.BlockContentDataviewSort{{
+ RelationKey: bundle.RelationKeyLastModifiedDate.String(),
+ Type: model.BlockContentDataviewSort_Desc,
+ Format: model.RelationFormat_longtext,
+ IncludeTime: true,
+ EmptyPlacement: model.BlockContentDataviewSort_NotSpecified,
+ }},
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyName.String()},
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{},
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
// when
- objects, total, hasMore, err := fx.ListObjects(ctx, "empty-space", offset, limit)
+ objects, total, hasMore, err := fx.ListObjects(ctx, mockedSpaceId, offset, limit)
// then
require.NoError(t, err)
@@ -257,13 +310,14 @@ func TestObjectService_GetObject(t *testing.T) {
RootId: mockedObjectId,
Details: []*model.ObjectViewDetailsSet{
{
+ Id: mockedObjectId,
Details: &types.Struct{
Fields: map[string]*types.Value{
bundle.RelationKeyId.String(): pbtypes.String(mockedObjectId),
bundle.RelationKeyName.String(): pbtypes.String(mockedObjectName),
bundle.RelationKeySnippet.String(): pbtypes.String(mockedObjectSnippet),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedObjectName),
- bundle.RelationKeyType.String(): pbtypes.String(mockedObjectTypeUniqueKey),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedObjectIcon),
+ bundle.RelationKeyType.String(): pbtypes.String(mockedTypeId),
bundle.RelationKeyLastModifiedDate.String(): pbtypes.Float64(999999),
bundle.RelationKeyCreatedDate.String(): pbtypes.Float64(888888),
bundle.RelationKeyLastOpenedDate.String(): pbtypes.Float64(0),
@@ -271,86 +325,78 @@ func TestObjectService_GetObject(t *testing.T) {
},
},
},
+ {
+ Id: mockedTypeId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeyName.String(): pbtypes.String(mockedTypeName),
+ bundle.RelationKeyUniqueKey.String(): pbtypes.String(mockedTypeKey),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedTypeIcon),
+ },
+ },
+ },
+ },
+ RelationLinks: []*model.RelationLink{
+ {
+ Key: bundle.RelationKeyLastModifiedDate.String(),
+ Format: model.RelationFormat_date,
+ },
+ {
+ Key: bundle.RelationKeyLastModifiedBy.String(),
+ Format: model.RelationFormat_object,
+ },
+ {
+ Key: bundle.RelationKeyCreatedDate.String(),
+ Format: model.RelationFormat_date,
+ },
+ {
+ Key: bundle.RelationKeyCreator.String(),
+ Format: model.RelationFormat_object,
+ },
+ {
+ Key: bundle.RelationKeyLastOpenedDate.String(),
+ Format: model.RelationFormat_date,
+ },
+ {
+ Key: bundle.RelationKeyTag.String(),
+ Format: model.RelationFormat_tag,
+ },
},
},
}, nil).Once()
- // Mock type resolution
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- RelationKey: bundle.RelationKeyUniqueKey.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(mockedObjectTypeUniqueKey),
- },
- },
- Keys: []string{bundle.RelationKeyName.String()},
- }).Return(&pb.RpcObjectSearchResponse{
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- Records: []*types.Struct{
- {
- Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String(mockedObjectType),
- },
- },
- },
- }, nil).Once()
-
- // Mock participant details
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyId.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(""),
- },
- },
- Keys: []string{
- bundle.RelationKeyId.String(),
- bundle.RelationKeyName.String(),
- bundle.RelationKeyIconEmoji.String(),
- bundle.RelationKeyIconImage.String(),
- bundle.RelationKeyIdentity.String(),
- bundle.RelationKeyGlobalName.String(),
- bundle.RelationKeyParticipantPermissions.String(),
- },
- }).Return(&pb.RpcObjectSearchResponse{
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- Records: []*types.Struct{
- {},
- },
- }).Twice()
-
// when
object, err := fx.GetObject(ctx, mockedSpaceId, mockedObjectId)
// then
require.NoError(t, err)
- require.Equal(t, mockedObjectType, object.Type)
+ require.Equal(t, "object", object.Object)
+ require.Equal(t, mockedTypeId, object.Type.Id)
+ require.Equal(t, mockedTypeName, object.Type.Name)
+ require.Equal(t, mockedTypeKey, object.Type.Key)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedTypeIcon)}, object.Type.Icon)
require.Equal(t, mockedObjectId, object.Id)
require.Equal(t, mockedObjectName, object.Name)
require.Equal(t, mockedObjectSnippet, object.Snippet)
- require.Equal(t, mockedObjectName, object.Icon)
- require.Equal(t, 6, len(object.Details))
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedObjectIcon)}, object.Icon)
+ require.Equal(t, 3, len(object.Properties))
- for _, detail := range object.Details {
- if detail.Id == "created_date" {
- require.Equal(t, "1970-01-11T06:54:48Z", detail.Details["created_date"])
- } else if detail.Id == "created_by" {
- require.Empty(t, detail.Details["created_by"])
- } else if detail.Id == "last_modified_date" {
- require.Equal(t, "1970-01-12T13:46:39Z", detail.Details["last_modified_date"])
- } else if detail.Id == "last_modified_by" {
- require.Empty(t, detail.Details["last_modified_by"])
- } else if detail.Id == "last_opened_date" {
- require.Equal(t, "1970-01-01T00:00:00Z", detail.Details["last_opened_date"])
- } else if detail.Id == "tags" {
- require.Empty(t, detail.Details["tags"])
+ for _, property := range object.Properties {
+ if property.Id == "created_date" {
+ require.Equal(t, "1970-01-11T06:54:48Z", *property.Date)
+ } else if property.Id == "created_by" {
+ require.Empty(t, property.Object)
+ } else if property.Id == "last_modified_date" {
+ require.Equal(t, "1970-01-12T13:46:39Z", *property.Date)
+ } else if property.Id == "last_modified_by" {
+ require.Empty(t, property.Object)
+ } else if property.Id == "last_opened_date" {
+ require.Equal(t, "1970-01-01T00:00:00Z", *property.Date)
+ } else if property.Id == "tag" {
+ require.Empty(t, property.MultiSelect)
} else {
- t.Errorf("unexpected detail id: %s", detail.Id)
+ t.Errorf("unexpected property id: %s", property.Id)
}
}
})
@@ -390,9 +436,9 @@ func TestObjectService_CreateObject(t *testing.T) {
bundle.RelationKeyOrigin.String(): pbtypes.Int64(int64(model.ObjectOrigin_api)),
},
},
- TemplateId: "",
+ TemplateId: mockedTemplateId,
SpaceId: mockedSpaceId,
- ObjectTypeUniqueKey: mockedObjectTypeUniqueKey,
+ ObjectTypeUniqueKey: mockedTypeKey,
WithChat: false,
}).Return(&pb.RpcObjectCreateResponse{
ObjectId: mockedNewObjectId,
@@ -416,14 +462,26 @@ func TestObjectService_CreateObject(t *testing.T) {
RootId: mockedNewObjectId,
Details: []*model.ObjectViewDetailsSet{
{
+ Id: mockedNewObjectId,
Details: &types.Struct{
Fields: map[string]*types.Value{
- bundle.RelationKeyId.String(): pbtypes.String(mockedNewObjectId),
- bundle.RelationKeyName.String(): pbtypes.String(mockedObjectName),
- bundle.RelationKeyLayout.String(): pbtypes.Float64(float64(model.ObjectType_basic)),
- bundle.RelationKeyType.String(): pbtypes.String(mockedObjectTypeUniqueKey),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedObjectIcon),
- bundle.RelationKeySpaceId.String(): pbtypes.String(mockedSpaceId),
+ bundle.RelationKeyId.String(): pbtypes.String(mockedNewObjectId),
+ bundle.RelationKeyName.String(): pbtypes.String(mockedObjectName),
+ bundle.RelationKeyResolvedLayout.String(): pbtypes.Float64(float64(model.ObjectType_basic)),
+ bundle.RelationKeyType.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedObjectIcon),
+ bundle.RelationKeySpaceId.String(): pbtypes.String(mockedSpaceId),
+ },
+ },
+ },
+ {
+ Id: mockedTypeId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String(mockedTypeId),
+ bundle.RelationKeyName.String(): pbtypes.String(mockedTypeName),
+ bundle.RelationKeyUniqueKey.String(): pbtypes.String(mockedTypeKey),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedTypeIcon),
},
},
},
@@ -432,70 +490,24 @@ func TestObjectService_CreateObject(t *testing.T) {
Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
}).Once()
- // Mock type resolution
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- RelationKey: bundle.RelationKeyUniqueKey.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(mockedObjectTypeUniqueKey),
- },
- },
- Keys: []string{bundle.RelationKeyName.String()},
- }).Return(&pb.RpcObjectSearchResponse{
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- Records: []*types.Struct{
- {
- Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String(mockedObjectType),
- },
- },
- },
- }).Once()
-
- // Mock participant details
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyId.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(""),
- },
- },
- Keys: []string{
- bundle.RelationKeyId.String(),
- bundle.RelationKeyName.String(),
- bundle.RelationKeyIconEmoji.String(),
- bundle.RelationKeyIconImage.String(),
- bundle.RelationKeyIdentity.String(),
- bundle.RelationKeyGlobalName.String(),
- bundle.RelationKeyParticipantPermissions.String(),
- },
- }).Return(&pb.RpcObjectSearchResponse{
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- Records: []*types.Struct{
- {},
- },
- }).Twice()
-
// when
object, err := fx.CreateObject(ctx, mockedSpaceId, CreateObjectRequest{
- Name: mockedObjectName,
- Icon: mockedObjectIcon,
- // TODO: use actual values
- TemplateId: "",
- ObjectTypeUniqueKey: mockedObjectTypeUniqueKey,
+ Name: mockedObjectName,
+ Icon: util.Icon{Format: util.IconFormatEmoji, Emoji: util.StringPtr(mockedObjectIcon)},
+ TemplateId: mockedTemplateId,
+ TypeKey: mockedTypeKey,
})
// then
require.NoError(t, err)
- require.Equal(t, mockedObjectType, object.Type)
+ require.Equal(t, "object", object.Object)
+ require.Equal(t, mockedTypeId, object.Type.Id)
+ require.Equal(t, mockedTypeName, object.Type.Name)
+ require.Equal(t, mockedTypeKey, object.Type.Key)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedTypeIcon)}, object.Type.Icon)
require.Equal(t, mockedNewObjectId, object.Id)
require.Equal(t, mockedObjectName, object.Name)
- require.Equal(t, mockedObjectIcon, object.Icon)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedObjectIcon)}, object.Icon)
require.Equal(t, mockedSpaceId, object.SpaceId)
})
@@ -512,7 +524,7 @@ func TestObjectService_CreateObject(t *testing.T) {
// when
object, err := fx.CreateObject(ctx, mockedSpaceId, CreateObjectRequest{
Name: "Fail Object",
- Icon: "",
+ Icon: util.Icon{},
})
// then
@@ -550,8 +562,8 @@ func TestObjectService_ListTypes(t *testing.T) {
require.Len(t, types, 1)
require.Equal(t, "type-1", types[0].Id)
require.Equal(t, "Type One", types[0].Name)
- require.Equal(t, "type-one-key", types[0].UniqueKey)
- require.Equal(t, "🗂️", types[0].Icon)
+ require.Equal(t, "type-one-key", types[0].Key)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr("🗂️")}, types[0].Icon)
require.Equal(t, 1, total)
require.False(t, hasMore)
})
@@ -596,7 +608,7 @@ func TestObjectService_GetType(t *testing.T) {
Fields: map[string]*types.Value{
bundle.RelationKeyId.String(): pbtypes.String(mockedTypeId),
bundle.RelationKeyName.String(): pbtypes.String(mockedTypeName),
- bundle.RelationKeyUniqueKey.String(): pbtypes.String(mockedTypeUniqueKey),
+ bundle.RelationKeyUniqueKey.String(): pbtypes.String(mockedTypeKey),
bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedTypeIcon),
bundle.RelationKeyRecommendedLayout.String(): pbtypes.Float64(float64(model.ObjectType_basic)),
},
@@ -613,8 +625,8 @@ func TestObjectService_GetType(t *testing.T) {
require.NoError(t, err)
require.Equal(t, mockedTypeId, objType.Id)
require.Equal(t, mockedTypeName, objType.Name)
- require.Equal(t, mockedTypeUniqueKey, objType.UniqueKey)
- require.Equal(t, mockedTypeIcon, objType.Icon)
+ require.Equal(t, mockedTypeKey, objType.Key)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedTypeIcon)}, objType.Icon)
require.Equal(t, model.ObjectTypeLayout_name[int32(model.ObjectType_basic)], objType.RecommendedLayout)
})
@@ -696,7 +708,7 @@ func TestObjectService_ListTemplates(t *testing.T) {
require.Len(t, templates, 1)
require.Equal(t, "template-1", templates[0].Id)
require.Equal(t, "Template Name", templates[0].Name)
- require.Equal(t, "📝", templates[0].Icon)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr("📝")}, templates[0].Icon)
require.Equal(t, 1, total)
require.False(t, hasMore)
})
@@ -750,13 +762,13 @@ func TestObjectService_GetTemplate(t *testing.T) {
}).Once()
// when
- template, err := fx.GetTemplate(ctx, mockedSpaceId, mockedObjectType, mockedTemplateId)
+ template, err := fx.GetTemplate(ctx, mockedSpaceId, mockedTypeId, mockedTemplateId)
// then
require.NoError(t, err)
require.Equal(t, mockedTemplateId, template.Id)
require.Equal(t, mockedTemplateName, template.Name)
- require.Equal(t, mockedTemplateIcon, template.Icon)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedTemplateIcon)}, template.Icon)
})
t.Run("template not found", func(t *testing.T) {
diff --git a/core/api/internal/search/handler.go b/core/api/internal/search/handler.go
index e3ffe62ed..9113b30e2 100644
--- a/core/api/internal/search/handler.go
+++ b/core/api/internal/search/handler.go
@@ -11,17 +11,19 @@ import (
// GlobalSearchHandler searches and retrieves objects across all spaces
//
-// @Summary Search objects across all spaces
-// @Tags search
-// @Accept json
-// @Produce json
-// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
-// @Param limit query int false "The number of items to return" default(100) maximum(1000)
-// @Param request body SearchRequest true "Search parameters"
-// @Success 200 {object} pagination.PaginatedResponse[object.Object] "List of objects"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /search [post]
+// @Summary Search objects across all spaces
+// @Description This endpoint executes a global search over every space the user has access to. It accepts pagination parameters (offset and limit) and a JSON body containing search criteria. The criteria include a search query string, an optional list of object types, and sort options (e.g. ascending/descending by creation, modification, or last opened dates). Internally, the endpoint aggregates results from each space, merges and sorts them (after last modified date by default), and returns a unified, paginated list of objects that match the search parameters.
+// @Tags search
+// @Accept json
+// @Produce json
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return" default(100) maximum(1000)
+// @Param request body SearchRequest true "Search parameters"
+// @Success 200 {object} pagination.PaginatedResponse[object.Object] "List of objects"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /search [post]
func GlobalSearchHandler(s *SearchService) gin.HandlerFunc {
return func(c *gin.Context) {
offset := c.GetInt("offset")
@@ -51,18 +53,20 @@ func GlobalSearchHandler(s *SearchService) gin.HandlerFunc {
// SearchHandler searches and retrieves objects within a space
//
-// @Summary Search objects within a space
-// @Tags search
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
-// @Param limit query int false "The number of items to return" default(100) maximum(1000)
-// @Param request body SearchRequest true "Search parameters"
-// @Success 200 {object} pagination.PaginatedResponse[object.Object] "List of objects"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/search [post]
+// @Summary Search objects within a space
+// @Description This endpoint performs a focused search within a single space (specified by the space_id path parameter). Like the global search, it accepts pagination parameters and a JSON payload containing the search query, object types, and sorting preferences. The search is limited to the provided space and returns a list of objects that match the query. This allows clients to implement space‑specific filtering without having to process extraneous results.
+// @Tags search
+// @Accept json
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return" default(100) maximum(1000)
+// @Param request body SearchRequest true "Search parameters"
+// @Success 200 {object} pagination.PaginatedResponse[object.Object] "List of objects"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/search [post]
func SearchHandler(s *SearchService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceID := c.Param("space_id")
diff --git a/core/api/internal/search/model.go b/core/api/internal/search/model.go
index f52cf59e4..8f15f6790 100644
--- a/core/api/internal/search/model.go
+++ b/core/api/internal/search/model.go
@@ -1,12 +1,28 @@
package search
+type SortDirection string
+
+const (
+ Asc SortDirection = "asc"
+ Desc SortDirection = "desc"
+)
+
+type SortProperty string
+
+const (
+ CreatedDate SortProperty = "created_date"
+ LastModifiedDate SortProperty = "last_modified_date"
+ LastOpenedDate SortProperty = "last_opened_date"
+ Name SortProperty = "name"
+)
+
type SearchRequest struct {
- Query string `json:"query"`
- Types []string `json:"types"`
- Sort SortOptions `json:"sort"`
+ Query string `json:"query" example:"test"` // The search term to look for in object names and snippets
+ Types []string `json:"types" example:"ot-page,ot-678043f0cda9133be777049f,bafyreightzrdts2ymxyaeyzspwdfo2juspyam76ewq6qq7ixnw3523gs7q"` // The types of objects to search for, specified by key or ID
+ Sort SortOptions `json:"sort"` // The sorting criteria and direction for the search results
}
type SortOptions struct {
- Direction string `json:"direction" enums:"asc,desc" default:"desc"`
- Timestamp string `json:"timestamp" enums:"created_date,last_modified_date,last_opened_date" default:"last_modified_date"`
+ Property SortProperty `json:"property" enums:"created_date,last_modified_date,last_opened_date,name" default:"last_modified_date"` // The property to sort the search results by
+ Direction SortDirection `json:"direction" enums:"asc,desc" default:"desc"` // The direction to sort the search results
}
diff --git a/core/api/internal/search/service.go b/core/api/internal/search/service.go
index 58c783ef3..b941e7c6c 100644
--- a/core/api/internal/search/service.go
+++ b/core/api/internal/search/service.go
@@ -6,12 +6,12 @@ import (
"sort"
"strings"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
"github.com/anyproto/anytype-heart/core/api/internal/object"
"github.com/anyproto/anytype-heart/core/api/internal/space"
"github.com/anyproto/anytype-heart/core/api/pagination"
"github.com/anyproto/anytype-heart/core/api/util"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
@@ -28,13 +28,13 @@ type Service interface {
}
type SearchService struct {
- mw service.ClientCommandsServer
+ mw apicore.ClientCommands
spaceService *space.SpaceService
objectService *object.ObjectService
AccountInfo *model.AccountInfo
}
-func NewService(mw service.ClientCommandsServer, spaceService *space.SpaceService, objectService *object.ObjectService) *SearchService {
+func NewService(mw apicore.ClientCommands, spaceService *space.SpaceService, objectService *object.ObjectService) *SearchService {
return &SearchService{mw: mw, spaceService: spaceService, objectService: objectService}
}
@@ -48,19 +48,31 @@ func (s *SearchService) GlobalSearch(ctx context.Context, request SearchRequest,
baseFilters := s.prepareBaseFilters()
queryFilters := s.prepareQueryFilter(request.Query)
sorts := s.prepareSorts(request.Sort)
- dateToSortAfter := sorts.RelationKey
+ if len(sorts) == 0 {
+ return nil, 0, false, errors.New("no sort criteria provided")
+ }
+ criterionToSortAfter := sorts[0].RelationKey
+
+ type sortRecord struct {
+ Id string
+ SpaceId string
+ numericSort float64
+ stringSort string
+ }
+ combinedRecords := make([]sortRecord, 0)
allResponses := make([]*pb.RpcObjectSearchResponse, 0, len(spaces))
for _, space := range spaces {
- // Resolve object type IDs per space, as they are unique per space
+ // Resolve template type and object type IDs per space, as they are unique per space
+ templateFilter := s.prepareTemplateFilter()
typeFilters := s.prepareObjectTypeFilters(space.Id, request.Types)
- filters := s.combineFilters(model.BlockContentDataviewFilter_And, baseFilters, queryFilters, typeFilters)
+ filters := s.combineFilters(model.BlockContentDataviewFilter_And, baseFilters, templateFilter, queryFilters, typeFilters)
objResp := s.mw.ObjectSearch(ctx, &pb.RpcObjectSearchRequest{
SpaceId: space.Id,
Filters: filters,
- Sorts: []*model.BlockContentDataviewSort{sorts},
- Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeySpaceId.String(), dateToSortAfter},
+ Sorts: sorts,
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeySpaceId.String(), criterionToSortAfter},
Limit: int32(offset + limit), // nolint: gosec
})
@@ -71,29 +83,35 @@ func (s *SearchService) GlobalSearch(ctx context.Context, request SearchRequest,
allResponses = append(allResponses, objResp)
}
- combinedRecords := make([]struct {
- Id string
- SpaceId string
- DateToSortAfter float64
- }, 0)
for _, objResp := range allResponses {
for _, record := range objResp.Records {
- combinedRecords = append(combinedRecords, struct {
- Id string
- SpaceId string
- DateToSortAfter float64
- }{
- Id: record.Fields[bundle.RelationKeyId.String()].GetStringValue(),
- SpaceId: record.Fields[bundle.RelationKeySpaceId.String()].GetStringValue(),
- DateToSortAfter: record.Fields[dateToSortAfter].GetNumberValue(),
- })
+ sr := sortRecord{
+ Id: record.Fields[bundle.RelationKeyId.String()].GetStringValue(),
+ SpaceId: record.Fields[bundle.RelationKeySpaceId.String()].GetStringValue(),
+ }
+ if criterionToSortAfter == bundle.RelationKeyName.String() {
+ sr.stringSort = record.Fields[criterionToSortAfter].GetStringValue()
+ } else {
+ sr.numericSort = record.Fields[criterionToSortAfter].GetNumberValue()
+ }
+ combinedRecords = append(combinedRecords, sr)
}
}
- // sort after posix last_modified_date to achieve descending sort order across all spaces
- sort.Slice(combinedRecords, func(i, j int) bool {
- return combinedRecords[i].DateToSortAfter > combinedRecords[j].DateToSortAfter
- })
+ sortFunc := func(i, j int) bool {
+ if criterionToSortAfter == bundle.RelationKeyName.String() {
+ if sorts[0].Type == model.BlockContentDataviewSort_Asc {
+ return combinedRecords[i].stringSort < combinedRecords[j].stringSort
+ }
+ return combinedRecords[i].stringSort > combinedRecords[j].stringSort
+ } else {
+ if sorts[0].Type == model.BlockContentDataviewSort_Asc {
+ return combinedRecords[i].numericSort < combinedRecords[j].numericSort
+ }
+ return combinedRecords[i].numericSort > combinedRecords[j].numericSort
+ }
+ }
+ sort.SliceStable(combinedRecords, sortFunc)
total = len(combinedRecords)
paginatedRecords, hasMore := pagination.Paginate(combinedRecords, offset, limit)
@@ -113,18 +131,22 @@ func (s *SearchService) GlobalSearch(ctx context.Context, request SearchRequest,
// Search retrieves a paginated list of objects from a specific space that match the search parameters.
func (s *SearchService) Search(ctx context.Context, spaceId string, request SearchRequest, offset int, limit int) (objects []object.Object, total int, hasMore bool, err error) {
baseFilters := s.prepareBaseFilters()
+ templateFilter := s.prepareTemplateFilter()
queryFilters := s.prepareQueryFilter(request.Query)
typeFilters := s.prepareObjectTypeFilters(spaceId, request.Types)
- filters := s.combineFilters(model.BlockContentDataviewFilter_And, baseFilters, queryFilters, typeFilters)
+ filters := s.combineFilters(model.BlockContentDataviewFilter_And, baseFilters, templateFilter, queryFilters, typeFilters)
sorts := s.prepareSorts(request.Sort)
- dateToSortAfter := sorts.RelationKey
+ if len(sorts) == 0 {
+ return nil, 0, false, errors.New("no sort criteria provided")
+ }
+ criterionToSortAfter := sorts[0].RelationKey
resp := s.mw.ObjectSearch(ctx, &pb.RpcObjectSearchRequest{
SpaceId: spaceId,
Filters: filters,
- Sorts: []*model.BlockContentDataviewSort{sorts},
- Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeySpaceId.String(), dateToSortAfter},
+ Sorts: sorts,
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeySpaceId.String(), criterionToSortAfter},
})
if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
@@ -172,7 +194,7 @@ func (s *SearchService) prepareBaseFilters() []*model.BlockContentDataviewFilter
return []*model.BlockContentDataviewFilter{
{
Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyLayout.String(),
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_In,
Value: pbtypes.IntList([]int{
int(model.ObjectType_basic),
@@ -194,6 +216,18 @@ func (s *SearchService) prepareBaseFilters() []*model.BlockContentDataviewFilter
}
}
+// prepareTemplateFilter returns a filter that excludes templates from the search results.
+func (s *SearchService) prepareTemplateFilter() []*model.BlockContentDataviewFilter {
+ return []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: "type.uniqueKey",
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.String("ot-template"),
+ },
+ }
+}
+
// prepareQueryFilter combines object name and snippet filters with an OR condition.
func (s *SearchService) prepareQueryFilter(searchQuery string) []*model.BlockContentDataviewFilter {
if searchQuery == "" {
@@ -262,38 +296,66 @@ func (s *SearchService) prepareObjectTypeFilters(spaceId string, objectTypes []s
}
// prepareSorts returns a sort filter based on the given sort parameters
-func (s *SearchService) prepareSorts(sort SortOptions) *model.BlockContentDataviewSort {
- return &model.BlockContentDataviewSort{
- RelationKey: s.getSortRelationKey(sort.Timestamp),
+func (s *SearchService) prepareSorts(sort SortOptions) []*model.BlockContentDataviewSort {
+ primarySort := &model.BlockContentDataviewSort{
+ RelationKey: s.getSortRelationKey(sort.Property),
Type: s.getSortDirection(sort.Direction),
- Format: model.RelationFormat_date,
+ Format: s.getSortFormat(sort.Property),
IncludeTime: true,
EmptyPlacement: model.BlockContentDataviewSort_NotSpecified,
}
+
+ // last_opened_date possibly is empty, wherefore we sort by last_modified_date as secondary criterion
+ if primarySort.RelationKey == bundle.RelationKeyLastOpenedDate.String() {
+ secondarySort := &model.BlockContentDataviewSort{
+ RelationKey: bundle.RelationKeyLastModifiedDate.String(),
+ Type: s.getSortDirection(sort.Direction),
+ Format: model.RelationFormat_date,
+ IncludeTime: true,
+ EmptyPlacement: model.BlockContentDataviewSort_NotSpecified,
+ }
+ return []*model.BlockContentDataviewSort{primarySort, secondarySort}
+ }
+
+ return []*model.BlockContentDataviewSort{primarySort}
}
// getSortRelationKey returns the relation key for the given sort timestamp
-func (s *SearchService) getSortRelationKey(timestamp string) string {
+func (s *SearchService) getSortRelationKey(timestamp SortProperty) string {
switch timestamp {
- case "created_date":
+ case CreatedDate:
return bundle.RelationKeyCreatedDate.String()
- case "last_modified_date":
+ case LastModifiedDate:
return bundle.RelationKeyLastModifiedDate.String()
- case "last_opened_date":
+ case LastOpenedDate:
return bundle.RelationKeyLastOpenedDate.String()
+ case Name:
+ return bundle.RelationKeyName.String()
default:
return bundle.RelationKeyLastModifiedDate.String()
}
}
// getSortDirection returns the sort direction for the given string
-func (s *SearchService) getSortDirection(direction string) model.BlockContentDataviewSortType {
+func (s *SearchService) getSortDirection(direction SortDirection) model.BlockContentDataviewSortType {
switch direction {
- case "asc":
+ case Asc:
return model.BlockContentDataviewSort_Asc
- case "desc":
+ case Desc:
return model.BlockContentDataviewSort_Desc
default:
return model.BlockContentDataviewSort_Desc
}
}
+
+// getSortFormat returns the sort format for the given timestamp
+func (s *SearchService) getSortFormat(timestamp SortProperty) model.RelationFormat {
+ switch timestamp {
+ case CreatedDate, LastModifiedDate, LastOpenedDate:
+ return model.RelationFormat_date
+ case Name:
+ return model.RelationFormat_longtext
+ default:
+ return model.RelationFormat_date
+ }
+}
diff --git a/core/api/internal/search/service_test.go b/core/api/internal/search/service_test.go
index 1f248690f..e56f6d508 100644
--- a/core/api/internal/search/service_test.go
+++ b/core/api/internal/search/service_test.go
@@ -8,54 +8,49 @@ import (
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require"
+ "github.com/anyproto/anytype-heart/core/api/apicore/mock_apicore"
"github.com/anyproto/anytype-heart/core/api/internal/object"
"github.com/anyproto/anytype-heart/core/api/internal/space"
+ "github.com/anyproto/anytype-heart/core/api/util"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service/mock_service"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
const (
- offset = 0
- limit = 100
- techSpaceId = "tech-space-id"
- gatewayUrl = "http://localhost:31006"
- mockedSpaceId = "mocked-space-id"
- mockedSearchTerm = "mocked-search-term"
- mockedObjectId = "mocked-object-id"
- mockedObjectName = "mocked-object-name"
- mockedRootId = "mocked-root-id"
- mockedParticipantId = "mocked-participant-id"
- mockedType = "mocked-type"
- mockedTagId1 = "mocked-tag-id-1"
- mockedTagValue1 = "mocked-tag-value-1"
- mockedTagColor1 = "mocked-tag-color-1"
- mockedTagId2 = "mocked-tag-id-2"
- mockedTagValue2 = "mocked-tag-value-2"
- mockedTagColor2 = "mocked-tag-color-2"
- mockedObjectTypeName = "mocked-object-type-name"
- mockedParticipantName = "mocked-participant-name"
- mockedParticipantIcon = "mocked-participant-icon"
- mockedParticipantImage = "mocked-participant-image"
- mockedParticipantIdentity = "mocked-participant-identity"
- mockedParticipantGlobalName = "mocked-participant-global-name"
+ offset = 0
+ limit = 100
+ techSpaceId = "tech-space-id"
+ gatewayUrl = "http://localhost:31006"
+ mockedSpaceId = "mocked-space-id"
+ mockedSearchTerm = "mocked-search-term"
+ mockedObjectId = "mocked-object-id"
+ mockedObjectName = "mocked-object-name"
+ mockedObjectIcon = "🌐"
+ mockedParticipantId = "mocked-participant-id"
+ mockedType = "mocked-type"
+ mockedTagId1 = "mocked-tag-id-1"
+ mockedTagValue1 = "mocked-tag-value-1"
+ mockedTagColor1 = "mocked-tag-color-1"
+ mockedTagId2 = "mocked-tag-id-2"
+ mockedTagValue2 = "mocked-tag-value-2"
+ mockedTagColor2 = "mocked-tag-color-2"
)
type fixture struct {
*SearchService
- mwMock *mock_service.MockClientCommandsServer
+ mwMock *mock_apicore.MockClientCommands
}
func newFixture(t *testing.T) *fixture {
- mw := mock_service.NewMockClientCommandsServer(t)
+ mwMock := mock_apicore.NewMockClientCommands(t)
- spaceService := space.NewService(mw)
+ spaceService := space.NewService(mwMock)
spaceService.AccountInfo = &model.AccountInfo{TechSpaceId: techSpaceId, GatewayUrl: gatewayUrl}
- objectService := object.NewService(mw, spaceService)
+ objectService := object.NewService(mwMock, spaceService)
objectService.AccountInfo = &model.AccountInfo{TechSpaceId: techSpaceId}
- searchService := NewService(mw, spaceService, objectService)
+ searchService := NewService(mwMock, spaceService, objectService)
searchService.AccountInfo = &model.AccountInfo{
TechSpaceId: techSpaceId,
GatewayUrl: gatewayUrl,
@@ -63,7 +58,7 @@ func newFixture(t *testing.T) *fixture {
return &fixture{
SearchService: searchService,
- mwMock: mw,
+ mwMock: mwMock,
}
}
@@ -79,7 +74,7 @@ func TestSearchService_GlobalSearch(t *testing.T) {
Filters: []*model.BlockContentDataviewFilter{
{
Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyLayout.String(),
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_Equal,
Value: pbtypes.Int64(int64(model.ObjectType_spaceView)),
},
@@ -98,7 +93,7 @@ func TestSearchService_GlobalSearch(t *testing.T) {
EmptyPlacement: model.BlockContentDataviewSort_End,
},
},
- Keys: []string{bundle.RelationKeyTargetSpaceId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIconImage.String()},
+ Keys: []string{bundle.RelationKeyTargetSpaceId.String()},
}).Return(&pb.RpcObjectSearchResponse{
Records: []*types.Struct{
{
@@ -112,15 +107,32 @@ func TestSearchService_GlobalSearch(t *testing.T) {
// Mock workspace opening
fx.mwMock.On("WorkspaceOpen", mock.Anything, &pb.RpcWorkspaceOpenRequest{
- SpaceId: mockedSpaceId,
- WithChat: true,
+ SpaceId: mockedSpaceId,
}).Return(&pb.RpcWorkspaceOpenResponse{
Info: &model.AccountInfo{
- TechSpaceId: mockedSpaceId,
+ WorkspaceObjectId: "workspace-object-id",
},
Error: &pb.RpcWorkspaceOpenResponseError{Code: pb.RpcWorkspaceOpenResponseError_NULL},
}).Once()
+ // Mock object show of workspace
+ fx.mwMock.On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: "workspace-object-id",
+ }).Return(&pb.RpcObjectShowResponse{
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyName.String(): pbtypes.String("Space Name"),
+ },
+ },
+ },
+ },
+ },
+ }, nil).Once()
+
// Mock objects in space
fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
SpaceId: mockedSpaceId,
@@ -130,7 +142,7 @@ func TestSearchService_GlobalSearch(t *testing.T) {
NestedFilters: []*model.BlockContentDataviewFilter{
{
Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyLayout.String(),
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_In,
Value: pbtypes.IntList([]int{
int(model.ObjectType_basic),
@@ -149,6 +161,12 @@ func TestSearchService_GlobalSearch(t *testing.T) {
Condition: model.BlockContentDataviewFilter_NotEqual,
Value: pbtypes.Bool(true),
},
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: "type.uniqueKey",
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.String("ot-template"),
+ },
{
Operator: model.BlockContentDataviewFilter_Or,
NestedFilters: []*model.BlockContentDataviewFilter{
@@ -197,10 +215,10 @@ func TestSearchService_GlobalSearch(t *testing.T) {
ObjectId: mockedObjectId,
}).Return(&pb.RpcObjectShowResponse{
ObjectView: &model.ObjectView{
- RootId: mockedRootId,
+ RootId: mockedObjectId,
Blocks: []*model.Block{
{
- Id: mockedRootId,
+ Id: mockedObjectId,
Restrictions: &model.BlockRestrictions{
Read: false,
Edit: false,
@@ -233,13 +251,13 @@ func TestSearchService_GlobalSearch(t *testing.T) {
},
Details: []*model.ObjectViewDetailsSet{
{
- Id: mockedRootId,
+ Id: mockedObjectId,
Details: &types.Struct{
Fields: map[string]*types.Value{
bundle.RelationKeyId.String(): pbtypes.String(mockedObjectId),
bundle.RelationKeyName.String(): pbtypes.String(mockedObjectName),
- bundle.RelationKeyLayout.String(): pbtypes.Int64(int64(model.ObjectType_basic)),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String("🌐"),
+ bundle.RelationKeyResolvedLayout.String(): pbtypes.Int64(int64(model.ObjectType_basic)),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedObjectIcon),
bundle.RelationKeyLastModifiedDate.String(): pbtypes.Float64(999999),
bundle.RelationKeyLastModifiedBy.String(): pbtypes.String(mockedParticipantId),
bundle.RelationKeyCreatedDate.String(): pbtypes.Float64(888888),
@@ -276,108 +294,114 @@ func TestSearchService_GlobalSearch(t *testing.T) {
},
},
},
+ {
+ Id: mockedType,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String(mockedType),
+ },
+ },
+ },
+ },
+ RelationLinks: []*model.RelationLink{
+ {
+ Key: bundle.RelationKeyLastModifiedDate.String(),
+ Format: model.RelationFormat_date,
+ },
+ {
+ Key: bundle.RelationKeyLastModifiedBy.String(),
+ Format: model.RelationFormat_object,
+ },
+ {
+ Key: bundle.RelationKeyCreatedDate.String(),
+ Format: model.RelationFormat_date,
+ },
+ {
+ Key: bundle.RelationKeyCreator.String(),
+ Format: model.RelationFormat_object,
+ },
+ {
+ Key: bundle.RelationKeyTag.String(),
+ Format: model.RelationFormat_tag,
+ },
},
},
+
Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
}, nil).Once()
- // Mock type resolution
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyId.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(mockedType),
- },
- },
- Keys: []string{bundle.RelationKeyName.String()},
- }).Return(&pb.RpcObjectSearchResponse{
- Records: []*types.Struct{
- {
- Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String(mockedObjectTypeName),
+ // Mock tag-1 open
+ fx.mwMock.On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedTagId1,
+ }).Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyName.String(): pbtypes.String(mockedTagValue1),
+ bundle.RelationKeyRelationOptionColor.String(): pbtypes.String(mockedTagColor1),
+ },
+ },
},
},
},
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- }).Once()
+ }, nil).Once()
- // Mock participant details
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyId.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(mockedParticipantId),
- },
- },
- Keys: []string{bundle.RelationKeyId.String(),
- bundle.RelationKeyName.String(),
- bundle.RelationKeyIconEmoji.String(),
- bundle.RelationKeyIconImage.String(),
- bundle.RelationKeyIdentity.String(),
- bundle.RelationKeyGlobalName.String(),
- bundle.RelationKeyParticipantPermissions.String(),
- },
- }).Return(&pb.RpcObjectSearchResponse{
- Records: []*types.Struct{
- {
- Fields: map[string]*types.Value{
- bundle.RelationKeyId.String(): pbtypes.String(mockedParticipantId),
- bundle.RelationKeyName.String(): pbtypes.String(mockedParticipantName),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String(mockedParticipantIcon),
- bundle.RelationKeyIconImage.String(): pbtypes.String(mockedParticipantImage),
- bundle.RelationKeyIdentity.String(): pbtypes.String(mockedParticipantIdentity),
- bundle.RelationKeyGlobalName.String(): pbtypes.String(mockedParticipantGlobalName),
- bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ // Mock tag-2 open
+ fx.mwMock.On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: mockedSpaceId,
+ ObjectId: mockedTagId2,
+ }).Return(&pb.RpcObjectShowResponse{
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyName.String(): pbtypes.String(mockedTagValue2),
+ bundle.RelationKeyRelationOptionColor.String(): pbtypes.String(mockedTagColor2),
+ },
+ },
},
},
},
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- }).Twice()
+ }, nil).Once()
// when
- objects, total, hasMore, err := fx.GlobalSearch(ctx, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Direction: "desc", Timestamp: "last_modified_date"}}, offset, limit)
+ objects, total, hasMore, err := fx.GlobalSearch(ctx, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Property: LastModifiedDate, Direction: Desc}}, offset, limit)
// then
require.NoError(t, err)
require.Len(t, objects, 1)
- require.Equal(t, mockedObjectTypeName, objects[0].Type)
- require.Equal(t, mockedSpaceId, objects[0].SpaceId)
- require.Equal(t, mockedObjectName, objects[0].Name)
require.Equal(t, mockedObjectId, objects[0].Id)
+ require.Equal(t, mockedObjectName, objects[0].Name)
+ require.Equal(t, mockedType, objects[0].Type.Id)
+ require.Equal(t, mockedSpaceId, objects[0].SpaceId)
require.Equal(t, model.ObjectTypeLayout_name[int32(model.ObjectType_basic)], objects[0].Layout)
- require.Equal(t, "🌐", objects[0].Icon)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr(mockedObjectIcon)}, objects[0].Icon)
require.Equal(t, "This is a sample text block", objects[0].Blocks[2].Text.Text)
// check details
- for _, detail := range objects[0].Details {
- if detail.Id == "created_date" {
- require.Equal(t, "1970-01-11T06:54:48Z", detail.Details["created_date"])
- } else if detail.Id == "last_modified_date" {
- require.Equal(t, "1970-01-12T13:46:39Z", detail.Details["last_modified_date"])
- } else if detail.Id == "created_by" {
- require.Equal(t, mockedParticipantId, detail.Details["details"].(space.Member).Id)
- require.Equal(t, mockedParticipantName, detail.Details["details"].(space.Member).Name)
- require.Equal(t, gatewayUrl+"/image/"+mockedParticipantImage, detail.Details["details"].(space.Member).Icon)
- require.Equal(t, mockedParticipantIdentity, detail.Details["details"].(space.Member).Identity)
- require.Equal(t, mockedParticipantGlobalName, detail.Details["details"].(space.Member).GlobalName)
- } else if detail.Id == "last_modified_by" {
- require.Equal(t, mockedParticipantId, detail.Details["details"].(space.Member).Id)
+ for _, property := range objects[0].Properties {
+ if property.Id == "created_date" {
+ require.Equal(t, "1970-01-11T06:54:48Z", *property.Date)
+ } else if property.Id == "last_modified_date" {
+ require.Equal(t, "1970-01-12T13:46:39Z", *property.Date)
+ } else if property.Id == "created_by" {
+ require.Equal(t, []string{mockedParticipantId}, property.Object)
+ } else if property.Id == "last_modified_by" {
+ require.Equal(t, []string{mockedParticipantId}, property.Object)
}
}
// check tags
tags := []object.Tag{}
- for _, detail := range objects[0].Details {
- if tagList, ok := detail.Details["tags"].([]object.Tag); ok {
- for _, tag := range tagList {
- tags = append(tags, tag)
- }
+ for _, detail := range objects[0].Properties {
+ for _, tag := range detail.MultiSelect {
+ tags = append(tags, tag)
}
}
require.Len(t, tags, 2)
@@ -391,6 +415,44 @@ func TestSearchService_GlobalSearch(t *testing.T) {
require.Equal(t, 1, total)
require.False(t, hasMore)
})
+
+ t.Run("no objects found globally", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+ fx.mwMock.On("ObjectSearch", mock.Anything, mock.Anything).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{},
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ // when
+ objects, total, hasMore, err := fx.GlobalSearch(ctx, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Property: LastModifiedDate, Direction: Desc}}, offset, limit)
+
+ // then
+ require.NoError(t, err)
+ require.Len(t, objects, 0)
+ require.Equal(t, 0, total)
+ require.False(t, hasMore)
+ })
+
+ t.Run("error during global search", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, mock.Anything).Return(&pb.RpcObjectSearchResponse{
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_UNKNOWN_ERROR},
+ }).Once()
+
+ // when
+ objects, total, hasMore, err := fx.GlobalSearch(ctx, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Property: LastModifiedDate, Direction: Desc}}, offset, limit)
+
+ // then
+ require.Error(t, err)
+ require.Empty(t, objects)
+ require.Equal(t, 0, total)
+ require.False(t, hasMore)
+ })
}
func TestSearchService_Search(t *testing.T) {
@@ -408,7 +470,7 @@ func TestSearchService_Search(t *testing.T) {
NestedFilters: []*model.BlockContentDataviewFilter{
{
Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyLayout.String(),
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_In,
Value: pbtypes.IntList([]int{
int(model.ObjectType_basic),
@@ -427,6 +489,12 @@ func TestSearchService_Search(t *testing.T) {
Condition: model.BlockContentDataviewFilter_NotEqual,
Value: pbtypes.Bool(true),
},
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: "type.uniqueKey",
+ Condition: model.BlockContentDataviewFilter_NotEqual,
+ Value: pbtypes.String("ot-template"),
+ },
{
Operator: model.BlockContentDataviewFilter_Or,
NestedFilters: []*model.BlockContentDataviewFilter{
@@ -474,80 +542,43 @@ func TestSearchService_Search(t *testing.T) {
ObjectId: mockedObjectId,
}).Return(&pb.RpcObjectShowResponse{
ObjectView: &model.ObjectView{
- RootId: mockedRootId,
+ RootId: mockedObjectId,
Details: []*model.ObjectViewDetailsSet{
{
+ Id: mockedObjectId,
Details: &types.Struct{
Fields: map[string]*types.Value{
bundle.RelationKeyId.String(): pbtypes.String(mockedObjectId),
bundle.RelationKeyName.String(): pbtypes.String(mockedObjectName),
- bundle.RelationKeyLayout.String(): pbtypes.Int64(int64(model.ObjectType_basic)),
+ bundle.RelationKeyResolvedLayout.String(): pbtypes.Int64(int64(model.ObjectType_basic)),
bundle.RelationKeyLastModifiedDate.String(): pbtypes.Float64(999999),
bundle.RelationKeySpaceId.String(): pbtypes.String(mockedSpaceId),
bundle.RelationKeyType.String(): pbtypes.String(mockedType),
},
},
},
+ {
+ Id: mockedType,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String(mockedType),
+ },
+ },
+ },
},
},
Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
}).Once()
- // Mock type resolution
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyId.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(mockedType),
- },
- },
- Keys: []string{bundle.RelationKeyName.String()},
- }).Return(&pb.RpcObjectSearchResponse{
- Records: []*types.Struct{
- {
- Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String(mockedObjectTypeName),
- },
- },
- },
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- }).Once()
-
- // Mock participant details
- fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
- SpaceId: mockedSpaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyId.String(),
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(""),
- },
- },
- Keys: []string{bundle.RelationKeyId.String(),
- bundle.RelationKeyName.String(),
- bundle.RelationKeyIconEmoji.String(),
- bundle.RelationKeyIconImage.String(),
- bundle.RelationKeyIdentity.String(),
- bundle.RelationKeyGlobalName.String(),
- bundle.RelationKeyParticipantPermissions.String(),
- },
- }).Return(&pb.RpcObjectSearchResponse{
- Records: []*types.Struct{},
- Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
- }).Twice()
-
// when
- objects, total, hasMore, err := fx.Search(ctx, mockedSpaceId, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Direction: "desc", Timestamp: "last_modified_date"}}, offset, limit)
+ objects, total, hasMore, err := fx.Search(ctx, mockedSpaceId, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Property: LastModifiedDate, Direction: Desc}}, offset, limit)
// then
require.NoError(t, err)
require.Len(t, objects, 1)
- require.Equal(t, mockedObjectName, objects[0].Name)
require.Equal(t, mockedObjectId, objects[0].Id)
+ require.Equal(t, mockedObjectName, objects[0].Name)
+ require.Equal(t, mockedType, objects[0].Type.Id)
require.Equal(t, mockedSpaceId, objects[0].SpaceId)
require.Equal(t, model.ObjectTypeLayout_name[int32(model.ObjectType_basic)], objects[0].Layout)
@@ -559,14 +590,13 @@ func TestSearchService_Search(t *testing.T) {
// given
ctx := context.Background()
fx := newFixture(t)
-
fx.mwMock.On("ObjectSearch", mock.Anything, mock.Anything).Return(&pb.RpcObjectSearchResponse{
Records: []*types.Struct{},
Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
}).Once()
// when
- objects, total, hasMore, err := fx.Search(ctx, mockedSpaceId, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Direction: "desc", Timestamp: "last_modified_date"}}, offset, limit)
+ objects, total, hasMore, err := fx.Search(ctx, mockedSpaceId, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Property: LastModifiedDate, Direction: Desc}}, offset, limit)
// then
require.NoError(t, err)
@@ -585,7 +615,7 @@ func TestSearchService_Search(t *testing.T) {
}).Once()
// when
- objects, total, hasMore, err := fx.Search(ctx, mockedSpaceId, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Direction: "desc", Timestamp: "last_modified_date"}}, offset, limit)
+ objects, total, hasMore, err := fx.Search(ctx, mockedSpaceId, SearchRequest{Query: mockedSearchTerm, Types: []string{}, Sort: SortOptions{Property: LastModifiedDate, Direction: Desc}}, offset, limit)
// then
require.Error(t, err)
diff --git a/core/api/internal/space/handler.go b/core/api/internal/space/handler.go
index 2a6ca043d..4b8871ca9 100644
--- a/core/api/internal/space/handler.go
+++ b/core/api/internal/space/handler.go
@@ -11,16 +11,17 @@ import (
// GetSpacesHandler retrieves a list of spaces
//
-// @Summary List spaces
-// @Tags spaces
-// @Accept json
-// @Produce json
-// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
-// @Param limit query int false "The number of items to return" default(100) maximum(1000)
-// @Success 200 {object} pagination.PaginatedResponse[Space] "List of spaces"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces [get]
+// @Summary List spaces
+// @Description Retrieves a paginated list of all spaces that are accessible by the authenticated user. Each space record contains detailed information such as the space ID, name, icon (derived either from an emoji or image URL), and additional metadata. This endpoint is key to displaying a user’s workspaces.
+// @Tags spaces
+// @Produce json
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return" default(100) maximum(1000)
+// @Success 200 {object} pagination.PaginatedResponse[Space] "List of spaces"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces [get]
func GetSpacesHandler(s *SpaceService) gin.HandlerFunc {
return func(c *gin.Context) {
offset := c.GetInt("offset")
@@ -30,6 +31,7 @@ func GetSpacesHandler(s *SpaceService) gin.HandlerFunc {
code := util.MapErrorCode(err,
util.ErrToCode(ErrFailedListSpaces, http.StatusInternalServerError),
util.ErrToCode(ErrFailedOpenWorkspace, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedOpenSpace, http.StatusInternalServerError),
)
if code != http.StatusOK {
@@ -42,30 +44,28 @@ func GetSpacesHandler(s *SpaceService) gin.HandlerFunc {
}
}
-// CreateSpaceHandler creates a new space
+// GetSpaceHandler retrieves a space
//
-// @Summary Create space
-// @Tags spaces
-// @Accept json
-// @Produce json
-// @Param name body CreateSpaceRequest true "Space to create"
-// @Success 200 {object} CreateSpaceResponse "Space created successfully"
-// @Failure 400 {object} util.ValidationError "Bad request"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces [post]
-func CreateSpaceHandler(s *SpaceService) gin.HandlerFunc {
+// @Summary Get space
+// @Description Fetches full details about a single space identified by its space ID. The response includes metadata such as the space name, icon, and various workspace IDs (home, archive, profile, etc.). This detailed view supports use cases such as displaying space-specific settings.
+// @Tags spaces
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Success 200 {object} SpaceResponse "Space"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Space not found"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id} [get]
+func GetSpaceHandler(s *SpaceService) gin.HandlerFunc {
return func(c *gin.Context) {
- nameRequest := CreateSpaceRequest{}
- if err := c.BindJSON(&nameRequest); err != nil {
- apiErr := util.CodeToAPIError(http.StatusBadRequest, err.Error())
- c.JSON(http.StatusBadRequest, apiErr)
- return
- }
+ spaceId := c.Param("space_id")
- space, err := s.CreateSpace(c.Request.Context(), nameRequest.Name)
+ space, err := s.GetSpace(c.Request.Context(), spaceId)
code := util.MapErrorCode(err,
- util.ErrToCode(ErrFailedCreateSpace, http.StatusInternalServerError),
+ util.ErrToCode(ErrWorkspaceNotFound, http.StatusNotFound),
+ util.ErrToCode(ErrFailedOpenWorkspace, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedOpenSpace, http.StatusInternalServerError),
)
if code != http.StatusOK {
@@ -74,23 +74,66 @@ func CreateSpaceHandler(s *SpaceService) gin.HandlerFunc {
return
}
- c.JSON(http.StatusOK, CreateSpaceResponse{Space: space})
+ c.JSON(http.StatusOK, SpaceResponse{Space: space})
+ }
+}
+
+// CreateSpaceHandler creates a new space
+//
+// @Summary Create space
+// @Description Creates a new workspace (or space) based on a supplied name in the JSON request body. The endpoint is subject to rate limiting and automatically applies default configurations such as generating a random icon and initializing the workspace with default settings (for example, a default dashboard or home page). On success, the new space’s full metadata is returned, enabling the client to immediately switch context to the new space.
+// @Tags spaces
+// @Accept json
+// @Produce json
+// @Param name body CreateSpaceRequest true "Space to create"
+// @Success 200 {object} SpaceResponse "Space created successfully"
+// @Failure 400 {object} util.ValidationError "Bad request"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 423 {object} util.RateLimitError "Rate limit exceeded"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces [post]
+func CreateSpaceHandler(s *SpaceService) gin.HandlerFunc {
+ return func(c *gin.Context) {
+ var req CreateSpaceRequest
+ if err := c.BindJSON(&req); err != nil {
+ apiErr := util.CodeToAPIError(http.StatusBadRequest, err.Error())
+ c.JSON(http.StatusBadRequest, apiErr)
+ return
+ }
+
+ space, err := s.CreateSpace(c.Request.Context(), req)
+ code := util.MapErrorCode(err,
+ util.ErrToCode(ErrFailedCreateSpace, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedSetSpaceInfo, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedOpenWorkspace, http.StatusInternalServerError),
+ util.ErrToCode(ErrFailedOpenSpace, http.StatusInternalServerError),
+ )
+
+ if code != http.StatusOK {
+ apiErr := util.CodeToAPIError(code, err.Error())
+ c.JSON(code, apiErr)
+ return
+ }
+
+ c.JSON(http.StatusOK, SpaceResponse{Space: space})
}
}
// GetMembersHandler retrieves a list of members in a space
//
-// @Summary List members
-// @Tags spaces
-// @Accept json
-// @Produce json
-// @Param space_id path string true "Space ID"
-// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
-// @Param limit query int false "The number of items to return" default(100) maximum(1000)
-// @Success 200 {object} pagination.PaginatedResponse[Member] "List of members"
-// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
-// @Failure 500 {object} util.ServerError "Internal server error"
-// @Router /spaces/{space_id}/members [get]
+// @Summary List members
+// @Description Returns a paginated list of members belonging to the specified space. Each member record includes the member’s profile ID, name, icon (which may be derived from an emoji or image), network identity, global name, status (e.g. joining, active) and role (e.g. Viewer, Editor, Owner). This endpoint supports collaborative features by allowing clients to show who is in a space and manage access rights.
+// @Tags members
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param offset query int false "The number of items to skip before starting to collect the result set" default(0)
+// @Param limit query int false "The number of items to return" default(100) maximum(1000)
+// @Success 200 {object} pagination.PaginatedResponse[Member] "List of members"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/members [get]
func GetMembersHandler(s *SpaceService) gin.HandlerFunc {
return func(c *gin.Context) {
spaceId := c.Param("space_id")
@@ -111,3 +154,38 @@ func GetMembersHandler(s *SpaceService) gin.HandlerFunc {
pagination.RespondWithPagination(c, http.StatusOK, members, total, offset, limit, hasMore)
}
}
+
+// GetMemberHandler retrieves a member in a space
+//
+// @Summary Get member
+// @Description Fetches detailed information about a single member within a space. The endpoint returns the member’s identifier, name, icon, identity, global name, status and role. The member_id path parameter can be provided as either the member's ID (starting with `_participant`) or the member's identity. This is useful for user profile pages, permission management, and displaying member-specific information in collaborative environments.
+// @Tags members
+// @Produce json
+// @Param space_id path string true "Space ID"
+// @Param member_id path string true "Member ID or Identity"
+// @Success 200 {object} MemberResponse "Member"
+// @Failure 401 {object} util.UnauthorizedError "Unauthorized"
+// @Failure 404 {object} util.NotFoundError "Member not found"
+// @Failure 500 {object} util.ServerError "Internal server error"
+// @Security bearerauth
+// @Router /spaces/{space_id}/members/{member_id} [get]
+func GetMemberHandler(s *SpaceService) gin.HandlerFunc {
+ return func(c *gin.Context) {
+ spaceId := c.Param("space_id")
+ memberId := c.Param("member_id")
+
+ member, err := s.GetMember(c.Request.Context(), spaceId, memberId)
+ code := util.MapErrorCode(err,
+ util.ErrToCode(ErrMemberNotFound, http.StatusNotFound),
+ util.ErrToCode(ErrFailedGetMember, http.StatusInternalServerError),
+ )
+
+ if code != http.StatusOK {
+ apiErr := util.CodeToAPIError(code, err.Error())
+ c.JSON(code, apiErr)
+ return
+ }
+
+ c.JSON(http.StatusOK, MemberResponse{Member: member})
+ }
+}
diff --git a/core/api/internal/space/model.go b/core/api/internal/space/model.go
index d13951c3f..7bdb09494 100644
--- a/core/api/internal/space/model.go
+++ b/core/api/internal/space/model.go
@@ -1,41 +1,44 @@
package space
-type CreateSpaceRequest struct {
- Name string `json:"name" example:"New Space"`
+import (
+ "github.com/anyproto/anytype-heart/core/api/util"
+)
+
+type SpaceResponse struct {
+ Space Space `json:"space"` // The space
}
-type CreateSpaceResponse struct {
- Space Space `json:"space"`
+type CreateSpaceRequest struct {
+ Name string `json:"name" example:"New Space"` // The name of the space
+ Description string `json:"description" example:"The local-first wiki"` // The description of the space
}
type Space struct {
- Type string `json:"type" example:"space"`
- Id string `json:"id" example:"bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1"`
- Name string `json:"name" example:"Space Name"`
- Icon string `json:"icon" example:"http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay"`
- HomeObjectId string `json:"home_object_id" example:"bafyreie4qcl3wczb4cw5hrfyycikhjyh6oljdis3ewqrk5boaav3sbwqya"`
- ArchiveObjectId string `json:"archive_object_id" example:"bafyreialsgoyflf3etjm3parzurivyaukzivwortf32b4twnlwpwocsrri"`
- ProfileObjectId string `json:"profile_object_id" example:"bafyreiaxhwreshjqwndpwtdsu4mtihaqhhmlygqnyqpfyfwlqfq3rm3gw4"`
- MarketplaceWorkspaceId string `json:"marketplace_workspace_id" example:"_anytype_marketplace"`
- WorkspaceObjectId string `json:"workspace_object_id" example:"bafyreiapey2g6e6za4zfxvlgwdy4hbbfu676gmwrhnqvjbxvrchr7elr3y"`
- DeviceId string `json:"device_id" example:"12D3KooWGZMJ4kQVyQVXaj7gJPZr3RZ2nvd9M2Eq2pprEoPih9WF"`
- AccountSpaceId string `json:"account_space_id" example:"bafyreihpd2knon5wbljhtfeg3fcqtg3i2pomhhnigui6lrjmzcjzep7gcy.23me69r569oi1"`
- WidgetsId string `json:"widgets_id" example:"bafyreialj7pceh53mifm5dixlho47ke4qjmsn2uh4wsjf7xq2pnlo5xfva"`
- SpaceViewId string `json:"space_view_id" example:"bafyreigzv3vq7qwlrsin6njoduq727ssnhwd6bgyfj6nm4hv3pxoc2rxhy"`
- TechSpaceId string `json:"tech_space_id" example:"bafyreif4xuwncrjl6jajt4zrrfnylpki476nv2w64yf42ovt7gia7oypii.23me69r569oi1"`
- GatewayUrl string `json:"gateway_url" example:"http://127.0.0.1:31006"`
- LocalStoragePath string `json:"local_storage_path" example:"/Users/johndoe/Library/Application Support/Anytype/data/AAHTtt1wuQEnaYBNZ2Cyfcvs6DqPqxgn8VXDVk4avsUkMuha"`
- Timezone string `json:"timezone" example:""`
- AnalyticsId string `json:"analytics_id" example:"624aecdd-4797-4611-9d61-a2ae5f53cf1c"`
- NetworkId string `json:"network_id" example:"N83gJpVd9MuNRZAuJLZ7LiMntTThhPc6DtzWWVjb1M3PouVU"`
+ Object string `json:"object" example:"space"` // The data model of the object
+ Id string `json:"id" example:"bafyreigyfkt6rbv24sbv5aq2hko3bhmv5xxlf22b4bypdu6j7hnphm3psq.23me69r569oi1"` // The id of the space
+ Name string `json:"name" example:"My Space"` // The name of the space
+ Icon util.Icon `json:"icon"` // The icon of the space
+ Description string `json:"description" example:"The local-first wiki"` // The description of the space
+ GatewayUrl string `json:"gateway_url" example:"http://127.0.0.1:31006"` // The gateway url to serve files and media
+ NetworkId string `json:"network_id" example:"N83gJpVd9MuNRZAuJLZ7LiMntTThhPc6DtzWWVjb1M3PouVU"` // The network id of the space
+}
+
+type MemberResponse struct {
+ Member Member `json:"member"` // The member
+}
+
+type UpdateMemberRequest struct {
+ Status string `json:"status" enums:"active,removed,declined" example:"active"` // Status of the member
+ Role string `json:"role,omitempty" enums:"viewer,editor" example:"viewer"` // Role to assign if approving a joining member
}
type Member struct {
- Type string `json:"type" example:"member"`
- Id string `json:"id" example:"_participant_bafyreigyfkt6rbv24sbv5aq2hko1bhmv5xxlf22b4bypdu6j7hnphm3psq_23me69r569oi1_AAjEaEwPF4nkEh9AWkqEnzcQ8HziBB4ETjiTpvRCQvWnSMDZ"`
- Name string `json:"name" example:"John Doe"`
- Icon string `json:"icon" example:"http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay?width=100"`
- Identity string `json:"identity" example:"AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ"`
- GlobalName string `json:"global_name" example:"john.any"`
- Role string `json:"role" enums:"Reader,Writer,Owner,NoPermission" example:"Owner"`
+ Object string `json:"object" example:"member"` // The data model of the object
+ Id string `json:"id" example:"_participant_bafyreigyfkt6rbv24sbv5aq2hko1bhmv5xxlf22b4bypdu6j7hnphm3psq_23me69r569oi1_AAjEaEwPF4nkEh9AWkqEnzcQ8HziBB4ETjiTpvRCQvWnSMDZ"` // The profile object id of the member
+ Name string `json:"name" example:"John Doe"` // The name of the member
+ Icon util.Icon `json:"icon"` // The icon of the member
+ Identity string `json:"identity" example:"AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ"` // The identity of the member in the network
+ GlobalName string `json:"global_name" example:"john.any"` // The global name of the member in the network
+ Status string `json:"status" enums:"joining,active,removed,declined,removing,canceled" example:"active"` // The status of the member
+ Role string `json:"role" enums:"viewer,editor,owner,no_permission" example:"owner"` // The role of the member
}
diff --git a/core/api/internal/space/service.go b/core/api/internal/space/service.go
index 9a617b847..2c566264a 100644
--- a/core/api/internal/space/service.go
+++ b/core/api/internal/space/service.go
@@ -5,38 +5,51 @@ import (
"crypto/rand"
"errors"
"math/big"
+ "strings"
"github.com/gogo/protobuf/types"
+ "github.com/iancoleman/strcase"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
"github.com/anyproto/anytype-heart/core/api/pagination"
"github.com/anyproto/anytype-heart/core/api/util"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
var (
- ErrFailedListSpaces = errors.New("failed to retrieve list of spaces")
- ErrFailedOpenWorkspace = errors.New("failed to open workspace")
- ErrFailedGenerateRandomIcon = errors.New("failed to generate random icon")
- ErrFailedCreateSpace = errors.New("failed to create space")
- ErrFailedListMembers = errors.New("failed to retrieve list of members")
+ ErrFailedListSpaces = errors.New("failed to retrieve list of spaces")
+ ErrFailedOpenWorkspace = errors.New("failed to open workspace")
+ ErrFailedOpenSpace = errors.New("failed to open space")
+ ErrWorkspaceNotFound = errors.New("workspace not found")
+ ErrFailedGenerateRandomIcon = errors.New("failed to generate random icon")
+ ErrFailedCreateSpace = errors.New("failed to create space")
+ ErrFailedSetSpaceInfo = errors.New("failed to set space info")
+ ErrFailedListMembers = errors.New("failed to retrieve list of members")
+ ErrFailedGetMember = errors.New("failed to retrieve member")
+ ErrMemberNotFound = errors.New("member not found")
+ ErrInvalidApproveMemberStatus = errors.New("status must be 'active', 'declined', or 'removed'")
+ ErrInvalidApproveMemberRole = errors.New("role must be 'reader' or 'writer'")
+ ErrFailedUpdateMember = errors.New("failed to update member")
)
type Service interface {
ListSpaces(ctx context.Context, offset int, limit int) ([]Space, int, bool, error)
- CreateSpace(ctx context.Context, name string) (Space, error)
+ GetSpace(ctx context.Context, spaceId string) (Space, error)
+ CreateSpace(ctx context.Context, request CreateSpaceRequest) (Space, error)
ListMembers(ctx context.Context, spaceId string, offset int, limit int) ([]Member, int, bool, error)
+ GetMember(ctx context.Context, spaceId string, memberId string) (Member, error)
+ UpdateMember(ctx context.Context, spaceId string, memberId string, request UpdateMemberRequest) (Member, error)
}
type SpaceService struct {
- mw service.ClientCommandsServer
+ mw apicore.ClientCommands
AccountInfo *model.AccountInfo
}
-func NewService(mw service.ClientCommandsServer) *SpaceService {
+func NewService(mw apicore.ClientCommands) *SpaceService {
return &SpaceService{mw: mw}
}
@@ -47,7 +60,7 @@ func (s *SpaceService) ListSpaces(ctx context.Context, offset int, limit int) (s
Filters: []*model.BlockContentDataviewFilter{
{
Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyLayout.String(),
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_Equal,
Value: pbtypes.Int64(int64(model.ObjectType_spaceView)),
},
@@ -66,7 +79,7 @@ func (s *SpaceService) ListSpaces(ctx context.Context, offset int, limit int) (s
EmptyPlacement: model.BlockContentDataviewSort_End,
},
},
- Keys: []string{bundle.RelationKeyTargetSpaceId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIconImage.String()},
+ Keys: []string{bundle.RelationKeyTargetSpaceId.String()},
})
if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
@@ -78,34 +91,63 @@ func (s *SpaceService) ListSpaces(ctx context.Context, offset int, limit int) (s
spaces = make([]Space, 0, len(paginatedRecords))
for _, record := range paginatedRecords {
- workspace, err := s.getWorkspaceInfo(record.Fields[bundle.RelationKeyTargetSpaceId.String()].GetStringValue())
+ workspace, err := s.getSpaceInfo(record.Fields[bundle.RelationKeyTargetSpaceId.String()].GetStringValue())
if err != nil {
return nil, 0, false, err
}
- // TODO: name and icon are only returned here; fix that
- workspace.Name = record.Fields[bundle.RelationKeyName.String()].GetStringValue()
- workspace.Icon = util.GetIconFromEmojiOrImage(s.AccountInfo, record.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), record.Fields[bundle.RelationKeyIconImage.String()].GetStringValue())
-
spaces = append(spaces, workspace)
}
return spaces, total, hasMore, nil
}
+// GetSpace returns the space info for the space with the given ID.
+func (s *SpaceService) GetSpace(ctx context.Context, spaceId string) (Space, error) {
+ // Check if the workspace exists and is active
+ resp := s.mw.ObjectSearch(ctx, &pb.RpcObjectSearchRequest{
+ SpaceId: s.AccountInfo.TechSpaceId,
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyTargetSpaceId.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String(spaceId),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeySpaceLocalStatus.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.SpaceStatus_Ok)),
+ },
+ },
+ Keys: []string{bundle.RelationKeyTargetSpaceId.String()},
+ })
+
+ if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
+ return Space{}, ErrFailedOpenWorkspace
+ }
+
+ if len(resp.Records) == 0 {
+ return Space{}, ErrWorkspaceNotFound
+ }
+
+ return s.getSpaceInfo(spaceId)
+}
+
// CreateSpace creates a new space with the given name and returns the space info.
-func (s *SpaceService) CreateSpace(ctx context.Context, name string) (Space, error) {
+func (s *SpaceService) CreateSpace(ctx context.Context, request CreateSpaceRequest) (Space, error) {
+ name := request.Name
iconOption, err := rand.Int(rand.Reader, big.NewInt(13))
if err != nil {
return Space{}, ErrFailedGenerateRandomIcon
}
- // Create new workspace with a random icon and import default use case
resp := s.mw.WorkspaceCreate(ctx, &pb.RpcWorkspaceCreateRequest{
Details: &types.Struct{
Fields: map[string]*types.Value{
- bundle.RelationKeyIconOption.String(): pbtypes.Float64(float64(iconOption.Int64())),
bundle.RelationKeyName.String(): pbtypes.String(name),
+ bundle.RelationKeyIconOption.String(): pbtypes.Float64(float64(iconOption.Int64())),
bundle.RelationKeySpaceDashboardId.String(): pbtypes.String("lastOpened"),
},
},
@@ -113,21 +155,37 @@ func (s *SpaceService) CreateSpace(ctx context.Context, name string) (Space, err
WithChat: true,
})
- if resp.Error.Code != pb.RpcWorkspaceCreateResponseError_NULL {
+ if resp.Error != nil && resp.Error.Code != pb.RpcWorkspaceCreateResponseError_NULL {
return Space{}, ErrFailedCreateSpace
}
- return s.getWorkspaceInfo(resp.SpaceId)
+ description := request.Description
+ if description != "" {
+ infoResp := s.mw.WorkspaceSetInfo(ctx, &pb.RpcWorkspaceSetInfoRequest{
+ SpaceId: resp.SpaceId,
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyDescription.String(): pbtypes.String(description),
+ },
+ },
+ })
+
+ if infoResp.Error != nil && infoResp.Error.Code != pb.RpcWorkspaceSetInfoResponseError_NULL {
+ return Space{}, ErrFailedSetSpaceInfo
+ }
+ }
+
+ return s.getSpaceInfo(resp.SpaceId)
}
// ListMembers returns a paginated list of members in the space with the given ID.
func (s *SpaceService) ListMembers(ctx context.Context, spaceId string, offset int, limit int) (members []Member, total int, hasMore bool, err error) {
- resp := s.mw.ObjectSearch(ctx, &pb.RpcObjectSearchRequest{
+ activeResp := s.mw.ObjectSearch(ctx, &pb.RpcObjectSearchRequest{
SpaceId: spaceId,
Filters: []*model.BlockContentDataviewFilter{
{
Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyLayout.String(),
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_Equal,
Value: pbtypes.Int64(int64(model.ObjectType_participant)),
},
@@ -144,28 +202,62 @@ func (s *SpaceService) ListMembers(ctx context.Context, spaceId string, offset i
Type: model.BlockContentDataviewSort_Asc,
},
},
- Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIconImage.String(), bundle.RelationKeyIdentity.String(), bundle.RelationKeyGlobalName.String(), bundle.RelationKeyParticipantPermissions.String()},
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIconImage.String(), bundle.RelationKeyIdentity.String(), bundle.RelationKeyGlobalName.String(), bundle.RelationKeyParticipantPermissions.String(), bundle.RelationKeyParticipantStatus.String()},
})
- if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
+ if activeResp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
return nil, 0, false, ErrFailedListMembers
}
- total = len(resp.Records)
- paginatedMembers, hasMore := pagination.Paginate(resp.Records, offset, limit)
+ joiningResp := s.mw.ObjectSearch(ctx, &pb.RpcObjectSearchRequest{
+ SpaceId: spaceId,
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.ObjectType_participant)),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyParticipantStatus.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.ParticipantStatus_Joining)),
+ },
+ },
+ Sorts: []*model.BlockContentDataviewSort{
+ {
+ RelationKey: bundle.RelationKeyName.String(),
+ Type: model.BlockContentDataviewSort_Asc,
+ },
+ },
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIconImage.String(), bundle.RelationKeyIdentity.String(), bundle.RelationKeyGlobalName.String(), bundle.RelationKeyParticipantPermissions.String(), bundle.RelationKeyParticipantStatus.String()},
+ })
+
+ if joiningResp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
+ return nil, 0, false, ErrFailedListMembers
+ }
+
+ combinedRecords := make([]*types.Struct, 0, len(joiningResp.Records)+len(activeResp.Records))
+ combinedRecords = append(combinedRecords, joiningResp.Records...)
+ combinedRecords = append(combinedRecords, activeResp.Records...)
+
+ total = len(combinedRecords)
+ paginatedMembers, hasMore := pagination.Paginate(combinedRecords, offset, limit)
members = make([]Member, 0, len(paginatedMembers))
for _, record := range paginatedMembers {
- icon := util.GetIconFromEmojiOrImage(s.AccountInfo, record.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), record.Fields[bundle.RelationKeyIconImage.String()].GetStringValue())
+ icon := util.GetIcon(s.AccountInfo, record.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), record.Fields[bundle.RelationKeyIconImage.String()].GetStringValue(), "", 0)
member := Member{
- Type: "member",
+ Object: "member",
Id: record.Fields[bundle.RelationKeyId.String()].GetStringValue(),
Name: record.Fields[bundle.RelationKeyName.String()].GetStringValue(),
Icon: icon,
Identity: record.Fields[bundle.RelationKeyIdentity.String()].GetStringValue(),
GlobalName: record.Fields[bundle.RelationKeyGlobalName.String()].GetStringValue(),
- Role: model.ParticipantPermissions_name[int32(record.Fields[bundle.RelationKeyParticipantPermissions.String()].GetNumberValue())],
+ Status: strcase.ToSnake(model.ParticipantStatus_name[int32(record.Fields[bundle.RelationKeyParticipantStatus.String()].GetNumberValue())]),
+ Role: s.mapMemberPermissions(model.ParticipantPermissions(record.Fields[bundle.RelationKeyParticipantPermissions.String()].GetNumberValue())),
}
members = append(members, member)
@@ -174,69 +266,170 @@ func (s *SpaceService) ListMembers(ctx context.Context, spaceId string, offset i
return members, total, hasMore, nil
}
-func (s *SpaceService) GetParticipantDetails(mw service.ClientCommandsServer, spaceId string, participantId string) Member {
- resp := mw.ObjectSearch(context.Background(), &pb.RpcObjectSearchRequest{
+// GetMember returns the member with the given ID in the space with the given ID.
+func (s *SpaceService) GetMember(ctx context.Context, spaceId string, memberId string) (Member, error) {
+ // Member ID can be either a participant ID or an identity.
+ relationKey := bundle.RelationKeyId
+ if !strings.HasPrefix(memberId, "_participant") {
+ relationKey = bundle.RelationKeyIdentity
+ }
+
+ resp := s.mw.ObjectSearch(context.Background(), &pb.RpcObjectSearchRequest{
SpaceId: spaceId,
Filters: []*model.BlockContentDataviewFilter{
{
Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyId.String(),
+ RelationKey: relationKey.String(),
Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(participantId),
+ Value: pbtypes.String(memberId),
},
},
- Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIconImage.String(), bundle.RelationKeyIdentity.String(), bundle.RelationKeyGlobalName.String(), bundle.RelationKeyParticipantPermissions.String()},
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyIconEmoji.String(), bundle.RelationKeyIconImage.String(), bundle.RelationKeyIdentity.String(), bundle.RelationKeyGlobalName.String(), bundle.RelationKeyParticipantPermissions.String(), bundle.RelationKeyParticipantStatus.String()},
})
if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
- return Member{}
+ return Member{}, ErrFailedGetMember
}
if len(resp.Records) == 0 {
- return Member{}
+ return Member{}, ErrMemberNotFound
}
- icon := util.GetIconFromEmojiOrImage(s.AccountInfo, "", resp.Records[0].Fields[bundle.RelationKeyIconImage.String()].GetStringValue())
+ icon := util.GetIcon(s.AccountInfo, "", resp.Records[0].Fields[bundle.RelationKeyIconImage.String()].GetStringValue(), "", 0)
return Member{
- Type: "member",
+ Object: "member",
Id: resp.Records[0].Fields[bundle.RelationKeyId.String()].GetStringValue(),
Name: resp.Records[0].Fields[bundle.RelationKeyName.String()].GetStringValue(),
Icon: icon,
Identity: resp.Records[0].Fields[bundle.RelationKeyIdentity.String()].GetStringValue(),
GlobalName: resp.Records[0].Fields[bundle.RelationKeyGlobalName.String()].GetStringValue(),
- Role: model.ParticipantPermissions_name[int32(resp.Records[0].Fields[bundle.RelationKeyParticipantPermissions.String()].GetNumberValue())],
- }
+ Status: strcase.ToSnake(model.ParticipantStatus_name[int32(resp.Records[0].Fields[bundle.RelationKeyParticipantStatus.String()].GetNumberValue())]),
+ Role: s.mapMemberPermissions(model.ParticipantPermissions(resp.Records[0].Fields[bundle.RelationKeyParticipantPermissions.String()].GetNumberValue())),
+ }, nil
}
-// getWorkspaceInfo returns the workspace info for the space with the given ID.
-func (s *SpaceService) getWorkspaceInfo(spaceId string) (space Space, err error) {
+// UpdateMember approves member with defined role or removes them
+func (s *SpaceService) UpdateMember(ctx context.Context, spaceId string, memberId string, request UpdateMemberRequest) (Member, error) {
+ member, err := s.GetMember(ctx, spaceId, memberId)
+ if err != nil {
+ return Member{}, err
+ }
+
+ if request.Status != "active" && request.Status != "removed" && request.Status != "declined" {
+ return Member{}, ErrInvalidApproveMemberStatus
+ }
+
+ switch request.Status {
+ case "active":
+ if request.Role != "viewer" && request.Role != "editor" {
+ return Member{}, ErrInvalidApproveMemberRole
+ }
+
+ if member.Status == "joining" {
+ // Approve the member's join request.
+ approveResp := s.mw.SpaceRequestApprove(ctx, &pb.RpcSpaceRequestApproveRequest{
+ SpaceId: spaceId,
+ Identity: memberId,
+ Permissions: s.mapMemberRole(request.Role),
+ })
+ if approveResp.Error.Code != pb.RpcSpaceRequestApproveResponseError_NULL {
+ return Member{}, ErrFailedUpdateMember
+ }
+ } else {
+ // Update the member's role.
+ resp := s.mw.SpaceParticipantPermissionsChange(ctx, &pb.RpcSpaceParticipantPermissionsChangeRequest{
+ SpaceId: spaceId,
+ Changes: []*model.ParticipantPermissionChange{{Identity: memberId, Perms: s.mapMemberRole(request.Role)}},
+ })
+ if resp.Error.Code != pb.RpcSpaceParticipantPermissionsChangeResponseError_NULL {
+ return Member{}, ErrFailedUpdateMember
+ }
+ }
+ case "declined":
+ // Reject the member's join request.
+ rejectResp := s.mw.SpaceRequestDecline(ctx, &pb.RpcSpaceRequestDeclineRequest{
+ SpaceId: spaceId,
+ Identity: memberId,
+ })
+ if rejectResp.Error.Code != pb.RpcSpaceRequestDeclineResponseError_NULL {
+ return Member{}, ErrFailedUpdateMember
+ }
+ case "removed":
+ // Remove the member from the space.
+ removeResp := s.mw.SpaceParticipantRemove(ctx, &pb.RpcSpaceParticipantRemoveRequest{
+ SpaceId: spaceId,
+ Identities: []string{memberId},
+ })
+ if removeResp.Error.Code != pb.RpcSpaceParticipantRemoveResponseError_NULL {
+ return Member{}, ErrFailedUpdateMember
+ }
+ default:
+ return Member{}, ErrInvalidApproveMemberStatus
+ }
+
+ member, err = s.GetMember(ctx, spaceId, memberId)
+ if err != nil {
+ return Member{}, err
+ }
+
+ return member, nil
+}
+
+// getSpaceInfo returns the workspace info for the space with the given ID.
+func (s *SpaceService) getSpaceInfo(spaceId string) (space Space, err error) {
workspaceResponse := s.mw.WorkspaceOpen(context.Background(), &pb.RpcWorkspaceOpenRequest{
- SpaceId: spaceId,
- WithChat: true,
+ SpaceId: spaceId,
})
- if workspaceResponse.Error.Code != pb.RpcWorkspaceOpenResponseError_NULL {
+ if workspaceResponse.Error != nil && workspaceResponse.Error.Code != pb.RpcWorkspaceOpenResponseError_NULL {
return Space{}, ErrFailedOpenWorkspace
}
+ spaceResp := s.mw.ObjectShow(context.Background(), &pb.RpcObjectShowRequest{
+ SpaceId: spaceId,
+ ObjectId: workspaceResponse.Info.WorkspaceObjectId,
+ })
+
+ if spaceResp.Error != nil && spaceResp.Error.Code != pb.RpcObjectShowResponseError_NULL {
+ return Space{}, ErrFailedOpenSpace
+ }
+
+ name := spaceResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyName.String()].GetStringValue()
+ icon := util.GetIcon(s.AccountInfo, spaceResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconEmoji.String()].GetStringValue(), spaceResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyIconImage.String()].GetStringValue(), "", 0)
+ description := spaceResp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyDescription.String()].GetStringValue()
+
return Space{
- Type: "space",
- Id: spaceId,
- HomeObjectId: workspaceResponse.Info.HomeObjectId,
- ArchiveObjectId: workspaceResponse.Info.ArchiveObjectId,
- ProfileObjectId: workspaceResponse.Info.ProfileObjectId,
- MarketplaceWorkspaceId: workspaceResponse.Info.MarketplaceWorkspaceId,
- WorkspaceObjectId: workspaceResponse.Info.WorkspaceObjectId,
- DeviceId: workspaceResponse.Info.DeviceId,
- AccountSpaceId: workspaceResponse.Info.AccountSpaceId,
- WidgetsId: workspaceResponse.Info.WidgetsId,
- SpaceViewId: workspaceResponse.Info.SpaceViewId,
- TechSpaceId: workspaceResponse.Info.TechSpaceId,
- GatewayUrl: workspaceResponse.Info.GatewayUrl,
- LocalStoragePath: workspaceResponse.Info.LocalStoragePath,
- Timezone: workspaceResponse.Info.TimeZone,
- AnalyticsId: workspaceResponse.Info.AnalyticsId,
- NetworkId: workspaceResponse.Info.NetworkId,
+ Object: "space",
+ Id: spaceId,
+ Name: name,
+ Icon: icon,
+ Description: description,
+ GatewayUrl: workspaceResponse.Info.GatewayUrl,
+ NetworkId: workspaceResponse.Info.NetworkId,
}, nil
}
+
+// mapMemberPermissions maps participant permissions to a role
+func (s *SpaceService) mapMemberPermissions(permissions model.ParticipantPermissions) string {
+ switch permissions {
+ case model.ParticipantPermissions_Reader:
+ return "viewer"
+ case model.ParticipantPermissions_Writer:
+ return "editor"
+ default:
+ return strcase.ToSnake(model.ParticipantPermissions_name[int32(permissions)])
+ }
+}
+
+// mapMemberPermissions maps a role to participant permissions
+func (s *SpaceService) mapMemberRole(role string) model.ParticipantPermissions {
+ switch role {
+ case "viewer":
+ return model.ParticipantPermissions_Reader
+ case "editor":
+ return model.ParticipantPermissions_Writer
+ default:
+ return model.ParticipantPermissions_Reader
+ }
+}
diff --git a/core/api/internal/space/service_test.go b/core/api/internal/space/service_test.go
index d68a3cdce..31a85b3fb 100644
--- a/core/api/internal/space/service_test.go
+++ b/core/api/internal/space/service_test.go
@@ -1,6 +1,7 @@
package space
import (
+ "context"
"regexp"
"testing"
@@ -9,8 +10,9 @@ import (
"github.com/gogo/protobuf/types"
+ "github.com/anyproto/anytype-heart/core/api/apicore/mock_apicore"
+ "github.com/anyproto/anytype-heart/core/api/util"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service/mock_service"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
@@ -26,12 +28,12 @@ const (
type fixture struct {
*SpaceService
- mwMock *mock_service.MockClientCommandsServer
+ mwMock *mock_apicore.MockClientCommands
}
func newFixture(t *testing.T) *fixture {
- mw := mock_service.NewMockClientCommandsServer(t)
- spaceService := NewService(mw)
+ mwMock := mock_apicore.NewMockClientCommands(t)
+ spaceService := NewService(mwMock)
spaceService.AccountInfo = &model.AccountInfo{
TechSpaceId: techSpaceId,
GatewayUrl: gatewayUrl,
@@ -39,7 +41,7 @@ func newFixture(t *testing.T) *fixture {
return &fixture{
SpaceService: spaceService,
- mwMock: mw,
+ mwMock: mwMock,
}
}
@@ -53,7 +55,7 @@ func TestSpaceService_ListSpaces(t *testing.T) {
Filters: []*model.BlockContentDataviewFilter{
{
Operator: model.BlockContentDataviewFilter_No,
- RelationKey: bundle.RelationKeyLayout.String(),
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
Condition: model.BlockContentDataviewFilter_Equal,
Value: pbtypes.Int64(int64(model.ObjectType_spaceView)),
},
@@ -72,23 +74,17 @@ func TestSpaceService_ListSpaces(t *testing.T) {
EmptyPlacement: model.BlockContentDataviewSort_End,
},
},
- Keys: []string{"targetSpaceId", "name", "iconEmoji", "iconImage"},
+ Keys: []string{bundle.RelationKeyTargetSpaceId.String()},
}).Return(&pb.RpcObjectSearchResponse{
Records: []*types.Struct{
{
Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String("Another Workspace"),
bundle.RelationKeyTargetSpaceId.String(): pbtypes.String("another-space-id"),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
- bundle.RelationKeyIconImage.String(): pbtypes.String(iconImage),
},
},
{
Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String("My Workspace"),
bundle.RelationKeyTargetSpaceId.String(): pbtypes.String("my-space-id"),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String("🚀"),
- bundle.RelationKeyIconImage.String(): pbtypes.String(""),
},
},
},
@@ -98,23 +94,62 @@ func TestSpaceService_ListSpaces(t *testing.T) {
fx.mwMock.On("WorkspaceOpen", mock.Anything, mock.Anything).Return(&pb.RpcWorkspaceOpenResponse{
Error: &pb.RpcWorkspaceOpenResponseError{Code: pb.RpcWorkspaceOpenResponseError_NULL},
Info: &model.AccountInfo{
- HomeObjectId: "home-object-id",
- ArchiveObjectId: "archive-object-id",
- ProfileObjectId: "profile-object-id",
- MarketplaceWorkspaceId: "marketplace-workspace-id",
- WorkspaceObjectId: "workspace-object-id",
- DeviceId: "device-id",
- AccountSpaceId: "account-space-id",
- WidgetsId: "widgets-id",
- SpaceViewId: "space-view-id",
- TechSpaceId: "tech-space-id",
- GatewayUrl: "gateway-url",
- LocalStoragePath: "local-storage-path",
- TimeZone: "time-zone",
- AnalyticsId: "analytics-id",
- NetworkId: "network-id",
+ WorkspaceObjectId: "workspace-object-id-1",
+ GatewayUrl: "gateway-url-1",
+ NetworkId: "network-id-1",
},
- }, nil).Twice()
+ }, nil).Once()
+
+ fx.mwMock.On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: "another-space-id",
+ ObjectId: "workspace-object-id-1",
+ }).Return(&pb.RpcObjectShowResponse{
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyName.String(): pbtypes.String("Another Workspace"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(iconImage),
+ bundle.RelationKeyDescription.String(): pbtypes.String("desc1"),
+ },
+ },
+ },
+ },
+ },
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ }, nil).Once()
+
+ fx.mwMock.On("WorkspaceOpen", mock.Anything, mock.Anything).Return(&pb.RpcWorkspaceOpenResponse{
+ Error: &pb.RpcWorkspaceOpenResponseError{Code: pb.RpcWorkspaceOpenResponseError_NULL},
+ Info: &model.AccountInfo{
+ WorkspaceObjectId: "workspace-object-id-2",
+ GatewayUrl: "gateway-url-2",
+ NetworkId: "network-id-2",
+ },
+ }, nil).Once()
+
+ fx.mwMock.On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: "my-space-id",
+ ObjectId: "workspace-object-id-2",
+ }).Return(&pb.RpcObjectShowResponse{
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyName.String(): pbtypes.String("My Workspace"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("🚀"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyDescription.String(): pbtypes.String("desc2"),
+ },
+ },
+ },
+ },
+ },
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ }, nil).Once()
// when
spaces, total, hasMore, err := fx.ListSpaces(nil, offset, limit)
@@ -122,12 +157,20 @@ func TestSpaceService_ListSpaces(t *testing.T) {
// then
require.NoError(t, err)
require.Len(t, spaces, 2)
+
require.Equal(t, "Another Workspace", spaces[0].Name)
require.Equal(t, "another-space-id", spaces[0].Id)
- require.Regexpf(t, regexp.MustCompile(gatewayUrl+`/image/`+iconImage), spaces[0].Icon, "Icon URL does not match")
+ require.Equal(t, "desc1", spaces[0].Description)
+ require.Equal(t, "gateway-url-1", spaces[0].GatewayUrl)
+ require.Equal(t, "network-id-1", spaces[0].NetworkId)
+
require.Equal(t, "My Workspace", spaces[1].Name)
require.Equal(t, "my-space-id", spaces[1].Id)
- require.Equal(t, "🚀", spaces[1].Icon)
+ require.Equal(t, "desc2", spaces[1].Description)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr("🚀")}, spaces[1].Icon)
+ require.Equal(t, "gateway-url-2", spaces[1].GatewayUrl)
+ require.Equal(t, "network-id-2", spaces[1].NetworkId)
+
require.Equal(t, 2, total)
require.False(t, hasMore)
})
@@ -161,10 +204,7 @@ func TestSpaceService_ListSpaces(t *testing.T) {
Records: []*types.Struct{
{
Fields: map[string]*types.Value{
- bundle.RelationKeyName.String(): pbtypes.String("My Workspace"),
bundle.RelationKeyTargetSpaceId.String(): pbtypes.String("my-space-id"),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String("🚀"),
- bundle.RelationKeyIconImage.String(): pbtypes.String(""),
},
},
},
@@ -187,6 +227,164 @@ func TestSpaceService_ListSpaces(t *testing.T) {
})
}
+func TestSpaceService_GetSpace(t *testing.T) {
+ t.Run("successful retrieval of space", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: techSpaceId,
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyTargetSpaceId.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("space-id"),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeySpaceLocalStatus.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.SpaceStatus_Ok)),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyTargetSpaceId.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyTargetSpaceId.String(): pbtypes.String("space-id"),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ fx.mwMock.On("WorkspaceOpen", mock.Anything, mock.Anything).Return(&pb.RpcWorkspaceOpenResponse{
+ Error: &pb.RpcWorkspaceOpenResponseError{Code: pb.RpcWorkspaceOpenResponseError_NULL},
+ Info: &model.AccountInfo{
+ WorkspaceObjectId: "workspace-object-id",
+ GatewayUrl: "gateway-url",
+ NetworkId: "network-id",
+ },
+ }, nil).Once()
+
+ // Expect ObjectShow call to return space details.
+ fx.mwMock.On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: "space-id",
+ ObjectId: "workspace-object-id",
+ }).Return(&pb.RpcObjectShowResponse{
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyName.String(): pbtypes.String("My Workspace"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("🚀"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyDescription.String(): pbtypes.String("A description"),
+ },
+ },
+ },
+ },
+ },
+ Error: &pb.RpcObjectShowResponseError{Code: pb.RpcObjectShowResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ space, err := fx.GetSpace(nil, "space-id")
+
+ // then
+ require.NoError(t, err)
+ require.Equal(t, "My Workspace", space.Name)
+ require.Equal(t, "space-id", space.Id)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr("🚀")}, space.Icon)
+ require.Equal(t, "gateway-url", space.GatewayUrl)
+ require.Equal(t, "network-id", space.NetworkId)
+ })
+
+ t.Run("workspace not found", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: techSpaceId,
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyTargetSpaceId.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("space-id"),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeySpaceLocalStatus.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.SpaceStatus_Ok)),
+ },
+ },
+ Keys: []string{bundle.RelationKeyTargetSpaceId.String()},
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{},
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ // when
+ space, err := fx.GetSpace(nil, "space-id")
+
+ // then
+ require.ErrorIs(t, err, ErrWorkspaceNotFound)
+ require.Equal(t, Space{}, space)
+ })
+
+ t.Run("failed workspace open", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: techSpaceId,
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyTargetSpaceId.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("space-id"),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeySpaceLocalStatus.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.SpaceStatus_Ok)),
+ },
+ },
+ Keys: []string{bundle.RelationKeyTargetSpaceId.String()},
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyTargetSpaceId.String(): pbtypes.String("space-id"),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ fx.mwMock.On("WorkspaceOpen", mock.Anything, mock.Anything).
+ Return(&pb.RpcWorkspaceOpenResponse{
+ Error: &pb.RpcWorkspaceOpenResponseError{Code: pb.RpcWorkspaceOpenResponseError_UNKNOWN_ERROR},
+ }, nil).Once()
+
+ // when
+ space, err := fx.GetSpace(nil, "space-id")
+
+ // then
+ require.ErrorIs(t, err, ErrFailedOpenWorkspace)
+ require.Equal(t, Space{}, space)
+ })
+}
+
func TestSpaceService_CreateSpace(t *testing.T) {
t.Run("successful create space", func(t *testing.T) {
// given
@@ -197,33 +395,55 @@ func TestSpaceService_CreateSpace(t *testing.T) {
SpaceId: "new-space-id",
}).Once()
+ fx.mwMock.On("WorkspaceSetInfo", mock.Anything, &pb.RpcWorkspaceSetInfoRequest{
+ SpaceId: "new-space-id",
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyDescription.String(): pbtypes.String("A new space"),
+ },
+ },
+ }).Return(&pb.RpcWorkspaceSetInfoResponse{
+ Error: &pb.RpcWorkspaceSetInfoResponseError{Code: pb.RpcWorkspaceSetInfoResponseError_NULL},
+ }, nil).Once()
+
fx.mwMock.On("WorkspaceOpen", mock.Anything, mock.Anything).Return(&pb.RpcWorkspaceOpenResponse{
Error: &pb.RpcWorkspaceOpenResponseError{Code: pb.RpcWorkspaceOpenResponseError_NULL},
Info: &model.AccountInfo{
- HomeObjectId: "home-object-id",
- ArchiveObjectId: "archive-object-id",
- ProfileObjectId: "profile-object-id",
- MarketplaceWorkspaceId: "marketplace-workspace-id",
- WorkspaceObjectId: "workspace-object-id",
- DeviceId: "device-id",
- AccountSpaceId: "account-space-id",
- WidgetsId: "widgets-id",
- SpaceViewId: "space-view-id",
- TechSpaceId: "tech-space-id",
- GatewayUrl: "gateway-url",
- LocalStoragePath: "local-storage-path",
- TimeZone: "time-zone",
- AnalyticsId: "analytics-id",
- NetworkId: "network-id",
+ WorkspaceObjectId: "workspace-object-id",
+ GatewayUrl: "gateway-url",
+ NetworkId: "network-id",
+ },
+ }, nil).Once()
+
+ fx.mwMock.On("ObjectShow", mock.Anything, &pb.RpcObjectShowRequest{
+ SpaceId: "new-space-id",
+ ObjectId: "workspace-object-id",
+ }).Return(&pb.RpcObjectShowResponse{
+ ObjectView: &model.ObjectView{
+ Details: []*model.ObjectViewDetailsSet{
+ {
+ Details: &types.Struct{
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyName.String(): pbtypes.String("New Space"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("🚀"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyDescription.String(): pbtypes.String("A new space"),
+ },
+ },
+ },
+ },
},
}, nil).Once()
// when
- space, err := fx.CreateSpace(nil, "New Space")
+ space, err := fx.CreateSpace(nil, CreateSpaceRequest{Name: "New Space", Description: "A new space"})
// then
require.NoError(t, err)
require.Equal(t, "new-space-id", space.Id)
+ require.Equal(t, "New Space", space.Name)
+ require.Equal(t, "A new space", space.Description)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr("🚀")}, space.Icon)
})
t.Run("failed workspace creation", func(t *testing.T) {
@@ -235,7 +455,7 @@ func TestSpaceService_CreateSpace(t *testing.T) {
}).Once()
// when
- space, err := fx.CreateSpace(nil, "New Space")
+ space, err := fx.CreateSpace(nil, CreateSpaceRequest{Name: "New Space"})
// then
require.ErrorIs(t, err, ErrFailedCreateSpace)
@@ -244,29 +464,108 @@ func TestSpaceService_CreateSpace(t *testing.T) {
}
func TestSpaceService_ListMembers(t *testing.T) {
+ joiningReq := &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.ObjectType_participant)),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyParticipantStatus.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.ParticipantStatus_Joining)),
+ },
+ },
+ Sorts: []*model.BlockContentDataviewSort{
+ {
+ RelationKey: bundle.RelationKeyName.String(),
+ Type: model.BlockContentDataviewSort_Asc,
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }
+
+ activeReq := &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.ObjectType_participant)),
+ },
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyParticipantStatus.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ Sorts: []*model.BlockContentDataviewSort{
+ {
+ RelationKey: bundle.RelationKeyName.String(),
+ Type: model.BlockContentDataviewSort_Asc,
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }
+
t.Run("successfully get members", func(t *testing.T) {
// given
fx := newFixture(t)
- fx.mwMock.On("ObjectSearch", mock.Anything, mock.Anything).
+ fx.mwMock.On("ObjectSearch", mock.Anything, joiningReq).
Return(&pb.RpcObjectSearchResponse{
Records: []*types.Struct{
{
Fields: map[string]*types.Value{
- bundle.RelationKeyId.String(): pbtypes.String("member-1"),
- bundle.RelationKeyName.String(): pbtypes.String("John Doe"),
- bundle.RelationKeyIconEmoji.String(): pbtypes.String("👤"),
- bundle.RelationKeyIdentity.String(): pbtypes.String("AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ"),
- bundle.RelationKeyGlobalName.String(): pbtypes.String("john.any"),
+ bundle.RelationKeyId.String(): pbtypes.String("member-1"),
+ bundle.RelationKeyName.String(): pbtypes.String("Jane Doe"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(iconImage),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("AAjLbEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMD4"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("jane.any"),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Joining)),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_NoPermissions)),
},
},
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, activeReq).
+ Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
{
Fields: map[string]*types.Value{
- bundle.RelationKeyId.String(): pbtypes.String("member-2"),
- bundle.RelationKeyName.String(): pbtypes.String("Jane Doe"),
- bundle.RelationKeyIconImage.String(): pbtypes.String(iconImage),
- bundle.RelationKeyIdentity.String(): pbtypes.String("AAjLbEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMD4"),
- bundle.RelationKeyGlobalName.String(): pbtypes.String("jane.any"),
+ bundle.RelationKeyId.String(): pbtypes.String("member-2"),
+ bundle.RelationKeyName.String(): pbtypes.String("John Doe"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("👤"),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("AAjEaEwPF4nkEh7AWkqEnzcQ8HziGB4ETjiTpvRCQvWnSMDZ"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("john.any"),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Owner)),
},
},
},
@@ -279,14 +578,21 @@ func TestSpaceService_ListMembers(t *testing.T) {
// then
require.NoError(t, err)
require.Len(t, members, 2)
+
require.Equal(t, "member-1", members[0].Id)
- require.Equal(t, "John Doe", members[0].Name)
- require.Equal(t, "👤", members[0].Icon)
- require.Equal(t, "john.any", members[0].GlobalName)
+ require.Equal(t, "Jane Doe", members[0].Name)
+ require.Regexpf(t, regexp.MustCompile(gatewayUrl+`/image/`+iconImage), *members[0].Icon.File, "Icon URL does not match")
+ require.Equal(t, "jane.any", members[0].GlobalName)
+ require.Equal(t, "joining", members[0].Status)
+ require.Equal(t, "no_permissions", members[0].Role)
+
require.Equal(t, "member-2", members[1].Id)
- require.Equal(t, "Jane Doe", members[1].Name)
- require.Regexpf(t, regexp.MustCompile(gatewayUrl+`/image/`+iconImage), members[1].Icon, "Icon URL does not match")
- require.Equal(t, "jane.any", members[1].GlobalName)
+ require.Equal(t, "John Doe", members[1].Name)
+ require.Equal(t, util.Icon{Format: "emoji", Emoji: util.StringPtr("👤")}, members[1].Icon)
+ require.Equal(t, "john.any", members[1].GlobalName)
+ require.Equal(t, "active", members[1].Status)
+ require.Equal(t, "owner", members[1].Role)
+
require.Equal(t, 2, total)
require.False(t, hasMore)
})
@@ -295,7 +601,13 @@ func TestSpaceService_ListMembers(t *testing.T) {
// given
fx := newFixture(t)
- fx.mwMock.On("ObjectSearch", mock.Anything, mock.Anything).
+ fx.mwMock.On("ObjectSearch", mock.Anything, activeReq).
+ Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{},
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, joiningReq).
Return(&pb.RpcObjectSearchResponse{
Records: []*types.Struct{},
Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
@@ -311,3 +623,830 @@ func TestSpaceService_ListMembers(t *testing.T) {
require.False(t, hasMore)
})
}
+
+func TestSpaceService_GetMember(t *testing.T) {
+ t.Run("successful retrieval of member", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-id"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-id"),
+ bundle.RelationKeyName.String(): pbtypes.String("John Doe"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("👤"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String("icon.png"),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-id"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("john.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Owner)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ // when
+ member, err := fx.GetMember(nil, "space-id", "member-id")
+
+ // then
+ require.NoError(t, err)
+ require.Equal(t, "member-id", member.Id)
+ require.Equal(t, "John Doe", member.Name)
+ require.Regexpf(t, regexp.MustCompile(gatewayUrl+`/image/icon.png`), *member.Icon.File, "Icon URL does not match")
+ require.Equal(t, "member-id", member.Identity)
+ require.Equal(t, "john.any", member.GlobalName)
+ require.Equal(t, "active", member.Status)
+ require.Equal(t, "owner", member.Role)
+ })
+
+ t.Run("member not found", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-id")},
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{},
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ // when
+ member, err := fx.GetMember(nil, "space-id", "member-id")
+
+ // then
+ require.ErrorIs(t, err, ErrMemberNotFound)
+ require.Equal(t, Member{}, member)
+ })
+ t.Run("failed get member", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-id"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-id"),
+ bundle.RelationKeyName.String(): pbtypes.String("John Doe"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String("icon.png"),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-id"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("john.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Owner)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_UNKNOWN_ERROR},
+ }).Once()
+
+ // when
+ member, err := fx.GetMember(nil, "space-id", "member-id")
+
+ // then
+ require.ErrorIs(t, err, ErrFailedGetMember)
+ require.Equal(t, Member{}, member)
+ })
+
+ t.Run("successful retrieval of member with participant id", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ participantId := "_participant123"
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyId.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String(participantId),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String(participantId),
+ bundle.RelationKeyName.String(): pbtypes.String("Alice"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("😊"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String("participant.png"),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("alice-identity"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("alice.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Writer)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }).Once()
+
+ // when
+ member, err := fx.GetMember(nil, "space-id", participantId)
+
+ // then
+ require.NoError(t, err)
+ require.Equal(t, participantId, member.Id)
+ require.Equal(t, "Alice", member.Name)
+ require.Regexpf(t, regexp.MustCompile(gatewayUrl+`/image/participant.png`), *member.Icon.File, "Icon URL does not match")
+ require.Equal(t, "alice-identity", member.Identity)
+ require.Equal(t, "alice.any", member.GlobalName)
+ require.Equal(t, "active", member.Status)
+ require.Equal(t, "editor", member.Role)
+ })
+}
+
+func TestSpaceService_UpdateMember(t *testing.T) {
+ t.Run("successful approval for joining member", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // First GetMember call returns a member with status "joining"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-1"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-1"),
+ bundle.RelationKeyName.String(): pbtypes.String("Joining Member"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String("icon.png"),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-1"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("joining.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Joining)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // Expect approval call (for a joining member, role 'viewer' maps to ParticipantPermissions_Reader)
+ fx.mwMock.On("SpaceRequestApprove", mock.Anything, &pb.RpcSpaceRequestApproveRequest{
+ SpaceId: "space-id",
+ Identity: "member-1",
+ Permissions: model.ParticipantPermissions_Reader,
+ }).Return(&pb.RpcSpaceRequestApproveResponse{
+ Error: &pb.RpcSpaceRequestApproveResponseError{Code: pb.RpcSpaceRequestApproveResponseError_NULL},
+ }, nil).Once()
+
+ // Second GetMember call returns the updated member with status "active"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-1"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-1"),
+ bundle.RelationKeyName.String(): pbtypes.String("Joining Member"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String("icon.png"),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-1"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("joining.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ member, err := fx.UpdateMember(ctx, "space-id", "member-1", UpdateMemberRequest{
+ Status: "active",
+ Role: "viewer",
+ })
+
+ // then
+ require.NoError(t, err)
+ require.Equal(t, "active", member.Status)
+ require.Equal(t, "viewer", member.Role)
+ })
+
+ t.Run("successful role update for active member", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // First GetMember call returns a member with status "active" and role "viewer"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-2"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-2"),
+ bundle.RelationKeyName.String(): pbtypes.String("Active Member"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("👤"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-2"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("active.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // Expect role update call (for an active member, updating role to 'editor' maps to ParticipantPermissions_Writer)
+ fx.mwMock.On("SpaceParticipantPermissionsChange", mock.Anything, &pb.RpcSpaceParticipantPermissionsChangeRequest{
+ SpaceId: "space-id",
+ Changes: []*model.ParticipantPermissionChange{
+ {
+ Identity: "member-2",
+ Perms: model.ParticipantPermissions_Writer,
+ },
+ },
+ }).Return(&pb.RpcSpaceParticipantPermissionsChangeResponse{
+ Error: &pb.RpcSpaceParticipantPermissionsChangeResponseError{Code: pb.RpcSpaceParticipantPermissionsChangeResponseError_NULL},
+ }, nil).Once()
+
+ // Second GetMember call returns the updated member with role "editor"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-2"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-2"),
+ bundle.RelationKeyName.String(): pbtypes.String("Active Member"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("👤"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-2"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("active.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Writer)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ member, err := fx.UpdateMember(ctx, "space-id", "member-2", UpdateMemberRequest{
+ Status: "active",
+ Role: "editor",
+ })
+
+ // then
+ require.NoError(t, err)
+ require.Equal(t, "active", member.Status)
+ require.Equal(t, "editor", member.Role)
+ })
+
+ t.Run("successful decline of member", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // First GetMember call returns a member record
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-3"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-3"),
+ bundle.RelationKeyName.String(): pbtypes.String("Member To Decline"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String("icon.png"),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-3"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("decline.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Joining)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // Expect decline call
+ fx.mwMock.On("SpaceRequestDecline", mock.Anything, &pb.RpcSpaceRequestDeclineRequest{
+ SpaceId: "space-id",
+ Identity: "member-3",
+ }).Return(&pb.RpcSpaceRequestDeclineResponse{
+ Error: &pb.RpcSpaceRequestDeclineResponseError{Code: pb.RpcSpaceRequestDeclineResponseError_NULL},
+ }, nil).Once()
+
+ // Second GetMember call returns the member with status "declined"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-3"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-3"),
+ bundle.RelationKeyName.String(): pbtypes.String("Member To Decline"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String("icon.png"),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-3"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("decline.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Declined)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ member, err := fx.UpdateMember(ctx, "space-id", "member-3", UpdateMemberRequest{
+ Status: "declined",
+ })
+
+ // then
+ require.NoError(t, err)
+ require.Equal(t, "declined", member.Status)
+ })
+
+ t.Run("successful removal of member", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // First GetMember call returns a member with status "active"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-4"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-4"),
+ bundle.RelationKeyName.String(): pbtypes.String("Member To Remove"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("👤"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-4"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("remove.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Writer)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // Expect removal call
+ fx.mwMock.On("SpaceParticipantRemove", mock.Anything, &pb.RpcSpaceParticipantRemoveRequest{
+ SpaceId: "space-id",
+ Identities: []string{"member-4"},
+ }).Return(&pb.RpcSpaceParticipantRemoveResponse{
+ Error: &pb.RpcSpaceParticipantRemoveResponseError{Code: pb.RpcSpaceParticipantRemoveResponseError_NULL},
+ }, nil).Once()
+
+ // Second GetMember call returns the member with status "removed"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-4"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-4"),
+ bundle.RelationKeyName.String(): pbtypes.String("Member To Remove"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String("👤"),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-4"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("remove.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Writer)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Removed)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ member, err := fx.UpdateMember(ctx, "space-id", "member-4", UpdateMemberRequest{
+ Status: "removed",
+ })
+
+ // then
+ require.NoError(t, err)
+ require.Equal(t, "removed", member.Status)
+ })
+
+ t.Run("invalid status returns error", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // First GetMember call returns a member record
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-5"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-5"),
+ bundle.RelationKeyName.String(): pbtypes.String("Member Invalid Status"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-5"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("invalid.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Active)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ _, err := fx.UpdateMember(ctx, "space-id", "member-5", UpdateMemberRequest{
+ Status: "invalid",
+ Role: "viewer",
+ })
+
+ // then
+ require.ErrorIs(t, err, ErrInvalidApproveMemberStatus)
+ })
+
+ t.Run("invalid role for active update returns error", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // First GetMember call returns a member with status "joining"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-6"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-6"),
+ bundle.RelationKeyName.String(): pbtypes.String("Member Invalid Role"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-6"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("invalidrole.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Joining)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ _, err := fx.UpdateMember(ctx, "space-id", "member-6", UpdateMemberRequest{
+ Status: "active",
+ Role: "invalid",
+ })
+
+ // then
+ require.ErrorIs(t, err, ErrInvalidApproveMemberRole)
+ })
+
+ t.Run("failure in update operation returns error", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ // First GetMember call returns a member with status "joining"
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-7"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{
+ {
+ Fields: map[string]*types.Value{
+ bundle.RelationKeyId.String(): pbtypes.String("member-7"),
+ bundle.RelationKeyName.String(): pbtypes.String("Member Approval Fail"),
+ bundle.RelationKeyIconEmoji.String(): pbtypes.String(""),
+ bundle.RelationKeyIconImage.String(): pbtypes.String(""),
+ bundle.RelationKeyIdentity.String(): pbtypes.String("member-7"),
+ bundle.RelationKeyGlobalName.String(): pbtypes.String("fail.any"),
+ bundle.RelationKeyParticipantPermissions.String(): pbtypes.Int64(int64(model.ParticipantPermissions_Reader)),
+ bundle.RelationKeyParticipantStatus.String(): pbtypes.Int64(int64(model.ParticipantStatus_Joining)),
+ },
+ },
+ },
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // Expect approval call fails
+ fx.mwMock.On("SpaceRequestApprove", mock.Anything, &pb.RpcSpaceRequestApproveRequest{
+ SpaceId: "space-id",
+ Identity: "member-7",
+ Permissions: model.ParticipantPermissions_Reader,
+ }).Return(&pb.RpcSpaceRequestApproveResponse{
+ Error: &pb.RpcSpaceRequestApproveResponseError{Code: pb.RpcSpaceRequestApproveResponseError_UNKNOWN_ERROR},
+ }, nil).Once()
+
+ // when
+ _, err := fx.UpdateMember(ctx, "space-id", "member-7", UpdateMemberRequest{
+ Status: "active",
+ Role: "viewer",
+ })
+
+ // then
+ require.ErrorIs(t, err, ErrFailedUpdateMember)
+ })
+
+ t.Run("failed to get member returns error", func(t *testing.T) {
+ // given
+ ctx := context.Background()
+ fx := newFixture(t)
+
+ fx.mwMock.On("ObjectSearch", mock.Anything, &pb.RpcObjectSearchRequest{
+ SpaceId: "space-id",
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ Operator: model.BlockContentDataviewFilter_No,
+ RelationKey: bundle.RelationKeyIdentity.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String("member-8"),
+ },
+ },
+ Keys: []string{
+ bundle.RelationKeyId.String(),
+ bundle.RelationKeyName.String(),
+ bundle.RelationKeyIconEmoji.String(),
+ bundle.RelationKeyIconImage.String(),
+ bundle.RelationKeyIdentity.String(),
+ bundle.RelationKeyGlobalName.String(),
+ bundle.RelationKeyParticipantPermissions.String(),
+ bundle.RelationKeyParticipantStatus.String(),
+ },
+ }).Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{},
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ // when
+ _, err := fx.UpdateMember(ctx, "space-id", "member-8", UpdateMemberRequest{
+ Status: "active",
+ Role: "viewer",
+ })
+
+ // then
+ require.ErrorIs(t, err, ErrMemberNotFound)
+ })
+}
diff --git a/core/api/pagination/model.go b/core/api/pagination/model.go
index 06539ce63..3d679fec4 100644
--- a/core/api/pagination/model.go
+++ b/core/api/pagination/model.go
@@ -1,13 +1,13 @@
package pagination
type PaginationMeta struct {
- Total int `json:"total" example:"1024"` // the total number of items available on that endpoint
- Offset int `json:"offset" example:"0"` // the current offset
- Limit int `json:"limit" example:"100"` // the current limit
- HasMore bool `json:"has_more" example:"true"` // whether there are more items available
+ Total int `json:"total" example:"1024"` // The total number of items available for the endpoint
+ Offset int `json:"offset" example:"0"` // The number of items skipped before starting to collect the result set
+ Limit int `json:"limit" example:"100"` // The maximum number of items returned in the result set
+ HasMore bool `json:"has_more" example:"true"` // Indicates if there are more items available beyond the current result set
}
type PaginatedResponse[T any] struct {
- Data []T `json:"data"`
- Pagination PaginationMeta `json:"pagination"`
+ Data []T `json:"data"` // The list of items in the current result set
+ Pagination PaginationMeta `json:"pagination"` // The pagination metadata for the response
}
diff --git a/core/api/server/middleware.go b/core/api/server/middleware.go
index da05740b8..833177aa4 100644
--- a/core/api/server/middleware.go
+++ b/core/api/server/middleware.go
@@ -2,6 +2,7 @@ package server
import (
"context"
+ "errors"
"fmt"
"net/http"
"strings"
@@ -10,9 +11,15 @@ import (
"github.com/didip/tollbooth/v8/limiter"
"github.com/gin-gonic/gin"
- "github.com/anyproto/anytype-heart/core/anytype/account"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
+ "github.com/anyproto/anytype-heart/core/api/util"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service"
+)
+
+var (
+ ErrMissingAuthorizationHeader = errors.New("missing authorization header")
+ ErrInvalidAuthorizationHeader = errors.New("invalid authorization header format")
+ ErrInvalidToken = errors.New("invalid token")
)
// rateLimit is a middleware that limits the number of requests per second.
@@ -26,7 +33,8 @@ func (s *Server) rateLimit(max float64) gin.HandlerFunc {
return func(c *gin.Context) {
httpError := tollbooth.LimitByRequest(lmt, c.Writer, c.Request)
if httpError != nil {
- c.AbortWithStatusJSON(httpError.StatusCode, gin.H{"error": httpError.Message})
+ apiErr := util.CodeToAPIError(httpError.StatusCode, httpError.Message)
+ c.AbortWithStatusJSON(httpError.StatusCode, apiErr)
return
}
c.Next()
@@ -34,16 +42,18 @@ func (s *Server) rateLimit(max float64) gin.HandlerFunc {
}
// ensureAuthenticated is a middleware that ensures the request is authenticated.
-func (s *Server) ensureAuthenticated(mw service.ClientCommandsServer) gin.HandlerFunc {
+func (s *Server) ensureAuthenticated(mw apicore.ClientCommands) gin.HandlerFunc {
return func(c *gin.Context) {
authHeader := c.GetHeader("Authorization")
if authHeader == "" {
- c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Missing Authorization header"})
+ apiErr := util.CodeToAPIError(http.StatusUnauthorized, ErrMissingAuthorizationHeader.Error())
+ c.AbortWithStatusJSON(http.StatusUnauthorized, apiErr)
return
}
if !strings.HasPrefix(authHeader, "Bearer ") {
- c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Invalid Authorization header format"})
+ apiErr := util.CodeToAPIError(http.StatusUnauthorized, ErrInvalidAuthorizationHeader.Error())
+ c.AbortWithStatusJSON(http.StatusUnauthorized, apiErr)
return
}
key := strings.TrimPrefix(authHeader, "Bearer ")
@@ -57,7 +67,8 @@ func (s *Server) ensureAuthenticated(mw service.ClientCommandsServer) gin.Handle
if !exists {
response := mw.WalletCreateSession(context.Background(), &pb.RpcWalletCreateSessionRequest{Auth: &pb.RpcWalletCreateSessionRequestAuthOfAppKey{AppKey: key}})
if response.Error.Code != pb.RpcWalletCreateSessionResponseError_NULL {
- c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"error": "Invalid token"})
+ apiErr := util.CodeToAPIError(http.StatusUnauthorized, ErrInvalidToken.Error())
+ c.AbortWithStatusJSON(http.StatusUnauthorized, apiErr)
return
}
token = response.Token
@@ -74,15 +85,15 @@ func (s *Server) ensureAuthenticated(mw service.ClientCommandsServer) gin.Handle
}
// ensureAccountInfo is a middleware that ensures the account info is available in the services.
-func (s *Server) ensureAccountInfo(accountService account.Service) gin.HandlerFunc {
+func (s *Server) ensureAccountInfo(accountService apicore.AccountService) gin.HandlerFunc {
return func(c *gin.Context) {
accInfo, err := accountService.GetInfo(context.Background())
if err != nil {
- c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("failed to get account info: %v", err)})
+ apiErr := util.CodeToAPIError(http.StatusInternalServerError, fmt.Sprintf("failed to get account info: %v", err))
+ c.AbortWithStatusJSON(http.StatusInternalServerError, apiErr)
return
}
- s.exportService.AccountInfo = accInfo
s.objectService.AccountInfo = accInfo
s.spaceService.AccountInfo = accInfo
s.searchService.AccountInfo = accInfo
@@ -90,3 +101,11 @@ func (s *Server) ensureAccountInfo(accountService account.Service) gin.HandlerFu
c.Next()
}
}
+
+// ensureMetadataHeader is a middleware that ensures the metadata header is set.
+func (s *Server) ensureMetadataHeader() gin.HandlerFunc {
+ return func(c *gin.Context) {
+ c.Writer.Header().Set("Anytype-Version", "2025-03-17")
+ c.Next()
+ }
+}
diff --git a/core/api/server/middleware_test.go b/core/api/server/middleware_test.go
new file mode 100644
index 000000000..509d5f370
--- /dev/null
+++ b/core/api/server/middleware_test.go
@@ -0,0 +1,214 @@
+package server
+
+import (
+ "encoding/json"
+ "errors"
+ "net/http"
+ "net/http/httptest"
+ "testing"
+
+ "github.com/gin-gonic/gin"
+ "github.com/stretchr/testify/mock"
+ "github.com/stretchr/testify/require"
+
+ "github.com/anyproto/anytype-heart/core/api/util"
+ "github.com/anyproto/anytype-heart/pb"
+ "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+)
+
+func TestEnsureMetadataHeader(t *testing.T) {
+ t.Run("sets correct header", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ middleware := fx.ensureMetadataHeader()
+ w := httptest.NewRecorder()
+ c, _ := gin.CreateTestContext(w)
+
+ // when
+ middleware(c)
+
+ // then
+ require.Equal(t, "2025-03-17", w.Header().Get("Anytype-Version"))
+ })
+}
+
+func TestEnsureAuthenticated(t *testing.T) {
+ t.Run("missing auth header", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ fx.KeyToToken = make(map[string]string)
+ middleware := fx.ensureAuthenticated(fx.mwMock)
+ w := httptest.NewRecorder()
+ c, _ := gin.CreateTestContext(w)
+ req := httptest.NewRequest("GET", "/", nil)
+ c.Request = req
+
+ // when
+ middleware(c)
+
+ // then
+ require.Equal(t, http.StatusUnauthorized, w.Code)
+ expectedJSON, err := json.Marshal(util.CodeToAPIError(http.StatusUnauthorized, ErrMissingAuthorizationHeader.Error()))
+ require.NoError(t, err)
+ require.JSONEq(t, string(expectedJSON), w.Body.String())
+ })
+
+ t.Run("invalid auth header format", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ fx.KeyToToken = make(map[string]string)
+ middleware := fx.ensureAuthenticated(fx.mwMock)
+ w := httptest.NewRecorder()
+ c, _ := gin.CreateTestContext(w)
+ req := httptest.NewRequest("GET", "/", nil)
+ req.Header.Set("Authorization", "InvalidToken")
+ c.Request = req
+
+ // when
+ middleware(c)
+
+ // then
+ require.Equal(t, http.StatusUnauthorized, w.Code)
+ expectedJSON, err := json.Marshal(util.CodeToAPIError(http.StatusUnauthorized, ErrInvalidAuthorizationHeader.Error()))
+ require.NoError(t, err)
+ require.JSONEq(t, string(expectedJSON), w.Body.String())
+ })
+
+ t.Run("valid token creation", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ fx.KeyToToken = make(map[string]string)
+ tokenExpected := "valid-token"
+
+ fx.mwMock.
+ On("WalletCreateSession", mock.Anything, &pb.RpcWalletCreateSessionRequest{
+ Auth: &pb.RpcWalletCreateSessionRequestAuthOfAppKey{AppKey: "someAppKey"},
+ }).
+ Return(&pb.RpcWalletCreateSessionResponse{
+ Token: tokenExpected,
+ Error: &pb.RpcWalletCreateSessionResponseError{
+ Code: pb.RpcWalletCreateSessionResponseError_NULL,
+ },
+ }, nil).Once()
+
+ middleware := fx.ensureAuthenticated(fx.mwMock)
+ w := httptest.NewRecorder()
+ c, _ := gin.CreateTestContext(w)
+ req := httptest.NewRequest("GET", "/", nil)
+ req.Header.Set("Authorization", "Bearer someAppKey")
+ c.Request = req
+
+ // when
+ middleware(c)
+
+ // then
+ token, exists := c.Get("token")
+ require.True(t, exists)
+ require.Equal(t, tokenExpected, token)
+ })
+
+ t.Run("invalid token", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ fx.KeyToToken = make(map[string]string)
+ middleware := fx.ensureAuthenticated(fx.mwMock)
+ w := httptest.NewRecorder()
+ c, _ := gin.CreateTestContext(w)
+ req := httptest.NewRequest("GET", "/", nil)
+ req.Header.Set("Authorization", "Bearer invalidKey")
+ c.Request = req
+
+ fx.mwMock.
+ On("WalletCreateSession", mock.Anything, &pb.RpcWalletCreateSessionRequest{
+ Auth: &pb.RpcWalletCreateSessionRequestAuthOfAppKey{AppKey: "invalidKey"},
+ }).
+ Return(&pb.RpcWalletCreateSessionResponse{
+ Token: "",
+ Error: &pb.RpcWalletCreateSessionResponseError{
+ Code: pb.RpcWalletCreateSessionResponseError_UNKNOWN_ERROR,
+ },
+ }, nil).Once()
+
+ // when
+ middleware(c)
+
+ // then
+ require.Equal(t, http.StatusUnauthorized, w.Code)
+ expectedJSON, err := json.Marshal(util.CodeToAPIError(http.StatusUnauthorized, ErrInvalidToken.Error()))
+ require.NoError(t, err)
+ require.JSONEq(t, string(expectedJSON), w.Body.String())
+ })
+}
+
+func TestEnsureAccountInfo(t *testing.T) {
+ t.Run("successful account info", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ expectedInfo := &model.AccountInfo{
+ GatewayUrl: "http://localhost:31006",
+ }
+ fx.accountService.On("GetInfo", mock.Anything).Return(expectedInfo, nil).Once()
+
+ // when
+ middleware := fx.ensureAccountInfo(&fx.accountService)
+ w := httptest.NewRecorder()
+ c, _ := gin.CreateTestContext(w)
+
+ // when
+ middleware(c)
+
+ // then
+ require.Equal(t, expectedInfo, fx.objectService.AccountInfo)
+ require.Equal(t, expectedInfo, fx.spaceService.AccountInfo)
+ require.Equal(t, expectedInfo, fx.searchService.AccountInfo)
+ })
+
+ t.Run("error retrieving account info", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ expectedErr := errors.New("failed to get info")
+ fx.accountService.On("GetInfo", mock.Anything).Return(nil, expectedErr).Once()
+
+ middleware := fx.ensureAccountInfo(&fx.accountService)
+ w := httptest.NewRecorder()
+ c, _ := gin.CreateTestContext(w)
+ middleware(c)
+
+ // then
+ require.Equal(t, http.StatusInternalServerError, w.Code)
+ })
+}
+
+func TestRateLimit(t *testing.T) {
+ fx := newFixture(t)
+ router := gin.New()
+ router.GET("/", fx.rateLimit(1), func(c *gin.Context) {
+ c.String(http.StatusOK, "OK")
+ })
+
+ t.Run("first request allowed", func(t *testing.T) {
+ // given
+ w := httptest.NewRecorder()
+ req := httptest.NewRequest("GET", "/", nil)
+ req.RemoteAddr = "1.2.3.4:5678"
+
+ // when
+ router.ServeHTTP(w, req)
+
+ // then
+ require.Equal(t, http.StatusOK, w.Code)
+ })
+
+ t.Run("second request rate-limited", func(t *testing.T) {
+ // given
+ w := httptest.NewRecorder()
+ req := httptest.NewRequest("GET", "/", nil)
+ req.RemoteAddr = "1.2.3.4:5678"
+
+ // when
+ router.ServeHTTP(w, req)
+
+ // then
+ require.Equal(t, http.StatusTooManyRequests, w.Code)
+ })
+}
diff --git a/core/api/server/router.go b/core/api/server/router.go
index e33206a32..119d23108 100644
--- a/core/api/server/router.go
+++ b/core/api/server/router.go
@@ -7,16 +7,16 @@ import (
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
_ "github.com/anyproto/anytype-heart/core/api/docs"
- "github.com/anyproto/anytype-heart/core/anytype/account"
"github.com/anyproto/anytype-heart/core/api/internal/auth"
"github.com/anyproto/anytype-heart/core/api/internal/export"
+ "github.com/anyproto/anytype-heart/core/api/internal/list"
"github.com/anyproto/anytype-heart/core/api/internal/object"
"github.com/anyproto/anytype-heart/core/api/internal/search"
"github.com/anyproto/anytype-heart/core/api/internal/space"
"github.com/anyproto/anytype-heart/core/api/pagination"
- "github.com/anyproto/anytype-heart/pb/service"
)
const (
@@ -28,7 +28,7 @@ const (
)
// NewRouter builds and returns a *gin.Engine with all routes configured.
-func (s *Server) NewRouter(accountService account.Service, mw service.ClientCommandsServer) *gin.Engine {
+func (s *Server) NewRouter(mw apicore.ClientCommands, accountService apicore.AccountService) *gin.Engine {
debug := os.Getenv("ANYTYPE_API_DEBUG") == "1"
if !debug {
gin.SetMode(gin.ReleaseMode)
@@ -36,6 +36,7 @@ func (s *Server) NewRouter(accountService account.Service, mw service.ClientComm
router := gin.New()
router.Use(gin.Recovery())
+ router.Use(s.ensureMetadataHeader())
if debug {
router.Use(gin.Logger())
@@ -64,7 +65,13 @@ func (s *Server) NewRouter(accountService account.Service, mw service.ClientComm
v1.Use(s.ensureAccountInfo(accountService))
{
// Export
- v1.POST("/spaces/:space_id/objects/:object_id/export/:format", export.GetObjectExportHandler(s.exportService))
+ v1.GET("/spaces/:space_id/objects/:object_id/:format", export.GetObjectExportHandler(s.exportService))
+
+ // List
+ v1.GET("/spaces/:space_id/lists/:list_id/views", list.GetListViewsHandler(s.listService))
+ v1.GET("/spaces/:space_id/lists/:list_id/:view_id/objects", list.GetObjectsInListHandler(s.listService))
+ v1.POST("/spaces/:space_id/lists/:list_id/objects", list.AddObjectsToListHandler(s.listService))
+ v1.DELETE("/spaces/:space_id/lists/:list_id/objects/:object_id", s.rateLimit(maxWriteRequestsPerSecond), list.RemoveObjectFromListHandler(s.listService))
// Object
v1.GET("/spaces/:space_id/objects", object.GetObjectsHandler(s.objectService))
@@ -78,7 +85,10 @@ func (s *Server) NewRouter(accountService account.Service, mw service.ClientComm
// Space
v1.GET("/spaces", space.GetSpacesHandler(s.spaceService))
+ v1.GET("/spaces/:space_id", space.GetSpaceHandler(s.spaceService))
v1.GET("/spaces/:space_id/members", space.GetMembersHandler(s.spaceService))
+ v1.GET("/spaces/:space_id/members/:member_id", space.GetMemberHandler(s.spaceService))
+ // v1.PATCH("/spaces/:space_id/members/:member_id", s.rateLimit(maxWriteRequestsPerSecond), space.UpdateMemberHandler(s.spaceService))
v1.POST("/spaces", s.rateLimit(maxWriteRequestsPerSecond), space.CreateSpaceHandler(s.spaceService))
// Type
diff --git a/core/api/server/router_test.go b/core/api/server/router_test.go
new file mode 100644
index 000000000..cadc1a8c0
--- /dev/null
+++ b/core/api/server/router_test.go
@@ -0,0 +1,74 @@
+package server
+
+import (
+ "net/http"
+ "net/http/httptest"
+ "testing"
+
+ "github.com/gogo/protobuf/types"
+ "github.com/stretchr/testify/mock"
+ "github.com/stretchr/testify/require"
+
+ "github.com/anyproto/anytype-heart/pb"
+ "github.com/anyproto/anytype-heart/pkg/lib/pb/model"
+)
+
+func TestRouter_Unauthenticated(t *testing.T) {
+ t.Run("GET /v1/spaces without auth returns 401", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ engine := fx.NewRouter(fx.mwMock, &fx.accountService)
+ w := httptest.NewRecorder()
+ req := httptest.NewRequest("GET", "/v1/spaces", nil)
+
+ // when
+ engine.ServeHTTP(w, req)
+
+ // then
+ require.Equal(t, http.StatusUnauthorized, w.Code)
+ })
+}
+
+func TestRouter_AuthRoute(t *testing.T) {
+ t.Run("POST /v1/auth/token is accessible without auth", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ engine := fx.NewRouter(fx.mwMock, &fx.accountService)
+ w := httptest.NewRecorder()
+ req := httptest.NewRequest("POST", "/v1/auth/token", nil)
+
+ // when
+ engine.ServeHTTP(w, req)
+
+ // then
+ require.NotEqual(t, http.StatusUnauthorized, w.Code)
+ })
+}
+
+func TestRouter_MetadataHeader(t *testing.T) {
+ t.Run("Response includes Anytype-Version header", func(t *testing.T) {
+ // given
+ fx := newFixture(t)
+ engine := fx.NewRouter(fx.mwMock, &fx.accountService)
+ fx.KeyToToken = map[string]string{"validKey": "dummyToken"}
+ fx.accountService.On("GetInfo", mock.Anything).
+ Return(&model.AccountInfo{
+ GatewayUrl: "http://localhost:31006",
+ }, nil).Once()
+ fx.mwMock.On("ObjectSearch", mock.Anything, mock.Anything).
+ Return(&pb.RpcObjectSearchResponse{
+ Records: []*types.Struct{},
+ Error: &pb.RpcObjectSearchResponseError{Code: pb.RpcObjectSearchResponseError_NULL},
+ }, nil).Once()
+
+ w := httptest.NewRecorder()
+ req := httptest.NewRequest("GET", "/v1/spaces", nil)
+ req.Header.Set("Authorization", "Bearer validKey")
+
+ // when
+ engine.ServeHTTP(w, req)
+
+ // then
+ require.Equal(t, "2025-03-17", w.Header().Get("Anytype-Version"))
+ })
+}
diff --git a/core/api/server/server.go b/core/api/server/server.go
index 78fb46793..b27902f5d 100644
--- a/core/api/server/server.go
+++ b/core/api/server/server.go
@@ -5,13 +5,13 @@ import (
"github.com/gin-gonic/gin"
- "github.com/anyproto/anytype-heart/core/anytype/account"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
"github.com/anyproto/anytype-heart/core/api/internal/auth"
"github.com/anyproto/anytype-heart/core/api/internal/export"
+ "github.com/anyproto/anytype-heart/core/api/internal/list"
"github.com/anyproto/anytype-heart/core/api/internal/object"
"github.com/anyproto/anytype-heart/core/api/internal/search"
"github.com/anyproto/anytype-heart/core/api/internal/space"
- "github.com/anyproto/anytype-heart/pb/service"
)
// Server wraps the HTTP server and service logic.
@@ -20,6 +20,7 @@ type Server struct {
authService *auth.AuthService
exportService *export.ExportService
+ listService *list.ListService
objectService *object.ObjectService
spaceService *space.SpaceService
searchService *search.SearchService
@@ -29,16 +30,17 @@ type Server struct {
}
// NewServer constructs a new Server with default config and sets up the routes.
-func NewServer(accountService account.Service, mw service.ClientCommandsServer) *Server {
+func NewServer(mw apicore.ClientCommands, accountService apicore.AccountService, exportService apicore.ExportService) *Server {
s := &Server{
authService: auth.NewService(mw),
- exportService: export.NewService(mw),
+ exportService: export.NewService(mw, exportService),
spaceService: space.NewService(mw),
}
s.objectService = object.NewService(mw, s.spaceService)
+ s.listService = list.NewService(mw, s.objectService)
s.searchService = search.NewService(mw, s.spaceService, s.objectService)
- s.engine = s.NewRouter(accountService, mw)
+ s.engine = s.NewRouter(mw, accountService)
s.KeyToToken = make(map[string]string)
return s
diff --git a/core/api/server/server_test.go b/core/api/server/server_test.go
new file mode 100644
index 000000000..c31c118c2
--- /dev/null
+++ b/core/api/server/server_test.go
@@ -0,0 +1,63 @@
+package server
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/require"
+
+ "github.com/anyproto/anytype-heart/core/api/apicore/mock_apicore"
+)
+
+type fixture struct {
+ *Server
+ accountService mock_apicore.MockAccountService
+ exportService mock_apicore.MockExportService
+ mwMock *mock_apicore.MockClientCommands
+}
+
+func newFixture(t *testing.T) *fixture {
+ mwMock := mock_apicore.NewMockClientCommands(t)
+ accountService := mock_apicore.NewMockAccountService(t)
+ exportService := mock_apicore.NewMockExportService(t)
+ server := NewServer(mwMock, accountService, exportService)
+
+ return &fixture{
+ Server: server,
+ accountService: *accountService,
+ exportService: *exportService,
+ mwMock: mwMock,
+ }
+}
+
+func TestNewServer(t *testing.T) {
+ t.Run("returns valid server", func(t *testing.T) {
+ // when
+ s := newFixture(t)
+
+ // then
+ require.NotNil(t, s)
+ require.NotNil(t, s.engine)
+ require.NotNil(t, s.KeyToToken)
+
+ require.NotNil(t, s.authService)
+ require.NotNil(t, s.exportService)
+ require.NotNil(t, s.spaceService)
+ require.NotNil(t, s.objectService)
+ require.NotNil(t, s.listService)
+ require.NotNil(t, s.searchService)
+
+ })
+}
+
+func TestServer_Engine(t *testing.T) {
+ t.Run("Engine returns same engine instance", func(t *testing.T) {
+ // given
+ s := newFixture(t)
+
+ // when
+ engine := s.Engine()
+
+ // then
+ require.Equal(t, s.engine, engine)
+ })
+}
diff --git a/core/api/service.go b/core/api/service.go
index 6027337b6..1a5fbe090 100644
--- a/core/api/service.go
+++ b/core/api/service.go
@@ -12,8 +12,9 @@ import (
"github.com/anyproto/anytype-heart/core/anytype/account"
"github.com/anyproto/anytype-heart/core/anytype/config"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
"github.com/anyproto/anytype-heart/core/api/server"
- "github.com/anyproto/anytype-heart/pb/service"
+ "github.com/anyproto/anytype-heart/core/block/export"
)
const (
@@ -22,7 +23,7 @@ const (
)
var (
- mwSrv service.ClientCommandsServer
+ mwSrv apicore.ClientCommands
)
type Service interface {
@@ -33,8 +34,9 @@ type Service interface {
type apiService struct {
srv *server.Server
httpSrv *http.Server
- mw service.ClientCommandsServer
- accountService account.Service
+ mw apicore.ClientCommands
+ accountService apicore.AccountService
+ exportService apicore.ExportService
listenAddr string
lock sync.Mutex
}
@@ -49,23 +51,24 @@ func (s *apiService) Name() (name string) {
// Init initializes the API service.
//
-// @title Anytype API
-// @version 1.0
-// @description This API allows interaction with Anytype resources such as spaces, objects and types.
-// @termsOfService https://anytype.io/terms_of_use
-// @contact.name Anytype Support
-// @contact.url https://anytype.io/contact
-// @contact.email support@anytype.io
-// @license.name Any Source Available License 1.0
-// @license.url https://github.com/anyproto/anytype-ts/blob/main/LICENSE.md
-// @host localhost:31009
-// @BasePath /v1
-// @securityDefinitions.basic BasicAuth
-// @externalDocs.description OpenAPI
-// @externalDocs.url https://swagger.io/resources/open-api/
+// @title Anytype API
+// @version 2025-03-17
+// @description This API allows interaction with Anytype resources such as spaces, objects and types.
+// @termsOfService https://anytype.io/terms_of_use
+// @contact.name Anytype Support
+// @contact.url https://anytype.io/contact
+// @contact.email support@anytype.io
+// @license.name Any Source Available License 1.0
+// @license.url https://github.com/anyproto/anytype-api/blob/main/LICENSE.md
+// @host http://localhost:31009
+// @BasePath /v1
+// @securitydefinitions.bearerauth BearerAuth
+// @externalDocs.description OpenAPI
+// @externalDocs.url https://swagger.io/resources/open-api/
func (s *apiService) Init(a *app.App) (err error) {
s.listenAddr = a.MustComponent(config.CName).(*config.Config).JsonApiListenAddr
s.accountService = a.MustComponent(account.CName).(account.Service)
+ s.exportService = a.MustComponent(export.CName).(apicore.ExportService)
return nil
}
@@ -86,7 +89,7 @@ func (s *apiService) runServer() {
return
}
- s.srv = server.NewServer(s.accountService, s.mw)
+ s.srv = server.NewServer(s.mw, s.accountService, s.exportService)
s.httpSrv = &http.Server{
Addr: s.listenAddr,
Handler: s.srv.Engine(),
@@ -130,6 +133,6 @@ func (s *apiService) ReassignAddress(ctx context.Context, listenAddr string) (er
return nil
}
-func SetMiddlewareParams(mw service.ClientCommandsServer) {
+func SetMiddlewareParams(mw apicore.ClientCommands) {
mwSrv = mw
}
diff --git a/core/api/util/error.go b/core/api/util/error.go
index b7553f3fd..764359a57 100644
--- a/core/api/util/error.go
+++ b/core/api/util/error.go
@@ -5,38 +5,52 @@ import (
"net/http"
)
-// 400
+// ValidationError is a struct for 400 errors
type ValidationError struct {
Error struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Bad request"`
} `json:"error"`
}
-// 401
+// UnauthorizedError is a struct for 401 errors
type UnauthorizedError struct {
Error struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Unauthorized"`
} `json:"error"`
}
-// 403
+// ForbiddenError is a struct for 403 errors
type ForbiddenError struct {
Error struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Forbidden"`
} `json:"error"`
}
-// 404
+// NotFoundError is a struct for 404 errors
type NotFoundError struct {
Error struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Resource not found"`
} `json:"error"`
}
-// 500
+// GoneError is a struct for 410 errors
+type GoneError struct {
+ Error struct {
+ Message string `json:"message" example:"Resource is gone"`
+ } `json:"error"`
+}
+
+// RateLimitError is a struct for 423 errors
+type RateLimitError struct {
+ Error struct {
+ Message string `json:"message" example:"Rate limit exceeded"`
+ } `json:"error"`
+}
+
+// ServerError is a struct for 500 errors
type ServerError struct {
Error struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Internal server error"`
} `json:"error"`
}
@@ -72,10 +86,11 @@ func MapErrorCode(err error, mappings ...errCodeMapping) int {
// for the given HTTP code, embedding the supplied message.
func CodeToAPIError(code int, message string) any {
switch code {
- case http.StatusNotFound:
- return NotFoundError{
+
+ case http.StatusBadRequest:
+ return ValidationError{
Error: struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Bad request"`
}{
Message: message,
},
@@ -84,16 +99,34 @@ func CodeToAPIError(code int, message string) any {
case http.StatusUnauthorized:
return UnauthorizedError{
Error: struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Unauthorized"`
}{
Message: message,
},
}
- case http.StatusBadRequest:
- return ValidationError{
+ case http.StatusForbidden:
+ return ForbiddenError{
Error: struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Forbidden"`
+ }{
+ Message: message,
+ },
+ }
+
+ case http.StatusNotFound:
+ return NotFoundError{
+ Error: struct {
+ Message string `json:"message" example:"Resource not found"`
+ }{
+ Message: message,
+ },
+ }
+
+ case http.StatusTooManyRequests:
+ return RateLimitError{
+ Error: struct {
+ Message string `json:"message" example:"Rate limit exceeded"`
}{
Message: message,
},
@@ -102,7 +135,7 @@ func CodeToAPIError(code int, message string) any {
default:
return ServerError{
Error: struct {
- Message string `json:"message"`
+ Message string `json:"message" example:"Internal server error"`
}{
Message: message,
},
diff --git a/core/api/util/util.go b/core/api/util/util.go
index 6c5a74eb9..5d13a8074 100644
--- a/core/api/util/util.go
+++ b/core/api/util/util.go
@@ -4,68 +4,84 @@ import (
"context"
"errors"
"fmt"
- "strings"
+ "github.com/anyproto/anytype-heart/core/api/apicore"
"github.com/anyproto/anytype-heart/pb"
- "github.com/anyproto/anytype-heart/pb/service"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
var (
- ErrFailedSearchType = errors.New("failed to search for type")
- ErrorTypeNotFound = errors.New("type not found")
+ ErrFailedSearchType = errors.New("failed to search for type")
+ ErrorTypeNotFound = errors.New("type not found")
+ ErrFailedSearchProperty = errors.New("failed to search for property")
+ ErrorPropertyNotFound = errors.New("property not found")
)
-// GetIconFromEmojiOrImage returns the icon to use for the object, which can be either an emoji or an image url
-func GetIconFromEmojiOrImage(accountInfo *model.AccountInfo, iconEmoji string, iconImage string) string {
+var iconOptionToColor = map[float64]string{
+ 1: "grey",
+ 2: "yellow",
+ 3: "orange",
+ 4: "red",
+ 5: "pink",
+ 6: "purple",
+ 7: "blue",
+ 8: "ice",
+ 9: "teal",
+ 10: "lime",
+}
+
+type IconFormat string
+
+const (
+ IconFormatEmoji IconFormat = "emoji"
+ IconFormatFile IconFormat = "file"
+ IconFormatIcon IconFormat = "icon"
+)
+
+type Icon struct {
+ Format IconFormat `json:"format" enums:"emoji,file,icon" example:"emoji"` // The type of the icon
+ Emoji *string `json:"emoji,omitempty" example:"📄"` // The emoji of the icon
+ File *string `json:"file,omitempty" example:"http://127.0.0.1:31006/image/bafybeieptz5hvcy6txplcvphjbbh5yjc2zqhmihs3owkh5oab4ezauzqay"` // The file of the icon
+ Name *string `json:"name,omitempty" example:"document"` // The name of the icon
+ Color *string `json:"color,omitempty" example:"red"` // The color of the icon
+}
+
+// StringPtr returns a pointer to the string
+func StringPtr(s string) *string {
+ return &s
+}
+
+// GetIcon returns the icon to use for the object, which can be builtin icon, emoji or file
+func GetIcon(accountInfo *model.AccountInfo, iconEmoji string, iconImage string, iconName string, iconOption float64) Icon {
+ if iconName != "" {
+ return Icon{
+ Format: "icon",
+ Name: &iconName,
+ Color: StringPtr(iconOptionToColor[iconOption]),
+ }
+ }
+
if iconEmoji != "" {
- return iconEmoji
+ return Icon{
+ Format: "emoji",
+ Emoji: &iconEmoji,
+ }
}
if iconImage != "" {
- return fmt.Sprintf("%s/image/%s", accountInfo.GatewayUrl, iconImage)
+ return Icon{
+ Format: "file",
+ File: StringPtr(fmt.Sprintf("%s/image/%s", accountInfo.GatewayUrl, iconImage)),
+ }
}
- return ""
+ return Icon{}
}
-// ResolveTypeToName resolves the type ID to the name of the type, e.g. "ot-page" to "Page" or "bafyreigyb6l5szohs32ts26ku2j42yd65e6hqy2u3gtzgdwqv6hzftsetu" to "Custom Type"
-func ResolveTypeToName(mw service.ClientCommandsServer, spaceId string, typeId string) (typeName string, err error) {
- // Can't look up preinstalled types based on relation key, therefore need to use unique key
- relKey := bundle.RelationKeyId.String()
- if strings.HasPrefix(typeId, "ot-") {
- relKey = bundle.RelationKeyUniqueKey.String()
- }
-
- // Call ObjectSearch for object of specified type and return the name
- resp := mw.ObjectSearch(context.Background(), &pb.RpcObjectSearchRequest{
- SpaceId: spaceId,
- Filters: []*model.BlockContentDataviewFilter{
- {
- Operator: model.BlockContentDataviewFilter_No,
- RelationKey: relKey,
- Condition: model.BlockContentDataviewFilter_Equal,
- Value: pbtypes.String(typeId),
- },
- },
- Keys: []string{bundle.RelationKeyName.String()},
- })
-
- if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
- return "", ErrFailedSearchType
- }
-
- if len(resp.Records) == 0 {
- return "", ErrorTypeNotFound
- }
-
- return resp.Records[0].Fields[bundle.RelationKeyName.String()].GetStringValue(), nil
-}
-
-func ResolveUniqueKeyToTypeId(mw service.ClientCommandsServer, spaceId string, uniqueKey string) (typeId string, err error) {
- // Call ObjectSearch for type with unique key and return the type's ID
+// ResolveUniqueKeyToTypeId resolves the unique key to the type's ID
+func ResolveUniqueKeyToTypeId(mw apicore.ClientCommands, spaceId string, uniqueKey string) (typeId string, err error) {
resp := mw.ObjectSearch(context.Background(), &pb.RpcObjectSearchRequest{
SpaceId: spaceId,
Filters: []*model.BlockContentDataviewFilter{
@@ -78,13 +94,59 @@ func ResolveUniqueKeyToTypeId(mw service.ClientCommandsServer, spaceId string, u
Keys: []string{bundle.RelationKeyId.String()},
})
- if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
- return "", ErrFailedSearchType
- }
+ if resp.Error != nil {
+ if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
+ return "", ErrFailedSearchType
+ }
- if len(resp.Records) == 0 {
- return "", ErrorTypeNotFound
+ if len(resp.Records) == 0 {
+ return "", ErrorTypeNotFound
+ }
}
return resp.Records[0].Fields[bundle.RelationKeyId.String()].GetStringValue(), nil
}
+
+// ResolveIdtoUniqueKey resolves the type's ID to the unique key
+func ResolveIdtoUniqueKey(mw apicore.ClientCommands, spaceId string, typeId string) (uniqueKey string, err error) {
+ resp := mw.ObjectShow(context.Background(), &pb.RpcObjectShowRequest{
+ SpaceId: spaceId,
+ ObjectId: typeId,
+ })
+
+ if resp.Error != nil && resp.Error.Code != pb.RpcObjectShowResponseError_NULL {
+ return "", ErrorTypeNotFound
+ }
+
+ return resp.ObjectView.Details[0].Details.Fields[bundle.RelationKeyUniqueKey.String()].GetStringValue(), nil
+}
+
+// ResolveRelationKeyToPropertyName resolves the property key to the property's name
+func ResolveRelationKeyToPropertyName(mw apicore.ClientCommands, spaceId string, relationKey string) (property string, err error) {
+ resp := mw.ObjectSearch(context.Background(), &pb.RpcObjectSearchRequest{
+ SpaceId: spaceId,
+ Filters: []*model.BlockContentDataviewFilter{
+ {
+ RelationKey: bundle.RelationKeyRelationKey.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.String(relationKey),
+ },
+ {
+ RelationKey: bundle.RelationKeyResolvedLayout.String(),
+ Condition: model.BlockContentDataviewFilter_Equal,
+ Value: pbtypes.Int64(int64(model.ObjectType_relation)),
+ },
+ },
+ Keys: []string{bundle.RelationKeyId.String(), bundle.RelationKeyName.String(), bundle.RelationKeyResolvedLayout.String()},
+ })
+
+ if resp.Error.Code != pb.RpcObjectSearchResponseError_NULL {
+ return "", ErrFailedSearchProperty
+ }
+
+ if len(resp.Records) == 0 {
+ return "", ErrorPropertyNotFound
+ }
+
+ return resp.Records[0].Fields[bundle.RelationKeyName.String()].GetStringValue(), nil
+}
diff --git a/core/block/detailservice/set_details.go b/core/block/detailservice/set_details.go
index 0b8f0b326..eaa1e75ec 100644
--- a/core/block/detailservice/set_details.go
+++ b/core/block/detailservice/set_details.go
@@ -267,12 +267,15 @@ func (s *service) createFavoriteWidget(spc clientspace.Space) error {
if err != nil {
return fmt.Errorf("get widget details: %w", err)
}
+ if widgetDetails.GetBool(bundle.RelationKeyAutoWidgetDisabled) {
+ return nil
+ }
targetIds := widgetDetails.GetStringList(bundle.RelationKeyAutoWidgetTargets)
if slices.Contains(targetIds, widget.DefaultWidgetFavorite) {
return nil
}
return cache.DoState(s.objectGetter, widgetObjectId, func(st *state.State, w widget.Widget) (err error) {
- return w.AddAutoWidget(st, widget.DefaultWidgetFavorite, widget.DefaultWidgetFavorite, "", model.BlockContentWidget_CompactList)
+ return w.AddAutoWidget(st, widget.DefaultWidgetFavorite, widget.DefaultWidgetFavorite, "", model.BlockContentWidget_CompactList, widget.DefaultWidgetFavoriteEventName)
})
}
diff --git a/core/block/editor/archive.go b/core/block/editor/archive.go
index 42b65c018..3f1d419e5 100644
--- a/core/block/editor/archive.go
+++ b/core/block/editor/archive.go
@@ -90,6 +90,9 @@ func (p *Archive) autoInstallBinWidget() error {
if err != nil {
return err
}
+ if widgetDetails.GetBool(bundle.RelationKeyAutoWidgetDisabled) {
+ return nil
+ }
keys := widgetDetails.Get(bundle.RelationKeyAutoWidgetTargets).StringList()
if slices.Contains(keys, widget.DefaultWidgetBin) {
// cache to avoid unnecessary objectstore requests
@@ -100,7 +103,7 @@ func (p *Archive) autoInstallBinWidget() error {
st := sb.NewState()
if w, ok := sb.(widget.Widget); ok {
// We rely on AddAutoWidget to check if the widget was already installed/removed before
- err = w.AddAutoWidget(st, widget.DefaultWidgetBin, widget.DefaultWidgetBin, "", model.BlockContentWidget_Link)
+ err = w.AddAutoWidget(st, widget.DefaultWidgetBin, widget.DefaultWidgetBin, "", model.BlockContentWidget_Link, widget.DefaultWidgetBinEventName)
if err != nil {
return err
}
diff --git a/core/block/editor/widget.go b/core/block/editor/widget.go
index 19a9855a6..7992cc6ba 100644
--- a/core/block/editor/widget.go
+++ b/core/block/editor/widget.go
@@ -14,6 +14,7 @@ import (
"github.com/anyproto/anytype-heart/core/block/simple"
"github.com/anyproto/anytype-heart/core/domain"
"github.com/anyproto/anytype-heart/core/session"
+ "github.com/anyproto/anytype-heart/pb"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/localstore/addr"
"github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore/spaceindex"
@@ -56,6 +57,7 @@ func (w *WidgetObject) CreationStateMigration(ctx *smartblock.InitContext) migra
return migration.Migration{
Version: 2,
Proc: func(st *state.State) {
+ // we purposefully do not add the ALl Objects widget here(as in migration3), because for new users we don't want to auto-create it
template.InitTemplate(st,
template.WithEmpty,
template.WithObjectTypes([]domain.TypeKey{bundle.TypeKeyDashboard}),
@@ -112,6 +114,28 @@ func (w *WidgetObject) StateMigrations() migration.Migrations {
},
},
+ {
+ Version: 3,
+ Proc: func(s *state.State) {
+ // add All Objects widget for existing spaces
+ _, err := w.CreateBlock(s, &pb.RpcBlockCreateWidgetRequest{
+ ContextId: s.RootId(),
+ WidgetLayout: model.BlockContentWidget_Link,
+ Position: model.Block_InnerFirst,
+ TargetId: s.RootId(),
+ ViewId: "",
+ Block: &model.Block{
+ Id: "allObjects",
+ Content: &model.BlockContentOfLink{Link: &model.BlockContentLink{
+ TargetBlockId: widget.DefaultWidgetAll,
+ }},
+ },
+ })
+ if err != nil {
+ log.Warnf("all objects migration failed: %s", err.Error())
+ }
+ },
+ },
},
)
}
diff --git a/core/block/editor/widget/widget.go b/core/block/editor/widget/widget.go
index c3e3b1451..e8d1b150b 100644
--- a/core/block/editor/widget/widget.go
+++ b/core/block/editor/widget/widget.go
@@ -8,6 +8,7 @@ import (
"github.com/anyproto/anytype-heart/core/block/editor/state"
"github.com/anyproto/anytype-heart/core/block/simple"
"github.com/anyproto/anytype-heart/core/domain"
+ "github.com/anyproto/anytype-heart/core/event"
"github.com/anyproto/anytype-heart/pb"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
@@ -19,15 +20,20 @@ const (
DefaultWidgetRecent = "recent"
DefaultWidgetCollection = "collection"
DefaultWidgetBin = "bin"
+ DefaultWidgetAll = "allObjects"
DefaultWidgetRecentOpen = "recentOpen"
- autoWidgetBlockIdPrefix = "auto_" // in case blockId is specifically provided to avoid bad tree merges
+ autoWidgetBlockSuffix = "-wrapper" // in case blockId is specifically provided to avoid bad tree merges
+
+ DefaultWidgetFavoriteEventName = "Favorite"
+ DefaultWidgetBinEventName = "Bin"
)
type Widget interface {
CreateBlock(s *state.State, req *pb.RpcBlockCreateWidgetRequest) (string, error)
// AddAutoWidget adds a widget block. If widget with the same targetId was installed/removed before, it will not be added again.
// blockId is optional and used to protect from multi-device conflicts.
- AddAutoWidget(s *state.State, targetId, blockId, viewId string, layout model.BlockContentWidgetLayout) error
+ // if eventName is empty no event is produced
+ AddAutoWidget(s *state.State, targetId, blockId, viewId string, layout model.BlockContentWidgetLayout, eventName string) error
}
type widget struct {
@@ -71,7 +77,11 @@ func NewWidget(sb smartblock.SmartBlock) Widget {
}
}
-func (w *widget) AddAutoWidget(st *state.State, targetId, widgetBlockId, viewId string, layout model.BlockContentWidgetLayout) error {
+func (w *widget) AddAutoWidget(st *state.State, targetId, widgetBlockId, viewId string, layout model.BlockContentWidgetLayout, eventName string) error {
+ isDisabled := st.Details().Get(bundle.RelationKeyAutoWidgetDisabled).Bool()
+ if isDisabled {
+ return nil
+ }
targets := st.Details().Get(bundle.RelationKeyAutoWidgetTargets).StringList()
if slices.Contains(targets, targetId) {
return nil
@@ -125,7 +135,7 @@ func (w *widget) AddAutoWidget(st *state.State, targetId, widgetBlockId, viewId
position = model.Block_Bottom
}
- _, err = w.CreateBlock(st, &pb.RpcBlockCreateWidgetRequest{
+ _, err = w.createBlock(st, &pb.RpcBlockCreateWidgetRequest{
ContextId: st.RootId(),
ObjectLimit: 6,
WidgetLayout: layout,
@@ -138,11 +148,30 @@ func (w *widget) AddAutoWidget(st *state.State, targetId, widgetBlockId, viewId
TargetBlockId: targetId,
}},
},
- })
- return err
+ }, true)
+ if err != nil {
+ return err
+ }
+
+ if eventName != "" {
+ msg := event.NewMessage(w.SpaceID(), &pb.EventMessageValueOfSpaceAutoWidgetAdded{
+ SpaceAutoWidgetAdded: &pb.EventSpaceAutoWidgetAdded{
+ TargetId: targetId,
+ TargetName: eventName,
+ WidgetBlockId: widgetBlockId,
+ },
+ })
+ w.SendEvent([]*pb.EventMessage{msg})
+ }
+
+ return nil
}
func (w *widget) CreateBlock(s *state.State, req *pb.RpcBlockCreateWidgetRequest) (string, error) {
+ return w.createBlock(s, req, false)
+}
+
+func (w *widget) createBlock(s *state.State, req *pb.RpcBlockCreateWidgetRequest, isAutoAdded bool) (string, error) {
if req.Block.Content == nil {
return "", fmt.Errorf("block has no content")
}
@@ -158,8 +187,8 @@ func (w *widget) CreateBlock(s *state.State, req *pb.RpcBlockCreateWidgetRequest
}
var wrapperBlockId string
- if b.Model().Id != "" {
- wrapperBlockId = autoWidgetBlockIdPrefix + b.Model().Id
+ if b.Model().Id != "" && isAutoAdded {
+ wrapperBlockId = b.Model().Id + autoWidgetBlockSuffix
}
wrapper := simple.New(&model.Block{
@@ -169,9 +198,10 @@ func (w *widget) CreateBlock(s *state.State, req *pb.RpcBlockCreateWidgetRequest
},
Content: &model.BlockContentOfWidget{
Widget: &model.BlockContentWidget{
- Layout: req.WidgetLayout,
- Limit: req.ObjectLimit,
- ViewId: req.ViewId,
+ Layout: req.WidgetLayout,
+ Limit: req.ObjectLimit,
+ ViewId: req.ViewId,
+ AutoAdded: isAutoAdded,
},
},
})
diff --git a/core/block/export/export.go b/core/block/export/export.go
index 9c34bf8ec..0de884a91 100644
--- a/core/block/export/export.go
+++ b/core/block/export/export.go
@@ -3,8 +3,10 @@ package export
import (
"bytes"
"context"
+ "encoding/base64"
"fmt"
"math/rand"
+ "net/url"
"os"
"path/filepath"
"slices"
@@ -39,6 +41,7 @@ import (
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/core/smartblock"
"github.com/anyproto/anytype-heart/pkg/lib/database"
+ "github.com/anyproto/anytype-heart/pkg/lib/gateway"
"github.com/anyproto/anytype-heart/pkg/lib/localstore/addr"
"github.com/anyproto/anytype-heart/pkg/lib/localstore/objectstore"
"github.com/anyproto/anytype-heart/pkg/lib/logging"
@@ -63,12 +66,15 @@ const (
FilesObjects = "filesObjects"
Files = "files"
+
+ defaultFileName = "untitled"
)
var log = logging.Logger("anytype-mw-export")
type Export interface {
Export(ctx context.Context, req pb.RpcObjectListExportRequest) (path string, succeed int, err error)
+ ExportSingleInMemory(ctx context.Context, spaceId string, objectId string, format model.ExportFormat) (res string, err error)
app.Component
}
@@ -81,6 +87,7 @@ type export struct {
accountService account.Service
notificationService notifications.Notifications
processService process.Service
+ gatewayService gateway.Gateway
}
func New() Export {
@@ -96,6 +103,7 @@ func (e *export) Init(a *app.App) (err error) {
e.spaceService = app.MustComponent[space.Service](a)
e.accountService = app.MustComponent[account.Service](a)
e.notificationService = app.MustComponent[notifications.Notifications](a)
+ e.gatewayService, _ = app.GetComponent[gateway.Gateway](a)
return
}
@@ -118,6 +126,20 @@ func (e *export) Export(ctx context.Context, req pb.RpcObjectListExportRequest)
return exportCtx.exportObjects(ctx, queue)
}
+func (e *export) ExportSingleInMemory(ctx context.Context, spaceId string, objectId string, format model.ExportFormat) (res string, err error) {
+ req := pb.RpcObjectListExportRequest{
+ SpaceId: spaceId,
+ ObjectIds: []string{objectId},
+ IncludeFiles: true,
+ Format: format,
+ IncludeNested: true,
+ IncludeArchived: true,
+ }
+
+ exportCtx := newExportContext(e, req)
+ return exportCtx.exportObject(ctx, objectId)
+}
+
func (e *export) finishWithNotification(spaceId string, exportFormat model.ExportFormat, queue process.Queue, err error) {
errCode := model.NotificationExport_NULL
if err != nil {
@@ -168,7 +190,7 @@ type exportContext struct {
relations map[string]struct{}
setOfList map[string]struct{}
objectTypes map[string]struct{}
-
+ gatewayUrl string
*export
}
@@ -190,8 +212,10 @@ func newExportContext(e *export, req pb.RpcObjectListExportRequest) *exportConte
setOfList: make(map[string]struct{}),
objectTypes: make(map[string]struct{}),
relations: make(map[string]struct{}),
-
- export: e,
+ export: e,
+ }
+ if e.gatewayService != nil {
+ ec.gatewayUrl = "http://" + e.gatewayService.Addr()
}
return ec
}
@@ -224,6 +248,41 @@ func (e *exportContext) getStateFilters(id string) *state.Filters {
return nil
}
+// exportObject synchronously exports a single object and return the bytes slice
+func (e *exportContext) exportObject(ctx context.Context, objectId string) (string, error) {
+ e.reqIds = []string{objectId}
+ e.includeArchive = true
+ err := e.docsForExport(ctx)
+ if err != nil {
+ return "", err
+ }
+
+ var docNamer Namer
+ if e.format == model.Export_Markdown && e.gatewayUrl != "" {
+ u, err := url.Parse(e.gatewayUrl)
+ if err != nil {
+ return "", err
+ }
+ docNamer = &deepLinkNamer{gatewayUrl: *u}
+ } else {
+ docNamer = newNamer()
+ }
+ inMemoryWriter := &InMemoryWriter{fn: docNamer}
+ err = e.writeDoc(ctx, inMemoryWriter, objectId, e.docs.transformToDetailsMap())
+ if err != nil {
+ return "", err
+ }
+
+ for _, v := range inMemoryWriter.data {
+ if e.format == model.Export_Protobuf {
+ return base64.StdEncoding.EncodeToString(v), nil
+ }
+ return string(v), nil
+ }
+
+ return "", fmt.Errorf("failed to find data in writer")
+}
+
func (e *exportContext) exportObjects(ctx context.Context, queue process.Queue) (string, int, error) {
var (
err error
@@ -1258,6 +1317,9 @@ func (fn *namer) Get(path, hash, title, ext string) (name string) {
title = slug.Make(strings.TrimSuffix(title, ext))
name = text.TruncateEllipsized(title, fileLenLimit)
name = strings.TrimSuffix(name, text.TruncateEllipsis)
+ if name == "" {
+ name = defaultFileName
+ }
var (
i = 0
b = 36
diff --git a/core/block/export/writer.go b/core/block/export/writer.go
index cc89bbb25..742ae07b4 100644
--- a/core/block/export/writer.go
+++ b/core/block/export/writer.go
@@ -4,22 +4,28 @@ import (
"archive/zip"
"fmt"
"io"
+ "net/url"
"os"
"path"
"path/filepath"
"sync"
"time"
+ "github.com/anyproto/anytype-heart/pkg/lib/mill"
"github.com/anyproto/anytype-heart/util/anyerror"
)
type writer interface {
Path() string
- Namer() *namer
+ Namer() Namer
WriteFile(filename string, r io.Reader, lastModifiedDate int64) (err error)
Close() (err error)
}
+type Namer interface {
+ Get(path, hash, title, ext string) (name string)
+}
+
func uniqName() string {
return time.Now().Format("Anytype.20060102.150405.99")
}
@@ -44,7 +50,7 @@ type dirWriter struct {
m sync.Mutex
}
-func (d *dirWriter) Namer() *namer {
+func (d *dirWriter) Namer() Namer {
d.m.Lock()
defer d.m.Unlock()
if d.fn == nil {
@@ -108,7 +114,7 @@ type zipWriter struct {
fn *namer
}
-func (d *zipWriter) Namer() *namer {
+func (d *zipWriter) Namer() Namer {
d.m.Lock()
defer d.m.Unlock()
if d.fn == nil {
@@ -149,3 +155,66 @@ func (d *zipWriter) Close() (err error) {
func getZipName(path string) string {
return filepath.Join(path, uniqName()+".zip")
}
+
+type InMemoryWriter struct {
+ data map[string][]byte
+ fn Namer
+ m sync.Mutex
+}
+
+func (d *InMemoryWriter) Namer() Namer {
+ return d.fn
+}
+
+func (d *InMemoryWriter) Path() string {
+ return ""
+}
+
+func (d *InMemoryWriter) WriteFile(filename string, r io.Reader, lastModifiedDate int64) (err error) {
+ d.m.Lock()
+ defer d.m.Unlock()
+ if d.data == nil {
+ d.data = make(map[string][]byte)
+ }
+ b, err := io.ReadAll(r)
+ if err != nil {
+ return
+ }
+ d.data[filename] = b
+ return
+}
+
+func (d *InMemoryWriter) Close() (err error) {
+ return nil
+}
+
+func (d *InMemoryWriter) GetData(id string) []byte {
+ d.m.Lock()
+ defer d.m.Unlock()
+ return d.data[id]
+}
+
+// deepLinkNamer used to render a single-object export, in md format
+type deepLinkNamer struct {
+ gatewayUrl url.URL
+}
+
+func (fn *deepLinkNamer) Get(path, hash, title, ext string) (name string) {
+ if ext == ".md" {
+ // object links via deeplink to the app
+ return "anytype://object?objectId=" + hash
+ }
+
+ // files links via gateway
+ if fn.gatewayUrl.Host == "" {
+ return "anytype://object?objectId=" + hash
+ }
+ u := fn.gatewayUrl
+ if mill.IsImageExt(ext) {
+ u.Path = "image/" + hash
+ } else {
+ u.Path = "file/" + hash
+ }
+
+ return u.String()
+}
diff --git a/core/block/export/writer_test.go b/core/block/export/writer_test.go
index 53be6b6ca..6126f3f7f 100644
--- a/core/block/export/writer_test.go
+++ b/core/block/export/writer_test.go
@@ -75,3 +75,22 @@ func TestZipWriter_WriteFile(t *testing.T) {
}
assert.True(t, found)
}
+
+func TestZipWriter_Get(t *testing.T) {
+ t.Run("file without name", func(t *testing.T) {
+ // given
+ path, err := ioutil.TempDir("", "")
+ require.NoError(t, err)
+ defer os.RemoveAll(path)
+
+ wr, err := newZipWriter(path, uniqName()+".zip")
+ require.NoError(t, err)
+
+ // when
+ name := wr.Namer().Get(Files, "hash", "", "")
+
+ // then
+ require.NoError(t, wr.Close())
+ assert.Equal(t, filepath.Join(Files, defaultFileName), name)
+ })
+}
diff --git a/core/block/import/common/collection.go b/core/block/import/common/collection.go
index 101601269..d61bf20e6 100644
--- a/core/block/import/common/collection.go
+++ b/core/block/import/common/collection.go
@@ -12,7 +12,6 @@ import (
"github.com/anyproto/anytype-heart/core/block/simple"
simpleDataview "github.com/anyproto/anytype-heart/core/block/simple/dataview"
"github.com/anyproto/anytype-heart/core/domain"
- "github.com/anyproto/anytype-heart/pb"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
sb "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
@@ -22,25 +21,52 @@ type ImportCollectionSetting struct {
collectionName string
targetObjects []string
icon string
- fileKeys []*pb.ChangeFileKeys
needToAddDate, shouldBeFavorite, shouldAddRelations bool
}
-func MakeImportCollectionSetting(
- collectionName string,
- targetObjects []string,
- icon string,
- fileKeys []*pb.ChangeFileKeys,
- needToAddDate, shouldBeFavorite, shouldAddRelations bool,
-) *ImportCollectionSetting {
- return &ImportCollectionSetting{
- collectionName: collectionName,
- targetObjects: targetObjects,
- icon: icon,
- fileKeys: fileKeys,
- needToAddDate: needToAddDate,
- shouldBeFavorite: shouldBeFavorite,
- shouldAddRelations: shouldAddRelations,
+type ImportCollectionOption func(*ImportCollectionSetting)
+
+func NewImportCollectionSetting(opts ...ImportCollectionOption) *ImportCollectionSetting {
+ s := &ImportCollectionSetting{}
+ for _, opt := range opts {
+ opt(s)
+ }
+ return s
+}
+
+func WithCollectionName(name string) ImportCollectionOption {
+ return func(s *ImportCollectionSetting) {
+ s.collectionName = name
+ }
+}
+
+func WithTargetObjects(objs []string) ImportCollectionOption {
+ return func(s *ImportCollectionSetting) {
+ s.targetObjects = objs
+ }
+}
+
+func WithIcon(icon string) ImportCollectionOption {
+ return func(s *ImportCollectionSetting) {
+ s.icon = icon
+ }
+}
+
+func WithAddDate() ImportCollectionOption {
+ return func(s *ImportCollectionSetting) {
+ s.needToAddDate = true
+ }
+}
+
+func WithFavorite() ImportCollectionOption {
+ return func(s *ImportCollectionSetting) {
+ s.shouldBeFavorite = true
+ }
+}
+
+func WithRelations() ImportCollectionOption {
+ return func(s *ImportCollectionSetting) {
+ s.shouldAddRelations = true
}
}
@@ -75,14 +101,13 @@ func (r *ImportCollection) MakeImportCollection(req *ImportCollectionSetting) (*
detailsStruct = st.CombinedDetails().Merge(detailsStruct)
st.UpdateStoreSlice(template.CollectionStoreKey, req.targetObjects)
- return r.getRootCollectionSnapshot(req.collectionName, st, detailsStruct, req.fileKeys), nil
+ return r.getRootCollectionSnapshot(req.collectionName, st, detailsStruct), nil
}
func (r *ImportCollection) getRootCollectionSnapshot(
collectionName string,
st *state.State,
detailsStruct *domain.Details,
- fileKeys []*pb.ChangeFileKeys,
) *Snapshot {
if detailsStruct == nil {
detailsStruct = domain.NewDetails()
@@ -100,7 +125,6 @@ func (r *ImportCollection) getRootCollectionSnapshot(
RelationLinks: st.GetRelationLinks(),
Collections: st.Store(),
},
- FileKeys: fileKeys,
},
}
}
diff --git a/core/block/import/common/collection_test.go b/core/block/import/common/collection_test.go
new file mode 100644
index 000000000..e616e72db
--- /dev/null
+++ b/core/block/import/common/collection_test.go
@@ -0,0 +1,61 @@
+package common
+
+import (
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/assert"
+
+ "github.com/anyproto/anytype-heart/core/block/collection"
+ "github.com/anyproto/anytype-heart/core/domain"
+ "github.com/anyproto/anytype-heart/pkg/lib/bundle"
+)
+
+func TestMakeImportCollection(t *testing.T) {
+ tests := []struct {
+ name string
+ needToAddDate bool
+ shouldBeFavorite bool
+ shouldAddRelation bool
+ }{
+ {"all false", false, false, false},
+ {"add date", true, false, false},
+ {"add favorite", false, true, false},
+ {"add relations", false, false, true},
+ {"all True", true, true, true},
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ importer := NewImportCollection(collection.New())
+
+ req := NewImportCollectionSetting(
+ WithCollectionName("My Collection"),
+ WithTargetObjects([]string{"obj1", "obj2"}),
+ WithIcon("icon.png"),
+ )
+
+ req.needToAddDate = tt.needToAddDate
+ req.shouldBeFavorite = tt.shouldBeFavorite
+ req.shouldAddRelations = tt.shouldAddRelation
+
+ root, err := importer.MakeImportCollection(req)
+
+ assert.NoError(t, err)
+ assert.NotNil(t, root)
+
+ if tt.needToAddDate {
+ assert.Contains(t, root.FileName, time.Now().Format("2006"))
+ } else {
+ assert.Equal(t, "My Collection", root.FileName)
+ }
+
+ if tt.shouldBeFavorite {
+ assert.Equal(t, domain.Bool(true), root.Snapshot.Data.Details.Get(bundle.RelationKeyIsFavorite))
+ } else {
+ assert.Equal(t, domain.Bool(false), root.Snapshot.Data.Details.Get(bundle.RelationKeyIsFavorite))
+ }
+
+ })
+ }
+}
diff --git a/core/block/import/csv/converter.go b/core/block/import/csv/converter.go
index a097088c9..82dfe18ed 100644
--- a/core/block/import/csv/converter.go
+++ b/core/block/import/csv/converter.go
@@ -67,7 +67,12 @@ func (c *CSV) GetSnapshots(ctx context.Context, req *pb.RpcObjectImportRequest,
return nil, allErrors
}
rootCollection := common.NewImportCollection(c.collectionService)
- settings := common.MakeImportCollectionSetting(rootCollectionName, result.objectIDs, "", nil, true, true, true)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(rootCollectionName),
+ common.WithTargetObjects(result.objectIDs),
+ common.WithAddDate(),
+ common.WithRelations(),
+ )
rootCol, err := rootCollection.MakeImportCollection(settings)
if err != nil {
allErrors.Add(err)
diff --git a/core/block/import/html/converter.go b/core/block/import/html/converter.go
index bf3e711fc..f40f26c2f 100644
--- a/core/block/import/html/converter.go
+++ b/core/block/import/html/converter.go
@@ -66,7 +66,12 @@ func (h *HTML) GetSnapshots(ctx context.Context, req *pb.RpcObjectImportRequest,
return nil, allErrors
}
rootCollection := common.NewImportCollection(h.collectionService)
- settings := common.MakeImportCollectionSetting(rootCollectionName, targetObjects, "", nil, true, true, true)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(rootCollectionName),
+ common.WithTargetObjects(targetObjects),
+ common.WithAddDate(),
+ common.WithRelations(),
+ )
rootCollectionSnapshot, err := rootCollection.MakeImportCollection(settings)
if err != nil {
allErrors.Add(err)
diff --git a/core/block/import/importer.go b/core/block/import/importer.go
index be951427d..b131de4f1 100644
--- a/core/block/import/importer.go
+++ b/core/block/import/importer.go
@@ -70,6 +70,7 @@ type Import struct {
importCtx context.Context
importCtxCancel context.CancelFunc
+ spaceService space.Service
}
func New() Importer {
@@ -82,6 +83,7 @@ func (i *Import) Init(a *app.App) (err error) {
i.s = app.MustComponent[*block.Service](a)
accountService := app.MustComponent[account.Service](a)
spaceService := app.MustComponent[space.Service](a)
+ i.spaceService = spaceService
col := app.MustComponent[*collection.Service](a)
i.tempDirProvider = app.MustComponent[core.TempDirProvider](a)
converters := []common.Converter{
@@ -180,10 +182,33 @@ func (i *Import) importObjects(ctx context.Context, importRequest *ImportRequest
func (i *Import) onImportFinish(res *ImportResponse, req *ImportRequest, importId string) {
i.finishImportProcess(res.Err, req)
i.sendFileEvents(res.Err)
+ if res.RootCollectionId != "" {
+ i.addRootCollectionWidget(res, req)
+ }
i.recordEvent(&metrics.ImportFinishedEvent{ID: importId, ImportType: req.Type.String()})
i.sendImportFinishEventToClient(res.RootCollectionId, req.IsSync, res.ObjectsCount, req.Type)
}
+func (i *Import) addRootCollectionWidget(res *ImportResponse, req *ImportRequest) {
+ spc, err := i.spaceService.Get(i.importCtx, req.SpaceId)
+ if err != nil {
+ log.Errorf("failed to create widget from root collection, error: %s", err.Error())
+ } else {
+ _, err = i.s.CreateWidgetBlock(nil, &pb.RpcBlockCreateWidgetRequest{
+ ContextId: spc.DerivedIDs().Widgets,
+ WidgetLayout: model.BlockContentWidget_CompactList,
+ Block: &model.Block{
+ Content: &model.BlockContentOfLink{Link: &model.BlockContentLink{
+ TargetBlockId: res.RootCollectionId,
+ }},
+ },
+ })
+ if err != nil {
+ log.Errorf("failed to create widget from root collection, error: %s", err.Error())
+ }
+ }
+}
+
func (i *Import) sendFileEvents(returnedErr error) {
if returnedErr == nil {
i.fileSync.SendImportEvents()
diff --git a/core/block/import/importer_test.go b/core/block/import/importer_test.go
index 782699cd7..98c23ad7d 100644
--- a/core/block/import/importer_test.go
+++ b/core/block/import/importer_test.go
@@ -16,6 +16,7 @@ import (
"github.com/anyproto/anytype-heart/core/block/import/web/parsers/mock_parsers"
"github.com/anyproto/anytype-heart/core/block/process"
"github.com/anyproto/anytype-heart/core/domain"
+ "github.com/anyproto/anytype-heart/space/mock_space"
"github.com/anyproto/anytype-heart/core/block/import/common"
"github.com/anyproto/anytype-heart/core/block/import/common/mock_common"
@@ -971,6 +972,9 @@ func Test_ImportRootCollectionInResponse(t *testing.T) {
fileSync.EXPECT().SendImportEvents().Return().Times(1)
fileSync.EXPECT().ClearImportEvents().Return().Times(1)
i.fileSync = fileSync
+ mockSpaceService := mock_space.NewMockService(t)
+ mockSpaceService.EXPECT().Get(nil, "space1").Return(nil, fmt.Errorf("not found"))
+ i.spaceService = mockSpaceService
// when
importRequest := &ImportRequest{
diff --git a/core/block/import/markdown/anymark/anyblocks.go b/core/block/import/markdown/anymark/anyblocks.go
index eeea01d64..729b9855f 100644
--- a/core/block/import/markdown/anymark/anyblocks.go
+++ b/core/block/import/markdown/anymark/anyblocks.go
@@ -6,6 +6,7 @@ import (
"github.com/gogo/protobuf/types"
+ "github.com/anyproto/anytype-heart/pkg/lib/mill"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
@@ -98,7 +99,6 @@ func ConvertTextToFile(filePath string) *model.BlockContentOfFile {
return nil
}
- imageFormats := []string{"jpg", "jpeg", "png", "gif", "webp"}
videoFormats := []string{"mp4", "m4v", "mov"}
audioFormats := []string{"mp3", "ogg", "wav", "m4a", "flac"}
pdfFormat := "pdf"
@@ -107,11 +107,8 @@ func ConvertTextToFile(filePath string) *model.BlockContentOfFile {
fileExt := filepath.Ext(filePath)
if fileExt != "" {
fileExt = fileExt[1:]
- for _, ext := range imageFormats {
- if strings.EqualFold(fileExt, ext) {
- fileType = model.BlockContentFile_Image
- break
- }
+ if mill.IsImageExt(fileExt) {
+ fileType = model.BlockContentFile_Image
}
for _, ext := range videoFormats {
diff --git a/core/block/import/markdown/import.go b/core/block/import/markdown/import.go
index e519effc3..71b7e411e 100644
--- a/core/block/import/markdown/import.go
+++ b/core/block/import/markdown/import.go
@@ -102,7 +102,12 @@ func (m *Markdown) processFiles(req *pb.RpcObjectImportRequest, progress process
func (m *Markdown) createRootCollection(allSnapshots []*common.Snapshot, allRootObjectsIds []string) ([]*common.Snapshot, string, error) {
rootCollection := common.NewImportCollection(m.service)
- settings := common.MakeImportCollectionSetting(rootCollectionName, allRootObjectsIds, "", nil, true, true, true)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(rootCollectionName),
+ common.WithTargetObjects(allRootObjectsIds),
+ common.WithAddDate(),
+ common.WithRelations(),
+ )
rootCol, err := rootCollection.MakeImportCollection(settings)
if err != nil {
return nil, "", err
@@ -424,7 +429,10 @@ func (m *Markdown) createSnapshots(
func (m *Markdown) addCollectionSnapshot(fileName string, file *FileInfo, snapshots []*common.Snapshot) ([]*common.Snapshot, error) {
c := common.NewImportCollection(m.service)
- settings := common.MakeImportCollectionSetting(file.Title, file.CollectionsObjectsIds, "", nil, false, false, false)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(file.Title),
+ common.WithTargetObjects(file.CollectionsObjectsIds),
+ )
csvCollection, err := c.MakeImportCollection(settings)
if err != nil {
return nil, err
diff --git a/core/block/import/notion/api/database/database.go b/core/block/import/notion/api/database/database.go
index 997687e0f..264242387 100644
--- a/core/block/import/notion/api/database/database.go
+++ b/core/block/import/notion/api/database/database.go
@@ -351,7 +351,12 @@ func (ds *Service) AddObjectsToNotionCollection(notionContext *api.NotionImportC
allObjects := ds.filterObjects(notionContext, notionDB, notionPages)
rootCollection := common.NewImportCollection(ds.collectionService)
- settings := common.MakeImportCollectionSetting(rootCollectionName, allObjects, "", nil, true, true, true)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(rootCollectionName),
+ common.WithTargetObjects(allObjects),
+ common.WithAddDate(),
+ common.WithRelations(),
+ )
rootCol, err := rootCollection.MakeImportCollection(settings)
if err != nil {
return nil, err
diff --git a/core/block/import/pb/gallery.go b/core/block/import/pb/gallery.go
index 2945dd4f7..e82fe3bf2 100644
--- a/core/block/import/pb/gallery.go
+++ b/core/block/import/pb/gallery.go
@@ -2,7 +2,6 @@ package pb
import (
"github.com/globalsign/mgo/bson"
- "github.com/samber/lo"
"github.com/anyproto/anytype-heart/core/block/collection"
"github.com/anyproto/anytype-heart/core/block/editor/state"
@@ -40,13 +39,9 @@ func (g *GalleryImport) ProvideCollection(snapshots []*common.Snapshot,
if widget != nil {
widgetObjects = g.getObjectsFromWidgets(widget)
}
- var (
- icon string
- fileKeys []*pb.ChangeFileKeys
- )
+ var icon string
if workspaceSnapshot != nil { // we use space icon for import collection
icon = workspaceSnapshot.Snapshot.Data.Details.GetString(bundle.RelationKeyIconImage)
- fileKeys = lo.Filter(workspaceSnapshot.Snapshot.FileKeys, func(item *pb.ChangeFileKeys, index int) bool { return item.Hash == icon })
}
collectionName := params.GetCollectionTitle() // collection name should be the name of experience
if collectionName == "" {
@@ -54,13 +49,18 @@ func (g *GalleryImport) ProvideCollection(snapshots []*common.Snapshot,
}
rootCollection := common.NewImportCollection(g.service)
if len(widgetObjects) > 0 {
- collectionsSnapshots, err = g.getWidgetsCollection(collectionName, rootCollection, widgetObjects, icon, fileKeys, widget, collectionsSnapshots)
+ collectionsSnapshots, err = g.getWidgetsCollection(collectionName, rootCollection, widgetObjects, icon, widget, collectionsSnapshots)
if err != nil {
return nil, err
}
}
objectsIDs := g.getObjectsIDs(snapshots)
- settings := common.MakeImportCollectionSetting(collectionName, objectsIDs, icon, fileKeys, false, true, true)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(collectionName),
+ common.WithTargetObjects(objectsIDs),
+ common.WithIcon(icon),
+ common.WithRelations(),
+ )
objectsCollection, err := rootCollection.MakeImportCollection(settings)
if err != nil {
return nil, err
@@ -73,12 +73,16 @@ func (g *GalleryImport) getWidgetsCollection(collectionName string,
rootCollection *common.ImportCollection,
widgetObjects []string,
icon string,
- fileKeys []*pb.ChangeFileKeys,
widget *common.Snapshot,
collectionsSnapshots []*common.Snapshot,
) ([]*common.Snapshot, error) {
widgetCollectionName := collectionName + widgetCollectionPattern
- settings := common.MakeImportCollectionSetting(widgetCollectionName, widgetObjects, icon, fileKeys, false, false, true)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(widgetCollectionName),
+ common.WithTargetObjects(widgetObjects),
+ common.WithIcon(icon),
+ common.WithRelations(),
+ )
widgetsCollectionSnapshot, err := rootCollection.MakeImportCollection(settings)
if err != nil {
return nil, err
diff --git a/core/block/import/pb/space.go b/core/block/import/pb/space.go
index 73e69e29a..6a967e62a 100644
--- a/core/block/import/pb/space.go
+++ b/core/block/import/pb/space.go
@@ -56,7 +56,12 @@ func (s *SpaceImport) ProvideCollection(snapshots []*common.Snapshot,
})
}
rootCollection := common.NewImportCollection(s.service)
- settings := common.MakeImportCollectionSetting(rootCollectionName, rootObjects, "", nil, true, true, true)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(rootCollectionName),
+ common.WithTargetObjects(rootObjects),
+ common.WithRelations(),
+ common.WithAddDate(),
+ )
rootCollectionSnapshot, err := rootCollection.MakeImportCollection(settings)
if err != nil {
return nil, err
diff --git a/core/block/import/txt/converter.go b/core/block/import/txt/converter.go
index 5facbacc8..2282c2c4b 100644
--- a/core/block/import/txt/converter.go
+++ b/core/block/import/txt/converter.go
@@ -56,7 +56,12 @@ func (t *TXT) GetSnapshots(ctx context.Context, req *pb.RpcObjectImportRequest,
return nil, allErrors
}
rootCollection := common.NewImportCollection(t.service)
- settings := common.MakeImportCollectionSetting(rootCollectionName, targetObjects, "", nil, true, true, true)
+ settings := common.NewImportCollectionSetting(
+ common.WithCollectionName(rootCollectionName),
+ common.WithTargetObjects(targetObjects),
+ common.WithRelations(),
+ common.WithAddDate(),
+ )
rootCol, err := rootCollection.MakeImportCollection(settings)
if err != nil {
allErrors.Add(err)
diff --git a/core/block/widget.go b/core/block/widget.go
index 13380a675..c86af9f61 100644
--- a/core/block/widget.go
+++ b/core/block/widget.go
@@ -95,8 +95,12 @@ func (s *Service) CreateTypeWidgetIfMissing(ctx context.Context, spaceId string,
return err
}
widgetObjectId := space.DerivedIDs().Widgets
- widgetDetails, err := s.objectStore.SpaceIndex(space.Id()).GetDetails(widgetObjectId)
+ spaceIndex := s.objectStore.SpaceIndex(space.Id())
+ widgetDetails, err := spaceIndex.GetDetails(widgetObjectId)
if err == nil {
+ if widgetDetails.GetBool(bundle.RelationKeyAutoWidgetDisabled) {
+ return nil
+ }
keys := widgetDetails.Get(bundle.RelationKeyAutoWidgetTargets).StringList()
if slices.Contains(keys, typeId) {
// widget was created before
@@ -104,7 +108,7 @@ func (s *Service) CreateTypeWidgetIfMissing(ctx context.Context, spaceId string,
}
}
// this is not optimal, maybe it should be some cheaper way
- records, err := s.objectStore.SpaceIndex(space.Id()).QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{
+ records, err := spaceIndex.QueryRaw(&database.Filters{FilterObj: database.FiltersAnd{
database.FilterEq{
Key: bundle.RelationKeyType,
Cond: model.BlockContentDataviewFilter_Equal,
@@ -128,7 +132,16 @@ func (s *Service) CreateTypeWidgetIfMissing(ctx context.Context, spaceId string,
// only create widget if this was the first object of this type created
return nil
}
+
+ var targetName string
+ typeDetails, err := spaceIndex.GetDetails(typeId)
+ if err == nil {
+ targetName = typeDetails.Get(bundle.RelationKeyPluralName).String()
+ if targetName == "" {
+ targetName = typeDetails.Get(bundle.RelationKeyName).String()
+ }
+ }
return cache.DoState(s, widgetObjectId, func(st *state.State, w widget.Widget) (err error) {
- return w.AddAutoWidget(st, typeId, key.String(), addr.ObjectTypeAllViewId, model.BlockContentWidget_View)
+ return w.AddAutoWidget(st, typeId, key.String(), addr.ObjectTypeAllViewId, model.BlockContentWidget_View, targetName)
})
}
diff --git a/core/debug/netcheck.go b/core/debug/netcheck.go
index eff9f1b60..8940cd019 100644
--- a/core/debug/netcheck.go
+++ b/core/debug/netcheck.go
@@ -223,7 +223,7 @@ func (c config) GetYamux() yamux.Config {
func (c config) GetQuic() quic.Config {
return quic.Config{
- WriteTimeoutSec: 60,
+ WriteTimeoutSec: 1200,
DialTimeoutSec: 60,
KeepAlivePeriodSec: 120,
}
diff --git a/core/event/event_grpc.go b/core/event/event_grpc.go
index 9fd445c8f..7e14b658d 100644
--- a/core/event/event_grpc.go
+++ b/core/event/event_grpc.go
@@ -75,7 +75,7 @@ func (es *GrpcSender) sendEvent(server SessionServer, event *pb.Event) {
if s, ok := status.FromError(err); ok && s.Code() == codes.Unavailable {
es.shutdownCh <- server.Token
}
- if strings.Contains(err.Error(), "rpc error: code = Unavailable desc = transport is closing") {
+ if strings.Contains(err.Error(), "transport is closing") {
log.Errorf("failed to send event: %v", err)
}
}
diff --git a/core/export.go b/core/export.go
index 641e04c12..c5ee4a36e 100644
--- a/core/export.go
+++ b/core/export.go
@@ -37,3 +37,31 @@ func (mw *Middleware) ObjectListExport(cctx context.Context, req *pb.RpcObjectLi
})
return response(path, succeed, err)
}
+
+func (mw *Middleware) ObjectExport(cctx context.Context, req *pb.RpcObjectExportRequest) *pb.RpcObjectExportResponse {
+ response := func(result string, err error) (res *pb.RpcObjectExportResponse) {
+ res = &pb.RpcObjectExportResponse{
+ Error: &pb.RpcObjectExportResponseError{
+ Code: pb.RpcObjectExportResponseError_NULL,
+ },
+ }
+ if err != nil {
+ res.Error.Code = pb.RpcObjectExportResponseError_UNKNOWN_ERROR
+ res.Error.Description = getErrorDescription(err)
+ return
+ } else {
+ res.Result = result
+ }
+ return res
+ }
+ var (
+ result string
+ err error
+ )
+ err = mw.doBlockService(func(_ *block.Service) error {
+ es := mw.applicationService.GetApp().MustComponent(export.CName).(export.Export)
+ result, err = es.ExportSingleInMemory(cctx, req.SpaceId, req.ObjectId, req.Format)
+ return err
+ })
+ return response(result, err)
+}
diff --git a/core/files/fileobject/fileindex.go b/core/files/fileobject/fileindex.go
index 4b8b5dfbc..a97690832 100644
--- a/core/files/fileobject/fileindex.go
+++ b/core/files/fileobject/fileindex.go
@@ -210,6 +210,9 @@ func logIndexLoop(err error) {
if errors.Is(err, rpcstore.ErrNoConnectionToAnyFileClient) {
return
}
+ if errors.Is(err, files.FailedProtoUnmarshallError) {
+ return
+ }
log.Errorf("index loop: %v", err)
}
diff --git a/core/files/files.go b/core/files/files.go
index d0d113926..4e72d5f02 100644
--- a/core/files/files.go
+++ b/core/files/files.go
@@ -42,7 +42,10 @@ const (
CName = "files"
)
-var log = logging.Logger("anytype-files")
+var (
+ log = logging.Logger("anytype-files")
+ FailedProtoUnmarshallError = errors.New("failed proto unmarshall")
+)
var _ Service = (*service)(nil)
@@ -306,7 +309,7 @@ func (s *service) fileInfoFromPath(ctx context.Context, spaceId string, fileId d
}
err = proto.Unmarshal(b, &file)
if err != nil || file.Hash == "" {
- return nil, fmt.Errorf("failed to unmarshal not-encrypted file info: %w", err)
+ return nil, fmt.Errorf("failed to unmarshal not-encrypted file info: %w", FailedProtoUnmarshallError)
}
}
diff --git a/core/filestorage/filesync/upload.go b/core/filestorage/filesync/upload.go
index c89fb637b..0a73c9a9c 100644
--- a/core/filestorage/filesync/upload.go
+++ b/core/filestorage/filesync/upload.go
@@ -349,7 +349,6 @@ func (s *fileSync) uploadFile(ctx context.Context, spaceID string, fileId domain
if err != nil {
log.Warn("delete limit reached error logged", zap.String("fileId", fileId.String()), zap.Error(err))
}
- log.Warn("done upload", zap.String("fileId", fileId.String()), zap.Int("bytesToUpload", blocksAvailability.bytesToUpload), zap.Int("bytesUploaded", totalBytesUploaded))
return nil
}
diff --git a/core/publish/service.go b/core/publish/service.go
index 352ef9546..2b2d1c441 100644
--- a/core/publish/service.go
+++ b/core/publish/service.go
@@ -124,7 +124,7 @@ func uniqName() string {
return time.Now().Format("Anytype.WebPublish.20060102.150405.99")
}
-func (s *service) exportToDir(ctx context.Context, spaceId, pageId string) (dirEntries []fs.DirEntry, exportPath string, err error) {
+func (s *service) exportToDir(ctx context.Context, spaceId, pageId string, includeSpaceInfo bool) (dirEntries []fs.DirEntry, exportPath string, err error) {
tempDir := os.TempDir()
exportPath, _, err = s.exportService.Export(ctx, pb.RpcObjectListExportRequest{
SpaceId: spaceId,
@@ -137,7 +137,7 @@ func (s *service) exportToDir(ctx context.Context, spaceId, pageId string) (dirE
NoProgress: true,
IncludeNested: true,
IncludeBacklinks: true,
- IncludeSpace: true,
+ IncludeSpace: includeSpaceInfo,
LinksStateFilters: &pb.RpcObjectListExportStateFilters{
RelationsWhiteList: relationsWhiteListToPbModel(),
RemoveBlocks: true,
@@ -155,7 +155,12 @@ func (s *service) exportToDir(ctx context.Context, spaceId, pageId string) (dirE
}
func (s *service) publishToPublishServer(ctx context.Context, spaceId, pageId, uri, globalName string, joinSpace bool) (err error) {
- dirEntries, exportPath, err := s.exportToDir(ctx, spaceId, pageId)
+ spc, err := s.spaceService.Get(ctx, spaceId)
+ if err != nil {
+ return err
+ }
+ includeInviteLinkAndSpaceInfo := joinSpace && !spc.IsPersonal()
+ dirEntries, exportPath, err := s.exportToDir(ctx, spaceId, pageId, includeInviteLinkAndSpaceInfo)
if err != nil {
return err
}
@@ -177,12 +182,7 @@ func (s *service) publishToPublishServer(ctx context.Context, spaceId, pageId, u
return err
}
- spc, err := s.spaceService.Get(ctx, spaceId)
- if err != nil {
- return err
- }
-
- err = s.applyInviteLink(ctx, spc, &uberSnapshot, joinSpace)
+ err = s.applyInviteLink(ctx, spaceId, &uberSnapshot, includeInviteLinkAndSpaceInfo)
if err != nil {
return err
}
@@ -210,12 +210,18 @@ func (s *service) publishToPublishServer(ctx context.Context, spaceId, pageId, u
return nil
}
-func (s *service) applyInviteLink(ctx context.Context, spc clientspace.Space, snapshot *PublishingUberSnapshot, joinSpace bool) error {
- inviteLink, err := s.extractInviteLink(ctx, spc.Id(), joinSpace, spc.IsPersonal())
+func (s *service) applyInviteLink(ctx context.Context, spaceId string, snapshot *PublishingUberSnapshot, includeInviteLink bool) error {
+ if !includeInviteLink {
+ return nil
+ }
+ inviteInfo, err := s.inviteService.GetCurrent(ctx, spaceId)
+ if err != nil && errors.Is(err, inviteservice.ErrInviteNotExists) {
+ return nil
+ }
if err != nil {
return err
}
- snapshot.Meta.InviteLink = inviteLink
+ snapshot.Meta.InviteLink = fmt.Sprintf(inviteLinkUrlTemplate, inviteInfo.InviteFileCid, inviteInfo.InviteFileKey)
return nil
}
@@ -366,21 +372,6 @@ func (s *service) publishToServer(ctx context.Context, spaceId, pageId, uri, ver
return nil
}
-func (s *service) extractInviteLink(ctx context.Context, spaceId string, joinSpace, isPersonal bool) (string, error) {
- var inviteLink string
- if joinSpace && !isPersonal {
- inviteInfo, err := s.inviteService.GetCurrent(ctx, spaceId)
- if err != nil && errors.Is(err, inviteservice.ErrInviteNotExists) {
- return "", nil
- }
- if err != nil {
- return "", err
- }
- inviteLink = fmt.Sprintf(inviteLinkUrlTemplate, inviteInfo.InviteFileCid, inviteInfo.InviteFileKey)
- }
- return inviteLink, nil
-}
-
func (s *service) evaluateDocumentVersion(ctx context.Context, spc clientspace.Space, pageId string, joinSpace bool) (string, error) {
treeStorage, err := spc.Storage().TreeStorage(ctx, pageId)
if err != nil {
diff --git a/core/publish/service_test.go b/core/publish/service_test.go
index c671dcf48..6f12dcfec 100644
--- a/core/publish/service_test.go
+++ b/core/publish/service_test.go
@@ -139,7 +139,9 @@ func TestPublish(t *testing.T) {
t.Run("success", func(t *testing.T) {
// given
isPersonal := true
- spaceService, err := prepareSpaceService(t, isPersonal)
+ includeSpaceInfo := false
+
+ spaceService, err := prepareSpaceService(t, isPersonal, includeSpaceInfo)
objectTypeId := "customObjectType"
expectedUri := "test"
@@ -159,7 +161,7 @@ func TestPublish(t *testing.T) {
identityService := mock_identity.NewMockService(t)
identityService.EXPECT().GetMyProfileDetails(context.Background()).Return("identity", nil, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{}))
- exp := prepareExporter(t, objectTypeId, spaceService)
+ exp := prepareExporter(t, objectTypeId, spaceService, false)
svc := &service{
spaceService: spaceService,
@@ -169,7 +171,7 @@ func TestPublish(t *testing.T) {
}
// when
- publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, false)
+ publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, includeSpaceInfo)
// then
assert.NoError(t, err)
@@ -182,7 +184,9 @@ func TestPublish(t *testing.T) {
t.Run("success with space sharing", func(t *testing.T) {
// given
isPersonal := false
- spaceService, err := prepareSpaceService(t, isPersonal)
+ includeSpaceInfo := true
+
+ spaceService, err := prepareSpaceService(t, isPersonal, includeSpaceInfo)
objectTypeId := "customObjectType"
expectedUri := "test"
@@ -206,7 +210,7 @@ func TestPublish(t *testing.T) {
identityService := mock_identity.NewMockService(t)
identityService.EXPECT().GetMyProfileDetails(context.Background()).Return("identity", nil, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{}))
- exp := prepareExporter(t, objectTypeId, spaceService)
+ exp := prepareExporter(t, objectTypeId, spaceService, includeSpaceInfo)
inviteService := mock_inviteservice.NewMockInviteService(t)
inviteService.EXPECT().GetCurrent(context.Background(), "spaceId").Return(domain.InviteInfo{
@@ -223,7 +227,7 @@ func TestPublish(t *testing.T) {
}
// when
- publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, true)
+ publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, includeSpaceInfo)
// then
assert.NoError(t, err)
@@ -235,7 +239,9 @@ func TestPublish(t *testing.T) {
})
t.Run("success with space sharing - invite not exists", func(t *testing.T) {
isPersonal := false
- spaceService, err := prepareSpaceService(t, isPersonal)
+ includeSpaceInfo := true
+
+ spaceService, err := prepareSpaceService(t, isPersonal, includeSpaceInfo)
objectTypeId := "customObjectType"
expectedUri := "test"
@@ -256,7 +262,7 @@ func TestPublish(t *testing.T) {
identityService := mock_identity.NewMockService(t)
identityService.EXPECT().GetMyProfileDetails(context.Background()).Return("identity", nil, domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{}))
- exp := prepareExporter(t, objectTypeId, spaceService)
+ exp := prepareExporter(t, objectTypeId, spaceService, includeSpaceInfo)
inviteService := mock_inviteservice.NewMockInviteService(t)
inviteService.EXPECT().GetCurrent(context.Background(), "spaceId").Return(domain.InviteInfo{}, inviteservice.ErrInviteNotExists)
@@ -270,7 +276,7 @@ func TestPublish(t *testing.T) {
}
// when
- publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, true)
+ publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, includeSpaceInfo)
// then
assert.NoError(t, err)
@@ -283,7 +289,8 @@ func TestPublish(t *testing.T) {
t.Run("success for member", func(t *testing.T) {
// given
isPersonal := false
- spaceService, err := prepareSpaceService(t, isPersonal)
+ includeSpaceInfo := true
+ spaceService, err := prepareSpaceService(t, isPersonal, includeSpaceInfo)
objectTypeId := "customObjectType"
expectedUri := "test"
@@ -311,7 +318,7 @@ func TestPublish(t *testing.T) {
},
}
- exp := prepareExporter(t, objectTypeId, spaceService)
+ exp := prepareExporter(t, objectTypeId, spaceService, includeSpaceInfo)
inviteService := mock_inviteservice.NewMockInviteService(t)
inviteService.EXPECT().GetCurrent(context.Background(), "spaceId").Return(domain.InviteInfo{
@@ -328,7 +335,7 @@ func TestPublish(t *testing.T) {
}
// when
- publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, true)
+ publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, includeSpaceInfo)
// then
assert.NoError(t, err)
@@ -341,7 +348,9 @@ func TestPublish(t *testing.T) {
t.Run("internal error", func(t *testing.T) {
// given
isPersonal := true
- spaceService, err := prepareSpaceService(t, isPersonal)
+ includeSpaceInfo := true
+
+ spaceService, err := prepareSpaceService(t, isPersonal, includeSpaceInfo)
objectTypeId := "customObjectType"
expectedUri := "test"
@@ -363,7 +372,7 @@ func TestPublish(t *testing.T) {
expectedErr: fmt.Errorf("internal error"),
}
- exp := prepareExporter(t, objectTypeId, spaceService)
+ exp := prepareExporter(t, objectTypeId, spaceService, false)
svc := &service{
spaceService: spaceService,
@@ -373,7 +382,7 @@ func TestPublish(t *testing.T) {
}
// when
- publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, true)
+ publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, includeSpaceInfo)
// then
assert.Error(t, err)
@@ -385,7 +394,14 @@ func TestPublish(t *testing.T) {
})
t.Run("limit error for members", func(t *testing.T) {
// given
+ isPersonal := false
+ includeSpaceInfo := true
+
spaceService := mock_space.NewMockService(t)
+ space := mock_clientspace.NewMockSpace(t)
+ space.EXPECT().DerivedIDs().Return(threads.DerivedSmartblockIds{Workspace: workspaceId})
+ space.EXPECT().IsPersonal().Return(isPersonal)
+ spaceService.EXPECT().Get(context.Background(), spaceId).Return(space, nil)
expectedUri := "test"
testFile := "test"
@@ -415,7 +431,7 @@ func TestPublish(t *testing.T) {
}
// when
- publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, true)
+ publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, includeSpaceInfo)
// then
assert.Error(t, err)
@@ -424,7 +440,14 @@ func TestPublish(t *testing.T) {
})
t.Run("default limit error", func(t *testing.T) {
// given
+ isPersonal := false
+ includeSpaceInfo := true
+
spaceService := mock_space.NewMockService(t)
+ space := mock_clientspace.NewMockSpace(t)
+ space.EXPECT().DerivedIDs().Return(threads.DerivedSmartblockIds{Workspace: workspaceId})
+ space.EXPECT().IsPersonal().Return(isPersonal)
+ spaceService.EXPECT().Get(context.Background(), spaceId).Return(space, nil)
expectedUri := "test"
testFile := "test"
@@ -451,7 +474,7 @@ func TestPublish(t *testing.T) {
}
// when
- publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, true)
+ publish, err := svc.Publish(context.Background(), spaceId, objectId, expectedUri, includeSpaceInfo)
// then
assert.Error(t, err)
@@ -666,24 +689,27 @@ func TestService_PublishingList(t *testing.T) {
var ctx = context.Background()
-func prepareSpaceService(t *testing.T, isPersonal bool) (*mock_space.MockService, error) {
+func prepareSpaceService(t *testing.T, isPersonal bool, includeSpaceInfo bool) (*mock_space.MockService, error) {
spaceService := mock_space.NewMockService(t)
space := mock_clientspace.NewMockSpace(t)
ctrl := gomock.NewController(t)
- space.EXPECT().IsPersonal().Return(isPersonal)
- space.EXPECT().Id().Return(spaceId)
st := mock_anystorage.NewMockClientSpaceStorage(t)
mockSt := mock_objecttree.NewMockStorage(ctrl)
st.EXPECT().TreeStorage(mock.Anything, mock.Anything).Return(mockSt, nil)
mockSt.EXPECT().Heads(gomock.Any()).Return([]string{"heads"}, nil)
space.EXPECT().Storage().Return(st)
- space.EXPECT().DerivedIDs().Return(threads.DerivedSmartblockIds{Workspace: workspaceId})
+ if includeSpaceInfo && !isPersonal {
+ space.EXPECT().DerivedIDs().Return(threads.DerivedSmartblockIds{Workspace: workspaceId})
+ }
+ if includeSpaceInfo {
+ space.EXPECT().IsPersonal().Return(isPersonal)
+ }
spaceService.EXPECT().Get(context.Background(), spaceId).Return(space, nil)
return spaceService, nil
}
-func prepareExporter(t *testing.T, objectTypeId string, spaceService *mock_space.MockService) export.Export {
+func prepareExporter(t *testing.T, objectTypeId string, spaceService *mock_space.MockService, includeSpaceInfo bool) export.Export {
storeFixture := objectstore.NewStoreFixture(t)
objectTypeUniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeObjectType, objectTypeId)
assert.Nil(t, err)
@@ -740,23 +766,25 @@ func prepareExporter(t *testing.T, objectTypeId string, spaceService *mock_space
objectType.Doc = objectTypeDoc
objectType.SetType(smartblock.SmartBlockTypeObjectType)
- workspaceTest := smarttest.New(workspaceId)
- workspaceDoc := workspaceTest.NewState().SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{
- bundle.RelationKeyId: domain.String(workspaceId),
- bundle.RelationKeyType: domain.String(objectTypeId),
- }))
- workspaceDoc.AddRelationLinks(&model.RelationLink{
- Key: bundle.RelationKeyId.String(),
- Format: model.RelationFormat_longtext,
- }, &model.RelationLink{
- Key: bundle.RelationKeyType.String(),
- Format: model.RelationFormat_longtext,
- })
- workspaceTest.Doc = workspaceDoc
+ if includeSpaceInfo {
+ workspaceTest := smarttest.New(workspaceId)
+ workspaceDoc := workspaceTest.NewState().SetDetails(domain.NewDetailsFromMap(map[domain.RelationKey]domain.Value{
+ bundle.RelationKeyId: domain.String(workspaceId),
+ bundle.RelationKeyType: domain.String(objectTypeId),
+ }))
+ workspaceDoc.AddRelationLinks(&model.RelationLink{
+ Key: bundle.RelationKeyId.String(),
+ Format: model.RelationFormat_longtext,
+ }, &model.RelationLink{
+ Key: bundle.RelationKeyType.String(),
+ Format: model.RelationFormat_longtext,
+ })
+ workspaceTest.Doc = workspaceDoc
+ objectGetter.EXPECT().GetObject(context.Background(), workspaceId).Return(workspaceTest, nil)
+ }
objectGetter.EXPECT().GetObject(context.Background(), objectId).Return(smartBlockTest, nil)
objectGetter.EXPECT().GetObject(context.Background(), objectTypeId).Return(objectType, nil)
- objectGetter.EXPECT().GetObject(context.Background(), workspaceId).Return(workspaceTest, nil)
a := &app.App{}
mockSender := mock_event.NewMockSender(t)
diff --git a/docs/proto.md b/docs/proto.md
index e1b3ac72f..a16d2ffe2 100644
--- a/docs/proto.md
+++ b/docs/proto.md
@@ -909,6 +909,10 @@
- [Rpc.Object.Duplicate.Request](#anytype-Rpc-Object-Duplicate-Request)
- [Rpc.Object.Duplicate.Response](#anytype-Rpc-Object-Duplicate-Response)
- [Rpc.Object.Duplicate.Response.Error](#anytype-Rpc-Object-Duplicate-Response-Error)
+ - [Rpc.Object.Export](#anytype-Rpc-Object-Export)
+ - [Rpc.Object.Export.Request](#anytype-Rpc-Object-Export-Request)
+ - [Rpc.Object.Export.Response](#anytype-Rpc-Object-Export-Response)
+ - [Rpc.Object.Export.Response.Error](#anytype-Rpc-Object-Export-Response-Error)
- [Rpc.Object.Graph](#anytype-Rpc-Object-Graph)
- [Rpc.Object.Graph.Edge](#anytype-Rpc-Object-Graph-Edge)
- [Rpc.Object.Graph.Request](#anytype-Rpc-Object-Graph-Request)
@@ -1557,6 +1561,7 @@
- [Rpc.Object.CrossSpaceSearchUnsubscribe.Response.Error.Code](#anytype-Rpc-Object-CrossSpaceSearchUnsubscribe-Response-Error-Code)
- [Rpc.Object.DateByTimestamp.Response.Error.Code](#anytype-Rpc-Object-DateByTimestamp-Response-Error-Code)
- [Rpc.Object.Duplicate.Response.Error.Code](#anytype-Rpc-Object-Duplicate-Response-Error-Code)
+ - [Rpc.Object.Export.Response.Error.Code](#anytype-Rpc-Object-Export-Response-Error-Code)
- [Rpc.Object.Graph.Edge.Type](#anytype-Rpc-Object-Graph-Edge-Type)
- [Rpc.Object.Graph.Response.Error.Code](#anytype-Rpc-Object-Graph-Response-Error-Code)
- [Rpc.Object.GroupsSubscribe.Response.Error.Code](#anytype-Rpc-Object-GroupsSubscribe-Response-Error-Code)
@@ -1859,6 +1864,7 @@
- [Event.Process.New](#anytype-Event-Process-New)
- [Event.Process.Update](#anytype-Event-Process-Update)
- [Event.Space](#anytype-Event-Space)
+ - [Event.Space.AutoWidgetAdded](#anytype-Event-Space-AutoWidgetAdded)
- [Event.Space.SyncStatus](#anytype-Event-Space-SyncStatus)
- [Event.Space.SyncStatus.Update](#anytype-Event-Space-SyncStatus-Update)
- [Event.Status](#anytype-Event-Status)
@@ -2190,6 +2196,7 @@
| ObjectUndo | [Rpc.Object.Undo.Request](#anytype-Rpc-Object-Undo-Request) | [Rpc.Object.Undo.Response](#anytype-Rpc-Object-Undo-Response) | |
| ObjectRedo | [Rpc.Object.Redo.Request](#anytype-Rpc-Object-Redo-Request) | [Rpc.Object.Redo.Response](#anytype-Rpc-Object-Redo-Response) | |
| ObjectListExport | [Rpc.Object.ListExport.Request](#anytype-Rpc-Object-ListExport-Request) | [Rpc.Object.ListExport.Response](#anytype-Rpc-Object-ListExport-Response) | |
+| ObjectExport | [Rpc.Object.Export.Request](#anytype-Rpc-Object-Export-Request) | [Rpc.Object.Export.Response](#anytype-Rpc-Object-Export-Response) | |
| ObjectBookmarkFetch | [Rpc.Object.BookmarkFetch.Request](#anytype-Rpc-Object-BookmarkFetch-Request) | [Rpc.Object.BookmarkFetch.Response](#anytype-Rpc-Object-BookmarkFetch-Response) | |
| ObjectToBookmark | [Rpc.Object.ToBookmark.Request](#anytype-Rpc-Object-ToBookmark-Request) | [Rpc.Object.ToBookmark.Response](#anytype-Rpc-Object-ToBookmark-Response) | |
| ObjectImport | [Rpc.Object.Import.Request](#anytype-Rpc-Object-Import-Request) | [Rpc.Object.Import.Response](#anytype-Rpc-Object-Import-Response) | |
@@ -15542,6 +15549,66 @@ Get the info for page alongside with info for all inbound and outbound links fro
+
+
+### Rpc.Object.Export
+
+
+
+
+
+
+
+
+
+### Rpc.Object.Export.Request
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| spaceId | [string](#string) | | |
+| objectId | [string](#string) | | ids of documents for export, when empty - will export all available docs |
+| format | [model.Export.Format](#anytype-model-Export-Format) | | export format |
+
+
+
+
+
+
+
+
+### Rpc.Object.Export.Response
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| error | [Rpc.Object.Export.Response.Error](#anytype-Rpc-Object-Export-Response-Error) | | |
+| result | [string](#string) | | |
+| event | [ResponseEvent](#anytype-ResponseEvent) | | |
+
+
+
+
+
+
+
+
+### Rpc.Object.Export.Response.Error
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| code | [Rpc.Object.Export.Response.Error.Code](#anytype-Rpc-Object-Export-Response-Error-Code) | | |
+| description | [string](#string) | | |
+
+
+
+
+
+
### Rpc.Object.Graph
@@ -24808,6 +24875,19 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er
+
+
+### Rpc.Object.Export.Response.Error.Code
+
+
+| Name | Number | Description |
+| ---- | ------ | ----------- |
+| NULL | 0 | |
+| UNKNOWN_ERROR | 1 | |
+| BAD_INPUT | 2 | ... |
+
+
+
### Rpc.Object.Graph.Edge.Type
@@ -28889,6 +28969,7 @@ Precondition: user A opened a block
| payloadBroadcast | [Event.Payload.Broadcast](#anytype-Event-Payload-Broadcast) | | |
| membershipUpdate | [Event.Membership.Update](#anytype-Event-Membership-Update) | | |
| spaceSyncStatusUpdate | [Event.Space.SyncStatus.Update](#anytype-Event-Space-SyncStatus-Update) | | |
+| spaceAutoWidgetAdded | [Event.Space.AutoWidgetAdded](#anytype-Event-Space-AutoWidgetAdded) | | |
| p2pStatusUpdate | [Event.P2PStatus.Update](#anytype-Event-P2PStatus-Update) | | |
| importFinish | [Event.Import.Finish](#anytype-Event-Import-Finish) | | |
| chatAdd | [Event.Chat.Add](#anytype-Event-Chat-Add) | | |
@@ -29356,6 +29437,23 @@ Removes document from subscription
+
+
+### Event.Space.AutoWidgetAdded
+
+
+
+| Field | Type | Label | Description |
+| ----- | ---- | ----- | ----------- |
+| targetId | [string](#string) | | |
+| targetName | [string](#string) | | pluralName (if exists) for types, fallback to name. Special cases for "bin" and "favorites" |
+| widgetBlockId | [string](#string) | | |
+
+
+
+
+
+
### Event.Space.SyncStatus
@@ -30720,6 +30818,7 @@ Link: block to link some content from an external sources.
| layout | [Block.Content.Widget.Layout](#anytype-model-Block-Content-Widget-Layout) | | |
| limit | [int32](#int32) | | |
| viewId | [string](#string) | | |
+| autoAdded | [bool](#bool) | | |
diff --git a/go.mod b/go.mod
index bf5d09a2f..7d05a7da9 100644
--- a/go.mod
+++ b/go.mod
@@ -52,6 +52,7 @@ require (
github.com/hashicorp/yamux v0.1.2
github.com/hbagdi/go-unsplash v0.0.0-20230414214043-474fc02c9119
github.com/huandu/skiplist v1.2.1
+ github.com/iancoleman/strcase v0.3.0
github.com/improbable-eng/grpc-web v0.15.0
github.com/ipfs/boxo v0.29.1
github.com/ipfs/go-block-format v0.2.0
@@ -95,7 +96,7 @@ require (
github.com/stretchr/testify v1.10.0
github.com/swaggo/files v1.0.1
github.com/swaggo/gin-swagger v1.6.0
- github.com/swaggo/swag v1.16.4
+ github.com/swaggo/swag/v2 v2.0.0-rc4
github.com/uber/jaeger-client-go v2.30.0+incompatible
github.com/valyala/fastjson v1.6.4
github.com/vektra/mockery/v2 v2.47.0
@@ -109,7 +110,7 @@ require (
golang.org/x/exp v0.0.0-20250305212735-054e65f0b394
golang.org/x/image v0.25.0
golang.org/x/mobile v0.0.0-20250218173827-cd096645fcd3
- golang.org/x/net v0.37.0
+ golang.org/x/net v0.38.0
golang.org/x/oauth2 v0.28.0
golang.org/x/sys v0.31.0
golang.org/x/text v0.23.0
@@ -128,8 +129,6 @@ require (
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
- github.com/PuerkitoBio/purell v1.1.1 // indirect
- github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b // indirect
github.com/alexbrainman/goissue34681 v0.0.0-20191006012335-3fc7a47baff5 // indirect
github.com/andybalholm/cascadia v1.3.3 // indirect
@@ -170,10 +169,10 @@ require (
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
- github.com/go-openapi/jsonpointer v0.19.5 // indirect
- github.com/go-openapi/jsonreference v0.19.6 // indirect
- github.com/go-openapi/spec v0.20.4 // indirect
- github.com/go-openapi/swag v0.19.15 // indirect
+ github.com/go-openapi/jsonpointer v0.19.6 // indirect
+ github.com/go-openapi/jsonreference v0.20.2 // indirect
+ github.com/go-openapi/spec v0.20.9 // indirect
+ github.com/go-openapi/swag v0.22.3 // indirect
github.com/go-pkgz/expirable-cache/v3 v3.0.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
@@ -199,7 +198,6 @@ require (
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/holiman/uint256 v1.2.4 // indirect
github.com/huandu/xstrings v1.4.0 // indirect
- github.com/iancoleman/strcase v0.3.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/ipfs/bbloom v0.0.4 // indirect
@@ -219,7 +217,7 @@ require (
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
github.com/libp2p/go-libp2p v0.41.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
- github.com/mailru/easyjson v0.7.6 // indirect
+ github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/miekg/dns v1.1.63 // indirect
@@ -262,6 +260,8 @@ require (
github.com/spf13/viper v1.15.0 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
+ github.com/sv-tools/openapi v0.2.1 // indirect
+ github.com/swaggo/swag v1.16.4 // indirect
github.com/tetratelabs/wazero v1.8.1 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
diff --git a/go.sum b/go.sum
index a0ad7cc61..803ed7530 100644
--- a/go.sum
+++ b/go.sum
@@ -56,10 +56,6 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE
github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ=
github.com/PuerkitoBio/goquery v1.10.2 h1:7fh2BdHcG6VFZsK7toXBT/Bh1z5Wmy8Q9MV9HqT2AM8=
github.com/PuerkitoBio/goquery v1.10.2/go.mod h1:0guWGjcLu9AYC7C1GHnpysHy056u9aEkUHwhdnePMCU=
-github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
-github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
-github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
@@ -84,12 +80,10 @@ github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kk
github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
github.com/anyproto/any-store v0.1.12 h1:VgTyfxM4BvFnYMbwWxV9FQmXWNlwp9xriWFh6VOjcm0=
github.com/anyproto/any-store v0.1.12/go.mod h1:T6WNuCHcuXIRiaZ+QAcBHdxIbPbgNCMIf1u3P9jvAyU=
-github.com/anyproto/any-sync v0.6.10-0.20250328101049-7b02c1945e6d h1:AU7TEdUV4NZSNilcWfAhGVdZUsZutfDx3Q0cJ11S4A4=
-github.com/anyproto/any-sync v0.6.10-0.20250328101049-7b02c1945e6d/go.mod h1:TSKgCoTV40Bt8AfCh3RxPUUAfYGrhc8Mzh8/AiVlvX4=
+github.com/anyproto/any-sync v0.6.10 h1:TV3yLkp5NK7FkddUvVtfxT01t/Xi+DlKbvisGEQwmC0=
+github.com/anyproto/any-sync v0.6.10/go.mod h1:TSKgCoTV40Bt8AfCh3RxPUUAfYGrhc8Mzh8/AiVlvX4=
github.com/anyproto/anytype-publish-server/publishclient v0.0.0-20250131145601-de288583ff2a h1:ZZM+0OUCQMWSLSflpkf0ZMVo3V76qEDDIXPpQOClNs0=
github.com/anyproto/anytype-publish-server/publishclient v0.0.0-20250131145601-de288583ff2a/go.mod h1:4fkueCZcGniSMXkrwESO8zzERrh/L7WHimRNWecfGM0=
-github.com/anyproto/anytype-push-server/pushclient v0.0.0-20250319134422-fd3f261ea023 h1:c7zj0NKKxFxqmK2PjNofpNB2yRCOzbA0gMLCiaEuLeY=
-github.com/anyproto/anytype-push-server/pushclient v0.0.0-20250319134422-fd3f261ea023/go.mod h1:IjVnEyh6QiLsPPfZinTTnOtxe79uJUKZyC1z65b2Yuc=
github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc=
github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k=
github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY=
@@ -351,15 +345,18 @@ github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiU
github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
-github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs=
-github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns=
-github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M=
-github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I=
+github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
+github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
+github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo=
+github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
+github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
+github.com/go-openapi/spec v0.20.9 h1:xnlYNQAwKd2VQRRfwTEI0DcK+2cbuvI/0c7jx3gA8/8=
+github.com/go-openapi/spec v0.20.9/go.mod h1:2OpW+JddWPrpXSCIX8eOx7lZ5iyuWj3RYR6VaaBKcWA=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
-github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
+github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/go-pkgz/expirable-cache/v3 v3.0.0 h1:u3/gcu3sabLYiTCevoRKv+WzjIn5oo7P8XtiXBeRDLw=
github.com/go-pkgz/expirable-cache/v3 v3.0.0/go.mod h1:2OQiDyEGQalYecLWmXprm3maPXeVb5/6/X7yRPYTzec=
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
@@ -674,6 +671,7 @@ github.com/kovidgoyal/imaging v1.6.4/go.mod h1:bEIgsaZmXlvFfkv/CUxr9rJook6AQkJnp
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
@@ -714,8 +712,9 @@ github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a
github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
-github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/matishsiao/goInfo v0.0.0-20240924010139-10388a85396f h1:XDrsC/9hdgiU9ecceSmYsS2E3fBtFiYc34dAMFgegnM=
github.com/matishsiao/goInfo v0.0.0-20240924010139-10388a85396f/go.mod h1:aEt7p9Rvh67BYApmZwNDPpgircTO2kgdmDUoF/1QmwA=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
@@ -1048,12 +1047,16 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
+github.com/sv-tools/openapi v0.2.1 h1:ES1tMQMJFGibWndMagvdoo34T1Vllxr1Nlm5wz6b1aA=
+github.com/sv-tools/openapi v0.2.1/go.mod h1:k5VuZamTw1HuiS9p2Wl5YIDWzYnHG6/FgPOSFXLAhGg=
github.com/swaggo/files v1.0.1 h1:J1bVJ4XHZNq0I46UU90611i9/YzdrF7x92oX1ig5IdE=
github.com/swaggo/files v1.0.1/go.mod h1:0qXmMNH6sXNf+73t65aKeB+ApmgxdnkQzVTAj2uaMUg=
github.com/swaggo/gin-swagger v1.6.0 h1:y8sxvQ3E20/RCyrXeFfg60r6H0Z+SwpTjMYsMm+zy8M=
github.com/swaggo/gin-swagger v1.6.0/go.mod h1:BG00cCEy294xtVpyIAHG6+e2Qzj/xKlRdOqDkvq0uzo=
github.com/swaggo/swag v1.16.4 h1:clWJtd9LStiG3VeijiCfOVODP6VpHtKdQy9ELFG3s1A=
github.com/swaggo/swag v1.16.4/go.mod h1:VBsHJRsDvfYvqoiMKnsdwhNV9LEMHgEDZcyVYX0sxPg=
+github.com/swaggo/swag/v2 v2.0.0-rc4 h1:SZ8cK68gcV6cslwrJMIOqPkJELRwq4gmjvk77MrvHvY=
+github.com/swaggo/swag/v2 v2.0.0-rc4/go.mod h1:Ow7Y8gF16BTCDn8YxZbyKn8FkMLRUHekv1kROJZpbvE=
github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc=
github.com/tetratelabs/wazero v1.8.1 h1:NrcgVbWfkWvVc4UtT4LRLDf91PsOzDzefMdwhLfA550=
github.com/tetratelabs/wazero v1.8.1/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs=
@@ -1290,7 +1293,6 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
golang.org/x/net v0.0.0-20210423184538-5f58ad60dda6/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
@@ -1305,8 +1307,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
-golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
+golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
+golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1396,7 +1398,6 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210426080607-c94f62235c83/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
diff --git a/makefiles/tools.mk b/makefiles/tools.mk
index e0c4c3439..81ec1c41a 100644
--- a/makefiles/tools.mk
+++ b/makefiles/tools.mk
@@ -9,3 +9,9 @@ lint:
@npx prettier --check "./**" 2> /dev/null || true
@echo 'Linting with golint...'
@golint `go list ./... | grep -v /vendor/`
+
+swagger:
+ @echo 'Generating swagger docs...'
+ @swag init --v3.1 -q -d core/api -g service.go -o core/api/docs
+ @echo 'Formatting swagger docs...'
+ @swag fmt -d core/api
diff --git a/pb/commands.pb.go b/pb/commands.pb.go
index 37cf25c55..7ebd1bb2c 100644
--- a/pb/commands.pb.go
+++ b/pb/commands.pb.go
@@ -3596,6 +3596,34 @@ func (RpcObjectListExportResponseErrorCode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 47, 3, 0, 0}
}
+type RpcObjectExportResponseErrorCode int32
+
+const (
+ RpcObjectExportResponseError_NULL RpcObjectExportResponseErrorCode = 0
+ RpcObjectExportResponseError_UNKNOWN_ERROR RpcObjectExportResponseErrorCode = 1
+ RpcObjectExportResponseError_BAD_INPUT RpcObjectExportResponseErrorCode = 2
+)
+
+var RpcObjectExportResponseErrorCode_name = map[int32]string{
+ 0: "NULL",
+ 1: "UNKNOWN_ERROR",
+ 2: "BAD_INPUT",
+}
+
+var RpcObjectExportResponseErrorCode_value = map[string]int32{
+ "NULL": 0,
+ "UNKNOWN_ERROR": 1,
+ "BAD_INPUT": 2,
+}
+
+func (x RpcObjectExportResponseErrorCode) String() string {
+ return proto.EnumName(RpcObjectExportResponseErrorCode_name, int32(x))
+}
+
+func (RpcObjectExportResponseErrorCode) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 1, 0, 0}
+}
+
type RpcObjectImportRequestMode int32
const (
@@ -3618,7 +3646,7 @@ func (x RpcObjectImportRequestMode) String() string {
}
func (RpcObjectImportRequestMode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 0}
}
type RpcObjectImportRequestPbParamsType int32
@@ -3643,7 +3671,7 @@ func (x RpcObjectImportRequestPbParamsType) String() string {
}
func (RpcObjectImportRequestPbParamsType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 5, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 5, 0}
}
type RpcObjectImportRequestCsvParamsMode int32
@@ -3668,7 +3696,7 @@ func (x RpcObjectImportRequestCsvParamsMode) String() string {
}
func (RpcObjectImportRequestCsvParamsMode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 6, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 6, 0}
}
type RpcObjectImportResponseErrorCode int32
@@ -3714,7 +3742,7 @@ func (x RpcObjectImportResponseErrorCode) String() string {
}
func (RpcObjectImportResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 1, 0, 0}
}
type RpcObjectImportNotionValidateTokenResponseErrorCode int32
@@ -3757,7 +3785,7 @@ func (x RpcObjectImportNotionValidateTokenResponseErrorCode) String() string {
}
func (RpcObjectImportNotionValidateTokenResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 2, 0, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 2, 0, 1, 0, 0}
}
type RpcObjectImportListResponseErrorCode int32
@@ -3788,7 +3816,7 @@ func (x RpcObjectImportListResponseErrorCode) String() string {
}
func (RpcObjectImportListResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 1, 0, 0}
}
type RpcObjectImportListImportResponseType int32
@@ -3819,7 +3847,7 @@ func (x RpcObjectImportListImportResponseType) String() string {
}
func (RpcObjectImportListImportResponseType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 2, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 2, 0}
}
type RpcObjectImportUseCaseRequestUseCase int32
@@ -3850,7 +3878,7 @@ func (x RpcObjectImportUseCaseRequestUseCase) String() string {
}
func (RpcObjectImportUseCaseRequestUseCase) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 0, 0}
}
type RpcObjectImportUseCaseResponseErrorCode int32
@@ -3878,7 +3906,7 @@ func (x RpcObjectImportUseCaseResponseErrorCode) String() string {
}
func (RpcObjectImportUseCaseResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 1, 0, 0}
}
type RpcObjectImportExperienceResponseErrorCode int32
@@ -3909,7 +3937,7 @@ func (x RpcObjectImportExperienceResponseErrorCode) String() string {
}
func (RpcObjectImportExperienceResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52, 1, 0, 0}
}
type RpcObjectDateByTimestampResponseErrorCode int32
@@ -3937,7 +3965,7 @@ func (x RpcObjectDateByTimestampResponseErrorCode) String() string {
}
func (RpcObjectDateByTimestampResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52, 1, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 53, 1, 0, 0}
}
type RpcObjectCollectionAddResponseErrorCode int32
@@ -9949,59 +9977,6 @@ func (RpcChatUnreadResponseErrorCode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_8261c968b2e6f45c, []int{0, 42, 11, 1, 0, 0}
}
-type RpcPushNotificationRegisterTokenPlatform int32
-
-const (
- RpcPushNotificationRegisterToken_IOS RpcPushNotificationRegisterTokenPlatform = 0
- RpcPushNotificationRegisterToken_Android RpcPushNotificationRegisterTokenPlatform = 1
-)
-
-var RpcPushNotificationRegisterTokenPlatform_name = map[int32]string{
- 0: "IOS",
- 1: "Android",
-}
-
-var RpcPushNotificationRegisterTokenPlatform_value = map[string]int32{
- "IOS": 0,
- "Android": 1,
-}
-
-func (x RpcPushNotificationRegisterTokenPlatform) String() string {
- return proto.EnumName(RpcPushNotificationRegisterTokenPlatform_name, int32(x))
-}
-
-func (RpcPushNotificationRegisterTokenPlatform) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 43, 0, 0}
-}
-
-type RpcPushNotificationRegisterTokenResponseErrorCode int32
-
-const (
- RpcPushNotificationRegisterTokenResponseError_NULL RpcPushNotificationRegisterTokenResponseErrorCode = 0
- RpcPushNotificationRegisterTokenResponseError_UNKNOWN_ERROR RpcPushNotificationRegisterTokenResponseErrorCode = 1
- RpcPushNotificationRegisterTokenResponseError_BAD_INPUT RpcPushNotificationRegisterTokenResponseErrorCode = 2
-)
-
-var RpcPushNotificationRegisterTokenResponseErrorCode_name = map[int32]string{
- 0: "NULL",
- 1: "UNKNOWN_ERROR",
- 2: "BAD_INPUT",
-}
-
-var RpcPushNotificationRegisterTokenResponseErrorCode_value = map[string]int32{
- "NULL": 0,
- "UNKNOWN_ERROR": 1,
- "BAD_INPUT": 2,
-}
-
-func (x RpcPushNotificationRegisterTokenResponseErrorCode) String() string {
- return proto.EnumName(RpcPushNotificationRegisterTokenResponseErrorCode_name, int32(x))
-}
-
-func (RpcPushNotificationRegisterTokenResponseErrorCode) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 43, 0, 1, 0, 0}
-}
-
// Rpc is a namespace, that agregates all of the service commands between client and middleware.
// Structure: Topic > Subtopic > Subsub... > Action > (Request, Response).
// Request – message from a client.
@@ -31568,6 +31543,216 @@ func (m *RpcObjectListExportResponseError) GetDescription() string {
return ""
}
+type RpcObjectExport struct {
+}
+
+func (m *RpcObjectExport) Reset() { *m = RpcObjectExport{} }
+func (m *RpcObjectExport) String() string { return proto.CompactTextString(m) }
+func (*RpcObjectExport) ProtoMessage() {}
+func (*RpcObjectExport) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48}
+}
+func (m *RpcObjectExport) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcObjectExport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcObjectExport.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcObjectExport) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcObjectExport.Merge(m, src)
+}
+func (m *RpcObjectExport) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcObjectExport) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcObjectExport.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcObjectExport proto.InternalMessageInfo
+
+type RpcObjectExportRequest struct {
+ SpaceId string `protobuf:"bytes,10,opt,name=spaceId,proto3" json:"spaceId,omitempty"`
+ // ids of documents for export, when empty - will export all available docs
+ ObjectId string `protobuf:"bytes,2,opt,name=objectId,proto3" json:"objectId,omitempty"`
+ // export format
+ Format model.ExportFormat `protobuf:"varint,3,opt,name=format,proto3,enum=anytype.model.ExportFormat" json:"format,omitempty"`
+}
+
+func (m *RpcObjectExportRequest) Reset() { *m = RpcObjectExportRequest{} }
+func (m *RpcObjectExportRequest) String() string { return proto.CompactTextString(m) }
+func (*RpcObjectExportRequest) ProtoMessage() {}
+func (*RpcObjectExportRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0}
+}
+func (m *RpcObjectExportRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcObjectExportRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcObjectExportRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcObjectExportRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcObjectExportRequest.Merge(m, src)
+}
+func (m *RpcObjectExportRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcObjectExportRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcObjectExportRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcObjectExportRequest proto.InternalMessageInfo
+
+func (m *RpcObjectExportRequest) GetSpaceId() string {
+ if m != nil {
+ return m.SpaceId
+ }
+ return ""
+}
+
+func (m *RpcObjectExportRequest) GetObjectId() string {
+ if m != nil {
+ return m.ObjectId
+ }
+ return ""
+}
+
+func (m *RpcObjectExportRequest) GetFormat() model.ExportFormat {
+ if m != nil {
+ return m.Format
+ }
+ return model.Export_Markdown
+}
+
+type RpcObjectExportResponse struct {
+ Error *RpcObjectExportResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
+ Result string `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
+ Event *ResponseEvent `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"`
+}
+
+func (m *RpcObjectExportResponse) Reset() { *m = RpcObjectExportResponse{} }
+func (m *RpcObjectExportResponse) String() string { return proto.CompactTextString(m) }
+func (*RpcObjectExportResponse) ProtoMessage() {}
+func (*RpcObjectExportResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 1}
+}
+func (m *RpcObjectExportResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcObjectExportResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcObjectExportResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcObjectExportResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcObjectExportResponse.Merge(m, src)
+}
+func (m *RpcObjectExportResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcObjectExportResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcObjectExportResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcObjectExportResponse proto.InternalMessageInfo
+
+func (m *RpcObjectExportResponse) GetError() *RpcObjectExportResponseError {
+ if m != nil {
+ return m.Error
+ }
+ return nil
+}
+
+func (m *RpcObjectExportResponse) GetResult() string {
+ if m != nil {
+ return m.Result
+ }
+ return ""
+}
+
+func (m *RpcObjectExportResponse) GetEvent() *ResponseEvent {
+ if m != nil {
+ return m.Event
+ }
+ return nil
+}
+
+type RpcObjectExportResponseError struct {
+ Code RpcObjectExportResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectExportResponseErrorCode" json:"code,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (m *RpcObjectExportResponseError) Reset() { *m = RpcObjectExportResponseError{} }
+func (m *RpcObjectExportResponseError) String() string { return proto.CompactTextString(m) }
+func (*RpcObjectExportResponseError) ProtoMessage() {}
+func (*RpcObjectExportResponseError) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 1, 0}
+}
+func (m *RpcObjectExportResponseError) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RpcObjectExportResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RpcObjectExportResponseError.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *RpcObjectExportResponseError) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RpcObjectExportResponseError.Merge(m, src)
+}
+func (m *RpcObjectExportResponseError) XXX_Size() int {
+ return m.Size()
+}
+func (m *RpcObjectExportResponseError) XXX_DiscardUnknown() {
+ xxx_messageInfo_RpcObjectExportResponseError.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RpcObjectExportResponseError proto.InternalMessageInfo
+
+func (m *RpcObjectExportResponseError) GetCode() RpcObjectExportResponseErrorCode {
+ if m != nil {
+ return m.Code
+ }
+ return RpcObjectExportResponseError_NULL
+}
+
+func (m *RpcObjectExportResponseError) GetDescription() string {
+ if m != nil {
+ return m.Description
+ }
+ return ""
+}
+
type RpcObjectImport struct {
}
@@ -31575,7 +31760,7 @@ func (m *RpcObjectImport) Reset() { *m = RpcObjectImport{} }
func (m *RpcObjectImport) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImport) ProtoMessage() {}
func (*RpcObjectImport) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49}
}
func (m *RpcObjectImport) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -31629,7 +31814,7 @@ func (m *RpcObjectImportRequest) Reset() { *m = RpcObjectImportRequest{}
func (m *RpcObjectImportRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequest) ProtoMessage() {}
func (*RpcObjectImportRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0}
}
func (m *RpcObjectImportRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -31827,7 +32012,7 @@ func (m *RpcObjectImportRequestNotionParams) Reset() { *m = RpcObjectImp
func (m *RpcObjectImportRequestNotionParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestNotionParams) ProtoMessage() {}
func (*RpcObjectImportRequestNotionParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 0}
}
func (m *RpcObjectImportRequestNotionParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -31871,7 +32056,7 @@ func (m *RpcObjectImportRequestMarkdownParams) Reset() { *m = RpcObjectI
func (m *RpcObjectImportRequestMarkdownParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestMarkdownParams) ProtoMessage() {}
func (*RpcObjectImportRequestMarkdownParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 1}
}
func (m *RpcObjectImportRequestMarkdownParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -31915,7 +32100,7 @@ func (m *RpcObjectImportRequestBookmarksParams) Reset() { *m = RpcObject
func (m *RpcObjectImportRequestBookmarksParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestBookmarksParams) ProtoMessage() {}
func (*RpcObjectImportRequestBookmarksParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 2}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 2}
}
func (m *RpcObjectImportRequestBookmarksParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -31959,7 +32144,7 @@ func (m *RpcObjectImportRequestHtmlParams) Reset() { *m = RpcObjectImpor
func (m *RpcObjectImportRequestHtmlParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestHtmlParams) ProtoMessage() {}
func (*RpcObjectImportRequestHtmlParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 3}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 3}
}
func (m *RpcObjectImportRequestHtmlParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32003,7 +32188,7 @@ func (m *RpcObjectImportRequestTxtParams) Reset() { *m = RpcObjectImport
func (m *RpcObjectImportRequestTxtParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestTxtParams) ProtoMessage() {}
func (*RpcObjectImportRequestTxtParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 4}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 4}
}
func (m *RpcObjectImportRequestTxtParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32050,7 +32235,7 @@ func (m *RpcObjectImportRequestPbParams) Reset() { *m = RpcObjectImportR
func (m *RpcObjectImportRequestPbParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestPbParams) ProtoMessage() {}
func (*RpcObjectImportRequestPbParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 5}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 5}
}
func (m *RpcObjectImportRequestPbParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32119,7 +32304,7 @@ func (m *RpcObjectImportRequestCsvParams) Reset() { *m = RpcObjectImport
func (m *RpcObjectImportRequestCsvParams) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestCsvParams) ProtoMessage() {}
func (*RpcObjectImportRequestCsvParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 6}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 6}
}
func (m *RpcObjectImportRequestCsvParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32192,7 +32377,7 @@ func (m *RpcObjectImportRequestSnapshot) Reset() { *m = RpcObjectImportR
func (m *RpcObjectImportRequestSnapshot) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportRequestSnapshot) ProtoMessage() {}
func (*RpcObjectImportRequestSnapshot) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 0, 7}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0, 7}
}
func (m *RpcObjectImportRequestSnapshot) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32245,7 +32430,7 @@ func (m *RpcObjectImportResponse) Reset() { *m = RpcObjectImportResponse
func (m *RpcObjectImportResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportResponse) ProtoMessage() {}
func (*RpcObjectImportResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 1}
}
func (m *RpcObjectImportResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32304,7 +32489,7 @@ func (m *RpcObjectImportResponseError) Reset() { *m = RpcObjectImportRes
func (m *RpcObjectImportResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportResponseError) ProtoMessage() {}
func (*RpcObjectImportResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 1, 0}
}
func (m *RpcObjectImportResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32354,7 +32539,7 @@ func (m *RpcObjectImportNotion) Reset() { *m = RpcObjectImportNotion{} }
func (m *RpcObjectImportNotion) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportNotion) ProtoMessage() {}
func (*RpcObjectImportNotion) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 2}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 2}
}
func (m *RpcObjectImportNotion) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32390,7 +32575,7 @@ func (m *RpcObjectImportNotionValidateToken) Reset() { *m = RpcObjectImp
func (m *RpcObjectImportNotionValidateToken) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportNotionValidateToken) ProtoMessage() {}
func (*RpcObjectImportNotionValidateToken) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 2, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 2, 0}
}
func (m *RpcObjectImportNotionValidateToken) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32431,7 +32616,7 @@ func (m *RpcObjectImportNotionValidateTokenRequest) String() string {
}
func (*RpcObjectImportNotionValidateTokenRequest) ProtoMessage() {}
func (*RpcObjectImportNotionValidateTokenRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 2, 0, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 2, 0, 0}
}
func (m *RpcObjectImportNotionValidateTokenRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32479,7 +32664,7 @@ func (m *RpcObjectImportNotionValidateTokenResponse) String() string {
}
func (*RpcObjectImportNotionValidateTokenResponse) ProtoMessage() {}
func (*RpcObjectImportNotionValidateTokenResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 2, 0, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 2, 0, 1}
}
func (m *RpcObjectImportNotionValidateTokenResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32528,7 +32713,7 @@ func (m *RpcObjectImportNotionValidateTokenResponseError) String() string {
}
func (*RpcObjectImportNotionValidateTokenResponseError) ProtoMessage() {}
func (*RpcObjectImportNotionValidateTokenResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 48, 2, 0, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 2, 0, 1, 0}
}
func (m *RpcObjectImportNotionValidateTokenResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32578,7 +32763,7 @@ func (m *RpcObjectImportList) Reset() { *m = RpcObjectImportList{} }
func (m *RpcObjectImportList) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportList) ProtoMessage() {}
func (*RpcObjectImportList) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50}
}
func (m *RpcObjectImportList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32614,7 +32799,7 @@ func (m *RpcObjectImportListRequest) Reset() { *m = RpcObjectImportListR
func (m *RpcObjectImportListRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportListRequest) ProtoMessage() {}
func (*RpcObjectImportListRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 0}
}
func (m *RpcObjectImportListRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32652,7 +32837,7 @@ func (m *RpcObjectImportListResponse) Reset() { *m = RpcObjectImportList
func (m *RpcObjectImportListResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportListResponse) ProtoMessage() {}
func (*RpcObjectImportListResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 1}
}
func (m *RpcObjectImportListResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32704,7 +32889,7 @@ func (m *RpcObjectImportListResponseError) Reset() { *m = RpcObjectImpor
func (m *RpcObjectImportListResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportListResponseError) ProtoMessage() {}
func (*RpcObjectImportListResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 1, 0}
}
func (m *RpcObjectImportListResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32755,7 +32940,7 @@ func (m *RpcObjectImportListImportResponse) Reset() { *m = RpcObjectImpo
func (m *RpcObjectImportListImportResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportListImportResponse) ProtoMessage() {}
func (*RpcObjectImportListImportResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 49, 2}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 2}
}
func (m *RpcObjectImportListImportResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32798,7 +32983,7 @@ func (m *RpcObjectImportUseCase) Reset() { *m = RpcObjectImportUseCase{}
func (m *RpcObjectImportUseCase) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportUseCase) ProtoMessage() {}
func (*RpcObjectImportUseCase) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51}
}
func (m *RpcObjectImportUseCase) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32836,7 +33021,7 @@ func (m *RpcObjectImportUseCaseRequest) Reset() { *m = RpcObjectImportUs
func (m *RpcObjectImportUseCaseRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportUseCaseRequest) ProtoMessage() {}
func (*RpcObjectImportUseCaseRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 0}
}
func (m *RpcObjectImportUseCaseRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32888,7 +33073,7 @@ func (m *RpcObjectImportUseCaseResponse) Reset() { *m = RpcObjectImportU
func (m *RpcObjectImportUseCaseResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportUseCaseResponse) ProtoMessage() {}
func (*RpcObjectImportUseCaseResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 1}
}
func (m *RpcObjectImportUseCaseResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32940,7 +33125,7 @@ func (m *RpcObjectImportUseCaseResponseError) Reset() { *m = RpcObjectIm
func (m *RpcObjectImportUseCaseResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportUseCaseResponseError) ProtoMessage() {}
func (*RpcObjectImportUseCaseResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 50, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 1, 0}
}
func (m *RpcObjectImportUseCaseResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -32990,7 +33175,7 @@ func (m *RpcObjectImportExperience) Reset() { *m = RpcObjectImportExperi
func (m *RpcObjectImportExperience) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportExperience) ProtoMessage() {}
func (*RpcObjectImportExperience) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52}
}
func (m *RpcObjectImportExperience) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -33030,7 +33215,7 @@ func (m *RpcObjectImportExperienceRequest) Reset() { *m = RpcObjectImpor
func (m *RpcObjectImportExperienceRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportExperienceRequest) ProtoMessage() {}
func (*RpcObjectImportExperienceRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52, 0}
}
func (m *RpcObjectImportExperienceRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -33096,7 +33281,7 @@ func (m *RpcObjectImportExperienceResponse) Reset() { *m = RpcObjectImpo
func (m *RpcObjectImportExperienceResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportExperienceResponse) ProtoMessage() {}
func (*RpcObjectImportExperienceResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52, 1}
}
func (m *RpcObjectImportExperienceResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -33150,7 +33335,7 @@ func (m *RpcObjectImportExperienceResponseError) Reset() {
func (m *RpcObjectImportExperienceResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectImportExperienceResponseError) ProtoMessage() {}
func (*RpcObjectImportExperienceResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 51, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52, 1, 0}
}
func (m *RpcObjectImportExperienceResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -33200,7 +33385,7 @@ func (m *RpcObjectDateByTimestamp) Reset() { *m = RpcObjectDateByTimesta
func (m *RpcObjectDateByTimestamp) String() string { return proto.CompactTextString(m) }
func (*RpcObjectDateByTimestamp) ProtoMessage() {}
func (*RpcObjectDateByTimestamp) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 53}
}
func (m *RpcObjectDateByTimestamp) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -33238,7 +33423,7 @@ func (m *RpcObjectDateByTimestampRequest) Reset() { *m = RpcObjectDateBy
func (m *RpcObjectDateByTimestampRequest) String() string { return proto.CompactTextString(m) }
func (*RpcObjectDateByTimestampRequest) ProtoMessage() {}
func (*RpcObjectDateByTimestampRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 53, 0}
}
func (m *RpcObjectDateByTimestampRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -33290,7 +33475,7 @@ func (m *RpcObjectDateByTimestampResponse) Reset() { *m = RpcObjectDateB
func (m *RpcObjectDateByTimestampResponse) String() string { return proto.CompactTextString(m) }
func (*RpcObjectDateByTimestampResponse) ProtoMessage() {}
func (*RpcObjectDateByTimestampResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52, 1}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 53, 1}
}
func (m *RpcObjectDateByTimestampResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -33342,7 +33527,7 @@ func (m *RpcObjectDateByTimestampResponseError) Reset() { *m = RpcObject
func (m *RpcObjectDateByTimestampResponseError) String() string { return proto.CompactTextString(m) }
func (*RpcObjectDateByTimestampResponseError) ProtoMessage() {}
func (*RpcObjectDateByTimestampResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 52, 1, 0}
+ return fileDescriptor_8261c968b2e6f45c, []int{0, 6, 53, 1, 0}
}
func (m *RpcObjectDateByTimestampResponseError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -74654,234 +74839,6 @@ func (m *RpcChatUnreadResponseError) GetDescription() string {
return ""
}
-type RpcPushNotification struct {
-}
-
-func (m *RpcPushNotification) Reset() { *m = RpcPushNotification{} }
-func (m *RpcPushNotification) String() string { return proto.CompactTextString(m) }
-func (*RpcPushNotification) ProtoMessage() {}
-func (*RpcPushNotification) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 43}
-}
-func (m *RpcPushNotification) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *RpcPushNotification) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_RpcPushNotification.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *RpcPushNotification) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RpcPushNotification.Merge(m, src)
-}
-func (m *RpcPushNotification) XXX_Size() int {
- return m.Size()
-}
-func (m *RpcPushNotification) XXX_DiscardUnknown() {
- xxx_messageInfo_RpcPushNotification.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RpcPushNotification proto.InternalMessageInfo
-
-type RpcPushNotificationRegisterToken struct {
-}
-
-func (m *RpcPushNotificationRegisterToken) Reset() { *m = RpcPushNotificationRegisterToken{} }
-func (m *RpcPushNotificationRegisterToken) String() string { return proto.CompactTextString(m) }
-func (*RpcPushNotificationRegisterToken) ProtoMessage() {}
-func (*RpcPushNotificationRegisterToken) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 43, 0}
-}
-func (m *RpcPushNotificationRegisterToken) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *RpcPushNotificationRegisterToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_RpcPushNotificationRegisterToken.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *RpcPushNotificationRegisterToken) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RpcPushNotificationRegisterToken.Merge(m, src)
-}
-func (m *RpcPushNotificationRegisterToken) XXX_Size() int {
- return m.Size()
-}
-func (m *RpcPushNotificationRegisterToken) XXX_DiscardUnknown() {
- xxx_messageInfo_RpcPushNotificationRegisterToken.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RpcPushNotificationRegisterToken proto.InternalMessageInfo
-
-type RpcPushNotificationRegisterTokenRequest struct {
- Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
- Platform RpcPushNotificationRegisterTokenPlatform `protobuf:"varint,2,opt,name=platform,proto3,enum=anytype.RpcPushNotificationRegisterTokenPlatform" json:"platform,omitempty"`
-}
-
-func (m *RpcPushNotificationRegisterTokenRequest) Reset() {
- *m = RpcPushNotificationRegisterTokenRequest{}
-}
-func (m *RpcPushNotificationRegisterTokenRequest) String() string { return proto.CompactTextString(m) }
-func (*RpcPushNotificationRegisterTokenRequest) ProtoMessage() {}
-func (*RpcPushNotificationRegisterTokenRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 43, 0, 0}
-}
-func (m *RpcPushNotificationRegisterTokenRequest) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *RpcPushNotificationRegisterTokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_RpcPushNotificationRegisterTokenRequest.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *RpcPushNotificationRegisterTokenRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RpcPushNotificationRegisterTokenRequest.Merge(m, src)
-}
-func (m *RpcPushNotificationRegisterTokenRequest) XXX_Size() int {
- return m.Size()
-}
-func (m *RpcPushNotificationRegisterTokenRequest) XXX_DiscardUnknown() {
- xxx_messageInfo_RpcPushNotificationRegisterTokenRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RpcPushNotificationRegisterTokenRequest proto.InternalMessageInfo
-
-func (m *RpcPushNotificationRegisterTokenRequest) GetToken() string {
- if m != nil {
- return m.Token
- }
- return ""
-}
-
-func (m *RpcPushNotificationRegisterTokenRequest) GetPlatform() RpcPushNotificationRegisterTokenPlatform {
- if m != nil {
- return m.Platform
- }
- return RpcPushNotificationRegisterToken_IOS
-}
-
-type RpcPushNotificationRegisterTokenResponse struct {
- Error *RpcPushNotificationRegisterTokenResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"`
-}
-
-func (m *RpcPushNotificationRegisterTokenResponse) Reset() {
- *m = RpcPushNotificationRegisterTokenResponse{}
-}
-func (m *RpcPushNotificationRegisterTokenResponse) String() string { return proto.CompactTextString(m) }
-func (*RpcPushNotificationRegisterTokenResponse) ProtoMessage() {}
-func (*RpcPushNotificationRegisterTokenResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 43, 0, 1}
-}
-func (m *RpcPushNotificationRegisterTokenResponse) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *RpcPushNotificationRegisterTokenResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_RpcPushNotificationRegisterTokenResponse.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *RpcPushNotificationRegisterTokenResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RpcPushNotificationRegisterTokenResponse.Merge(m, src)
-}
-func (m *RpcPushNotificationRegisterTokenResponse) XXX_Size() int {
- return m.Size()
-}
-func (m *RpcPushNotificationRegisterTokenResponse) XXX_DiscardUnknown() {
- xxx_messageInfo_RpcPushNotificationRegisterTokenResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RpcPushNotificationRegisterTokenResponse proto.InternalMessageInfo
-
-func (m *RpcPushNotificationRegisterTokenResponse) GetError() *RpcPushNotificationRegisterTokenResponseError {
- if m != nil {
- return m.Error
- }
- return nil
-}
-
-type RpcPushNotificationRegisterTokenResponseError struct {
- Code RpcPushNotificationRegisterTokenResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcPushNotificationRegisterTokenResponseErrorCode" json:"code,omitempty"`
- Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
-}
-
-func (m *RpcPushNotificationRegisterTokenResponseError) Reset() {
- *m = RpcPushNotificationRegisterTokenResponseError{}
-}
-func (m *RpcPushNotificationRegisterTokenResponseError) String() string {
- return proto.CompactTextString(m)
-}
-func (*RpcPushNotificationRegisterTokenResponseError) ProtoMessage() {}
-func (*RpcPushNotificationRegisterTokenResponseError) Descriptor() ([]byte, []int) {
- return fileDescriptor_8261c968b2e6f45c, []int{0, 43, 0, 1, 0}
-}
-func (m *RpcPushNotificationRegisterTokenResponseError) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *RpcPushNotificationRegisterTokenResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_RpcPushNotificationRegisterTokenResponseError.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *RpcPushNotificationRegisterTokenResponseError) XXX_Merge(src proto.Message) {
- xxx_messageInfo_RpcPushNotificationRegisterTokenResponseError.Merge(m, src)
-}
-func (m *RpcPushNotificationRegisterTokenResponseError) XXX_Size() int {
- return m.Size()
-}
-func (m *RpcPushNotificationRegisterTokenResponseError) XXX_DiscardUnknown() {
- xxx_messageInfo_RpcPushNotificationRegisterTokenResponseError.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RpcPushNotificationRegisterTokenResponseError proto.InternalMessageInfo
-
-func (m *RpcPushNotificationRegisterTokenResponseError) GetCode() RpcPushNotificationRegisterTokenResponseErrorCode {
- if m != nil {
- return m.Code
- }
- return RpcPushNotificationRegisterTokenResponseError_NULL
-}
-
-func (m *RpcPushNotificationRegisterTokenResponseError) GetDescription() string {
- if m != nil {
- return m.Description
- }
- return ""
-}
-
type Empty struct {
}
@@ -75081,6 +75038,7 @@ func init() {
proto.RegisterEnum("anytype.RpcObjectListModifyDetailValuesResponseErrorCode", RpcObjectListModifyDetailValuesResponseErrorCode_name, RpcObjectListModifyDetailValuesResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcObjectApplyTemplateResponseErrorCode", RpcObjectApplyTemplateResponseErrorCode_name, RpcObjectApplyTemplateResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcObjectListExportResponseErrorCode", RpcObjectListExportResponseErrorCode_name, RpcObjectListExportResponseErrorCode_value)
+ proto.RegisterEnum("anytype.RpcObjectExportResponseErrorCode", RpcObjectExportResponseErrorCode_name, RpcObjectExportResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcObjectImportRequestMode", RpcObjectImportRequestMode_name, RpcObjectImportRequestMode_value)
proto.RegisterEnum("anytype.RpcObjectImportRequestPbParamsType", RpcObjectImportRequestPbParamsType_name, RpcObjectImportRequestPbParamsType_value)
proto.RegisterEnum("anytype.RpcObjectImportRequestCsvParamsMode", RpcObjectImportRequestCsvParamsMode_name, RpcObjectImportRequestCsvParamsMode_value)
@@ -75292,8 +75250,6 @@ func init() {
proto.RegisterEnum("anytype.RpcChatReadMessagesReadType", RpcChatReadMessagesReadType_name, RpcChatReadMessagesReadType_value)
proto.RegisterEnum("anytype.RpcChatReadMessagesResponseErrorCode", RpcChatReadMessagesResponseErrorCode_name, RpcChatReadMessagesResponseErrorCode_value)
proto.RegisterEnum("anytype.RpcChatUnreadResponseErrorCode", RpcChatUnreadResponseErrorCode_name, RpcChatUnreadResponseErrorCode_value)
- proto.RegisterEnum("anytype.RpcPushNotificationRegisterTokenPlatform", RpcPushNotificationRegisterTokenPlatform_name, RpcPushNotificationRegisterTokenPlatform_value)
- proto.RegisterEnum("anytype.RpcPushNotificationRegisterTokenResponseErrorCode", RpcPushNotificationRegisterTokenResponseErrorCode_name, RpcPushNotificationRegisterTokenResponseErrorCode_value)
proto.RegisterType((*Rpc)(nil), "anytype.Rpc")
proto.RegisterType((*RpcApp)(nil), "anytype.Rpc.App")
proto.RegisterType((*RpcAppGetVersion)(nil), "anytype.Rpc.App.GetVersion")
@@ -75726,6 +75682,10 @@ func init() {
proto.RegisterType((*RpcObjectListExportRelationsWhiteList)(nil), "anytype.Rpc.Object.ListExport.RelationsWhiteList")
proto.RegisterType((*RpcObjectListExportResponse)(nil), "anytype.Rpc.Object.ListExport.Response")
proto.RegisterType((*RpcObjectListExportResponseError)(nil), "anytype.Rpc.Object.ListExport.Response.Error")
+ proto.RegisterType((*RpcObjectExport)(nil), "anytype.Rpc.Object.Export")
+ proto.RegisterType((*RpcObjectExportRequest)(nil), "anytype.Rpc.Object.Export.Request")
+ proto.RegisterType((*RpcObjectExportResponse)(nil), "anytype.Rpc.Object.Export.Response")
+ proto.RegisterType((*RpcObjectExportResponseError)(nil), "anytype.Rpc.Object.Export.Response.Error")
proto.RegisterType((*RpcObjectImport)(nil), "anytype.Rpc.Object.Import")
proto.RegisterType((*RpcObjectImportRequest)(nil), "anytype.Rpc.Object.Import.Request")
proto.RegisterType((*RpcObjectImportRequestNotionParams)(nil), "anytype.Rpc.Object.Import.Request.NotionParams")
@@ -76583,11 +76543,6 @@ func init() {
proto.RegisterType((*RpcChatUnreadRequest)(nil), "anytype.Rpc.Chat.Unread.Request")
proto.RegisterType((*RpcChatUnreadResponse)(nil), "anytype.Rpc.Chat.Unread.Response")
proto.RegisterType((*RpcChatUnreadResponseError)(nil), "anytype.Rpc.Chat.Unread.Response.Error")
- proto.RegisterType((*RpcPushNotification)(nil), "anytype.Rpc.PushNotification")
- proto.RegisterType((*RpcPushNotificationRegisterToken)(nil), "anytype.Rpc.PushNotification.RegisterToken")
- proto.RegisterType((*RpcPushNotificationRegisterTokenRequest)(nil), "anytype.Rpc.PushNotification.RegisterToken.Request")
- proto.RegisterType((*RpcPushNotificationRegisterTokenResponse)(nil), "anytype.Rpc.PushNotification.RegisterToken.Response")
- proto.RegisterType((*RpcPushNotificationRegisterTokenResponseError)(nil), "anytype.Rpc.PushNotification.RegisterToken.Response.Error")
proto.RegisterType((*Empty)(nil), "anytype.Empty")
proto.RegisterType((*StreamRequest)(nil), "anytype.StreamRequest")
proto.RegisterExtension(E_NoAuth)
@@ -76596,1357 +76551,1354 @@ func init() {
func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) }
var fileDescriptor_8261c968b2e6f45c = []byte{
- // 21588 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7b, 0x9c, 0x24, 0x49,
- 0x59, 0x37, 0x8a, 0x4f, 0x65, 0x56, 0x55, 0x77, 0x47, 0x5f, 0x26, 0x27, 0x77, 0x76, 0x98, 0x0d,
- 0x96, 0xd9, 0x75, 0x76, 0x59, 0xd6, 0x65, 0xe9, 0x5d, 0x16, 0x44, 0x76, 0xd9, 0x65, 0xa9, 0xae,
- 0xca, 0xee, 0xae, 0xdd, 0xea, 0xaa, 0x26, 0xab, 0x7a, 0x86, 0xd1, 0xd7, 0x5f, 0x9b, 0x53, 0x15,
- 0xdd, 0x9d, 0x3b, 0xd5, 0x99, 0x45, 0x66, 0xf6, 0xcc, 0x36, 0xbf, 0xcf, 0x7b, 0x5e, 0x11, 0x57,
- 0x40, 0x44, 0x44, 0x45, 0x45, 0xe4, 0xb6, 0x08, 0x08, 0xc8, 0xfd, 0x26, 0x28, 0x17, 0xb9, 0x08,
- 0x22, 0x2a, 0x8a, 0x17, 0x40, 0x39, 0xe2, 0x1d, 0xdf, 0xa3, 0xc7, 0x17, 0x8f, 0x82, 0xf8, 0x8a,
- 0x9e, 0x4f, 0x5c, 0xf2, 0x12, 0xd5, 0x95, 0x59, 0x91, 0xd5, 0x95, 0xd5, 0x8b, 0x9e, 0xbf, 0xaa,
- 0x32, 0x32, 0xf2, 0x89, 0x27, 0x9e, 0xef, 0x13, 0x11, 0x4f, 0x44, 0x3c, 0xf1, 0x04, 0x38, 0xdd,
- 0xbb, 0x78, 0x5b, 0xcf, 0xb1, 0x3d, 0xdb, 0xbd, 0xad, 0x6d, 0xef, 0xee, 0x1a, 0x56, 0xc7, 0x5d,
- 0x24, 0xcf, 0xea, 0x94, 0x61, 0xed, 0x7b, 0xfb, 0x3d, 0x04, 0x6f, 0xec, 0x5d, 0xda, 0xbe, 0xad,
- 0x6b, 0x5e, 0xbc, 0xad, 0x77, 0xf1, 0xb6, 0x5d, 0xbb, 0x83, 0xba, 0xfe, 0x07, 0xe4, 0x81, 0x65,
- 0x87, 0x37, 0xc7, 0xe5, 0xea, 0xda, 0x6d, 0xa3, 0xeb, 0x7a, 0xb6, 0x83, 0x58, 0xce, 0x53, 0x61,
- 0x91, 0xe8, 0x32, 0xb2, 0x3c, 0x9f, 0xc2, 0xb5, 0xdb, 0xb6, 0xbd, 0xdd, 0x45, 0xf4, 0xdd, 0xc5,
- 0xbd, 0xad, 0xdb, 0x5c, 0xcf, 0xd9, 0x6b, 0x7b, 0xec, 0xed, 0xf5, 0xfd, 0x6f, 0x3b, 0xc8, 0x6d,
- 0x3b, 0x66, 0xcf, 0xb3, 0x1d, 0x9a, 0xe3, 0xec, 0xbb, 0xbf, 0x30, 0x0d, 0x64, 0xbd, 0xd7, 0x86,
- 0x5f, 0x9f, 0x02, 0x72, 0xa9, 0xd7, 0x83, 0x9f, 0x94, 0x00, 0x58, 0x41, 0xde, 0x39, 0xe4, 0xb8,
- 0xa6, 0x6d, 0xc1, 0xe3, 0x60, 0x4a, 0x47, 0xcf, 0xde, 0x43, 0xae, 0x77, 0x57, 0xfe, 0x05, 0x7f,
- 0x2d, 0xe7, 0xe0, 0xeb, 0x25, 0x30, 0xad, 0x23, 0xb7, 0x67, 0x5b, 0x2e, 0x52, 0x9f, 0x01, 0x0a,
- 0xc8, 0x71, 0x6c, 0xe7, 0x74, 0xee, 0xfa, 0xdc, 0xcd, 0xb3, 0x77, 0xdc, 0xb2, 0xc8, 0xaa, 0xbf,
- 0xa8, 0xf7, 0xda, 0x8b, 0xa5, 0x5e, 0x6f, 0x31, 0xa4, 0xb4, 0xe8, 0x7f, 0xb4, 0xa8, 0xe1, 0x2f,
- 0x74, 0xfa, 0xa1, 0x7a, 0x1a, 0x4c, 0x5d, 0xa6, 0x19, 0x4e, 0x4b, 0xd7, 0xe7, 0x6e, 0x9e, 0xd1,
- 0xfd, 0x47, 0xfc, 0xa6, 0x83, 0x3c, 0xc3, 0xec, 0xba, 0xa7, 0x65, 0xfa, 0x86, 0x3d, 0xc2, 0x87,
- 0x73, 0xa0, 0x40, 0x88, 0xa8, 0x65, 0x90, 0x6f, 0xdb, 0x1d, 0x44, 0x8a, 0x5f, 0xb8, 0xe3, 0x36,
- 0xf1, 0xe2, 0x17, 0xcb, 0x76, 0x07, 0xe9, 0xe4, 0x63, 0xf5, 0x7a, 0x30, 0xeb, 0x8b, 0x25, 0x64,
- 0x23, 0x9a, 0x74, 0xf6, 0x0e, 0x90, 0xc7, 0xf9, 0xd5, 0x69, 0x90, 0xaf, 0x6f, 0xd4, 0x6a, 0xca,
- 0x31, 0xf5, 0x04, 0x98, 0xdf, 0xa8, 0xdf, 0x5f, 0x6f, 0x9c, 0xaf, 0x6f, 0x6a, 0xba, 0xde, 0xd0,
- 0x95, 0x9c, 0x3a, 0x0f, 0x66, 0x96, 0x4a, 0x95, 0xcd, 0x6a, 0x7d, 0x7d, 0xa3, 0xa5, 0x48, 0xf0,
- 0x55, 0x32, 0x58, 0x68, 0x22, 0xaf, 0x82, 0x2e, 0x9b, 0x6d, 0xd4, 0xf4, 0x0c, 0x0f, 0xc1, 0x97,
- 0xe4, 0x02, 0x61, 0xaa, 0x1b, 0xb8, 0xd0, 0xe0, 0x15, 0xab, 0xc0, 0x93, 0x0e, 0x54, 0x80, 0xa7,
- 0xb0, 0xc8, 0xbe, 0x5e, 0x8c, 0xa4, 0xe9, 0x51, 0x3a, 0x67, 0x9f, 0x00, 0x66, 0x23, 0xef, 0xd4,
- 0x05, 0x00, 0x96, 0x4a, 0xe5, 0xfb, 0x57, 0xf4, 0xc6, 0x46, 0xbd, 0xa2, 0x1c, 0xc3, 0xcf, 0xcb,
- 0x0d, 0x5d, 0x63, 0xcf, 0x39, 0xf8, 0xcd, 0x5c, 0x04, 0xcc, 0x0a, 0x0f, 0xe6, 0xe2, 0x70, 0x66,
- 0x06, 0x00, 0x0a, 0xdf, 0x10, 0x80, 0xb3, 0xc2, 0x81, 0xf3, 0xa4, 0x74, 0xe4, 0xb2, 0x07, 0xe8,
- 0x21, 0x09, 0x4c, 0x37, 0x77, 0xf6, 0xbc, 0x8e, 0x7d, 0xc5, 0x82, 0x33, 0x01, 0x32, 0xf0, 0xef,
- 0xa3, 0x32, 0x79, 0x3a, 0x2f, 0x93, 0x9b, 0x0f, 0x56, 0x82, 0x51, 0x88, 0x91, 0xc6, 0x6b, 0x02,
- 0x69, 0x94, 0x38, 0x69, 0x3c, 0x41, 0x94, 0x50, 0xf6, 0x72, 0xf8, 0xc2, 0xdd, 0xa0, 0xd0, 0xec,
- 0x19, 0x6d, 0x04, 0x3f, 0x2b, 0x83, 0xb9, 0x1a, 0x32, 0x2e, 0xa3, 0x52, 0xaf, 0xe7, 0xd8, 0x97,
- 0x11, 0x2c, 0x87, 0xfa, 0x7a, 0x1a, 0x4c, 0xb9, 0x38, 0x53, 0xb5, 0x43, 0x6a, 0x30, 0xa3, 0xfb,
- 0x8f, 0xea, 0x19, 0x00, 0xcc, 0x0e, 0xb2, 0x3c, 0xd3, 0x33, 0x91, 0x7b, 0x5a, 0xba, 0x5e, 0xbe,
- 0x79, 0x46, 0x8f, 0xa4, 0xc0, 0xaf, 0x4b, 0xa2, 0x3a, 0x46, 0xb8, 0x58, 0x8c, 0x72, 0x10, 0x23,
- 0xd5, 0xd7, 0x49, 0x22, 0x3a, 0x36, 0x94, 0x5c, 0x3a, 0xd9, 0xbe, 0x2d, 0x97, 0x5e, 0xb8, 0x38,
- 0x47, 0xbd, 0xb1, 0xd9, 0xdc, 0x28, 0xaf, 0x6e, 0x36, 0xd7, 0x4b, 0x65, 0x4d, 0x41, 0xea, 0x49,
- 0xa0, 0x90, 0xbf, 0x9b, 0xd5, 0xe6, 0x66, 0x45, 0xab, 0x69, 0x2d, 0xad, 0xa2, 0x6c, 0xa9, 0x2a,
- 0x58, 0xd0, 0xb5, 0x67, 0x6e, 0x68, 0xcd, 0xd6, 0xe6, 0x72, 0xa9, 0x5a, 0xd3, 0x2a, 0xca, 0x36,
- 0xfe, 0xb8, 0x56, 0x5d, 0xab, 0xb6, 0x36, 0x75, 0xad, 0x54, 0x5e, 0xd5, 0x2a, 0xca, 0x8e, 0xfa,
- 0x28, 0x70, 0x55, 0xbd, 0xb1, 0x59, 0x5a, 0x5f, 0xd7, 0x1b, 0xe7, 0xb4, 0x4d, 0xf6, 0x45, 0x53,
- 0x31, 0x69, 0x41, 0xad, 0xcd, 0xe6, 0x6a, 0x49, 0xd7, 0x4a, 0x4b, 0x35, 0x4d, 0x79, 0x00, 0x3e,
- 0x4f, 0x06, 0xf3, 0x6b, 0xc6, 0x25, 0xd4, 0xdc, 0x31, 0x1c, 0x64, 0x5c, 0xec, 0x22, 0x78, 0x83,
- 0x00, 0x9e, 0xf0, 0xb3, 0x51, 0xbc, 0x34, 0x1e, 0xaf, 0xdb, 0x06, 0x08, 0x98, 0x2b, 0x22, 0x06,
- 0xb0, 0x7f, 0x09, 0x9a, 0xc1, 0x2a, 0x07, 0xd8, 0x93, 0x53, 0xd2, 0x4b, 0x87, 0xd8, 0x0f, 0x3e,
- 0x02, 0x10, 0x83, 0x5f, 0xcc, 0x83, 0x85, 0xaa, 0x75, 0xd9, 0xf4, 0xd0, 0x0a, 0xb2, 0x90, 0x83,
- 0xc7, 0x81, 0x57, 0xe5, 0x44, 0xda, 0x55, 0x0b, 0x00, 0x93, 0x7c, 0xd7, 0xda, 0xef, 0x21, 0x52,
- 0xbd, 0xc1, 0xf2, 0xe2, 0x89, 0x07, 0x43, 0x44, 0x35, 0xf8, 0x56, 0x8f, 0xd0, 0x39, 0x7b, 0x03,
- 0x00, 0xe1, 0x1b, 0x15, 0x80, 0xe2, 0x1a, 0xda, 0xbd, 0x88, 0x1c, 0xe5, 0x98, 0x3a, 0x03, 0x0a,
- 0x2b, 0xf8, 0x4b, 0x25, 0x07, 0x5f, 0x2f, 0x47, 0x54, 0x60, 0x99, 0x57, 0x81, 0xdb, 0x45, 0x58,
- 0x18, 0x34, 0xd2, 0x5f, 0x0b, 0x66, 0x28, 0x1f, 0x65, 0xb3, 0xc3, 0xd0, 0x0a, 0x13, 0xd4, 0x1b,
- 0xc1, 0x3c, 0x7d, 0x58, 0x36, 0xbb, 0xe8, 0x7e, 0xb4, 0xcf, 0xc6, 0x7c, 0x3e, 0x11, 0xfe, 0x68,
- 0xd0, 0xf0, 0xab, 0x9c, 0x1e, 0x7d, 0x57, 0x5a, 0xa6, 0xd2, 0x29, 0xd2, 0xcb, 0x1e, 0x09, 0x4d,
- 0xff, 0x40, 0x0b, 0x37, 0xe1, 0xb7, 0x24, 0x30, 0xdb, 0xf4, 0xec, 0x1e, 0x6e, 0x2e, 0xa6, 0xb5,
- 0x2d, 0xd6, 0xbe, 0x3f, 0x1d, 0x6d, 0xdf, 0x65, 0x1e, 0xdc, 0x27, 0x0c, 0x90, 0x63, 0xa4, 0x80,
- 0x98, 0xd6, 0xfd, 0xf5, 0xa0, 0x75, 0x2f, 0x73, 0xa8, 0xdc, 0x91, 0x8a, 0xda, 0xb7, 0x61, 0xdb,
- 0x7e, 0x99, 0x0c, 0x14, 0x5f, 0xcd, 0xbc, 0xf2, 0x9e, 0xe3, 0x20, 0xcb, 0x13, 0x03, 0xe1, 0x8f,
- 0xa3, 0x20, 0xac, 0xf2, 0x20, 0xdc, 0x91, 0xa0, 0xcc, 0x7e, 0x29, 0x19, 0xb6, 0xb1, 0x8f, 0x06,
- 0x68, 0xde, 0xcf, 0xa1, 0xf9, 0xdd, 0xe9, 0xd9, 0x4a, 0x07, 0xe9, 0xea, 0x08, 0x88, 0x9e, 0x04,
- 0x0a, 0x1e, 0x0f, 0xcb, 0xad, 0xea, 0x39, 0x6d, 0xb3, 0x5a, 0x3f, 0x57, 0x6d, 0x69, 0x0a, 0x82,
- 0x2f, 0x95, 0xc3, 0x3e, 0xd7, 0x23, 0x9d, 0x9a, 0x18, 0x2a, 0x5f, 0x94, 0x46, 0xeb, 0xf7, 0x68,
- 0x19, 0x13, 0xc1, 0x44, 0xbc, 0xdf, 0x1b, 0xc8, 0x54, 0x3a, 0x44, 0xee, 0x1b, 0x01, 0x91, 0x53,
- 0x40, 0xad, 0xd6, 0xcf, 0x95, 0x6a, 0xd5, 0x0a, 0x6d, 0x63, 0x9b, 0xad, 0x0b, 0xeb, 0x18, 0x93,
- 0x9f, 0x94, 0xc1, 0x1c, 0x65, 0x4d, 0x47, 0x97, 0xed, 0x4b, 0x82, 0xc6, 0xc8, 0x97, 0x53, 0x1a,
- 0x8f, 0xd1, 0x12, 0x62, 0x7a, 0xab, 0x1f, 0x49, 0x61, 0x3c, 0x26, 0x90, 0x7b, 0x24, 0x8d, 0x20,
- 0x07, 0xba, 0xa6, 0xed, 0x01, 0x3d, 0xd8, 0xc0, 0x11, 0xe4, 0xe3, 0x79, 0xdf, 0x1e, 0x38, 0x67,
- 0xa2, 0x2b, 0x70, 0x2d, 0xc4, 0x84, 0x53, 0xdb, 0xdc, 0x50, 0xb5, 0x95, 0x06, 0xa9, 0xed, 0x5f,
- 0x45, 0xed, 0x88, 0x25, 0x1e, 0xbd, 0x5b, 0x63, 0xc5, 0x8d, 0x39, 0x89, 0x5f, 0x2d, 0xf0, 0x15,
- 0x45, 0xe2, 0xad, 0xa5, 0x6b, 0xc1, 0x0c, 0xf9, 0x5b, 0x37, 0x76, 0x11, 0x6b, 0x43, 0x61, 0x82,
- 0x7a, 0x16, 0xcc, 0xd1, 0x8c, 0x6d, 0xdb, 0xc2, 0xf5, 0xc9, 0x93, 0x0c, 0x5c, 0x1a, 0x06, 0xb1,
- 0xed, 0x20, 0xc3, 0xb3, 0x1d, 0x42, 0xa3, 0x40, 0x41, 0x8c, 0x24, 0xa9, 0xb7, 0x82, 0x13, 0xa6,
- 0x4b, 0x5a, 0xd5, 0x86, 0x8b, 0x1c, 0xca, 0xec, 0xe9, 0xe2, 0xf5, 0xb9, 0x9b, 0xa7, 0xf5, 0x83,
- 0x2f, 0xe0, 0x57, 0x83, 0x36, 0xab, 0x71, 0x7a, 0xf6, 0xc4, 0x34, 0x15, 0x4f, 0xa7, 0x65, 0x97,
- 0x47, 0xeb, 0x41, 0x69, 0xbf, 0xb9, 0x89, 0x75, 0x63, 0x99, 0x2c, 0x0c, 0x20, 0xd6, 0x8a, 0x71,
- 0x2a, 0xce, 0x5b, 0x6e, 0xd4, 0x5b, 0x5a, 0xbd, 0xa5, 0x6c, 0x0d, 0xd4, 0xbf, 0x6d, 0xf8, 0xba,
- 0x3c, 0xc8, 0xdf, 0x67, 0x9b, 0x16, 0x7c, 0x28, 0xc7, 0x29, 0x90, 0x85, 0xbc, 0x2b, 0xb6, 0x73,
- 0x29, 0x68, 0xd6, 0x61, 0x42, 0x32, 0x92, 0xa1, 0xe2, 0xc9, 0x43, 0x15, 0x2f, 0x3f, 0x48, 0xf1,
- 0x7e, 0x22, 0xaa, 0x78, 0x77, 0xf3, 0x8a, 0x77, 0xd3, 0x00, 0xf9, 0x63, 0xe6, 0x63, 0xba, 0x8b,
- 0x4f, 0x05, 0xdd, 0xc5, 0xbd, 0x1c, 0x8c, 0x8f, 0x17, 0x23, 0x93, 0x0e, 0xc0, 0x2f, 0x65, 0xda,
- 0x4d, 0x0c, 0x82, 0x7a, 0x3b, 0x06, 0xea, 0x9d, 0x01, 0x3d, 0x88, 0x79, 0xb0, 0xa3, 0x79, 0xe0,
- 0x60, 0xa7, 0x72, 0x49, 0xbd, 0x1a, 0x9c, 0xa8, 0x54, 0x97, 0x97, 0x35, 0x5d, 0xab, 0xb7, 0x36,
- 0xeb, 0x5a, 0xeb, 0x7c, 0x43, 0xbf, 0x5f, 0xe9, 0xc2, 0x87, 0x65, 0x00, 0xb0, 0x84, 0xca, 0x86,
- 0xd5, 0x46, 0x5d, 0xb1, 0xfe, 0xff, 0xff, 0x96, 0xd2, 0xf5, 0x20, 0x21, 0xfd, 0x18, 0x38, 0x5f,
- 0x29, 0x89, 0xb7, 0xca, 0x58, 0x62, 0xe9, 0x40, 0x7d, 0xf3, 0x23, 0x61, 0xf6, 0x70, 0x15, 0x38,
- 0xee, 0xd3, 0x63, 0xd9, 0x07, 0x2f, 0x1a, 0xbc, 0x3d, 0x0f, 0x16, 0x18, 0x2c, 0xfe, 0x2a, 0xd0,
- 0x0b, 0x84, 0xa6, 0xab, 0x10, 0x4c, 0xb3, 0x45, 0x1f, 0x7f, 0x30, 0x08, 0x9e, 0xd5, 0x15, 0x30,
- 0xdb, 0x43, 0xce, 0xae, 0xe9, 0xba, 0xa6, 0x6d, 0xd1, 0xe5, 0xdc, 0x85, 0x3b, 0x1e, 0x1b, 0x48,
- 0x9c, 0xac, 0x7c, 0x2f, 0xae, 0x1b, 0x8e, 0x67, 0xb6, 0xcd, 0x9e, 0x61, 0x79, 0xeb, 0x61, 0x66,
- 0x3d, 0xfa, 0x25, 0x36, 0xec, 0x52, 0x19, 0x68, 0x7c, 0x4d, 0x62, 0x54, 0xe2, 0x57, 0x53, 0x4c,
- 0x2a, 0x13, 0x09, 0xa6, 0x53, 0x8b, 0x4f, 0x66, 0xaa, 0x16, 0x03, 0xf0, 0xde, 0x56, 0xaf, 0x01,
- 0x57, 0x57, 0xeb, 0xe5, 0x86, 0xae, 0x6b, 0xe5, 0xd6, 0xe6, 0xba, 0xa6, 0xaf, 0x55, 0x9b, 0xcd,
- 0x6a, 0xa3, 0xde, 0x3c, 0x4c, 0x6b, 0x87, 0x9f, 0x91, 0x03, 0x8d, 0xa9, 0xa0, 0x76, 0xd7, 0xb4,
- 0x10, 0xbc, 0xf7, 0x90, 0x0a, 0xc3, 0xaf, 0x19, 0x8a, 0xe3, 0xcc, 0xca, 0x8f, 0xc1, 0xf9, 0xb5,
- 0xe9, 0x71, 0x1e, 0x4c, 0xf0, 0x3f, 0x71, 0xf3, 0xff, 0xb2, 0x0c, 0x4e, 0x44, 0x1a, 0xa2, 0x8e,
- 0x76, 0xc7, 0xb6, 0x0e, 0xfc, 0x83, 0xd1, 0xb6, 0x5b, 0xe5, 0x31, 0x1d, 0x64, 0x7b, 0x1f, 0x60,
- 0x23, 0x06, 0xd6, 0x37, 0x07, 0xb0, 0xd6, 0x38, 0x58, 0x9f, 0x3a, 0x02, 0xcd, 0x74, 0xc8, 0xbe,
- 0x23, 0x53, 0x64, 0xaf, 0x01, 0x57, 0xaf, 0x97, 0xf4, 0x56, 0xb5, 0x5c, 0x5d, 0x2f, 0xe1, 0x71,
- 0x34, 0x32, 0x64, 0xc7, 0x18, 0xf7, 0x3c, 0xe8, 0x03, 0xf1, 0xfd, 0x48, 0x1e, 0x5c, 0x3b, 0xb8,
- 0xa3, 0x2d, 0xef, 0x18, 0xd6, 0x36, 0x82, 0xa6, 0x08, 0xd4, 0x15, 0x30, 0xd5, 0x26, 0xd9, 0x29,
- 0xce, 0xd1, 0x8d, 0xbf, 0x84, 0xbe, 0x9c, 0x96, 0xa0, 0xfb, 0x9f, 0xc2, 0x77, 0x47, 0x15, 0xa2,
- 0xc5, 0x2b, 0xc4, 0xd3, 0x93, 0xc1, 0x3b, 0xc0, 0x77, 0x8c, 0x6e, 0x7c, 0x2e, 0xd0, 0x8d, 0xf3,
- 0x9c, 0x6e, 0x94, 0x0f, 0x47, 0x3e, 0x9d, 0x9a, 0xfc, 0xe6, 0x23, 0xa1, 0x03, 0x88, 0xd5, 0x26,
- 0x33, 0x7e, 0x54, 0x18, 0xd8, 0xdd, 0xbf, 0x5a, 0x06, 0xc5, 0x0a, 0xea, 0x22, 0x4f, 0x70, 0x06,
- 0xff, 0x0f, 0x92, 0xe8, 0x76, 0x1a, 0x85, 0x81, 0xd2, 0x8e, 0x5f, 0x4b, 0xf1, 0xcc, 0x5d, 0xe4,
- 0x7a, 0xc6, 0x6e, 0x8f, 0x88, 0x5a, 0xd6, 0xc3, 0x04, 0xf8, 0x43, 0x92, 0xc8, 0x66, 0x5b, 0x42,
- 0x31, 0xff, 0x39, 0x56, 0x85, 0x3f, 0x2f, 0x81, 0xe9, 0x26, 0xf2, 0x1a, 0x4e, 0x07, 0x39, 0xb0,
- 0x19, 0x62, 0x74, 0x3d, 0x98, 0x25, 0xa0, 0xe0, 0x69, 0x66, 0x80, 0x53, 0x34, 0x49, 0xbd, 0x09,
- 0x2c, 0x04, 0x8f, 0xe4, 0x73, 0xd6, 0x8d, 0xf7, 0xa5, 0xc2, 0xaf, 0xe5, 0x44, 0x7d, 0x00, 0xd8,
- 0xa2, 0x2f, 0xe3, 0x26, 0xa6, 0x95, 0x8a, 0xed, 0xe7, 0x27, 0x92, 0xca, 0x7e, 0x9b, 0xf4, 0x9d,
- 0x12, 0x00, 0x1b, 0x96, 0xeb, 0xcb, 0xf5, 0xf1, 0x29, 0xe4, 0x0a, 0xff, 0x39, 0x97, 0x6e, 0x16,
- 0x13, 0x96, 0x13, 0x23, 0xb1, 0x5f, 0x48, 0xb1, 0xb6, 0x10, 0x4b, 0x6c, 0x02, 0x5b, 0xcb, 0xc7,
- 0x41, 0xf1, 0xbc, 0xd1, 0xed, 0x22, 0x0f, 0xbe, 0x4a, 0x06, 0xc5, 0xb2, 0x83, 0x0c, 0x0f, 0x41,
- 0x14, 0x8a, 0x0e, 0x82, 0x69, 0xc7, 0xb6, 0xbd, 0x75, 0xc3, 0xdb, 0x61, 0x72, 0x0b, 0x9e, 0xd5,
- 0xa7, 0x82, 0x47, 0x6d, 0xed, 0x75, 0xbb, 0x1e, 0x7a, 0xd0, 0x5b, 0x77, 0xcc, 0x5d, 0xc3, 0xd9,
- 0xaf, 0x19, 0xd6, 0xf6, 0x9e, 0xb1, 0x8d, 0x18, 0x7b, 0x71, 0xaf, 0x99, 0xa3, 0xca, 0x2f, 0x45,
- 0x3b, 0x9e, 0x7b, 0x79, 0xa1, 0x7f, 0x27, 0x27, 0x27, 0xca, 0xe2, 0x22, 0x65, 0x2f, 0xa6, 0xe7,
- 0x81, 0x60, 0x7a, 0xd7, 0x42, 0xbb, 0xb6, 0x65, 0xb6, 0x7d, 0x6b, 0xd5, 0x7f, 0x86, 0x1f, 0x0b,
- 0xd0, 0x58, 0xe2, 0xd0, 0x58, 0x14, 0x2e, 0x25, 0x1d, 0x14, 0xcd, 0x11, 0xfa, 0x9d, 0xeb, 0xc0,
- 0xa3, 0x69, 0x37, 0xb2, 0xd9, 0x6a, 0x6c, 0x96, 0x75, 0xad, 0xd4, 0xd2, 0x36, 0x6b, 0x8d, 0x72,
- 0xa9, 0xb6, 0xa9, 0x6b, 0xeb, 0x0d, 0x05, 0xe1, 0xd9, 0xf9, 0x94, 0x8e, 0xda, 0xf6, 0x65, 0xe4,
- 0xc0, 0xe7, 0xe6, 0xc4, 0x20, 0x4a, 0x10, 0x4a, 0x12, 0x7c, 0xb2, 0x08, 0x7c, 0x3f, 0x21, 0xec,
- 0x67, 0xc4, 0x04, 0xcb, 0x98, 0x8f, 0x69, 0x31, 0x1f, 0x17, 0xea, 0x63, 0x12, 0x49, 0x3d, 0x02,
- 0x40, 0xfa, 0x27, 0x09, 0x4c, 0x95, 0x6d, 0xeb, 0x32, 0x72, 0xbc, 0xe8, 0x24, 0x2b, 0x8a, 0x43,
- 0xae, 0x0f, 0x87, 0xd3, 0x60, 0x0a, 0x59, 0x9e, 0x63, 0xf7, 0xfc, 0x59, 0x96, 0xff, 0x08, 0xdf,
- 0x98, 0x56, 0xc2, 0xac, 0xe4, 0xf8, 0xb5, 0xd9, 0xc1, 0x05, 0x71, 0xec, 0xc9, 0x7d, 0x6d, 0xe7,
- 0xe1, 0x34, 0xb8, 0x0c, 0x66, 0x20, 0xfb, 0x7e, 0xec, 0x2b, 0x32, 0x98, 0xa7, 0xed, 0xb6, 0x89,
- 0x88, 0x59, 0x08, 0x1b, 0xd1, 0x75, 0xce, 0x3e, 0xe1, 0xaf, 0x1e, 0xe3, 0xc4, 0x5f, 0x34, 0x7a,
- 0xbd, 0x60, 0x85, 0x7c, 0xf5, 0x98, 0xce, 0x9e, 0xa9, 0x9a, 0x2f, 0x15, 0x41, 0xde, 0xd8, 0xf3,
- 0x76, 0xe0, 0xb7, 0x84, 0x67, 0xbc, 0x5c, 0x3f, 0xc2, 0xf8, 0x89, 0x81, 0xe4, 0x24, 0x28, 0x78,
- 0xf6, 0x25, 0xe4, 0xcb, 0x81, 0x3e, 0x60, 0x38, 0x8c, 0x5e, 0xaf, 0x45, 0x5e, 0x30, 0x38, 0xfc,
- 0x67, 0x6c, 0x60, 0x19, 0xed, 0xb6, 0xbd, 0x67, 0x79, 0x55, 0x7f, 0x95, 0x3c, 0x4c, 0x80, 0x5f,
- 0x10, 0xda, 0x86, 0x12, 0x60, 0x30, 0x1d, 0x64, 0x17, 0x47, 0x68, 0x4a, 0x8b, 0xe0, 0x96, 0xd2,
- 0xfa, 0xfa, 0x66, 0xab, 0x71, 0xbf, 0x56, 0x0f, 0xad, 0xdd, 0xcd, 0x6a, 0x7d, 0xb3, 0xb5, 0xaa,
- 0x6d, 0x96, 0x37, 0x74, 0xb2, 0x38, 0x59, 0x2a, 0x97, 0x1b, 0x1b, 0xf5, 0x96, 0x82, 0xe0, 0x5b,
- 0x25, 0x30, 0x57, 0xee, 0xda, 0x6e, 0x80, 0xf0, 0x75, 0x21, 0xc2, 0x81, 0x18, 0x73, 0x11, 0x31,
- 0xc2, 0xff, 0x9d, 0x13, 0xf5, 0x93, 0xf1, 0x05, 0x12, 0x21, 0x1f, 0xd3, 0x4b, 0xbd, 0x51, 0xc8,
- 0x4f, 0x66, 0x38, 0xbd, 0xec, 0x9b, 0xc4, 0x67, 0x97, 0xc1, 0x54, 0x89, 0x2a, 0x06, 0xfc, 0xd3,
- 0x1c, 0x28, 0x96, 0x6d, 0x6b, 0xcb, 0xdc, 0xc6, 0x16, 0x24, 0xb2, 0x8c, 0x8b, 0x5d, 0x54, 0x31,
- 0x3c, 0xe3, 0xb2, 0x89, 0xae, 0x90, 0x0a, 0x4c, 0xeb, 0x7d, 0xa9, 0x98, 0x29, 0x96, 0x82, 0x2e,
- 0xee, 0x6d, 0x13, 0xa6, 0xa6, 0xf5, 0x68, 0x12, 0x1e, 0x3f, 0xe8, 0xe3, 0xba, 0x83, 0x1c, 0xd4,
- 0x45, 0x86, 0x8b, 0xf0, 0x5c, 0xcc, 0x42, 0x5d, 0xa2, 0xb4, 0xd3, 0x7a, 0xdc, 0x6b, 0xf5, 0x2c,
- 0x98, 0xa3, 0xaf, 0x88, 0xfd, 0xe3, 0x12, 0x35, 0x9e, 0xd6, 0xb9, 0x34, 0xf5, 0x09, 0xa0, 0x80,
- 0x1e, 0xf4, 0x1c, 0xe3, 0x74, 0x87, 0xe0, 0xf5, 0xa8, 0x45, 0xea, 0x28, 0xbb, 0xe8, 0x3b, 0xca,
- 0x2e, 0x36, 0x89, 0x1b, 0xad, 0x4e, 0x73, 0xc1, 0xff, 0x35, 0x1d, 0x58, 0x2f, 0x9f, 0x97, 0x43,
- 0xc5, 0x50, 0x41, 0xde, 0x32, 0x76, 0x11, 0xd3, 0x0b, 0xf2, 0x5f, 0xbd, 0x05, 0x1c, 0x37, 0x2e,
- 0x1b, 0x9e, 0xe1, 0xd4, 0xec, 0xb6, 0xd1, 0x25, 0xc3, 0xa6, 0xdf, 0xf2, 0xfb, 0x5f, 0x90, 0x4d,
- 0x2b, 0xcf, 0x76, 0x10, 0xc9, 0xe5, 0x6f, 0x5a, 0xf9, 0x09, 0x98, 0xba, 0xd9, 0xb6, 0x2d, 0xc2,
- 0xbf, 0xac, 0x93, 0xff, 0x58, 0x2a, 0x1d, 0xd3, 0xc5, 0x15, 0x21, 0x54, 0xea, 0x74, 0x3f, 0xa5,
- 0xb9, 0x6f, 0xb5, 0xc9, 0x86, 0xd5, 0xb4, 0x1e, 0xf7, 0x5a, 0x5d, 0x02, 0xb3, 0x6c, 0xf7, 0x65,
- 0x0d, 0xeb, 0x55, 0x91, 0xe8, 0xd5, 0xf5, 0xbc, 0x1b, 0x22, 0xc5, 0x73, 0xb1, 0x1e, 0xe6, 0xd3,
- 0xa3, 0x1f, 0xa9, 0xcf, 0x00, 0x8f, 0x66, 0x8f, 0xe5, 0x3d, 0xd7, 0xb3, 0x77, 0x29, 0xe8, 0xcb,
- 0x66, 0x97, 0xd6, 0x60, 0x8a, 0xd4, 0x20, 0x29, 0x8b, 0x7a, 0x07, 0x38, 0xd9, 0x73, 0xd0, 0x16,
- 0x72, 0x2e, 0x18, 0xbb, 0x7b, 0x0f, 0xb6, 0x1c, 0xc3, 0x72, 0x7b, 0xb6, 0xe3, 0x9d, 0x9e, 0x26,
- 0xcc, 0x0f, 0x7c, 0xa7, 0xde, 0x0a, 0x4e, 0x3c, 0xe0, 0xda, 0x56, 0xa9, 0x67, 0xd6, 0x4c, 0xd7,
- 0x43, 0x56, 0xa9, 0xd3, 0x71, 0x4e, 0xcf, 0x90, 0xb2, 0x0e, 0xbe, 0x50, 0x6f, 0x04, 0xf3, 0x0f,
- 0xd8, 0xa6, 0xd5, 0xf4, 0x1c, 0x64, 0xec, 0x6e, 0x38, 0xdd, 0xd3, 0x80, 0x6e, 0x10, 0x71, 0x89,
- 0xac, 0xf3, 0x9d, 0x06, 0x45, 0x0a, 0x09, 0x7c, 0x49, 0x41, 0xd8, 0xab, 0x99, 0x09, 0x29, 0xd1,
- 0x5a, 0xbc, 0x1d, 0x4c, 0xb1, 0x5e, 0x93, 0x80, 0x3f, 0x7b, 0xc7, 0xa9, 0xbe, 0x05, 0x12, 0x46,
- 0x45, 0xf7, 0xb3, 0xa9, 0x4f, 0x02, 0xc5, 0x36, 0x11, 0x15, 0xd1, 0x83, 0xd9, 0x3b, 0x1e, 0x3d,
- 0xb8, 0x50, 0x92, 0x45, 0x67, 0x59, 0xe1, 0x17, 0x65, 0x21, 0x47, 0xe8, 0x24, 0x8e, 0xd3, 0xf5,
- 0x14, 0x5f, 0x95, 0x46, 0xe8, 0x8a, 0x6f, 0x05, 0x37, 0xb3, 0x7e, 0x96, 0xd9, 0x34, 0x95, 0xcd,
- 0xa5, 0x0d, 0x7f, 0x56, 0x8b, 0x2d, 0x9d, 0x66, 0xab, 0xa4, 0xb7, 0x36, 0xeb, 0x8d, 0x0a, 0x9e,
- 0x0d, 0xdf, 0x02, 0x6e, 0x1a, 0x92, 0x5b, 0x6b, 0x6d, 0xd6, 0x4b, 0x6b, 0x9a, 0xb2, 0xc5, 0xdb,
- 0x4b, 0xcd, 0x56, 0x63, 0x7d, 0x53, 0xdf, 0xa8, 0xd7, 0xab, 0xf5, 0x15, 0x4a, 0x0c, 0x1b, 0xa8,
- 0xa7, 0xc2, 0x0c, 0xe7, 0xf5, 0x6a, 0x4b, 0xdb, 0x2c, 0x37, 0xea, 0xcb, 0xd5, 0x15, 0xc5, 0x1c,
- 0x66, 0x6c, 0x3d, 0xa0, 0x5e, 0x0f, 0xae, 0xe5, 0x38, 0xa9, 0x36, 0xea, 0x78, 0x8a, 0x5e, 0x2e,
- 0xd5, 0xcb, 0x1a, 0x9e, 0x8f, 0x5f, 0x52, 0x21, 0xb8, 0x9a, 0x92, 0xdb, 0x5c, 0xae, 0xd6, 0xa2,
- 0xbb, 0x6a, 0x9f, 0xce, 0xa9, 0xa7, 0xc1, 0x55, 0xd1, 0x77, 0xcc, 0x27, 0x42, 0xf9, 0x8d, 0x9c,
- 0x7a, 0x23, 0xb8, 0x8e, 0xfb, 0x8a, 0x6e, 0x90, 0x6d, 0x56, 0x2b, 0x9b, 0x6b, 0xd5, 0xe6, 0x5a,
- 0xa9, 0x55, 0x5e, 0x55, 0x3e, 0x43, 0xa6, 0x2f, 0x81, 0x3d, 0x1e, 0xf1, 0x4e, 0x7e, 0x59, 0xd4,
- 0x4e, 0x28, 0xf1, 0x8a, 0xfa, 0xf8, 0x81, 0xb0, 0x27, 0xdb, 0xc5, 0x9f, 0x0c, 0x46, 0x9c, 0x0a,
- 0xa7, 0x42, 0xb7, 0xa7, 0xa0, 0x95, 0x4e, 0x87, 0x5a, 0x23, 0xa8, 0xd0, 0xf5, 0xe0, 0xda, 0xba,
- 0x46, 0x91, 0xd2, 0xb5, 0x72, 0xe3, 0x9c, 0xa6, 0x6f, 0x9e, 0x2f, 0xd5, 0x6a, 0x5a, 0x6b, 0x73,
- 0xb9, 0xaa, 0x37, 0x5b, 0xca, 0x16, 0xfc, 0x67, 0x29, 0x58, 0x96, 0x8a, 0x48, 0xeb, 0x4f, 0xa5,
- 0xb4, 0xcd, 0x3a, 0x71, 0xf9, 0xe9, 0xbb, 0x40, 0xd1, 0xf5, 0x0c, 0x6f, 0xcf, 0x65, 0xad, 0xfa,
- 0x31, 0x83, 0x5b, 0xf5, 0x62, 0x93, 0x64, 0xd2, 0x59, 0x66, 0xf8, 0xc5, 0x5c, 0x9a, 0x66, 0x3a,
- 0x86, 0x95, 0x29, 0x73, 0x04, 0x11, 0x9f, 0x01, 0xd0, 0xd7, 0xf6, 0x6a, 0x73, 0xb3, 0x54, 0xd3,
- 0xb5, 0x52, 0xe5, 0x42, 0xb0, 0x1e, 0x85, 0xd4, 0xab, 0xc1, 0x89, 0x8d, 0x7a, 0x69, 0xa9, 0xa6,
- 0x91, 0xe6, 0xd2, 0xa8, 0xd7, 0xb5, 0x32, 0x96, 0xfb, 0x0f, 0x91, 0xdd, 0x1f, 0x6c, 0x95, 0x13,
- 0xbe, 0xb1, 0xe5, 0x14, 0x91, 0xff, 0x5f, 0x0b, 0xbb, 0xb9, 0x85, 0x1a, 0x16, 0xa5, 0x35, 0x5e,
- 0x1c, 0xbe, 0x20, 0xe4, 0xd9, 0x26, 0xc4, 0x49, 0x3a, 0x3c, 0xbe, 0x7f, 0x04, 0x3c, 0xae, 0x06,
- 0x27, 0xa2, 0x78, 0x10, 0x0f, 0xb7, 0x78, 0x18, 0xfe, 0x44, 0x06, 0x53, 0x6b, 0xe6, 0x36, 0x71,
- 0x2f, 0xde, 0x0b, 0x0d, 0x94, 0x05, 0x20, 0x05, 0xde, 0x3b, 0x92, 0xd9, 0xe1, 0x26, 0xf3, 0x92,
- 0xf8, 0x7a, 0x8b, 0xd0, 0x84, 0xfd, 0x8b, 0xa9, 0x7b, 0x26, 0xc6, 0x70, 0x4c, 0xcf, 0xf4, 0x42,
- 0x29, 0x4d, 0xcf, 0x34, 0x98, 0x56, 0x2a, 0x98, 0xb0, 0xe9, 0xe0, 0xa0, 0x67, 0xef, 0x99, 0x0e,
- 0xea, 0x10, 0x33, 0x91, 0xd4, 0x5b, 0xd6, 0xf9, 0xc4, 0xb3, 0xce, 0xe1, 0xc0, 0x8c, 0x7a, 0xd9,
- 0xcc, 0x81, 0xe9, 0x60, 0x34, 0x21, 0x1b, 0x3e, 0xf8, 0xa5, 0x56, 0x6f, 0x6c, 0xac, 0xac, 0x6e,
- 0x2e, 0xeb, 0x9a, 0xc6, 0x96, 0x88, 0xb7, 0xe1, 0xbb, 0x24, 0x30, 0xcf, 0x6a, 0xc8, 0xbc, 0x27,
- 0xae, 0x8b, 0x05, 0x99, 0xc1, 0xf1, 0x1f, 0xd1, 0xe9, 0xc9, 0x0a, 0x0f, 0xc7, 0x13, 0x93, 0x44,
- 0x98, 0xe8, 0x3e, 0xf1, 0xa6, 0xa0, 0x09, 0xdd, 0xc7, 0x81, 0xf2, 0x94, 0xd4, 0x14, 0xb3, 0x9f,
- 0xa2, 0xbc, 0x04, 0x80, 0x62, 0x13, 0x75, 0x51, 0xdb, 0x83, 0x1f, 0x92, 0x47, 0x6e, 0x13, 0x71,
- 0xe6, 0xb6, 0x9c, 0xca, 0xdc, 0xce, 0x67, 0x60, 0x6e, 0x17, 0x46, 0x37, 0xb7, 0x8b, 0x69, 0xcd,
- 0xed, 0xa9, 0x38, 0x73, 0x3b, 0xa1, 0xd7, 0x98, 0x4e, 0xec, 0x35, 0xfa, 0x0c, 0x75, 0xbd, 0xc6,
- 0x4c, 0x7a, 0x3e, 0x91, 0x29, 0xf3, 0x27, 0x8a, 0x69, 0xc7, 0x71, 0x0a, 0xfc, 0xd1, 0x9a, 0xe7,
- 0x3f, 0x56, 0x48, 0x33, 0xee, 0x0f, 0xe4, 0x38, 0x5d, 0x2b, 0x79, 0x65, 0x3e, 0x83, 0x45, 0x47,
- 0xf5, 0x06, 0x70, 0x5d, 0xf8, 0xbc, 0xa9, 0x3d, 0xab, 0xda, 0x6c, 0x35, 0x89, 0x4d, 0x5e, 0x6e,
- 0xe8, 0xfa, 0xc6, 0x3a, 0xdd, 0xae, 0x3a, 0x05, 0xd4, 0x90, 0x8a, 0xbe, 0x51, 0xa7, 0x16, 0xf8,
- 0x36, 0x4f, 0x7d, 0xb9, 0x5a, 0xaf, 0x6c, 0x06, 0xa3, 0x5a, 0x7d, 0xb9, 0xa1, 0xec, 0xa8, 0x8b,
- 0xe0, 0x96, 0x08, 0x75, 0xd2, 0x01, 0xd2, 0x12, 0x4a, 0xf5, 0xca, 0xe6, 0x5a, 0x5d, 0x5b, 0x6b,
- 0xd4, 0xab, 0x65, 0x92, 0xde, 0xd4, 0x5a, 0x8a, 0x89, 0x4d, 0xc1, 0x3e, 0x9b, 0xbf, 0xa9, 0x95,
- 0xf4, 0xf2, 0xaa, 0xa6, 0xd3, 0x22, 0x1f, 0x50, 0x6f, 0x02, 0x67, 0x4b, 0xf5, 0x46, 0x0b, 0xa7,
- 0x94, 0xea, 0x17, 0x5a, 0x17, 0xd6, 0xb5, 0xcd, 0x75, 0xbd, 0x51, 0xd6, 0x9a, 0x4d, 0x3c, 0x92,
- 0xb2, 0x19, 0x82, 0xd2, 0x55, 0x9f, 0x0e, 0xee, 0x8a, 0xb0, 0xa6, 0xb5, 0x88, 0x6f, 0xc4, 0x5a,
- 0x83, 0xb8, 0xc7, 0x55, 0xb4, 0xcd, 0xd5, 0x52, 0x73, 0xb3, 0x5a, 0x2f, 0x37, 0xd6, 0xd6, 0x4b,
- 0xad, 0x2a, 0x1e, 0x70, 0xd7, 0xf5, 0x46, 0xab, 0xb1, 0x79, 0x4e, 0xd3, 0x9b, 0xd5, 0x46, 0x5d,
- 0xb1, 0x70, 0x95, 0x23, 0x23, 0xb4, 0x6f, 0x29, 0xd9, 0xea, 0xb5, 0xe0, 0xb4, 0x9f, 0x5e, 0x6b,
- 0x60, 0x41, 0x47, 0xe6, 0x0c, 0xbd, 0xa8, 0x9d, 0xd5, 0x6c, 0x35, 0x74, 0x3a, 0x6b, 0x58, 0xab,
- 0xae, 0xe8, 0x78, 0xaa, 0xa3, 0x3c, 0x3b, 0xd3, 0x39, 0xc5, 0xbf, 0x4a, 0x20, 0xdf, 0xf4, 0xec,
- 0x1e, 0xfc, 0xce, 0xb0, 0x3b, 0x3c, 0x03, 0x80, 0x43, 0x5c, 0x21, 0x2a, 0x86, 0x67, 0xb0, 0xd5,
- 0x9a, 0x48, 0x0a, 0xfc, 0x75, 0xe1, 0xfd, 0xdb, 0xd0, 0xea, 0xb2, 0x7b, 0x31, 0xc3, 0xc7, 0x37,
- 0xc5, 0x8e, 0x43, 0xc6, 0x13, 0x4a, 0xd7, 0x1e, 0x7e, 0x64, 0x94, 0x1d, 0x5a, 0x08, 0x4e, 0x45,
- 0x60, 0xc5, 0xf2, 0xf7, 0x55, 0x06, 0xa9, 0x8f, 0x02, 0x57, 0xf5, 0x29, 0x1f, 0xd1, 0xb9, 0x2d,
- 0xf5, 0x3b, 0xc0, 0x63, 0x22, 0xea, 0xaf, 0xad, 0x35, 0xce, 0x69, 0x81, 0xa2, 0x57, 0x4a, 0xad,
- 0x92, 0xb2, 0x0d, 0x3f, 0x2f, 0x83, 0xfc, 0x9a, 0x7d, 0xb9, 0x7f, 0xdb, 0xdc, 0x42, 0x57, 0x22,
- 0x7b, 0x2b, 0xfe, 0x23, 0x7f, 0x04, 0x4b, 0x48, 0xec, 0x6b, 0xf1, 0x2e, 0x32, 0x5f, 0x90, 0xd2,
- 0x88, 0x7d, 0xed, 0xb0, 0x7e, 0x31, 0x7f, 0x3b, 0x8a, 0xd8, 0x63, 0x44, 0x8b, 0xd4, 0xb3, 0xe0,
- 0x4c, 0xf8, 0xa2, 0x5a, 0xd1, 0xea, 0xad, 0xea, 0xf2, 0x85, 0x50, 0xb8, 0x55, 0x5d, 0x48, 0xfc,
- 0xc3, 0xba, 0xb9, 0xe4, 0xb5, 0x82, 0xd3, 0xe0, 0x64, 0xf8, 0x6e, 0x45, 0x6b, 0xf9, 0x6f, 0x1e,
- 0x80, 0x0f, 0x15, 0xc0, 0x1c, 0xed, 0xf6, 0x37, 0x7a, 0x1d, 0x6c, 0x7d, 0x3f, 0x29, 0x44, 0xf7,
- 0x66, 0x70, 0xbc, 0xba, 0xbe, 0xdc, 0x6c, 0x7a, 0xb6, 0x63, 0x6c, 0x23, 0x32, 0x8e, 0x52, 0x69,
- 0xf5, 0x27, 0xc3, 0xf7, 0x0a, 0xaf, 0xfe, 0xf3, 0x43, 0x0d, 0x2d, 0x33, 0x06, 0xf5, 0xaf, 0x08,
- 0xad, 0xd6, 0x0b, 0x10, 0x4c, 0x87, 0xfe, 0x03, 0x63, 0x6e, 0x73, 0xf1, 0xb8, 0x6c, 0x9d, 0x7d,
- 0xbe, 0x04, 0x66, 0x5a, 0xe6, 0x2e, 0x7a, 0x8e, 0x6d, 0x21, 0x57, 0x9d, 0x02, 0xf2, 0xca, 0x5a,
- 0x4b, 0x39, 0x86, 0xff, 0xe0, 0x69, 0x51, 0x8e, 0xfc, 0xd1, 0x70, 0x01, 0xf8, 0x4f, 0xa9, 0xa5,
- 0xc8, 0xf8, 0xcf, 0x9a, 0xd6, 0x52, 0xf2, 0xf8, 0x4f, 0x5d, 0x6b, 0x29, 0x05, 0xfc, 0x67, 0xbd,
- 0xd6, 0x52, 0x8a, 0xf8, 0x4f, 0xb5, 0xd9, 0x52, 0xa6, 0xf0, 0x9f, 0xa5, 0x66, 0x4b, 0x99, 0xc6,
- 0x7f, 0xce, 0x35, 0x5b, 0xca, 0x0c, 0xfe, 0x53, 0x6e, 0xb5, 0x14, 0x80, 0xff, 0xdc, 0xd7, 0x6c,
- 0x29, 0xb3, 0xf8, 0x4f, 0xa9, 0xdc, 0x52, 0xe6, 0xc8, 0x1f, 0xad, 0xa5, 0xcc, 0xe3, 0x3f, 0xcd,
- 0x66, 0x4b, 0x59, 0x20, 0x94, 0x9b, 0x2d, 0xe5, 0x38, 0x29, 0xab, 0xda, 0x52, 0x14, 0xfc, 0x67,
- 0xb5, 0xd9, 0x52, 0x4e, 0x90, 0xcc, 0xcd, 0x96, 0xa2, 0x92, 0x42, 0x9b, 0x2d, 0xe5, 0x2a, 0x92,
- 0xa7, 0xd9, 0x52, 0x4e, 0x92, 0x22, 0x9a, 0x2d, 0xe5, 0x6a, 0xc2, 0x86, 0xd6, 0x52, 0x4e, 0x91,
- 0x3c, 0x7a, 0x4b, 0x79, 0x14, 0x79, 0x55, 0x6f, 0x29, 0xa7, 0x09, 0x63, 0x5a, 0x4b, 0xb9, 0x86,
- 0xfc, 0xd1, 0x5b, 0x0a, 0x24, 0xaf, 0x4a, 0x2d, 0xe5, 0xd1, 0xf0, 0x31, 0x60, 0x66, 0x05, 0x79,
- 0x14, 0x44, 0xa8, 0x00, 0x79, 0x05, 0x79, 0xd1, 0x89, 0xf8, 0xab, 0xf2, 0xe0, 0x51, 0x6c, 0xf1,
- 0x66, 0xd9, 0xb1, 0x77, 0x6b, 0x68, 0xdb, 0x68, 0xef, 0x6b, 0x0f, 0x62, 0x83, 0x0f, 0xbe, 0x38,
- 0xc7, 0xad, 0x68, 0xf7, 0xc2, 0xde, 0x88, 0xfc, 0x4f, 0x34, 0x90, 0xfd, 0x35, 0x6a, 0x99, 0x5f,
- 0xa3, 0x8e, 0x33, 0x09, 0xf3, 0x22, 0x13, 0xc9, 0x7f, 0x8c, 0x36, 0x06, 0x6e, 0x43, 0x2a, 0xd7,
- 0xb7, 0x21, 0x85, 0x5b, 0x58, 0x0f, 0x39, 0xae, 0x6d, 0x19, 0xdd, 0x26, 0x73, 0x3f, 0xa2, 0x73,
- 0xd5, 0xfe, 0x64, 0xf5, 0x99, 0x7e, 0xa3, 0xa2, 0x06, 0xdf, 0xd3, 0x92, 0x96, 0xb7, 0xfa, 0x25,
- 0x14, 0xd3, 0xbe, 0x3e, 0x13, 0xb4, 0xaf, 0x16, 0xd7, 0xbe, 0x9e, 0x71, 0x08, 0xda, 0xe9, 0x9a,
- 0x5a, 0x75, 0xb4, 0xa9, 0x68, 0xe8, 0x9c, 0xef, 0xef, 0x7f, 0xc9, 0xf0, 0xf3, 0x12, 0x38, 0xa5,
- 0x59, 0x83, 0xa6, 0x32, 0x51, 0x35, 0x7a, 0x6b, 0x14, 0x9a, 0x75, 0x5e, 0xa4, 0x77, 0x0d, 0xac,
- 0xf6, 0x60, 0x9a, 0x31, 0x12, 0xfd, 0xed, 0x40, 0xa2, 0x4d, 0x4e, 0xa2, 0xf7, 0x8e, 0x4e, 0x3a,
- 0x9d, 0x40, 0xeb, 0x63, 0xed, 0xbb, 0xf2, 0xf0, 0x2f, 0x25, 0x70, 0x82, 0x7a, 0x10, 0xde, 0x47,
- 0x67, 0x4e, 0xa4, 0xb7, 0xe7, 0xad, 0xaf, 0x6e, 0x38, 0xcb, 0xa2, 0xfa, 0x1d, 0x49, 0x81, 0xaf,
- 0x8b, 0x0a, 0xfc, 0x7e, 0x5e, 0xe0, 0x31, 0xfd, 0x78, 0x7f, 0x71, 0x31, 0xb2, 0xfe, 0x8d, 0x40,
- 0xd6, 0x75, 0x4e, 0xd6, 0x77, 0x8d, 0x44, 0xf5, 0x68, 0xc5, 0xfc, 0xd5, 0x3c, 0x78, 0x0c, 0xe5,
- 0x90, 0x29, 0x02, 0xed, 0x07, 0x4b, 0x56, 0x47, 0x47, 0xae, 0x67, 0x38, 0x1e, 0x17, 0x7a, 0xa5,
- 0x6f, 0x6a, 0x9e, 0xcb, 0x60, 0x6a, 0x2e, 0x0d, 0x9d, 0x9a, 0xc3, 0xf7, 0x44, 0x0d, 0xbc, 0xf3,
- 0x3c, 0xb2, 0xa5, 0x04, 0x0c, 0x62, 0x6a, 0x18, 0xd7, 0xa2, 0x02, 0xcb, 0xef, 0x7b, 0x38, 0x94,
- 0x97, 0x0f, 0x5d, 0x42, 0x3a, 0xc4, 0x7f, 0x7d, 0xbc, 0x96, 0x78, 0x3e, 0xfa, 0x8e, 0x37, 0x1b,
- 0x95, 0x4e, 0xa6, 0x53, 0xa8, 0x97, 0x4e, 0x83, 0x19, 0xd2, 0xe5, 0xd4, 0x4c, 0xeb, 0x12, 0xfc,
- 0x0b, 0x19, 0xcc, 0xd5, 0xd1, 0x95, 0xf2, 0x8e, 0xd1, 0xed, 0x22, 0x6b, 0x1b, 0xc1, 0x07, 0x38,
- 0xdb, 0xde, 0xe8, 0xf5, 0xea, 0xe1, 0xfe, 0xb0, 0xff, 0xa8, 0xde, 0x0b, 0x0a, 0x6e, 0xdb, 0x0e,
- 0x82, 0x3a, 0x7c, 0x67, 0xcc, 0xea, 0x75, 0x69, 0xcf, 0xdb, 0x59, 0x24, 0x65, 0x95, 0x7a, 0x66,
- 0x13, 0x7f, 0xa0, 0xd3, 0xef, 0xd8, 0x38, 0xf9, 0xd7, 0x03, 0x3b, 0xe3, 0x5c, 0x42, 0x67, 0x1c,
- 0x30, 0xbe, 0x18, 0x65, 0x3a, 0x66, 0x91, 0xe4, 0x7a, 0x30, 0xdb, 0xf6, 0xb3, 0x04, 0xa7, 0xf4,
- 0xa2, 0x49, 0xf0, 0xaf, 0x52, 0x75, 0xd7, 0x42, 0x85, 0xa7, 0xd3, 0x2a, 0x34, 0x66, 0x53, 0xf3,
- 0x6a, 0x70, 0xa2, 0xd5, 0x68, 0x6c, 0xae, 0x95, 0xea, 0x17, 0xc2, 0xd8, 0x2a, 0x5b, 0xf0, 0x95,
- 0x79, 0xb0, 0xd0, 0xb4, 0xbb, 0x97, 0x51, 0x88, 0x73, 0x95, 0x73, 0xff, 0x8c, 0xca, 0x29, 0x77,
- 0x40, 0x4e, 0xea, 0x29, 0x50, 0x34, 0x2c, 0xf7, 0x0a, 0xf2, 0xcd, 0x7f, 0xf6, 0xc4, 0x60, 0xfc,
- 0x48, 0xb4, 0x23, 0xd0, 0x79, 0x18, 0xef, 0x1e, 0x22, 0x49, 0x9e, 0xab, 0x18, 0x20, 0xcf, 0x82,
- 0x39, 0x97, 0x7a, 0x89, 0xb4, 0x22, 0xce, 0x40, 0x5c, 0x1a, 0x61, 0x91, 0xba, 0x29, 0xc9, 0x8c,
- 0x45, 0xf2, 0x04, 0x1f, 0x0e, 0xfa, 0x8f, 0x0d, 0x0e, 0xe2, 0xd2, 0x61, 0x18, 0x4b, 0x07, 0xf2,
- 0xab, 0xc7, 0x3d, 0x89, 0x3f, 0x0d, 0x4e, 0xfa, 0x27, 0xd4, 0xcb, 0xab, 0xa5, 0x5a, 0x4d, 0xab,
- 0xaf, 0x68, 0x9b, 0xd5, 0x0a, 0xdd, 0x4f, 0x0e, 0x53, 0x4a, 0xad, 0x96, 0xb6, 0xb6, 0xde, 0x6a,
- 0x6e, 0x6a, 0xcf, 0x2a, 0x6b, 0x5a, 0x85, 0x38, 0x60, 0x93, 0x13, 0x94, 0xbe, 0xab, 0x7c, 0xa9,
- 0xde, 0x3c, 0xaf, 0xe9, 0xca, 0xce, 0xd9, 0x12, 0x98, 0x8d, 0x0c, 0x14, 0x98, 0xbb, 0x0a, 0xda,
- 0x32, 0xf6, 0xba, 0xcc, 0x1c, 0x57, 0x8e, 0x61, 0xee, 0x88, 0x6c, 0x1a, 0x56, 0x77, 0x5f, 0xc9,
- 0xa9, 0x0a, 0x98, 0x8b, 0x8e, 0x09, 0x8a, 0x04, 0xdf, 0x79, 0x2d, 0x98, 0x39, 0x6f, 0x3b, 0x97,
- 0x88, 0xd7, 0x30, 0xfc, 0x00, 0x8d, 0xc1, 0xe6, 0x47, 0x94, 0x88, 0x18, 0x60, 0xaf, 0x16, 0x77,
- 0x13, 0xf3, 0xa9, 0x2d, 0x0e, 0x8d, 0x1a, 0x71, 0x3d, 0x98, 0xbd, 0xe2, 0xe7, 0x0e, 0x5b, 0x7a,
- 0x24, 0x09, 0xfe, 0xa2, 0x98, 0xe3, 0xd7, 0xf0, 0x22, 0xb3, 0x5f, 0xf5, 0x7f, 0xbb, 0x04, 0x8a,
- 0x2b, 0xc8, 0x2b, 0x75, 0xbb, 0x51, 0xb9, 0xbd, 0x5c, 0xf8, 0x1c, 0x29, 0x57, 0x89, 0x52, 0xb7,
- 0x1b, 0xdf, 0xa8, 0x22, 0x02, 0xf2, 0xcf, 0x3b, 0x71, 0x69, 0x82, 0x5e, 0xda, 0x43, 0x0a, 0xcc,
- 0x5e, 0x62, 0x1f, 0x0b, 0x5d, 0xb3, 0x5f, 0x1f, 0x31, 0x93, 0x9e, 0x18, 0xc6, 0xdf, 0xcb, 0x25,
- 0x3b, 0x49, 0xf9, 0xf9, 0xd4, 0xfb, 0xc1, 0xd4, 0x9e, 0x8b, 0xca, 0x86, 0xeb, 0x0f, 0x6d, 0x7c,
- 0x4d, 0x1b, 0x17, 0x1f, 0x40, 0x6d, 0x6f, 0xb1, 0xba, 0x8b, 0x27, 0x3e, 0x1b, 0x34, 0x63, 0x10,
- 0xaf, 0x88, 0x3d, 0xeb, 0x3e, 0x05, 0x3c, 0xed, 0xbc, 0x62, 0x7a, 0x3b, 0xe5, 0x1d, 0xc3, 0x63,
- 0x9b, 0x2d, 0xc1, 0x33, 0x7c, 0xc9, 0x08, 0x70, 0x26, 0x3a, 0xec, 0xc4, 0x1e, 0x47, 0x4f, 0x0d,
- 0xe2, 0x18, 0xbc, 0x6c, 0x46, 0x01, 0xf1, 0xef, 0x24, 0x90, 0x6f, 0xf4, 0x90, 0x25, 0x7c, 0xf6,
- 0x32, 0x90, 0xad, 0xd4, 0x27, 0xdb, 0x87, 0xc5, 0xdd, 0x82, 0x83, 0x4a, 0xe3, 0x92, 0x63, 0x24,
- 0x7b, 0x1b, 0xc8, 0x9b, 0xd6, 0x96, 0xcd, 0x2c, 0xdb, 0x47, 0xc7, 0xd8, 0x3a, 0x55, 0x6b, 0xcb,
- 0xd6, 0x49, 0x46, 0x51, 0x8f, 0xe0, 0xa4, 0xb2, 0xb3, 0x17, 0xf7, 0xdf, 0x4f, 0x83, 0x22, 0x55,
- 0x67, 0xf8, 0x32, 0x19, 0xc8, 0xa5, 0x4e, 0x27, 0x46, 0xf0, 0xd2, 0x01, 0xc1, 0xdb, 0xe4, 0xb3,
- 0x00, 0x93, 0xe0, 0x99, 0x0f, 0xbc, 0x26, 0xd8, 0xb7, 0xb3, 0x26, 0x55, 0xea, 0x74, 0xe2, 0xcf,
- 0x2d, 0x04, 0x05, 0x4a, 0x7c, 0x81, 0xd1, 0x16, 0x2e, 0x8b, 0xb5, 0xf0, 0xd4, 0x03, 0x41, 0x2c,
- 0x7f, 0xd9, 0x43, 0xf4, 0x8f, 0x12, 0x98, 0xaa, 0x99, 0xae, 0x87, 0xb1, 0x29, 0x89, 0x60, 0x73,
- 0x2d, 0x98, 0xf1, 0x45, 0x83, 0xbb, 0x3c, 0xdc, 0x9f, 0x87, 0x09, 0xfc, 0x4c, 0xfc, 0x3e, 0x1e,
- 0x9d, 0x27, 0x27, 0xd7, 0x9e, 0x71, 0x11, 0x7f, 0xa6, 0x2d, 0x2c, 0x56, 0xea, 0x2f, 0xf6, 0x97,
- 0x02, 0x81, 0xaf, 0x71, 0x02, 0xbf, 0x73, 0x94, 0x22, 0xb3, 0x17, 0xfa, 0x1f, 0x48, 0x00, 0xe0,
- 0xb2, 0xd9, 0xc1, 0xe1, 0xc7, 0x71, 0xe1, 0x40, 0x12, 0xa4, 0xfb, 0xca, 0xa8, 0x74, 0xd7, 0x78,
- 0xe9, 0x7e, 0xf7, 0xf0, 0xaa, 0x26, 0x1d, 0x10, 0x56, 0x15, 0x20, 0x9b, 0x81, 0x68, 0xf1, 0x5f,
- 0xf8, 0xf6, 0x40, 0xa8, 0xeb, 0x9c, 0x50, 0xef, 0x1e, 0xb1, 0xa4, 0xec, 0xe5, 0xfa, 0xc7, 0x12,
- 0x98, 0x6a, 0x22, 0x0f, 0x77, 0x93, 0xf0, 0x9c, 0x48, 0x0f, 0x1f, 0x69, 0xdb, 0x92, 0x60, 0xdb,
- 0xfe, 0x46, 0x4e, 0x34, 0x30, 0x5c, 0x28, 0x19, 0xc6, 0x53, 0xcc, 0xea, 0xc3, 0xeb, 0x85, 0x02,
- 0xc3, 0x0d, 0xa3, 0x96, 0xbd, 0x74, 0xdf, 0x2a, 0x05, 0x9e, 0x22, 0xfc, 0xb9, 0xbe, 0xa8, 0x59,
- 0x9c, 0x3b, 0x68, 0x16, 0x8b, 0x9f, 0xeb, 0x8b, 0xd6, 0x31, 0xde, 0x31, 0x21, 0xb5, 0xb1, 0x31,
- 0x06, 0x9f, 0x81, 0x51, 0xe4, 0xf5, 0x3c, 0x19, 0x14, 0xd9, 0xe6, 0xc1, 0xbd, 0xc9, 0x7b, 0x07,
- 0xc3, 0xa7, 0x16, 0xef, 0x1f, 0xc1, 0x94, 0x4b, 0x5a, 0x96, 0x0f, 0xd8, 0x90, 0x22, 0x6c, 0xdc,
- 0x0a, 0x0a, 0x24, 0x6a, 0x36, 0x1b, 0xe7, 0x42, 0x77, 0x0f, 0x9f, 0x84, 0x86, 0xdf, 0xea, 0x34,
- 0x53, 0x6a, 0x14, 0xc6, 0xb0, 0x92, 0x3f, 0x0a, 0x0a, 0x5f, 0x55, 0x01, 0x58, 0xdf, 0xbb, 0xd8,
- 0x35, 0xdd, 0x1d, 0xd3, 0x22, 0x3e, 0x62, 0x73, 0xec, 0x91, 0x06, 0x7f, 0x4e, 0x34, 0xff, 0x62,
- 0x8d, 0x02, 0x05, 0xc8, 0x7b, 0x8e, 0xc9, 0x96, 0x01, 0xf0, 0x5f, 0xf5, 0x9e, 0xc0, 0xdb, 0x32,
- 0xdf, 0x17, 0xb8, 0x05, 0x8b, 0x21, 0xe4, 0x60, 0x31, 0x52, 0x7a, 0xe8, 0x75, 0x19, 0x8d, 0xf0,
- 0x5d, 0xe0, 0x23, 0x7c, 0x73, 0xa7, 0xb9, 0x8b, 0x7d, 0xa7, 0xb9, 0x31, 0x8e, 0xae, 0xf9, 0x1c,
- 0x44, 0x5c, 0x8f, 0x64, 0x9d, 0xfc, 0xc7, 0x5f, 0x10, 0xf7, 0x20, 0xe2, 0x9d, 0x47, 0xcf, 0x0c,
- 0x84, 0x09, 0xd1, 0x3e, 0x6f, 0x46, 0xb0, 0xcf, 0xfb, 0x68, 0x38, 0xf7, 0xb1, 0x05, 0x0d, 0xe7,
- 0x14, 0x92, 0xe3, 0xd8, 0xcd, 0xf7, 0xb1, 0x0b, 0x3f, 0x21, 0x1c, 0x88, 0x33, 0x22, 0xe3, 0xc4,
- 0x59, 0x0c, 0xe3, 0x40, 0x0a, 0x38, 0x88, 0xec, 0x01, 0x27, 0xf5, 0xc0, 0xc3, 0xe8, 0xa7, 0xd3,
- 0xe5, 0xdd, 0x11, 0xd6, 0x6b, 0x54, 0xb0, 0xe0, 0x1f, 0x8b, 0x6f, 0x2c, 0xdd, 0xa7, 0x95, 0x5b,
- 0x0a, 0x3a, 0x78, 0x54, 0x9e, 0x1c, 0x8a, 0xa7, 0x07, 0xe0, 0xc3, 0x35, 0x19, 0xf8, 0x3f, 0x25,
- 0x50, 0x64, 0xe6, 0xc6, 0xbd, 0x87, 0x84, 0x10, 0xbe, 0x6a, 0x14, 0x48, 0x12, 0xa3, 0x93, 0x7c,
- 0x36, 0x2d, 0x00, 0x63, 0x30, 0x30, 0x2e, 0x64, 0x06, 0x00, 0xfc, 0x17, 0x09, 0xe4, 0xb1, 0x19,
- 0x24, 0x16, 0xfb, 0xe1, 0x33, 0xc2, 0x2e, 0xc1, 0x11, 0x01, 0x60, 0xf2, 0x31, 0xfa, 0xbd, 0x04,
- 0x66, 0x7a, 0x34, 0x63, 0x10, 0x79, 0xe4, 0x46, 0x81, 0xce, 0x08, 0xe9, 0xe1, 0x67, 0xf0, 0x7d,
- 0x42, 0x07, 0x1e, 0x92, 0xf9, 0x49, 0x07, 0x87, 0x36, 0x8e, 0x30, 0x11, 0x5b, 0xf0, 0xdf, 0x24,
- 0x00, 0x74, 0xe4, 0xda, 0xdd, 0xcb, 0x68, 0xc3, 0x31, 0xe1, 0xa3, 0x43, 0x00, 0x58, 0xb3, 0xcf,
- 0x85, 0xcd, 0xfe, 0x73, 0x92, 0xa8, 0xf3, 0x2f, 0xa7, 0x79, 0x3e, 0xf1, 0x18, 0xf1, 0x3f, 0x1d,
- 0x4c, 0x31, 0x39, 0x32, 0x9b, 0x52, 0x4c, 0xf8, 0xfe, 0x47, 0xf0, 0x83, 0x42, 0xce, 0xc3, 0x22,
- 0x1c, 0xa5, 0x03, 0xa0, 0x3c, 0x02, 0x00, 0xc7, 0xc1, 0xac, 0x0f, 0xc0, 0x86, 0x5e, 0x55, 0x10,
- 0x7c, 0xb7, 0x4c, 0x3c, 0x2c, 0xe8, 0xe0, 0x76, 0xf8, 0x9e, 0xe6, 0x2f, 0x85, 0x27, 0xfb, 0x11,
- 0x79, 0x04, 0xe5, 0x67, 0x04, 0xd0, 0xef, 0x08, 0xcd, 0xee, 0x05, 0x18, 0x7a, 0xa4, 0xf4, 0x57,
- 0x67, 0x35, 0x30, 0xcf, 0x59, 0x25, 0xea, 0x69, 0x70, 0x92, 0x4b, 0xa0, 0xe3, 0x5d, 0x47, 0x39,
- 0xa6, 0x42, 0x70, 0x8a, 0x7b, 0xc3, 0x1e, 0x50, 0x47, 0xc9, 0xc1, 0x87, 0xbf, 0x90, 0x0b, 0xd6,
- 0x7b, 0xde, 0x9f, 0x67, 0x2b, 0x6d, 0x9f, 0xe2, 0x83, 0x5d, 0xb6, 0x6d, 0xcb, 0x43, 0x0f, 0x46,
- 0xdc, 0x54, 0x82, 0x84, 0x44, 0xab, 0xe1, 0x34, 0x98, 0xf2, 0x9c, 0xa8, 0xeb, 0x8a, 0xff, 0x18,
- 0x55, 0xac, 0x02, 0xaf, 0x58, 0x75, 0x70, 0xd6, 0xb4, 0xda, 0xdd, 0xbd, 0x0e, 0xd2, 0x51, 0xd7,
- 0xc0, 0x32, 0x74, 0x4b, 0x6e, 0x05, 0xf5, 0x90, 0xd5, 0x41, 0x96, 0x47, 0xf9, 0xf4, 0xcf, 0xbd,
- 0x0a, 0xe4, 0xe4, 0x95, 0xf1, 0x1e, 0x5e, 0x19, 0x1f, 0x37, 0x68, 0x09, 0x37, 0x61, 0xbd, 0xef,
- 0x4e, 0x00, 0x68, 0xdd, 0xce, 0x99, 0xe8, 0x0a, 0x53, 0xc3, 0x6b, 0xfa, 0x56, 0xfd, 0x1a, 0x41,
- 0x06, 0x3d, 0x92, 0x19, 0x7e, 0x39, 0x50, 0xbf, 0x67, 0x70, 0xea, 0x77, 0xab, 0x20, 0x0b, 0xe9,
- 0xb4, 0xae, 0x37, 0x82, 0xd6, 0xcd, 0x83, 0x99, 0x70, 0x37, 0x59, 0x56, 0xaf, 0x01, 0x57, 0xfb,
- 0x1e, 0xc6, 0x75, 0x4d, 0xab, 0x34, 0x37, 0x37, 0xd6, 0x57, 0xf4, 0x52, 0x45, 0x53, 0x00, 0xd6,
- 0x4f, 0xaa, 0x97, 0x81, 0x63, 0x70, 0x1e, 0xfe, 0xa1, 0x04, 0x0a, 0xe4, 0xd0, 0x36, 0xfc, 0xbe,
- 0x31, 0x69, 0x8e, 0xcb, 0x39, 0x3d, 0x05, 0xe3, 0xae, 0xf8, 0x15, 0x26, 0x4c, 0x98, 0x84, 0xab,
- 0x43, 0x5d, 0x61, 0x92, 0x40, 0x28, 0xfb, 0x99, 0x10, 0x6e, 0x92, 0xcd, 0x1d, 0xfb, 0xca, 0x7f,
- 0xe5, 0x26, 0x89, 0xeb, 0x7f, 0xc4, 0x4d, 0x72, 0x00, 0x0b, 0x13, 0x6f, 0x92, 0x03, 0xda, 0x5d,
- 0x42, 0x33, 0x85, 0x1f, 0x29, 0x04, 0xf3, 0xbf, 0x4f, 0x4a, 0x87, 0xda, 0xfb, 0x2a, 0x81, 0x79,
- 0xd3, 0xf2, 0x90, 0x63, 0x19, 0xdd, 0xe5, 0xae, 0xb1, 0xed, 0xdb, 0xa7, 0xfd, 0x1b, 0x1e, 0xd5,
- 0x48, 0x1e, 0x9d, 0xff, 0x42, 0x3d, 0x03, 0x80, 0x87, 0x76, 0x7b, 0x5d, 0xc3, 0x0b, 0x55, 0x2f,
- 0x92, 0x12, 0xd5, 0xbe, 0x3c, 0xaf, 0x7d, 0xb7, 0x83, 0xab, 0x28, 0x68, 0xad, 0xfd, 0x1e, 0xda,
- 0xb0, 0xcc, 0x67, 0xef, 0x91, 0xd8, 0xc8, 0x54, 0x47, 0x07, 0xbd, 0xe2, 0x76, 0x80, 0x8a, 0xfc,
- 0x0e, 0x90, 0x7a, 0x37, 0xb8, 0x86, 0x84, 0xbd, 0x26, 0x77, 0x84, 0x9c, 0x37, 0x3b, 0xdb, 0xc8,
- 0xab, 0x6e, 0xad, 0x99, 0xae, 0x6b, 0x5a, 0xdb, 0x64, 0x3a, 0x3e, 0xad, 0xc7, 0x67, 0x80, 0x7f,
- 0x27, 0x1c, 0x77, 0xc9, 0xef, 0x33, 0x86, 0xc4, 0x5d, 0x0a, 0xda, 0xa9, 0xdc, 0xd7, 0x4e, 0x83,
- 0x55, 0x9d, 0xbc, 0xc0, 0xaa, 0x4e, 0x14, 0xd3, 0x82, 0xe0, 0xea, 0xc0, 0x6b, 0x85, 0x02, 0x3b,
- 0x25, 0x55, 0x23, 0xfb, 0xbe, 0xef, 0xeb, 0x32, 0x58, 0xa0, 0x45, 0x2f, 0xd9, 0xf6, 0xa5, 0x5d,
- 0xc3, 0xb9, 0x04, 0x7f, 0xe2, 0x70, 0xbb, 0xb8, 0x89, 0xbb, 0x57, 0x71, 0x5b, 0xb2, 0x7d, 0xca,
- 0x9b, 0xef, 0x57, 0x5e, 0xf8, 0xdb, 0xc2, 0x53, 0x12, 0x4e, 0x9e, 0x7e, 0xa5, 0x26, 0xb3, 0xbd,
- 0x25, 0x76, 0xbc, 0x51, 0x84, 0xc1, 0xec, 0x81, 0xff, 0xcd, 0x00, 0x78, 0x7f, 0x1c, 0x89, 0xee,
- 0x0c, 0x8c, 0x13, 0x77, 0xf8, 0x95, 0xd1, 0xb0, 0xf3, 0xf9, 0x1a, 0x01, 0x3b, 0x05, 0xc8, 0x97,
- 0x02, 0x67, 0x24, 0xfc, 0x37, 0x5a, 0xa1, 0x7c, 0x76, 0x68, 0xc6, 0xb0, 0x3c, 0x11, 0x34, 0x4f,
- 0xf2, 0x2c, 0x34, 0x7a, 0x99, 0x62, 0xfa, 0x25, 0xe1, 0x1d, 0xb7, 0x81, 0x02, 0xa2, 0xdc, 0x4d,
- 0xa6, 0x55, 0x8a, 0x6d, 0xd7, 0x89, 0xb3, 0x99, 0x3d, 0x9a, 0x2f, 0x2e, 0x80, 0x19, 0x3f, 0xfe,
- 0x15, 0xb9, 0x51, 0x30, 0xc0, 0xf0, 0x14, 0x28, 0xba, 0xf6, 0x9e, 0xd3, 0x46, 0x6c, 0x0f, 0x94,
- 0x3d, 0x8d, 0xb0, 0x5f, 0x37, 0xd4, 0x5c, 0x38, 0x60, 0x91, 0xe4, 0x53, 0x5b, 0x24, 0xf1, 0xf6,
- 0x6e, 0x82, 0xfd, 0x00, 0x5f, 0x22, 0x7c, 0xed, 0x07, 0x87, 0x59, 0x13, 0x79, 0x8f, 0x44, 0x23,
- 0xe0, 0xd7, 0x84, 0x76, 0x83, 0x86, 0xd4, 0x24, 0x9d, 0xca, 0x35, 0x46, 0xb0, 0x83, 0x1f, 0x0d,
- 0x1e, 0xe5, 0xe7, 0x60, 0x06, 0x30, 0x31, 0x78, 0x37, 0xf4, 0x9a, 0x22, 0xc3, 0xe7, 0xe5, 0x81,
- 0x42, 0x59, 0x6b, 0x04, 0xb6, 0x20, 0x7c, 0x79, 0xee, 0xa8, 0x0d, 0xde, 0xf8, 0x19, 0xec, 0xef,
- 0x49, 0xa2, 0xc1, 0xc2, 0x39, 0xc1, 0x87, 0xb5, 0x8b, 0xd1, 0xa4, 0x11, 0x9a, 0x59, 0x82, 0xf2,
- 0xc1, 0xb7, 0xe4, 0x44, 0x62, 0x8f, 0x8b, 0xb1, 0x98, 0x7d, 0xaf, 0xf4, 0x8d, 0xbc, 0x1f, 0xc6,
- 0x70, 0xd9, 0xb1, 0x77, 0x37, 0x9c, 0x2e, 0xfc, 0x77, 0xa1, 0xab, 0x1d, 0x62, 0x66, 0x17, 0x52,
- 0xfc, 0xec, 0x82, 0xac, 0x48, 0x77, 0xc3, 0xad, 0xb0, 0xee, 0x08, 0xc3, 0xb7, 0x7a, 0x13, 0x58,
- 0x30, 0x3a, 0x9d, 0x75, 0x63, 0x1b, 0x95, 0xf1, 0xb4, 0xdd, 0xf2, 0x58, 0x88, 0xb3, 0xbe, 0xd4,
- 0xc4, 0xa9, 0x0c, 0xdf, 0x47, 0x4e, 0x1d, 0xb0, 0x4a, 0xc5, 0x97, 0x61, 0x39, 0x10, 0x99, 0xfc,
- 0x26, 0x32, 0xfc, 0xe1, 0x21, 0xa3, 0xbd, 0x63, 0x84, 0x01, 0x19, 0xd9, 0x93, 0xa0, 0x2f, 0x96,
- 0x00, 0xdf, 0xd9, 0x6b, 0xde, 0xaf, 0x4a, 0x60, 0x0a, 0xe3, 0x51, 0xea, 0x74, 0xe0, 0x63, 0xb9,
- 0xb8, 0xa5, 0xb1, 0xde, 0x70, 0x2f, 0x14, 0x76, 0x43, 0xf4, 0x6b, 0x48, 0xe9, 0xc7, 0x60, 0x12,
- 0x0a, 0x51, 0xe2, 0x84, 0x28, 0xe6, 0x6d, 0x98, 0x58, 0x44, 0xf6, 0xe2, 0xfb, 0x8c, 0x04, 0xe6,
- 0xfd, 0x79, 0xc6, 0x32, 0xf2, 0xda, 0x3b, 0xf0, 0x4e, 0xd1, 0x75, 0x2e, 0xd6, 0x12, 0x83, 0x2d,
- 0xe1, 0x2e, 0xfc, 0x56, 0x2e, 0xa5, 0xca, 0x73, 0x25, 0xc7, 0x2c, 0x12, 0xa6, 0xd2, 0xc5, 0x24,
- 0x82, 0xd9, 0x0b, 0xf3, 0xcb, 0x12, 0x00, 0x2d, 0x3b, 0x98, 0x2c, 0x1f, 0x42, 0x92, 0x3f, 0x29,
- 0xbc, 0x5b, 0xcc, 0x2a, 0x1e, 0x16, 0x9b, 0xbe, 0xe7, 0x10, 0x74, 0xa6, 0x1a, 0x56, 0xd2, 0x44,
- 0xda, 0xfa, 0x4c, 0x65, 0xaf, 0xd7, 0x35, 0xdb, 0x86, 0xd7, 0xef, 0x01, 0x18, 0x2f, 0x5e, 0x72,
- 0x1d, 0x77, 0x2a, 0xa3, 0x31, 0x28, 0x23, 0x46, 0x96, 0x34, 0xce, 0x8f, 0xe4, 0xc7, 0xf9, 0x11,
- 0xf4, 0xea, 0x19, 0x42, 0x7c, 0x02, 0xea, 0x29, 0x83, 0xe3, 0x8d, 0x1e, 0xb2, 0x96, 0x1c, 0x64,
- 0x74, 0xda, 0xce, 0xde, 0xee, 0x45, 0x37, 0xea, 0xbe, 0x9a, 0xac, 0xa3, 0x91, 0x95, 0x6b, 0x89,
- 0x5b, 0xb9, 0x86, 0x3f, 0x2c, 0x8b, 0x46, 0x62, 0x8b, 0xec, 0xaf, 0x44, 0x78, 0x18, 0x61, 0xa8,
- 0x4b, 0xe5, 0x74, 0xd5, 0xb7, 0x48, 0x9d, 0x4f, 0xb3, 0x48, 0xfd, 0x66, 0xa1, 0xb8, 0x6e, 0x42,
- 0xf5, 0x9a, 0x88, 0xef, 0xdc, 0x42, 0x13, 0x79, 0x31, 0xf0, 0xde, 0x08, 0xe6, 0x2f, 0x86, 0x6f,
- 0x02, 0x88, 0xf9, 0xc4, 0x01, 0x1e, 0xad, 0x6f, 0x4d, 0xbb, 0x42, 0xc3, 0xb3, 0x10, 0x83, 0x6e,
- 0x80, 0xa0, 0x24, 0xe2, 0x36, 0x97, 0x6a, 0xb9, 0x25, 0xb1, 0xfc, 0xec, 0x51, 0xf8, 0x84, 0x04,
- 0x66, 0xc9, 0x25, 0xe3, 0x4b, 0xfb, 0xe4, 0x20, 0xa7, 0xa0, 0x51, 0xf2, 0xe2, 0xa8, 0x98, 0x55,
- 0x90, 0xef, 0x9a, 0xd6, 0x25, 0xdf, 0xdf, 0x11, 0xff, 0x0f, 0xaf, 0x28, 0x95, 0x06, 0x5c, 0x51,
- 0x1a, 0x6c, 0x93, 0x04, 0xe5, 0xc6, 0x8c, 0xa6, 0x6f, 0xc8, 0x89, 0x5c, 0x51, 0x3a, 0x94, 0x5c,
- 0xf6, 0x62, 0xfc, 0x9b, 0x3c, 0x28, 0x36, 0x91, 0xe1, 0xb4, 0x77, 0xe0, 0xfb, 0xa5, 0x81, 0x53,
- 0x89, 0x69, 0x7e, 0x2a, 0xb1, 0x0c, 0xa6, 0xb6, 0xcc, 0xae, 0x87, 0x1c, 0xea, 0x03, 0x1e, 0xed,
- 0xda, 0x69, 0x13, 0x5f, 0xea, 0xda, 0xed, 0x4b, 0x8b, 0xcc, 0xb4, 0x5f, 0xf4, 0xe3, 0x45, 0x2f,
- 0x2e, 0x93, 0x8f, 0x74, 0xff, 0x63, 0x6c, 0x10, 0xba, 0xb6, 0xe3, 0xc5, 0xdd, 0x3f, 0x14, 0x43,
- 0xa5, 0x69, 0x3b, 0x9e, 0x4e, 0x3f, 0xc4, 0x30, 0x6f, 0xed, 0x75, 0xbb, 0x2d, 0xf4, 0xa0, 0xe7,
- 0x4f, 0xeb, 0xfc, 0x67, 0x6c, 0x2c, 0xda, 0x5b, 0x5b, 0x2e, 0xa2, 0x8b, 0x0a, 0x05, 0x9d, 0x3d,
- 0xa9, 0x27, 0x41, 0xa1, 0x6b, 0xee, 0x9a, 0x74, 0x22, 0x52, 0xd0, 0xe9, 0x83, 0x7a, 0x0b, 0x50,
- 0xc2, 0x39, 0x10, 0x65, 0xf4, 0x74, 0x91, 0x34, 0xcd, 0x03, 0xe9, 0x58, 0x67, 0x2e, 0xa1, 0x7d,
- 0xf7, 0xf4, 0x14, 0x79, 0x4f, 0xfe, 0xf3, 0x07, 0x6e, 0x44, 0x36, 0x4c, 0xa8, 0xc4, 0xe3, 0x67,
- 0xb8, 0x0e, 0x6a, 0xdb, 0x4e, 0xc7, 0x97, 0x4d, 0xfc, 0x04, 0x83, 0xe5, 0x4b, 0xb7, 0xcd, 0x31,
- 0xb0, 0xf0, 0xec, 0x35, 0xed, 0x3d, 0x45, 0xdc, 0x6d, 0xe2, 0xa2, 0xcf, 0x9b, 0xde, 0xce, 0x1a,
- 0xf2, 0x0c, 0xf8, 0x37, 0xf2, 0x40, 0x8d, 0x9b, 0xfd, 0xff, 0x34, 0x6e, 0x88, 0xc6, 0xd1, 0x98,
- 0x5f, 0xde, 0x9e, 0x63, 0x61, 0x39, 0x32, 0x3f, 0xda, 0x48, 0x8a, 0x7a, 0x37, 0xb8, 0x26, 0x7c,
- 0xf2, 0x97, 0x52, 0x2b, 0x11, 0xd7, 0xda, 0x69, 0x3d, 0x3e, 0x83, 0xba, 0x0e, 0x6e, 0xa0, 0x2f,
- 0x57, 0x5b, 0x6b, 0xb5, 0x55, 0x73, 0x7b, 0xa7, 0x6b, 0x6e, 0xef, 0x78, 0x6e, 0xd5, 0x72, 0x3d,
- 0x64, 0x74, 0x1a, 0x5b, 0x3a, 0xbd, 0x39, 0x0c, 0x10, 0x3a, 0x22, 0x59, 0x79, 0x1f, 0x71, 0xb1,
- 0xd1, 0x2d, 0xaa, 0x29, 0x31, 0x2d, 0xe5, 0x29, 0xb8, 0xa5, 0xb8, 0x7b, 0xdd, 0x00, 0xd3, 0x6b,
- 0xfb, 0x30, 0x0d, 0x55, 0x7d, 0xaf, 0x4b, 0x9a, 0x0b, 0xc9, 0x9c, 0x76, 0x9c, 0x4b, 0xe0, 0x24,
- 0xfb, 0x66, 0xf3, 0xef, 0x45, 0x50, 0x58, 0x71, 0x8c, 0xde, 0x0e, 0x7c, 0x5e, 0xa4, 0x7f, 0x1e,
- 0x57, 0x9b, 0x08, 0xb4, 0x53, 0x1a, 0xa6, 0x9d, 0xf2, 0x10, 0xed, 0xcc, 0x47, 0xb4, 0x33, 0x7e,
- 0xd1, 0xf9, 0x2c, 0x98, 0x6b, 0xdb, 0xdd, 0x2e, 0x6a, 0x63, 0x79, 0x54, 0x3b, 0x64, 0xb5, 0x67,
- 0x46, 0xe7, 0xd2, 0x48, 0x4c, 0x7d, 0xe4, 0x35, 0xe9, 0x1a, 0x3b, 0x55, 0xfa, 0x30, 0x01, 0xbe,
- 0x5c, 0x02, 0x79, 0xad, 0xb3, 0x8d, 0xb8, 0x75, 0xf8, 0x5c, 0x64, 0x1d, 0xfe, 0x14, 0x28, 0x7a,
- 0x86, 0xb3, 0x8d, 0x3c, 0x7f, 0x9d, 0x80, 0x3e, 0x05, 0xa1, 0xfe, 0xe5, 0x48, 0xa8, 0xff, 0xef,
- 0x06, 0x79, 0x2c, 0x33, 0xe6, 0x16, 0x7f, 0xc3, 0x20, 0xf8, 0x89, 0xec, 0x17, 0x71, 0x89, 0x8b,
- 0xb8, 0xd6, 0x3a, 0xf9, 0xa0, 0x1f, 0xeb, 0xc2, 0xc1, 0x50, 0xb4, 0xd7, 0x82, 0x19, 0xb3, 0x6d,
- 0x5b, 0xd5, 0x5d, 0x63, 0x1b, 0xb1, 0x6a, 0x86, 0x09, 0xfe, 0x5b, 0x6d, 0xd7, 0x7e, 0xc0, 0x64,
- 0x8b, 0x5a, 0x61, 0x02, 0xae, 0xc2, 0x8e, 0xd9, 0xe9, 0x20, 0x8b, 0xb5, 0x6c, 0xf6, 0x74, 0xf6,
- 0x0c, 0xc8, 0x63, 0x1e, 0xb0, 0xfe, 0x60, 0x63, 0x41, 0x39, 0xa6, 0xce, 0xe1, 0x66, 0x45, 0x1b,
- 0xaf, 0x92, 0xe3, 0xd7, 0x5c, 0x45, 0xbc, 0x86, 0x68, 0xe5, 0x06, 0x37, 0xae, 0x27, 0x80, 0x82,
- 0x65, 0x77, 0xd0, 0xd0, 0x41, 0x88, 0xe6, 0x52, 0x9f, 0x0c, 0x0a, 0xa8, 0x83, 0x7b, 0x05, 0x99,
- 0x64, 0x3f, 0x93, 0x2c, 0x4b, 0x9d, 0x66, 0x4e, 0xe7, 0x9a, 0x34, 0x88, 0xdb, 0xec, 0x1b, 0xe0,
- 0x8f, 0x4e, 0x81, 0xe3, 0xb4, 0x0f, 0x68, 0xee, 0x5d, 0xc4, 0xa4, 0x2e, 0x22, 0xf8, 0xfa, 0xc1,
- 0x03, 0xd7, 0x71, 0x5e, 0xd9, 0x4f, 0x82, 0x82, 0xbb, 0x77, 0x31, 0x30, 0x42, 0xe9, 0x43, 0xb4,
- 0xe9, 0x4a, 0x63, 0x19, 0xce, 0xe4, 0x51, 0x87, 0x33, 0x6e, 0x68, 0x92, 0xfd, 0xc6, 0x1f, 0x0e,
- 0x64, 0xf4, 0x40, 0x87, 0x3f, 0x90, 0x0d, 0x1a, 0x86, 0x4e, 0x83, 0x29, 0x63, 0xcb, 0x43, 0x4e,
- 0x68, 0x26, 0xb2, 0x47, 0x3c, 0x54, 0x5e, 0x44, 0x5b, 0xb6, 0x83, 0xc5, 0x42, 0xc3, 0xc2, 0x06,
- 0xcf, 0x91, 0x96, 0x0b, 0xb8, 0x1d, 0xb4, 0x5b, 0xc1, 0x09, 0xcb, 0xae, 0xa0, 0x1e, 0x93, 0x33,
- 0x45, 0x71, 0x9e, 0xde, 0xce, 0x7e, 0xe0, 0xc5, 0x81, 0xae, 0x64, 0xe1, 0x60, 0x57, 0x02, 0x3f,
- 0x97, 0x76, 0xce, 0xdc, 0x07, 0xf4, 0xd8, 0x2c, 0x34, 0xf5, 0x69, 0x60, 0xae, 0xc3, 0x3c, 0xc4,
- 0xda, 0x66, 0xd0, 0x4a, 0x62, 0xbf, 0xe3, 0x32, 0x87, 0x8a, 0x94, 0x8f, 0x2a, 0xd2, 0x0a, 0x98,
- 0x26, 0x47, 0xaf, 0xb1, 0x26, 0x15, 0xfa, 0x3c, 0xf2, 0xc9, 0xb4, 0x2e, 0xa8, 0x54, 0x44, 0x6c,
- 0x8b, 0x65, 0xf6, 0x89, 0x1e, 0x7c, 0x9c, 0x6e, 0xf6, 0x9d, 0x2c, 0xa1, 0xec, 0x9b, 0xe3, 0x2f,
- 0x15, 0xc1, 0x35, 0x65, 0xc7, 0x76, 0x5d, 0x72, 0x04, 0xa7, 0xbf, 0x61, 0xbe, 0x51, 0xe2, 0x2e,
- 0xfd, 0x79, 0x44, 0x37, 0xbf, 0x41, 0x0d, 0x6a, 0x72, 0x4d, 0xe3, 0x2f, 0x85, 0x83, 0xd6, 0x04,
- 0xfb, 0x0f, 0x31, 0x42, 0xff, 0xaf, 0xd1, 0x48, 0xde, 0x93, 0x13, 0x89, 0xa3, 0x93, 0x52, 0x56,
- 0xd9, 0x37, 0x97, 0x2f, 0x49, 0xe0, 0xd1, 0xfd, 0xdc, 0x6c, 0x58, 0x6e, 0xd0, 0x60, 0xae, 0x1b,
- 0xd2, 0x5e, 0xf8, 0xb8, 0x2b, 0x89, 0x77, 0xfc, 0xc6, 0xd4, 0x3d, 0x52, 0x5a, 0xcc, 0x62, 0x49,
- 0x78, 0xa0, 0x27, 0xe9, 0x8e, 0xdf, 0xd4, 0xe4, 0xb3, 0x17, 0xee, 0xef, 0xe5, 0xc1, 0xf1, 0x15,
- 0xc7, 0xde, 0xeb, 0xb9, 0x61, 0x0f, 0xf4, 0xa7, 0x83, 0x37, 0x64, 0x8b, 0x22, 0xa6, 0xc1, 0xf5,
- 0x60, 0xd6, 0x61, 0xd6, 0x5c, 0xb8, 0x3d, 0x1b, 0x4d, 0x8a, 0xf6, 0x5e, 0xf2, 0x61, 0x7a, 0xaf,
- 0xb0, 0x9f, 0xc9, 0x73, 0xfd, 0x4c, 0x7f, 0xcf, 0x51, 0x18, 0xd0, 0x73, 0xfc, 0x89, 0x94, 0x72,
- 0x50, 0xed, 0x13, 0x51, 0x4c, 0x7f, 0x51, 0x06, 0xc5, 0x6d, 0x92, 0x91, 0x75, 0x17, 0x8f, 0x17,
- 0xab, 0x19, 0x21, 0xae, 0xb3, 0x4f, 0x43, 0xb9, 0xca, 0x51, 0x1d, 0x4e, 0x35, 0xc0, 0x25, 0x73,
- 0x9b, 0xbd, 0x52, 0x3d, 0x9c, 0x07, 0x73, 0x41, 0xe9, 0xd5, 0x8e, 0xcb, 0x45, 0x77, 0x8d, 0x68,
- 0xd4, 0xbc, 0x88, 0x46, 0x1d, 0x58, 0x67, 0x0e, 0x46, 0x1d, 0x39, 0x32, 0xea, 0x0c, 0x1c, 0x5d,
- 0xe6, 0x62, 0x46, 0x17, 0xf8, 0x5c, 0x59, 0xf4, 0xda, 0x3c, 0xbe, 0x6b, 0x25, 0xb5, 0x79, 0x24,
- 0x0f, 0x16, 0x82, 0x97, 0xf7, 0x0d, 0xaf, 0x55, 0xf6, 0x4a, 0xf2, 0x61, 0x09, 0x9c, 0x38, 0xd8,
- 0x99, 0x7f, 0x07, 0xef, 0xa5, 0x86, 0xeb, 0xe4, 0x06, 0x5e, 0x6a, 0xe4, 0x89, 0xdf, 0xa4, 0x4b,
- 0x0c, 0x82, 0xc2, 0xd9, 0x7b, 0xc3, 0x3b, 0x71, 0xb1, 0x30, 0x27, 0x82, 0x44, 0xb3, 0x17, 0xe0,
- 0x4f, 0xc9, 0x60, 0xa6, 0x89, 0xbc, 0x9a, 0xb1, 0x6f, 0xef, 0x79, 0xd0, 0x10, 0xdd, 0x9e, 0x7b,
- 0x2a, 0x28, 0x76, 0xc9, 0x27, 0xa4, 0x83, 0x89, 0x06, 0x1d, 0x8d, 0xee, 0x6f, 0x11, 0xdf, 0x20,
- 0x4a, 0x5a, 0x67, 0xf9, 0xf9, 0xe8, 0x33, 0x22, 0xbb, 0xa3, 0x01, 0x77, 0x63, 0xd9, 0xda, 0x49,
- 0xb5, 0x77, 0x1a, 0x57, 0x74, 0xf6, 0xb0, 0xfc, 0xb0, 0x0c, 0xe6, 0x9b, 0xc8, 0xab, 0xba, 0xcb,
- 0xc6, 0x65, 0xdb, 0x31, 0x3d, 0x04, 0x57, 0x44, 0xa1, 0x39, 0x03, 0x80, 0x19, 0x7c, 0xc6, 0x62,
- 0x62, 0x45, 0x52, 0xe0, 0x5b, 0xd2, 0x3a, 0x0a, 0x71, 0x7c, 0x8c, 0x05, 0x84, 0x54, 0x3e, 0x16,
- 0x49, 0xc5, 0x4f, 0xe0, 0xe2, 0x6f, 0x89, 0x01, 0x51, 0x72, 0xda, 0x3b, 0xe6, 0x65, 0xd4, 0x49,
- 0x09, 0x84, 0xff, 0x59, 0x08, 0x44, 0x40, 0x28, 0xb5, 0xfb, 0x0a, 0xc7, 0xc7, 0x38, 0xdc, 0x57,
- 0x92, 0x08, 0x4e, 0x24, 0xac, 0x15, 0xee, 0x7a, 0xd8, 0x7a, 0xe6, 0xbd, 0xa2, 0x62, 0x0d, 0x4d,
- 0x36, 0x29, 0x6a, 0xb2, 0x8d, 0xd4, 0xb1, 0xd0, 0xb2, 0x87, 0xe9, 0x74, 0x3e, 0x8b, 0x8e, 0x65,
- 0x60, 0xd1, 0xd9, 0x0b, 0xfd, 0x7d, 0x32, 0xb8, 0x3a, 0x88, 0xf7, 0xd2, 0x44, 0x5e, 0xc5, 0x70,
- 0x77, 0x2e, 0xda, 0x86, 0xd3, 0x81, 0xe5, 0x31, 0x1c, 0x38, 0x84, 0x7f, 0x14, 0x05, 0xa1, 0xce,
- 0x83, 0x30, 0xd0, 0x95, 0x74, 0x20, 0x2f, 0xe3, 0xe8, 0x64, 0x12, 0xbd, 0x5d, 0xdf, 0x11, 0x80,
- 0xf5, 0x4c, 0x0e, 0xac, 0x7b, 0x46, 0x65, 0x31, 0x7b, 0xe0, 0x7e, 0x96, 0x8e, 0x08, 0x11, 0xaf,
- 0xe7, 0x0b, 0xa2, 0x80, 0xc5, 0x78, 0xbd, 0xca, 0xb1, 0x5e, 0xaf, 0x23, 0x8d, 0x11, 0x43, 0x3d,
- 0x96, 0xb3, 0x1d, 0x23, 0x8e, 0xd0, 0x1b, 0xf9, 0x5d, 0x32, 0x50, 0x48, 0xc0, 0xaf, 0x88, 0x47,
- 0x78, 0x34, 0x7e, 0x76, 0x32, 0x3a, 0x07, 0xbc, 0xcf, 0xa7, 0xd2, 0x7a, 0x9f, 0xc3, 0x77, 0xa6,
- 0xf5, 0x31, 0xef, 0xe7, 0x76, 0x2c, 0x88, 0xa5, 0x72, 0x21, 0x1f, 0xc2, 0x41, 0xf6, 0xa0, 0xfd,
- 0x98, 0x0c, 0x00, 0x6e, 0xd0, 0xec, 0x6c, 0xc4, 0xb3, 0x44, 0xe1, 0xba, 0x2d, 0xea, 0x77, 0x8f,
- 0x81, 0xba, 0xba, 0x0f, 0x28, 0x4a, 0x31, 0x3c, 0x75, 0xf1, 0xfa, 0xb4, 0xbe, 0x95, 0x21, 0x57,
- 0x63, 0x81, 0x25, 0x95, 0xb7, 0x65, 0x6c, 0xd9, 0xd9, 0x03, 0xf2, 0xcb, 0x12, 0x28, 0xb4, 0xec,
- 0x26, 0xf2, 0x0e, 0x6f, 0x0a, 0xa4, 0x8e, 0x1a, 0x40, 0xca, 0x1d, 0x47, 0xd4, 0x80, 0x41, 0x84,
- 0xb2, 0x17, 0xdd, 0x7b, 0x25, 0x30, 0xd7, 0xb2, 0xcb, 0xc1, 0xe2, 0x94, 0xb8, 0xaf, 0xaa, 0xf8,
- 0xd5, 0xff, 0x41, 0x05, 0xc3, 0x62, 0x0e, 0x75, 0xf5, 0xff, 0x70, 0x7a, 0xd9, 0xcb, 0xed, 0x4e,
- 0x70, 0x7c, 0xc3, 0xea, 0xd8, 0x3a, 0xea, 0xd8, 0x6c, 0xa5, 0x5b, 0x55, 0x41, 0x7e, 0xcf, 0xea,
- 0xd8, 0x84, 0xe5, 0x82, 0x4e, 0xfe, 0xe3, 0x34, 0x07, 0x75, 0x6c, 0xe6, 0x1b, 0x40, 0xfe, 0xc3,
- 0xbf, 0x94, 0x41, 0x1e, 0x7f, 0x2b, 0x2e, 0xea, 0x77, 0xc9, 0x29, 0xe3, 0x20, 0x60, 0xf2, 0x63,
- 0xb1, 0x84, 0xee, 0x8d, 0xac, 0xfd, 0x53, 0x0f, 0xd6, 0x1b, 0xe2, 0xca, 0x8b, 0x88, 0x22, 0x5c,
- 0xf3, 0x57, 0x4f, 0x83, 0xa9, 0x8b, 0x5d, 0xbb, 0x7d, 0x29, 0x3c, 0xae, 0xcf, 0x1e, 0xd5, 0x5b,
- 0x40, 0xc1, 0x31, 0xac, 0x6d, 0xc4, 0xf6, 0x14, 0x4e, 0xf6, 0xf5, 0x85, 0xc4, 0xeb, 0x45, 0xa7,
- 0x59, 0xe0, 0x3b, 0xd3, 0x44, 0x60, 0x18, 0x50, 0xf9, 0x74, 0xfa, 0x50, 0x19, 0xe1, 0xe4, 0x99,
- 0x02, 0xe6, 0xca, 0xa5, 0x3a, 0xbd, 0xc7, 0xb0, 0x71, 0x4e, 0x53, 0x64, 0x02, 0x33, 0x96, 0x49,
- 0x86, 0x30, 0x63, 0xf2, 0xff, 0x65, 0x61, 0x1e, 0x50, 0xf9, 0xa3, 0x80, 0xf9, 0x33, 0x12, 0x98,
- 0xaf, 0x99, 0xae, 0x17, 0xe7, 0xed, 0x9f, 0x10, 0xef, 0xf7, 0x25, 0x69, 0x4d, 0x65, 0xae, 0x1c,
- 0xe1, 0x40, 0xbf, 0xa9, 0xcc, 0xe1, 0xa4, 0x22, 0x26, 0x73, 0x2c, 0x85, 0x70, 0x40, 0x2f, 0xb1,
- 0x17, 0x96, 0x64, 0x6a, 0x43, 0x29, 0x2c, 0x64, 0xf2, 0x86, 0x52, 0x6c, 0xd9, 0xd9, 0xcb, 0xf7,
- 0x2f, 0x25, 0x70, 0x02, 0x17, 0x9f, 0xb4, 0x2c, 0x15, 0x2f, 0xe6, 0xa1, 0xcb, 0x52, 0xa9, 0x57,
- 0xc6, 0x0f, 0xf0, 0x32, 0x8e, 0x95, 0xf1, 0x61, 0x44, 0x27, 0x2c, 0xe6, 0x98, 0x65, 0xd8, 0x61,
- 0x62, 0x4e, 0x58, 0x86, 0x1d, 0x5d, 0xcc, 0xc9, 0x4b, 0xb1, 0x23, 0x8a, 0xf9, 0xc8, 0x16, 0x58,
- 0x7f, 0x41, 0x0e, 0xc4, 0x1c, 0xbb, 0xb6, 0x91, 0x20, 0xe6, 0xd4, 0x27, 0x7a, 0xe1, 0xbb, 0x47,
- 0x14, 0xfc, 0x98, 0xd7, 0x37, 0x46, 0x81, 0xe9, 0x08, 0xd7, 0x38, 0x7e, 0x4e, 0x06, 0x0b, 0x8c,
- 0x8b, 0xc1, 0x53, 0xe6, 0x04, 0x8c, 0x52, 0x4f, 0x99, 0x53, 0x9f, 0x01, 0xe2, 0x39, 0x9b, 0xfc,
- 0x19, 0xa0, 0xc4, 0xf2, 0xb3, 0x07, 0xe7, 0xaf, 0xf3, 0xe0, 0x14, 0x66, 0x61, 0xcd, 0xee, 0x98,
- 0x5b, 0xfb, 0x94, 0x8b, 0x73, 0x46, 0x77, 0x0f, 0xb9, 0xf0, 0x03, 0x92, 0x28, 0x4a, 0xff, 0x0d,
- 0x00, 0xbb, 0x87, 0x1c, 0x1a, 0xc7, 0x8d, 0x01, 0x75, 0x77, 0x5c, 0x65, 0x0f, 0x96, 0x14, 0x5c,
- 0x7f, 0xd3, 0xf0, 0x89, 0xe8, 0x11, 0x7a, 0xd8, 0x2a, 0x9c, 0x09, 0xde, 0xf4, 0x3b, 0x78, 0xe4,
- 0x0e, 0x3a, 0x78, 0xdc, 0x0c, 0x64, 0xa3, 0xd3, 0x09, 0xa0, 0xea, 0xdf, 0xcc, 0x26, 0x65, 0xea,
- 0x38, 0x0b, 0xce, 0xe9, 0xa2, 0xf0, 0x68, 0x5e, 0x4c, 0x4e, 0x17, 0x79, 0xea, 0x22, 0x28, 0xd2,
- 0xeb, 0xc0, 0x83, 0x15, 0xfd, 0xc1, 0x99, 0x59, 0x2e, 0xde, 0xb4, 0x6b, 0xf0, 0x6a, 0x78, 0x67,
- 0x2a, 0xc9, 0x0c, 0xea, 0xa7, 0x43, 0x3b, 0x59, 0xe7, 0x14, 0xec, 0xe9, 0x23, 0x53, 0x9e, 0xcc,
- 0x6e, 0x58, 0xa9, 0xd7, 0xeb, 0xee, 0xb7, 0x58, 0xe0, 0x81, 0x54, 0xbb, 0x61, 0x91, 0xf8, 0x05,
- 0xd2, 0x81, 0xf8, 0x05, 0xa9, 0x77, 0xc3, 0x38, 0x3e, 0xc6, 0xb1, 0x1b, 0x96, 0x44, 0x70, 0x22,
- 0xf7, 0xf0, 0x10, 0xab, 0x99, 0xdd, 0x46, 0xf0, 0x4f, 0x83, 0x3d, 0xab, 0x01, 0xef, 0xec, 0x32,
- 0xe8, 0xa2, 0x82, 0xc4, 0x5b, 0x58, 0xd4, 0x27, 0x83, 0xe2, 0x96, 0xed, 0xec, 0x1a, 0xfe, 0xc6,
- 0x7d, 0xff, 0x49, 0x11, 0x76, 0x03, 0xc0, 0x32, 0xc9, 0xa3, 0xb3, 0xbc, 0x78, 0x3e, 0xf2, 0x1c,
- 0xb3, 0xc7, 0x82, 0x3e, 0xe2, 0xbf, 0xea, 0x8d, 0x60, 0x9e, 0xc5, 0x7e, 0xac, 0x23, 0xd7, 0x43,
- 0x1d, 0x16, 0xd1, 0x82, 0x4f, 0x54, 0xcf, 0x82, 0x39, 0x96, 0xb0, 0x6c, 0x76, 0x91, 0xcb, 0x82,
- 0x5a, 0x70, 0x69, 0xea, 0x29, 0x50, 0x34, 0xdd, 0xfb, 0x5c, 0xdb, 0x62, 0x01, 0xf9, 0xd8, 0x93,
- 0x7a, 0x33, 0x38, 0xce, 0xf2, 0x05, 0xc6, 0x2a, 0x3d, 0xb0, 0xd3, 0x9f, 0x8c, 0x55, 0xcb, 0xb2,
- 0xd7, 0x1d, 0x7b, 0xdb, 0x41, 0xae, 0x4b, 0x4e, 0x4d, 0x4d, 0xeb, 0x91, 0x14, 0xf5, 0x02, 0x38,
- 0xd1, 0x35, 0xad, 0x4b, 0x2e, 0x89, 0x11, 0xbc, 0xcc, 0xdc, 0xc6, 0xe6, 0x06, 0xc4, 0xee, 0x8e,
- 0x34, 0x36, 0x26, 0x87, 0xe8, 0x27, 0xfa, 0x41, 0x2a, 0xea, 0x2d, 0x40, 0x61, 0xdc, 0x2c, 0x19,
- 0xed, 0x4b, 0xe4, 0x3d, 0x73, 0x47, 0x3d, 0x90, 0x1e, 0x11, 0x06, 0x0d, 0xa3, 0xbf, 0xc0, 0x09,
- 0x83, 0x46, 0xd2, 0x7f, 0x59, 0x0e, 0xcc, 0x71, 0x05, 0x18, 0x40, 0xf5, 0xbb, 0x45, 0xf7, 0xfc,
- 0x8e, 0xe9, 0x21, 0xcc, 0x1c, 0x3b, 0xeb, 0xf2, 0xc4, 0x21, 0xcc, 0xeb, 0x07, 0x3e, 0xd4, 0x07,
- 0x10, 0xc3, 0x7c, 0xd1, 0x0e, 0x8f, 0x78, 0x96, 0xb9, 0xcc, 0x56, 0xe5, 0xd2, 0xe0, 0x73, 0x80,
- 0x7a, 0x90, 0x5a, 0xc4, 0x0b, 0x24, 0x97, 0xce, 0x0b, 0x04, 0xcb, 0xcd, 0xe8, 0x76, 0xed, 0x2b,
- 0xa8, 0x13, 0x90, 0x65, 0xba, 0x7a, 0x20, 0x1d, 0x7e, 0x7e, 0x94, 0x79, 0x61, 0xea, 0x8b, 0x35,
- 0x70, 0x23, 0xdb, 0x6b, 0xb7, 0x11, 0xea, 0xb0, 0x83, 0x6b, 0xfe, 0x63, 0xca, 0x2b, 0x37, 0x52,
- 0xcf, 0x22, 0x8f, 0xe8, 0xce, 0x8d, 0x8f, 0x5d, 0x0d, 0x8a, 0xf4, 0xfe, 0x3a, 0xf8, 0xb2, 0x85,
- 0x81, 0x7d, 0xcd, 0x02, 0xdf, 0xd7, 0x6c, 0x80, 0x39, 0xcb, 0xc6, 0xc5, 0xad, 0x1b, 0x8e, 0xb1,
- 0xeb, 0x26, 0x2d, 0x12, 0x53, 0xba, 0x81, 0x45, 0x50, 0x8f, 0x7c, 0xb6, 0x7a, 0x4c, 0xe7, 0xc8,
- 0xa8, 0xff, 0x3f, 0x70, 0xfc, 0x22, 0x0b, 0xf0, 0xe0, 0x32, 0xca, 0x52, 0xbc, 0x0b, 0x65, 0x1f,
- 0xe5, 0x25, 0xfe, 0xcb, 0xd5, 0x63, 0x7a, 0x3f, 0x31, 0xf5, 0x7b, 0xc1, 0x02, 0x7e, 0xec, 0xd8,
- 0x57, 0x7c, 0xc6, 0xe5, 0x78, 0x3b, 0xb2, 0x8f, 0xfc, 0x1a, 0xf7, 0xe1, 0xea, 0x31, 0xbd, 0x8f,
- 0x94, 0xda, 0x00, 0x60, 0xc7, 0xdb, 0xed, 0x32, 0xc2, 0xf9, 0x78, 0x95, 0xec, 0x23, 0xbc, 0x1a,
- 0x7c, 0xb4, 0x7a, 0x4c, 0x8f, 0x90, 0x50, 0x6b, 0x60, 0xc6, 0x7b, 0xd0, 0x63, 0xf4, 0x0a, 0xf1,
- 0xbe, 0x0b, 0x7d, 0xf4, 0x5a, 0xfe, 0x37, 0xab, 0xc7, 0xf4, 0x90, 0x80, 0x5a, 0x05, 0xd3, 0xbd,
- 0x8b, 0x8c, 0x58, 0x31, 0xbe, 0xbf, 0xeb, 0x23, 0xb6, 0x7e, 0x31, 0xa0, 0x15, 0x7c, 0x8e, 0x19,
- 0x6b, 0xbb, 0x97, 0x19, 0xad, 0x29, 0x61, 0xc6, 0xca, 0xfe, 0x37, 0x98, 0xb1, 0x80, 0x80, 0x5a,
- 0x05, 0x33, 0xae, 0x65, 0xf4, 0xdc, 0x1d, 0xdb, 0x73, 0x4f, 0x4f, 0xf7, 0xb9, 0xb9, 0xc6, 0x53,
- 0x6b, 0xb2, 0x6f, 0xf4, 0xf0, 0x6b, 0xf5, 0xc9, 0xe0, 0xea, 0xbd, 0x5e, 0xc7, 0xf0, 0x90, 0xf6,
- 0xa0, 0xe9, 0x7a, 0xa6, 0xb5, 0xed, 0x47, 0x28, 0xa6, 0x83, 0xc5, 0xe0, 0x97, 0xea, 0x22, 0x3b,
- 0xf0, 0x06, 0x48, 0xdb, 0x84, 0xfd, 0x7b, 0xad, 0xb4, 0xd8, 0xc8, 0x39, 0xb7, 0xa7, 0x81, 0x3c,
- 0x7e, 0x45, 0x06, 0x97, 0x85, 0xc1, 0xeb, 0xb8, 0xfd, 0xba, 0x43, 0x1a, 0x30, 0xfe, 0xa8, 0x6f,
- 0x7c, 0x9a, 0x3b, 0x30, 0x3e, 0x5d, 0x0f, 0x66, 0x4d, 0x77, 0xcd, 0xdc, 0xa6, 0xc6, 0x31, 0x1b,
- 0x3f, 0xa2, 0x49, 0x74, 0x31, 0xa1, 0x8e, 0xae, 0xd0, 0x81, 0xe3, 0xb8, 0xbf, 0x98, 0xe0, 0xa7,
- 0xc0, 0x9b, 0xc0, 0x5c, 0xb4, 0x91, 0xd1, 0x4b, 0x70, 0xcd, 0xd0, 0xb4, 0x66, 0x4f, 0xf0, 0x46,
- 0xb0, 0xc0, 0xeb, 0x74, 0xc4, 0x82, 0x90, 0xfd, 0xae, 0x10, 0xde, 0x00, 0x8e, 0xf7, 0x35, 0x2c,
- 0x3f, 0x64, 0x4c, 0x2e, 0x0c, 0x19, 0x73, 0x3d, 0x00, 0xa1, 0x16, 0x0f, 0x24, 0x73, 0x1d, 0x98,
- 0x09, 0xf4, 0x72, 0x60, 0x86, 0x3f, 0xcb, 0x81, 0x69, 0x5f, 0xd9, 0x06, 0x65, 0xc0, 0x23, 0x93,
- 0x15, 0xd9, 0x1f, 0xf2, 0x47, 0xa6, 0x68, 0x1a, 0x36, 0x13, 0x42, 0xaf, 0xec, 0x96, 0xe9, 0x75,
- 0xfd, 0x93, 0x8d, 0xfd, 0xc9, 0xea, 0x3a, 0x00, 0x26, 0xc1, 0xa8, 0x15, 0x1e, 0x75, 0xbc, 0x3d,
- 0x45, 0x7b, 0xa0, 0xfa, 0x10, 0xa1, 0x71, 0xf6, 0x3b, 0xd8, 0x39, 0xc4, 0x19, 0x50, 0xa0, 0x61,
- 0xfa, 0x8f, 0xa9, 0x0b, 0x00, 0x68, 0xcf, 0x5a, 0xd7, 0xf4, 0xaa, 0x56, 0x2f, 0x6b, 0x4a, 0x0e,
- 0xbe, 0x42, 0x02, 0x33, 0x41, 0x23, 0x18, 0x58, 0x49, 0x8d, 0xa9, 0xd6, 0xd0, 0x7b, 0x46, 0x0f,
- 0x36, 0xaa, 0xa8, 0x92, 0x3d, 0x15, 0x3c, 0x6a, 0xcf, 0x45, 0xcb, 0xa6, 0xe3, 0x7a, 0xba, 0x7d,
- 0x65, 0xd9, 0x76, 0xc2, 0x81, 0x95, 0x06, 0xb8, 0x8d, 0x7b, 0x8d, 0x0d, 0xc6, 0x0e, 0x22, 0x67,
- 0xde, 0x90, 0xc3, 0x16, 0xfe, 0xc3, 0x04, 0x4c, 0xd7, 0x73, 0x0c, 0xcb, 0xed, 0xd9, 0x2e, 0xd2,
- 0xed, 0x2b, 0x6e, 0xc9, 0xea, 0x94, 0xed, 0xee, 0xde, 0xae, 0xe5, 0x32, 0x93, 0x2f, 0xee, 0x35,
- 0x96, 0x0e, 0xb9, 0x45, 0x78, 0x01, 0x80, 0x72, 0xa3, 0x56, 0xd3, 0xca, 0xad, 0x6a, 0xa3, 0xae,
- 0x1c, 0xc3, 0xd2, 0x6a, 0x95, 0x96, 0x6a, 0x58, 0x3a, 0xdf, 0x07, 0xa6, 0xfd, 0x36, 0xcd, 0xa2,
- 0xdc, 0xe4, 0xfc, 0x28, 0x37, 0x6a, 0x09, 0x4c, 0xfb, 0xad, 0x9c, 0x8d, 0x08, 0x8f, 0xed, 0x3f,
- 0xd5, 0xbc, 0x6b, 0x38, 0x1e, 0x31, 0x50, 0x7c, 0x22, 0x4b, 0x86, 0x8b, 0xf4, 0xe0, 0xb3, 0xb3,
- 0x4f, 0x60, 0x1c, 0xa8, 0x60, 0xa1, 0x54, 0xab, 0x6d, 0x36, 0xf4, 0xcd, 0x7a, 0xa3, 0xb5, 0x5a,
- 0xad, 0xaf, 0xd0, 0x11, 0xb2, 0xba, 0x52, 0x6f, 0xe8, 0x1a, 0x1d, 0x20, 0x9b, 0x4a, 0x8e, 0xde,
- 0x62, 0xbd, 0x34, 0x0d, 0x8a, 0x3d, 0x22, 0x5d, 0xf8, 0x25, 0x39, 0x65, 0x38, 0x83, 0x00, 0xa7,
- 0x98, 0x7b, 0x76, 0xb9, 0x23, 0x05, 0xd2, 0x80, 0x23, 0xbf, 0x67, 0xc1, 0x1c, 0x35, 0xd5, 0x5d,
- 0xb2, 0x3b, 0x43, 0x90, 0x93, 0x75, 0x2e, 0x0d, 0x7e, 0x42, 0x4a, 0x11, 0xe3, 0x60, 0x20, 0x47,
- 0xe9, 0x8c, 0x8b, 0xdf, 0xcf, 0x8d, 0x76, 0xa9, 0x45, 0xb5, 0xde, 0xd2, 0xf4, 0x7a, 0xa9, 0xc6,
- 0xb2, 0xc8, 0xea, 0x69, 0x70, 0xb2, 0xde, 0x60, 0x21, 0x1d, 0x9b, 0x9b, 0xad, 0xc6, 0x66, 0x75,
- 0x6d, 0xbd, 0xa1, 0xb7, 0x94, 0x82, 0x7a, 0x0a, 0xa8, 0xf4, 0xff, 0x66, 0xb5, 0xb9, 0x59, 0x2e,
- 0xd5, 0xcb, 0x5a, 0x4d, 0xab, 0x28, 0x45, 0xf5, 0x71, 0xe0, 0x06, 0x7a, 0x49, 0x52, 0x63, 0x79,
- 0x53, 0x6f, 0x9c, 0x6f, 0x62, 0x04, 0x75, 0xad, 0x56, 0xc2, 0x8a, 0x14, 0xb9, 0xcd, 0x7a, 0x4a,
- 0xbd, 0x0a, 0x1c, 0x27, 0x57, 0xdd, 0xd7, 0x1a, 0xa5, 0x0a, 0x2b, 0x6f, 0x5a, 0xbd, 0x16, 0x9c,
- 0xae, 0xd6, 0x9b, 0x1b, 0xcb, 0xcb, 0xd5, 0x72, 0x55, 0xab, 0xb7, 0x36, 0xd7, 0x35, 0x7d, 0xad,
- 0xda, 0x6c, 0xe2, 0x6f, 0x95, 0x19, 0x72, 0x57, 0x30, 0xed, 0x33, 0xe1, 0xfb, 0x65, 0x30, 0x7f,
- 0xce, 0xe8, 0x9a, 0x78, 0xa0, 0x20, 0x97, 0x88, 0xf7, 0x9d, 0x06, 0xf2, 0xc8, 0x65, 0xe3, 0xec,
- 0x3c, 0x01, 0x79, 0x80, 0x3f, 0x24, 0xa7, 0x3c, 0x0d, 0xc4, 0x80, 0xa0, 0x25, 0x2e, 0x72, 0xa5,
- 0xc5, 0xcc, 0x5d, 0x5f, 0x2b, 0xa5, 0x38, 0x0d, 0x24, 0x4e, 0x3e, 0x1d, 0xf8, 0x3f, 0x3f, 0x2e,
- 0xf0, 0x15, 0x30, 0xb7, 0x51, 0x2f, 0x6d, 0xb4, 0x56, 0x1b, 0x7a, 0xf5, 0x7b, 0x48, 0x2c, 0xfb,
- 0x79, 0x30, 0xb3, 0xdc, 0xd0, 0x97, 0xaa, 0x95, 0x8a, 0x56, 0x57, 0x0a, 0xea, 0xa3, 0xc0, 0x55,
- 0x4d, 0x4d, 0x3f, 0x57, 0x2d, 0x6b, 0x9b, 0x1b, 0xf5, 0xd2, 0xb9, 0x52, 0xb5, 0x46, 0xfa, 0x88,
- 0x62, 0xc2, 0x05, 0xe8, 0x53, 0xf0, 0x07, 0xf2, 0x00, 0xd0, 0xaa, 0x93, 0xab, 0x9c, 0x22, 0xd7,
- 0x64, 0xff, 0x61, 0xda, 0x49, 0x43, 0x48, 0x26, 0xa6, 0xfd, 0x56, 0xc1, 0xb4, 0xc3, 0x5e, 0xb0,
- 0xd5, 0xb1, 0x61, 0x74, 0xe8, 0x5f, 0x9f, 0x9a, 0x1e, 0x7c, 0x0e, 0x3f, 0x90, 0x66, 0x8e, 0x10,
- 0xcb, 0x58, 0x3a, 0x24, 0x97, 0xc7, 0x03, 0x24, 0x7c, 0x71, 0x0e, 0x2c, 0xf0, 0x15, 0xc3, 0x95,
- 0x20, 0xc6, 0x94, 0x58, 0x25, 0xf8, 0x8f, 0x23, 0x46, 0xd6, 0xd9, 0x27, 0xb1, 0xe1, 0x14, 0xf8,
- 0x2d, 0x93, 0x1e, 0xec, 0xf7, 0x2d, 0x16, 0x25, 0x87, 0x99, 0xc7, 0x46, 0x87, 0x22, 0xa9, 0x53,
- 0x40, 0x6e, 0x3d, 0xe8, 0x29, 0x32, 0xfc, 0x9a, 0x0c, 0xe6, 0xb9, 0x7b, 0xb8, 0xe1, 0x3b, 0x73,
- 0x22, 0x77, 0xe4, 0x46, 0x6e, 0xf8, 0xce, 0x1d, 0xf6, 0x86, 0xef, 0xb3, 0xf7, 0x82, 0x29, 0x96,
- 0x46, 0xe4, 0xdb, 0xa8, 0x63, 0x53, 0xe0, 0x38, 0x98, 0x5d, 0xd1, 0x5a, 0x9b, 0xcd, 0x56, 0x49,
- 0x6f, 0x69, 0x15, 0x25, 0x87, 0x07, 0x3e, 0x6d, 0x6d, 0xbd, 0x75, 0x41, 0x91, 0xf0, 0x98, 0xb8,
- 0xb2, 0x51, 0xad, 0x68, 0x9b, 0x8d, 0x7a, 0xed, 0x82, 0x22, 0xa7, 0x77, 0xb8, 0xec, 0x67, 0x6c,
- 0xc2, 0x0e, 0x97, 0x49, 0xc5, 0x67, 0x3f, 0x77, 0xfd, 0x9c, 0x0c, 0x14, 0xca, 0x81, 0xf6, 0x60,
- 0x0f, 0x39, 0x26, 0xb2, 0xda, 0x08, 0x5e, 0x12, 0x09, 0x00, 0x7b, 0x20, 0xf4, 0x21, 0xe9, 0xdf,
- 0x23, 0x56, 0x23, 0x7d, 0xe8, 0x33, 0xb8, 0xf3, 0x07, 0x0c, 0xee, 0xdf, 0x4e, 0xeb, 0x71, 0xd9,
- 0xcf, 0xee, 0x58, 0x20, 0xfb, 0x74, 0x1a, 0x8f, 0xcb, 0x21, 0x1c, 0x4c, 0x24, 0xae, 0x73, 0xcc,
- 0x78, 0xac, 0xc8, 0xf0, 0x45, 0x32, 0x38, 0x5e, 0x31, 0x3c, 0xb4, 0xb4, 0xdf, 0xf2, 0xef, 0xcd,
- 0x8c, 0xb9, 0xeb, 0x3a, 0x77, 0xe0, 0xae, 0xeb, 0xf0, 0xea, 0x4d, 0xa9, 0xef, 0xea, 0x4d, 0xf8,
- 0x9e, 0xb4, 0x67, 0x34, 0xfb, 0x78, 0x18, 0x5b, 0xf0, 0xe5, 0x74, 0x67, 0x2f, 0x93, 0xb9, 0xc8,
- 0xbe, 0x81, 0xbd, 0x7d, 0x06, 0x28, 0x94, 0x95, 0x88, 0x53, 0xe1, 0x4f, 0xb1, 0xeb, 0xe1, 0x37,
- 0x53, 0xc4, 0x70, 0xf4, 0xa3, 0x62, 0x48, 0x7c, 0x54, 0x0c, 0x6e, 0x8d, 0x5a, 0xee, 0x77, 0x04,
- 0x49, 0xdb, 0x19, 0x46, 0x3c, 0x08, 0xe3, 0xc3, 0xe6, 0x66, 0xd7, 0x19, 0x26, 0x16, 0x3f, 0x99,
- 0x2b, 0x8c, 0xd9, 0xad, 0xa1, 0x9a, 0x28, 0x32, 0xc9, 0x37, 0xb5, 0xa7, 0x75, 0x27, 0xe7, 0x3c,
- 0x38, 0x13, 0xae, 0x2f, 0xcf, 0xce, 0x9d, 0x7c, 0x18, 0x07, 0xd9, 0xa3, 0xf0, 0x2d, 0x09, 0xe4,
- 0x9b, 0xb6, 0xe3, 0x8d, 0x0b, 0x83, 0xb4, 0x5b, 0xe0, 0x11, 0x09, 0x34, 0xe3, 0xe7, 0xa0, 0xd9,
- 0x6d, 0x81, 0x27, 0x97, 0x3f, 0x81, 0x30, 0x98, 0xc7, 0xc1, 0x02, 0xe5, 0x24, 0xb8, 0x43, 0xe6,
- 0xdf, 0x24, 0xda, 0x5f, 0xdd, 0x2f, 0x8a, 0x08, 0xd9, 0x08, 0x09, 0xb6, 0xa0, 0x7d, 0x50, 0xb8,
- 0x34, 0xf8, 0xc6, 0x28, 0x2e, 0x15, 0x1e, 0x97, 0x41, 0x33, 0xf0, 0xe0, 0x1a, 0x96, 0x71, 0xf5,
- 0x4c, 0x69, 0x22, 0x6a, 0x26, 0x14, 0x9e, 0x3d, 0x22, 0x0f, 0xc9, 0xa0, 0xc8, 0x5c, 0x00, 0xc7,
- 0x8a, 0x40, 0xda, 0x96, 0x11, 0x08, 0x41, 0xcc, 0x55, 0x50, 0x1e, 0x77, 0xcb, 0x48, 0x2e, 0x3f,
- 0x7b, 0x1c, 0xfe, 0x83, 0xf9, 0xb6, 0x96, 0x2e, 0x1b, 0x66, 0xd7, 0xb8, 0xd8, 0x4d, 0x11, 0xc9,
- 0xfa, 0x13, 0x29, 0x4f, 0xf3, 0x05, 0x55, 0xe5, 0xca, 0x8b, 0x91, 0xf8, 0x77, 0x81, 0x19, 0x87,
- 0xdb, 0xfb, 0xc3, 0x56, 0x54, 0x9f, 0x5f, 0x31, 0x7b, 0xaf, 0x87, 0x39, 0x53, 0x1d, 0xdd, 0x13,
- 0xe2, 0x67, 0x22, 0x47, 0x8d, 0x66, 0x4b, 0x9d, 0xce, 0x32, 0x32, 0xbc, 0x3d, 0x07, 0x75, 0x52,
- 0x0d, 0x11, 0x4e, 0xdf, 0xf6, 0x68, 0x44, 0x12, 0x5c, 0x2c, 0xc9, 0x1a, 0x8f, 0xce, 0x53, 0x86,
- 0xf4, 0x06, 0x3e, 0x2f, 0x63, 0xe9, 0x92, 0xde, 0x16, 0x40, 0xd2, 0xe0, 0x20, 0x79, 0xda, 0x68,
- 0x4c, 0x64, 0x0f, 0xc8, 0xcf, 0xc8, 0x60, 0x81, 0xda, 0x09, 0xe3, 0xc6, 0xe4, 0x43, 0x29, 0x5d,
- 0x86, 0x22, 0xb7, 0x74, 0x45, 0xd9, 0x19, 0x0b, 0x2c, 0x69, 0x1c, 0x8c, 0xc4, 0xf8, 0xc8, 0x1e,
- 0x99, 0xe7, 0x9f, 0x00, 0x20, 0xe2, 0x06, 0xfa, 0x89, 0x62, 0x18, 0xd7, 0x11, 0xbe, 0x93, 0xcd,
- 0x3f, 0x9a, 0x5c, 0x90, 0xf1, 0x88, 0x8b, 0x67, 0xb0, 0x41, 0xc5, 0x27, 0x0a, 0x8d, 0x2a, 0xbf,
- 0x9f, 0xd2, 0xe6, 0x65, 0x4e, 0x98, 0x43, 0x07, 0xf7, 0x11, 0x7b, 0xb9, 0x4f, 0xa6, 0x30, 0x7e,
- 0x87, 0xb1, 0x92, 0x0e, 0xb5, 0xda, 0x08, 0x33, 0xfb, 0xd3, 0xe0, 0xa4, 0xae, 0x95, 0x2a, 0x8d,
- 0x7a, 0xed, 0x42, 0xf4, 0xca, 0x26, 0x45, 0x8e, 0x4e, 0x4e, 0x32, 0x81, 0xed, 0x75, 0x29, 0xfb,
- 0x40, 0x5e, 0x56, 0x49, 0xb3, 0x95, 0xc8, 0xe2, 0xca, 0xf0, 0x5e, 0x4d, 0x80, 0xec, 0x51, 0xa2,
- 0xf0, 0xb5, 0x22, 0x98, 0xd5, 0x51, 0xdb, 0xde, 0xdd, 0x45, 0x56, 0x07, 0x75, 0xe0, 0xeb, 0x64,
- 0x30, 0x17, 0xec, 0xff, 0x35, 0x91, 0x07, 0xbf, 0x37, 0xc4, 0xe6, 0x2c, 0x98, 0xc3, 0x95, 0x6b,
- 0xf0, 0x81, 0xe3, 0xb9, 0x34, 0xf5, 0x56, 0x70, 0xc2, 0x47, 0xa1, 0xd1, 0x37, 0x85, 0x39, 0xf8,
- 0x02, 0xbe, 0x37, 0x8a, 0xd1, 0x06, 0x8f, 0xd1, 0xbd, 0xf1, 0xc2, 0x0c, 0xd8, 0x5d, 0x8c, 0xb2,
- 0x1a, 0x03, 0xd6, 0xef, 0x06, 0x60, 0x3d, 0x8b, 0x03, 0xab, 0x72, 0x48, 0xfa, 0x47, 0x89, 0xda,
- 0xaf, 0xc8, 0xe0, 0xa4, 0xdf, 0x11, 0x4f, 0x0e, 0xad, 0x4f, 0x46, 0xd1, 0xfa, 0x3e, 0x1e, 0xad,
- 0x15, 0x11, 0x69, 0x0e, 0x62, 0x39, 0x06, 0xb5, 0x2f, 0x06, 0xa8, 0x7d, 0x3f, 0x87, 0x5a, 0x6d,
- 0x4c, 0xe5, 0x1c, 0x25, 0x7a, 0x1f, 0x92, 0xc1, 0x69, 0x6c, 0x76, 0x96, 0x6d, 0x6b, 0xab, 0x6b,
- 0xb6, 0x3d, 0xd3, 0xda, 0x0e, 0x5d, 0xda, 0x56, 0x44, 0x56, 0x36, 0xfb, 0xb1, 0x95, 0x0e, 0x62,
- 0xcb, 0xc7, 0xdb, 0x10, 0x6d, 0x5b, 0x71, 0x6c, 0xc5, 0x0c, 0x61, 0x11, 0x67, 0xed, 0x50, 0x73,
- 0xa2, 0x49, 0xe9, 0x5b, 0x9f, 0x20, 0x07, 0x47, 0x89, 0xdf, 0x43, 0x20, 0x62, 0x7a, 0xbc, 0x50,
- 0x06, 0x0a, 0xf1, 0x9f, 0x24, 0x3d, 0x3b, 0xbb, 0xcf, 0xb4, 0xc1, 0x7b, 0xd6, 0xf7, 0x7c, 0x01,
- 0xf9, 0x9e, 0xf5, 0x7e, 0x82, 0x7a, 0x13, 0x58, 0x68, 0xef, 0xa0, 0xf6, 0xa5, 0xaa, 0xe5, 0xfb,
- 0x26, 0x51, 0x47, 0x96, 0xbe, 0x54, 0x7e, 0x30, 0xbb, 0x9f, 0x07, 0x93, 0x5f, 0x78, 0xe4, 0x26,
- 0x36, 0x51, 0xa6, 0x62, 0x1a, 0xda, 0x6f, 0x04, 0x00, 0xd5, 0x39, 0x80, 0xee, 0x1a, 0x89, 0x6a,
- 0x3a, 0x58, 0xea, 0x23, 0xc0, 0x02, 0xc1, 0xa9, 0xc6, 0x7a, 0xab, 0xda, 0xa8, 0x6f, 0x6e, 0x34,
- 0xb5, 0xca, 0xe6, 0x92, 0x0f, 0x4e, 0x53, 0x91, 0xe1, 0x57, 0x25, 0x30, 0x45, 0xd9, 0x72, 0xe1,
- 0xe3, 0x43, 0x08, 0x86, 0x1e, 0x29, 0x80, 0x6f, 0x17, 0x0e, 0x10, 0x14, 0x08, 0x82, 0x95, 0x13,
- 0xd3, 0x30, 0x9e, 0x0a, 0xa6, 0x28, 0xc8, 0xfe, 0x2e, 0xc0, 0x99, 0x18, 0xcb, 0x8e, 0x91, 0xd1,
- 0xfd, 0xec, 0x82, 0xc1, 0x82, 0x86, 0xb0, 0x91, 0xbd, 0x35, 0xfe, 0xdc, 0x3c, 0x5d, 0x3a, 0x38,
- 0x6f, 0x7a, 0x3b, 0xe4, 0xc4, 0x01, 0x7c, 0xa6, 0x48, 0xc7, 0x75, 0x2b, 0x28, 0x5c, 0xc6, 0xb9,
- 0x87, 0x9c, 0xde, 0xa0, 0x99, 0xe0, 0xcf, 0x0b, 0xc7, 0xa6, 0xe6, 0xf4, 0x33, 0xe0, 0x29, 0x06,
- 0x9c, 0x35, 0x90, 0xef, 0x9a, 0xae, 0xc7, 0x6c, 0xee, 0x3b, 0x53, 0x11, 0xf2, 0xff, 0x54, 0x3d,
- 0xb4, 0xab, 0x13, 0x32, 0xf0, 0x3e, 0x6c, 0x31, 0x85, 0xa9, 0x02, 0x27, 0x58, 0x4e, 0x83, 0x29,
- 0x76, 0xb2, 0x9a, 0x6d, 0x4b, 0xf9, 0x8f, 0x82, 0x5b, 0x41, 0x42, 0xb5, 0xcd, 0x5e, 0x07, 0xfe,
- 0x9f, 0xe3, 0x60, 0x6a, 0xd5, 0x74, 0x3d, 0xdb, 0xd9, 0x87, 0xaf, 0xcf, 0x81, 0xa9, 0x73, 0xc8,
- 0x71, 0x4d, 0xdb, 0x3a, 0xe0, 0xae, 0x75, 0x3d, 0x98, 0xed, 0x39, 0xe8, 0xb2, 0x69, 0xef, 0xb9,
- 0x91, 0x51, 0x22, 0x92, 0xa4, 0x42, 0x30, 0x6d, 0xec, 0x79, 0x3b, 0xb6, 0x13, 0x06, 0x64, 0xf2,
- 0x9f, 0xd5, 0x33, 0x00, 0xd0, 0xff, 0x75, 0x63, 0x17, 0xf9, 0x77, 0xae, 0x87, 0x29, 0xaa, 0x0a,
- 0xf2, 0x9e, 0xb9, 0x8b, 0x58, 0x84, 0x76, 0xf2, 0x1f, 0x0b, 0x98, 0x44, 0x3b, 0x65, 0x51, 0x65,
- 0x65, 0xdd, 0x7f, 0x84, 0x7f, 0x24, 0x83, 0xd9, 0x15, 0xe4, 0x31, 0x56, 0x5d, 0xf8, 0x92, 0x9c,
- 0xd0, 0xa5, 0x48, 0x78, 0x5e, 0xd2, 0x35, 0x5c, 0xff, 0xbb, 0x60, 0xc8, 0xe5, 0x13, 0xc3, 0x70,
- 0xf1, 0x72, 0xf4, 0xae, 0x08, 0x12, 0x3b, 0xd4, 0xab, 0x52, 0x67, 0x7e, 0x96, 0x99, 0x6d, 0x1c,
- 0x1f, 0x7c, 0xc1, 0xdb, 0xc4, 0x89, 0x71, 0x37, 0x98, 0xec, 0x17, 0x23, 0xf5, 0x89, 0xed, 0x8e,
- 0xa6, 0x2f, 0xb3, 0x1c, 0x07, 0xae, 0x01, 0x89, 0x52, 0x62, 0x64, 0xf4, 0x20, 0xb7, 0x60, 0xc4,
- 0x8e, 0xe1, 0x9c, 0x4c, 0xe0, 0xe2, 0x57, 0x19, 0xcc, 0x36, 0x77, 0xec, 0x2b, 0xbe, 0x1c, 0xbf,
- 0x4f, 0x0c, 0xd8, 0x6b, 0xc1, 0xcc, 0xe5, 0x3e, 0x50, 0xc3, 0x84, 0xe8, 0x5d, 0x73, 0x32, 0x7f,
- 0xd7, 0xdc, 0x0b, 0xe4, 0xb4, 0x30, 0x45, 0x98, 0x8b, 0x81, 0x89, 0xbf, 0x1e, 0x4e, 0x4a, 0x71,
- 0x3d, 0x9c, 0xfa, 0x14, 0x30, 0xc5, 0xb8, 0x66, 0xcb, 0xd4, 0xc9, 0x00, 0xfb, 0x99, 0xa3, 0x15,
- 0xcc, 0xf3, 0x15, 0x4c, 0x87, 0x7c, 0x7c, 0xe5, 0xb2, 0x47, 0xfe, 0xb7, 0x24, 0x12, 0xaf, 0xc9,
- 0x07, 0xbe, 0x3c, 0x06, 0xe0, 0xe1, 0x37, 0x73, 0xa2, 0x9b, 0x39, 0x81, 0x04, 0x02, 0x0e, 0x0e,
- 0x75, 0xe1, 0xd9, 0x50, 0x72, 0xd9, 0xcb, 0xf3, 0x15, 0x79, 0x30, 0x57, 0x31, 0xb7, 0xb6, 0x82,
- 0x4e, 0xf2, 0xa5, 0x82, 0x9d, 0x64, 0xbc, 0x4b, 0x15, 0xb6, 0x73, 0xf7, 0x1c, 0x07, 0x59, 0x7e,
- 0xa5, 0x58, 0x73, 0xea, 0x4b, 0x55, 0x6f, 0x06, 0xc7, 0xfd, 0x71, 0x21, 0xda, 0x51, 0xce, 0xe8,
- 0xfd, 0xc9, 0xf0, 0xeb, 0xc2, 0x9e, 0x00, 0xbe, 0x44, 0xa3, 0x55, 0x8a, 0x69, 0x80, 0x77, 0x83,
- 0xf9, 0x1d, 0x9a, 0x9b, 0x2c, 0x97, 0xfa, 0x9d, 0xe5, 0xa9, 0xbe, 0x78, 0xf8, 0x6b, 0xc8, 0x75,
- 0x8d, 0x6d, 0xa4, 0xf3, 0x99, 0xfb, 0x9a, 0xaf, 0x9c, 0xe6, 0x76, 0x47, 0x31, 0xa7, 0x02, 0x81,
- 0x9a, 0x64, 0xaf, 0x1d, 0x5f, 0x3c, 0x0b, 0xf2, 0xcb, 0x66, 0x17, 0xc1, 0x1f, 0x91, 0xc0, 0x0c,
- 0x9e, 0x75, 0x5b, 0x6d, 0xfc, 0x14, 0x71, 0xb0, 0xfc, 0x5a, 0x4e, 0xf4, 0x56, 0x63, 0x4c, 0x67,
- 0x31, 0xa0, 0x11, 0xd3, 0x6e, 0xc4, 0x6e, 0x2f, 0x4e, 0x24, 0x35, 0x81, 0x3b, 0xa8, 0xf0, 0xd4,
- 0x63, 0x6b, 0xab, 0x6b, 0x1b, 0xdc, 0x86, 0x41, 0xbf, 0x29, 0x14, 0x1e, 0x0a, 0xac, 0xdb, 0xde,
- 0xba, 0x69, 0x59, 0x41, 0x9c, 0x8d, 0x03, 0xe9, 0xbc, 0xaf, 0x4b, 0x62, 0xa8, 0x32, 0x52, 0x77,
- 0x56, 0x7a, 0x8c, 0x66, 0xdf, 0x04, 0x16, 0x2e, 0xee, 0x7b, 0xc8, 0x65, 0xb9, 0x58, 0xb1, 0x79,
- 0xbd, 0x2f, 0x35, 0x72, 0xd1, 0x40, 0x52, 0x48, 0xb3, 0x84, 0x02, 0xd3, 0x89, 0x7a, 0x75, 0x84,
- 0x19, 0xe0, 0x49, 0xa0, 0xd4, 0x1b, 0x15, 0x8d, 0xf8, 0xfb, 0xfa, 0x1e, 0x94, 0xdb, 0xf0, 0x27,
- 0x65, 0x30, 0x47, 0x1c, 0xf0, 0x7c, 0x14, 0x6e, 0x10, 0x98, 0x8f, 0xc0, 0x2f, 0x0b, 0xfb, 0x02,
- 0x93, 0x2a, 0x47, 0x0b, 0x88, 0x17, 0xf4, 0x96, 0xd9, 0xed, 0x17, 0x74, 0x41, 0xef, 0x4b, 0x1d,
- 0x00, 0x88, 0x3c, 0x10, 0x90, 0x5f, 0x11, 0x72, 0x08, 0x1e, 0xc6, 0xdd, 0x51, 0xa1, 0xf2, 0xab,
- 0x32, 0x98, 0xc5, 0x93, 0x14, 0x1f, 0x94, 0x06, 0x07, 0x8a, 0x6d, 0x75, 0xf7, 0xc3, 0x65, 0x11,
- 0xff, 0x31, 0x55, 0x23, 0xf9, 0x63, 0xe1, 0x99, 0x3b, 0x11, 0x51, 0x84, 0x97, 0x09, 0xe1, 0xf7,
- 0x41, 0xa1, 0xf9, 0xfc, 0x10, 0xe6, 0x8e, 0x0a, 0xbe, 0x87, 0x8b, 0xa0, 0xb8, 0xd1, 0x23, 0xc8,
- 0x7d, 0x49, 0x16, 0xb9, 0xb4, 0xe3, 0xc0, 0x61, 0x30, 0x6c, 0x66, 0x75, 0xed, 0xb6, 0xd1, 0x5d,
- 0x0f, 0x4f, 0xd5, 0x86, 0x09, 0xea, 0x5d, 0xcc, 0x3f, 0x9c, 0x9e, 0x38, 0xbf, 0x29, 0xf1, 0x3e,
- 0x0b, 0x22, 0xa3, 0xc8, 0xc1, 0xbb, 0x5b, 0xc1, 0x89, 0x8e, 0xe9, 0x1a, 0x17, 0xbb, 0x48, 0xb3,
- 0xda, 0xce, 0x3e, 0x15, 0x07, 0x9b, 0x56, 0x1d, 0x78, 0xa1, 0xde, 0x03, 0x0a, 0xae, 0xb7, 0xdf,
- 0xa5, 0xf3, 0xc4, 0xe8, 0x39, 0xbd, 0xd8, 0xa2, 0x9a, 0x38, 0xbb, 0x4e, 0xbf, 0x8a, 0xba, 0x75,
- 0x4e, 0x89, 0xb9, 0x75, 0xaa, 0x4f, 0x02, 0x45, 0xdb, 0x31, 0xb7, 0x4d, 0x7a, 0x45, 0xdd, 0xc2,
- 0x81, 0xb0, 0xad, 0xd4, 0x14, 0x68, 0x90, 0x2c, 0x3a, 0xcb, 0xaa, 0x3e, 0x05, 0xcc, 0x98, 0xbb,
- 0xc6, 0x36, 0xba, 0xdf, 0xb4, 0xe8, 0xa1, 0xf6, 0x85, 0x3b, 0x4e, 0x1f, 0x38, 0x82, 0xc8, 0xde,
- 0xeb, 0x61, 0x56, 0xf5, 0x6e, 0x70, 0x4d, 0xdb, 0x41, 0x86, 0x87, 0xb0, 0x80, 0xce, 0x9b, 0x9d,
- 0x6d, 0xe4, 0x55, 0xb7, 0xd6, 0x4c, 0xd7, 0x35, 0xad, 0x6d, 0x76, 0x0b, 0x65, 0x7c, 0x06, 0xf8,
- 0x41, 0x49, 0x34, 0x32, 0x1d, 0x91, 0x0c, 0x55, 0x89, 0x11, 0x6e, 0xcb, 0x8e, 0x48, 0x51, 0x16,
- 0x74, 0x8e, 0x7d, 0xb5, 0x50, 0xcc, 0xb8, 0x78, 0xb6, 0xb2, 0x1f, 0xfa, 0xff, 0x40, 0x02, 0xd3,
- 0x15, 0xfb, 0x8a, 0x45, 0x9a, 0xc9, 0x9d, 0x62, 0x96, 0xf2, 0x80, 0x63, 0xe6, 0xfc, 0xbd, 0xcb,
- 0x89, 0x67, 0xca, 0x48, 0x6d, 0xfd, 0x22, 0x63, 0x60, 0x48, 0x6c, 0x77, 0x82, 0xb7, 0xe1, 0x26,
- 0x95, 0x93, 0xbd, 0x5c, 0x7f, 0x47, 0x06, 0xf9, 0x8a, 0x63, 0xf7, 0xe0, 0xdb, 0x72, 0x29, 0x9c,
- 0xc4, 0x3a, 0x8e, 0xdd, 0x6b, 0x91, 0xeb, 0x2c, 0xc3, 0x7d, 0x91, 0x68, 0x9a, 0x7a, 0x27, 0x98,
- 0xee, 0xd9, 0xae, 0xe9, 0xf9, 0x93, 0x90, 0x85, 0x3b, 0x1e, 0x33, 0xb0, 0x2f, 0x58, 0x67, 0x99,
- 0xf4, 0x20, 0x3b, 0xee, 0xf3, 0x89, 0x08, 0xb1, 0x5c, 0xb0, 0x18, 0xfd, 0x2b, 0x3d, 0xfb, 0x52,
- 0xe1, 0xcb, 0xa2, 0x48, 0x3e, 0x8d, 0x47, 0xf2, 0xb1, 0x03, 0x24, 0xec, 0xd8, 0xbd, 0xb1, 0xb8,
- 0x75, 0xbc, 0x32, 0x40, 0xf5, 0xe9, 0x1c, 0xaa, 0xb7, 0x08, 0x95, 0x99, 0x3d, 0xa2, 0x1f, 0xcc,
- 0x03, 0x40, 0x8c, 0x94, 0x0d, 0x3c, 0x7d, 0x12, 0xb3, 0xd0, 0x7e, 0x38, 0x1f, 0x91, 0x65, 0x89,
- 0x97, 0xe5, 0xe3, 0x63, 0x6c, 0x20, 0x42, 0x3e, 0x46, 0xa2, 0x25, 0x50, 0xd8, 0xc3, 0xaf, 0x99,
- 0x44, 0x05, 0x49, 0x90, 0x47, 0x9d, 0x7e, 0x09, 0x7f, 0x2b, 0x07, 0x0a, 0x24, 0x41, 0x3d, 0x03,
- 0x00, 0x31, 0x0b, 0xe8, 0x91, 0xcc, 0x1c, 0x31, 0x00, 0x22, 0x29, 0x44, 0x5b, 0xcd, 0x0e, 0x7b,
- 0x4d, 0x0d, 0xee, 0x30, 0x01, 0x7f, 0x4d, 0x8c, 0x05, 0x42, 0x8b, 0x99, 0x0f, 0x91, 0x14, 0xfc,
- 0x35, 0x79, 0xaa, 0xa1, 0x2d, 0x7a, 0xd3, 0x40, 0x5e, 0x0f, 0x13, 0x82, 0xaf, 0x6b, 0xc1, 0xfd,
- 0x94, 0xfe, 0xd7, 0x24, 0x05, 0x4f, 0xa5, 0x89, 0x5a, 0x2e, 0x85, 0x45, 0x14, 0x49, 0xa6, 0xfe,
- 0x64, 0xf8, 0xba, 0x40, 0x6d, 0x2a, 0x9c, 0xda, 0xdc, 0x9e, 0x42, 0xbc, 0xd9, 0x2b, 0xcf, 0x9f,
- 0x15, 0xc0, 0x4c, 0xdd, 0xee, 0x30, 0xdd, 0x89, 0x4c, 0x37, 0x3f, 0x5d, 0x48, 0x35, 0xdd, 0x0c,
- 0x68, 0xc4, 0x28, 0xc8, 0x33, 0x78, 0x05, 0x11, 0xa3, 0x10, 0xd5, 0x0f, 0x75, 0x09, 0x14, 0x89,
- 0xf6, 0x1e, 0xbc, 0xf8, 0x30, 0x89, 0x04, 0x11, 0xad, 0xce, 0xbe, 0xfc, 0x4f, 0xa7, 0x63, 0xff,
- 0x03, 0x14, 0x48, 0x05, 0x13, 0xf6, 0x86, 0xf8, 0x8a, 0x4a, 0xc9, 0x15, 0x95, 0x93, 0x2b, 0x9a,
- 0xef, 0xaf, 0x68, 0x9a, 0x55, 0x84, 0x38, 0x0d, 0xc9, 0x5e, 0xc7, 0xff, 0x6e, 0x0a, 0x80, 0xba,
- 0x71, 0xd9, 0xdc, 0xa6, 0x7b, 0xcb, 0x7f, 0xe4, 0xcf, 0x9e, 0xd8, 0x2e, 0xf0, 0x8f, 0x45, 0x06,
- 0xc2, 0x3b, 0xc1, 0x14, 0x1b, 0xf7, 0x58, 0x45, 0xae, 0xe3, 0x2a, 0x12, 0x52, 0xa1, 0x46, 0xed,
- 0x83, 0x9e, 0xee, 0xe7, 0xe7, 0xee, 0x68, 0x97, 0xfa, 0xee, 0x68, 0x1f, 0xbc, 0x83, 0x11, 0x73,
- 0x73, 0x3b, 0x7c, 0x9f, 0xf0, 0x19, 0xaa, 0x08, 0x3f, 0x91, 0x1a, 0xc5, 0x34, 0xc1, 0x27, 0x81,
- 0x29, 0x3b, 0xd8, 0x0e, 0x97, 0x63, 0x57, 0xd1, 0xaa, 0xd6, 0x96, 0xad, 0xfb, 0x39, 0x05, 0xb7,
- 0xce, 0x84, 0xf8, 0x98, 0xc8, 0x31, 0xc5, 0x53, 0x2b, 0x7e, 0xd4, 0x46, 0x5c, 0x8f, 0xf3, 0xa6,
- 0xb7, 0x53, 0x33, 0xad, 0x4b, 0x2e, 0xfc, 0x7e, 0x31, 0x0b, 0x32, 0x82, 0xbf, 0x94, 0x0e, 0x7f,
- 0x3e, 0x6a, 0x52, 0x93, 0x47, 0xed, 0x9e, 0x38, 0x2a, 0x83, 0xb9, 0x8d, 0x01, 0xf0, 0x2e, 0x50,
- 0xa4, 0x8c, 0xb2, 0x4e, 0xf4, 0x6c, 0x2c, 0x7e, 0x01, 0x25, 0x9d, 0x7d, 0x01, 0xdf, 0x1b, 0xe0,
- 0x78, 0x8e, 0xc3, 0x71, 0xe9, 0x50, 0x9c, 0x65, 0x0e, 0xe9, 0xd9, 0x27, 0x82, 0x29, 0x26, 0x69,
- 0x75, 0x21, 0xda, 0x8a, 0x95, 0x63, 0x2a, 0x00, 0xc5, 0x35, 0xfb, 0x32, 0x6a, 0xd9, 0x4a, 0x0e,
- 0xff, 0xc7, 0xfc, 0xb5, 0x6c, 0x45, 0x82, 0xaf, 0x9a, 0x06, 0xd3, 0x41, 0xb8, 0xbc, 0x3f, 0x90,
- 0x80, 0x52, 0x26, 0x33, 0xb4, 0x65, 0xc7, 0xde, 0xa5, 0x35, 0x12, 0xf7, 0xc7, 0xff, 0x19, 0x61,
- 0x07, 0x91, 0x20, 0x8c, 0x5d, 0x7f, 0x61, 0x31, 0x58, 0xd2, 0x25, 0x4c, 0xc9, 0x5f, 0xc2, 0x84,
- 0x6f, 0x15, 0x72, 0x18, 0x11, 0x2d, 0x25, 0xfb, 0xa6, 0xf6, 0xdb, 0x12, 0x28, 0x94, 0xbb, 0xb6,
- 0x85, 0xa2, 0x87, 0x46, 0x87, 0x9e, 0x4e, 0x1c, 0xbc, 0x8f, 0x01, 0x9f, 0x2b, 0x89, 0xda, 0x1a,
- 0xa1, 0x00, 0x70, 0xd9, 0x82, 0xb2, 0x15, 0x1b, 0xa4, 0x12, 0x49, 0x67, 0x2f, 0xd0, 0xaf, 0x4a,
- 0x60, 0x86, 0x46, 0x26, 0x2b, 0x75, 0xbb, 0xf0, 0x31, 0xa1, 0x50, 0x07, 0x84, 0x1c, 0x84, 0xbf,
- 0x22, 0x7c, 0x28, 0x2a, 0xa8, 0x55, 0x40, 0x3b, 0x45, 0x88, 0xb6, 0x74, 0x67, 0x74, 0xc4, 0x76,
- 0xe2, 0x86, 0x32, 0x94, 0xbd, 0xa8, 0xff, 0x50, 0xc2, 0x06, 0x80, 0x75, 0x69, 0xdd, 0x41, 0x97,
- 0x4d, 0x74, 0x05, 0x3e, 0x3a, 0x14, 0xf6, 0xc1, 0xb0, 0x4b, 0x6f, 0x12, 0x5e, 0xc4, 0x89, 0x90,
- 0x8c, 0xdd, 0x08, 0x9b, 0xed, 0x86, 0x99, 0x58, 0x2f, 0xde, 0x1f, 0x0b, 0x2b, 0x42, 0x46, 0x8f,
- 0x66, 0x17, 0x5c, 0xb3, 0x89, 0xe7, 0x22, 0x7b, 0xc1, 0x7e, 0x74, 0x0a, 0x4c, 0x6f, 0x58, 0x6e,
- 0xaf, 0x6b, 0xb8, 0x3b, 0xf0, 0xdf, 0x64, 0x50, 0xa4, 0xd7, 0x6d, 0xc2, 0xef, 0xe2, 0xa2, 0xbb,
- 0x3c, 0x7b, 0x0f, 0x39, 0xbe, 0x03, 0x0f, 0x7d, 0x08, 0xed, 0x23, 0x29, 0x62, 0x1f, 0xc1, 0x0f,
- 0xca, 0xa2, 0x93, 0x54, 0xbf, 0x50, 0x76, 0xbf, 0x67, 0x7c, 0x40, 0x91, 0x9e, 0xd9, 0xf6, 0xf6,
- 0x1c, 0xe4, 0x0e, 0x0c, 0x28, 0x12, 0x4b, 0x65, 0x9d, 0x7e, 0xa5, 0x07, 0x9f, 0x43, 0x03, 0x4c,
- 0xb1, 0xc4, 0x03, 0x9b, 0x51, 0x07, 0x23, 0x1e, 0x9c, 0x02, 0x45, 0xc3, 0xf1, 0x4c, 0xd7, 0x63,
- 0xdb, 0xb3, 0xec, 0x09, 0x77, 0x97, 0xf4, 0xdf, 0x86, 0xd3, 0xf5, 0xe3, 0x40, 0x05, 0x09, 0xf0,
- 0x57, 0x85, 0xe6, 0x8f, 0xc9, 0x35, 0x4f, 0x07, 0xf9, 0xfd, 0x23, 0xac, 0x70, 0x3f, 0x0a, 0x5c,
- 0xa5, 0x97, 0x5a, 0xda, 0x26, 0x0d, 0x1b, 0x14, 0x44, 0x08, 0xea, 0xc0, 0xf7, 0xc8, 0x91, 0xf5,
- 0xbb, 0x7d, 0x6e, 0x8c, 0x60, 0x52, 0x0c, 0xc7, 0x88, 0x20, 0x21, 0x61, 0xaf, 0x9b, 0x5b, 0xc2,
- 0x95, 0x85, 0x97, 0x70, 0xe1, 0x2f, 0x09, 0xef, 0x45, 0x05, 0xa2, 0x1c, 0xb2, 0x06, 0x98, 0x74,
- 0x1d, 0xdf, 0x87, 0x85, 0xf6, 0x95, 0x86, 0x95, 0x74, 0x84, 0xb0, 0x7d, 0xf3, 0x14, 0x90, 0x4a,
- 0x55, 0xf8, 0xa3, 0x53, 0x60, 0xee, 0xbc, 0x63, 0x7a, 0xa6, 0xb5, 0xdd, 0xb2, 0xed, 0xae, 0x0b,
- 0xbf, 0x11, 0xd9, 0xa8, 0x78, 0x0a, 0x28, 0xb6, 0x6d, 0x6b, 0xcb, 0xdc, 0x66, 0x62, 0x3c, 0xc3,
- 0x55, 0xae, 0x54, 0x5d, 0x5c, 0x77, 0xec, 0xcb, 0x66, 0x07, 0x39, 0x65, 0x92, 0x4b, 0x67, 0xb9,
- 0xb1, 0x1e, 0x47, 0x02, 0xaf, 0xdd, 0xde, 0xff, 0x55, 0xb4, 0xbc, 0x20, 0xf2, 0x0b, 0x4b, 0x8c,
- 0xc4, 0x5d, 0xab, 0x82, 0xe9, 0xae, 0x61, 0x6d, 0xef, 0xf9, 0x33, 0xef, 0xfe, 0x5d, 0xd4, 0x38,
- 0x4a, 0x35, 0xf6, 0x91, 0x1e, 0x7c, 0x4e, 0x9c, 0xdc, 0xb0, 0xa9, 0x4f, 0xdb, 0x1e, 0xf9, 0x7f,
- 0xf6, 0x63, 0x39, 0x30, 0x1b, 0x29, 0x54, 0x9d, 0x05, 0x53, 0x15, 0x6d, 0xb9, 0xb4, 0x51, 0x6b,
- 0x29, 0xc7, 0xb0, 0x14, 0x9b, 0x1b, 0x6b, 0x6b, 0x25, 0xbd, 0xfa, 0x3d, 0x9a, 0x92, 0xc3, 0xef,
- 0x56, 0xf4, 0x12, 0x7e, 0x56, 0x24, 0xfc, 0xd0, 0x5c, 0x6d, 0xe8, 0x2d, 0xad, 0xae, 0xc8, 0xd8,
- 0x1e, 0xd5, 0x9e, 0xb5, 0x5e, 0xaa, 0x57, 0x94, 0x3c, 0xfe, 0xbf, 0xb4, 0x51, 0xab, 0x69, 0x2d,
- 0xa5, 0x10, 0x86, 0x62, 0x2b, 0xe2, 0xe4, 0x72, 0xa9, 0xb9, 0x51, 0xaa, 0x29, 0x53, 0x38, 0x79,
- 0x79, 0xa3, 0x5e, 0xbf, 0xa0, 0x4c, 0xe3, 0x22, 0xca, 0x8d, 0xfa, 0x72, 0xb5, 0xa2, 0xd5, 0x5b,
- 0xca, 0x8c, 0x7a, 0x15, 0x38, 0xde, 0x6c, 0xe9, 0xa5, 0xea, 0xca, 0x6a, 0x6b, 0xb9, 0xa1, 0x9f,
- 0x2f, 0xe9, 0x15, 0x05, 0xa8, 0x0a, 0x98, 0x5b, 0xd7, 0x1b, 0xcb, 0x1a, 0x89, 0xe5, 0x51, 0xaa,
- 0x29, 0xb3, 0xf8, 0xab, 0x96, 0x5e, 0xaa, 0x37, 0x6b, 0xa5, 0x96, 0xa6, 0xcc, 0x9d, 0xbd, 0x0f,
- 0x4c, 0xfb, 0xd5, 0x55, 0x8b, 0x40, 0xd2, 0xea, 0xca, 0x31, 0xf2, 0xdb, 0x54, 0x72, 0xf8, 0x77,
- 0x19, 0xf3, 0x5b, 0x04, 0x52, 0x45, 0x53, 0x64, 0xfc, 0x5b, 0x6d, 0x29, 0x79, 0xfc, 0xbb, 0x8e,
- 0x59, 0x2c, 0x02, 0x69, 0xb5, 0xaa, 0x14, 0xf1, 0x6f, 0x6b, 0x55, 0x99, 0xe2, 0x6f, 0xdd, 0x4e,
- 0xec, 0x85, 0x0f, 0x4a, 0x3e, 0xc6, 0xd0, 0xf0, 0xc2, 0x39, 0x32, 0xf9, 0x0f, 0x5f, 0x29, 0x89,
- 0xf4, 0x75, 0xc9, 0xf4, 0xd3, 0x35, 0x9a, 0xb7, 0xe4, 0xc6, 0xd8, 0x6a, 0x54, 0x08, 0x4e, 0x69,
- 0xf5, 0xca, 0x7a, 0xa3, 0x5a, 0x6f, 0xd1, 0x80, 0x59, 0x5a, 0xa9, 0xbc, 0x4a, 0x70, 0x46, 0x18,
- 0xc1, 0xb5, 0x46, 0x45, 0xab, 0x91, 0x17, 0xcb, 0x8d, 0x8d, 0x7a, 0x45, 0xd9, 0xc2, 0x65, 0x95,
- 0x36, 0x5a, 0xab, 0x9b, 0xba, 0xf6, 0xcc, 0x8d, 0xaa, 0xae, 0x55, 0x94, 0x6d, 0x4c, 0xa3, 0x56,
- 0xaa, 0xaf, 0x6c, 0x94, 0x56, 0xd8, 0x7e, 0xe1, 0xc6, 0xfa, 0x7a, 0x83, 0xec, 0x18, 0xee, 0xc0,
- 0x7f, 0xcc, 0x83, 0xe9, 0xd2, 0x9e, 0x67, 0x6f, 0x99, 0xdd, 0x2e, 0x7c, 0x48, 0x3a, 0x7c, 0x53,
- 0x2c, 0x71, 0x4d, 0xf1, 0x40, 0x03, 0xf2, 0xcb, 0x0a, 0x1a, 0x8f, 0x9f, 0x10, 0x69, 0x87, 0xa7,
- 0x43, 0x67, 0x6c, 0x99, 0xed, 0x34, 0xd3, 0x47, 0xea, 0x88, 0x6b, 0xb1, 0x96, 0x45, 0xde, 0xb0,
- 0xc7, 0xb3, 0xf7, 0x83, 0xb9, 0x28, 0x25, 0x12, 0x54, 0xaa, 0xb4, 0x42, 0xa3, 0x4e, 0xf9, 0x71,
- 0xe6, 0x68, 0xd4, 0x29, 0x72, 0x28, 0x40, 0x22, 0xed, 0xa5, 0xda, 0xaa, 0x61, 0x3d, 0x3d, 0x0e,
- 0x66, 0x2b, 0x5a, 0xb3, 0xac, 0x57, 0x89, 0x9f, 0xba, 0x92, 0xe7, 0xbd, 0x0c, 0x12, 0x2d, 0x33,
- 0xbe, 0x46, 0xa2, 0x4a, 0xf9, 0x2d, 0x21, 0x7b, 0x2b, 0x9e, 0x76, 0x3a, 0x85, 0x7c, 0xc9, 0x23,
- 0x4d, 0x21, 0xe1, 0x4b, 0xf2, 0x74, 0x9d, 0xac, 0xb9, 0xb7, 0xbb, 0x6b, 0x38, 0xfb, 0x9c, 0xbf,
- 0xda, 0xa8, 0x7a, 0x17, 0x3f, 0xbe, 0x27, 0x46, 0xa8, 0xc1, 0x26, 0x54, 0xcf, 0xb1, 0x77, 0x7b,
- 0x7e, 0x5f, 0xcd, 0x9e, 0xe0, 0xff, 0x25, 0x3c, 0x73, 0x2c, 0x55, 0x17, 0x23, 0x95, 0x19, 0x61,
- 0x68, 0xff, 0x01, 0x49, 0x64, 0x16, 0x99, 0x58, 0xcc, 0xb7, 0xbb, 0x46, 0xfc, 0x6d, 0x1e, 0x5c,
- 0xc5, 0xa2, 0x8f, 0x04, 0xeb, 0x0f, 0xd8, 0x54, 0x7d, 0x4d, 0xa6, 0x9a, 0xc1, 0x0c, 0x6a, 0x39,
- 0x34, 0xa8, 0x23, 0x1b, 0xde, 0x79, 0xc1, 0x0d, 0xef, 0xb7, 0x09, 0x1f, 0x7a, 0x28, 0x55, 0x17,
- 0x07, 0xd4, 0x71, 0x32, 0xdb, 0xf2, 0x2f, 0x90, 0x44, 0x56, 0x5b, 0x85, 0x38, 0xfc, 0x76, 0xd7,
- 0xb5, 0x77, 0xe4, 0xc0, 0x02, 0xaf, 0x2a, 0xea, 0x93, 0xc1, 0x74, 0x8f, 0xa5, 0x30, 0xb9, 0x9c,
- 0x8e, 0x53, 0x2e, 0x3d, 0xc8, 0x89, 0x21, 0x42, 0x56, 0xa7, 0x67, 0x9b, 0x56, 0xb0, 0x2e, 0xef,
- 0x3f, 0xe3, 0x79, 0x27, 0x99, 0x3a, 0xf8, 0xb1, 0xe8, 0xc8, 0x43, 0x18, 0x81, 0x34, 0x1f, 0x89,
- 0x40, 0x8a, 0x85, 0xe8, 0xa1, 0x5d, 0x72, 0xa3, 0xca, 0x9e, 0x43, 0x1d, 0x5e, 0x24, 0x3d, 0x9a,
- 0x74, 0xf6, 0xe9, 0x60, 0xda, 0x2f, 0x1f, 0x5b, 0x77, 0x8d, 0x5a, 0xad, 0xb4, 0x56, 0xa2, 0x0b,
- 0x95, 0x8d, 0x75, 0xad, 0x5e, 0xaa, 0x2a, 0x39, 0x3c, 0xd0, 0xd5, 0xd6, 0x9a, 0xad, 0x8d, 0x4a,
- 0xb5, 0xa1, 0x48, 0xe4, 0x09, 0x67, 0x2a, 0xaf, 0xaf, 0x2b, 0x32, 0x7c, 0xe3, 0x14, 0x98, 0x5a,
- 0x31, 0xba, 0x5d, 0xe4, 0xec, 0xc3, 0xaf, 0x4a, 0x40, 0xf1, 0x67, 0x07, 0x6b, 0x86, 0x65, 0x6e,
- 0x21, 0xd7, 0x4b, 0x5e, 0xa8, 0x78, 0x9f, 0xf0, 0x35, 0x4b, 0xac, 0x8c, 0xc5, 0x7e, 0xfa, 0x31,
- 0x3a, 0x7e, 0x1b, 0xc8, 0x9b, 0xd6, 0x96, 0xcd, 0x96, 0x2b, 0xfa, 0xfd, 0x6d, 0xfc, 0x8f, 0xc9,
- 0xb6, 0x01, 0xc9, 0x28, 0x78, 0xd3, 0x92, 0x20, 0x17, 0xd9, 0xaf, 0x5a, 0xbc, 0x23, 0x0f, 0xe6,
- 0x7d, 0x26, 0xaa, 0x56, 0x07, 0x3d, 0x18, 0xdd, 0x06, 0xfd, 0xc9, 0xbc, 0x68, 0xf0, 0x9b, 0xfe,
- 0xfa, 0x10, 0x52, 0x31, 0x22, 0x6d, 0x01, 0xd0, 0x36, 0x3c, 0xb4, 0x6d, 0x3b, 0x66, 0xb0, 0x16,
- 0xf1, 0xe4, 0x34, 0xd4, 0xca, 0xf4, 0xeb, 0x7d, 0x3d, 0x42, 0x47, 0xbd, 0x07, 0xcc, 0xa2, 0x20,
- 0xda, 0xa0, 0xbf, 0x4d, 0x9a, 0x88, 0x57, 0x34, 0x3f, 0xfc, 0x43, 0xa1, 0x18, 0x3b, 0x22, 0xd5,
- 0x4c, 0x87, 0xd9, 0xe6, 0x68, 0x5d, 0xcf, 0x46, 0x7d, 0xad, 0xa4, 0x37, 0x57, 0x4b, 0xb5, 0x5a,
- 0xb5, 0xbe, 0x12, 0x84, 0xbd, 0x55, 0xc1, 0x42, 0xa5, 0x71, 0xbe, 0x1e, 0x89, 0x4b, 0x9c, 0x87,
- 0xeb, 0x60, 0xda, 0x97, 0xd7, 0xa0, 0x53, 0x54, 0x51, 0x99, 0xb1, 0x53, 0x54, 0x91, 0x24, 0x6c,
- 0x1a, 0x9a, 0xed, 0xc0, 0xb5, 0x9e, 0xfc, 0x87, 0xbf, 0x69, 0x80, 0x02, 0xf1, 0x67, 0x81, 0xef,
- 0x22, 0xf3, 0xe2, 0x5e, 0xd7, 0x68, 0x23, 0xb8, 0x9b, 0x62, 0x25, 0xdc, 0xbf, 0xf7, 0x53, 0x3a,
- 0x70, 0xef, 0x27, 0xf9, 0xcb, 0x46, 0x8c, 0x93, 0x83, 0x7c, 0x68, 0x74, 0x9a, 0x85, 0x0f, 0x47,
- 0x93, 0xe8, 0xd9, 0x44, 0x5d, 0x6f, 0x18, 0x9b, 0x31, 0x2a, 0x19, 0xcf, 0x53, 0xba, 0x55, 0x60,
- 0x31, 0x1f, 0xa8, 0x24, 0x8e, 0xb2, 0x6f, 0xf1, 0x5f, 0xca, 0x83, 0x42, 0xb3, 0xd7, 0x35, 0x3d,
- 0xf8, 0x73, 0xd2, 0x58, 0x30, 0xa3, 0x77, 0xb5, 0xca, 0x43, 0xef, 0x6a, 0x0d, 0xfd, 0x25, 0xf3,
- 0x02, 0xfe, 0x92, 0x2d, 0xf4, 0xa0, 0xc7, 0xfb, 0x4b, 0xde, 0xc9, 0xa6, 0x6d, 0xd4, 0xdb, 0xf2,
- 0xb1, 0x03, 0x44, 0x4a, 0xaa, 0x35, 0xe0, 0x4e, 0x84, 0xb3, 0x4f, 0x64, 0xa1, 0xd9, 0x01, 0x28,
- 0x2e, 0x35, 0x5a, 0xad, 0xc6, 0x9a, 0x72, 0x8c, 0x4c, 0xbf, 0x1a, 0xeb, 0x34, 0x50, 0x6e, 0xb5,
- 0x5e, 0xd7, 0x74, 0x6e, 0xc6, 0xc5, 0x5f, 0xdc, 0x97, 0x38, 0xc1, 0xe2, 0xcb, 0xce, 0x52, 0xbd,
- 0xc4, 0x16, 0xc1, 0xe3, 0xf9, 0xc9, 0x5e, 0xb9, 0x7e, 0x5a, 0x06, 0x85, 0x35, 0xe4, 0x6c, 0x23,
- 0xf8, 0xec, 0x14, 0x0e, 0x76, 0x5b, 0xa6, 0xe3, 0xd2, 0xd0, 0xfa, 0xa1, 0x83, 0x5d, 0x34, 0x4d,
- 0xbd, 0x11, 0xcc, 0xbb, 0xa8, 0x6d, 0x5b, 0x1d, 0x3f, 0x13, 0xed, 0x8f, 0xf8, 0x44, 0xf8, 0xf2,
- 0x94, 0x90, 0x11, 0x46, 0xc7, 0xe2, 0x25, 0x97, 0x06, 0x98, 0x41, 0xa5, 0x66, 0x0f, 0xcc, 0xd7,
- 0x65, 0xfc, 0x51, 0x6f, 0x1f, 0xbe, 0x5c, 0xd8, 0xf3, 0xf1, 0x56, 0x50, 0xbc, 0xe8, 0xdf, 0xd1,
- 0x24, 0xc7, 0xf6, 0xc7, 0x2c, 0x8f, 0xba, 0x04, 0x4e, 0xb8, 0xa8, 0x8b, 0xda, 0x1e, 0xea, 0xe0,
- 0xa6, 0xab, 0x0f, 0xed, 0x14, 0x0e, 0x66, 0x87, 0xbf, 0x1b, 0x05, 0xf0, 0x6e, 0x1e, 0xc0, 0x9b,
- 0x06, 0x88, 0x12, 0x57, 0x28, 0x7e, 0x6e, 0x82, 0xab, 0xd1, 0xec, 0xda, 0x81, 0xe1, 0xeb, 0x3f,
- 0xe3, 0x77, 0x3b, 0xde, 0x6e, 0x97, 0xbc, 0x63, 0x47, 0x83, 0xfd, 0x67, 0x75, 0x11, 0x4c, 0x19,
- 0xd6, 0x3e, 0x79, 0x95, 0x4f, 0xa8, 0xb5, 0x9f, 0x09, 0xbe, 0x2a, 0x40, 0xfe, 0x5e, 0x0e, 0xf9,
- 0xc7, 0x8b, 0xb1, 0x9b, 0x3d, 0xf0, 0x3f, 0x34, 0x05, 0x0a, 0xeb, 0x86, 0xeb, 0x21, 0xf8, 0xbf,
- 0x64, 0x51, 0xe4, 0x6f, 0x02, 0x0b, 0x5b, 0x76, 0x7b, 0xcf, 0x45, 0x1d, 0xbe, 0x51, 0xf6, 0xa5,
- 0x8e, 0x03, 0x73, 0xf5, 0x16, 0xa0, 0xf8, 0x89, 0x8c, 0xac, 0xef, 0x02, 0x7b, 0x20, 0x9d, 0x5c,
- 0x03, 0xe7, 0xae, 0x1b, 0x8e, 0xd7, 0xd8, 0x22, 0x69, 0xc1, 0x35, 0x70, 0xd1, 0x44, 0x0e, 0xfa,
- 0x62, 0x02, 0xf4, 0x53, 0xf1, 0xd0, 0x4f, 0x0b, 0x40, 0xaf, 0x96, 0xc0, 0xf4, 0x96, 0xd9, 0x45,
- 0xe4, 0x83, 0x19, 0xf2, 0xc1, 0xa0, 0x31, 0x89, 0xc8, 0x3e, 0x18, 0x93, 0x96, 0xcd, 0x2e, 0xd2,
- 0x83, 0xcf, 0xfc, 0x89, 0x0c, 0x08, 0x27, 0x32, 0x35, 0x7a, 0x12, 0x0e, 0x1b, 0x5e, 0x96, 0xb1,
- 0x8b, 0xfc, 0x8d, 0x6f, 0x8b, 0x1d, 0x4b, 0xef, 0x18, 0x9e, 0x41, 0xc0, 0x98, 0xd3, 0xc9, 0x7f,
- 0xde, 0x27, 0x5b, 0xee, 0xf7, 0xc9, 0x7e, 0xbe, 0x9c, 0xae, 0x47, 0xf4, 0x99, 0x8d, 0x69, 0x51,
- 0x17, 0x7d, 0x80, 0xa8, 0xa5, 0x18, 0x3c, 0x63, 0x60, 0xda, 0x86, 0x83, 0xbc, 0xf5, 0xa8, 0x17,
- 0x74, 0x41, 0xe7, 0x13, 0xc9, 0x21, 0x1c, 0xb7, 0x69, 0xec, 0xd2, 0x6b, 0xde, 0xca, 0xf8, 0x1d,
- 0x3b, 0x5c, 0x71, 0x20, 0x3d, 0xec, 0x7f, 0x0b, 0xe3, 0xee, 0x7f, 0x07, 0xd5, 0x31, 0xfb, 0x66,
- 0xf8, 0xda, 0x3c, 0x90, 0xcb, 0x7b, 0xde, 0x23, 0xba, 0xfb, 0xfd, 0x96, 0xb0, 0x8f, 0x39, 0xeb,
- 0xcf, 0xf6, 0xbc, 0xa3, 0xed, 0x7d, 0x53, 0x6a, 0x89, 0x98, 0x2f, 0x7b, 0x5c, 0xdd, 0xb2, 0xd7,
- 0x91, 0xb7, 0xc9, 0xc1, 0xd1, 0xa8, 0x87, 0x72, 0x87, 0x37, 0xcd, 0x21, 0xed, 0x9f, 0x22, 0x3d,
- 0x43, 0xf0, 0xec, 0x77, 0x3c, 0x79, 0xee, 0x66, 0x02, 0xe2, 0xda, 0x4a, 0x44, 0x39, 0xa7, 0xd3,
- 0x07, 0xf8, 0x0a, 0xe1, 0x03, 0xa3, 0x54, 0x6c, 0x89, 0xc7, 0x78, 0xd2, 0xd9, 0x54, 0xaf, 0x11,
- 0x3a, 0x36, 0x9a, 0x50, 0x6c, 0xf6, 0x80, 0xfd, 0x43, 0xf4, 0x98, 0x4e, 0xe9, 0xd0, 0x88, 0xc1,
- 0x57, 0x0b, 0x2f, 0xe8, 0xd3, 0x6a, 0x0f, 0xd9, 0xab, 0x4f, 0x27, 0x6f, 0x31, 0x47, 0xb1, 0xc4,
- 0x82, 0x27, 0x70, 0x6f, 0xad, 0x0c, 0x8a, 0x74, 0xe1, 0x17, 0xbe, 0x59, 0xb8, 0x89, 0xe0, 0xde,
- 0x88, 0x3f, 0xbe, 0x13, 0x3c, 0xa7, 0x59, 0x73, 0xe0, 0x8e, 0xf9, 0xe4, 0x53, 0x1d, 0xf3, 0xe1,
- 0x23, 0xb0, 0x08, 0xb4, 0x23, 0x5a, 0xc7, 0x8c, 0xa7, 0x93, 0x69, 0x5a, 0xd8, 0x40, 0x86, 0xb2,
- 0xc7, 0xfb, 0x85, 0x05, 0x30, 0x47, 0x8b, 0xa6, 0xe7, 0x0b, 0xe1, 0x7b, 0xa4, 0x6f, 0x1f, 0xd4,
- 0xd5, 0x3a, 0x98, 0xbb, 0x42, 0xd8, 0xa6, 0xf7, 0xd1, 0xb2, 0x95, 0x8b, 0x5b, 0x12, 0xd7, 0x3d,
- 0x68, 0x3d, 0xfd, 0x1b, 0x6c, 0xb9, 0xef, 0xb1, 0x8c, 0xe9, 0x06, 0x0b, 0x3d, 0x3c, 0x51, 0x24,
- 0x46, 0x56, 0x34, 0x49, 0x3d, 0x05, 0x8a, 0x97, 0x4d, 0x74, 0xa5, 0xda, 0x61, 0xd6, 0x2d, 0x7b,
- 0x82, 0xbf, 0x26, 0xec, 0x33, 0x19, 0x85, 0x9b, 0xf1, 0x92, 0xad, 0x16, 0x8a, 0x79, 0x4e, 0x0e,
- 0x65, 0x6b, 0x02, 0xd1, 0x80, 0x24, 0x7a, 0x67, 0x36, 0x0b, 0x33, 0x5f, 0x4e, 0xa1, 0x88, 0x71,
- 0x86, 0x33, 0x1f, 0x84, 0x2f, 0xf1, 0xac, 0x39, 0x15, 0x40, 0x58, 0xfe, 0x58, 0xfa, 0x7c, 0xb1,
- 0xc8, 0x70, 0x43, 0x8a, 0xce, 0x5e, 0xf2, 0xaf, 0x93, 0xc1, 0x4c, 0x13, 0x79, 0xcb, 0x26, 0xea,
- 0x76, 0x5c, 0xe8, 0x1c, 0xde, 0x34, 0xba, 0x0d, 0x14, 0xb7, 0x08, 0xb1, 0x61, 0x9b, 0x93, 0x2c,
- 0x1b, 0x7c, 0xad, 0x24, 0xea, 0x07, 0xc4, 0x56, 0xdf, 0x7c, 0x6e, 0xc7, 0x02, 0x93, 0xd8, 0x69,
- 0xba, 0xe4, 0x92, 0x27, 0x70, 0x8d, 0x8f, 0x0c, 0xe6, 0xc8, 0xf6, 0x3f, 0xf2, 0x4a, 0x5d, 0x73,
- 0xdb, 0x82, 0x7b, 0x63, 0x68, 0x21, 0xea, 0xed, 0xa0, 0x60, 0x60, 0x6a, 0xcc, 0xdd, 0x0d, 0x0e,
- 0xec, 0x3c, 0x49, 0x79, 0x3a, 0xcd, 0x98, 0xe2, 0xd2, 0x8c, 0x50, 0xb1, 0x7d, 0x9e, 0x27, 0x78,
- 0x69, 0xc6, 0xd0, 0xc2, 0xb3, 0x47, 0xec, 0x2b, 0x32, 0x38, 0xc9, 0x18, 0x38, 0x87, 0x1c, 0xcf,
- 0x6c, 0x1b, 0x5d, 0x8a, 0xdc, 0x8b, 0x73, 0xe3, 0x80, 0x6e, 0x15, 0xcc, 0x5f, 0x8e, 0x92, 0x65,
- 0x10, 0x9e, 0x1d, 0x08, 0x21, 0xc7, 0x80, 0xce, 0x7f, 0x98, 0xe2, 0xf2, 0x01, 0x4e, 0xaa, 0x1c,
- 0xcd, 0x09, 0x5e, 0x3e, 0x20, 0xcc, 0x44, 0xf6, 0x10, 0xbf, 0x8c, 0x05, 0xd5, 0x0c, 0xbb, 0xcf,
- 0x3f, 0x12, 0xc6, 0x76, 0x03, 0xcc, 0x12, 0x2c, 0xe9, 0x87, 0x6c, 0x19, 0x22, 0x41, 0x89, 0x83,
- 0x7e, 0x87, 0x5d, 0x97, 0x1e, 0x7c, 0xab, 0x47, 0xe9, 0xc0, 0xf3, 0x00, 0x84, 0xaf, 0xa2, 0x9d,
- 0x74, 0x2e, 0xae, 0x93, 0x96, 0xc4, 0x3a, 0xe9, 0x37, 0x09, 0x87, 0x39, 0x1c, 0xcc, 0xf6, 0xe1,
- 0xd5, 0x43, 0x2c, 0xc0, 0xdd, 0xf0, 0xd2, 0xb3, 0xd7, 0x8b, 0x57, 0x31, 0xbd, 0xa8, 0xec, 0xf5,
- 0xba, 0x66, 0x1b, 0xcf, 0xa7, 0x3e, 0x31, 0x96, 0xf9, 0x54, 0xb4, 0x3f, 0x90, 0xfb, 0xfa, 0x83,
- 0x43, 0x58, 0xd2, 0x37, 0x83, 0xe3, 0xb4, 0x88, 0x72, 0xc0, 0x56, 0x81, 0x06, 0x71, 0xeb, 0x4b,
- 0xe6, 0x23, 0x8a, 0x0b, 0x2a, 0x41, 0x20, 0x84, 0x11, 0x96, 0x3e, 0xd3, 0x19, 0xbb, 0x69, 0x15,
- 0x24, 0x8e, 0xb3, 0x09, 0x1c, 0xc9, 0xca, 0x53, 0x6b, 0x77, 0x83, 0xdc, 0x68, 0x0f, 0xbf, 0x98,
- 0x1f, 0xc7, 0x88, 0xf0, 0x0c, 0xe6, 0x69, 0x2a, 0xc7, 0x2e, 0x69, 0x84, 0x45, 0x06, 0xfd, 0x48,
- 0x0b, 0x3d, 0xe8, 0xad, 0x1e, 0xa3, 0x7e, 0xa9, 0xea, 0x2d, 0xe0, 0xf8, 0x45, 0xa3, 0x7d, 0x69,
- 0xdb, 0xb1, 0xf7, 0xc8, 0xdd, 0xdf, 0x36, 0xbb, 0x44, 0x7c, 0xf5, 0x98, 0xde, 0xff, 0x42, 0xbd,
- 0xc3, 0x37, 0x1d, 0x0a, 0xc3, 0x4c, 0x87, 0xd5, 0x63, 0xcc, 0x78, 0x50, 0x9f, 0x18, 0x74, 0x3a,
- 0xc5, 0xc4, 0x4e, 0x67, 0xf5, 0x98, 0xdf, 0xed, 0xa8, 0x15, 0x30, 0xdd, 0x31, 0x2f, 0x93, 0xad,
- 0x6a, 0x32, 0xeb, 0x1a, 0x16, 0x74, 0xa8, 0x62, 0x5e, 0xa6, 0x1b, 0xdb, 0xab, 0xc7, 0xf4, 0xe0,
- 0x4b, 0x75, 0x05, 0xcc, 0x90, 0x6d, 0x01, 0x42, 0x66, 0x3a, 0x55, 0x40, 0xa1, 0xd5, 0x63, 0x7a,
- 0xf8, 0x2d, 0xb6, 0x3e, 0xf2, 0xe4, 0xdc, 0xf5, 0xbd, 0xfe, 0x76, 0x7b, 0x2e, 0xd5, 0x76, 0x3b,
- 0x96, 0x05, 0xdd, 0x70, 0x3f, 0x05, 0x0a, 0x6d, 0x22, 0x61, 0x89, 0x49, 0x98, 0x3e, 0xaa, 0x77,
- 0x83, 0xfc, 0xae, 0xe1, 0xf8, 0x93, 0xe7, 0x9b, 0x86, 0xd3, 0x5d, 0x33, 0x9c, 0x4b, 0x18, 0x41,
- 0xfc, 0xd5, 0xd2, 0x14, 0x28, 0x10, 0xc1, 0x05, 0x7f, 0xe0, 0xdb, 0xf2, 0xd4, 0x0c, 0x29, 0xdb,
- 0x16, 0x1e, 0xf6, 0x5b, 0xb6, 0x7f, 0x38, 0xfd, 0xd7, 0x72, 0xe3, 0xb1, 0x20, 0xaf, 0x8a, 0x5c,
- 0xf5, 0x61, 0x99, 0xcf, 0xde, 0x43, 0xf7, 0xa3, 0x7d, 0xb6, 0x24, 0x3a, 0xe8, 0x95, 0x7a, 0x06,
- 0x00, 0x8f, 0x9d, 0xd4, 0x0b, 0x82, 0x98, 0x46, 0x52, 0xc2, 0xe5, 0x83, 0xc2, 0x70, 0x47, 0x95,
- 0xdf, 0x1d, 0xc1, 0x74, 0xe9, 0x17, 0x44, 0xfc, 0x0c, 0xbc, 0x6b, 0x5a, 0x91, 0x3a, 0xfb, 0x8f,
- 0x29, 0x3b, 0xa5, 0xb4, 0x46, 0xcd, 0x10, 0xf6, 0xb2, 0xef, 0x9b, 0xde, 0x92, 0xa7, 0xb7, 0x1d,
- 0xd0, 0x13, 0xd0, 0xda, 0x83, 0xa6, 0xeb, 0x99, 0xd6, 0x36, 0x3b, 0xdf, 0xfc, 0xd9, 0xb1, 0x28,
- 0xcd, 0x80, 0x01, 0x47, 0x1e, 0x38, 0xe0, 0x1c, 0x08, 0x10, 0x94, 0x1f, 0x12, 0x20, 0xa8, 0x90,
- 0x6e, 0xe5, 0xf0, 0x23, 0x51, 0xfd, 0x59, 0xe7, 0xf5, 0xe7, 0xae, 0x18, 0x80, 0x06, 0xc9, 0x65,
- 0x2c, 0xf6, 0xcd, 0xbb, 0x02, 0x4d, 0x69, 0x72, 0x9a, 0x72, 0xef, 0xe8, 0x8c, 0x64, 0xaf, 0x2d,
- 0x1f, 0xca, 0x83, 0xab, 0x42, 0x66, 0xea, 0xe8, 0x0a, 0x53, 0x94, 0x3f, 0x18, 0x8b, 0xa2, 0xa4,
- 0x77, 0x74, 0xce, 0x5a, 0x63, 0x7e, 0x4b, 0xf8, 0xdc, 0x7e, 0x3f, 0x50, 0x81, 0x6c, 0x62, 0x94,
- 0xe5, 0x14, 0x28, 0xd2, 0x1e, 0x86, 0x41, 0xc3, 0x9e, 0x52, 0x76, 0x37, 0x62, 0xa7, 0xfd, 0x45,
- 0x79, 0x9b, 0x80, 0xfe, 0xb0, 0x75, 0x8d, 0xd6, 0x9e, 0x63, 0x55, 0x2d, 0xcf, 0x86, 0x3f, 0x38,
- 0x16, 0xc5, 0x09, 0xbc, 0xe1, 0xe4, 0x51, 0xbc, 0xe1, 0x46, 0x5a, 0xe5, 0xf0, 0x6b, 0x70, 0x24,
- 0xab, 0x1c, 0x31, 0x85, 0x67, 0x8f, 0xdf, 0x3b, 0x65, 0x70, 0x8a, 0x4d, 0xb6, 0x96, 0x78, 0x0b,
- 0x11, 0x5e, 0x18, 0x07, 0x90, 0x27, 0x7d, 0x33, 0x89, 0xf9, 0xd1, 0x93, 0x07, 0x3e, 0x4a, 0x41,
- 0xe2, 0x6d, 0x96, 0xdc, 0x74, 0xb0, 0x8f, 0xc3, 0xb1, 0x20, 0x25, 0x76, 0x89, 0x65, 0x0a, 0x36,
- 0xb2, 0xc7, 0xec, 0xa5, 0x32, 0x28, 0xd2, 0x18, 0x09, 0x70, 0x23, 0x13, 0x87, 0x09, 0xfe, 0x7e,
- 0x16, 0x81, 0x1d, 0x39, 0xca, 0x4d, 0x66, 0xf1, 0x23, 0xd2, 0xec, 0xc5, 0x0d, 0x64, 0x65, 0x02,
- 0x2e, 0x84, 0x12, 0x98, 0x6d, 0x22, 0xaf, 0x6c, 0x38, 0x8e, 0x69, 0x6c, 0x8f, 0xcb, 0xe3, 0x5b,
- 0xd4, 0x7b, 0x18, 0x7e, 0x23, 0x27, 0x7a, 0x96, 0x3d, 0x58, 0x08, 0xf7, 0x59, 0x8d, 0x89, 0x02,
- 0xfe, 0x7a, 0xa1, 0xf3, 0xea, 0xc3, 0xa8, 0x4d, 0xc0, 0x63, 0x5b, 0x02, 0x53, 0x7e, 0x1c, 0x8c,
- 0xdb, 0xb8, 0xd8, 0x28, 0x3b, 0xde, 0xae, 0x7f, 0x0c, 0x86, 0xfc, 0x3f, 0x18, 0x7f, 0x01, 0xbe,
- 0x32, 0xa5, 0xa3, 0x7c, 0x72, 0x10, 0x8f, 0x74, 0x6d, 0x2c, 0x8d, 0x3b, 0xfc, 0x51, 0x85, 0xed,
- 0xf8, 0x95, 0x29, 0xb6, 0x1c, 0x59, 0x33, 0x3c, 0xf4, 0x20, 0xfc, 0x23, 0x19, 0x4c, 0x35, 0x91,
- 0x87, 0xc7, 0x5b, 0xcc, 0xfe, 0xa1, 0x35, 0x5c, 0x8d, 0xac, 0x78, 0xb0, 0xb3, 0xb5, 0xea, 0x7d,
- 0x60, 0xa6, 0xe7, 0xd8, 0x6d, 0xe4, 0xba, 0x6c, 0xf5, 0x22, 0xea, 0xa8, 0x36, 0x68, 0xf4, 0x27,
- 0xac, 0x2d, 0xae, 0xfb, 0xdf, 0xe8, 0xe1, 0xe7, 0x69, 0xcd, 0x00, 0x4a, 0x89, 0x55, 0x70, 0xd2,
- 0x66, 0x40, 0x52, 0xe1, 0xd9, 0x03, 0xfd, 0x7b, 0x32, 0x98, 0x6b, 0x22, 0x2f, 0x90, 0x62, 0x8a,
- 0x4d, 0x8e, 0x78, 0x78, 0x39, 0x28, 0xe5, 0xc3, 0x41, 0xf9, 0x4e, 0xe1, 0x4b, 0x61, 0x79, 0x69,
- 0x06, 0xc4, 0xc6, 0x82, 0xe7, 0x5b, 0x84, 0xee, 0x82, 0x15, 0xe3, 0x60, 0x02, 0xc7, 0xd7, 0x1e,
- 0x0b, 0x66, 0x08, 0x2f, 0xa4, 0xc1, 0xfe, 0x68, 0x3e, 0x6c, 0xbc, 0x5f, 0xc8, 0xa8, 0xf1, 0xde,
- 0x03, 0x0a, 0xbb, 0x86, 0x73, 0xc9, 0x3f, 0x7c, 0xfb, 0x38, 0xb1, 0xd5, 0x2f, 0x57, 0xa7, 0x5f,
- 0x0d, 0xf6, 0xd3, 0x2c, 0xa4, 0xf3, 0xd3, 0x7c, 0xbd, 0x94, 0x6a, 0x24, 0xa4, 0x73, 0x87, 0x31,
- 0x36, 0xf9, 0x14, 0xe3, 0x66, 0x42, 0xd9, 0xd9, 0x2b, 0xc7, 0x8b, 0x65, 0x30, 0x8d, 0xc7, 0x6d,
- 0x62, 0x8f, 0x9f, 0x3f, 0xbc, 0x3a, 0x0c, 0x36, 0xf4, 0x53, 0xf6, 0xc0, 0xbe, 0x44, 0xc6, 0x67,
- 0xde, 0xa7, 0xe8, 0x81, 0x93, 0x0a, 0xcf, 0x1e, 0x8f, 0x77, 0x53, 0x3c, 0x48, 0x7b, 0x80, 0x6f,
- 0x90, 0x81, 0xbc, 0x82, 0xbc, 0x49, 0x5b, 0x91, 0x6f, 0x17, 0x0e, 0x2f, 0xca, 0x09, 0x8c, 0xf0,
- 0xbc, 0xb8, 0x82, 0xc6, 0xd3, 0x80, 0xc4, 0xe2, 0x8a, 0x0a, 0x31, 0x90, 0x3d, 0x6a, 0xef, 0xa7,
- 0xa8, 0xd1, 0xcd, 0x85, 0x1f, 0x18, 0x43, 0xaf, 0x3a, 0xd9, 0x85, 0x0f, 0x5f, 0x80, 0x84, 0xc6,
- 0x51, 0xb5, 0xb7, 0x41, 0x85, 0x67, 0x8f, 0xdc, 0xcf, 0xc8, 0xe4, 0x12, 0xb3, 0xf2, 0x0e, 0x6a,
- 0x5f, 0x42, 0x9d, 0xe8, 0x45, 0xce, 0xa3, 0x42, 0x77, 0x1a, 0x4c, 0xb5, 0x29, 0x35, 0x02, 0xde,
- 0xb4, 0xee, 0x3f, 0xf2, 0x37, 0x0b, 0x25, 0xde, 0x9d, 0xc5, 0x77, 0x44, 0xf4, 0xf3, 0xb1, 0xe0,
- 0x22, 0x76, 0xe1, 0x95, 0x40, 0xf1, 0x13, 0x30, 0x5b, 0xe8, 0x2c, 0xa3, 0xda, 0xb6, 0x2d, 0xf8,
- 0xdf, 0x0f, 0x0f, 0xcb, 0xb5, 0x60, 0xc6, 0x6c, 0xdb, 0x16, 0x09, 0x01, 0xe7, 0x1f, 0x02, 0x0a,
- 0x12, 0xfc, 0xb7, 0xda, 0xae, 0xfd, 0x80, 0xc9, 0x76, 0xcd, 0xc3, 0x84, 0x51, 0x8d, 0x09, 0xcc,
- 0xfa, 0x51, 0x19, 0x13, 0x03, 0xca, 0xce, 0x1e, 0xb2, 0x4f, 0x86, 0xde, 0x6d, 0xb4, 0x2b, 0x7c,
- 0x44, 0xac, 0x02, 0x8f, 0x32, 0x9c, 0x45, 0x6b, 0x71, 0x24, 0xc3, 0x59, 0x02, 0x03, 0x13, 0xb8,
- 0x89, 0x30, 0xc4, 0x31, 0xf3, 0x35, 0xe0, 0x43, 0xa0, 0x33, 0x3e, 0xf3, 0x70, 0x44, 0x74, 0x8e,
- 0xc6, 0x44, 0xfc, 0x30, 0x0b, 0x4f, 0xcf, 0x2c, 0x1e, 0xf8, 0x3f, 0xc6, 0x01, 0xce, 0x5d, 0xa3,
- 0xf8, 0x2b, 0x50, 0x6f, 0x05, 0xf8, 0x56, 0x49, 0x34, 0x04, 0xca, 0x01, 0x09, 0x62, 0x2a, 0x63,
- 0x41, 0xf0, 0x4d, 0x42, 0xb1, 0x49, 0x44, 0xca, 0xcf, 0x1e, 0xc0, 0x17, 0xc9, 0x60, 0x81, 0xf8,
- 0x08, 0x74, 0x91, 0xe1, 0xd0, 0x8e, 0x72, 0x2c, 0x8e, 0xf2, 0xef, 0x16, 0x0e, 0xf0, 0xc3, 0xcb,
- 0x21, 0xe4, 0x63, 0x2c, 0x50, 0x88, 0x45, 0xf7, 0x11, 0x64, 0x61, 0x22, 0xdb, 0x28, 0x4a, 0xc0,
- 0x02, 0x53, 0xf1, 0xf1, 0xe0, 0x91, 0xd2, 0x23, 0x97, 0x17, 0x86, 0xdf, 0xd8, 0x26, 0xec, 0x91,
- 0x2b, 0xc2, 0x44, 0xf6, 0x98, 0xbc, 0xe1, 0x76, 0xb6, 0xe0, 0xdc, 0x32, 0x2e, 0x76, 0x11, 0x7c,
- 0x75, 0x3e, 0x38, 0xd1, 0xf6, 0x7b, 0x63, 0xf1, 0xc0, 0x3c, 0xc4, 0x65, 0x54, 0x2a, 0xc8, 0x3b,
- 0xf6, 0x15, 0xba, 0xb4, 0x35, 0xaf, 0x93, 0xff, 0x34, 0x9e, 0x65, 0x77, 0x6f, 0xd7, 0xa2, 0x27,
- 0x43, 0xe7, 0x75, 0xff, 0x51, 0xbd, 0x11, 0xcc, 0x5f, 0x31, 0xbd, 0x9d, 0x55, 0x64, 0x74, 0x90,
- 0xa3, 0xdb, 0x57, 0x88, 0xc7, 0xdc, 0xb4, 0xce, 0x27, 0xf2, 0xfe, 0x2b, 0x02, 0xf6, 0x25, 0x16,
- 0xca, 0x64, 0x8e, 0xbf, 0xa5, 0xb1, 0x3c, 0xe3, 0xb9, 0xca, 0x5e, 0x61, 0x3e, 0x20, 0x83, 0x19,
- 0xdd, 0xbe, 0xc2, 0x94, 0xe4, 0xff, 0x38, 0x5a, 0x1d, 0x49, 0x3d, 0xd1, 0x23, 0x92, 0x0b, 0xd8,
- 0x9f, 0xf8, 0x44, 0x2f, 0xb1, 0xf8, 0x89, 0x9c, 0x5c, 0x9a, 0xd3, 0xed, 0x2b, 0x4d, 0xe4, 0xd1,
- 0x16, 0x01, 0x37, 0xc7, 0xe4, 0x64, 0x6d, 0xba, 0x94, 0x20, 0x9b, 0x87, 0x07, 0xcf, 0x69, 0x77,
- 0x11, 0x02, 0x01, 0x05, 0x2c, 0x4e, 0x7a, 0x17, 0x61, 0x28, 0x07, 0x13, 0x88, 0x91, 0x22, 0x83,
- 0x59, 0xdd, 0xbe, 0x82, 0x87, 0x86, 0x65, 0xb3, 0xdb, 0x1d, 0xcf, 0x08, 0x99, 0xd6, 0xf8, 0xf7,
- 0xc5, 0xe0, 0x73, 0x31, 0x71, 0xe3, 0x7f, 0x08, 0x03, 0xd9, 0xc3, 0xf0, 0x7c, 0xda, 0x58, 0xfc,
- 0x11, 0xda, 0x1a, 0x0f, 0x0e, 0xa3, 0x36, 0x88, 0x80, 0x8d, 0x23, 0x6b, 0x10, 0x71, 0x1c, 0x4c,
- 0x64, 0xe7, 0x64, 0xa1, 0x4c, 0x86, 0xf9, 0xf1, 0xb6, 0x89, 0xf7, 0xa6, 0x73, 0x4d, 0x64, 0xc3,
- 0x2e, 0xc7, 0xc8, 0x58, 0xd0, 0x48, 0xe1, 0x82, 0x28, 0xc0, 0x43, 0xf6, 0x78, 0x7c, 0x4c, 0x06,
- 0x73, 0x94, 0x85, 0x47, 0x88, 0x15, 0x30, 0x52, 0xa3, 0x8a, 0xd6, 0xe0, 0x68, 0x1a, 0x55, 0x02,
- 0x07, 0x13, 0xb9, 0xcf, 0x1f, 0xdb, 0x71, 0x23, 0x1c, 0x1f, 0x8f, 0x43, 0x70, 0x64, 0x63, 0x6c,
- 0x8c, 0x47, 0xc8, 0x47, 0x31, 0xc6, 0x8e, 0xe8, 0x18, 0xf9, 0xf3, 0x83, 0x56, 0x34, 0x4e, 0x0c,
- 0x0e, 0xd1, 0x14, 0xc6, 0x08, 0xc3, 0x88, 0x4d, 0xe1, 0x88, 0x90, 0xf8, 0x33, 0x19, 0x00, 0xca,
- 0xc0, 0x9a, 0x7d, 0x99, 0x5c, 0xa4, 0x39, 0x86, 0xee, 0xac, 0xdf, 0xad, 0x5e, 0x1e, 0xe2, 0x56,
- 0x9f, 0x32, 0x84, 0x4b, 0xda, 0x95, 0xc0, 0x88, 0x94, 0x71, 0x25, 0x27, 0xbe, 0x12, 0x98, 0x5c,
- 0x7e, 0xf6, 0x18, 0x7f, 0x99, 0x5a, 0x73, 0xe1, 0x01, 0xd3, 0x9f, 0x1d, 0x0b, 0xca, 0x91, 0xd9,
- 0xbf, 0xcc, 0xcf, 0xfe, 0x0f, 0x81, 0xed, 0xa8, 0x36, 0xe2, 0xb0, 0x83, 0xa3, 0xd9, 0xdb, 0x88,
- 0x47, 0x77, 0x40, 0xf4, 0x07, 0xf2, 0xe0, 0x38, 0xeb, 0x44, 0xbe, 0x1d, 0x20, 0x4e, 0x79, 0x0e,
- 0x8f, 0xeb, 0x24, 0x87, 0xa0, 0x3c, 0xae, 0x05, 0xa9, 0x34, 0x4b, 0x99, 0x02, 0xec, 0x4d, 0x64,
- 0x75, 0xa3, 0xa8, 0x3d, 0xd8, 0x33, 0xac, 0x8e, 0x78, 0xb8, 0xdf, 0x21, 0xc0, 0xfb, 0x6b, 0x8d,
- 0x32, 0xbf, 0xd6, 0x38, 0x60, 0x65, 0x32, 0xf5, 0xce, 0x35, 0x11, 0x19, 0x65, 0x77, 0xe2, 0x3b,
- 0xd7, 0xf1, 0x65, 0x67, 0x8f, 0xd2, 0x7b, 0x65, 0x90, 0x6f, 0xda, 0x8e, 0x07, 0x5f, 0x90, 0xa6,
- 0x75, 0x52, 0xc9, 0x87, 0x20, 0xf9, 0xcf, 0x6a, 0x19, 0xe4, 0x71, 0xe5, 0xd8, 0x8c, 0xe1, 0xb6,
- 0xe4, 0xa3, 0xce, 0x86, 0x67, 0x10, 0xaf, 0x6e, 0x5c, 0xfe, 0x62, 0x6b, 0xbf, 0x87, 0x74, 0xf2,
- 0x71, 0xda, 0x78, 0x3a, 0x54, 0x7e, 0xcd, 0xf8, 0x03, 0x18, 0x99, 0xc5, 0xd3, 0x89, 0x2d, 0x39,
- 0x7b, 0xdc, 0x1e, 0x3e, 0xce, 0x7c, 0x5b, 0x97, 0xcd, 0x2e, 0x82, 0x2f, 0xa0, 0x2e, 0x23, 0x75,
- 0x63, 0x17, 0x89, 0x1f, 0x89, 0x49, 0x74, 0x6d, 0x25, 0xf1, 0x65, 0xe5, 0x30, 0xbe, 0x6c, 0xda,
- 0x06, 0x45, 0x0f, 0xa0, 0x53, 0x96, 0x26, 0xdd, 0xa0, 0x12, 0xca, 0x9e, 0x48, 0x9c, 0xce, 0x13,
- 0x4d, 0xe4, 0x51, 0xa3, 0xb2, 0xe1, 0x5f, 0x91, 0xf4, 0x7d, 0x63, 0x89, 0xd8, 0x19, 0x5c, 0xa8,
- 0x23, 0xf7, 0xdd, 0xc0, 0xf4, 0x81, 0x28, 0x38, 0x6b, 0x3c, 0x38, 0xdf, 0x1d, 0x2f, 0x20, 0x9e,
- 0xc9, 0xb1, 0xc0, 0xf4, 0xf6, 0x00, 0xa6, 0x75, 0x0e, 0xa6, 0xbb, 0x47, 0xe4, 0x22, 0x7b, 0xc0,
- 0x7e, 0xbc, 0x00, 0x8e, 0xd3, 0x49, 0x7f, 0xc9, 0xea, 0xb0, 0x08, 0xab, 0x6f, 0x96, 0x8e, 0x78,
- 0xb3, 0xed, 0x60, 0x08, 0x56, 0x2e, 0x96, 0x73, 0xa1, 0x2f, 0x96, 0xb3, 0xba, 0x44, 0xc3, 0xb9,
- 0xe2, 0x4e, 0x94, 0xec, 0xb4, 0x0d, 0x0b, 0x33, 0x41, 0x64, 0x4f, 0xba, 0xdc, 0xe0, 0x3b, 0xfe,
- 0x1e, 0xd1, 0x29, 0xf1, 0x7b, 0x44, 0x7f, 0x27, 0xdd, 0xba, 0x1d, 0x29, 0xba, 0x4f, 0xe0, 0x19,
- 0xdb, 0x4e, 0x29, 0x56, 0xf4, 0x04, 0xb8, 0xfb, 0xaf, 0xe1, 0x4e, 0x16, 0x46, 0x10, 0x19, 0xd1,
- 0x9d, 0x8c, 0x10, 0x38, 0x4a, 0x77, 0xb2, 0x61, 0x0c, 0x64, 0x8f, 0xe3, 0xef, 0x14, 0xd8, 0x6e,
- 0x3e, 0x69, 0x37, 0xf0, 0x4f, 0xa4, 0xcc, 0x47, 0xe9, 0x6f, 0xe6, 0x52, 0xf9, 0x3f, 0x13, 0xbe,
- 0x92, 0x87, 0xe9, 0x34, 0x1e, 0xcd, 0x49, 0xe4, 0x26, 0xb0, 0x6e, 0x24, 0x11, 0x5f, 0xf4, 0xf3,
- 0x66, 0xc7, 0xdb, 0x19, 0xd3, 0x89, 0x8e, 0x2b, 0x98, 0x16, 0x8b, 0x57, 0x4f, 0x1f, 0xe0, 0xff,
- 0xce, 0xa5, 0x0a, 0x21, 0x15, 0x88, 0x84, 0xb0, 0x15, 0x23, 0xe2, 0x14, 0x81, 0x9f, 0x12, 0xe9,
- 0x4d, 0x50, 0xa3, 0xcf, 0x99, 0x1d, 0x64, 0x3f, 0x02, 0x35, 0x9a, 0xf0, 0x35, 0x3e, 0x8d, 0x4e,
- 0x22, 0xf7, 0x5f, 0x54, 0xa3, 0x03, 0x91, 0x8c, 0x49, 0xa3, 0x13, 0xe9, 0x65, 0x2f, 0xe3, 0x57,
- 0xce, 0xb1, 0x89, 0x54, 0xcd, 0xb4, 0x2e, 0xc1, 0x7f, 0x2e, 0x02, 0xc5, 0x8f, 0x23, 0xec, 0xed,
- 0xb0, 0x58, 0x30, 0x1f, 0x12, 0xbe, 0x1b, 0x65, 0x84, 0x78, 0x2f, 0x7c, 0x38, 0xa9, 0xc2, 0x81,
- 0x70, 0x52, 0x25, 0x30, 0x6f, 0x5a, 0x1e, 0x72, 0x2c, 0xa3, 0xbb, 0xdc, 0x35, 0xb6, 0xdd, 0xd3,
- 0x53, 0x03, 0x2f, 0xaf, 0xab, 0x46, 0xf2, 0xe8, 0xfc, 0x17, 0xd1, 0x0b, 0x44, 0xa7, 0xf9, 0x0b,
- 0x44, 0x63, 0xa2, 0x5f, 0xcd, 0xc4, 0x47, 0xbf, 0x0a, 0xa2, 0x5b, 0x81, 0xe1, 0xc1, 0xb1, 0x45,
- 0x6d, 0xe3, 0x94, 0xe1, 0xfe, 0x6e, 0x13, 0x8c, 0xc2, 0x16, 0x84, 0x7e, 0x7c, 0x8d, 0x9c, 0x6a,
- 0x75, 0x0f, 0x2b, 0xc2, 0x62, 0xbf, 0x12, 0xa4, 0xb6, 0x50, 0xa3, 0x95, 0x97, 0xfb, 0x2a, 0x1f,
- 0x98, 0x3c, 0x79, 0x01, 0x93, 0x27, 0xaa, 0x54, 0x05, 0xd1, 0x3b, 0x5d, 0xc5, 0x17, 0x0b, 0x45,
- 0x6a, 0x3b, 0x81, 0xd3, 0x48, 0x05, 0x70, 0xc2, 0x8f, 0x76, 0xdb, 0xeb, 0x21, 0xc3, 0x31, 0xac,
- 0x36, 0x82, 0x9f, 0x94, 0xc6, 0x61, 0xf6, 0x2e, 0x83, 0x69, 0xb3, 0x6d, 0x5b, 0x4d, 0xf3, 0x39,
- 0xfe, 0xe5, 0x72, 0xc9, 0x41, 0xd6, 0x89, 0x44, 0xaa, 0xec, 0x0b, 0x3d, 0xf8, 0x56, 0xad, 0x82,
- 0x99, 0xb6, 0xe1, 0x74, 0x68, 0x10, 0xbe, 0x42, 0xdf, 0x45, 0x4e, 0xb1, 0x84, 0xca, 0xfe, 0x27,
- 0x7a, 0xf8, 0xb5, 0xda, 0xe0, 0x85, 0x58, 0xec, 0x8b, 0xe6, 0x11, 0x4b, 0xac, 0x12, 0x7e, 0xc4,
- 0xc9, 0x1c, 0x4b, 0xc7, 0x41, 0x5d, 0x83, 0x5e, 0x3a, 0x3e, 0x45, 0xef, 0x88, 0x0e, 0x12, 0xd2,
- 0x2e, 0x0f, 0x90, 0xa2, 0x0e, 0xa0, 0x31, 0xe9, 0xe5, 0x01, 0x21, 0x2e, 0xb2, 0xd7, 0xcc, 0x77,
- 0x15, 0xc1, 0x3c, 0xed, 0xd5, 0x98, 0x38, 0xe1, 0x8b, 0x64, 0x50, 0x6c, 0x22, 0xef, 0x7e, 0xb4,
- 0x0f, 0x9b, 0x87, 0x1f, 0x93, 0x15, 0x20, 0x5f, 0x0a, 0x02, 0x0e, 0xe2, 0xbf, 0x69, 0xf7, 0xed,
- 0x7d, 0xbe, 0x16, 0x29, 0x4f, 0x93, 0xde, 0xb7, 0x4f, 0x2e, 0x3e, 0x7b, 0x7c, 0x7e, 0x42, 0x06,
- 0x72, 0xa9, 0xd3, 0x81, 0xed, 0xc3, 0x43, 0x71, 0x3d, 0x98, 0xf5, 0xdb, 0x4c, 0x18, 0x03, 0x32,
- 0x9a, 0x94, 0x76, 0x11, 0x34, 0x90, 0x4d, 0xa9, 0x33, 0xf1, 0x5d, 0x85, 0x84, 0xb2, 0xb3, 0x07,
- 0xe5, 0x0b, 0x53, 0xac, 0xd1, 0x2c, 0xd9, 0xf6, 0x25, 0x72, 0x54, 0xe6, 0x17, 0x65, 0x50, 0x58,
- 0x46, 0x5e, 0x7b, 0x07, 0xba, 0x63, 0x69, 0x33, 0x7d, 0xf7, 0x9e, 0x0f, 0x09, 0xca, 0x99, 0x36,
- 0xfa, 0xb3, 0xcf, 0xf6, 0x22, 0x61, 0x79, 0xd2, 0xd1, 0x9f, 0x13, 0x4b, 0x9f, 0xc0, 0x21, 0xb8,
- 0x3c, 0x58, 0x08, 0x56, 0xc0, 0x28, 0x66, 0xef, 0xc8, 0x3d, 0xe2, 0xd6, 0x43, 0x87, 0xd8, 0xcd,
- 0xf0, 0x0f, 0xd2, 0x85, 0x58, 0x0b, 0x64, 0xce, 0xd7, 0x3c, 0xe3, 0x85, 0xc9, 0x14, 0xc1, 0xd7,
- 0xc4, 0x18, 0x9c, 0xc0, 0x0a, 0x80, 0x0c, 0xa6, 0x09, 0x43, 0x15, 0xf3, 0x32, 0x71, 0x3d, 0xe4,
- 0x16, 0x2a, 0x9f, 0x3b, 0x96, 0x85, 0xca, 0xbb, 0xf9, 0x85, 0x4a, 0xc1, 0x88, 0xc9, 0xfe, 0x3a,
- 0x65, 0x4a, 0x5f, 0x1c, 0xfc, 0xfd, 0xd8, 0x97, 0x29, 0x53, 0xf8, 0xe2, 0x0c, 0x29, 0x3f, 0x7b,
- 0x44, 0xdf, 0xf8, 0xdf, 0x58, 0x67, 0xed, 0x6f, 0xc8, 0xc2, 0xff, 0x79, 0x02, 0xe4, 0xcf, 0xe1,
- 0x3f, 0xff, 0x14, 0xde, 0xa8, 0xf5, 0xf2, 0x31, 0x04, 0x77, 0x78, 0x3a, 0xc8, 0x63, 0xfa, 0x6c,
- 0xda, 0x73, 0x8b, 0xd8, 0xee, 0x30, 0x66, 0x44, 0x27, 0xdf, 0xa9, 0xa7, 0x40, 0xd1, 0xb5, 0xf7,
- 0x9c, 0x36, 0x36, 0xbf, 0xb1, 0xc6, 0xb0, 0xa7, 0xb4, 0x41, 0x4d, 0x39, 0xd2, 0x8b, 0xe3, 0x73,
- 0x39, 0x8d, 0x5c, 0xb0, 0x24, 0x73, 0x17, 0x2c, 0xa5, 0xd8, 0x7f, 0x10, 0xe0, 0x2d, 0x7b, 0x8d,
- 0xf8, 0x13, 0x72, 0xd7, 0x60, 0x67, 0x5c, 0xb0, 0xc7, 0x88, 0xe5, 0xb0, 0xea, 0x90, 0xd6, 0x61,
- 0x9c, 0x17, 0x6d, 0x10, 0x47, 0x7e, 0xa2, 0x0e, 0xe3, 0x02, 0x3c, 0x4c, 0xe4, 0x94, 0x7b, 0x91,
- 0x39, 0xb9, 0x5e, 0x18, 0x27, 0xba, 0x79, 0x4e, 0xe9, 0x0f, 0x85, 0xce, 0x18, 0x9d, 0x5f, 0x47,
- 0x46, 0xe7, 0x88, 0xdc, 0x5f, 0x7f, 0x5d, 0x26, 0x91, 0x34, 0x7d, 0x23, 0x48, 0xfc, 0xa2, 0xa4,
- 0xd4, 0x10, 0xe1, 0x31, 0x98, 0x8b, 0x23, 0x3d, 0x3f, 0x7a, 0x68, 0x71, 0x5e, 0x74, 0x11, 0xfe,
- 0x27, 0x1d, 0x5a, 0x5c, 0x94, 0x91, 0xec, 0x81, 0xfc, 0x05, 0x7a, 0x31, 0x59, 0xa9, 0xed, 0x99,
- 0x97, 0xc7, 0xdc, 0xd2, 0xf8, 0xe1, 0x25, 0x65, 0x34, 0xe1, 0x03, 0x12, 0xa2, 0x1c, 0x4e, 0x3a,
- 0x9a, 0xb0, 0x18, 0x1b, 0xd9, 0xc3, 0xf4, 0x63, 0x00, 0x4b, 0x8f, 0xad, 0xed, 0xbc, 0x41, 0x06,
- 0x72, 0x13, 0x79, 0x10, 0x1d, 0x1e, 0xad, 0xb3, 0x60, 0x2e, 0xb2, 0x74, 0xe0, 0x5f, 0x78, 0xc3,
- 0xa5, 0xa5, 0x3d, 0x28, 0x1f, 0x88, 0x2c, 0xba, 0xe8, 0x32, 0xe9, 0x83, 0xf2, 0x22, 0x4c, 0x4c,
- 0xe0, 0xa0, 0x3c, 0x5b, 0xf6, 0xf9, 0x76, 0x01, 0x6a, 0x5c, 0x2b, 0x40, 0x87, 0x02, 0xea, 0x28,
- 0x96, 0x82, 0xde, 0x1e, 0x1a, 0x1b, 0x13, 0xc2, 0xea, 0x43, 0x51, 0xac, 0x1a, 0x3c, 0x56, 0x77,
- 0x8a, 0x88, 0x49, 0xcc, 0xf8, 0x10, 0x9a, 0xe0, 0xbf, 0x33, 0x80, 0x4b, 0xe7, 0xe0, 0x7a, 0xfa,
- 0xc8, 0x7c, 0x64, 0x8f, 0xd8, 0xcf, 0xd1, 0x71, 0xab, 0x49, 0xe7, 0x56, 0xe3, 0x19, 0xb7, 0xd8,
- 0xb4, 0x4d, 0xe6, 0xa6, 0x6d, 0x29, 0x0f, 0x56, 0x84, 0xfe, 0xc2, 0x3e, 0x73, 0xc3, 0x20, 0xca,
- 0x8f, 0xf9, 0x60, 0xc5, 0x50, 0x0e, 0xb2, 0x07, 0xe7, 0x6b, 0x32, 0x00, 0x2b, 0x8e, 0xbd, 0xd7,
- 0x6b, 0x38, 0x1d, 0xe4, 0xc0, 0x3f, 0x0f, 0x67, 0x6a, 0x3f, 0x39, 0x86, 0x99, 0xda, 0x3a, 0x00,
- 0xdb, 0x01, 0x71, 0xa6, 0xe1, 0xb7, 0x8b, 0xcd, 0xcb, 0x42, 0xa6, 0xf4, 0x08, 0x0d, 0xfe, 0x6e,
- 0xe1, 0x67, 0xf2, 0x18, 0x27, 0xf5, 0x59, 0x21, 0xb9, 0x71, 0xce, 0xd4, 0xde, 0x1d, 0x60, 0xdd,
- 0xe2, 0xb0, 0x7e, 0xc6, 0x21, 0x38, 0xc9, 0x1e, 0xf3, 0x7f, 0x9c, 0x02, 0xb3, 0x74, 0x5f, 0x96,
- 0xca, 0xf4, 0x6f, 0x43, 0xd0, 0x7f, 0x76, 0x0c, 0xa0, 0x6f, 0x80, 0x39, 0x3b, 0xa4, 0x4e, 0xfb,
- 0xd4, 0xe8, 0x4a, 0x59, 0x22, 0xec, 0x11, 0xbe, 0x74, 0x8e, 0x0c, 0xfc, 0x78, 0x14, 0x79, 0x9d,
- 0x47, 0xfe, 0xee, 0x04, 0x79, 0x47, 0x28, 0x8e, 0x13, 0xfa, 0xf7, 0x04, 0xd0, 0x6f, 0x70, 0xd0,
- 0x97, 0x0e, 0xc3, 0xca, 0x04, 0xee, 0x55, 0x90, 0x41, 0x9e, 0x1c, 0x83, 0x7c, 0x4b, 0x86, 0x0b,
- 0x31, 0xa7, 0xc1, 0x14, 0x69, 0xb2, 0xc1, 0x04, 0xd1, 0x7f, 0xc4, 0x6f, 0x8c, 0x2d, 0x0f, 0x39,
- 0xc1, 0x12, 0xbb, 0xff, 0x88, 0x79, 0xf0, 0xdd, 0xcf, 0xdd, 0xd3, 0x45, 0xba, 0xe3, 0x1c, 0x24,
- 0x8c, 0x3c, 0x7b, 0x8c, 0x4a, 0x7c, 0x6c, 0x07, 0x23, 0x47, 0x99, 0x3d, 0x0e, 0x61, 0x24, 0x7b,
- 0xe0, 0xbf, 0x98, 0x07, 0xa7, 0xe9, 0xf2, 0xdf, 0xb2, 0x63, 0xef, 0xf6, 0x5d, 0x63, 0x66, 0x1e,
- 0x5e, 0x17, 0x6e, 0x02, 0x0b, 0x1e, 0xe7, 0x78, 0xcf, 0x74, 0xa2, 0x2f, 0x15, 0xfe, 0x6e, 0xd4,
- 0x79, 0xe6, 0x59, 0x3c, 0x92, 0x4b, 0x09, 0x02, 0x8c, 0xe3, 0x3d, 0xf5, 0x8e, 0x8a, 0x20, 0xa3,
- 0x91, 0xd5, 0x44, 0x79, 0xa4, 0xc5, 0xe5, 0x40, 0xa7, 0x0a, 0x22, 0x3a, 0xf5, 0xc1, 0x40, 0xa7,
- 0xbe, 0x97, 0xd3, 0xa9, 0x95, 0xc3, 0x8b, 0x64, 0x02, 0x4b, 0x4c, 0x0b, 0xa0, 0xb8, 0x6c, 0x76,
- 0x3d, 0xe4, 0xc0, 0x2f, 0xb3, 0x79, 0xd4, 0xab, 0x33, 0xec, 0x5e, 0x2a, 0xa0, 0xb8, 0x45, 0x4a,
- 0x63, 0x06, 0xd9, 0xad, 0x62, 0xd8, 0x50, 0x0e, 0x75, 0xf6, 0x6d, 0xda, 0x20, 0x7f, 0x7d, 0x64,
- 0xc6, 0x36, 0x01, 0x4b, 0x11, 0xe4, 0x6f, 0x38, 0x0b, 0x13, 0xb9, 0xdf, 0xaa, 0xa8, 0xa3, 0x5d,
- 0x3c, 0x82, 0x5c, 0xca, 0x0e, 0x61, 0x05, 0xc8, 0x66, 0xc7, 0x25, 0x4d, 0x6f, 0x46, 0xc7, 0x7f,
- 0xd3, 0xba, 0x1c, 0xf5, 0x8b, 0x8a, 0xb2, 0x3c, 0x69, 0x97, 0x23, 0x21, 0x2e, 0xb2, 0xc7, 0xec,
- 0x9b, 0xc4, 0xdf, 0xb4, 0xd7, 0x35, 0xda, 0x08, 0x73, 0x9f, 0x19, 0x6a, 0x0b, 0x40, 0x32, 0xfd,
- 0x11, 0x5f, 0x32, 0xa3, 0xed, 0xb4, 0x70, 0x88, 0x76, 0x3a, 0xea, 0x6a, 0x64, 0x20, 0x73, 0x52,
- 0xf1, 0x23, 0x5b, 0x8d, 0x4c, 0x64, 0x63, 0x02, 0xb7, 0x97, 0xfa, 0xe7, 0x71, 0x27, 0xda, 0x5a,
- 0x47, 0xdd, 0xab, 0x61, 0xc2, 0x1a, 0xdb, 0xd9, 0xdb, 0x51, 0xf6, 0x6a, 0xe2, 0x79, 0x98, 0x00,
- 0x5a, 0x0b, 0x0c, 0xad, 0xcf, 0xb3, 0x61, 0x34, 0xe3, 0xed, 0x52, 0xd7, 0x76, 0xbc, 0x74, 0xdb,
- 0xa5, 0x98, 0x3b, 0x9d, 0x7c, 0x97, 0xf6, 0xfc, 0x16, 0x7f, 0x3c, 0x7b, 0x5c, 0xc3, 0x67, 0x8a,
- 0xf3, 0x5b, 0xc3, 0x18, 0xc8, 0x1e, 0xde, 0xb7, 0x1e, 0xd1, 0xe0, 0x39, 0x6a, 0x73, 0x64, 0x6d,
- 0x60, 0x6c, 0x43, 0xe7, 0x28, 0xcd, 0x31, 0x9e, 0x87, 0xec, 0xf1, 0xfa, 0x87, 0xc8, 0xc0, 0xf9,
- 0xa6, 0x09, 0x0e, 0x9c, 0x7e, 0xcb, 0x2c, 0x8c, 0xd8, 0x32, 0x47, 0xdd, 0x5d, 0x60, 0xb2, 0x1e,
- 0xdf, 0x80, 0x39, 0xca, 0xee, 0x42, 0x02, 0x13, 0xd9, 0x23, 0xfe, 0x66, 0x19, 0x14, 0x9a, 0x93,
- 0x1f, 0x2f, 0x47, 0x9d, 0x8b, 0x10, 0x59, 0x35, 0xc7, 0x36, 0x5c, 0x8e, 0x32, 0x17, 0x89, 0x65,
- 0x61, 0x02, 0xf1, 0xfb, 0x8f, 0x83, 0x39, 0x32, 0xe1, 0xf6, 0x77, 0x5b, 0xff, 0x81, 0x8d, 0x9a,
- 0xaf, 0xcf, 0xb0, 0xad, 0xde, 0x07, 0xa6, 0xfd, 0xdd, 0x21, 0x36, 0x72, 0x2e, 0x8a, 0xb5, 0x4f,
- 0x9f, 0x4b, 0x3d, 0xf8, 0xfe, 0x50, 0x3e, 0x11, 0x63, 0xdf, 0x09, 0x1c, 0xd5, 0x27, 0xe2, 0x48,
- 0x77, 0x03, 0x7f, 0x27, 0x1c, 0x51, 0xff, 0x7b, 0x76, 0x98, 0xf7, 0xef, 0x12, 0xe6, 0x07, 0xec,
- 0x12, 0x7e, 0x32, 0x8a, 0x65, 0x93, 0xc7, 0xf2, 0x1e, 0x51, 0x11, 0x8e, 0x71, 0xac, 0x7d, 0x6f,
- 0x00, 0xe7, 0x39, 0x0e, 0xce, 0xa5, 0x43, 0xf1, 0x32, 0x81, 0xf3, 0x93, 0xf9, 0x70, 0xcc, 0xfd,
- 0x54, 0x86, 0xed, 0xb8, 0xef, 0x70, 0x46, 0xfe, 0xc0, 0xe1, 0x0c, 0xae, 0xa5, 0x17, 0x0e, 0xd9,
- 0xd2, 0x3f, 0x15, 0xd5, 0x8e, 0x16, 0xaf, 0x1d, 0x4f, 0x17, 0x47, 0x64, 0x7c, 0x23, 0xf3, 0xfb,
- 0x02, 0xf5, 0x38, 0xcf, 0xa9, 0x47, 0xf9, 0x70, 0xcc, 0x64, 0xaf, 0x1f, 0xbf, 0xe1, 0x4f, 0x68,
- 0x8f, 0xb8, 0xbd, 0x8f, 0xba, 0x11, 0xc9, 0x09, 0x71, 0x6c, 0x23, 0xf7, 0x28, 0x1b, 0x91, 0xc3,
- 0x38, 0x99, 0x40, 0x48, 0xb7, 0x79, 0x30, 0x4b, 0x78, 0x3a, 0x6f, 0x76, 0xb6, 0x91, 0x07, 0x5f,
- 0x43, 0x5d, 0x15, 0xfd, 0x00, 0x9a, 0x63, 0x8a, 0x72, 0x14, 0x77, 0x6c, 0x36, 0xad, 0xbf, 0x00,
- 0x65, 0x72, 0x31, 0xc2, 0xe0, 0xa4, 0x03, 0x31, 0x0e, 0xe5, 0x20, 0x7b, 0xc8, 0x3e, 0x4e, 0x9d,
- 0x39, 0x6a, 0xc6, 0xbe, 0xbd, 0xe7, 0xc1, 0x87, 0xc6, 0xd0, 0x41, 0x2f, 0x81, 0x62, 0x97, 0x50,
- 0x63, 0xa7, 0x33, 0x92, 0xa7, 0x3b, 0x4c, 0x04, 0xb4, 0x7c, 0x9d, 0x7d, 0x99, 0xf6, 0x88, 0x46,
- 0x28, 0x47, 0x4a, 0x67, 0xd2, 0x47, 0x34, 0x86, 0x94, 0x3f, 0x91, 0xab, 0x7a, 0xa6, 0x71, 0xe9,
- 0xe6, 0xae, 0xe9, 0x8d, 0x29, 0x10, 0x44, 0x17, 0xd3, 0xf2, 0x03, 0x41, 0x90, 0x87, 0xb4, 0x07,
- 0x4f, 0x23, 0x52, 0xc1, 0x9f, 0x4f, 0xfa, 0xe0, 0x69, 0x72, 0xf1, 0xd9, 0x63, 0xf2, 0xd3, 0xb4,
- 0x65, 0x9d, 0xa3, 0x3e, 0xb8, 0x19, 0xba, 0xf7, 0x8e, 0xdc, 0x58, 0x28, 0x6b, 0x47, 0xd7, 0x58,
- 0x06, 0x96, 0x9f, 0x3d, 0x30, 0xbf, 0xf8, 0x9d, 0xa0, 0x50, 0x41, 0x17, 0xf7, 0xb6, 0xe1, 0xdd,
- 0x60, 0xba, 0xe5, 0x20, 0x54, 0xb5, 0xb6, 0x6c, 0x2c, 0x5d, 0x0f, 0xff, 0xf7, 0x21, 0x61, 0x4f,
- 0x18, 0x8f, 0x1d, 0x64, 0x74, 0xc2, 0x63, 0x68, 0xfe, 0x23, 0x7c, 0xb9, 0x04, 0xf2, 0x4d, 0xcf,
- 0xf0, 0xe0, 0x4c, 0x80, 0x2d, 0x7c, 0x28, 0x8a, 0xc5, 0xdd, 0x3c, 0x16, 0x37, 0x71, 0xb2, 0x20,
- 0x1c, 0x2c, 0xe2, 0xef, 0x63, 0x00, 0x80, 0x60, 0xfa, 0x01, 0xd7, 0xb6, 0x70, 0x0e, 0xff, 0xa4,
- 0xa4, 0xff, 0x0c, 0x5f, 0x15, 0x88, 0xfb, 0x5e, 0x4e, 0xdc, 0x8f, 0x17, 0x2b, 0x62, 0x02, 0x2b,
- 0x6d, 0x12, 0x98, 0xc1, 0xa2, 0x5d, 0x45, 0x46, 0xc7, 0x85, 0xdf, 0x11, 0x2a, 0x7f, 0x8c, 0x98,
- 0xe1, 0x87, 0x85, 0x63, 0x7a, 0xd2, 0x5a, 0x05, 0xc4, 0xe3, 0xfd, 0x05, 0xfc, 0x98, 0x26, 0x12,
- 0x1f, 0xd3, 0xe4, 0x36, 0x90, 0x37, 0xad, 0x2d, 0x9b, 0x79, 0xaf, 0x3d, 0x3a, 0x86, 0x36, 0xd6,
- 0x09, 0x9d, 0x64, 0x14, 0x0c, 0xf8, 0x99, 0xcc, 0xd6, 0x44, 0xee, 0xce, 0xcb, 0xe3, 0xd2, 0xe1,
- 0xff, 0x7f, 0xa8, 0xb0, 0x55, 0x15, 0xe4, 0x7b, 0x86, 0xb7, 0xc3, 0x8a, 0x26, 0xff, 0xb1, 0x8d,
- 0xbc, 0x67, 0x19, 0x96, 0x6d, 0xed, 0xef, 0x9a, 0xcf, 0x09, 0xae, 0xe8, 0xe5, 0xd2, 0x30, 0xe7,
- 0xdb, 0xc8, 0x42, 0x8e, 0xe1, 0xa1, 0xe6, 0xe5, 0x6d, 0x32, 0xc7, 0x9a, 0xd6, 0xa3, 0x49, 0xa9,
- 0xf5, 0x1f, 0x73, 0x1c, 0xaf, 0xff, 0x5b, 0x66, 0x17, 0x91, 0x80, 0x4f, 0x4c, 0xff, 0xfd, 0xe7,
- 0x54, 0xfa, 0x3f, 0xa0, 0x88, 0xec, 0xd1, 0xf8, 0x37, 0x09, 0xcc, 0x35, 0xb1, 0xc2, 0x35, 0xf7,
- 0x76, 0x77, 0x0d, 0x67, 0x1f, 0xde, 0x10, 0xa2, 0x12, 0x51, 0xcd, 0x1c, 0xa7, 0x9a, 0xf0, 0xd7,
- 0x85, 0x6f, 0xa7, 0x66, 0x4d, 0x3b, 0x52, 0x42, 0xea, 0x76, 0xf0, 0x44, 0x50, 0xc0, 0xea, 0xed,
- 0xfb, 0xf3, 0x25, 0x36, 0x04, 0x9a, 0x53, 0x30, 0x30, 0xd6, 0x50, 0xde, 0x26, 0x10, 0x94, 0x43,
- 0x02, 0xc7, 0x9b, 0x9e, 0xd1, 0xbe, 0xb4, 0x62, 0x3b, 0xf6, 0x9e, 0x67, 0x5a, 0xc8, 0x85, 0x8f,
- 0x09, 0x11, 0xf0, 0xf5, 0x3f, 0x17, 0xea, 0x3f, 0xfc, 0x8f, 0x9c, 0xe8, 0x28, 0x1a, 0x74, 0xab,
- 0x51, 0xf2, 0x31, 0x71, 0xae, 0xc4, 0xc6, 0x45, 0x11, 0x8a, 0xd9, 0x0b, 0xed, 0x4d, 0x32, 0x50,
- 0xb4, 0x07, 0x7b, 0xb6, 0xe3, 0xd5, 0xec, 0xb6, 0xd1, 0x75, 0x3d, 0xdb, 0x41, 0xb0, 0x91, 0x28,
- 0x35, 0xdc, 0xc3, 0x74, 0xec, 0x76, 0x38, 0x38, 0xb2, 0xa7, 0xa8, 0xda, 0xc9, 0xbc, 0x8e, 0x7f,
- 0x5c, 0x78, 0x97, 0x91, 0x4a, 0xa5, 0x9f, 0xa3, 0x18, 0x3d, 0x1f, 0xd4, 0xa5, 0xa5, 0x73, 0xc5,
- 0x17, 0xdb, 0x79, 0x14, 0x62, 0x6a, 0x02, 0x4b, 0xe5, 0x12, 0x98, 0x6f, 0xee, 0x5d, 0x0c, 0x88,
- 0xb8, 0x51, 0x23, 0xe4, 0xb5, 0xc2, 0xc1, 0x2c, 0x98, 0xe2, 0x45, 0x09, 0xc5, 0xc8, 0xf7, 0x46,
- 0x30, 0xef, 0x46, 0xb3, 0x31, 0xbc, 0xf9, 0x44, 0xc1, 0x20, 0x16, 0xc3, 0x4b, 0xcd, 0x5e, 0x80,
- 0xef, 0x93, 0xc0, 0x7c, 0xa3, 0x87, 0x2c, 0xd4, 0xa1, 0x3e, 0x76, 0x9c, 0x00, 0x5f, 0x9e, 0x52,
- 0x80, 0x1c, 0xa1, 0x18, 0x01, 0x86, 0xfe, 0xb0, 0x15, 0x5f, 0x78, 0x61, 0x42, 0x2a, 0xc1, 0x25,
- 0x95, 0x96, 0xbd, 0xe0, 0xbe, 0x24, 0x81, 0x59, 0x7d, 0xcf, 0x5a, 0x77, 0x6c, 0x3c, 0x1a, 0x3b,
- 0xf0, 0x9e, 0xb0, 0x83, 0xb8, 0x15, 0x9c, 0xe8, 0xec, 0x39, 0x64, 0xfd, 0xa9, 0x6a, 0x35, 0x51,
- 0xdb, 0xb6, 0x3a, 0x2e, 0xa9, 0x47, 0x41, 0x3f, 0xf8, 0xe2, 0xae, 0xfc, 0x0b, 0xfe, 0x5a, 0xce,
- 0xc1, 0x17, 0x09, 0x47, 0xcc, 0xa1, 0x95, 0x8f, 0x14, 0x2d, 0xde, 0x13, 0x08, 0xc6, 0xc5, 0x19,
- 0x56, 0x42, 0xf6, 0xc2, 0xfd, 0xbc, 0x04, 0xd4, 0x52, 0xbb, 0x6d, 0xef, 0x59, 0x5e, 0x13, 0x75,
- 0x51, 0xdb, 0x6b, 0x39, 0x46, 0x1b, 0x45, 0xed, 0x67, 0x05, 0xc8, 0x1d, 0xd3, 0x61, 0x7d, 0x30,
- 0xfe, 0xcb, 0xe4, 0xf8, 0x72, 0xe1, 0x1d, 0x47, 0x5a, 0xcb, 0x83, 0xa5, 0xa4, 0x10, 0xa7, 0xd8,
- 0xbe, 0xa2, 0x60, 0x41, 0xd9, 0x4b, 0xf5, 0x53, 0x12, 0x98, 0xf1, 0x7b, 0xec, 0x6d, 0x11, 0x61,
- 0xfe, 0x74, 0xca, 0xc9, 0x48, 0x40, 0x3c, 0x85, 0x0c, 0xdf, 0x95, 0x62, 0x56, 0x11, 0x47, 0x3f,
- 0x9d, 0xe8, 0x4a, 0xe9, 0x45, 0x87, 0x1f, 0xeb, 0x8d, 0xcd, 0xe5, 0x46, 0xad, 0xa2, 0xe9, 0x8a,
- 0x0c, 0xbf, 0x2c, 0x81, 0xfc, 0xba, 0x69, 0x6d, 0x47, 0x03, 0x9b, 0x9d, 0xc4, 0x76, 0x64, 0x07,
- 0x3d, 0xc8, 0x5a, 0x3a, 0x7d, 0x50, 0xef, 0x00, 0x27, 0xad, 0xbd, 0xdd, 0x8b, 0xc8, 0x69, 0x6c,
- 0x91, 0x51, 0xd6, 0x6d, 0xd9, 0x4d, 0x64, 0x51, 0x23, 0xb4, 0xa0, 0x0f, 0x7c, 0xc7, 0x9b, 0x60,
- 0x02, 0x93, 0x07, 0xcc, 0x49, 0x8c, 0xc4, 0x03, 0xa6, 0xa4, 0x08, 0x53, 0xa9, 0xa6, 0x0d, 0x03,
- 0x88, 0x67, 0xaf, 0xa9, 0xbf, 0x59, 0x00, 0x57, 0x97, 0xac, 0x7d, 0x62, 0x53, 0xd0, 0x0e, 0xbe,
- 0xbc, 0x63, 0x58, 0xdb, 0x88, 0x0c, 0x10, 0x81, 0xc4, 0xa3, 0x91, 0xfe, 0x73, 0x7c, 0xa4, 0x7f,
- 0x55, 0x07, 0x53, 0xb6, 0xd3, 0x41, 0xce, 0xd2, 0x3e, 0xe1, 0xa9, 0x7f, 0xd9, 0x99, 0xb5, 0xc9,
- 0x41, 0x45, 0x2c, 0x32, 0xf2, 0x8b, 0x0d, 0xfa, 0xbd, 0xee, 0x13, 0x3a, 0x7b, 0x2b, 0x98, 0x62,
- 0x69, 0xea, 0x1c, 0x98, 0x6e, 0xe8, 0x15, 0x4d, 0xdf, 0xac, 0x56, 0x94, 0x63, 0xea, 0x55, 0xe0,
- 0x78, 0xb5, 0xa5, 0xe9, 0xa5, 0x56, 0xb5, 0x51, 0xdf, 0x24, 0xe9, 0x4a, 0x0e, 0x3e, 0x3f, 0x2f,
- 0xea, 0xd9, 0x9b, 0xcc, 0xcc, 0x20, 0x58, 0x75, 0x30, 0xd5, 0xa6, 0x19, 0xc8, 0x10, 0x3a, 0x9b,
- 0xaa, 0x76, 0x8c, 0x20, 0x4d, 0xd0, 0x7d, 0x42, 0xea, 0x19, 0x00, 0xae, 0x38, 0xb6, 0xb5, 0x1d,
- 0x9e, 0x69, 0x9b, 0xd6, 0x23, 0x29, 0xf0, 0xa1, 0x1c, 0x28, 0xd2, 0x6f, 0xc8, 0xcd, 0x26, 0xe4,
- 0x5f, 0x28, 0x78, 0xff, 0x19, 0x5b, 0xbc, 0x44, 0x5e, 0xe1, 0x44, 0x8b, 0x3d, 0x62, 0x5d, 0xa4,
- 0x32, 0xa0, 0x96, 0x30, 0xab, 0xca, 0x6d, 0xa0, 0x48, 0xbf, 0x65, 0x5e, 0x07, 0xf1, 0x51, 0x4a,
- 0x69, 0x36, 0x41, 0x3f, 0x65, 0x71, 0x99, 0x66, 0xaf, 0xcd, 0x1f, 0x91, 0xc0, 0x74, 0x1d, 0x79,
- 0xe5, 0x1d, 0xd4, 0xbe, 0x04, 0x1f, 0xc7, 0x2f, 0x80, 0x76, 0x4d, 0x64, 0x79, 0x17, 0x76, 0xbb,
- 0xc1, 0x02, 0xa8, 0x9f, 0x00, 0x5f, 0x18, 0xed, 0x7c, 0x9f, 0xc1, 0xeb, 0xcf, 0x2d, 0x03, 0xea,
- 0xea, 0x97, 0x10, 0xa3, 0x32, 0xa7, 0x40, 0xd1, 0x41, 0xee, 0x5e, 0xd7, 0x5f, 0x44, 0x63, 0x4f,
- 0xf0, 0xe1, 0x40, 0x9c, 0x65, 0x4e, 0x9c, 0xb7, 0x89, 0x17, 0x31, 0x81, 0xb0, 0xa7, 0x79, 0x30,
- 0x55, 0xb5, 0x4c, 0xcf, 0x34, 0xba, 0xf0, 0x45, 0x79, 0x30, 0xdf, 0x44, 0xde, 0xba, 0xe1, 0x18,
- 0xbb, 0xc8, 0x43, 0x8e, 0x0b, 0xbf, 0xc1, 0xf7, 0x09, 0xbd, 0xae, 0xe1, 0x6d, 0xd9, 0xce, 0xae,
- 0xaf, 0x9a, 0xfe, 0x33, 0x56, 0xcd, 0xcb, 0xc8, 0x71, 0x43, 0xbe, 0xfc, 0x47, 0xfc, 0xe6, 0x8a,
- 0xed, 0x5c, 0xc2, 0x83, 0x20, 0x9b, 0xa6, 0xb1, 0x47, 0x4c, 0xaf, 0x6b, 0x6f, 0xd7, 0xd0, 0x65,
- 0xe4, 0x47, 0x55, 0x0b, 0x9e, 0xf1, 0x5c, 0xa0, 0x63, 0xd7, 0x6d, 0x0f, 0x77, 0xda, 0x35, 0x7b,
- 0x9b, 0x86, 0x9d, 0x9d, 0xd6, 0xf9, 0xc4, 0x30, 0x97, 0x71, 0x19, 0x91, 0x5c, 0xc5, 0x68, 0x2e,
- 0x96, 0xa8, 0x2e, 0x02, 0x35, 0xf8, 0xac, 0x85, 0xba, 0x68, 0x17, 0x79, 0xce, 0x3e, 0xb9, 0x5d,
- 0x62, 0x5a, 0x1f, 0xf0, 0x86, 0x0d, 0xd0, 0xe2, 0x93, 0x75, 0x26, 0xbd, 0x45, 0x4e, 0x72, 0x87,
- 0x9a, 0xac, 0x8b, 0x50, 0x9c, 0xc8, 0xed, 0x59, 0x32, 0xb6, 0x66, 0x5e, 0x21, 0x83, 0x3c, 0x19,
- 0x3c, 0xdf, 0x9c, 0xe3, 0x56, 0x98, 0x76, 0x91, 0xeb, 0x1a, 0xdb, 0xc8, 0x5f, 0x61, 0x62, 0x8f,
- 0xea, 0x9d, 0xa0, 0xd0, 0x25, 0x98, 0xd2, 0xc1, 0xe1, 0x06, 0xae, 0x66, 0xd8, 0xc0, 0xc0, 0xb4,
- 0x82, 0x91, 0x80, 0xc0, 0xad, 0xd3, 0x2f, 0xce, 0xde, 0x07, 0x0a, 0x14, 0xfe, 0x19, 0x50, 0xa8,
- 0x68, 0x4b, 0x1b, 0x2b, 0xca, 0x31, 0xfc, 0xd7, 0xe7, 0x6f, 0x06, 0x14, 0x96, 0x4b, 0xad, 0x52,
- 0x4d, 0x91, 0x70, 0x3d, 0xaa, 0xf5, 0xe5, 0x86, 0x22, 0xe3, 0xc4, 0xf5, 0x52, 0xbd, 0x5a, 0x56,
- 0xf2, 0xea, 0x2c, 0x98, 0x3a, 0x5f, 0xd2, 0xeb, 0xd5, 0xfa, 0x8a, 0x52, 0x80, 0x7f, 0x15, 0xc5,
- 0xef, 0x2e, 0x1e, 0xbf, 0x1b, 0xe3, 0x78, 0x1a, 0x04, 0xd9, 0xcf, 0x07, 0x90, 0xdd, 0xc3, 0x41,
- 0xf6, 0x9d, 0x22, 0x44, 0x26, 0xe0, 0xce, 0x54, 0x04, 0x53, 0xeb, 0x8e, 0xdd, 0x46, 0xae, 0x0b,
- 0x7f, 0x46, 0x02, 0xc5, 0xb2, 0x61, 0xb5, 0x51, 0x17, 0x5e, 0x13, 0x42, 0x45, 0x5d, 0x45, 0x73,
- 0xbe, 0xab, 0x28, 0xfc, 0x5a, 0x4e, 0xb4, 0xf7, 0x63, 0x74, 0x17, 0x29, 0xcd, 0x18, 0xf9, 0x88,
- 0xf5, 0x72, 0x89, 0xa4, 0x26, 0x70, 0xc3, 0x8e, 0x04, 0x66, 0xd8, 0x6a, 0xc0, 0x45, 0x14, 0x9d,
- 0x87, 0x7f, 0x23, 0x27, 0x3a, 0x39, 0xf4, 0x6b, 0x10, 0x90, 0x89, 0x91, 0x87, 0xd8, 0x44, 0x70,
- 0x18, 0xb5, 0x09, 0x6c, 0x1e, 0x4a, 0x60, 0x76, 0xc3, 0x72, 0x07, 0x09, 0x45, 0x3c, 0x1c, 0xbf,
- 0x5f, 0x8d, 0x08, 0xa1, 0x43, 0x85, 0xe3, 0x1f, 0x4e, 0x2f, 0x7b, 0xc1, 0x7c, 0x23, 0x07, 0x4e,
- 0xae, 0x20, 0x0b, 0x39, 0x66, 0x9b, 0xd6, 0xc0, 0x97, 0xc4, 0x3d, 0xbc, 0x24, 0x1e, 0xc7, 0x71,
- 0x3e, 0xe8, 0x0b, 0x5e, 0x02, 0xaf, 0x0e, 0x24, 0xf0, 0x0c, 0x4e, 0x02, 0xb7, 0x0a, 0xd2, 0x99,
- 0xc0, 0xb5, 0xea, 0x33, 0x60, 0xae, 0x6e, 0x7b, 0xe6, 0x96, 0xd9, 0xa6, 0x3e, 0x68, 0x3f, 0x27,
- 0x83, 0x7c, 0xcd, 0x74, 0x3d, 0x58, 0x0a, 0xbb, 0x93, 0xeb, 0xc1, 0xac, 0x69, 0xb5, 0xbb, 0x7b,
- 0x1d, 0xa4, 0x23, 0x83, 0xf6, 0x2b, 0xd3, 0x7a, 0x34, 0x29, 0xdc, 0xda, 0xc7, 0x6c, 0xc9, 0xfe,
- 0xd6, 0xfe, 0x6f, 0x0b, 0x2f, 0xc3, 0x44, 0x59, 0x20, 0x71, 0x29, 0x63, 0xec, 0xae, 0x12, 0x98,
- 0xb7, 0x22, 0x59, 0x7d, 0x83, 0xbd, 0xff, 0x5e, 0x82, 0x28, 0x39, 0x9d, 0xff, 0x02, 0x7e, 0x40,
- 0xa8, 0xb1, 0x0e, 0x63, 0x28, 0x1d, 0x32, 0xcb, 0x23, 0x4c, 0x92, 0x55, 0xb0, 0x50, 0xad, 0xb7,
- 0x34, 0xbd, 0x5e, 0xaa, 0xb1, 0x2c, 0x32, 0xfc, 0x37, 0x09, 0x14, 0x74, 0xd4, 0xeb, 0xee, 0x47,
- 0x03, 0x4f, 0x33, 0x47, 0xf1, 0x5c, 0xe0, 0x28, 0xae, 0x2e, 0x03, 0x60, 0xb4, 0x71, 0xc1, 0xe4,
- 0x66, 0x2e, 0x69, 0x60, 0x38, 0x53, 0xae, 0x82, 0xa5, 0x20, 0xb7, 0x1e, 0xf9, 0x12, 0xbe, 0x58,
- 0x78, 0xe7, 0x88, 0xa3, 0x46, 0x38, 0x8c, 0xe9, 0x13, 0x3e, 0x28, 0xb4, 0xd9, 0x33, 0x94, 0xdc,
- 0xd1, 0x88, 0xff, 0x2b, 0x12, 0xc8, 0xb7, 0x70, 0x6f, 0x19, 0xe9, 0x38, 0x3f, 0x3b, 0x9a, 0x8e,
- 0x63, 0x32, 0x31, 0x3a, 0x7e, 0x2f, 0x98, 0x8b, 0x6a, 0x2c, 0x73, 0x95, 0x48, 0x54, 0x71, 0xee,
- 0x83, 0x51, 0x34, 0x7c, 0x00, 0x3b, 0x47, 0x23, 0xe2, 0x4f, 0x3f, 0x1e, 0x80, 0x35, 0xb4, 0x7b,
- 0x11, 0x39, 0xee, 0x8e, 0xd9, 0x83, 0x7f, 0x23, 0x83, 0x99, 0x15, 0xe4, 0x35, 0x3d, 0xc3, 0xdb,
- 0x73, 0xfb, 0xb6, 0x3b, 0x2d, 0xbb, 0x6c, 0xb4, 0x77, 0x10, 0xeb, 0x8e, 0xfc, 0x47, 0xf8, 0x1e,
- 0x59, 0xd4, 0x9f, 0x28, 0x2c, 0x67, 0x31, 0x28, 0x23, 0x06, 0x93, 0x27, 0x80, 0x7c, 0xc7, 0xf0,
- 0x0c, 0x86, 0xc5, 0x35, 0x7d, 0x58, 0x84, 0x84, 0x74, 0x92, 0x0d, 0xbe, 0x43, 0x12, 0x71, 0x28,
- 0x12, 0x28, 0x3f, 0x1d, 0x08, 0x1f, 0xc8, 0x8d, 0x80, 0xc2, 0x09, 0x30, 0x5f, 0x6f, 0xb4, 0x36,
- 0x6b, 0x8d, 0x95, 0x15, 0x0d, 0xa7, 0x2a, 0xb2, 0x7a, 0x0a, 0xa8, 0xeb, 0xa5, 0x0b, 0x6b, 0x5a,
- 0xbd, 0xb5, 0x59, 0x6f, 0x54, 0x34, 0xf6, 0x65, 0x5e, 0x3d, 0x0e, 0x66, 0xcb, 0xa5, 0xf2, 0xaa,
- 0x9f, 0x50, 0x50, 0x4f, 0x83, 0x93, 0x6b, 0xda, 0xda, 0x92, 0xa6, 0x37, 0x57, 0xab, 0xeb, 0x9b,
- 0x98, 0xcc, 0x72, 0x63, 0xa3, 0x5e, 0x51, 0x8a, 0x2a, 0x04, 0xa7, 0x22, 0x6f, 0xce, 0xeb, 0x8d,
- 0xfa, 0xca, 0x66, 0xb3, 0x55, 0x6a, 0x69, 0xca, 0x94, 0x7a, 0x15, 0x38, 0x5e, 0x2e, 0xd5, 0x49,
- 0xf6, 0x72, 0xa3, 0x5e, 0xd7, 0xca, 0x2d, 0x65, 0x1a, 0xfe, 0x47, 0x1e, 0xcc, 0x56, 0xdd, 0xba,
- 0xb1, 0x8b, 0xce, 0x19, 0x5d, 0xb3, 0x03, 0x5f, 0x14, 0x99, 0x79, 0xdc, 0x08, 0xe6, 0x1d, 0xfa,
- 0x17, 0x75, 0x5a, 0x26, 0xa2, 0x68, 0xce, 0xeb, 0x7c, 0x22, 0x9e, 0x93, 0x5b, 0x84, 0x80, 0x3f,
- 0x27, 0xa7, 0x4f, 0xea, 0x12, 0x00, 0xf4, 0x5f, 0x2b, 0xbc, 0x23, 0xf6, 0x6c, 0x7f, 0x6b, 0x32,
- 0x76, 0x91, 0x8b, 0x9c, 0xcb, 0x66, 0x1b, 0xf9, 0x39, 0xf5, 0xc8, 0x57, 0xf0, 0xcf, 0x64, 0xd1,
- 0xfd, 0xc5, 0x08, 0xa8, 0x91, 0xea, 0xc4, 0xf4, 0x86, 0x3f, 0x22, 0x8b, 0xec, 0x0e, 0x0a, 0x91,
- 0x4c, 0xa7, 0x29, 0x2f, 0x95, 0x46, 0x5b, 0xb6, 0x6d, 0x35, 0x1a, 0x9b, 0xcd, 0xd5, 0x86, 0xde,
- 0x52, 0x64, 0x75, 0x0e, 0x4c, 0xe3, 0xc7, 0x5a, 0xa3, 0xbe, 0xa2, 0xe4, 0xd5, 0xab, 0xc1, 0x89,
- 0xd5, 0x52, 0x73, 0xb3, 0x5a, 0x3f, 0x57, 0xaa, 0x55, 0x2b, 0x9b, 0xe5, 0xd5, 0x92, 0xde, 0x54,
- 0x0a, 0xea, 0x35, 0xe0, 0xea, 0x56, 0x55, 0xd3, 0x37, 0x97, 0xb5, 0x52, 0x6b, 0x43, 0xd7, 0x9a,
- 0x9b, 0xf5, 0xc6, 0x66, 0xbd, 0xb4, 0xa6, 0x29, 0x45, 0xdc, 0xfc, 0xc9, 0xab, 0x50, 0x6d, 0xa6,
- 0x0e, 0x2a, 0xe3, 0x74, 0x8c, 0x32, 0xce, 0xf4, 0x2b, 0x23, 0x88, 0xaa, 0x95, 0xae, 0x35, 0x35,
- 0xfd, 0x9c, 0xa6, 0xcc, 0x0e, 0xd2, 0xb5, 0x39, 0xf5, 0x24, 0x50, 0x30, 0x0f, 0x9b, 0xd5, 0xa6,
- 0x9f, 0xb3, 0xa2, 0xcc, 0xc3, 0x4f, 0x15, 0xc1, 0x29, 0x1d, 0x6d, 0x9b, 0xae, 0x87, 0x9c, 0x75,
- 0x63, 0x7f, 0x17, 0x59, 0x9e, 0xdf, 0xc9, 0xff, 0x4b, 0x6a, 0x65, 0x5c, 0x03, 0xf3, 0x3d, 0x4a,
- 0x63, 0x0d, 0x79, 0x3b, 0x76, 0x87, 0x8d, 0xc2, 0x8f, 0x8b, 0xed, 0x39, 0x16, 0xd7, 0xa3, 0xd9,
- 0x75, 0xfe, 0xeb, 0x88, 0x6e, 0xcb, 0x09, 0xba, 0x9d, 0x1f, 0x45, 0xb7, 0xd5, 0x6b, 0xc1, 0xcc,
- 0x9e, 0x8b, 0x1c, 0x6d, 0xd7, 0x30, 0xbb, 0xfe, 0x1d, 0x9f, 0x41, 0x02, 0x7c, 0x67, 0x5e, 0xf4,
- 0xc4, 0x4a, 0xa4, 0x2e, 0x83, 0xc5, 0x18, 0xd3, 0xb7, 0x9e, 0x01, 0x80, 0x55, 0x76, 0xc3, 0xe9,
- 0x32, 0x65, 0x8d, 0xa4, 0x60, 0xfe, 0x2e, 0x9a, 0xdd, 0xae, 0x69, 0x6d, 0x07, 0xfb, 0xfe, 0x61,
- 0x02, 0x7c, 0xa9, 0x2c, 0x72, 0x82, 0x25, 0x2d, 0x6f, 0xe9, 0x5a, 0xd3, 0x8b, 0xa5, 0x09, 0xf7,
- 0xbb, 0x07, 0x9b, 0x4e, 0x51, 0x55, 0xc0, 0x1c, 0x49, 0x63, 0x2d, 0x50, 0x99, 0xc2, 0x7d, 0xb0,
- 0x4f, 0x6e, 0x4d, 0x6b, 0xad, 0x36, 0x2a, 0xc1, 0xbb, 0x69, 0x4c, 0x12, 0x33, 0x53, 0xaa, 0x5f,
- 0x20, 0xad, 0x71, 0x46, 0x7d, 0x0c, 0xb8, 0x26, 0xd2, 0x61, 0x97, 0x6a, 0xba, 0x56, 0xaa, 0x5c,
- 0xd8, 0xd4, 0x9e, 0x55, 0x6d, 0xb6, 0x9a, 0x7c, 0xe3, 0xf2, 0xdb, 0xd1, 0x2c, 0xe6, 0x57, 0x5b,
- 0x2b, 0x55, 0x6b, 0xac, 0x7f, 0x5f, 0x6e, 0xe8, 0x6b, 0xa5, 0x96, 0x32, 0x07, 0x5f, 0x21, 0x03,
- 0x65, 0x05, 0x79, 0xeb, 0xb6, 0xe3, 0x19, 0xdd, 0x9a, 0x69, 0x5d, 0xda, 0x70, 0xba, 0xdc, 0x64,
- 0x53, 0x38, 0x4c, 0x07, 0x3f, 0x44, 0x72, 0x04, 0xe3, 0x77, 0xc4, 0x7b, 0x24, 0x5b, 0xa8, 0x4c,
- 0x61, 0x02, 0x7c, 0xae, 0x24, 0xb2, 0xdc, 0x2d, 0x5e, 0x6a, 0x3a, 0x3d, 0x79, 0xde, 0xa4, 0xc7,
- 0xe7, 0x01, 0xa8, 0x15, 0xe1, 0x0b, 0xf2, 0x60, 0x7a, 0xd9, 0xb4, 0x8c, 0xae, 0xf9, 0x1c, 0x2e,
- 0x3a, 0x66, 0xd8, 0xc7, 0xe4, 0x12, 0xfa, 0x18, 0x69, 0xa4, 0xf1, 0xf3, 0xa7, 0x64, 0xd1, 0xe5,
- 0x85, 0x88, 0xec, 0x7d, 0x26, 0x63, 0x06, 0xcf, 0x8f, 0x4a, 0x22, 0xcb, 0x0b, 0xc3, 0xe9, 0xa5,
- 0xc3, 0xf0, 0x33, 0xdf, 0x1e, 0x36, 0x56, 0x5f, 0xfb, 0x9e, 0x1e, 0xa4, 0x0a, 0x33, 0xf0, 0xf7,
- 0x65, 0x00, 0x57, 0x90, 0x77, 0x0e, 0x39, 0xc1, 0x54, 0x80, 0xf4, 0xfa, 0xcc, 0xde, 0x8e, 0x34,
- 0xd9, 0x37, 0x47, 0x01, 0x3c, 0xcf, 0x03, 0x58, 0x4a, 0x68, 0x3c, 0x31, 0xa4, 0x63, 0x1a, 0x6f,
- 0x15, 0x14, 0x5d, 0xf2, 0x9e, 0xa9, 0xd9, 0x13, 0xe3, 0x87, 0x4b, 0x42, 0x2c, 0x4a, 0x9d, 0x12,
- 0xd6, 0x19, 0x01, 0xf8, 0xcd, 0x60, 0x12, 0xf4, 0x3d, 0x9c, 0x76, 0x2c, 0x1f, 0x9a, 0xd9, 0x74,
- 0xfa, 0xe2, 0x64, 0xab, 0x2e, 0x83, 0xec, 0x1b, 0xf8, 0xd1, 0x02, 0x38, 0x39, 0xa8, 0x3a, 0xf0,
- 0x57, 0x72, 0xdc, 0x0e, 0x3b, 0x22, 0x43, 0x7e, 0x8e, 0x6d, 0x20, 0xe2, 0x07, 0xf5, 0xc9, 0xe0,
- 0xea, 0x60, 0x19, 0xae, 0x65, 0xd7, 0xd1, 0x15, 0xb7, 0x8b, 0x3c, 0x0f, 0x39, 0xa4, 0x6a, 0xd3,
- 0xfa, 0xe0, 0x97, 0xea, 0x53, 0xc1, 0xa3, 0x4c, 0xcb, 0x35, 0x3b, 0xc8, 0x69, 0x99, 0x3d, 0xb7,
- 0x64, 0x75, 0x5a, 0x7b, 0x9e, 0xed, 0x98, 0x06, 0xbb, 0x91, 0x72, 0x5a, 0x8f, 0x7b, 0xad, 0xde,
- 0x02, 0x14, 0xd3, 0x6d, 0x58, 0x17, 0x6d, 0xc3, 0xe9, 0x98, 0xd6, 0x76, 0xcd, 0x74, 0x3d, 0xe6,
- 0x01, 0x7c, 0x20, 0x1d, 0xfe, 0xad, 0x2c, 0x7a, 0x98, 0x6e, 0x08, 0xac, 0x31, 0x1d, 0xca, 0x0b,
- 0x65, 0x91, 0xe3, 0x71, 0xe9, 0x68, 0xa7, 0x53, 0x96, 0xe7, 0x4f, 0xda, 0x90, 0x18, 0x3c, 0x82,
- 0x93, 0xae, 0x85, 0xa6, 0xfb, 0x86, 0xc0, 0x39, 0x4d, 0xaf, 0x2e, 0x57, 0x35, 0x6c, 0x56, 0x5c,
- 0x0d, 0x4e, 0x84, 0xef, 0x2a, 0x17, 0x36, 0x9b, 0x5a, 0xbd, 0xa5, 0x4c, 0xe3, 0x7e, 0x8a, 0x26,
- 0x2f, 0x97, 0xaa, 0x35, 0xad, 0xb2, 0xd9, 0x6a, 0xe0, 0x37, 0x95, 0xd1, 0x4c, 0x0b, 0xf8, 0x50,
- 0x1e, 0x1c, 0x27, 0xb2, 0xdd, 0x27, 0x52, 0xc5, 0x42, 0xe9, 0xf3, 0xb5, 0x0d, 0x00, 0x9a, 0xa1,
- 0xe2, 0x85, 0xbf, 0x27, 0x7c, 0xe1, 0x66, 0x04, 0xc2, 0xbe, 0x32, 0x62, 0x34, 0xe3, 0x1b, 0x92,
- 0x48, 0x84, 0x0a, 0x61, 0xb2, 0xe9, 0x94, 0xe2, 0x5f, 0x27, 0x3d, 0xe2, 0xc4, 0x83, 0x4f, 0xac,
- 0xcc, 0x32, 0xf9, 0xf8, 0x59, 0xeb, 0x55, 0x9d, 0xa8, 0xc3, 0x02, 0x00, 0x24, 0x85, 0x68, 0x10,
- 0xd5, 0x83, 0x81, 0xe3, 0x55, 0x9c, 0x1e, 0x94, 0xca, 0xad, 0xea, 0x39, 0x2d, 0x4e, 0x0f, 0x3e,
- 0x27, 0x83, 0xe9, 0x15, 0xe4, 0xe1, 0x39, 0x95, 0x0b, 0x9f, 0x26, 0xb0, 0xfe, 0x83, 0xcd, 0x98,
- 0xae, 0xdd, 0x36, 0xba, 0xc1, 0x32, 0x00, 0x7d, 0x82, 0x3f, 0x3c, 0x8a, 0x09, 0xe2, 0x17, 0x1d,
- 0x33, 0x5e, 0x7d, 0x37, 0x28, 0x78, 0xf8, 0x35, 0x5b, 0x86, 0xfe, 0x8e, 0xd8, 0xe1, 0x0a, 0x13,
- 0xa9, 0x18, 0x9e, 0xa1, 0xd3, 0xfc, 0x91, 0xd1, 0x49, 0xd0, 0x76, 0x89, 0x61, 0xe4, 0xdb, 0xd1,
- 0xfe, 0xfc, 0x2b, 0x19, 0x5c, 0x4d, 0xdb, 0x47, 0xa9, 0xd7, 0x6b, 0x7a, 0xb6, 0x83, 0x74, 0xd4,
- 0x46, 0x66, 0xcf, 0xeb, 0x5b, 0xdf, 0x73, 0x68, 0xaa, 0xbf, 0xd9, 0xcc, 0x1e, 0xe1, 0x1b, 0x64,
- 0xd1, 0x08, 0xbf, 0x07, 0xda, 0x63, 0x5f, 0x79, 0x31, 0x8d, 0xfd, 0x93, 0x92, 0x48, 0xcc, 0xde,
- 0x94, 0xc4, 0xd3, 0x01, 0xf5, 0xb1, 0x23, 0x00, 0xca, 0x5f, 0xb9, 0xd1, 0xb5, 0xb2, 0x56, 0x5d,
- 0xc7, 0x83, 0xc0, 0x75, 0xe0, 0xd1, 0xeb, 0x1b, 0x7a, 0x79, 0xb5, 0xd4, 0xd4, 0x36, 0x75, 0x6d,
- 0xa5, 0xda, 0x6c, 0x31, 0xa7, 0x2c, 0xfa, 0xd5, 0x94, 0x7a, 0x2d, 0x38, 0xdd, 0xdc, 0x58, 0x6a,
- 0x96, 0xf5, 0xea, 0x3a, 0x49, 0xd7, 0xb5, 0xba, 0x76, 0x9e, 0xbd, 0x9d, 0x86, 0x1f, 0x56, 0xc0,
- 0x2c, 0x9e, 0x00, 0x34, 0xe9, 0xbc, 0x00, 0xfe, 0x7d, 0x1e, 0xcc, 0xea, 0xc8, 0xb5, 0xbb, 0x97,
- 0xc9, 0x1c, 0x61, 0x52, 0x53, 0x8f, 0xaf, 0xcb, 0xa2, 0xe7, 0xb7, 0x23, 0xcc, 0x2e, 0x46, 0x18,
- 0x8d, 0x9f, 0x68, 0x1a, 0x97, 0x0d, 0xb3, 0x6b, 0x5c, 0x64, 0x5d, 0xcd, 0xb4, 0x1e, 0x26, 0xa8,
- 0x8b, 0x40, 0xb5, 0xaf, 0x58, 0xc8, 0x69, 0xb6, 0xaf, 0x68, 0xde, 0x4e, 0xa9, 0xd3, 0x71, 0x90,
- 0xeb, 0xb2, 0xd5, 0x8b, 0x01, 0x6f, 0xd4, 0x9b, 0xc1, 0x71, 0x92, 0x1a, 0xc9, 0x4c, 0x1d, 0x64,
- 0xfa, 0x93, 0x83, 0x9c, 0x25, 0x6b, 0xdf, 0xcf, 0x59, 0x88, 0xe4, 0x0c, 0x93, 0xa3, 0xc7, 0x25,
- 0x8a, 0xfc, 0x29, 0x9d, 0xeb, 0xc1, 0xac, 0x65, 0xec, 0x22, 0xed, 0xc1, 0x9e, 0xe9, 0x20, 0x97,
- 0x38, 0xc6, 0xc8, 0x7a, 0x34, 0x09, 0x7e, 0x54, 0xe8, 0xbc, 0xb9, 0x98, 0xc4, 0xd2, 0xe9, 0xfe,
- 0xca, 0x08, 0xaa, 0x3f, 0xa0, 0x9f, 0x91, 0xe1, 0x87, 0x65, 0x30, 0xc7, 0x98, 0x2a, 0x59, 0xfb,
- 0xd5, 0x0e, 0xbc, 0x8e, 0x33, 0x7e, 0x0d, 0x9c, 0xe6, 0x1b, 0xbf, 0xe4, 0x01, 0xfe, 0xa8, 0x2c,
- 0xea, 0xee, 0x3c, 0xa0, 0xe2, 0xa4, 0x8c, 0x78, 0xc7, 0xd1, 0x2d, 0x7b, 0x8f, 0x39, 0xaa, 0x4e,
- 0xeb, 0xf4, 0x21, 0xcb, 0x45, 0x3d, 0xf8, 0x6b, 0x42, 0xce, 0xd4, 0x82, 0xd5, 0x38, 0x22, 0x00,
- 0x3f, 0x2d, 0x83, 0x05, 0xc6, 0x55, 0x93, 0x9d, 0xf3, 0x11, 0x3a, 0xf0, 0xf6, 0xe3, 0xc2, 0x86,
- 0xe0, 0x80, 0xfa, 0xb3, 0x92, 0x1e, 0x31, 0x40, 0x7e, 0x5c, 0x28, 0x38, 0x9a, 0x70, 0x45, 0x8e,
- 0x08, 0xca, 0x77, 0xe5, 0xc1, 0xec, 0x86, 0x8b, 0x1c, 0xe6, 0xb7, 0x0f, 0x1f, 0xce, 0x03, 0x79,
- 0x05, 0x71, 0x1b, 0xa9, 0x2f, 0x11, 0xf6, 0xf0, 0x8d, 0x56, 0x36, 0x42, 0x14, 0xdb, 0x48, 0x31,
- 0xb0, 0xdd, 0x04, 0x16, 0xa8, 0x48, 0x4b, 0x9e, 0x87, 0x8d, 0x44, 0xdf, 0x9b, 0xb6, 0x2f, 0x75,
- 0x1c, 0x5b, 0x45, 0xa4, 0x2c, 0x9c, 0xa5, 0x8c, 0x79, 0xaa, 0xa1, 0x2d, 0x3a, 0x9f, 0xcd, 0xeb,
- 0x7d, 0xa9, 0xea, 0xed, 0xe0, 0x2a, 0xbb, 0x87, 0xe8, 0xf9, 0x95, 0x48, 0xe6, 0x02, 0xc9, 0x3c,
- 0xe8, 0x15, 0xfc, 0x7b, 0x21, 0x5f, 0x5d, 0x71, 0xe9, 0xa4, 0xd3, 0x85, 0xde, 0x78, 0x4c, 0x92,
- 0x93, 0x40, 0xc1, 0x39, 0xc8, 0xfe, 0x8b, 0xae, 0x35, 0x1b, 0xb5, 0x73, 0xda, 0xe0, 0x65, 0x8c,
- 0x02, 0x7c, 0xbe, 0x0c, 0x66, 0x96, 0x1c, 0xdb, 0xe8, 0xb4, 0x0d, 0xd7, 0x83, 0xdf, 0x94, 0xc0,
- 0xdc, 0xba, 0xb1, 0xdf, 0xb5, 0x8d, 0x0e, 0xf1, 0xef, 0xef, 0xeb, 0x0b, 0x7a, 0xf4, 0x95, 0xdf,
- 0x17, 0xb0, 0x47, 0xfe, 0x60, 0x60, 0x70, 0x74, 0x2f, 0x27, 0x72, 0xaf, 0x66, 0xb0, 0xcd, 0x27,
- 0x0d, 0x0a, 0x56, 0xea, 0xf3, 0xb5, 0x18, 0xe5, 0x29, 0xc6, 0xa2, 0xfc, 0xb0, 0x58, 0xf8, 0x51,
- 0x11, 0x92, 0x47, 0xb3, 0x2b, 0xff, 0x82, 0x69, 0x50, 0xac, 0x20, 0x62, 0xc5, 0xfd, 0xb2, 0x04,
- 0xa6, 0x9a, 0xc8, 0x23, 0x16, 0xdc, 0x9d, 0x9c, 0xa7, 0x70, 0x87, 0x64, 0x08, 0x9d, 0xd8, 0xfd,
- 0x67, 0x3c, 0x59, 0x8f, 0x9c, 0xb7, 0x26, 0xff, 0x53, 0x78, 0x24, 0xd2, 0x72, 0x17, 0x59, 0x99,
- 0x87, 0xf2, 0x48, 0x4c, 0x24, 0x95, 0xbd, 0xaf, 0xd5, 0x7b, 0x24, 0xe6, 0x5a, 0x15, 0xe9, 0xf5,
- 0x5e, 0x13, 0xd5, 0xcf, 0x44, 0x6f, 0x33, 0xc6, 0x7c, 0x82, 0x73, 0xd4, 0x93, 0xc0, 0x14, 0x95,
- 0xb9, 0x3f, 0x1f, 0xed, 0xf7, 0x53, 0xa0, 0x24, 0xc8, 0xd9, 0x6b, 0x3f, 0xa7, 0xa0, 0x8b, 0x5a,
- 0x7c, 0xe1, 0x13, 0x89, 0x41, 0x30, 0x57, 0x47, 0xde, 0x15, 0xdb, 0xb9, 0xd4, 0xf4, 0x0c, 0x0f,
- 0xc1, 0x7f, 0x95, 0xe8, 0x75, 0x79, 0x91, 0xe8, 0x27, 0x75, 0x70, 0x82, 0x56, 0x88, 0x65, 0x24,
- 0xfd, 0x37, 0xad, 0xc8, 0xf5, 0x03, 0x85, 0x10, 0xc9, 0xa7, 0x1f, 0xfc, 0x14, 0xfe, 0xcc, 0xc0,
- 0xa0, 0x4f, 0xd2, 0x80, 0x49, 0x03, 0x93, 0x4c, 0x94, 0xc1, 0xf8, 0xfb, 0xf1, 0xe0, 0x47, 0x84,
- 0xcc, 0x6a, 0x31, 0x9a, 0x47, 0xd3, 0x15, 0xfc, 0xfb, 0xe3, 0x40, 0xbe, 0xbc, 0x63, 0x78, 0xf0,
- 0xdd, 0x32, 0x00, 0xa5, 0x4e, 0x67, 0x8d, 0xfa, 0x80, 0x47, 0x1d, 0xd2, 0xce, 0x82, 0xb9, 0xf6,
- 0x8e, 0x11, 0xde, 0x9c, 0x41, 0xfb, 0x03, 0x2e, 0x4d, 0x7d, 0x72, 0xe8, 0x4c, 0x4e, 0xa5, 0x0a,
- 0xfb, 0x60, 0xc2, 0x65, 0x30, 0xda, 0x81, 0xa3, 0x39, 0x1f, 0x0a, 0x33, 0xf1, 0x08, 0x1d, 0xfe,
- 0x7c, 0x31, 0x64, 0x2f, 0x7e, 0x0e, 0xc7, 0x48, 0x07, 0x07, 0x6c, 0xc2, 0x84, 0x94, 0x27, 0xbd,
- 0xc5, 0x02, 0x7a, 0x24, 0xf3, 0x35, 0x91, 0xd0, 0xb5, 0xaa, 0xd6, 0x31, 0x7d, 0xd1, 0xb2, 0x80,
- 0x59, 0xf0, 0xc5, 0xb9, 0x74, 0xf0, 0x25, 0x0b, 0xee, 0x19, 0x60, 0x1e, 0x75, 0x4c, 0x0f, 0xf9,
- 0xb5, 0x64, 0x02, 0x4c, 0x82, 0x98, 0xff, 0x00, 0x3e, 0x4f, 0x38, 0xe8, 0x1a, 0x11, 0xe8, 0xc1,
- 0x1a, 0xc5, 0xb4, 0x3f, 0xb1, 0x30, 0x6a, 0x62, 0x34, 0xb3, 0x07, 0xeb, 0x87, 0x65, 0x70, 0x75,
- 0xcb, 0xde, 0xde, 0xee, 0x22, 0x5f, 0x4c, 0x88, 0x7a, 0x67, 0x42, 0x63, 0x9c, 0x70, 0x91, 0x9d,
- 0x20, 0xfb, 0x01, 0x33, 0x38, 0x4a, 0x86, 0x1f, 0xf8, 0x13, 0x53, 0x89, 0xb3, 0x28, 0x22, 0xae,
- 0x81, 0x7c, 0xc6, 0xa0, 0x20, 0x16, 0xf0, 0x59, 0x98, 0x6c, 0xf6, 0x40, 0x7c, 0x41, 0x02, 0xf3,
- 0xf4, 0x5e, 0x44, 0x5f, 0x41, 0xef, 0x1f, 0x23, 0x00, 0xf0, 0x9b, 0x39, 0x51, 0x3f, 0x5b, 0x22,
- 0x13, 0x8e, 0x93, 0x18, 0x11, 0x8b, 0x05, 0x55, 0x19, 0x4a, 0x6e, 0x02, 0x37, 0x75, 0xe6, 0xc1,
- 0xec, 0x0a, 0xf2, 0x5b, 0x9a, 0x0b, 0xdf, 0x9f, 0xb2, 0x27, 0x3a, 0x0b, 0xe6, 0xc8, 0xe5, 0x60,
- 0x0d, 0x76, 0x4c, 0x92, 0xae, 0x9a, 0x71, 0x69, 0xea, 0x8d, 0x60, 0xfe, 0x22, 0xda, 0xb2, 0x1d,
- 0xd4, 0xe0, 0xce, 0x52, 0xf2, 0x89, 0x83, 0xc3, 0xd3, 0xa9, 0x37, 0x83, 0xe3, 0xcc, 0xd1, 0x7d,
- 0x09, 0xcf, 0xf5, 0x0d, 0x67, 0x9f, 0x1d, 0x4c, 0xeb, 0x4f, 0x86, 0x7f, 0x15, 0x6d, 0x30, 0x4b,
- 0x3c, 0x8a, 0xb7, 0x1e, 0x14, 0x7b, 0xa4, 0xd2, 0x31, 0xa3, 0xd3, 0x53, 0xc0, 0x34, 0xd3, 0x11,
- 0xdf, 0xa0, 0x4b, 0xea, 0x41, 0x83, 0xbc, 0xea, 0x53, 0xc0, 0x0c, 0x16, 0x11, 0xb1, 0x1b, 0x58,
- 0xd7, 0x7b, 0x7a, 0xc0, 0x87, 0xe4, 0xbd, 0x1e, 0x66, 0x85, 0xbf, 0x10, 0xe8, 0x8c, 0xc6, 0xe9,
- 0xcc, 0x13, 0xd3, 0x30, 0x3f, 0x91, 0x8b, 0xe4, 0x95, 0x48, 0xf9, 0x4b, 0xfb, 0xd5, 0x8e, 0x0b,
- 0xd7, 0xd2, 0x69, 0xcd, 0x19, 0x00, 0x82, 0xe6, 0xe7, 0x07, 0xce, 0x88, 0xa4, 0xf0, 0xb1, 0xf1,
- 0x13, 0x8f, 0x02, 0xf6, 0x8b, 0x83, 0xb0, 0x33, 0x5e, 0x40, 0x05, 0x8f, 0x10, 0x8a, 0x70, 0x92,
- 0x3d, 0x3a, 0x3f, 0x9f, 0x07, 0x57, 0x07, 0x27, 0x9c, 0x6a, 0x86, 0x1b, 0xb6, 0xec, 0x0b, 0xe9,
- 0x20, 0xe2, 0x8e, 0x94, 0x04, 0xcd, 0xf1, 0x24, 0x28, 0xb8, 0x7b, 0x17, 0x03, 0x47, 0x40, 0xfa,
- 0x00, 0xdf, 0x28, 0xa7, 0x1a, 0xab, 0x06, 0xf2, 0x37, 0xe6, 0x46, 0x78, 0x2b, 0x38, 0x61, 0xed,
- 0xed, 0x06, 0x58, 0x90, 0x9e, 0x86, 0xf5, 0x2c, 0x07, 0x5f, 0xf0, 0x4d, 0x36, 0x2f, 0xde, 0x64,
- 0x53, 0x8c, 0xa4, 0x22, 0x95, 0xce, 0x5e, 0x3d, 0x3e, 0xd3, 0x77, 0x04, 0xad, 0x9c, 0x5a, 0x29,
- 0x28, 0xfc, 0x52, 0x14, 0xfe, 0x7f, 0xce, 0xa5, 0xea, 0x79, 0x87, 0x9f, 0x5c, 0x4b, 0xd1, 0x13,
- 0x1e, 0xe5, 0xb1, 0xb5, 0xcf, 0x4b, 0x00, 0x36, 0x43, 0x87, 0x1c, 0x06, 0xea, 0xba, 0x83, 0x2e,
- 0x9b, 0xe8, 0x0a, 0xe7, 0xbe, 0xf5, 0x26, 0xe1, 0x38, 0xd4, 0xbc, 0xae, 0x1c, 0x20, 0x1a, 0xbf,
- 0x2e, 0x3e, 0x00, 0x17, 0xb1, 0x78, 0xd3, 0xe9, 0x4a, 0x9c, 0x40, 0xec, 0x70, 0x09, 0x9c, 0x89,
- 0xa0, 0xba, 0xec, 0xd8, 0xbb, 0x09, 0x92, 0x7d, 0x45, 0x54, 0xb2, 0x1b, 0xbc, 0x64, 0xef, 0x4d,
- 0x54, 0x97, 0x01, 0x84, 0x63, 0xd4, 0xf1, 0xfd, 0x81, 0x1c, 0x9f, 0xc5, 0xc9, 0xb1, 0x72, 0x48,
- 0xfa, 0xd9, 0xcb, 0xf2, 0x0f, 0xf3, 0x60, 0x4e, 0x47, 0x46, 0x27, 0x18, 0x04, 0xfe, 0xcf, 0x88,
- 0x79, 0xf7, 0x34, 0x90, 0xf7, 0xc2, 0x75, 0x9a, 0xc7, 0x1d, 0xac, 0x4c, 0xf4, 0x4b, 0xf2, 0x40,
- 0x96, 0x6b, 0xc8, 0x47, 0x07, 0x7a, 0x0b, 0x49, 0xc0, 0x36, 0x94, 0x45, 0x6c, 0xc3, 0xfc, 0x20,
- 0xdb, 0xf0, 0x66, 0x70, 0xbc, 0x6b, 0xb8, 0x5e, 0xe5, 0x62, 0xcb, 0xdc, 0x45, 0xae, 0x67, 0xec,
- 0xf6, 0x88, 0x15, 0x28, 0xeb, 0xfd, 0xc9, 0xfc, 0x3d, 0xf0, 0x89, 0xe7, 0xc1, 0x06, 0x55, 0xf1,
- 0xf0, 0x31, 0x73, 0x3f, 0x24, 0x74, 0xf8, 0x6b, 0x58, 0xd9, 0xe9, 0x34, 0xe3, 0xbe, 0x11, 0xd6,
- 0x96, 0x4e, 0x01, 0x75, 0x4d, 0x6b, 0x36, 0x4b, 0x2b, 0xe4, 0x4c, 0x88, 0xef, 0x24, 0xd4, 0x39,
- 0xfb, 0x58, 0x2c, 0x3e, 0x8a, 0xb4, 0x3a, 0x17, 0x8e, 0xbd, 0xca, 0x31, 0x75, 0x16, 0x4c, 0x39,
- 0xa8, 0xd7, 0x35, 0x91, 0xab, 0xe4, 0xe0, 0x37, 0x24, 0x50, 0xdc, 0xb0, 0x1c, 0x64, 0x74, 0xe0,
- 0x33, 0xe3, 0x87, 0x90, 0x11, 0x95, 0x82, 0x8f, 0x7b, 0x95, 0xb8, 0x2a, 0xcb, 0x1a, 0x1d, 0x66,
- 0x64, 0x2c, 0xf0, 0x89, 0x2d, 0xc7, 0xc6, 0x97, 0x9a, 0x7d, 0x93, 0xfe, 0x2d, 0x19, 0x28, 0xeb,
- 0x7b, 0xee, 0x0e, 0x77, 0x6a, 0xf8, 0x97, 0x65, 0x30, 0xef, 0x1f, 0xac, 0x68, 0xd9, 0x97, 0x90,
- 0x05, 0x9f, 0xcd, 0x6d, 0xb6, 0x7b, 0x38, 0xcd, 0xdf, 0x6c, 0x27, 0x0f, 0xea, 0x7a, 0x24, 0xb6,
- 0x88, 0x34, 0xe8, 0x5c, 0x78, 0x5f, 0x19, 0x8b, 0x1c, 0xfd, 0xc5, 0x75, 0xf6, 0x6d, 0x18, 0x91,
- 0x04, 0xbe, 0x54, 0xf8, 0xa2, 0x9c, 0x21, 0xb4, 0x07, 0xf7, 0xc2, 0x62, 0x57, 0xdf, 0xa4, 0x22,
- 0x9d, 0x39, 0x5a, 0x67, 0xaf, 0x07, 0xd3, 0xbe, 0xa4, 0xd4, 0x29, 0x20, 0x57, 0x1b, 0x4d, 0xda,
- 0x92, 0x4a, 0x56, 0xc7, 0xb1, 0xcd, 0x8e, 0x92, 0x3b, 0x3b, 0x05, 0x0a, 0xda, 0x6e, 0xcf, 0xdb,
- 0x3f, 0xfb, 0x58, 0x30, 0xdf, 0xf4, 0x1c, 0x64, 0xec, 0x26, 0xe2, 0x76, 0xd7, 0x9d, 0x60, 0xca,
- 0xb2, 0x37, 0x8d, 0x3d, 0x6f, 0x47, 0xbd, 0xee, 0x40, 0x74, 0x21, 0xd6, 0x9d, 0x34, 0x58, 0x38,
- 0xc7, 0x3f, 0xbb, 0x9b, 0x4c, 0x95, 0x8b, 0x96, 0x5d, 0xda, 0xf3, 0x76, 0x96, 0xae, 0xfd, 0xf4,
- 0x9f, 0x9f, 0xc9, 0x7d, 0xee, 0xcf, 0xcf, 0xe4, 0xbe, 0xf2, 0xe7, 0x67, 0x72, 0x3f, 0xfe, 0x17,
- 0x67, 0x8e, 0x7d, 0xee, 0x2f, 0xce, 0x1c, 0xfb, 0xc2, 0x5f, 0x9c, 0x39, 0xf6, 0x3d, 0x52, 0xef,
- 0xe2, 0xc5, 0x22, 0xa1, 0xf2, 0xa4, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0x05, 0xe7, 0xd9, 0x8c,
- 0x93, 0x2d, 0x02, 0x00,
+ // 21542 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x98, 0x24, 0x49,
+ 0x59, 0x37, 0x3a, 0x95, 0x59, 0x55, 0xdd, 0x1d, 0x7d, 0x99, 0x9c, 0xdc, 0xd9, 0x61, 0x36, 0x77,
+ 0x99, 0x5d, 0x67, 0x97, 0x65, 0x5d, 0x96, 0xde, 0x65, 0x41, 0x64, 0x97, 0x5d, 0x96, 0xea, 0xaa,
+ 0xec, 0xee, 0xda, 0xad, 0xae, 0x6a, 0xb2, 0xaa, 0x67, 0x18, 0xfd, 0x3c, 0x6d, 0x4e, 0x55, 0x74,
+ 0x77, 0xee, 0x54, 0x67, 0x16, 0x99, 0xd9, 0x33, 0xdb, 0x9c, 0xe7, 0x3b, 0x9f, 0x88, 0x2b, 0x20,
+ 0x22, 0xa2, 0xa2, 0x22, 0x72, 0x17, 0x10, 0x90, 0xfb, 0xed, 0x03, 0xe5, 0x22, 0x17, 0x41, 0x44,
+ 0x45, 0xf1, 0x02, 0x28, 0x47, 0xbc, 0xe3, 0x77, 0xf4, 0xf8, 0xe1, 0x51, 0x10, 0x3f, 0xd1, 0xf3,
+ 0xc4, 0x25, 0x33, 0x23, 0xaa, 0x2b, 0xb3, 0x22, 0xab, 0x2b, 0xab, 0x17, 0xfd, 0xfe, 0xaa, 0xca,
+ 0xc8, 0xc8, 0x37, 0xde, 0x78, 0x7f, 0x6f, 0x44, 0xbc, 0x11, 0xf1, 0xc6, 0x1b, 0xe0, 0x74, 0xef,
+ 0xe2, 0xed, 0x3d, 0xd7, 0xf1, 0x1d, 0xef, 0xf6, 0xb6, 0xb3, 0xbb, 0x6b, 0xda, 0x1d, 0x6f, 0x11,
+ 0x3f, 0xab, 0x53, 0xa6, 0xbd, 0xef, 0xef, 0xf7, 0xa0, 0x76, 0x53, 0xef, 0xd2, 0xf6, 0xed, 0x5d,
+ 0xeb, 0xe2, 0xed, 0xbd, 0x8b, 0xb7, 0xef, 0x3a, 0x1d, 0xd8, 0x0d, 0x3e, 0xc0, 0x0f, 0x34, 0xbb,
+ 0x76, 0x4b, 0x5c, 0xae, 0xae, 0xd3, 0x36, 0xbb, 0x9e, 0xef, 0xb8, 0x90, 0xe6, 0x3c, 0x15, 0x15,
+ 0x09, 0x2f, 0x43, 0xdb, 0x0f, 0x28, 0x5c, 0xb7, 0xed, 0x38, 0xdb, 0x5d, 0x48, 0xde, 0x5d, 0xdc,
+ 0xdb, 0xba, 0xdd, 0xf3, 0xdd, 0xbd, 0xb6, 0x4f, 0xdf, 0xde, 0xd0, 0xff, 0xb6, 0x03, 0xbd, 0xb6,
+ 0x6b, 0xf5, 0x7c, 0xc7, 0x25, 0x39, 0xce, 0xbe, 0xe2, 0x0b, 0xd3, 0x40, 0x36, 0x7a, 0x6d, 0xed,
+ 0xeb, 0x53, 0x40, 0x2e, 0xf5, 0x7a, 0xda, 0x27, 0x25, 0x00, 0x56, 0xa0, 0x7f, 0x0e, 0xba, 0x9e,
+ 0xe5, 0xd8, 0xda, 0x71, 0x30, 0x65, 0xc0, 0x67, 0xed, 0x41, 0xcf, 0xbf, 0x3b, 0xff, 0xfc, 0xbf,
+ 0x92, 0x73, 0xda, 0xeb, 0x25, 0x30, 0x6d, 0x40, 0xaf, 0xe7, 0xd8, 0x1e, 0x54, 0x9f, 0x0e, 0x0a,
+ 0xd0, 0x75, 0x1d, 0xf7, 0x74, 0xee, 0x86, 0xdc, 0x2d, 0xb3, 0x77, 0xde, 0xba, 0x48, 0xab, 0xbf,
+ 0x68, 0xf4, 0xda, 0x8b, 0xa5, 0x5e, 0x6f, 0x31, 0xa2, 0xb4, 0x18, 0x7c, 0xb4, 0xa8, 0xa3, 0x2f,
+ 0x0c, 0xf2, 0xa1, 0x7a, 0x1a, 0x4c, 0x5d, 0x26, 0x19, 0x4e, 0x4b, 0x37, 0xe4, 0x6e, 0x99, 0x31,
+ 0x82, 0x47, 0xf4, 0xa6, 0x03, 0x7d, 0xd3, 0xea, 0x7a, 0xa7, 0x65, 0xf2, 0x86, 0x3e, 0x6a, 0xaf,
+ 0xcd, 0x81, 0x02, 0x26, 0xa2, 0x96, 0x41, 0xbe, 0xed, 0x74, 0x20, 0x2e, 0x7e, 0xe1, 0xce, 0xdb,
+ 0xc5, 0x8b, 0x5f, 0x2c, 0x3b, 0x1d, 0x68, 0xe0, 0x8f, 0xd5, 0x1b, 0xc0, 0x6c, 0x20, 0x96, 0x88,
+ 0x0d, 0x36, 0xe9, 0xec, 0x9d, 0x20, 0x8f, 0xf2, 0xab, 0xd3, 0x20, 0x5f, 0xdf, 0xa8, 0xd5, 0x94,
+ 0x63, 0xea, 0x09, 0x30, 0xbf, 0x51, 0x7f, 0xa0, 0xde, 0x38, 0x5f, 0xdf, 0xd4, 0x0d, 0xa3, 0x61,
+ 0x28, 0x39, 0x75, 0x1e, 0xcc, 0x2c, 0x95, 0x2a, 0x9b, 0xd5, 0xfa, 0xfa, 0x46, 0x4b, 0x91, 0xb4,
+ 0x57, 0xca, 0x60, 0xa1, 0x09, 0xfd, 0x0a, 0xbc, 0x6c, 0xb5, 0x61, 0xd3, 0x37, 0x7d, 0xa8, 0xbd,
+ 0x38, 0x17, 0x0a, 0x53, 0xdd, 0x40, 0x85, 0x86, 0xaf, 0x68, 0x05, 0x9e, 0x78, 0xa0, 0x02, 0x3c,
+ 0x85, 0x45, 0xfa, 0xf5, 0x22, 0x93, 0x66, 0xb0, 0x74, 0xce, 0x3e, 0x1e, 0xcc, 0x32, 0xef, 0xd4,
+ 0x05, 0x00, 0x96, 0x4a, 0xe5, 0x07, 0x56, 0x8c, 0xc6, 0x46, 0xbd, 0xa2, 0x1c, 0x43, 0xcf, 0xcb,
+ 0x0d, 0x43, 0xa7, 0xcf, 0x39, 0xed, 0x9b, 0x39, 0x06, 0xcc, 0x0a, 0x0f, 0xe6, 0xe2, 0x70, 0x66,
+ 0x06, 0x00, 0xaa, 0xbd, 0x21, 0x04, 0x67, 0x85, 0x03, 0xe7, 0x89, 0xe9, 0xc8, 0x65, 0x0f, 0xd0,
+ 0xc3, 0x12, 0x98, 0x6e, 0xee, 0xec, 0xf9, 0x1d, 0xe7, 0x8a, 0xad, 0xcd, 0x84, 0xc8, 0x68, 0x7f,
+ 0xc7, 0xca, 0xe4, 0x69, 0xbc, 0x4c, 0x6e, 0x39, 0x58, 0x09, 0x4a, 0x21, 0x46, 0x1a, 0xaf, 0x0e,
+ 0xa5, 0x51, 0xe2, 0xa4, 0xf1, 0x78, 0x51, 0x42, 0xd9, 0xcb, 0xe1, 0x0b, 0xf7, 0x80, 0x42, 0xb3,
+ 0x67, 0xb6, 0xa1, 0xf6, 0x59, 0x19, 0xcc, 0xd5, 0xa0, 0x79, 0x19, 0x96, 0x7a, 0x3d, 0xd7, 0xb9,
+ 0x0c, 0xb5, 0x72, 0xa4, 0xaf, 0xa7, 0xc1, 0x94, 0x87, 0x32, 0x55, 0x3b, 0xb8, 0x06, 0x33, 0x46,
+ 0xf0, 0xa8, 0x9e, 0x01, 0xc0, 0xea, 0x40, 0xdb, 0xb7, 0x7c, 0x0b, 0x7a, 0xa7, 0xa5, 0x1b, 0xe4,
+ 0x5b, 0x66, 0x0c, 0x26, 0x45, 0xfb, 0xba, 0x24, 0xaa, 0x63, 0x98, 0x8b, 0x45, 0x96, 0x83, 0x18,
+ 0xa9, 0xbe, 0x4e, 0x12, 0xd1, 0xb1, 0xa1, 0xe4, 0xd2, 0xc9, 0xf6, 0x6d, 0xb9, 0xf4, 0xc2, 0x45,
+ 0x39, 0xea, 0x8d, 0xcd, 0xe6, 0x46, 0x79, 0x75, 0xb3, 0xb9, 0x5e, 0x2a, 0xeb, 0x0a, 0x54, 0x4f,
+ 0x02, 0x05, 0xff, 0xdd, 0xac, 0x36, 0x37, 0x2b, 0x7a, 0x4d, 0x6f, 0xe9, 0x15, 0x65, 0x4b, 0x55,
+ 0xc1, 0x82, 0xa1, 0x3f, 0x63, 0x43, 0x6f, 0xb6, 0x36, 0x97, 0x4b, 0xd5, 0x9a, 0x5e, 0x51, 0xb6,
+ 0xd1, 0xc7, 0xb5, 0xea, 0x5a, 0xb5, 0xb5, 0x69, 0xe8, 0xa5, 0xf2, 0xaa, 0x5e, 0x51, 0x76, 0xd4,
+ 0x47, 0x81, 0xab, 0xea, 0x8d, 0xcd, 0xd2, 0xfa, 0xba, 0xd1, 0x38, 0xa7, 0x6f, 0xd2, 0x2f, 0x9a,
+ 0x8a, 0x45, 0x0a, 0x6a, 0x6d, 0x36, 0x57, 0x4b, 0x86, 0x5e, 0x5a, 0xaa, 0xe9, 0xca, 0x83, 0xda,
+ 0x73, 0x65, 0x30, 0xbf, 0x66, 0x5e, 0x82, 0xcd, 0x1d, 0xd3, 0x85, 0xe6, 0xc5, 0x2e, 0xd4, 0x6e,
+ 0x14, 0xc0, 0x53, 0xfb, 0x2c, 0x8b, 0x97, 0xce, 0xe3, 0x75, 0xfb, 0x00, 0x01, 0x73, 0x45, 0xc4,
+ 0x00, 0xf6, 0xcf, 0x61, 0x33, 0x58, 0xe5, 0x00, 0x7b, 0x52, 0x4a, 0x7a, 0xe9, 0x10, 0xfb, 0xc1,
+ 0x47, 0x00, 0x62, 0xda, 0x17, 0xf3, 0x60, 0xa1, 0x6a, 0x5f, 0xb6, 0x7c, 0xb8, 0x02, 0x6d, 0xe8,
+ 0xa2, 0x71, 0xe0, 0x95, 0x39, 0x91, 0x76, 0xd5, 0x02, 0xc0, 0xc2, 0xdf, 0xb5, 0xf6, 0x7b, 0x10,
+ 0x57, 0x6f, 0xb0, 0xbc, 0x78, 0xe2, 0xe1, 0x10, 0x51, 0x0d, 0xbf, 0x35, 0x18, 0x3a, 0x67, 0x6f,
+ 0x04, 0x20, 0x7a, 0xa3, 0x02, 0x50, 0x5c, 0x83, 0xbb, 0x17, 0xa1, 0xab, 0x1c, 0x53, 0x67, 0x40,
+ 0x61, 0x05, 0x7d, 0xa9, 0xe4, 0xb4, 0xd7, 0xcb, 0x8c, 0x0a, 0x2c, 0xf3, 0x2a, 0x70, 0x87, 0x08,
+ 0x0b, 0x83, 0x46, 0xfa, 0xeb, 0xc0, 0x0c, 0xe1, 0xa3, 0x6c, 0x75, 0x28, 0x5a, 0x51, 0x82, 0x7a,
+ 0x13, 0x98, 0x27, 0x0f, 0xcb, 0x56, 0x17, 0x3e, 0x00, 0xf7, 0xe9, 0x98, 0xcf, 0x27, 0x6a, 0x3f,
+ 0x1a, 0x36, 0xfc, 0x2a, 0xa7, 0x47, 0xdf, 0x95, 0x96, 0xa9, 0x74, 0x8a, 0xf4, 0xd2, 0x47, 0x42,
+ 0xd3, 0x3f, 0xd0, 0xc2, 0x2d, 0xed, 0x5b, 0x12, 0x98, 0x6d, 0xfa, 0x4e, 0x0f, 0x35, 0x17, 0xcb,
+ 0xde, 0x16, 0x6b, 0xdf, 0x9f, 0x66, 0xdb, 0x77, 0x99, 0x07, 0xf7, 0xf1, 0x03, 0xe4, 0xc8, 0x14,
+ 0x10, 0xd3, 0xba, 0xbf, 0x1e, 0xb6, 0xee, 0x65, 0x0e, 0x95, 0x3b, 0x53, 0x51, 0xfb, 0x36, 0x6c,
+ 0xdb, 0x2f, 0x95, 0x81, 0x12, 0xa8, 0x99, 0x5f, 0xde, 0x73, 0x5d, 0x68, 0xfb, 0x62, 0x20, 0xfc,
+ 0x11, 0x0b, 0xc2, 0x2a, 0x0f, 0xc2, 0x9d, 0x09, 0xca, 0x1c, 0x94, 0x92, 0x61, 0x1b, 0xfb, 0x68,
+ 0x88, 0xe6, 0x03, 0x1c, 0x9a, 0xdf, 0x9d, 0x9e, 0xad, 0x74, 0x90, 0xae, 0x8e, 0x80, 0xe8, 0x49,
+ 0xa0, 0xa0, 0xf1, 0xb0, 0xdc, 0xaa, 0x9e, 0xd3, 0x37, 0xab, 0xf5, 0x73, 0xd5, 0x96, 0xae, 0x40,
+ 0xed, 0x25, 0x72, 0xd4, 0xe7, 0xfa, 0xb8, 0x53, 0x13, 0x43, 0xe5, 0x8b, 0xd2, 0x68, 0xfd, 0x1e,
+ 0x29, 0x63, 0x22, 0x98, 0x88, 0xf7, 0x7b, 0x03, 0x99, 0x4a, 0x87, 0xc8, 0xfd, 0x23, 0x20, 0x72,
+ 0x0a, 0xa8, 0xd5, 0xfa, 0xb9, 0x52, 0xad, 0x5a, 0x21, 0x6d, 0x6c, 0xb3, 0x75, 0x61, 0x1d, 0x61,
+ 0xf2, 0x93, 0x32, 0x98, 0x23, 0xac, 0x19, 0xf0, 0xb2, 0x73, 0x49, 0xd0, 0x18, 0xf9, 0x72, 0x4a,
+ 0xe3, 0x91, 0x2d, 0x21, 0xa6, 0xb7, 0xfa, 0x91, 0x14, 0xc6, 0x63, 0x02, 0xb9, 0x47, 0xd2, 0x08,
+ 0x72, 0xa0, 0x6b, 0xda, 0x1e, 0xd0, 0x83, 0x0d, 0x1c, 0x41, 0x3e, 0x9e, 0x0f, 0xec, 0x81, 0x73,
+ 0x16, 0xbc, 0xa2, 0xad, 0x45, 0x98, 0x70, 0x6a, 0x9b, 0x1b, 0xaa, 0xb6, 0xd2, 0x20, 0xb5, 0xfd,
+ 0x4b, 0xd6, 0x8e, 0x58, 0xe2, 0xd1, 0xbb, 0x2d, 0x56, 0xdc, 0x88, 0x93, 0xf8, 0xd5, 0x82, 0x40,
+ 0x51, 0x24, 0xde, 0x5a, 0xba, 0x0e, 0xcc, 0xe0, 0xbf, 0x75, 0x73, 0x17, 0xd2, 0x36, 0x14, 0x25,
+ 0xa8, 0x67, 0xc1, 0x1c, 0xc9, 0xd8, 0x76, 0x6c, 0x54, 0x9f, 0x3c, 0xce, 0xc0, 0xa5, 0x21, 0x10,
+ 0xdb, 0x2e, 0x34, 0x7d, 0xc7, 0xc5, 0x34, 0x0a, 0x04, 0x44, 0x26, 0x49, 0xbd, 0x0d, 0x9c, 0xb0,
+ 0x3c, 0xdc, 0xaa, 0x36, 0x3c, 0xe8, 0x12, 0x66, 0x4f, 0x17, 0x6f, 0xc8, 0xdd, 0x32, 0x6d, 0x1c,
+ 0x7c, 0xa1, 0x7d, 0x35, 0x6c, 0xb3, 0x3a, 0xa7, 0x67, 0x4f, 0x48, 0x53, 0xf1, 0x74, 0x5a, 0x76,
+ 0x79, 0xb4, 0x1e, 0x94, 0xf4, 0x9b, 0x9b, 0x48, 0x37, 0x96, 0xf1, 0xc2, 0x00, 0xa4, 0xad, 0x18,
+ 0xa5, 0xa2, 0xbc, 0xe5, 0x46, 0xbd, 0xa5, 0xd7, 0x5b, 0xca, 0xd6, 0x40, 0xfd, 0xdb, 0xd6, 0x5e,
+ 0x97, 0x07, 0xf9, 0xfb, 0x1d, 0xcb, 0xd6, 0x1e, 0xce, 0x71, 0x0a, 0x64, 0x43, 0xff, 0x8a, 0xe3,
+ 0x5e, 0x0a, 0x9b, 0x75, 0x94, 0x90, 0x8c, 0x64, 0xa4, 0x78, 0xf2, 0x50, 0xc5, 0xcb, 0x0f, 0x52,
+ 0xbc, 0x9f, 0x60, 0x15, 0xef, 0x1e, 0x5e, 0xf1, 0x6e, 0x1e, 0x20, 0x7f, 0xc4, 0x7c, 0x4c, 0x77,
+ 0xf1, 0xa9, 0xb0, 0xbb, 0xb8, 0x8f, 0x83, 0xf1, 0x71, 0x62, 0x64, 0xd2, 0x01, 0xf8, 0xa5, 0x4c,
+ 0xbb, 0x89, 0x41, 0x50, 0x6f, 0xc7, 0x40, 0xbd, 0x33, 0xa0, 0x07, 0xb1, 0x0e, 0x76, 0x34, 0x0f,
+ 0x1e, 0xec, 0x54, 0x2e, 0xa9, 0x57, 0x83, 0x13, 0x95, 0xea, 0xf2, 0xb2, 0x6e, 0xe8, 0xf5, 0xd6,
+ 0x66, 0x5d, 0x6f, 0x9d, 0x6f, 0x18, 0x0f, 0x28, 0x5d, 0xed, 0xb5, 0x32, 0x00, 0x48, 0x42, 0x65,
+ 0xd3, 0x6e, 0xc3, 0xae, 0x58, 0xff, 0xff, 0xff, 0x4a, 0xe9, 0x7a, 0x90, 0x88, 0x7e, 0x0c, 0x9c,
+ 0xaf, 0x90, 0xc4, 0x5b, 0x65, 0x2c, 0xb1, 0x74, 0xa0, 0xbe, 0xf9, 0x91, 0x30, 0x7b, 0xb8, 0x0a,
+ 0x1c, 0x0f, 0xe8, 0xd1, 0xec, 0x83, 0x17, 0x0d, 0xde, 0x9e, 0x07, 0x0b, 0x14, 0x96, 0x60, 0x15,
+ 0xe8, 0xf9, 0x42, 0xd3, 0x55, 0x0d, 0x4c, 0xd3, 0x45, 0x9f, 0x60, 0x30, 0x08, 0x9f, 0xd5, 0x15,
+ 0x30, 0xdb, 0x83, 0xee, 0xae, 0xe5, 0x79, 0x96, 0x63, 0x93, 0xe5, 0xdc, 0x85, 0x3b, 0x1f, 0x13,
+ 0x4a, 0x1c, 0xaf, 0x7c, 0x2f, 0xae, 0x9b, 0xae, 0x6f, 0xb5, 0xad, 0x9e, 0x69, 0xfb, 0xeb, 0x51,
+ 0x66, 0x83, 0xfd, 0x12, 0x19, 0x76, 0xa9, 0x0c, 0x34, 0xbe, 0x26, 0x31, 0x2a, 0xf1, 0x2b, 0x29,
+ 0x26, 0x95, 0x89, 0x04, 0xd3, 0xa9, 0xc5, 0x27, 0x33, 0x55, 0x8b, 0x01, 0x78, 0x6f, 0xab, 0xd7,
+ 0x80, 0xab, 0xab, 0xf5, 0x72, 0xc3, 0x30, 0xf4, 0x72, 0x6b, 0x73, 0x5d, 0x37, 0xd6, 0xaa, 0xcd,
+ 0x66, 0xb5, 0x51, 0x6f, 0x1e, 0xa6, 0xb5, 0x6b, 0x9f, 0x91, 0x43, 0x8d, 0xa9, 0xc0, 0x76, 0xd7,
+ 0xb2, 0xa1, 0x76, 0xdf, 0x21, 0x15, 0x86, 0x5f, 0x33, 0x14, 0xc7, 0x99, 0x96, 0x1f, 0x83, 0xf3,
+ 0x6b, 0xd2, 0xe3, 0x3c, 0x98, 0xe0, 0x7f, 0xe0, 0xe6, 0xff, 0x65, 0x19, 0x9c, 0x60, 0x1a, 0xa2,
+ 0x01, 0x77, 0xc7, 0xb6, 0x0e, 0xfc, 0x83, 0x6c, 0xdb, 0xad, 0xf2, 0x98, 0x0e, 0xb2, 0xbd, 0x0f,
+ 0xb0, 0x11, 0x03, 0xeb, 0x9b, 0x43, 0x58, 0x6b, 0x1c, 0xac, 0x4f, 0x19, 0x81, 0x66, 0x3a, 0x64,
+ 0xdf, 0x91, 0x29, 0xb2, 0xd7, 0x80, 0xab, 0xd7, 0x4b, 0x46, 0xab, 0x5a, 0xae, 0xae, 0x97, 0xd0,
+ 0x38, 0xca, 0x0c, 0xd9, 0x31, 0xc6, 0x3d, 0x0f, 0xfa, 0x40, 0x7c, 0x3f, 0x92, 0x07, 0xd7, 0x0d,
+ 0xee, 0x68, 0xcb, 0x3b, 0xa6, 0xbd, 0x0d, 0x35, 0x4b, 0x04, 0xea, 0x0a, 0x98, 0x6a, 0xe3, 0xec,
+ 0x04, 0x67, 0x76, 0xe3, 0x2f, 0xa1, 0x2f, 0x27, 0x25, 0x18, 0xc1, 0xa7, 0xda, 0xbb, 0x59, 0x85,
+ 0x68, 0xf1, 0x0a, 0xf1, 0xb4, 0x64, 0xf0, 0x0e, 0xf0, 0x1d, 0xa3, 0x1b, 0x9f, 0x0b, 0x75, 0xe3,
+ 0x3c, 0xa7, 0x1b, 0xe5, 0xc3, 0x91, 0x4f, 0xa7, 0x26, 0xbf, 0xf1, 0x48, 0xe8, 0x00, 0x62, 0xb5,
+ 0xc9, 0x8a, 0x1f, 0x15, 0x06, 0x76, 0xf7, 0xaf, 0x92, 0x41, 0xb1, 0x02, 0xbb, 0xd0, 0x17, 0x9c,
+ 0xc1, 0xff, 0xbd, 0x24, 0xba, 0x9d, 0x46, 0x60, 0x20, 0xb4, 0xe3, 0xd7, 0x52, 0x7c, 0x6b, 0x17,
+ 0x7a, 0xbe, 0xb9, 0xdb, 0xc3, 0xa2, 0x96, 0x8d, 0x28, 0x41, 0xfb, 0x21, 0x49, 0x64, 0xb3, 0x2d,
+ 0xa1, 0x98, 0xff, 0x18, 0xab, 0xc2, 0x9f, 0x97, 0xc0, 0x74, 0x13, 0xfa, 0x0d, 0xb7, 0x03, 0x5d,
+ 0xad, 0x19, 0x61, 0x74, 0x03, 0x98, 0xc5, 0xa0, 0xa0, 0x69, 0x66, 0x88, 0x13, 0x9b, 0xa4, 0xde,
+ 0x0c, 0x16, 0xc2, 0x47, 0xfc, 0x39, 0xed, 0xc6, 0xfb, 0x52, 0xb5, 0xaf, 0xe5, 0x44, 0x7d, 0x00,
+ 0xe8, 0xa2, 0x2f, 0xe5, 0x26, 0xa6, 0x95, 0x8a, 0xed, 0xe7, 0x27, 0x92, 0xca, 0x7e, 0x9b, 0xf4,
+ 0x9d, 0x12, 0x00, 0x1b, 0xb6, 0x17, 0xc8, 0xf5, 0x71, 0x29, 0xe4, 0xaa, 0xfd, 0x53, 0x2e, 0xdd,
+ 0x2c, 0x26, 0x2a, 0x27, 0x46, 0x62, 0xbf, 0x90, 0x62, 0x6d, 0x21, 0x96, 0xd8, 0x04, 0xb6, 0x96,
+ 0x8f, 0x83, 0xe2, 0x79, 0xb3, 0xdb, 0x85, 0xbe, 0xf6, 0x4a, 0x19, 0x14, 0xcb, 0x2e, 0x34, 0x7d,
+ 0xa8, 0xc1, 0x48, 0x74, 0x1a, 0x98, 0x76, 0x1d, 0xc7, 0x5f, 0x37, 0xfd, 0x1d, 0x2a, 0xb7, 0xf0,
+ 0x59, 0x7d, 0x0a, 0x78, 0xd4, 0xd6, 0x5e, 0xb7, 0xeb, 0xc3, 0x87, 0xfc, 0x75, 0xd7, 0xda, 0x35,
+ 0xdd, 0xfd, 0x9a, 0x69, 0x6f, 0xef, 0x99, 0xdb, 0x90, 0xb2, 0x17, 0xf7, 0x9a, 0x3a, 0xaa, 0xfc,
+ 0x12, 0xdb, 0xf1, 0xdc, 0xc7, 0x0b, 0xfd, 0x3b, 0x39, 0x39, 0x11, 0x16, 0x17, 0x09, 0x7b, 0x31,
+ 0x3d, 0x8f, 0x06, 0xa6, 0x77, 0x6d, 0xb8, 0xeb, 0xd8, 0x56, 0x3b, 0xb0, 0x56, 0x83, 0x67, 0xed,
+ 0x63, 0x21, 0x1a, 0x4b, 0x1c, 0x1a, 0x8b, 0xc2, 0xa5, 0xa4, 0x83, 0xa2, 0x39, 0x42, 0xbf, 0x73,
+ 0x3d, 0xb8, 0x96, 0x74, 0x23, 0x9b, 0xad, 0xc6, 0x66, 0xd9, 0xd0, 0x4b, 0x2d, 0x7d, 0xb3, 0xd6,
+ 0x28, 0x97, 0x6a, 0x9b, 0x86, 0xbe, 0xde, 0x50, 0x20, 0x9a, 0x9d, 0x4f, 0x19, 0xb0, 0xed, 0x5c,
+ 0x86, 0xae, 0xf6, 0x9c, 0x9c, 0x18, 0x44, 0x09, 0x42, 0x49, 0x82, 0x4f, 0x16, 0x81, 0xef, 0x27,
+ 0x84, 0xfd, 0x8c, 0xa8, 0x60, 0x29, 0xf3, 0x31, 0x2d, 0xe6, 0xe3, 0x42, 0x7d, 0x4c, 0x22, 0xa9,
+ 0x47, 0x00, 0x48, 0xff, 0x28, 0x81, 0xa9, 0xb2, 0x63, 0x5f, 0x86, 0xae, 0xcf, 0x4e, 0xb2, 0x58,
+ 0x1c, 0x72, 0x7d, 0x38, 0x9c, 0x06, 0x53, 0xd0, 0xf6, 0x5d, 0xa7, 0x17, 0xcc, 0xb2, 0x82, 0x47,
+ 0xed, 0x8d, 0x69, 0x25, 0x4c, 0x4b, 0x8e, 0x5f, 0x9b, 0x1d, 0x5c, 0x10, 0xc7, 0x9e, 0xdc, 0xd7,
+ 0x76, 0x5e, 0x9b, 0x06, 0x97, 0xc1, 0x0c, 0x64, 0xdf, 0x8f, 0x7d, 0x45, 0x06, 0xf3, 0xa4, 0xdd,
+ 0x36, 0x21, 0x36, 0x0b, 0xb5, 0x06, 0xbb, 0xce, 0xd9, 0x27, 0xfc, 0xd5, 0x63, 0x9c, 0xf8, 0x8b,
+ 0x66, 0xaf, 0x17, 0xae, 0x90, 0xaf, 0x1e, 0x33, 0xe8, 0x33, 0x51, 0xf3, 0xa5, 0x22, 0xc8, 0x9b,
+ 0x7b, 0xfe, 0x8e, 0xf6, 0x2d, 0xe1, 0x19, 0x2f, 0xd7, 0x8f, 0x50, 0x7e, 0x62, 0x20, 0x39, 0x09,
+ 0x0a, 0xbe, 0x73, 0x09, 0x06, 0x72, 0x20, 0x0f, 0x08, 0x0e, 0xb3, 0xd7, 0x6b, 0xe1, 0x17, 0x14,
+ 0x8e, 0xe0, 0x19, 0x19, 0x58, 0x66, 0xbb, 0xed, 0xec, 0xd9, 0x7e, 0x35, 0x58, 0x25, 0x8f, 0x12,
+ 0xb4, 0x2f, 0x08, 0x6d, 0x43, 0x09, 0x30, 0x98, 0x0e, 0xb2, 0x8b, 0x23, 0x34, 0xa5, 0x45, 0x70,
+ 0x6b, 0x69, 0x7d, 0x7d, 0xb3, 0xd5, 0x78, 0x40, 0xaf, 0x47, 0xd6, 0xee, 0x66, 0xb5, 0xbe, 0xd9,
+ 0x5a, 0xd5, 0x37, 0xcb, 0x1b, 0x06, 0x5e, 0x9c, 0x2c, 0x95, 0xcb, 0x8d, 0x8d, 0x7a, 0x4b, 0x81,
+ 0xda, 0x5b, 0x25, 0x30, 0x57, 0xee, 0x3a, 0x5e, 0x88, 0xf0, 0xf5, 0x11, 0xc2, 0xa1, 0x18, 0x73,
+ 0x8c, 0x18, 0xb5, 0xff, 0x95, 0x13, 0xf5, 0x93, 0x09, 0x04, 0xc2, 0x90, 0x8f, 0xe9, 0xa5, 0xde,
+ 0x28, 0xe4, 0x27, 0x33, 0x9c, 0x5e, 0xf6, 0x4d, 0xe2, 0xb3, 0xcb, 0x60, 0xaa, 0x44, 0x14, 0x43,
+ 0xfb, 0x93, 0x1c, 0x28, 0x96, 0x1d, 0x7b, 0xcb, 0xda, 0x46, 0x16, 0x24, 0xb4, 0xcd, 0x8b, 0x5d,
+ 0x58, 0x31, 0x7d, 0xf3, 0xb2, 0x05, 0xaf, 0xe0, 0x0a, 0x4c, 0x1b, 0x7d, 0xa9, 0x88, 0x29, 0x9a,
+ 0x02, 0x2f, 0xee, 0x6d, 0x63, 0xa6, 0xa6, 0x0d, 0x36, 0x09, 0x8d, 0x1f, 0xe4, 0x71, 0xdd, 0x85,
+ 0x2e, 0xec, 0x42, 0xd3, 0x83, 0x68, 0x2e, 0x66, 0xc3, 0x2e, 0x56, 0xda, 0x69, 0x23, 0xee, 0xb5,
+ 0x7a, 0x16, 0xcc, 0x91, 0x57, 0xd8, 0xfe, 0xf1, 0xb0, 0x1a, 0x4f, 0x1b, 0x5c, 0x9a, 0xfa, 0x78,
+ 0x50, 0x80, 0x0f, 0xf9, 0xae, 0x79, 0xba, 0x83, 0xf1, 0x7a, 0xd4, 0x22, 0x71, 0x94, 0x5d, 0x0c,
+ 0x1c, 0x65, 0x17, 0x9b, 0xd8, 0x8d, 0xd6, 0x20, 0xb9, 0xb4, 0xff, 0x39, 0x1d, 0x5a, 0x2f, 0x9f,
+ 0x97, 0x23, 0xc5, 0x50, 0x41, 0xde, 0x36, 0x77, 0x21, 0xd5, 0x0b, 0xfc, 0x5f, 0xbd, 0x15, 0x1c,
+ 0x37, 0x2f, 0x9b, 0xbe, 0xe9, 0xd6, 0x9c, 0xb6, 0xd9, 0xc5, 0xc3, 0x66, 0xd0, 0xf2, 0xfb, 0x5f,
+ 0xe0, 0x4d, 0x2b, 0xdf, 0x71, 0x21, 0xce, 0x15, 0x6c, 0x5a, 0x05, 0x09, 0x88, 0xba, 0xd5, 0x76,
+ 0x6c, 0xcc, 0xbf, 0x6c, 0xe0, 0xff, 0x48, 0x2a, 0x1d, 0xcb, 0x43, 0x15, 0xc1, 0x54, 0xea, 0x64,
+ 0x3f, 0xa5, 0xb9, 0x6f, 0xb7, 0xf1, 0x86, 0xd5, 0xb4, 0x11, 0xf7, 0x5a, 0x5d, 0x02, 0xb3, 0x74,
+ 0xf7, 0x65, 0x0d, 0xe9, 0x55, 0x11, 0xeb, 0xd5, 0x0d, 0xbc, 0x1b, 0x22, 0xc1, 0x73, 0xb1, 0x1e,
+ 0xe5, 0x33, 0xd8, 0x8f, 0xd4, 0xa7, 0x83, 0x6b, 0xe9, 0x63, 0x79, 0xcf, 0xf3, 0x9d, 0x5d, 0x02,
+ 0xfa, 0xb2, 0xd5, 0x25, 0x35, 0x98, 0xc2, 0x35, 0x48, 0xca, 0xa2, 0xde, 0x09, 0x4e, 0xf6, 0x5c,
+ 0xb8, 0x05, 0xdd, 0x0b, 0xe6, 0xee, 0xde, 0x43, 0x2d, 0xd7, 0xb4, 0xbd, 0x9e, 0xe3, 0xfa, 0xa7,
+ 0xa7, 0x31, 0xf3, 0x03, 0xdf, 0xa9, 0xb7, 0x81, 0x13, 0x0f, 0x7a, 0x8e, 0x5d, 0xea, 0x59, 0x35,
+ 0xcb, 0xf3, 0xa1, 0x5d, 0xea, 0x74, 0xdc, 0xd3, 0x33, 0xb8, 0xac, 0x83, 0x2f, 0xd4, 0x9b, 0xc0,
+ 0xfc, 0x83, 0x8e, 0x65, 0x37, 0x7d, 0x17, 0x9a, 0xbb, 0x1b, 0x6e, 0xf7, 0x34, 0x20, 0x1b, 0x44,
+ 0x5c, 0x22, 0xed, 0x7c, 0xa7, 0x41, 0x91, 0x40, 0xa2, 0xbd, 0xb8, 0x20, 0xec, 0xd5, 0x4c, 0x85,
+ 0x94, 0x68, 0x2d, 0xde, 0x01, 0xa6, 0x68, 0xaf, 0x89, 0xc1, 0x9f, 0xbd, 0xf3, 0x54, 0xdf, 0x02,
+ 0x09, 0xa5, 0x62, 0x04, 0xd9, 0xd4, 0x27, 0x82, 0x62, 0x1b, 0x8b, 0x0a, 0xeb, 0xc1, 0xec, 0x9d,
+ 0xd7, 0x0e, 0x2e, 0x14, 0x67, 0x31, 0x68, 0x56, 0xed, 0x8b, 0xb2, 0x90, 0x23, 0x74, 0x12, 0xc7,
+ 0xe9, 0x7a, 0x8a, 0xaf, 0x4a, 0x23, 0x74, 0xc5, 0xb7, 0x81, 0x5b, 0x68, 0x3f, 0x4b, 0x6d, 0x9a,
+ 0xca, 0xe6, 0xd2, 0x46, 0x30, 0xab, 0x45, 0x96, 0x4e, 0xb3, 0x55, 0x32, 0x5a, 0x9b, 0xf5, 0x46,
+ 0x05, 0xcd, 0x86, 0x6f, 0x05, 0x37, 0x0f, 0xc9, 0xad, 0xb7, 0x36, 0xeb, 0xa5, 0x35, 0x5d, 0xd9,
+ 0xe2, 0xed, 0xa5, 0x66, 0xab, 0xb1, 0xbe, 0x69, 0x6c, 0xd4, 0xeb, 0xd5, 0xfa, 0x0a, 0x21, 0x86,
+ 0x0c, 0xd4, 0x53, 0x51, 0x86, 0xf3, 0x46, 0xb5, 0xa5, 0x6f, 0x96, 0x1b, 0xf5, 0xe5, 0xea, 0x8a,
+ 0x62, 0x0d, 0x33, 0xb6, 0x1e, 0x54, 0x6f, 0x00, 0xd7, 0x71, 0x9c, 0x54, 0x1b, 0x75, 0x34, 0x45,
+ 0x2f, 0x97, 0xea, 0x65, 0x1d, 0xcd, 0xc7, 0x2f, 0xa9, 0x1a, 0xb8, 0x9a, 0x90, 0xdb, 0x5c, 0xae,
+ 0xd6, 0xd8, 0x5d, 0xb5, 0x4f, 0xe7, 0xd4, 0xd3, 0xe0, 0x2a, 0xf6, 0x1d, 0xf5, 0x89, 0x50, 0x7e,
+ 0x3d, 0xa7, 0xde, 0x04, 0xae, 0xe7, 0xbe, 0x22, 0x1b, 0x64, 0x9b, 0xd5, 0xca, 0xe6, 0x5a, 0xb5,
+ 0xb9, 0x56, 0x6a, 0x95, 0x57, 0x95, 0xcf, 0xe0, 0xe9, 0x4b, 0x68, 0x8f, 0x33, 0xde, 0xc9, 0x2f,
+ 0x65, 0xed, 0x84, 0x12, 0xaf, 0xa8, 0x8f, 0x1b, 0x08, 0x7b, 0xb2, 0x5d, 0xfc, 0xc9, 0x70, 0xc4,
+ 0xa9, 0x70, 0x2a, 0x74, 0x47, 0x0a, 0x5a, 0xe9, 0x74, 0xa8, 0x35, 0x82, 0x0a, 0xdd, 0x00, 0xae,
+ 0xab, 0xeb, 0x04, 0x29, 0x43, 0x2f, 0x37, 0xce, 0xe9, 0xc6, 0xe6, 0xf9, 0x52, 0xad, 0xa6, 0xb7,
+ 0x36, 0x97, 0xab, 0x46, 0xb3, 0xa5, 0x6c, 0x69, 0xff, 0x24, 0x85, 0xcb, 0x52, 0x8c, 0xb4, 0xfe,
+ 0x44, 0x4a, 0xdb, 0xac, 0x13, 0x97, 0x9f, 0xbe, 0x0b, 0x14, 0x3d, 0xdf, 0xf4, 0xf7, 0x3c, 0xda,
+ 0xaa, 0x1f, 0x3d, 0xb8, 0x55, 0x2f, 0x36, 0x71, 0x26, 0x83, 0x66, 0xd6, 0xbe, 0x98, 0x4b, 0xd3,
+ 0x4c, 0xc7, 0xb0, 0x32, 0x65, 0x8d, 0x20, 0xe2, 0x33, 0x40, 0x0b, 0xb4, 0xbd, 0xda, 0xdc, 0x2c,
+ 0xd5, 0x0c, 0xbd, 0x54, 0xb9, 0x10, 0xae, 0x47, 0x41, 0xf5, 0x6a, 0x70, 0x62, 0xa3, 0x5e, 0x5a,
+ 0xaa, 0xe9, 0xb8, 0xb9, 0x34, 0xea, 0x75, 0xbd, 0x8c, 0xe4, 0xfe, 0x43, 0x78, 0xf7, 0x07, 0x59,
+ 0xe5, 0x98, 0x6f, 0x64, 0x39, 0x31, 0xf2, 0xff, 0x2b, 0x61, 0x37, 0xb7, 0x48, 0xc3, 0x58, 0x5a,
+ 0xe3, 0xc5, 0xe1, 0x0b, 0x42, 0x9e, 0x6d, 0x42, 0x9c, 0xa4, 0xc3, 0xe3, 0xfb, 0x47, 0xc0, 0xe3,
+ 0x6a, 0x70, 0x82, 0xc5, 0x03, 0x7b, 0xb8, 0xc5, 0xc3, 0xf0, 0xc7, 0x32, 0x98, 0x5a, 0xb3, 0xb6,
+ 0xb1, 0x7b, 0xf1, 0x5e, 0x64, 0xa0, 0x2c, 0x00, 0x29, 0xf4, 0xde, 0x91, 0xac, 0x0e, 0x37, 0x99,
+ 0x97, 0xc4, 0xd7, 0x5b, 0x84, 0x26, 0xec, 0x5f, 0x4c, 0xdd, 0x33, 0x51, 0x86, 0x63, 0x7a, 0xa6,
+ 0x17, 0x48, 0x69, 0x7a, 0xa6, 0xc1, 0xb4, 0x52, 0xc1, 0x84, 0x4c, 0x07, 0x17, 0x3e, 0x6b, 0xcf,
+ 0x72, 0x61, 0x07, 0x9b, 0x89, 0xb8, 0xde, 0xb2, 0xc1, 0x27, 0x9e, 0x75, 0x0f, 0x07, 0x26, 0xeb,
+ 0x65, 0x33, 0x07, 0xa6, 0xc3, 0xd1, 0x04, 0x6f, 0xf8, 0xa0, 0x97, 0x7a, 0xbd, 0xb1, 0xb1, 0xb2,
+ 0xba, 0xb9, 0x6c, 0xe8, 0x3a, 0x5d, 0x22, 0xde, 0xd6, 0xde, 0x25, 0x81, 0x79, 0x5a, 0x43, 0xea,
+ 0x3d, 0x71, 0x7d, 0x2c, 0xc8, 0x14, 0x8e, 0x7f, 0x67, 0xa7, 0x27, 0x2b, 0x3c, 0x1c, 0x4f, 0x48,
+ 0x12, 0x61, 0xa2, 0xfb, 0xc4, 0x9b, 0xc2, 0x26, 0x74, 0x3f, 0x07, 0xca, 0x93, 0x53, 0x53, 0xcc,
+ 0x7e, 0x8a, 0xf2, 0x62, 0x00, 0x8a, 0x4d, 0xd8, 0x85, 0x6d, 0x5f, 0xfb, 0x90, 0x3c, 0x72, 0x9b,
+ 0x88, 0x33, 0xb7, 0xe5, 0x54, 0xe6, 0x76, 0x3e, 0x03, 0x73, 0xbb, 0x30, 0xba, 0xb9, 0x5d, 0x4c,
+ 0x6b, 0x6e, 0x4f, 0xc5, 0x99, 0xdb, 0x09, 0xbd, 0xc6, 0x74, 0x62, 0xaf, 0xd1, 0x67, 0xa8, 0x1b,
+ 0x35, 0x6a, 0xd2, 0xf3, 0x89, 0x54, 0x99, 0x3f, 0x51, 0x4c, 0x3b, 0x8e, 0x13, 0xe0, 0x8f, 0xd6,
+ 0x3c, 0xff, 0xb1, 0x42, 0x9a, 0x71, 0x7f, 0x20, 0xc7, 0xe9, 0x5a, 0xc9, 0x2b, 0xf2, 0x19, 0x2c,
+ 0x3a, 0xaa, 0x37, 0x82, 0xeb, 0xa3, 0xe7, 0x4d, 0xfd, 0x99, 0xd5, 0x66, 0xab, 0x89, 0x6d, 0xf2,
+ 0x72, 0xc3, 0x30, 0x36, 0xd6, 0xc9, 0x76, 0xd5, 0x29, 0xa0, 0x46, 0x54, 0x8c, 0x8d, 0x3a, 0xb1,
+ 0xc0, 0xb7, 0x79, 0xea, 0xcb, 0xd5, 0x7a, 0x65, 0x33, 0x1c, 0xd5, 0xea, 0xcb, 0x0d, 0x65, 0x47,
+ 0x5d, 0x04, 0xb7, 0x32, 0xd4, 0x71, 0x07, 0x48, 0x4a, 0x28, 0xd5, 0x2b, 0x9b, 0x6b, 0x75, 0x7d,
+ 0xad, 0x51, 0xaf, 0x96, 0x71, 0x7a, 0x53, 0x6f, 0x29, 0x16, 0x32, 0x05, 0xfb, 0x6c, 0xfe, 0xa6,
+ 0x5e, 0x32, 0xca, 0xab, 0xba, 0x41, 0x8a, 0x7c, 0x50, 0xbd, 0x19, 0x9c, 0x2d, 0xd5, 0x1b, 0x2d,
+ 0x94, 0x52, 0xaa, 0x5f, 0x68, 0x5d, 0x58, 0xd7, 0x37, 0xd7, 0x8d, 0x46, 0x59, 0x6f, 0x36, 0xd1,
+ 0x48, 0x4a, 0x67, 0x08, 0x4a, 0x57, 0x7d, 0x1a, 0xb8, 0x9b, 0x61, 0x4d, 0x6f, 0x61, 0xdf, 0x88,
+ 0xb5, 0x06, 0x76, 0x8f, 0xab, 0xe8, 0x9b, 0xab, 0xa5, 0xe6, 0x66, 0xb5, 0x5e, 0x6e, 0xac, 0xad,
+ 0x97, 0x5a, 0x55, 0x34, 0xe0, 0xae, 0x1b, 0x8d, 0x56, 0x63, 0xf3, 0x9c, 0x6e, 0x34, 0xab, 0x8d,
+ 0xba, 0x62, 0xa3, 0x2a, 0x33, 0x23, 0x74, 0x60, 0x29, 0x39, 0xea, 0x75, 0xe0, 0x74, 0x90, 0x5e,
+ 0x6b, 0x20, 0x41, 0x33, 0x73, 0x86, 0x1e, 0x6b, 0x67, 0x35, 0x5b, 0x0d, 0x83, 0xcc, 0x1a, 0xd6,
+ 0xaa, 0x2b, 0x06, 0x9a, 0xea, 0x28, 0xcf, 0xca, 0x74, 0x4e, 0xf1, 0x2f, 0x12, 0xc8, 0x37, 0x7d,
+ 0xa7, 0xa7, 0x7d, 0x67, 0xd4, 0x1d, 0x9e, 0x01, 0xc0, 0xc5, 0xae, 0x10, 0x15, 0xd3, 0x37, 0xe9,
+ 0x6a, 0x0d, 0x93, 0xa2, 0xfd, 0x9a, 0xf0, 0xfe, 0x6d, 0x64, 0x75, 0x39, 0xbd, 0x98, 0xe1, 0xe3,
+ 0x9b, 0x62, 0xc7, 0x21, 0xe3, 0x09, 0xa5, 0x6b, 0x0f, 0x3f, 0x32, 0xca, 0x0e, 0xad, 0x06, 0x4e,
+ 0x31, 0xb0, 0x22, 0xf9, 0x07, 0x2a, 0x03, 0xd5, 0x47, 0x81, 0xab, 0xfa, 0x94, 0x0f, 0xeb, 0xdc,
+ 0x96, 0xfa, 0x1d, 0xe0, 0xd1, 0x8c, 0xfa, 0xeb, 0x6b, 0x8d, 0x73, 0x7a, 0xa8, 0xe8, 0x95, 0x52,
+ 0xab, 0xa4, 0x6c, 0x6b, 0x9f, 0x97, 0x41, 0x7e, 0xcd, 0xb9, 0xdc, 0xbf, 0x6d, 0x6e, 0xc3, 0x2b,
+ 0xcc, 0xde, 0x4a, 0xf0, 0xc8, 0x1f, 0xc1, 0x12, 0x12, 0xfb, 0x5a, 0xbc, 0x8b, 0xcc, 0x17, 0xa4,
+ 0x34, 0x62, 0x5f, 0x3b, 0xac, 0x5f, 0xcc, 0xdf, 0x8c, 0x22, 0xf6, 0x18, 0xd1, 0x42, 0xf5, 0x2c,
+ 0x38, 0x13, 0xbd, 0xa8, 0x56, 0xf4, 0x7a, 0xab, 0xba, 0x7c, 0x21, 0x12, 0x6e, 0xd5, 0x10, 0x12,
+ 0xff, 0xb0, 0x6e, 0x2e, 0x79, 0xad, 0xe0, 0x34, 0x38, 0x19, 0xbd, 0x5b, 0xd1, 0x5b, 0xc1, 0x9b,
+ 0x07, 0xb5, 0x87, 0x0b, 0x60, 0x8e, 0x74, 0xfb, 0x1b, 0xbd, 0x0e, 0xb2, 0xbe, 0x9f, 0x18, 0xa1,
+ 0x7b, 0x0b, 0x38, 0x5e, 0x5d, 0x5f, 0x6e, 0x36, 0x7d, 0xc7, 0x35, 0xb7, 0x21, 0x1e, 0x47, 0x89,
+ 0xb4, 0xfa, 0x93, 0xb5, 0xf7, 0x0a, 0xaf, 0xfe, 0xf3, 0x43, 0x0d, 0x29, 0x33, 0x06, 0xf5, 0xaf,
+ 0x08, 0xad, 0xd6, 0x0b, 0x10, 0x4c, 0x87, 0xfe, 0x83, 0x63, 0x6e, 0x73, 0xf1, 0xb8, 0x6c, 0x9d,
+ 0x7d, 0x9e, 0x04, 0x66, 0x5a, 0xd6, 0x2e, 0x7c, 0xb6, 0x63, 0x43, 0x4f, 0x9d, 0x02, 0xf2, 0xca,
+ 0x5a, 0x4b, 0x39, 0x86, 0xfe, 0xa0, 0x69, 0x51, 0x0e, 0xff, 0xd1, 0x51, 0x01, 0xe8, 0x4f, 0xa9,
+ 0xa5, 0xc8, 0xe8, 0xcf, 0x9a, 0xde, 0x52, 0xf2, 0xe8, 0x4f, 0x5d, 0x6f, 0x29, 0x05, 0xf4, 0x67,
+ 0xbd, 0xd6, 0x52, 0x8a, 0xe8, 0x4f, 0xb5, 0xd9, 0x52, 0xa6, 0xd0, 0x9f, 0xa5, 0x66, 0x4b, 0x99,
+ 0x46, 0x7f, 0xce, 0x35, 0x5b, 0xca, 0x0c, 0xfa, 0x53, 0x6e, 0xb5, 0x14, 0x80, 0xfe, 0xdc, 0xdf,
+ 0x6c, 0x29, 0xb3, 0xe8, 0x4f, 0xa9, 0xdc, 0x52, 0xe6, 0xf0, 0x1f, 0xbd, 0xa5, 0xcc, 0xa3, 0x3f,
+ 0xcd, 0x66, 0x4b, 0x59, 0xc0, 0x94, 0x9b, 0x2d, 0xe5, 0x38, 0x2e, 0xab, 0xda, 0x52, 0x14, 0xf4,
+ 0x67, 0xb5, 0xd9, 0x52, 0x4e, 0xe0, 0xcc, 0xcd, 0x96, 0xa2, 0xe2, 0x42, 0x9b, 0x2d, 0xe5, 0x2a,
+ 0x9c, 0xa7, 0xd9, 0x52, 0x4e, 0xe2, 0x22, 0x9a, 0x2d, 0xe5, 0x6a, 0xcc, 0x86, 0xde, 0x52, 0x4e,
+ 0xe1, 0x3c, 0x46, 0x4b, 0x79, 0x14, 0x7e, 0x55, 0x6f, 0x29, 0xa7, 0x31, 0x63, 0x7a, 0x4b, 0xb9,
+ 0x06, 0xff, 0x31, 0x5a, 0x8a, 0x86, 0x5f, 0x95, 0x5a, 0xca, 0xb5, 0xda, 0xa3, 0xc1, 0xcc, 0x0a,
+ 0xf4, 0x09, 0x88, 0x9a, 0x02, 0xe4, 0x15, 0xe8, 0xb3, 0x13, 0xf1, 0x57, 0xe6, 0xc1, 0xa3, 0xe8,
+ 0xe2, 0xcd, 0xb2, 0xeb, 0xec, 0xd6, 0xe0, 0xb6, 0xd9, 0xde, 0xd7, 0x1f, 0x42, 0x06, 0x9f, 0xf6,
+ 0xa2, 0x1c, 0xb7, 0xa2, 0xdd, 0x8b, 0x7a, 0x23, 0xfc, 0x3f, 0xd1, 0x40, 0x0e, 0xd6, 0xa8, 0x65,
+ 0x7e, 0x8d, 0x3a, 0xce, 0x24, 0xcc, 0x8b, 0x4c, 0x24, 0xff, 0x81, 0x6d, 0x0c, 0xdc, 0x86, 0x54,
+ 0xae, 0x6f, 0x43, 0x0a, 0xb5, 0xb0, 0x1e, 0x74, 0x3d, 0xc7, 0x36, 0xbb, 0x4d, 0xea, 0x7e, 0x44,
+ 0xe6, 0xaa, 0xfd, 0xc9, 0xea, 0x33, 0x82, 0x46, 0x45, 0x0c, 0xbe, 0xa7, 0x26, 0x2d, 0x6f, 0xf5,
+ 0x4b, 0x28, 0xa6, 0x7d, 0x7d, 0x26, 0x6c, 0x5f, 0x2d, 0xae, 0x7d, 0x3d, 0xfd, 0x10, 0xb4, 0xd3,
+ 0x35, 0xb5, 0xea, 0x68, 0x53, 0xd1, 0xc8, 0x39, 0x3f, 0xd8, 0xff, 0x92, 0xb5, 0xcf, 0x4b, 0xe0,
+ 0x94, 0x6e, 0x0f, 0x9a, 0xca, 0xb0, 0x6a, 0xf4, 0x56, 0x16, 0x9a, 0x75, 0x5e, 0xa4, 0x77, 0x0f,
+ 0xac, 0xf6, 0x60, 0x9a, 0x31, 0x12, 0xfd, 0xad, 0x50, 0xa2, 0x4d, 0x4e, 0xa2, 0xf7, 0x8d, 0x4e,
+ 0x3a, 0x9d, 0x40, 0xeb, 0x63, 0xed, 0xbb, 0xf2, 0xda, 0x5f, 0x48, 0xe0, 0x04, 0xf1, 0x20, 0xbc,
+ 0x9f, 0xcc, 0x9c, 0x70, 0x6f, 0xcf, 0x5b, 0x5f, 0xdd, 0x68, 0x96, 0x45, 0xf4, 0x9b, 0x49, 0xd1,
+ 0x5e, 0xc7, 0x0a, 0xfc, 0x01, 0x5e, 0xe0, 0x31, 0xfd, 0x78, 0x7f, 0x71, 0x31, 0xb2, 0xfe, 0xf5,
+ 0x50, 0xd6, 0x75, 0x4e, 0xd6, 0x77, 0x8f, 0x44, 0xf5, 0x68, 0xc5, 0xfc, 0xd5, 0x3c, 0x78, 0x34,
+ 0xe1, 0x90, 0x2a, 0x02, 0xe9, 0x07, 0x4b, 0x76, 0xc7, 0x80, 0x9e, 0x6f, 0xba, 0x3e, 0x17, 0x7a,
+ 0xa5, 0x6f, 0x6a, 0x9e, 0xcb, 0x60, 0x6a, 0x2e, 0x0d, 0x9d, 0x9a, 0x6b, 0xef, 0x61, 0x0d, 0xbc,
+ 0xf3, 0x3c, 0xb2, 0xa5, 0x04, 0x0c, 0x62, 0x6a, 0x18, 0xd7, 0xa2, 0x42, 0xcb, 0xef, 0x7b, 0x38,
+ 0x94, 0x97, 0x0f, 0x5d, 0x42, 0x3a, 0xc4, 0x7f, 0x6d, 0xbc, 0x96, 0x78, 0x9e, 0x7d, 0xc7, 0x9b,
+ 0x8d, 0x4a, 0x27, 0xd3, 0x29, 0xd4, 0x4b, 0xa6, 0xc1, 0x0c, 0xee, 0x72, 0x6a, 0x96, 0x7d, 0x49,
+ 0xfb, 0x73, 0x19, 0xcc, 0xd5, 0xe1, 0x95, 0xf2, 0x8e, 0xd9, 0xed, 0x42, 0x7b, 0x1b, 0x6a, 0x0f,
+ 0x72, 0xb6, 0xbd, 0xd9, 0xeb, 0xd5, 0xa3, 0xfd, 0xe1, 0xe0, 0x51, 0xbd, 0x0f, 0x14, 0xbc, 0xb6,
+ 0x13, 0x06, 0x75, 0xf8, 0xce, 0x98, 0xd5, 0xeb, 0xd2, 0x9e, 0xbf, 0xb3, 0x88, 0xcb, 0x2a, 0xf5,
+ 0xac, 0x26, 0xfa, 0xc0, 0x20, 0xdf, 0xd1, 0x71, 0xf2, 0xaf, 0x06, 0x76, 0xc6, 0xb9, 0x84, 0xce,
+ 0x38, 0x64, 0x7c, 0x91, 0x65, 0x3a, 0x66, 0x91, 0xe4, 0x06, 0x30, 0xdb, 0x0e, 0xb2, 0x84, 0xa7,
+ 0xf4, 0xd8, 0x24, 0xed, 0x2f, 0x53, 0x75, 0xd7, 0x42, 0x85, 0xa7, 0xd3, 0x2a, 0x38, 0x66, 0x53,
+ 0xf3, 0x6a, 0x70, 0xa2, 0xd5, 0x68, 0x6c, 0xae, 0x95, 0xea, 0x17, 0xa2, 0xd8, 0x2a, 0x5b, 0xda,
+ 0x2b, 0xf2, 0x60, 0xa1, 0xe9, 0x74, 0x2f, 0xc3, 0x08, 0xe7, 0x2a, 0xe7, 0xfe, 0xc9, 0xca, 0x29,
+ 0x77, 0x40, 0x4e, 0xea, 0x29, 0x50, 0x34, 0x6d, 0xef, 0x0a, 0x0c, 0xcc, 0x7f, 0xfa, 0x44, 0x61,
+ 0xfc, 0x08, 0xdb, 0x11, 0x18, 0x3c, 0x8c, 0xf7, 0x0c, 0x91, 0x24, 0xcf, 0x55, 0x0c, 0x90, 0x67,
+ 0xc1, 0x9c, 0x47, 0xbc, 0x44, 0x5a, 0x8c, 0x33, 0x10, 0x97, 0x86, 0x59, 0x24, 0x6e, 0x4a, 0x32,
+ 0x65, 0x11, 0x3f, 0x69, 0xaf, 0x0d, 0xfb, 0x8f, 0x0d, 0x0e, 0xe2, 0xd2, 0x61, 0x18, 0x4b, 0x07,
+ 0xf2, 0xab, 0xc6, 0x3d, 0x89, 0x3f, 0x0d, 0x4e, 0x06, 0x27, 0xd4, 0xcb, 0xab, 0xa5, 0x5a, 0x4d,
+ 0xaf, 0xaf, 0xe8, 0x9b, 0xd5, 0x0a, 0xd9, 0x4f, 0x8e, 0x52, 0x4a, 0xad, 0x96, 0xbe, 0xb6, 0xde,
+ 0x6a, 0x6e, 0xea, 0xcf, 0x2c, 0xeb, 0x7a, 0x05, 0x3b, 0x60, 0xe3, 0x13, 0x94, 0x81, 0xab, 0x7c,
+ 0xa9, 0xde, 0x3c, 0xaf, 0x1b, 0xca, 0xce, 0xd9, 0x12, 0x98, 0x65, 0x06, 0x0a, 0xc4, 0x5d, 0x05,
+ 0x6e, 0x99, 0x7b, 0x5d, 0x6a, 0x8e, 0x2b, 0xc7, 0x10, 0x77, 0x58, 0x36, 0x0d, 0xbb, 0xbb, 0xaf,
+ 0xe4, 0x54, 0x05, 0xcc, 0xb1, 0x63, 0x82, 0x22, 0x69, 0xef, 0xbc, 0x0e, 0xcc, 0x9c, 0x77, 0xdc,
+ 0x4b, 0xd8, 0x6b, 0x58, 0xfb, 0x00, 0x89, 0xc1, 0x16, 0x44, 0x94, 0x60, 0x0c, 0xb0, 0x57, 0x89,
+ 0xbb, 0x89, 0x05, 0xd4, 0x16, 0x87, 0x46, 0x8d, 0xb8, 0x01, 0xcc, 0x5e, 0x09, 0x72, 0x47, 0x2d,
+ 0x9d, 0x49, 0xd2, 0x7e, 0x51, 0xcc, 0xf1, 0x6b, 0x78, 0x91, 0xd9, 0xaf, 0xfa, 0xbf, 0x5d, 0x02,
+ 0xc5, 0x15, 0xe8, 0x97, 0xba, 0x5d, 0x56, 0x6e, 0x2f, 0x13, 0x3e, 0x47, 0xca, 0x55, 0xa2, 0xd4,
+ 0xed, 0xc6, 0x37, 0x2a, 0x46, 0x40, 0xc1, 0x79, 0x27, 0x2e, 0x4d, 0xd0, 0x4b, 0x7b, 0x48, 0x81,
+ 0xd9, 0x4b, 0xec, 0x63, 0x91, 0x6b, 0xf6, 0xeb, 0x19, 0x33, 0xe9, 0x09, 0x51, 0xfc, 0xbd, 0x5c,
+ 0xb2, 0x93, 0x54, 0x90, 0x4f, 0x7d, 0x00, 0x4c, 0xed, 0x79, 0xb0, 0x6c, 0x7a, 0xc1, 0xd0, 0xc6,
+ 0xd7, 0xb4, 0x71, 0xf1, 0x41, 0xd8, 0xf6, 0x17, 0xab, 0xbb, 0x68, 0xe2, 0xb3, 0x41, 0x32, 0x86,
+ 0xf1, 0x8a, 0xe8, 0xb3, 0x11, 0x50, 0x40, 0xd3, 0xce, 0x2b, 0x96, 0xbf, 0x53, 0xde, 0x31, 0x7d,
+ 0xba, 0xd9, 0x12, 0x3e, 0x6b, 0x2f, 0x1e, 0x01, 0xce, 0x44, 0x87, 0x9d, 0xd8, 0xe3, 0xe8, 0xa9,
+ 0x41, 0x1c, 0x83, 0x97, 0xcd, 0x28, 0x20, 0xfe, 0xad, 0x04, 0xf2, 0x8d, 0x1e, 0xb4, 0x85, 0xcf,
+ 0x5e, 0x86, 0xb2, 0x95, 0xfa, 0x64, 0xfb, 0x5a, 0x71, 0xb7, 0xe0, 0xb0, 0xd2, 0xa8, 0xe4, 0x18,
+ 0xc9, 0xde, 0x0e, 0xf2, 0x96, 0xbd, 0xe5, 0x50, 0xcb, 0xf6, 0xda, 0x18, 0x5b, 0xa7, 0x6a, 0x6f,
+ 0x39, 0x06, 0xce, 0x28, 0xea, 0x11, 0x9c, 0x54, 0x76, 0xf6, 0xe2, 0xfe, 0xbb, 0x69, 0x50, 0x24,
+ 0xea, 0xac, 0xbd, 0x54, 0x06, 0x72, 0xa9, 0xd3, 0x89, 0x11, 0xbc, 0x74, 0x40, 0xf0, 0x0e, 0xfe,
+ 0x2c, 0xc4, 0x24, 0x7c, 0xe6, 0x03, 0xaf, 0x09, 0xf6, 0xed, 0xb4, 0x49, 0x95, 0x3a, 0x9d, 0xf8,
+ 0x73, 0x0b, 0x61, 0x81, 0x12, 0x5f, 0x20, 0xdb, 0xc2, 0x65, 0xb1, 0x16, 0x9e, 0x7a, 0x20, 0x88,
+ 0xe5, 0x2f, 0x7b, 0x88, 0xfe, 0x41, 0x02, 0x53, 0x35, 0xcb, 0xf3, 0x11, 0x36, 0x25, 0x11, 0x6c,
+ 0xae, 0x03, 0x33, 0x81, 0x68, 0x50, 0x97, 0x87, 0xfa, 0xf3, 0x28, 0x81, 0x9f, 0x89, 0xdf, 0xcf,
+ 0xa3, 0xf3, 0xa4, 0xe4, 0xda, 0x53, 0x2e, 0xe2, 0xcf, 0xb4, 0x45, 0xc5, 0x4a, 0xfd, 0xc5, 0xfe,
+ 0x52, 0x28, 0xf0, 0x35, 0x4e, 0xe0, 0x77, 0x8d, 0x52, 0x64, 0xf6, 0x42, 0xff, 0x7d, 0x09, 0x00,
+ 0x54, 0x36, 0x3d, 0x38, 0xfc, 0x58, 0x2e, 0x1c, 0x48, 0x82, 0x74, 0x5f, 0xc1, 0x4a, 0x77, 0x8d,
+ 0x97, 0xee, 0x77, 0x0f, 0xaf, 0x6a, 0xd2, 0x01, 0x61, 0x55, 0x01, 0xb2, 0x15, 0x8a, 0x16, 0xfd,
+ 0xd5, 0xde, 0x1e, 0x0a, 0x75, 0x9d, 0x13, 0xea, 0x3d, 0x23, 0x96, 0x94, 0xbd, 0x5c, 0xff, 0x48,
+ 0x02, 0x53, 0x4d, 0xe8, 0xa3, 0x6e, 0x52, 0x3b, 0x27, 0xd2, 0xc3, 0x33, 0x6d, 0x5b, 0x12, 0x6c,
+ 0xdb, 0xdf, 0xc8, 0x89, 0x06, 0x86, 0x8b, 0x24, 0x43, 0x79, 0x8a, 0x59, 0x7d, 0x78, 0xbd, 0x50,
+ 0x60, 0xb8, 0x61, 0xd4, 0xb2, 0x97, 0xee, 0x5b, 0xa5, 0xd0, 0x53, 0x84, 0x3f, 0xd7, 0xc7, 0x9a,
+ 0xc5, 0xb9, 0x83, 0x66, 0xb1, 0xf8, 0xb9, 0x3e, 0xb6, 0x8e, 0xf1, 0x8e, 0x09, 0xa9, 0x8d, 0x8d,
+ 0x31, 0xf8, 0x0c, 0x8c, 0x22, 0xaf, 0xe7, 0xca, 0xa0, 0x48, 0x37, 0x0f, 0xee, 0x4b, 0xde, 0x3b,
+ 0x18, 0x3e, 0xb5, 0x78, 0xff, 0x08, 0xa6, 0x5c, 0xd2, 0xb2, 0x7c, 0xc8, 0x86, 0xc4, 0xb0, 0x71,
+ 0x1b, 0x28, 0xe0, 0xa8, 0xd9, 0x74, 0x9c, 0x8b, 0xdc, 0x3d, 0x02, 0x12, 0x3a, 0x7a, 0x6b, 0x90,
+ 0x4c, 0xa9, 0x51, 0x18, 0xc3, 0x4a, 0xfe, 0x28, 0x28, 0x7c, 0x55, 0x05, 0x60, 0x7d, 0xef, 0x62,
+ 0xd7, 0xf2, 0x76, 0x2c, 0x1b, 0xfb, 0x88, 0xcd, 0xd1, 0x47, 0x12, 0xfc, 0x39, 0xd1, 0xfc, 0x8b,
+ 0x35, 0x0a, 0x14, 0x20, 0xef, 0xb9, 0x16, 0x5d, 0x06, 0x40, 0x7f, 0xd5, 0x7b, 0x43, 0x6f, 0xcb,
+ 0x7c, 0x5f, 0xe0, 0x16, 0x24, 0x86, 0x88, 0x83, 0x45, 0xa6, 0xf4, 0xc8, 0xeb, 0x92, 0x8d, 0xf0,
+ 0x5d, 0xe0, 0x23, 0x7c, 0x73, 0xa7, 0xb9, 0x8b, 0x7d, 0xa7, 0xb9, 0x11, 0x8e, 0x9e, 0xf5, 0x6c,
+ 0x88, 0x5d, 0x8f, 0x64, 0x03, 0xff, 0x47, 0x5f, 0x60, 0xf7, 0x20, 0xec, 0x9d, 0x47, 0xce, 0x0c,
+ 0x44, 0x09, 0x6c, 0x9f, 0x37, 0x23, 0xd8, 0xe7, 0x7d, 0x34, 0x9a, 0xfb, 0x38, 0x82, 0x86, 0x73,
+ 0x0a, 0xc9, 0x71, 0xec, 0xe6, 0xfb, 0xd8, 0xd5, 0x3e, 0x21, 0x1c, 0x88, 0x93, 0x91, 0x71, 0xe2,
+ 0x2c, 0x86, 0x72, 0x20, 0x85, 0x1c, 0x30, 0x7b, 0xc0, 0x49, 0x3d, 0xf0, 0x30, 0xfa, 0xe9, 0x74,
+ 0x79, 0x77, 0x84, 0xf5, 0x1a, 0x15, 0x2c, 0x04, 0xc7, 0xe2, 0x1b, 0x4b, 0xf7, 0xeb, 0xe5, 0x96,
+ 0x02, 0x0f, 0x1e, 0x95, 0xc7, 0x87, 0xe2, 0xc9, 0x01, 0xf8, 0x68, 0x4d, 0x46, 0xfb, 0x1f, 0x12,
+ 0x28, 0x52, 0x73, 0xe3, 0xbe, 0x43, 0x42, 0xa8, 0xbd, 0x72, 0x14, 0x48, 0x12, 0xa3, 0x93, 0x7c,
+ 0x36, 0x2d, 0x00, 0x63, 0x30, 0x30, 0x2e, 0x64, 0x06, 0x80, 0xf6, 0xcf, 0x12, 0xc8, 0x23, 0x33,
+ 0x48, 0x2c, 0xf6, 0xc3, 0x67, 0x84, 0x5d, 0x82, 0x19, 0x01, 0x20, 0xf2, 0x31, 0xfa, 0xbd, 0x04,
+ 0x66, 0x7a, 0x24, 0x63, 0x18, 0x79, 0xe4, 0x26, 0x81, 0xce, 0x08, 0x1a, 0xd1, 0x67, 0xda, 0xfb,
+ 0x84, 0x0e, 0x3c, 0x24, 0xf3, 0x93, 0x0e, 0x0e, 0x7d, 0x1c, 0x61, 0x22, 0xb6, 0xb4, 0x7f, 0x95,
+ 0x00, 0x30, 0xa0, 0xe7, 0x74, 0x2f, 0xc3, 0x0d, 0xd7, 0xd2, 0xae, 0x8d, 0x00, 0xa0, 0xcd, 0x3e,
+ 0x17, 0x35, 0xfb, 0xcf, 0x49, 0xa2, 0xce, 0xbf, 0x9c, 0xe6, 0x05, 0xc4, 0x63, 0xc4, 0xff, 0x34,
+ 0x30, 0x45, 0xe5, 0x48, 0x6d, 0x4a, 0x31, 0xe1, 0x07, 0x1f, 0x69, 0x1f, 0x14, 0x72, 0x1e, 0x16,
+ 0xe1, 0x28, 0x1d, 0x00, 0xe5, 0x11, 0x00, 0x38, 0x0e, 0x66, 0x03, 0x00, 0x36, 0x8c, 0xaa, 0x02,
+ 0xb5, 0x77, 0xcb, 0xd8, 0xc3, 0x82, 0x0c, 0x6e, 0x87, 0xef, 0x69, 0xfe, 0x42, 0x78, 0xb2, 0xcf,
+ 0xc8, 0x23, 0x2c, 0x3f, 0x23, 0x80, 0x7e, 0x5b, 0x68, 0x76, 0x2f, 0xc0, 0xd0, 0x23, 0xa5, 0xbf,
+ 0x3a, 0xab, 0x83, 0x79, 0xce, 0x2a, 0x51, 0x4f, 0x83, 0x93, 0x5c, 0x02, 0x19, 0xef, 0x3a, 0xca,
+ 0x31, 0x55, 0x03, 0xa7, 0xb8, 0x37, 0xf4, 0x01, 0x76, 0x94, 0x9c, 0xf6, 0xc7, 0x7f, 0x94, 0x0b,
+ 0xd7, 0x7b, 0xde, 0x9f, 0xa7, 0x2b, 0x6d, 0x9f, 0xe2, 0x83, 0x5d, 0xb6, 0x1d, 0xdb, 0x87, 0x0f,
+ 0x31, 0x6e, 0x2a, 0x61, 0x42, 0xa2, 0xd5, 0x70, 0x1a, 0x4c, 0xf9, 0x2e, 0xeb, 0xba, 0x12, 0x3c,
+ 0xb2, 0x8a, 0x55, 0xe0, 0x15, 0xab, 0x0e, 0xce, 0x5a, 0x76, 0xbb, 0xbb, 0xd7, 0x81, 0x06, 0xec,
+ 0x9a, 0x48, 0x86, 0x5e, 0xc9, 0xab, 0xc0, 0x1e, 0xb4, 0x3b, 0xd0, 0xf6, 0x09, 0x9f, 0xc1, 0xb9,
+ 0x57, 0x81, 0x9c, 0xbc, 0x32, 0xde, 0xcb, 0x2b, 0xe3, 0x63, 0x07, 0x2d, 0xe1, 0x26, 0xac, 0xf7,
+ 0xdd, 0x05, 0x00, 0xa9, 0xdb, 0x39, 0x0b, 0x5e, 0xa1, 0x6a, 0x78, 0x4d, 0xdf, 0xaa, 0x5f, 0x23,
+ 0xcc, 0x60, 0x30, 0x99, 0xb5, 0x2f, 0x87, 0xea, 0xf7, 0x74, 0x4e, 0xfd, 0x6e, 0x13, 0x64, 0x21,
+ 0x9d, 0xd6, 0xf5, 0x46, 0xd0, 0xba, 0x79, 0x30, 0x13, 0xed, 0x26, 0xcb, 0xea, 0x35, 0xe0, 0xea,
+ 0xc0, 0xc3, 0xb8, 0xae, 0xeb, 0x95, 0xe6, 0xe6, 0xc6, 0xfa, 0x8a, 0x51, 0xaa, 0xe8, 0x0a, 0x40,
+ 0xfa, 0x49, 0xf4, 0x32, 0x74, 0x0c, 0xce, 0x6b, 0x7f, 0x20, 0x81, 0x02, 0x3e, 0xb4, 0xad, 0x7d,
+ 0xdf, 0x98, 0x34, 0xc7, 0xe3, 0x9c, 0x9e, 0xc2, 0x71, 0x57, 0xfc, 0x0a, 0x13, 0x2a, 0x4c, 0xcc,
+ 0xd5, 0xa1, 0xae, 0x30, 0x49, 0x20, 0x94, 0xfd, 0x4c, 0x08, 0x35, 0xc9, 0xe6, 0x8e, 0x73, 0xe5,
+ 0x3f, 0x73, 0x93, 0x44, 0xf5, 0x3f, 0xe2, 0x26, 0x39, 0x80, 0x85, 0x89, 0x37, 0xc9, 0x01, 0xed,
+ 0x2e, 0xa1, 0x99, 0x6a, 0x1f, 0x29, 0x84, 0xf3, 0xbf, 0x4f, 0x4a, 0x87, 0xda, 0xfb, 0x2a, 0x81,
+ 0x79, 0xcb, 0xf6, 0xa1, 0x6b, 0x9b, 0xdd, 0xe5, 0xae, 0xb9, 0x1d, 0xd8, 0xa7, 0xfd, 0x1b, 0x1e,
+ 0x55, 0x26, 0x8f, 0xc1, 0x7f, 0xa1, 0x9e, 0x01, 0xc0, 0x87, 0xbb, 0xbd, 0xae, 0xe9, 0x47, 0xaa,
+ 0xc7, 0xa4, 0xb0, 0xda, 0x97, 0xe7, 0xb5, 0xef, 0x0e, 0x70, 0x15, 0x01, 0xad, 0xb5, 0xdf, 0x83,
+ 0x1b, 0xb6, 0xf5, 0xac, 0x3d, 0x1c, 0x1b, 0x99, 0xe8, 0xe8, 0xa0, 0x57, 0xdc, 0x0e, 0x50, 0x91,
+ 0xdf, 0x01, 0x52, 0xef, 0x01, 0xd7, 0xe0, 0xb0, 0xd7, 0xf8, 0x8e, 0x90, 0xf3, 0x56, 0x67, 0x1b,
+ 0xfa, 0xd5, 0xad, 0x35, 0xcb, 0xf3, 0x2c, 0x7b, 0x1b, 0x4f, 0xc7, 0xa7, 0x8d, 0xf8, 0x0c, 0xda,
+ 0xdf, 0x0a, 0xc7, 0x5d, 0x0a, 0xfa, 0x8c, 0x21, 0x71, 0x97, 0xc2, 0x76, 0x2a, 0xf7, 0xb5, 0xd3,
+ 0x70, 0x55, 0x27, 0x2f, 0xb0, 0xaa, 0xc3, 0x62, 0x5a, 0x10, 0x5c, 0x1d, 0x78, 0x8d, 0x50, 0x60,
+ 0xa7, 0xa4, 0x6a, 0x64, 0xdf, 0xf7, 0x7d, 0x5d, 0x06, 0x0b, 0xa4, 0xe8, 0x25, 0xc7, 0xb9, 0xb4,
+ 0x6b, 0xba, 0x97, 0xb4, 0x9f, 0x38, 0xdc, 0x2e, 0x6e, 0xe2, 0xee, 0x55, 0xdc, 0x96, 0x6c, 0x9f,
+ 0xf2, 0xe6, 0xfb, 0x95, 0x57, 0xfb, 0x2d, 0xe1, 0x29, 0x09, 0x27, 0xcf, 0xa0, 0x52, 0x93, 0xd9,
+ 0xde, 0x12, 0x3b, 0xde, 0x28, 0xc2, 0x60, 0xf6, 0xc0, 0xff, 0x46, 0x08, 0x7c, 0x30, 0x8e, 0xb0,
+ 0x3b, 0x03, 0xe3, 0xc4, 0x5d, 0xfb, 0xca, 0x68, 0xd8, 0x05, 0x7c, 0x8d, 0x80, 0x9d, 0x02, 0xe4,
+ 0x4b, 0xa1, 0x33, 0x12, 0xfa, 0xcb, 0x56, 0x28, 0x9f, 0x1d, 0x9a, 0x31, 0x2c, 0x4f, 0x04, 0xcd,
+ 0x93, 0x3c, 0x0b, 0x8d, 0x5e, 0xa6, 0x98, 0x7e, 0x49, 0x78, 0xc7, 0x6d, 0xa0, 0x80, 0x08, 0x77,
+ 0x93, 0x69, 0x95, 0x62, 0xdb, 0x75, 0xe2, 0x6c, 0x66, 0x8f, 0xe6, 0x8b, 0x0a, 0x60, 0x26, 0x88,
+ 0x7f, 0x85, 0x6f, 0x14, 0x0c, 0x31, 0x3c, 0x05, 0x8a, 0x9e, 0xb3, 0xe7, 0xb6, 0x21, 0xdd, 0x03,
+ 0xa5, 0x4f, 0x23, 0xec, 0xd7, 0x0d, 0x35, 0x17, 0x0e, 0x58, 0x24, 0xf9, 0xd4, 0x16, 0x49, 0xbc,
+ 0xbd, 0x9b, 0x60, 0x3f, 0x68, 0x2f, 0x16, 0xbe, 0xf6, 0x83, 0xc3, 0xac, 0x09, 0xfd, 0x47, 0xa2,
+ 0x11, 0xf0, 0xab, 0x42, 0xbb, 0x41, 0x43, 0x6a, 0x92, 0x4e, 0xe5, 0x1a, 0x23, 0xd8, 0xc1, 0xd7,
+ 0x82, 0x47, 0x05, 0x39, 0xa8, 0x01, 0x8c, 0x0d, 0xde, 0x0d, 0xa3, 0xa6, 0xc8, 0xda, 0x73, 0xf3,
+ 0x40, 0x21, 0xac, 0x35, 0x42, 0x5b, 0x50, 0x7b, 0x59, 0xee, 0xa8, 0x0d, 0xde, 0xf8, 0x19, 0xec,
+ 0xef, 0x4a, 0xa2, 0xc1, 0xc2, 0x39, 0xc1, 0x47, 0xb5, 0x8b, 0xd1, 0xa4, 0x11, 0x9a, 0x59, 0x82,
+ 0xf2, 0x69, 0x6f, 0xc9, 0x89, 0xc4, 0x1e, 0x17, 0x63, 0x31, 0xfb, 0x5e, 0xe9, 0x1b, 0xf9, 0x20,
+ 0x8c, 0xe1, 0xb2, 0xeb, 0xec, 0x6e, 0xb8, 0x5d, 0xed, 0xdf, 0x84, 0xae, 0x76, 0x88, 0x99, 0x5d,
+ 0x48, 0xf1, 0xb3, 0x0b, 0xbc, 0x22, 0xdd, 0x8d, 0xb6, 0xc2, 0xba, 0x23, 0x0c, 0xdf, 0xea, 0xcd,
+ 0x60, 0xc1, 0xec, 0x74, 0xd6, 0xcd, 0x6d, 0x58, 0x46, 0xd3, 0x76, 0xdb, 0xa7, 0x21, 0xce, 0xfa,
+ 0x52, 0x13, 0xa7, 0x32, 0x7c, 0x1f, 0x39, 0x75, 0xc0, 0x2a, 0x15, 0x5f, 0x86, 0xe5, 0x40, 0xa4,
+ 0xf2, 0x9b, 0xc8, 0xf0, 0x87, 0x86, 0x8c, 0xf6, 0x8e, 0x19, 0x05, 0x64, 0xa4, 0x4f, 0x82, 0xbe,
+ 0x58, 0x02, 0x7c, 0x67, 0xaf, 0x79, 0xbf, 0x22, 0x81, 0x29, 0x84, 0x47, 0xa9, 0xd3, 0xd1, 0x1e,
+ 0xc3, 0xc5, 0x2d, 0x8d, 0xf5, 0x86, 0x7b, 0x81, 0xb0, 0x1b, 0x62, 0x50, 0x43, 0x42, 0x3f, 0x06,
+ 0x93, 0x48, 0x88, 0x12, 0x27, 0x44, 0x31, 0x6f, 0xc3, 0xc4, 0x22, 0xb2, 0x17, 0xdf, 0x67, 0x24,
+ 0x30, 0x1f, 0xcc, 0x33, 0x96, 0xa1, 0xdf, 0xde, 0xd1, 0xee, 0x12, 0x5d, 0xe7, 0xa2, 0x2d, 0x31,
+ 0xdc, 0x12, 0xee, 0x6a, 0xdf, 0xca, 0xa5, 0x54, 0x79, 0xae, 0xe4, 0x98, 0x45, 0xc2, 0x54, 0xba,
+ 0x98, 0x44, 0x30, 0x7b, 0x61, 0x7e, 0x59, 0x02, 0xa0, 0xe5, 0x84, 0x93, 0xe5, 0x43, 0x48, 0xf2,
+ 0x27, 0x85, 0x77, 0x8b, 0x69, 0xc5, 0xa3, 0x62, 0xd3, 0xf7, 0x1c, 0x82, 0xce, 0x54, 0xc3, 0x4a,
+ 0x9a, 0x48, 0x5b, 0x9f, 0xa9, 0xec, 0xf5, 0xba, 0x56, 0xdb, 0xf4, 0xfb, 0x3d, 0x00, 0xe3, 0xc5,
+ 0x8b, 0xaf, 0xe3, 0x4e, 0x65, 0x34, 0x86, 0x65, 0xc4, 0xc8, 0x92, 0xc4, 0xf9, 0x91, 0x82, 0x38,
+ 0x3f, 0x82, 0x5e, 0x3d, 0x43, 0x88, 0x4f, 0x40, 0x3d, 0x65, 0x70, 0xbc, 0xd1, 0x83, 0xf6, 0x92,
+ 0x0b, 0xcd, 0x4e, 0xdb, 0xdd, 0xdb, 0xbd, 0xe8, 0xb1, 0xee, 0xab, 0xc9, 0x3a, 0xca, 0xac, 0x5c,
+ 0x4b, 0xdc, 0xca, 0xb5, 0xf6, 0xc3, 0xb2, 0x68, 0x24, 0x36, 0x66, 0x7f, 0x85, 0xe1, 0x61, 0x84,
+ 0xa1, 0x2e, 0x95, 0xd3, 0x55, 0xdf, 0x22, 0x75, 0x3e, 0xcd, 0x22, 0xf5, 0x9b, 0x85, 0xe2, 0xba,
+ 0x09, 0xd5, 0x6b, 0x22, 0xbe, 0x73, 0x0b, 0x4d, 0xe8, 0xc7, 0xc0, 0x7b, 0x13, 0x98, 0xbf, 0x18,
+ 0xbd, 0x09, 0x21, 0xe6, 0x13, 0x07, 0x78, 0xb4, 0xbe, 0x35, 0xed, 0x0a, 0x0d, 0xcf, 0x42, 0x0c,
+ 0xba, 0x21, 0x82, 0x92, 0x88, 0xdb, 0x5c, 0xaa, 0xe5, 0x96, 0xc4, 0xf2, 0xb3, 0x47, 0xe1, 0x13,
+ 0x12, 0x98, 0xc5, 0x97, 0x8c, 0x2f, 0xed, 0xe3, 0x83, 0x9c, 0x82, 0x46, 0xc9, 0x8b, 0x58, 0x31,
+ 0xab, 0x20, 0xdf, 0xb5, 0xec, 0x4b, 0x81, 0xbf, 0x23, 0xfa, 0x1f, 0x5d, 0x51, 0x2a, 0x0d, 0xb8,
+ 0xa2, 0x34, 0xdc, 0x26, 0x09, 0xcb, 0x8d, 0x19, 0x4d, 0xdf, 0x90, 0x13, 0xb9, 0xa2, 0x74, 0x28,
+ 0xb9, 0xec, 0xc5, 0xf8, 0xd7, 0x79, 0x50, 0x6c, 0x42, 0xd3, 0x6d, 0xef, 0x68, 0xef, 0x97, 0x06,
+ 0x4e, 0x25, 0xa6, 0xf9, 0xa9, 0xc4, 0x32, 0x98, 0xda, 0xb2, 0xba, 0x3e, 0x74, 0x89, 0x0f, 0x38,
+ 0xdb, 0xb5, 0x93, 0x26, 0xbe, 0xd4, 0x75, 0xda, 0x97, 0x16, 0xa9, 0x69, 0xbf, 0x18, 0xc4, 0x8b,
+ 0x5e, 0x5c, 0xc6, 0x1f, 0x19, 0xc1, 0xc7, 0xc8, 0x20, 0xf4, 0x1c, 0xd7, 0x8f, 0xbb, 0x7f, 0x28,
+ 0x86, 0x4a, 0xd3, 0x71, 0x7d, 0x83, 0x7c, 0x88, 0x60, 0xde, 0xda, 0xeb, 0x76, 0x5b, 0xf0, 0x21,
+ 0x3f, 0x98, 0xd6, 0x05, 0xcf, 0xc8, 0x58, 0x74, 0xb6, 0xb6, 0x3c, 0x48, 0x16, 0x15, 0x0a, 0x06,
+ 0x7d, 0x52, 0x4f, 0x82, 0x42, 0xd7, 0xda, 0xb5, 0xc8, 0x44, 0xa4, 0x60, 0x90, 0x07, 0xf5, 0x56,
+ 0xa0, 0x44, 0x73, 0x20, 0xc2, 0xe8, 0xe9, 0x22, 0x6e, 0x9a, 0x07, 0xd2, 0x91, 0xce, 0x5c, 0x82,
+ 0xfb, 0xde, 0xe9, 0x29, 0xfc, 0x1e, 0xff, 0xe7, 0x0f, 0xdc, 0x88, 0x6c, 0x98, 0x10, 0x89, 0xc7,
+ 0xcf, 0x70, 0x5d, 0xd8, 0x76, 0xdc, 0x4e, 0x20, 0x9b, 0xf8, 0x09, 0x06, 0xcd, 0x97, 0x6e, 0x9b,
+ 0x63, 0x60, 0xe1, 0xd9, 0x6b, 0xda, 0x7b, 0x8a, 0xa8, 0xdb, 0x44, 0x45, 0x9f, 0xb7, 0xfc, 0x9d,
+ 0x35, 0xe8, 0x9b, 0xda, 0x5f, 0xcb, 0x03, 0x35, 0x6e, 0xf6, 0x7f, 0x6b, 0xdc, 0x10, 0x8d, 0x23,
+ 0x31, 0xbf, 0xfc, 0x3d, 0xd7, 0x46, 0x72, 0xa4, 0x7e, 0xb4, 0x4c, 0x8a, 0x7a, 0x0f, 0xb8, 0x26,
+ 0x7a, 0x0a, 0x96, 0x52, 0x2b, 0x8c, 0x6b, 0xed, 0xb4, 0x11, 0x9f, 0x41, 0x5d, 0x07, 0x37, 0x92,
+ 0x97, 0xab, 0xad, 0xb5, 0xda, 0xaa, 0xb5, 0xbd, 0xd3, 0xb5, 0xb6, 0x77, 0x7c, 0xaf, 0x6a, 0x7b,
+ 0x3e, 0x34, 0x3b, 0x8d, 0x2d, 0x83, 0xdc, 0x1c, 0x06, 0x30, 0x1d, 0x91, 0xac, 0xbc, 0x8f, 0xb8,
+ 0xd8, 0xe8, 0xc6, 0x6a, 0x4a, 0x4c, 0x4b, 0x79, 0x32, 0x6a, 0x29, 0xde, 0x5e, 0x37, 0xc4, 0xf4,
+ 0xba, 0x3e, 0x4c, 0x23, 0x55, 0xdf, 0xeb, 0xe2, 0xe6, 0x82, 0x33, 0xa7, 0x1d, 0xe7, 0x12, 0x38,
+ 0xc9, 0xbe, 0xd9, 0xfc, 0x5b, 0x11, 0x14, 0x56, 0x5c, 0xb3, 0xb7, 0xa3, 0x3d, 0x97, 0xe9, 0x9f,
+ 0xc7, 0xd5, 0x26, 0x42, 0xed, 0x94, 0x86, 0x69, 0xa7, 0x3c, 0x44, 0x3b, 0xf3, 0x8c, 0x76, 0xc6,
+ 0x2f, 0x3a, 0x9f, 0x05, 0x73, 0x6d, 0xa7, 0xdb, 0x85, 0x6d, 0x24, 0x8f, 0x6a, 0x07, 0xaf, 0xf6,
+ 0xcc, 0x18, 0x5c, 0x1a, 0x8e, 0xa9, 0x0f, 0xfd, 0x26, 0x59, 0x63, 0x27, 0x4a, 0x1f, 0x25, 0x68,
+ 0x2f, 0x93, 0x40, 0x5e, 0xef, 0x6c, 0x43, 0x6e, 0x1d, 0x3e, 0xc7, 0xac, 0xc3, 0x9f, 0x02, 0x45,
+ 0xdf, 0x74, 0xb7, 0xa1, 0x1f, 0xac, 0x13, 0x90, 0xa7, 0x30, 0xd4, 0xbf, 0xcc, 0x84, 0xfa, 0xff,
+ 0x6e, 0x90, 0x47, 0x32, 0xa3, 0x6e, 0xf1, 0x37, 0x0e, 0x82, 0x1f, 0xcb, 0x7e, 0x11, 0x95, 0xb8,
+ 0x88, 0x6a, 0x6d, 0xe0, 0x0f, 0xfa, 0xb1, 0x2e, 0x1c, 0x0c, 0x45, 0x7b, 0x1d, 0x98, 0xb1, 0xda,
+ 0x8e, 0x5d, 0xdd, 0x35, 0xb7, 0x21, 0xad, 0x66, 0x94, 0x10, 0xbc, 0xd5, 0x77, 0x9d, 0x07, 0x2d,
+ 0xba, 0xa8, 0x15, 0x25, 0xa0, 0x2a, 0xec, 0x58, 0x9d, 0x0e, 0xb4, 0x69, 0xcb, 0xa6, 0x4f, 0x67,
+ 0xcf, 0x80, 0x3c, 0xe2, 0x01, 0xe9, 0x0f, 0x32, 0x16, 0x94, 0x63, 0xea, 0x1c, 0x6a, 0x56, 0xa4,
+ 0xf1, 0x2a, 0x39, 0x7e, 0xcd, 0x55, 0xc4, 0x6b, 0x88, 0x54, 0x6e, 0x70, 0xe3, 0x7a, 0x3c, 0x28,
+ 0xd8, 0x4e, 0x07, 0x0e, 0x1d, 0x84, 0x48, 0x2e, 0xf5, 0x49, 0xa0, 0x00, 0x3b, 0xa8, 0x57, 0x90,
+ 0x71, 0xf6, 0x33, 0xc9, 0xb2, 0x34, 0x48, 0xe6, 0x74, 0xae, 0x49, 0x83, 0xb8, 0xcd, 0xbe, 0x01,
+ 0xfe, 0xe8, 0x14, 0x38, 0x4e, 0xfa, 0x80, 0xe6, 0xde, 0x45, 0x44, 0xea, 0x22, 0xd4, 0x5e, 0x3f,
+ 0x78, 0xe0, 0x3a, 0xce, 0x2b, 0xfb, 0x49, 0x50, 0xf0, 0xf6, 0x2e, 0x86, 0x46, 0x28, 0x79, 0x60,
+ 0x9b, 0xae, 0x34, 0x96, 0xe1, 0x4c, 0x1e, 0x75, 0x38, 0xe3, 0x86, 0x26, 0x39, 0x68, 0xfc, 0xd1,
+ 0x40, 0x46, 0x0e, 0x74, 0x04, 0x03, 0xd9, 0xa0, 0x61, 0xe8, 0x34, 0x98, 0x32, 0xb7, 0x7c, 0xe8,
+ 0x46, 0x66, 0x22, 0x7d, 0x44, 0x43, 0xe5, 0x45, 0xb8, 0xe5, 0xb8, 0x48, 0x2c, 0x24, 0x2c, 0x6c,
+ 0xf8, 0xcc, 0xb4, 0x5c, 0xc0, 0xed, 0xa0, 0xdd, 0x06, 0x4e, 0xd8, 0x4e, 0x05, 0xf6, 0xa8, 0x9c,
+ 0x09, 0x8a, 0xf3, 0xe4, 0x76, 0xf6, 0x03, 0x2f, 0x0e, 0x74, 0x25, 0x0b, 0x07, 0xbb, 0x12, 0xed,
+ 0x73, 0x69, 0xe7, 0xcc, 0x7d, 0x40, 0x8f, 0xcd, 0x42, 0x53, 0x9f, 0x0a, 0xe6, 0x3a, 0xd4, 0x43,
+ 0xac, 0x6d, 0x85, 0xad, 0x24, 0xf6, 0x3b, 0x2e, 0x73, 0xa4, 0x48, 0x79, 0x56, 0x91, 0x56, 0xc0,
+ 0x34, 0x3e, 0x7a, 0x8d, 0x34, 0xa9, 0xd0, 0xe7, 0x91, 0x8f, 0xa7, 0x75, 0x61, 0xa5, 0x18, 0xb1,
+ 0x2d, 0x96, 0xe9, 0x27, 0x46, 0xf8, 0x71, 0xba, 0xd9, 0x77, 0xb2, 0x84, 0xb2, 0x6f, 0x8e, 0xbf,
+ 0x54, 0x04, 0xd7, 0x94, 0x5d, 0xc7, 0xf3, 0xf0, 0x11, 0x9c, 0xfe, 0x86, 0xf9, 0x46, 0x89, 0xbb,
+ 0xf4, 0xe7, 0x11, 0xdd, 0xfc, 0x06, 0x35, 0xa8, 0xc9, 0x35, 0x8d, 0xbf, 0x10, 0x0e, 0x5a, 0x13,
+ 0xee, 0x3f, 0xc4, 0x08, 0xfd, 0x3f, 0x47, 0x23, 0x79, 0x4f, 0x4e, 0x24, 0x8e, 0x4e, 0x4a, 0x59,
+ 0x65, 0xdf, 0x5c, 0xbe, 0x24, 0x81, 0x6b, 0xfb, 0xb9, 0xd9, 0xb0, 0xbd, 0xb0, 0xc1, 0x5c, 0x3f,
+ 0xa4, 0xbd, 0xf0, 0x71, 0x57, 0x12, 0xef, 0xf8, 0x8d, 0xa9, 0x3b, 0x53, 0x5a, 0xcc, 0x62, 0x49,
+ 0x74, 0xa0, 0x27, 0xe9, 0x8e, 0xdf, 0xd4, 0xe4, 0xb3, 0x17, 0xee, 0xef, 0xe6, 0xc1, 0xf1, 0x15,
+ 0xd7, 0xd9, 0xeb, 0x79, 0x51, 0x0f, 0xf4, 0x27, 0x83, 0x37, 0x64, 0x8b, 0x22, 0xa6, 0xc1, 0x0d,
+ 0x60, 0xd6, 0xa5, 0xd6, 0x5c, 0xb4, 0x3d, 0xcb, 0x26, 0xb1, 0xbd, 0x97, 0x7c, 0x98, 0xde, 0x2b,
+ 0xea, 0x67, 0xf2, 0x5c, 0x3f, 0xd3, 0xdf, 0x73, 0x14, 0x06, 0xf4, 0x1c, 0x7f, 0x2c, 0xa5, 0x1c,
+ 0x54, 0xfb, 0x44, 0x14, 0xd3, 0x5f, 0x94, 0x41, 0x71, 0x1b, 0x67, 0xa4, 0xdd, 0xc5, 0xe3, 0xc4,
+ 0x6a, 0x86, 0x89, 0x1b, 0xf4, 0xd3, 0x48, 0xae, 0x32, 0xab, 0xc3, 0xa9, 0x06, 0xb8, 0x64, 0x6e,
+ 0xb3, 0x57, 0xaa, 0xd7, 0xe6, 0xc1, 0x5c, 0x58, 0x7a, 0xb5, 0xe3, 0x71, 0xd1, 0x5d, 0x19, 0x8d,
+ 0x9a, 0x17, 0xd1, 0xa8, 0x03, 0xeb, 0xcc, 0xe1, 0xa8, 0x23, 0x33, 0xa3, 0xce, 0xc0, 0xd1, 0x65,
+ 0x2e, 0x66, 0x74, 0xd1, 0x9e, 0x23, 0x8b, 0x5e, 0x9b, 0xc7, 0x77, 0xad, 0xb8, 0x36, 0x8f, 0xe4,
+ 0xc1, 0x42, 0xf0, 0xf2, 0xbe, 0xe1, 0xb5, 0xca, 0x5e, 0x49, 0x3e, 0x2c, 0x81, 0x13, 0x07, 0x3b,
+ 0xf3, 0xef, 0xe0, 0xbd, 0xd4, 0x50, 0x9d, 0xbc, 0xd0, 0x4b, 0x0d, 0x3f, 0xf1, 0x9b, 0x74, 0x89,
+ 0x41, 0x50, 0x38, 0x7b, 0x6f, 0x78, 0x27, 0x2e, 0x16, 0xe6, 0x44, 0x90, 0x68, 0xf6, 0x02, 0xfc,
+ 0x29, 0x19, 0xcc, 0x34, 0xa1, 0x5f, 0x33, 0xf7, 0x9d, 0x3d, 0x5f, 0x33, 0x45, 0xb7, 0xe7, 0x9e,
+ 0x02, 0x8a, 0x5d, 0xfc, 0x09, 0xee, 0x60, 0xd8, 0xa0, 0xa3, 0xec, 0xfe, 0x16, 0xf6, 0x0d, 0x22,
+ 0xa4, 0x0d, 0x9a, 0x9f, 0x8f, 0x3e, 0x23, 0xb2, 0x3b, 0x1a, 0x72, 0x37, 0x96, 0xad, 0x9d, 0x54,
+ 0x7b, 0xa7, 0x71, 0x45, 0x67, 0x0f, 0xcb, 0x0f, 0xcb, 0x60, 0xbe, 0x09, 0xfd, 0xaa, 0xb7, 0x6c,
+ 0x5e, 0x76, 0x5c, 0xcb, 0x87, 0xda, 0x8a, 0x28, 0x34, 0x67, 0x00, 0xb0, 0xc2, 0xcf, 0x68, 0x4c,
+ 0x2c, 0x26, 0x45, 0x7b, 0x4b, 0x5a, 0x47, 0x21, 0x8e, 0x8f, 0xb1, 0x80, 0x90, 0xca, 0xc7, 0x22,
+ 0xa9, 0xf8, 0x09, 0x5c, 0xfc, 0x2d, 0x51, 0x20, 0x4a, 0x6e, 0x7b, 0xc7, 0xba, 0x0c, 0x3b, 0x29,
+ 0x81, 0x08, 0x3e, 0x8b, 0x80, 0x08, 0x09, 0xa5, 0x76, 0x5f, 0xe1, 0xf8, 0x18, 0x87, 0xfb, 0x4a,
+ 0x12, 0xc1, 0x89, 0x84, 0xb5, 0x42, 0x5d, 0x0f, 0x5d, 0xcf, 0xbc, 0x4f, 0x54, 0xac, 0x91, 0xc9,
+ 0x26, 0xb1, 0x26, 0xdb, 0x48, 0x1d, 0x0b, 0x29, 0x7b, 0x98, 0x4e, 0xe7, 0xb3, 0xe8, 0x58, 0x06,
+ 0x16, 0x9d, 0xbd, 0xd0, 0xdf, 0x27, 0x83, 0xab, 0xc3, 0x78, 0x2f, 0x4d, 0xe8, 0x57, 0x4c, 0x6f,
+ 0xe7, 0xa2, 0x63, 0xba, 0x1d, 0xad, 0x3c, 0x86, 0x03, 0x87, 0xda, 0x1f, 0xb2, 0x20, 0xd4, 0x79,
+ 0x10, 0x06, 0xba, 0x92, 0x0e, 0xe4, 0x65, 0x1c, 0x9d, 0x4c, 0xa2, 0xb7, 0xeb, 0x3b, 0x42, 0xb0,
+ 0x9e, 0xc1, 0x81, 0x75, 0xef, 0xa8, 0x2c, 0x66, 0x0f, 0xdc, 0xcf, 0x92, 0x11, 0x81, 0xf1, 0x7a,
+ 0xbe, 0x20, 0x0a, 0x58, 0x8c, 0xd7, 0xab, 0x1c, 0xeb, 0xf5, 0x3a, 0xd2, 0x18, 0x31, 0xd4, 0x63,
+ 0x39, 0xdb, 0x31, 0xe2, 0x08, 0xbd, 0x91, 0xdf, 0x25, 0x03, 0x05, 0x07, 0xfc, 0x62, 0x3c, 0xc2,
+ 0xd9, 0xf8, 0xd9, 0xc9, 0xe8, 0x1c, 0xf0, 0x3e, 0x9f, 0x4a, 0xeb, 0x7d, 0xae, 0xbd, 0x33, 0xad,
+ 0x8f, 0x79, 0x3f, 0xb7, 0x63, 0x41, 0x2c, 0x95, 0x0b, 0xf9, 0x10, 0x0e, 0xb2, 0x07, 0xed, 0xc7,
+ 0x64, 0x00, 0x50, 0x83, 0xa6, 0x67, 0x23, 0x9e, 0x29, 0x0a, 0xd7, 0xed, 0xac, 0xdf, 0x3d, 0x02,
+ 0xea, 0xea, 0x3e, 0xa0, 0x08, 0xc5, 0xe8, 0xd4, 0xc5, 0xeb, 0xd3, 0xfa, 0x56, 0x46, 0x5c, 0x8d,
+ 0x05, 0x96, 0x54, 0xde, 0x96, 0xb1, 0x65, 0x67, 0x0f, 0xc8, 0x7f, 0x97, 0x40, 0xa1, 0xe5, 0x34,
+ 0xa1, 0x7f, 0x78, 0x53, 0x20, 0x75, 0xd4, 0x00, 0x5c, 0xee, 0x38, 0xa2, 0x06, 0x0c, 0x22, 0x94,
+ 0xbd, 0xe8, 0xde, 0x2b, 0x81, 0xb9, 0x96, 0x53, 0x0e, 0x17, 0xa7, 0xc4, 0x7d, 0x55, 0xc5, 0xaf,
+ 0xfe, 0x0f, 0x2b, 0x18, 0x15, 0x73, 0xa8, 0xab, 0xff, 0x87, 0xd3, 0xcb, 0x5e, 0x6e, 0x77, 0x81,
+ 0xe3, 0x1b, 0x76, 0xc7, 0x31, 0x60, 0xc7, 0xa1, 0x2b, 0xdd, 0xaa, 0x0a, 0xf2, 0x7b, 0x76, 0xc7,
+ 0xc1, 0x2c, 0x17, 0x0c, 0xfc, 0x1f, 0xa5, 0xb9, 0xb0, 0xe3, 0x50, 0xdf, 0x00, 0xfc, 0x5f, 0xfb,
+ 0x0b, 0x19, 0xe4, 0xd1, 0xb7, 0xe2, 0xa2, 0x7e, 0x97, 0x9c, 0x32, 0x0e, 0x02, 0x22, 0x3f, 0x16,
+ 0x4b, 0xe8, 0x3e, 0x66, 0xed, 0x9f, 0x78, 0xb0, 0xde, 0x18, 0x57, 0x1e, 0x23, 0x8a, 0x68, 0xcd,
+ 0x5f, 0x3d, 0x0d, 0xa6, 0x2e, 0x76, 0x9d, 0xf6, 0xa5, 0xe8, 0xb8, 0x3e, 0x7d, 0x54, 0x6f, 0x05,
+ 0x05, 0xd7, 0xb4, 0xb7, 0x21, 0xdd, 0x53, 0x38, 0xd9, 0xd7, 0x17, 0x62, 0xaf, 0x17, 0x83, 0x64,
+ 0xd1, 0xde, 0x99, 0x26, 0x02, 0xc3, 0x80, 0xca, 0xa7, 0xd3, 0x87, 0xca, 0x08, 0x27, 0xcf, 0x14,
+ 0x30, 0x57, 0x2e, 0xd5, 0xc9, 0x3d, 0x86, 0x8d, 0x73, 0xba, 0x22, 0x63, 0x98, 0x91, 0x4c, 0x32,
+ 0x84, 0x19, 0x91, 0xff, 0x4f, 0x0b, 0xf3, 0x80, 0xca, 0x1f, 0x05, 0xcc, 0x9f, 0x91, 0xc0, 0x7c,
+ 0xcd, 0xf2, 0xfc, 0x38, 0x6f, 0xff, 0x84, 0x78, 0xbf, 0x2f, 0x4e, 0x6b, 0x2a, 0x73, 0xe5, 0x08,
+ 0x07, 0xfa, 0x4d, 0x65, 0x0e, 0x27, 0x15, 0x31, 0x99, 0x63, 0x29, 0x98, 0x03, 0x72, 0x89, 0xbd,
+ 0xb0, 0x24, 0x53, 0x1b, 0x4a, 0x51, 0x21, 0x93, 0x37, 0x94, 0x62, 0xcb, 0xce, 0x5e, 0xbe, 0x7f,
+ 0x21, 0x81, 0x13, 0xa8, 0xf8, 0xa4, 0x65, 0xa9, 0x78, 0x31, 0x0f, 0x5d, 0x96, 0x4a, 0xbd, 0x32,
+ 0x7e, 0x80, 0x97, 0x71, 0xac, 0x8c, 0x0f, 0x23, 0x3a, 0x61, 0x31, 0xc7, 0x2c, 0xc3, 0x0e, 0x13,
+ 0x73, 0xc2, 0x32, 0xec, 0xe8, 0x62, 0x4e, 0x5e, 0x8a, 0x1d, 0x51, 0xcc, 0x47, 0xb6, 0xc0, 0xfa,
+ 0x0b, 0x72, 0x28, 0xe6, 0xd8, 0xb5, 0x8d, 0x04, 0x31, 0xa7, 0x3e, 0xd1, 0xab, 0xbd, 0x7b, 0x44,
+ 0xc1, 0x8f, 0x79, 0x7d, 0x63, 0x14, 0x98, 0x8e, 0x70, 0x8d, 0xe3, 0xe7, 0x64, 0xb0, 0x40, 0xb9,
+ 0x18, 0x3c, 0x65, 0x4e, 0xc0, 0x28, 0xf5, 0x94, 0x39, 0xf5, 0x19, 0x20, 0x9e, 0xb3, 0xc9, 0x9f,
+ 0x01, 0x4a, 0x2c, 0x3f, 0x7b, 0x70, 0xfe, 0x2a, 0x0f, 0x4e, 0x21, 0x16, 0xd6, 0x9c, 0x8e, 0xb5,
+ 0xb5, 0x4f, 0xb8, 0x38, 0x67, 0x76, 0xf7, 0xa0, 0xa7, 0x7d, 0x40, 0x12, 0x45, 0xe9, 0xbf, 0x00,
+ 0xe0, 0xf4, 0xa0, 0x4b, 0xe2, 0xb8, 0x51, 0xa0, 0xee, 0x89, 0xab, 0xec, 0xc1, 0x92, 0xc2, 0xeb,
+ 0x6f, 0x1a, 0x01, 0x11, 0x83, 0xa1, 0x87, 0xac, 0xc2, 0x99, 0xf0, 0x4d, 0xbf, 0x83, 0x47, 0xee,
+ 0xa0, 0x83, 0xc7, 0x2d, 0x40, 0x36, 0x3b, 0x9d, 0x10, 0xaa, 0xfe, 0xcd, 0x6c, 0x5c, 0xa6, 0x81,
+ 0xb2, 0xa0, 0x9c, 0x1e, 0x8c, 0x8e, 0xe6, 0xc5, 0xe4, 0xf4, 0xa0, 0xaf, 0x2e, 0x82, 0x22, 0xb9,
+ 0x0e, 0x3c, 0x5c, 0xd1, 0x1f, 0x9c, 0x99, 0xe6, 0xe2, 0x4d, 0xbb, 0x06, 0xaf, 0x86, 0x77, 0xa5,
+ 0x92, 0xcc, 0xa0, 0x7e, 0x3a, 0xb2, 0x93, 0x0d, 0x4e, 0xc1, 0x9e, 0x36, 0x32, 0xe5, 0xc9, 0xec,
+ 0x86, 0x95, 0x7a, 0xbd, 0xee, 0x7e, 0x8b, 0x06, 0x1e, 0x48, 0xb5, 0x1b, 0xc6, 0xc4, 0x2f, 0x90,
+ 0x0e, 0xc4, 0x2f, 0x48, 0xbd, 0x1b, 0xc6, 0xf1, 0x31, 0x8e, 0xdd, 0xb0, 0x24, 0x82, 0x13, 0xb9,
+ 0x87, 0x07, 0x5b, 0xcd, 0xf4, 0x36, 0x82, 0x7f, 0x1c, 0xec, 0x59, 0x0d, 0x78, 0x67, 0x97, 0x41,
+ 0x17, 0x15, 0x24, 0xde, 0xc2, 0xa2, 0x3e, 0x09, 0x14, 0xb7, 0x1c, 0x77, 0xd7, 0x0c, 0x36, 0xee,
+ 0xfb, 0x4f, 0x8a, 0xd0, 0x1b, 0x00, 0x96, 0x71, 0x1e, 0x83, 0xe6, 0x45, 0xf3, 0x91, 0x67, 0x5b,
+ 0x3d, 0x1a, 0xf4, 0x11, 0xfd, 0x55, 0x6f, 0x02, 0xf3, 0x34, 0xf6, 0x63, 0x1d, 0x7a, 0x3e, 0xec,
+ 0xd0, 0x88, 0x16, 0x7c, 0xa2, 0x7a, 0x16, 0xcc, 0xd1, 0x84, 0x65, 0xab, 0x0b, 0x3d, 0x1a, 0xd4,
+ 0x82, 0x4b, 0x53, 0x4f, 0x81, 0xa2, 0xe5, 0xdd, 0xef, 0x39, 0x36, 0x0d, 0xc8, 0x47, 0x9f, 0xd4,
+ 0x5b, 0xc0, 0x71, 0x9a, 0x2f, 0x34, 0x56, 0xc9, 0x81, 0x9d, 0xfe, 0x64, 0xa4, 0x5a, 0xb6, 0xb3,
+ 0xee, 0x3a, 0xdb, 0x2e, 0xf4, 0x3c, 0x7c, 0x6a, 0x6a, 0xda, 0x60, 0x52, 0xd4, 0x0b, 0xe0, 0x44,
+ 0xd7, 0xb2, 0x2f, 0x79, 0x38, 0x46, 0xf0, 0x32, 0x75, 0x1b, 0x9b, 0x1b, 0x10, 0xbb, 0x9b, 0x69,
+ 0x6c, 0x54, 0x0e, 0xec, 0x27, 0xc6, 0x41, 0x2a, 0xea, 0xad, 0x40, 0xa1, 0xdc, 0x2c, 0x99, 0xed,
+ 0x4b, 0xf8, 0x3d, 0x75, 0x47, 0x3d, 0x90, 0xce, 0x08, 0x83, 0x84, 0xd1, 0x5f, 0xe0, 0x84, 0x41,
+ 0x22, 0xe9, 0xbf, 0x34, 0x07, 0xe6, 0xb8, 0x02, 0x4c, 0xa0, 0x06, 0xdd, 0xa2, 0x77, 0x7e, 0xc7,
+ 0xf2, 0x21, 0x62, 0x8e, 0x9e, 0x75, 0x79, 0xc2, 0x10, 0xe6, 0x8d, 0x03, 0x1f, 0x1a, 0x03, 0x88,
+ 0x21, 0xbe, 0x48, 0x87, 0x87, 0x3d, 0xcb, 0x3c, 0x6a, 0xab, 0x72, 0x69, 0xda, 0xb3, 0x81, 0x7a,
+ 0x90, 0x1a, 0xe3, 0x05, 0x92, 0x4b, 0xe7, 0x05, 0x82, 0xe4, 0x66, 0x76, 0xbb, 0xce, 0x15, 0xd8,
+ 0x09, 0xc9, 0x52, 0x5d, 0x3d, 0x90, 0xae, 0x7d, 0x7e, 0x94, 0x79, 0x61, 0xea, 0x8b, 0x35, 0x50,
+ 0x23, 0xdb, 0x6b, 0xb7, 0x21, 0xec, 0xd0, 0x83, 0x6b, 0xc1, 0x63, 0xca, 0x2b, 0x37, 0x52, 0xcf,
+ 0x22, 0x8f, 0xe8, 0xce, 0x8d, 0xf7, 0x47, 0x37, 0x9f, 0xec, 0x89, 0x74, 0x35, 0x49, 0xe7, 0xe3,
+ 0x47, 0xea, 0x54, 0xb4, 0xf7, 0xa6, 0x3d, 0x2d, 0x9a, 0x88, 0xe9, 0x29, 0x34, 0xb8, 0x7b, 0x7b,
+ 0xdd, 0xf0, 0xb8, 0x13, 0x79, 0x4a, 0x89, 0x5e, 0xaa, 0x03, 0xa4, 0x47, 0x84, 0xdc, 0xc7, 0xae,
+ 0x06, 0x45, 0x72, 0xf3, 0xa0, 0xf6, 0xd2, 0x85, 0x81, 0xd0, 0x2d, 0xf0, 0xd0, 0x6d, 0x80, 0x39,
+ 0xdb, 0x41, 0xc5, 0xad, 0x9b, 0xae, 0xb9, 0xeb, 0x25, 0x2d, 0xef, 0x13, 0xba, 0xa1, 0x2d, 0x57,
+ 0x67, 0x3e, 0x5b, 0x3d, 0x66, 0x70, 0x64, 0xd4, 0xff, 0x03, 0x1c, 0xbf, 0x48, 0x43, 0x73, 0x78,
+ 0x94, 0xb2, 0x14, 0xef, 0xfc, 0xda, 0x47, 0x79, 0x89, 0xff, 0x72, 0xf5, 0x98, 0xd1, 0x4f, 0x4c,
+ 0xfd, 0x5e, 0xb0, 0x80, 0x1e, 0x3b, 0xce, 0x95, 0x80, 0x71, 0x39, 0x7e, 0x06, 0xd0, 0x47, 0x7e,
+ 0x8d, 0xfb, 0x70, 0xf5, 0x98, 0xd1, 0x47, 0x4a, 0x6d, 0x00, 0xb0, 0xe3, 0xef, 0x76, 0x29, 0xe1,
+ 0x7c, 0x7c, 0x67, 0xd2, 0x47, 0x78, 0x35, 0xfc, 0x68, 0xf5, 0x98, 0xc1, 0x90, 0x50, 0x6b, 0x60,
+ 0xc6, 0x7f, 0xc8, 0xa7, 0xf4, 0x0a, 0xf1, 0x5e, 0x27, 0x7d, 0xf4, 0x5a, 0xc1, 0x37, 0xab, 0xc7,
+ 0x8c, 0x88, 0x80, 0x5a, 0x05, 0xd3, 0xbd, 0x8b, 0x94, 0x58, 0x31, 0x7e, 0xa4, 0xea, 0x23, 0xb6,
+ 0x7e, 0x31, 0xa4, 0x15, 0x7e, 0x8e, 0x18, 0x6b, 0x7b, 0x97, 0x29, 0xad, 0x29, 0x61, 0xc6, 0xca,
+ 0xc1, 0x37, 0x88, 0xb1, 0x90, 0x80, 0x5a, 0x05, 0x33, 0x9e, 0x6d, 0xf6, 0xbc, 0x1d, 0xc7, 0xf7,
+ 0x4e, 0x4f, 0xf7, 0x39, 0x28, 0xc7, 0x53, 0x6b, 0xd2, 0x6f, 0x8c, 0xe8, 0x6b, 0xf5, 0x49, 0xe0,
+ 0xea, 0xbd, 0x5e, 0xc7, 0xf4, 0xa1, 0xfe, 0x90, 0xe5, 0xf9, 0x96, 0xbd, 0x1d, 0xc4, 0x96, 0x26,
+ 0xc3, 0xfc, 0xe0, 0x97, 0xea, 0x22, 0x3d, 0xaa, 0x08, 0x70, 0xbb, 0xd4, 0xfa, 0x77, 0xc9, 0x49,
+ 0xb1, 0xcc, 0x09, 0xc5, 0xa7, 0x82, 0x3c, 0x7a, 0x85, 0xcd, 0x82, 0x85, 0xc1, 0x2b, 0xf0, 0xfd,
+ 0xba, 0x83, 0x1b, 0x30, 0xfa, 0xa8, 0xcf, 0xb2, 0x98, 0x3b, 0x60, 0x59, 0xdc, 0x00, 0x66, 0x2d,
+ 0x6f, 0xcd, 0xda, 0x26, 0xd3, 0x1a, 0x3a, 0xf2, 0xb3, 0x49, 0x64, 0x19, 0xa8, 0x0e, 0xaf, 0x90,
+ 0x21, 0xff, 0x78, 0xb0, 0x0c, 0x14, 0xa4, 0x68, 0x37, 0x83, 0x39, 0xb6, 0x91, 0x91, 0xeb, 0x8b,
+ 0xad, 0x68, 0x52, 0x44, 0x9f, 0xb4, 0x9b, 0xc0, 0x02, 0xaf, 0xd3, 0x8c, 0xed, 0x27, 0x07, 0x83,
+ 0x98, 0x76, 0x23, 0x38, 0xde, 0xd7, 0xb0, 0x82, 0x60, 0x3f, 0xb9, 0x28, 0xd8, 0xcf, 0x0d, 0x00,
+ 0x44, 0x5a, 0x3c, 0x90, 0xcc, 0xf5, 0x60, 0x26, 0xd4, 0xcb, 0x81, 0x19, 0xfe, 0x34, 0x07, 0xa6,
+ 0x03, 0x65, 0x1b, 0x94, 0x01, 0xd9, 0x14, 0x36, 0xb3, 0xb3, 0x17, 0xd8, 0x14, 0x6c, 0x1a, 0x32,
+ 0xf0, 0x22, 0x7f, 0xfa, 0x96, 0xe5, 0x77, 0x83, 0x33, 0xa9, 0xfd, 0xc9, 0xea, 0x3a, 0x00, 0x16,
+ 0xc6, 0xa8, 0x15, 0x1d, 0x52, 0xbd, 0x23, 0x45, 0x7b, 0x20, 0xfa, 0xc0, 0xd0, 0x38, 0xfb, 0x1d,
+ 0xf4, 0x04, 0xe9, 0x0c, 0x28, 0x90, 0x0b, 0x16, 0x8e, 0xa9, 0x0b, 0x00, 0xe8, 0xcf, 0x5c, 0xd7,
+ 0x8d, 0xaa, 0x5e, 0x2f, 0xeb, 0x4a, 0x4e, 0x7b, 0xb9, 0x04, 0x66, 0xc2, 0x46, 0x30, 0xb0, 0x92,
+ 0x3a, 0x55, 0xad, 0xa1, 0x37, 0xc4, 0x1e, 0x6c, 0x54, 0xac, 0x92, 0x3d, 0x05, 0x3c, 0x6a, 0xcf,
+ 0x83, 0xcb, 0x96, 0xeb, 0xf9, 0x86, 0x73, 0x65, 0xd9, 0x71, 0x23, 0x93, 0x88, 0x84, 0x26, 0x8e,
+ 0x7b, 0x8d, 0x4c, 0xfd, 0x0e, 0xc4, 0xa7, 0x15, 0xa1, 0x4b, 0xb7, 0x6c, 0xa2, 0x04, 0x44, 0xd7,
+ 0x77, 0x4d, 0xdb, 0xeb, 0x39, 0x1e, 0x34, 0x9c, 0x2b, 0x5e, 0xc9, 0xee, 0x94, 0x9d, 0xee, 0xde,
+ 0xae, 0xed, 0x51, 0x63, 0x3d, 0xee, 0x35, 0x92, 0x0e, 0xbe, 0xff, 0x79, 0x01, 0x80, 0x72, 0xa3,
+ 0x56, 0xd3, 0xcb, 0xad, 0x6a, 0xa3, 0xae, 0x1c, 0x43, 0xd2, 0x6a, 0x95, 0x96, 0x6a, 0x48, 0x3a,
+ 0xdf, 0x07, 0xa6, 0x83, 0x36, 0x4d, 0xe3, 0x13, 0xe5, 0x82, 0xf8, 0x44, 0x6a, 0x09, 0x4c, 0x07,
+ 0xad, 0x9c, 0x8e, 0x08, 0x8f, 0xe9, 0x3f, 0x8f, 0xbe, 0x6b, 0xba, 0x3e, 0x36, 0x2d, 0x03, 0x22,
+ 0x4b, 0xa6, 0x07, 0x8d, 0xf0, 0xb3, 0xb3, 0x8f, 0xa7, 0x1c, 0xa8, 0x60, 0xa1, 0x54, 0xab, 0x6d,
+ 0x36, 0x8c, 0xcd, 0x7a, 0xa3, 0xb5, 0x5a, 0xad, 0xaf, 0x90, 0x11, 0xb2, 0xba, 0x52, 0x6f, 0x18,
+ 0x3a, 0x19, 0x20, 0x9b, 0x4a, 0x8e, 0xdc, 0x3f, 0xbe, 0x34, 0x0d, 0x8a, 0x3d, 0x2c, 0x5d, 0xed,
+ 0x4b, 0x72, 0x4a, 0xd3, 0x22, 0xc4, 0x29, 0xe6, 0x86, 0x64, 0xee, 0x30, 0x88, 0x34, 0xe0, 0xb0,
+ 0xf6, 0x59, 0x30, 0x47, 0xcc, 0x21, 0x0f, 0xef, 0xab, 0x61, 0xe4, 0x64, 0x83, 0x4b, 0xd3, 0x3e,
+ 0x21, 0xa5, 0x30, 0x2e, 0x06, 0x72, 0x94, 0xce, 0xb8, 0xf8, 0xbd, 0xdc, 0x68, 0xd7, 0x91, 0x54,
+ 0xeb, 0x2d, 0xdd, 0xa8, 0x97, 0x6a, 0x34, 0x8b, 0xac, 0x9e, 0x06, 0x27, 0xeb, 0x0d, 0x1a, 0x8c,
+ 0xb3, 0xb9, 0xd9, 0x6a, 0x6c, 0x56, 0xd7, 0xd6, 0x1b, 0x46, 0x4b, 0x29, 0xa8, 0xa7, 0x80, 0x4a,
+ 0xfe, 0x6f, 0x56, 0x9b, 0x9b, 0xe5, 0x52, 0xbd, 0xac, 0xd7, 0xf4, 0x8a, 0x52, 0x54, 0x1f, 0x0b,
+ 0x6e, 0x24, 0xd7, 0x5b, 0x35, 0x96, 0x37, 0x8d, 0xc6, 0xf9, 0x26, 0x42, 0xd0, 0xd0, 0x6b, 0x25,
+ 0xa4, 0x48, 0xcc, 0x3d, 0xe4, 0x53, 0xea, 0x55, 0xe0, 0xf8, 0x72, 0xb5, 0xa6, 0x6f, 0xd6, 0x1a,
+ 0xa5, 0x0a, 0x2d, 0x6f, 0x5a, 0xbd, 0x0e, 0x9c, 0xae, 0xd6, 0x9b, 0x1b, 0xcb, 0xcb, 0xd5, 0x72,
+ 0x55, 0xaf, 0xb7, 0x36, 0xd7, 0x75, 0x63, 0xad, 0xda, 0x6c, 0xa2, 0x6f, 0x95, 0x19, 0x7c, 0xcb,
+ 0x33, 0xe9, 0x33, 0x91, 0x11, 0x3b, 0x7f, 0xce, 0xec, 0x5a, 0x68, 0xa0, 0xc0, 0xd7, 0xbf, 0xf7,
+ 0x9d, 0xe3, 0xf2, 0xf1, 0x35, 0xf1, 0xf4, 0x24, 0x08, 0x7e, 0xd0, 0x7e, 0x48, 0x4e, 0x79, 0x8e,
+ 0x8b, 0x02, 0x41, 0x4a, 0x5c, 0xe4, 0x4a, 0x8b, 0x59, 0x75, 0x78, 0x8d, 0x94, 0xe2, 0x1c, 0x97,
+ 0x38, 0xf9, 0x74, 0xe0, 0xff, 0xfc, 0xb8, 0xc0, 0x57, 0xc0, 0xdc, 0x46, 0xbd, 0xb4, 0xd1, 0x5a,
+ 0x6d, 0x18, 0xd5, 0xef, 0xc1, 0xb7, 0x10, 0xcc, 0x83, 0x99, 0xe5, 0x86, 0xb1, 0x54, 0xad, 0x54,
+ 0xf4, 0xba, 0x52, 0x50, 0x1f, 0x05, 0xae, 0x6a, 0xea, 0xc6, 0xb9, 0x6a, 0x59, 0xdf, 0xdc, 0xa8,
+ 0x97, 0xce, 0x95, 0xaa, 0x35, 0xdc, 0x47, 0x14, 0x13, 0xae, 0xae, 0x9f, 0xd2, 0x7e, 0x20, 0x0f,
+ 0x00, 0xa9, 0x3a, 0xbe, 0x84, 0x8b, 0xb9, 0xe0, 0xfc, 0x0f, 0xd2, 0x4e, 0xf7, 0x22, 0x32, 0x31,
+ 0xed, 0xb7, 0x0a, 0xa6, 0x5d, 0xfa, 0x82, 0xae, 0x6b, 0x0e, 0xa3, 0x43, 0xfe, 0x06, 0xd4, 0x8c,
+ 0xf0, 0x73, 0xed, 0x03, 0x69, 0x66, 0x77, 0xb1, 0x8c, 0xa5, 0x43, 0x72, 0x79, 0x3c, 0x40, 0x6a,
+ 0x2f, 0xca, 0x81, 0x05, 0xbe, 0x62, 0xa8, 0x12, 0xd8, 0x98, 0x12, 0xab, 0x04, 0xff, 0x31, 0x63,
+ 0x64, 0x9d, 0x7d, 0x22, 0x1d, 0x4e, 0x41, 0xd0, 0x32, 0x49, 0x48, 0x86, 0xc0, 0x62, 0x51, 0x72,
+ 0x88, 0x79, 0x64, 0x74, 0x28, 0x92, 0x3a, 0x05, 0xe4, 0xd6, 0x43, 0xbe, 0x22, 0x6b, 0x5f, 0x93,
+ 0xc1, 0x3c, 0x77, 0x83, 0xba, 0xf6, 0xce, 0x9c, 0xc8, 0xed, 0xc6, 0xcc, 0xdd, 0xec, 0xb9, 0xc3,
+ 0xde, 0xcd, 0x7e, 0xf6, 0x3e, 0x30, 0x45, 0xd3, 0xb0, 0x7c, 0x1b, 0x75, 0x64, 0x0a, 0x1c, 0x07,
+ 0xb3, 0x2b, 0x7a, 0x6b, 0xb3, 0xd9, 0x2a, 0x19, 0x2d, 0xbd, 0xa2, 0xe4, 0xd0, 0xc0, 0xa7, 0xaf,
+ 0xad, 0xb7, 0x2e, 0x28, 0x12, 0x1a, 0x13, 0x57, 0x36, 0xaa, 0x15, 0x7d, 0xb3, 0x51, 0xaf, 0x5d,
+ 0x50, 0xe4, 0xf4, 0xae, 0xb2, 0xfd, 0x8c, 0x4d, 0xd8, 0x55, 0x36, 0xa9, 0xf8, 0xec, 0xe7, 0xae,
+ 0x9f, 0x93, 0x81, 0x42, 0x38, 0xd0, 0x1f, 0xea, 0x41, 0xd7, 0x82, 0x76, 0x1b, 0x6a, 0x97, 0x44,
+ 0x42, 0xf7, 0x1e, 0x08, 0x5a, 0x89, 0xfb, 0x77, 0xc6, 0x6a, 0x24, 0x0f, 0x7d, 0x06, 0x77, 0xfe,
+ 0x80, 0xc1, 0xfd, 0x5b, 0x69, 0x7d, 0x65, 0xfb, 0xd9, 0x1d, 0x0b, 0x64, 0x9f, 0x4e, 0xe3, 0x2b,
+ 0x3b, 0x84, 0x83, 0x89, 0x44, 0xe4, 0x8e, 0x19, 0x8f, 0x15, 0x59, 0x7b, 0xa1, 0x0c, 0x8e, 0x57,
+ 0x4c, 0x1f, 0x2e, 0xed, 0xb7, 0x82, 0x1b, 0x4f, 0x63, 0x6e, 0x29, 0xcf, 0x1d, 0xb8, 0xa5, 0x3c,
+ 0xba, 0x34, 0x55, 0xea, 0xbb, 0x34, 0x55, 0x7b, 0x4f, 0xda, 0xd3, 0xb5, 0x7d, 0x3c, 0x8c, 0x2d,
+ 0x6c, 0x76, 0xba, 0x53, 0xb3, 0xc9, 0x5c, 0x64, 0xdf, 0xc0, 0xde, 0x3e, 0x03, 0x14, 0xc2, 0x0a,
+ 0xe3, 0x0e, 0xfa, 0x53, 0xf4, 0x62, 0xff, 0xcd, 0x14, 0xd1, 0x37, 0x83, 0x78, 0x26, 0x12, 0x1f,
+ 0xcf, 0x84, 0xdb, 0x5d, 0x90, 0xfb, 0x5d, 0x78, 0xd2, 0x76, 0x86, 0x8c, 0xef, 0x67, 0x7c, 0xc0,
+ 0xe3, 0xec, 0x3a, 0xc3, 0xc4, 0xe2, 0x27, 0x73, 0xf9, 0x34, 0xbd, 0xef, 0x55, 0x17, 0x45, 0x26,
+ 0xf9, 0x8e, 0xfd, 0xb4, 0x07, 0x01, 0x38, 0xdf, 0xdb, 0x84, 0x8b, 0xe7, 0xb3, 0x3b, 0x08, 0x30,
+ 0x8c, 0x83, 0xec, 0x51, 0xf8, 0x96, 0x04, 0xf2, 0x4d, 0xc7, 0xf5, 0xc7, 0x85, 0x41, 0x5a, 0xe7,
+ 0x05, 0x46, 0x02, 0xcd, 0xf8, 0x39, 0x68, 0x76, 0xce, 0x0b, 0xc9, 0xe5, 0x4f, 0x20, 0x80, 0xe9,
+ 0x71, 0xb0, 0x40, 0x38, 0x09, 0x6f, 0xff, 0xf9, 0x57, 0x89, 0xf4, 0x57, 0x0f, 0x88, 0x22, 0x82,
+ 0xb7, 0xb0, 0x42, 0xe7, 0x81, 0x00, 0x14, 0x2e, 0x4d, 0x7b, 0x23, 0x8b, 0x4b, 0x85, 0xc7, 0x65,
+ 0xd0, 0x0c, 0x3c, 0xbc, 0x40, 0x67, 0x5c, 0x3d, 0x53, 0x9a, 0x58, 0xa8, 0x09, 0x85, 0x67, 0x8f,
+ 0xc8, 0xc3, 0x32, 0x28, 0x52, 0xe7, 0xcd, 0xb1, 0x22, 0x90, 0xb6, 0x65, 0x84, 0x42, 0x10, 0x73,
+ 0xf2, 0x94, 0xc7, 0xdd, 0x32, 0x92, 0xcb, 0xcf, 0x1e, 0x87, 0x7f, 0xa7, 0x5e, 0xc9, 0xa5, 0xcb,
+ 0xa6, 0xd5, 0x35, 0x2f, 0x76, 0x53, 0xc4, 0x20, 0xff, 0x44, 0xca, 0x73, 0x98, 0x61, 0x55, 0xb9,
+ 0xf2, 0x62, 0x24, 0xfe, 0x5d, 0x60, 0xc6, 0xe5, 0x76, 0x6d, 0x91, 0x15, 0xd5, 0xe7, 0x11, 0x4e,
+ 0xdf, 0x1b, 0x51, 0xce, 0x54, 0x87, 0x2e, 0x85, 0xf8, 0x99, 0xc8, 0x21, 0xb1, 0xd9, 0x52, 0xa7,
+ 0xb3, 0x0c, 0x4d, 0x7f, 0xcf, 0x85, 0x9d, 0x54, 0x43, 0x84, 0xdb, 0xb7, 0xb1, 0xcd, 0x48, 0x82,
+ 0x8b, 0x02, 0x5a, 0xe3, 0xd1, 0x79, 0xf2, 0x90, 0xde, 0x20, 0xe0, 0x65, 0x2c, 0x5d, 0xd2, 0xdb,
+ 0x42, 0x48, 0x1a, 0x1c, 0x24, 0x4f, 0x1d, 0x8d, 0x89, 0xec, 0x01, 0xf9, 0x19, 0x19, 0x2c, 0x10,
+ 0x3b, 0x61, 0xdc, 0x98, 0x7c, 0x28, 0xa5, 0xb3, 0x17, 0x73, 0xbf, 0x1a, 0xcb, 0xce, 0x58, 0x60,
+ 0x49, 0xe3, 0x1a, 0x26, 0xc6, 0x47, 0xf6, 0xc8, 0x3c, 0xef, 0x04, 0x00, 0x8c, 0x03, 0xef, 0x27,
+ 0x8a, 0x51, 0x44, 0x4e, 0xed, 0x9d, 0x74, 0xfe, 0xd1, 0xe4, 0xc2, 0xc3, 0x33, 0xce, 0xb9, 0xe1,
+ 0x06, 0x15, 0x9f, 0x28, 0x34, 0xaa, 0xfc, 0x5e, 0x4a, 0x9b, 0x97, 0xba, 0xcf, 0x0e, 0x1d, 0xdc,
+ 0x47, 0xec, 0xe5, 0x3e, 0x99, 0xc2, 0xf8, 0x1d, 0xc6, 0x4a, 0x3a, 0xd4, 0x6a, 0x23, 0xcc, 0xec,
+ 0x4f, 0x83, 0x93, 0x86, 0x5e, 0xaa, 0x34, 0xea, 0xb5, 0x0b, 0xec, 0x65, 0x5b, 0x8a, 0xcc, 0x4e,
+ 0x4e, 0x32, 0x81, 0xed, 0x75, 0x29, 0xfb, 0x40, 0x5e, 0x56, 0x49, 0xb3, 0x15, 0x66, 0x71, 0x65,
+ 0x78, 0xaf, 0x26, 0x40, 0xf6, 0x28, 0x51, 0xf8, 0x5a, 0x11, 0xcc, 0x1a, 0xb0, 0xed, 0xec, 0xee,
+ 0x42, 0xbb, 0x03, 0x3b, 0xda, 0xeb, 0x64, 0x30, 0x17, 0xee, 0xff, 0x35, 0xa1, 0xaf, 0x7d, 0x6f,
+ 0x84, 0xcd, 0x59, 0x30, 0x87, 0x2a, 0xd7, 0xe0, 0x43, 0xfe, 0x73, 0x69, 0xea, 0x6d, 0xe0, 0x44,
+ 0x80, 0x42, 0xa3, 0x6f, 0x0a, 0x73, 0xf0, 0x05, 0xef, 0xa1, 0xb3, 0xc1, 0x63, 0x74, 0x5f, 0xbc,
+ 0x30, 0x43, 0x76, 0x17, 0x59, 0x56, 0x63, 0xc0, 0xfa, 0x9d, 0x10, 0xac, 0x67, 0x72, 0x60, 0x55,
+ 0x0e, 0x49, 0xff, 0x28, 0x51, 0xfb, 0x65, 0x19, 0x9c, 0x0c, 0x3a, 0xe2, 0xc9, 0xa1, 0xf5, 0x49,
+ 0x16, 0xad, 0xef, 0xe3, 0xd1, 0x5a, 0x11, 0x91, 0xe6, 0x20, 0x96, 0x63, 0x50, 0xfb, 0x62, 0x88,
+ 0xda, 0xf7, 0x73, 0xa8, 0xd5, 0xc6, 0x54, 0xce, 0x51, 0xa2, 0xf7, 0x21, 0x19, 0x9c, 0x46, 0x66,
+ 0x67, 0xd9, 0xb1, 0xb7, 0xba, 0x56, 0xdb, 0xb7, 0xec, 0xed, 0xc8, 0x19, 0x71, 0x45, 0x64, 0x65,
+ 0xb3, 0x1f, 0x5b, 0xe9, 0x20, 0xb6, 0x7c, 0xa4, 0x14, 0xd1, 0xb6, 0x15, 0xc7, 0x56, 0xcc, 0x10,
+ 0xc6, 0xb8, 0xd9, 0x47, 0x9a, 0xc3, 0x26, 0xa5, 0x6f, 0x7d, 0x82, 0x1c, 0x1c, 0x25, 0x7e, 0x0f,
+ 0x03, 0xc6, 0xf4, 0x78, 0x81, 0x0c, 0x14, 0xec, 0xf9, 0x8a, 0x7b, 0x76, 0x7a, 0x13, 0x6d, 0x83,
+ 0x3f, 0x13, 0xd1, 0x0b, 0x04, 0x14, 0x9c, 0x89, 0x08, 0x12, 0xd4, 0x9b, 0xc1, 0x42, 0x7b, 0x07,
+ 0xb6, 0x2f, 0x55, 0xed, 0xc0, 0x37, 0x89, 0x38, 0xb2, 0xf4, 0xa5, 0xf2, 0x83, 0xd9, 0x03, 0x3c,
+ 0x98, 0xfc, 0xc2, 0x23, 0x37, 0xb1, 0x61, 0x99, 0x8a, 0x69, 0x68, 0xbf, 0x1e, 0x02, 0x54, 0xe7,
+ 0x00, 0xba, 0x7b, 0x24, 0xaa, 0xe9, 0x60, 0xa9, 0x8f, 0x00, 0x8b, 0x06, 0x4e, 0x35, 0xd6, 0x5b,
+ 0xd5, 0x46, 0x7d, 0x73, 0xa3, 0xa9, 0x57, 0x36, 0x97, 0x02, 0x70, 0x9a, 0x8a, 0xac, 0x7d, 0x55,
+ 0x02, 0x53, 0x84, 0x2d, 0x4f, 0x7b, 0x5c, 0x04, 0xc1, 0xd0, 0xc3, 0x20, 0xda, 0xdb, 0x85, 0x43,
+ 0x3b, 0x85, 0x82, 0xa0, 0xe5, 0xc4, 0x34, 0x8c, 0xa7, 0x80, 0x29, 0x02, 0x72, 0xb0, 0x0b, 0x70,
+ 0x26, 0xc6, 0xb2, 0xa3, 0x64, 0x8c, 0x20, 0xbb, 0x60, 0x98, 0xa7, 0x21, 0x6c, 0x64, 0x6f, 0x8d,
+ 0x3f, 0x27, 0x4f, 0x96, 0x0e, 0xce, 0x5b, 0xfe, 0x0e, 0x3e, 0x2b, 0xa2, 0x3d, 0x43, 0xa4, 0xe3,
+ 0xba, 0x0d, 0x14, 0x2e, 0xa3, 0xdc, 0x43, 0xce, 0xdd, 0x90, 0x4c, 0xda, 0xcf, 0x0b, 0x47, 0x15,
+ 0xe7, 0xf4, 0x33, 0xe4, 0x29, 0x06, 0x9c, 0x35, 0x90, 0xef, 0x5a, 0x9e, 0x4f, 0x6d, 0xee, 0xbb,
+ 0x52, 0x11, 0x0a, 0xfe, 0x54, 0x7d, 0xb8, 0x6b, 0x60, 0x32, 0xda, 0xfd, 0xc8, 0x62, 0x8a, 0x52,
+ 0x05, 0xce, 0x1e, 0x9d, 0x06, 0x53, 0xf4, 0x4c, 0x3c, 0xdd, 0x96, 0x0a, 0x1e, 0x05, 0xb7, 0x82,
+ 0x84, 0x6a, 0x9b, 0xbd, 0x0e, 0xfc, 0x7f, 0xc7, 0xc1, 0xd4, 0xaa, 0xe5, 0xf9, 0x8e, 0xbb, 0xaf,
+ 0xbd, 0x3e, 0x07, 0xa6, 0xce, 0x41, 0xd7, 0xb3, 0x1c, 0xfb, 0x80, 0xbb, 0xd6, 0x0d, 0x60, 0xb6,
+ 0xe7, 0xc2, 0xcb, 0x96, 0xb3, 0xe7, 0x31, 0xa3, 0x04, 0x93, 0xa4, 0x6a, 0x60, 0xda, 0xdc, 0xf3,
+ 0x77, 0x1c, 0x37, 0x0a, 0xa5, 0x15, 0x3c, 0xab, 0x67, 0x00, 0x20, 0xff, 0xeb, 0xe6, 0x2e, 0x0c,
+ 0x6e, 0xcb, 0x8f, 0x52, 0x54, 0x15, 0xe4, 0x7d, 0x6b, 0x17, 0xd2, 0xd8, 0xfa, 0xf8, 0x3f, 0x12,
+ 0x30, 0x8e, 0x53, 0x4b, 0xe3, 0x01, 0xcb, 0x46, 0xf0, 0xa8, 0xfd, 0xa1, 0x0c, 0x66, 0x57, 0xa0,
+ 0x4f, 0x59, 0xf5, 0xb4, 0x17, 0xe7, 0x84, 0xae, 0xb3, 0x42, 0xf3, 0x92, 0xae, 0xe9, 0x05, 0xdf,
+ 0x85, 0x43, 0x2e, 0x9f, 0x18, 0x05, 0xfa, 0x97, 0xd9, 0x5b, 0x3e, 0x70, 0xd4, 0x57, 0xbf, 0x4a,
+ 0x8e, 0x61, 0xd0, 0xcc, 0x74, 0xe3, 0xf8, 0xe0, 0x0b, 0xde, 0x26, 0x4e, 0x8c, 0x98, 0x42, 0x65,
+ 0xbf, 0xc8, 0xd4, 0x27, 0xb6, 0x3b, 0x9a, 0xbe, 0x4c, 0x73, 0x1c, 0xb8, 0xc0, 0x85, 0xa5, 0x44,
+ 0xc9, 0x18, 0x61, 0x6e, 0xc1, 0x58, 0x2b, 0xc3, 0x39, 0x99, 0xc0, 0x95, 0xbd, 0x32, 0x98, 0x6d,
+ 0xee, 0x38, 0x57, 0x02, 0x39, 0x7e, 0x9f, 0x18, 0xb0, 0xd7, 0x81, 0x99, 0xcb, 0x7d, 0xa0, 0x46,
+ 0x09, 0xec, 0x2d, 0x81, 0x32, 0x7f, 0x4b, 0xe0, 0xf3, 0xe5, 0xb4, 0x30, 0x31, 0xcc, 0xc5, 0xc0,
+ 0xc4, 0x5f, 0xec, 0x27, 0xa5, 0xb8, 0xd8, 0x4f, 0x7d, 0x32, 0x98, 0xa2, 0x5c, 0xd3, 0x65, 0xea,
+ 0x64, 0x80, 0x83, 0xcc, 0x6c, 0x05, 0xf3, 0x7c, 0x05, 0xd3, 0x21, 0x1f, 0x5f, 0xb9, 0xec, 0x91,
+ 0xff, 0x4d, 0x09, 0x47, 0xda, 0x0a, 0x80, 0x2f, 0x8f, 0x01, 0x78, 0xed, 0x9b, 0x39, 0xd1, 0xcd,
+ 0x9c, 0x50, 0x02, 0x21, 0x07, 0x87, 0xba, 0xaa, 0x6e, 0x28, 0xb9, 0xec, 0xe5, 0xf9, 0xf2, 0x3c,
+ 0x98, 0xab, 0x58, 0x5b, 0x5b, 0x61, 0x27, 0xf9, 0x12, 0xc1, 0x4e, 0x32, 0xde, 0xa5, 0x0a, 0xd9,
+ 0xb9, 0x7b, 0xae, 0x0b, 0xed, 0xa0, 0x52, 0xb4, 0x39, 0xf5, 0xa5, 0xaa, 0xb7, 0x80, 0xe3, 0xc1,
+ 0xb8, 0xc0, 0x76, 0x94, 0x33, 0x46, 0x7f, 0xb2, 0xf6, 0x75, 0x61, 0x4f, 0x80, 0x40, 0xa2, 0x6c,
+ 0x95, 0x62, 0x1a, 0xe0, 0x3d, 0x60, 0x7e, 0x87, 0xe4, 0xc6, 0xcb, 0xa5, 0x41, 0x67, 0x79, 0xaa,
+ 0xef, 0x26, 0x83, 0x35, 0xe8, 0x79, 0xe6, 0x36, 0x34, 0xf8, 0xcc, 0x7d, 0xcd, 0x57, 0x4e, 0x73,
+ 0x2f, 0xa7, 0x98, 0x53, 0x81, 0x40, 0x4d, 0xb2, 0xd7, 0x8e, 0x2f, 0x9e, 0x05, 0xf9, 0x65, 0xab,
+ 0x0b, 0xb5, 0x1f, 0x91, 0xc0, 0x0c, 0x9a, 0x75, 0xdb, 0x6d, 0xf4, 0xc4, 0x38, 0x58, 0x7e, 0x2d,
+ 0x27, 0x7a, 0x1f, 0x35, 0xa2, 0xb3, 0x18, 0xd2, 0x88, 0x69, 0x37, 0x62, 0xf7, 0x4e, 0x27, 0x92,
+ 0x9a, 0xc0, 0xed, 0x61, 0x68, 0xea, 0xb1, 0xb5, 0xd5, 0x75, 0x4c, 0x6e, 0xc3, 0xa0, 0xdf, 0x14,
+ 0x8a, 0x8e, 0x73, 0xd6, 0x1d, 0x7f, 0xdd, 0xb2, 0xed, 0x30, 0x42, 0xca, 0x81, 0x74, 0xde, 0xd7,
+ 0x25, 0x31, 0xc8, 0x1c, 0xae, 0x3b, 0x2d, 0x3d, 0x46, 0xb3, 0x6f, 0x06, 0x0b, 0x17, 0xf7, 0x7d,
+ 0xe8, 0xd1, 0x5c, 0xb4, 0xd8, 0xbc, 0xd1, 0x97, 0xca, 0x5c, 0x11, 0x91, 0x14, 0x8c, 0x2e, 0xa1,
+ 0xc0, 0x74, 0xa2, 0x5e, 0x1d, 0x61, 0x06, 0x78, 0x12, 0x28, 0xf5, 0x46, 0x45, 0xc7, 0xfe, 0xbe,
+ 0x81, 0x07, 0xe5, 0xb6, 0xf6, 0x93, 0x32, 0x98, 0xc3, 0x0e, 0x78, 0x01, 0x0a, 0x37, 0x0a, 0xcc,
+ 0x47, 0xb4, 0x2f, 0x0b, 0xfb, 0x02, 0xe3, 0x2a, 0xb3, 0x05, 0xc4, 0x0b, 0x7a, 0xcb, 0xea, 0xf6,
+ 0x0b, 0xba, 0x60, 0xf4, 0xa5, 0x0e, 0x00, 0x44, 0x1e, 0x08, 0xc8, 0x2f, 0x0b, 0x39, 0x04, 0x0f,
+ 0xe3, 0xee, 0xa8, 0x50, 0xf9, 0x15, 0x19, 0xcc, 0xa2, 0x49, 0x4a, 0x00, 0x4a, 0x83, 0x03, 0xc5,
+ 0xb1, 0xbb, 0xfb, 0xd1, 0xb2, 0x48, 0xf0, 0x98, 0xaa, 0x91, 0xfc, 0x91, 0xf0, 0xcc, 0x1d, 0x8b,
+ 0x88, 0xe1, 0x65, 0x42, 0xf8, 0x7d, 0x50, 0x68, 0x3e, 0x3f, 0x84, 0xb9, 0xa3, 0x82, 0xef, 0xb5,
+ 0x45, 0x50, 0xdc, 0xe8, 0x61, 0xe4, 0xbe, 0x24, 0x8b, 0x5c, 0xb7, 0x72, 0xe0, 0x30, 0x18, 0x32,
+ 0xb3, 0xba, 0x4e, 0xdb, 0xec, 0xae, 0x47, 0xe7, 0xa1, 0xa3, 0x04, 0xf5, 0x6e, 0xea, 0x1f, 0x4e,
+ 0x8e, 0xf5, 0xde, 0x9c, 0x78, 0x13, 0x09, 0x96, 0x11, 0x73, 0xf0, 0xee, 0x36, 0x70, 0xa2, 0x63,
+ 0x79, 0xe6, 0xc5, 0x2e, 0xd4, 0xed, 0xb6, 0xbb, 0x4f, 0xc4, 0x41, 0xa7, 0x55, 0x07, 0x5e, 0xa8,
+ 0xf7, 0x82, 0x82, 0xe7, 0xef, 0x77, 0xc9, 0x3c, 0x91, 0x3d, 0xa7, 0x17, 0x5b, 0x54, 0x13, 0x65,
+ 0x37, 0xc8, 0x57, 0xac, 0x5b, 0xe7, 0x94, 0x98, 0x5b, 0xa7, 0xfa, 0x44, 0x50, 0x74, 0x5c, 0x6b,
+ 0xdb, 0x22, 0x97, 0x0b, 0x2e, 0x1c, 0x08, 0xb8, 0x4b, 0x4c, 0x81, 0x06, 0xce, 0x62, 0xd0, 0xac,
+ 0xea, 0x93, 0xc1, 0x8c, 0xb5, 0x6b, 0x6e, 0xc3, 0x07, 0x2c, 0x9b, 0x84, 0x23, 0x58, 0xb8, 0xf3,
+ 0xf4, 0x81, 0x23, 0x88, 0xf4, 0xbd, 0x11, 0x65, 0x55, 0xef, 0x01, 0xd7, 0xb4, 0x5d, 0x68, 0xfa,
+ 0x10, 0x09, 0xe8, 0xbc, 0xd5, 0xd9, 0x86, 0x7e, 0x75, 0x6b, 0xcd, 0xf2, 0x3c, 0xcb, 0xde, 0xa6,
+ 0xf7, 0x87, 0xc6, 0x67, 0xd0, 0x3e, 0x28, 0x89, 0xc6, 0x14, 0xc4, 0x92, 0x21, 0x2a, 0x31, 0xc2,
+ 0x3d, 0xe7, 0x8c, 0x14, 0x65, 0x41, 0xe7, 0xd8, 0x57, 0x09, 0x45, 0xfb, 0x8b, 0x67, 0x2b, 0xfb,
+ 0xa1, 0xff, 0xf7, 0x25, 0x30, 0x5d, 0x71, 0xae, 0xd8, 0xb8, 0x99, 0xdc, 0x25, 0x66, 0x29, 0x0f,
+ 0x08, 0x10, 0xc0, 0xdf, 0x98, 0x9d, 0x78, 0xa6, 0x0c, 0xd7, 0x36, 0x28, 0x32, 0x06, 0x86, 0xc4,
+ 0x76, 0x27, 0x78, 0x0c, 0x3d, 0xa9, 0x9c, 0xec, 0xe5, 0xfa, 0xdb, 0x32, 0xc8, 0x57, 0x5c, 0xa7,
+ 0xa7, 0xbd, 0x2d, 0x97, 0xc2, 0x49, 0xac, 0xe3, 0x3a, 0xbd, 0x16, 0xbe, 0x88, 0x34, 0xda, 0x17,
+ 0x61, 0xd3, 0xd4, 0xbb, 0xc0, 0x74, 0xcf, 0xf1, 0x2c, 0x3f, 0x98, 0x84, 0x2c, 0xdc, 0xf9, 0xe8,
+ 0x81, 0x7d, 0xc1, 0x3a, 0xcd, 0x64, 0x84, 0xd9, 0x51, 0x9f, 0x8f, 0x45, 0x88, 0xe4, 0x82, 0xc4,
+ 0x18, 0x5c, 0xc6, 0xda, 0x97, 0xaa, 0xbd, 0x94, 0x45, 0xf2, 0xa9, 0x3c, 0x92, 0x8f, 0x19, 0x20,
+ 0x61, 0xd7, 0xe9, 0x8d, 0xc5, 0xad, 0xe3, 0x15, 0x21, 0xaa, 0x4f, 0xe3, 0x50, 0xbd, 0x55, 0xa8,
+ 0xcc, 0xec, 0x11, 0xfd, 0x60, 0x1e, 0x00, 0x6c, 0xa4, 0x6c, 0xa0, 0xe9, 0x93, 0x98, 0x85, 0xf6,
+ 0xc3, 0x79, 0x46, 0x96, 0x25, 0x5e, 0x96, 0x8f, 0x8b, 0xb1, 0x81, 0x30, 0xf9, 0x18, 0x89, 0x96,
+ 0x40, 0x61, 0x0f, 0xbd, 0xa6, 0x12, 0x15, 0x24, 0x81, 0x1f, 0x0d, 0xf2, 0xa5, 0xf6, 0x9b, 0x39,
+ 0x50, 0xc0, 0x09, 0xea, 0x19, 0x00, 0xb0, 0x59, 0x40, 0x8e, 0x64, 0xe6, 0xb0, 0x01, 0xc0, 0xa4,
+ 0x60, 0x6d, 0xb5, 0x3a, 0xf4, 0x35, 0x31, 0xb8, 0xa3, 0x04, 0xf4, 0x35, 0x36, 0x16, 0x30, 0x2d,
+ 0x6a, 0x3e, 0x30, 0x29, 0xe8, 0x6b, 0xfc, 0x54, 0x83, 0x5b, 0xe4, 0x8e, 0x88, 0xbc, 0x11, 0x25,
+ 0x84, 0x5f, 0xd7, 0xc2, 0x9b, 0x45, 0x83, 0xaf, 0x71, 0x0a, 0x9a, 0x4a, 0x63, 0xb5, 0x5c, 0x8a,
+ 0x8a, 0x28, 0xe2, 0x4c, 0xfd, 0xc9, 0xda, 0xeb, 0x42, 0xb5, 0xa9, 0x70, 0x6a, 0x73, 0x47, 0x0a,
+ 0xf1, 0x66, 0xaf, 0x3c, 0x7f, 0x5a, 0x00, 0x33, 0x75, 0xa7, 0x43, 0x75, 0x87, 0x99, 0x6e, 0x7e,
+ 0xba, 0x90, 0x6a, 0xba, 0x19, 0xd2, 0x88, 0x51, 0x90, 0xa7, 0xf3, 0x0a, 0x22, 0x46, 0x81, 0xd5,
+ 0x0f, 0x75, 0x09, 0x14, 0xb1, 0xf6, 0x1e, 0xbc, 0xb2, 0x32, 0x89, 0x04, 0x16, 0xad, 0x41, 0xbf,
+ 0xfc, 0x0f, 0xa7, 0x63, 0xff, 0x0d, 0x14, 0x70, 0x05, 0x13, 0xf6, 0x86, 0xf8, 0x8a, 0x4a, 0xc9,
+ 0x15, 0x95, 0x93, 0x2b, 0x9a, 0xef, 0xaf, 0x68, 0x9a, 0x55, 0x84, 0x38, 0x0d, 0xc9, 0x5e, 0xc7,
+ 0xff, 0x76, 0x0a, 0x80, 0xba, 0x79, 0xd9, 0xda, 0x26, 0x7b, 0xcb, 0x7f, 0x18, 0xcc, 0x9e, 0xe8,
+ 0x2e, 0xf0, 0x8f, 0x31, 0x03, 0xe1, 0x5d, 0x60, 0x8a, 0x8e, 0x7b, 0xb4, 0x22, 0xd7, 0x73, 0x15,
+ 0x89, 0xa8, 0x10, 0xa3, 0xf6, 0x21, 0xdf, 0x08, 0xf2, 0x73, 0xb7, 0xeb, 0x4b, 0x7d, 0xb7, 0xeb,
+ 0x0f, 0xde, 0xc1, 0x88, 0xb9, 0x73, 0x5f, 0x7b, 0x9f, 0xf0, 0x19, 0x2a, 0x86, 0x1f, 0xa6, 0x46,
+ 0x31, 0x4d, 0xf0, 0x89, 0x60, 0xca, 0x09, 0xb7, 0xc3, 0xe5, 0xd8, 0x55, 0xb4, 0xaa, 0xbd, 0xe5,
+ 0x18, 0x41, 0x4e, 0xc1, 0xad, 0x33, 0x21, 0x3e, 0x26, 0x72, 0x4c, 0xf1, 0xd4, 0x4a, 0x10, 0x6f,
+ 0x13, 0xd5, 0xe3, 0xbc, 0xe5, 0xef, 0xd4, 0x2c, 0xfb, 0x92, 0xa7, 0x7d, 0xbf, 0x98, 0x05, 0xc9,
+ 0xe0, 0x2f, 0xa5, 0xc3, 0x9f, 0x8f, 0x77, 0xd5, 0xe4, 0x51, 0xbb, 0x37, 0x8e, 0xca, 0x60, 0x6e,
+ 0x63, 0x00, 0xbc, 0x1b, 0x14, 0x09, 0xa3, 0xb4, 0x13, 0x3d, 0x1b, 0x8b, 0x5f, 0x48, 0xc9, 0xa0,
+ 0x5f, 0x68, 0xef, 0x0d, 0x71, 0x3c, 0xc7, 0xe1, 0xb8, 0x74, 0x28, 0xce, 0x32, 0x87, 0xf4, 0xec,
+ 0x13, 0xc0, 0x14, 0x95, 0xb4, 0xba, 0xc0, 0xb6, 0x62, 0xe5, 0x98, 0x0a, 0x40, 0x71, 0xcd, 0xb9,
+ 0x0c, 0x5b, 0x8e, 0x92, 0x43, 0xff, 0x11, 0x7f, 0x2d, 0x47, 0x91, 0xb4, 0x57, 0x4e, 0x83, 0xe9,
+ 0x30, 0xd0, 0xe1, 0xef, 0x4b, 0x40, 0x29, 0xe3, 0x19, 0xda, 0xb2, 0xeb, 0xec, 0x92, 0x1a, 0x89,
+ 0xfb, 0xe3, 0xff, 0x8c, 0xb0, 0x83, 0x48, 0x18, 0x80, 0xb0, 0xbf, 0xb0, 0x18, 0x2c, 0xc9, 0x12,
+ 0xa6, 0x14, 0x2c, 0x61, 0x6a, 0x6f, 0x15, 0x72, 0x18, 0x11, 0x2d, 0x25, 0xfb, 0xa6, 0xf6, 0x5b,
+ 0x12, 0x28, 0x94, 0xbb, 0x8e, 0x0d, 0xd9, 0x43, 0xa3, 0x43, 0x4f, 0x27, 0x0e, 0xde, 0xc7, 0xd0,
+ 0x9e, 0x23, 0x89, 0xda, 0x1a, 0x91, 0x00, 0x50, 0xd9, 0x82, 0xb2, 0x15, 0x1b, 0xa4, 0x12, 0x49,
+ 0x67, 0x2f, 0xd0, 0xaf, 0x4a, 0x60, 0x86, 0x44, 0x26, 0x2b, 0x75, 0xbb, 0xda, 0xa3, 0x23, 0xa1,
+ 0x0e, 0x08, 0x16, 0xa9, 0xfd, 0xb2, 0xf0, 0xa1, 0xa8, 0xb0, 0x56, 0x21, 0xed, 0x14, 0xc1, 0xf5,
+ 0xd2, 0x9d, 0xd1, 0x11, 0xdb, 0x89, 0x1b, 0xca, 0x50, 0xf6, 0xa2, 0xfe, 0x03, 0x09, 0x19, 0x00,
+ 0xf6, 0xa5, 0x75, 0x17, 0x5e, 0xb6, 0xe0, 0x15, 0xed, 0xda, 0x48, 0xd8, 0x07, 0xc3, 0x2e, 0xbd,
+ 0x49, 0x78, 0x11, 0x87, 0x21, 0x19, 0xbb, 0x11, 0x36, 0xdb, 0x8d, 0x32, 0xd1, 0x5e, 0xbc, 0x3f,
+ 0x16, 0x16, 0x43, 0xc6, 0x60, 0xb3, 0x0b, 0xae, 0xd9, 0xc4, 0x73, 0x91, 0xbd, 0x60, 0x3f, 0x3a,
+ 0x05, 0xa6, 0x37, 0x6c, 0xaf, 0xd7, 0x35, 0xbd, 0x1d, 0xed, 0x5f, 0x65, 0x50, 0x24, 0x17, 0xa5,
+ 0x6a, 0xdf, 0xc5, 0x45, 0x77, 0x79, 0xd6, 0x1e, 0x74, 0x03, 0x07, 0x1e, 0xf2, 0x10, 0xd9, 0x47,
+ 0x12, 0x63, 0x1f, 0x69, 0x1f, 0x94, 0x45, 0x27, 0xa9, 0x41, 0xa1, 0xf4, 0x66, 0xd6, 0xf8, 0x80,
+ 0x22, 0x3d, 0xab, 0xed, 0xef, 0xb9, 0xd0, 0x1b, 0x18, 0x50, 0x24, 0x96, 0xca, 0x3a, 0xf9, 0xca,
+ 0x08, 0x3f, 0xd7, 0x4c, 0x30, 0x45, 0x13, 0x0f, 0x6c, 0x46, 0x1d, 0x8c, 0x78, 0x70, 0x0a, 0x14,
+ 0x4d, 0xd7, 0xb7, 0x3c, 0x9f, 0x6e, 0xcf, 0xd2, 0x27, 0xd4, 0x5d, 0x92, 0x7f, 0x1b, 0x6e, 0x37,
+ 0x88, 0x03, 0x15, 0x26, 0x68, 0xbf, 0x22, 0x34, 0x7f, 0x4c, 0xae, 0x79, 0x3a, 0xc8, 0x1f, 0x18,
+ 0x61, 0x85, 0xfb, 0x51, 0xe0, 0x2a, 0xa3, 0xd4, 0xd2, 0x37, 0x49, 0xd8, 0xa0, 0x30, 0x42, 0x50,
+ 0x47, 0x7b, 0x8f, 0xcc, 0xac, 0xdf, 0xed, 0x73, 0x63, 0x04, 0x95, 0x62, 0x34, 0x46, 0x84, 0x09,
+ 0x09, 0x7b, 0xdd, 0xdc, 0x12, 0xae, 0x2c, 0xbc, 0x84, 0xab, 0xfd, 0x92, 0xf0, 0x5e, 0x54, 0x28,
+ 0xca, 0x21, 0x6b, 0x80, 0x49, 0x17, 0x29, 0x7e, 0x58, 0x68, 0x5f, 0x69, 0x58, 0x49, 0x47, 0x08,
+ 0xdb, 0x37, 0x4f, 0x01, 0xa9, 0x54, 0xd5, 0x7e, 0x74, 0x0a, 0xcc, 0x9d, 0x77, 0x2d, 0xdf, 0xb2,
+ 0xb7, 0x5b, 0x8e, 0xd3, 0xf5, 0xb4, 0x6f, 0x30, 0x1b, 0x15, 0x4f, 0x06, 0xc5, 0xb6, 0x63, 0x6f,
+ 0x59, 0xdb, 0x54, 0x8c, 0x67, 0xb8, 0xca, 0x95, 0xaa, 0x8b, 0xeb, 0xae, 0x73, 0xd9, 0xea, 0x40,
+ 0xb7, 0x8c, 0x73, 0x19, 0x34, 0x37, 0xd2, 0x63, 0x26, 0xf0, 0xda, 0x1d, 0xfd, 0x5f, 0xb1, 0xe5,
+ 0x85, 0x91, 0x5f, 0x68, 0x22, 0x13, 0x77, 0xad, 0x0a, 0xa6, 0xbb, 0xa6, 0xbd, 0xbd, 0x17, 0xcc,
+ 0xbc, 0xfb, 0x77, 0x51, 0xe3, 0x28, 0xd5, 0xe8, 0x47, 0x46, 0xf8, 0x39, 0x76, 0x72, 0x43, 0xa6,
+ 0x3e, 0x69, 0x7b, 0xf8, 0xff, 0xd9, 0x8f, 0xe5, 0xc0, 0x2c, 0x53, 0xa8, 0x3a, 0x0b, 0xa6, 0x2a,
+ 0xfa, 0x72, 0x69, 0xa3, 0xd6, 0x52, 0x8e, 0x21, 0x29, 0x36, 0x37, 0xd6, 0xd6, 0x4a, 0x46, 0xf5,
+ 0x7b, 0x74, 0x25, 0x87, 0xde, 0xad, 0x18, 0x25, 0xf4, 0xac, 0x48, 0xe8, 0xa1, 0xb9, 0xda, 0x30,
+ 0x5a, 0x7a, 0x5d, 0x91, 0x91, 0x3d, 0xaa, 0x3f, 0x73, 0xbd, 0x54, 0xaf, 0x28, 0x79, 0xf4, 0x7f,
+ 0x69, 0xa3, 0x56, 0xd3, 0x5b, 0x4a, 0x21, 0x0a, 0xc5, 0x56, 0x44, 0xc9, 0xe5, 0x52, 0x73, 0xa3,
+ 0x54, 0x53, 0xa6, 0x50, 0xf2, 0xf2, 0x46, 0xbd, 0x7e, 0x41, 0x99, 0x46, 0x45, 0x94, 0x1b, 0xf5,
+ 0xe5, 0x6a, 0x45, 0xaf, 0xb7, 0x94, 0x19, 0xf5, 0x2a, 0x70, 0xbc, 0xd9, 0x32, 0x4a, 0xd5, 0x95,
+ 0xd5, 0xd6, 0x72, 0xc3, 0x38, 0x5f, 0x32, 0x2a, 0x0a, 0x50, 0x15, 0x30, 0xb7, 0x6e, 0x34, 0x96,
+ 0x75, 0x1c, 0xcb, 0xa3, 0x54, 0x53, 0x66, 0xd1, 0x57, 0x2d, 0xa3, 0x54, 0x6f, 0xd6, 0x4a, 0x2d,
+ 0x5d, 0x99, 0x3b, 0x7b, 0x3f, 0x98, 0x0e, 0xaa, 0xab, 0x16, 0x81, 0xa4, 0xd7, 0x95, 0x63, 0xf8,
+ 0xb7, 0xa9, 0xe4, 0xd0, 0xef, 0x32, 0xe2, 0xb7, 0x08, 0xa4, 0x8a, 0xae, 0xc8, 0xe8, 0xb7, 0xda,
+ 0x52, 0xf2, 0xe8, 0x77, 0x1d, 0xb1, 0x58, 0x04, 0xd2, 0x6a, 0x55, 0x29, 0xa2, 0xdf, 0xd6, 0xaa,
+ 0x32, 0xc5, 0xdf, 0x97, 0x9e, 0xd8, 0x0b, 0x1f, 0x94, 0x7c, 0x8c, 0xa1, 0xe1, 0x47, 0x73, 0x64,
+ 0xfc, 0x5f, 0x7b, 0x85, 0x24, 0xd2, 0xd7, 0x25, 0xd3, 0x4f, 0xd7, 0x68, 0xde, 0x92, 0x1b, 0x63,
+ 0xab, 0x51, 0x35, 0x70, 0x4a, 0xaf, 0x57, 0xd6, 0x1b, 0xd5, 0x7a, 0x8b, 0x04, 0xcc, 0xd2, 0x4b,
+ 0xe5, 0x55, 0x8c, 0x33, 0x44, 0x08, 0xae, 0x35, 0x2a, 0x7a, 0x0d, 0xbf, 0x58, 0x6e, 0x6c, 0xd4,
+ 0x2b, 0xca, 0x16, 0x2a, 0xab, 0xb4, 0xd1, 0x5a, 0xdd, 0x34, 0xf4, 0x67, 0x6c, 0x54, 0x0d, 0xbd,
+ 0xa2, 0x6c, 0x23, 0x1a, 0xb5, 0x52, 0x7d, 0x65, 0xa3, 0xb4, 0x42, 0xf7, 0x0b, 0x37, 0xd6, 0xd7,
+ 0x1b, 0x78, 0xc7, 0x70, 0x47, 0xfb, 0x87, 0x3c, 0x98, 0x2e, 0xed, 0xf9, 0xce, 0x96, 0xd5, 0xed,
+ 0x6a, 0x0f, 0x4b, 0x87, 0x6f, 0x8a, 0x25, 0xae, 0x29, 0x1e, 0x68, 0x40, 0x41, 0x59, 0x61, 0xe3,
+ 0x09, 0x12, 0x98, 0x76, 0x78, 0x3a, 0x72, 0xc6, 0x96, 0xe9, 0x4e, 0x33, 0x79, 0x24, 0x8e, 0xb8,
+ 0x36, 0x6d, 0x59, 0xf8, 0x0d, 0x7d, 0x3c, 0xfb, 0x00, 0x98, 0x63, 0x29, 0xe1, 0xa0, 0x52, 0xa5,
+ 0x15, 0x12, 0x75, 0x2a, 0x88, 0x33, 0x47, 0xa2, 0x4e, 0xe1, 0x43, 0x01, 0x12, 0x6e, 0x2f, 0xd5,
+ 0x56, 0x0d, 0xe9, 0xe9, 0x71, 0x30, 0x5b, 0xd1, 0x9b, 0x65, 0xa3, 0x8a, 0xfd, 0xd4, 0x95, 0x3c,
+ 0xef, 0x65, 0x90, 0x68, 0x99, 0xf1, 0x35, 0x12, 0x55, 0xca, 0x6f, 0x09, 0xd9, 0x5b, 0xf1, 0xb4,
+ 0xd3, 0x29, 0xe4, 0x8b, 0x1f, 0x69, 0x0a, 0xa9, 0xbd, 0x38, 0x4f, 0xd6, 0xc9, 0x9a, 0x7b, 0xbb,
+ 0xbb, 0xa6, 0xbb, 0xcf, 0xf9, 0xab, 0x8d, 0xaa, 0x77, 0xf1, 0xe3, 0x7b, 0x62, 0x84, 0x1a, 0x64,
+ 0x42, 0xf5, 0x5c, 0x67, 0xb7, 0x17, 0xf4, 0xd5, 0xf4, 0x49, 0xfb, 0x7f, 0x84, 0x67, 0x8e, 0xa5,
+ 0xea, 0x22, 0x53, 0x99, 0x11, 0x86, 0xf6, 0x1f, 0x90, 0x44, 0x66, 0x91, 0x89, 0xc5, 0x7c, 0xbb,
+ 0x6b, 0xc4, 0xdf, 0xe4, 0xc1, 0x55, 0x34, 0xfa, 0x48, 0xb8, 0xfe, 0x80, 0x4c, 0xd5, 0x57, 0x67,
+ 0xaa, 0x19, 0xd4, 0xa0, 0x96, 0x23, 0x83, 0x9a, 0xd9, 0xf0, 0xce, 0x0b, 0x6e, 0x78, 0xbf, 0x4d,
+ 0xf8, 0xd0, 0x43, 0xa9, 0xba, 0x38, 0xa0, 0x8e, 0x93, 0xd9, 0x96, 0x7f, 0xbe, 0x24, 0xb2, 0xda,
+ 0x2a, 0xc4, 0xe1, 0xb7, 0xbb, 0xae, 0xbd, 0x23, 0x07, 0x16, 0x78, 0x55, 0x51, 0x9f, 0x04, 0xa6,
+ 0x7b, 0x34, 0x85, 0xca, 0xe5, 0x74, 0x9c, 0x72, 0x19, 0x61, 0x4e, 0x04, 0x11, 0xb4, 0x3b, 0x3d,
+ 0xc7, 0xb2, 0xc3, 0x75, 0xf9, 0xe0, 0x19, 0xcd, 0x3b, 0xf1, 0xd4, 0x21, 0x88, 0x45, 0x87, 0x1f,
+ 0xa2, 0x08, 0xa4, 0x79, 0x26, 0x02, 0x29, 0x12, 0xa2, 0x0f, 0x77, 0xf1, 0x5d, 0x38, 0x7b, 0x2e,
+ 0x71, 0x78, 0x91, 0x0c, 0x36, 0xe9, 0xec, 0xd3, 0xc0, 0x74, 0x50, 0x3e, 0xb2, 0xee, 0x1a, 0xb5,
+ 0x5a, 0x69, 0xad, 0x44, 0x16, 0x2a, 0x1b, 0xeb, 0x7a, 0xbd, 0x54, 0x55, 0x72, 0x68, 0xa0, 0xab,
+ 0xad, 0x35, 0x5b, 0x1b, 0x95, 0x6a, 0x43, 0x91, 0xf0, 0x13, 0xca, 0x54, 0x5e, 0x5f, 0x57, 0x64,
+ 0xed, 0x8d, 0x53, 0x60, 0x6a, 0xc5, 0xec, 0x76, 0xa1, 0xbb, 0xaf, 0x7d, 0x55, 0x02, 0x4a, 0x30,
+ 0x3b, 0x58, 0x33, 0x6d, 0x6b, 0x0b, 0x7a, 0x7e, 0xf2, 0x42, 0xc5, 0xfb, 0x84, 0x2f, 0xc8, 0xa2,
+ 0x65, 0x2c, 0xf6, 0xd3, 0x8f, 0xd1, 0xf1, 0xdb, 0x41, 0xde, 0xb2, 0xb7, 0x1c, 0xba, 0x5c, 0xd1,
+ 0xef, 0x6f, 0x13, 0x7c, 0x8c, 0xb7, 0x0d, 0x70, 0x46, 0xc1, 0x3b, 0xb2, 0x04, 0xb9, 0xc8, 0x7e,
+ 0xd5, 0xe2, 0x1d, 0x79, 0x30, 0x1f, 0x30, 0x51, 0xb5, 0x3b, 0xf0, 0x21, 0x76, 0x1b, 0xf4, 0x27,
+ 0xf3, 0xa2, 0xc1, 0x6f, 0xfa, 0xeb, 0x83, 0x49, 0xc5, 0x88, 0xb4, 0x05, 0x40, 0xdb, 0xf4, 0xe1,
+ 0xb6, 0xe3, 0x5a, 0xe1, 0x5a, 0xc4, 0x93, 0xd2, 0x50, 0x2b, 0x93, 0xaf, 0xf7, 0x0d, 0x86, 0x8e,
+ 0x7a, 0x2f, 0x98, 0x85, 0x61, 0xb4, 0xc1, 0x60, 0x9b, 0x34, 0x11, 0x2f, 0x36, 0xbf, 0xf6, 0x07,
+ 0x42, 0x31, 0x76, 0x44, 0xaa, 0x99, 0x0e, 0xb3, 0xcd, 0xd1, 0xba, 0x9e, 0x8d, 0xfa, 0x5a, 0xc9,
+ 0x68, 0xae, 0x96, 0x6a, 0xb5, 0x6a, 0x7d, 0x25, 0x0c, 0x7b, 0xab, 0x82, 0x85, 0x4a, 0xe3, 0x7c,
+ 0x9d, 0x89, 0x4b, 0x9c, 0xd7, 0xd6, 0xc1, 0x74, 0x20, 0xaf, 0x41, 0xa7, 0xa8, 0x58, 0x99, 0xd1,
+ 0x53, 0x54, 0x4c, 0x12, 0x32, 0x0d, 0xad, 0x76, 0xe8, 0x5a, 0x8f, 0xff, 0x6b, 0xbf, 0x61, 0x82,
+ 0x02, 0xf6, 0x67, 0xd1, 0xde, 0x85, 0xe7, 0xc5, 0xbd, 0xae, 0xd9, 0x86, 0xda, 0x6e, 0x8a, 0x95,
+ 0xf0, 0xe0, 0xc6, 0x56, 0xe9, 0xc0, 0x8d, 0xad, 0xf8, 0x2f, 0x1d, 0x31, 0x4e, 0x0e, 0xf2, 0xa1,
+ 0x31, 0x48, 0x16, 0x3e, 0x1c, 0x4d, 0xa2, 0x67, 0x13, 0x71, 0xbd, 0xa1, 0x6c, 0xc6, 0xa8, 0x64,
+ 0x3c, 0x4f, 0x59, 0x5c, 0xc5, 0x91, 0xc4, 0x51, 0xf6, 0x2d, 0xfe, 0x4b, 0x79, 0x50, 0x68, 0xf6,
+ 0xba, 0x96, 0xaf, 0xfd, 0x9c, 0x34, 0x16, 0xcc, 0xc8, 0x2d, 0xbb, 0xf2, 0xd0, 0x5b, 0x76, 0x23,
+ 0x7f, 0xc9, 0xbc, 0x80, 0xbf, 0x64, 0x0b, 0x3e, 0xe4, 0xf3, 0xfe, 0x92, 0x77, 0xd1, 0x69, 0x1b,
+ 0xf1, 0xb6, 0x7c, 0xcc, 0x00, 0x91, 0xe2, 0x6a, 0x0d, 0xb8, 0x13, 0xe1, 0xec, 0x13, 0x68, 0x68,
+ 0x76, 0x00, 0x8a, 0x4b, 0x8d, 0x56, 0xab, 0xb1, 0xa6, 0x1c, 0xc3, 0xd3, 0xaf, 0xc6, 0x3a, 0x09,
+ 0x94, 0x5b, 0xad, 0xd7, 0x75, 0x83, 0x9b, 0x71, 0xf1, 0x57, 0x2e, 0x26, 0x4e, 0xb0, 0xf8, 0xb2,
+ 0xb3, 0x54, 0x2f, 0xb1, 0x45, 0xf0, 0x78, 0x7e, 0xb2, 0x57, 0xae, 0x9f, 0x96, 0x41, 0x61, 0x0d,
+ 0xba, 0xdb, 0x50, 0x7b, 0x56, 0x0a, 0x07, 0xbb, 0x2d, 0xcb, 0xf5, 0x48, 0x68, 0xfd, 0xc8, 0xc1,
+ 0x8e, 0x4d, 0x53, 0x6f, 0x02, 0xf3, 0x1e, 0x6c, 0x3b, 0x76, 0x27, 0xc8, 0x44, 0xfa, 0x23, 0x3e,
+ 0x51, 0x7b, 0x59, 0x4a, 0xc8, 0x30, 0xa3, 0x63, 0xf1, 0x92, 0x4b, 0x03, 0xcc, 0xa0, 0x52, 0xb3,
+ 0x07, 0xe6, 0xeb, 0x32, 0xfa, 0xa8, 0xb7, 0xaf, 0xbd, 0x4c, 0xd8, 0xf3, 0xf1, 0x36, 0x50, 0xbc,
+ 0x18, 0xdc, 0xae, 0x25, 0xc7, 0xf6, 0xc7, 0x34, 0x8f, 0xba, 0x04, 0x4e, 0x78, 0xb0, 0x0b, 0xdb,
+ 0x3e, 0xec, 0xa0, 0xa6, 0x6b, 0x0c, 0xed, 0x14, 0x0e, 0x66, 0xd7, 0x7e, 0x87, 0x05, 0xf0, 0x1e,
+ 0x1e, 0xc0, 0x9b, 0x07, 0x88, 0x12, 0x55, 0x28, 0x7e, 0x6e, 0x82, 0xaa, 0xd1, 0xec, 0x3a, 0xa1,
+ 0xe1, 0x1b, 0x3c, 0xa3, 0x77, 0x3b, 0xfe, 0x6e, 0x17, 0xbf, 0xa3, 0x47, 0x83, 0x83, 0x67, 0x75,
+ 0x11, 0x4c, 0x99, 0xf6, 0x3e, 0x7e, 0x95, 0x4f, 0xa8, 0x75, 0x90, 0x49, 0x7b, 0x65, 0x88, 0xfc,
+ 0x7d, 0x1c, 0xf2, 0x8f, 0x13, 0x63, 0x37, 0x7b, 0xe0, 0x7f, 0x68, 0x0a, 0x14, 0xd6, 0x4d, 0xcf,
+ 0x87, 0xda, 0xff, 0x94, 0x45, 0x91, 0xbf, 0x19, 0x2c, 0x6c, 0x39, 0xed, 0x3d, 0x0f, 0x76, 0xf8,
+ 0x46, 0xd9, 0x97, 0x3a, 0x0e, 0xcc, 0xd5, 0x5b, 0x81, 0x12, 0x24, 0x52, 0xb2, 0x81, 0x0b, 0xec,
+ 0x81, 0x74, 0x7c, 0x81, 0x9f, 0xb7, 0x6e, 0xba, 0x7e, 0x63, 0x0b, 0xa7, 0x85, 0x17, 0xf8, 0xb1,
+ 0x89, 0x1c, 0xf4, 0xc5, 0x04, 0xe8, 0xa7, 0xe2, 0xa1, 0x9f, 0x16, 0x80, 0x5e, 0x2d, 0x81, 0xe9,
+ 0x2d, 0xab, 0x0b, 0xf1, 0x07, 0x33, 0xf8, 0x83, 0x41, 0x63, 0x12, 0x96, 0x7d, 0x38, 0x26, 0x2d,
+ 0x5b, 0x5d, 0x68, 0x84, 0x9f, 0x05, 0x13, 0x19, 0x10, 0x4d, 0x64, 0x6a, 0xe4, 0x24, 0x1c, 0x32,
+ 0xbc, 0x6c, 0x73, 0x17, 0x06, 0x1b, 0xdf, 0x36, 0x3d, 0x96, 0xde, 0x31, 0x7d, 0x13, 0x83, 0x31,
+ 0x67, 0xe0, 0xff, 0xbc, 0x4f, 0xb6, 0xdc, 0xef, 0x93, 0xfd, 0x3c, 0x39, 0x5d, 0x8f, 0x18, 0x30,
+ 0x1b, 0xd3, 0xa2, 0x2e, 0x06, 0x00, 0x11, 0x4b, 0x31, 0x7c, 0x46, 0xc0, 0xb4, 0x4d, 0x17, 0xfa,
+ 0xeb, 0xac, 0x17, 0x74, 0xc1, 0xe0, 0x13, 0xf1, 0x21, 0x1c, 0xaf, 0x69, 0xee, 0x92, 0x0b, 0xfa,
+ 0xca, 0xe8, 0x1d, 0x3d, 0x5c, 0x71, 0x20, 0x3d, 0xea, 0x7f, 0x0b, 0xe3, 0xee, 0x7f, 0x07, 0xd5,
+ 0x31, 0xfb, 0x66, 0xf8, 0x9a, 0x3c, 0x90, 0xcb, 0x7b, 0xfe, 0x23, 0xba, 0xfb, 0xfd, 0x96, 0xb0,
+ 0x8f, 0x39, 0xed, 0xcf, 0xf6, 0xfc, 0xa3, 0xed, 0x7d, 0x53, 0x6a, 0x89, 0x98, 0x2f, 0x7b, 0x5c,
+ 0xdd, 0xb2, 0xd7, 0x91, 0xb7, 0xc9, 0xe1, 0xd1, 0xa8, 0x87, 0x73, 0x87, 0x37, 0xcd, 0x35, 0xd2,
+ 0x3f, 0x31, 0x3d, 0x43, 0xf8, 0x1c, 0x74, 0x3c, 0x79, 0xee, 0x66, 0x02, 0xec, 0xda, 0x8a, 0x45,
+ 0x39, 0x67, 0x90, 0x07, 0xed, 0xe5, 0xc2, 0x07, 0x46, 0x89, 0xd8, 0x12, 0x8f, 0xf1, 0xa4, 0xb3,
+ 0xa9, 0x5e, 0x2d, 0x74, 0x6c, 0x34, 0xa1, 0xd8, 0xec, 0x01, 0xfb, 0x7b, 0xf6, 0x98, 0x4e, 0xe9,
+ 0xd0, 0x88, 0x69, 0xaf, 0x12, 0x5e, 0xd0, 0x27, 0xd5, 0x1e, 0xb2, 0x57, 0x9f, 0x4e, 0xde, 0x62,
+ 0x8e, 0x62, 0x89, 0x05, 0x4f, 0xe0, 0xc6, 0x61, 0x19, 0x14, 0xc9, 0xc2, 0xaf, 0xf6, 0x66, 0xe1,
+ 0x26, 0x82, 0x7a, 0x23, 0xfe, 0xf8, 0x4e, 0xf8, 0x9c, 0x66, 0xcd, 0x81, 0x3b, 0xe6, 0x93, 0x4f,
+ 0x75, 0xcc, 0x87, 0x8f, 0xc0, 0x22, 0xd0, 0x8e, 0x48, 0x1d, 0x33, 0x9e, 0x4e, 0xa6, 0x69, 0x61,
+ 0x03, 0x19, 0xca, 0x1e, 0xef, 0x17, 0x14, 0xc0, 0x1c, 0x29, 0x9a, 0x9c, 0x2f, 0xd4, 0xde, 0x23,
+ 0x7d, 0xfb, 0xa0, 0xae, 0xd6, 0xc1, 0xdc, 0x15, 0xcc, 0x36, 0xb9, 0x49, 0x98, 0xae, 0x5c, 0xdc,
+ 0x9a, 0xb8, 0xee, 0x41, 0xea, 0x19, 0xdc, 0x3d, 0xcc, 0x7d, 0x8f, 0x64, 0x4c, 0x36, 0x58, 0xc8,
+ 0xe1, 0x89, 0x22, 0x36, 0xb2, 0xd8, 0x24, 0xf5, 0x14, 0x28, 0x5e, 0xb6, 0xe0, 0x95, 0x6a, 0x87,
+ 0x5a, 0xb7, 0xf4, 0x49, 0xfb, 0x55, 0x61, 0x9f, 0x49, 0x16, 0x6e, 0xca, 0x4b, 0xb6, 0x5a, 0x28,
+ 0xe6, 0x39, 0x39, 0x94, 0xad, 0x09, 0x44, 0x03, 0x92, 0xc8, 0x6d, 0xe7, 0x34, 0xcc, 0x7c, 0x39,
+ 0x85, 0x22, 0xc6, 0x19, 0xce, 0x7c, 0x10, 0xbe, 0xc4, 0xb3, 0xe6, 0x44, 0x00, 0x51, 0xf9, 0x63,
+ 0xe9, 0xf3, 0xc5, 0x22, 0xc3, 0x0d, 0x29, 0x3a, 0x7b, 0xc9, 0xbf, 0x4e, 0x06, 0x33, 0x4d, 0xe8,
+ 0x2f, 0x5b, 0xb0, 0xdb, 0xf1, 0x34, 0xf7, 0xf0, 0xa6, 0xd1, 0xed, 0xa0, 0xb8, 0x85, 0x89, 0x0d,
+ 0xdb, 0x9c, 0xa4, 0xd9, 0xb4, 0xd7, 0x48, 0xa2, 0x7e, 0x40, 0x74, 0xf5, 0x2d, 0xe0, 0x76, 0x2c,
+ 0x30, 0x89, 0x9d, 0xa6, 0x4b, 0x2e, 0x79, 0x02, 0xd7, 0xf8, 0xc8, 0x60, 0x0e, 0x6f, 0xff, 0x43,
+ 0xbf, 0xd4, 0xb5, 0xb6, 0x6d, 0xf6, 0x8e, 0xee, 0x91, 0x5b, 0x88, 0x7a, 0x07, 0x28, 0x98, 0x88,
+ 0x1a, 0x75, 0x77, 0xd3, 0x06, 0x76, 0x9e, 0xb8, 0x3c, 0x83, 0x64, 0x4c, 0x71, 0x69, 0x46, 0xa4,
+ 0xd8, 0x01, 0xcf, 0x13, 0xbc, 0x34, 0x63, 0x68, 0xe1, 0xd9, 0x23, 0xf6, 0x15, 0x19, 0x9c, 0xa4,
+ 0x0c, 0x9c, 0x83, 0xae, 0x6f, 0xb5, 0xcd, 0x2e, 0x41, 0xee, 0x45, 0xb9, 0x71, 0x40, 0xb7, 0x0a,
+ 0xe6, 0x2f, 0xb3, 0x64, 0x29, 0x84, 0x67, 0x07, 0x42, 0xc8, 0x31, 0x60, 0xf0, 0x1f, 0xa6, 0xb8,
+ 0x7c, 0x80, 0x93, 0x2a, 0x47, 0x73, 0x82, 0x97, 0x0f, 0x08, 0x33, 0x91, 0x3d, 0xc4, 0x2f, 0xa5,
+ 0x41, 0x35, 0xa3, 0xee, 0xf3, 0x0f, 0x85, 0xb1, 0xdd, 0x00, 0xb3, 0x18, 0x4b, 0xf2, 0x21, 0x5d,
+ 0x86, 0x48, 0x50, 0xe2, 0xb0, 0xdf, 0xa1, 0xd7, 0xa5, 0x87, 0xdf, 0x1a, 0x2c, 0x1d, 0xed, 0x3c,
+ 0x00, 0xd1, 0x2b, 0xb6, 0x93, 0xce, 0xc5, 0x75, 0xd2, 0x92, 0x58, 0x27, 0xfd, 0x26, 0xe1, 0x30,
+ 0x87, 0x83, 0xd9, 0x3e, 0xbc, 0x7a, 0x88, 0x05, 0xb8, 0x1b, 0x5e, 0x7a, 0xf6, 0x7a, 0xf1, 0x4a,
+ 0xaa, 0x17, 0x95, 0xbd, 0x5e, 0xd7, 0x6a, 0xa3, 0xf9, 0xd4, 0x27, 0xc6, 0x32, 0x9f, 0x62, 0xfb,
+ 0x03, 0xb9, 0xaf, 0x3f, 0x38, 0x84, 0x25, 0x7d, 0x0b, 0x38, 0x4e, 0x8a, 0x28, 0x87, 0x6c, 0x15,
+ 0x48, 0x10, 0xb7, 0xbe, 0x64, 0x3e, 0xa2, 0xb8, 0xa0, 0x12, 0x84, 0x42, 0x18, 0x61, 0xe9, 0x33,
+ 0x9d, 0xb1, 0x9b, 0x56, 0x41, 0xe2, 0x38, 0x9b, 0xc0, 0x91, 0xac, 0x3c, 0xb1, 0x76, 0x37, 0xf0,
+ 0x8d, 0xf6, 0xda, 0x17, 0xf3, 0xe3, 0x18, 0x11, 0x9e, 0x4e, 0x3d, 0x4d, 0xe5, 0xd8, 0x25, 0x8d,
+ 0xa8, 0xc8, 0xb0, 0x1f, 0x69, 0xc1, 0x87, 0xfc, 0xd5, 0x63, 0xc4, 0x2f, 0x55, 0xbd, 0x15, 0x1c,
+ 0xbf, 0x68, 0xb6, 0x2f, 0x6d, 0xbb, 0xce, 0x1e, 0xbe, 0xfb, 0xdb, 0xa1, 0x97, 0x88, 0xaf, 0x1e,
+ 0x33, 0xfa, 0x5f, 0xa8, 0x77, 0x06, 0xa6, 0x43, 0x61, 0x98, 0xe9, 0xb0, 0x7a, 0x8c, 0x1a, 0x0f,
+ 0xea, 0x13, 0xc2, 0x4e, 0xa7, 0x98, 0xd8, 0xe9, 0xac, 0x1e, 0x0b, 0xba, 0x1d, 0xb5, 0x02, 0xa6,
+ 0x3b, 0xd6, 0x65, 0xbc, 0x55, 0x8d, 0x67, 0x5d, 0xc3, 0x82, 0x0e, 0x55, 0xac, 0xcb, 0x64, 0x63,
+ 0x7b, 0xf5, 0x98, 0x11, 0x7e, 0xa9, 0xae, 0x80, 0x19, 0xbc, 0x2d, 0x80, 0xc9, 0x4c, 0xa7, 0x0a,
+ 0x28, 0xb4, 0x7a, 0xcc, 0x88, 0xbe, 0x45, 0xd6, 0x47, 0x1e, 0x9f, 0xbb, 0xbe, 0x2f, 0xd8, 0x6e,
+ 0xcf, 0xa5, 0xda, 0x6e, 0x47, 0xb2, 0x20, 0x1b, 0xee, 0xa7, 0x40, 0xa1, 0x8d, 0x25, 0x2c, 0x51,
+ 0x09, 0x93, 0x47, 0xf5, 0x1e, 0x90, 0xdf, 0x35, 0xdd, 0x60, 0xf2, 0x7c, 0xf3, 0x70, 0xba, 0x6b,
+ 0xa6, 0x7b, 0x09, 0x21, 0x88, 0xbe, 0x5a, 0x9a, 0x02, 0x05, 0x2c, 0xb8, 0xf0, 0x8f, 0xf6, 0xb6,
+ 0x3c, 0x31, 0x43, 0xca, 0x8e, 0x8d, 0x86, 0xfd, 0x96, 0x13, 0x1c, 0x4e, 0xff, 0xd5, 0xdc, 0x78,
+ 0x2c, 0xc8, 0xab, 0x98, 0xab, 0x3e, 0x6c, 0xeb, 0x59, 0x7b, 0xf0, 0x01, 0xb8, 0x4f, 0x97, 0x44,
+ 0x07, 0xbd, 0x52, 0xcf, 0x00, 0xe0, 0xd3, 0x93, 0x7a, 0x61, 0x10, 0x53, 0x26, 0x25, 0x5a, 0x3e,
+ 0x28, 0x0c, 0x77, 0x54, 0xf9, 0x9d, 0x11, 0x4c, 0x97, 0x7e, 0x41, 0xc4, 0xcf, 0xc0, 0xbb, 0x96,
+ 0xcd, 0xd4, 0x39, 0x78, 0x4c, 0xd9, 0x29, 0xa5, 0x35, 0x6a, 0x86, 0xb0, 0x97, 0x7d, 0xdf, 0xf4,
+ 0x96, 0x3c, 0xb9, 0xed, 0x80, 0x9c, 0x80, 0xd6, 0x1f, 0xb2, 0x3c, 0xdf, 0xb2, 0xb7, 0xe9, 0xf9,
+ 0xe6, 0xcf, 0x8e, 0x45, 0x69, 0x06, 0x0c, 0x38, 0xf2, 0xc0, 0x01, 0xe7, 0x40, 0x80, 0xa0, 0xfc,
+ 0x90, 0x00, 0x41, 0x85, 0x74, 0x2b, 0x87, 0x1f, 0x61, 0xf5, 0x67, 0x9d, 0xd7, 0x9f, 0xbb, 0x63,
+ 0x00, 0x1a, 0x24, 0x97, 0xb1, 0xd8, 0x37, 0xef, 0x0a, 0x35, 0xa5, 0xc9, 0x69, 0xca, 0x7d, 0xa3,
+ 0x33, 0x92, 0xbd, 0xb6, 0x7c, 0x28, 0x0f, 0xae, 0x8a, 0x98, 0xa9, 0xc3, 0x2b, 0x54, 0x51, 0x7e,
+ 0x7f, 0x2c, 0x8a, 0x92, 0xde, 0xd1, 0x39, 0x6b, 0x8d, 0xf9, 0x4d, 0xe1, 0x73, 0xfb, 0xfd, 0x40,
+ 0x85, 0xb2, 0x89, 0x51, 0x96, 0x53, 0xa0, 0x48, 0x7a, 0x18, 0x0a, 0x0d, 0x7d, 0x4a, 0xd9, 0xdd,
+ 0x88, 0x9d, 0xf6, 0x17, 0xe5, 0x6d, 0x02, 0xfa, 0x43, 0xd7, 0x35, 0x5a, 0x7b, 0xae, 0x5d, 0xb5,
+ 0x7d, 0x47, 0xfb, 0xc1, 0xb1, 0x28, 0x4e, 0xe8, 0x0d, 0x27, 0x8f, 0xe2, 0x0d, 0x37, 0xd2, 0x2a,
+ 0x47, 0x50, 0x83, 0x23, 0x59, 0xe5, 0x88, 0x29, 0x3c, 0x7b, 0xfc, 0xde, 0x29, 0x83, 0x53, 0x74,
+ 0xb2, 0xb5, 0xc4, 0x5b, 0x88, 0xda, 0x85, 0x71, 0x00, 0x79, 0x32, 0x30, 0x93, 0xa8, 0x1f, 0x3d,
+ 0x7e, 0xe0, 0xa3, 0x14, 0x24, 0xde, 0x66, 0xc9, 0x4d, 0x07, 0xfb, 0x38, 0x1c, 0x0b, 0x52, 0x62,
+ 0x97, 0x58, 0xa6, 0x60, 0x23, 0x7b, 0xcc, 0x5e, 0x22, 0x83, 0x22, 0x89, 0x91, 0xa0, 0x6d, 0x64,
+ 0xe2, 0x30, 0xc1, 0xdf, 0xcf, 0x22, 0xb0, 0x23, 0x47, 0xb8, 0xc9, 0x2c, 0x7e, 0x44, 0x9a, 0xbd,
+ 0xb8, 0x81, 0xac, 0x4c, 0xc0, 0x85, 0x50, 0x02, 0xb3, 0x4d, 0xe8, 0x97, 0x4d, 0xd7, 0xb5, 0xcc,
+ 0xed, 0x71, 0x79, 0x7c, 0x8b, 0x7a, 0x0f, 0x6b, 0xdf, 0xc8, 0x89, 0x9e, 0x65, 0x0f, 0x17, 0xc2,
+ 0x03, 0x56, 0x63, 0xa2, 0x80, 0xbf, 0x5e, 0xe8, 0xbc, 0xfa, 0x30, 0x6a, 0x13, 0xf0, 0xd8, 0x96,
+ 0xc0, 0x54, 0x10, 0x07, 0xe3, 0x76, 0x2e, 0x36, 0xca, 0x8e, 0xbf, 0x1b, 0x1c, 0x83, 0xc1, 0xff,
+ 0x0f, 0xc6, 0x5f, 0xd0, 0x5e, 0x91, 0xd2, 0x51, 0x3e, 0x39, 0x88, 0x47, 0xba, 0x36, 0x96, 0xc6,
+ 0x1d, 0xfe, 0xa8, 0xc2, 0x76, 0xfc, 0xf2, 0x14, 0x5d, 0x8e, 0xac, 0x99, 0x3e, 0x7c, 0x48, 0xfb,
+ 0x43, 0x19, 0x4c, 0x35, 0xa1, 0x8f, 0xc6, 0x5b, 0xc4, 0xfe, 0xa1, 0x35, 0x5c, 0x65, 0x56, 0x3c,
+ 0xe8, 0xd9, 0x5a, 0xf5, 0x7e, 0x30, 0xd3, 0x73, 0x9d, 0x36, 0xf4, 0x3c, 0xba, 0x7a, 0xc1, 0x3a,
+ 0xaa, 0x0d, 0x1a, 0xfd, 0x31, 0x6b, 0x8b, 0xeb, 0xc1, 0x37, 0x46, 0xf4, 0x79, 0x5a, 0x33, 0x80,
+ 0x50, 0xa2, 0x15, 0x9c, 0xb4, 0x19, 0x90, 0x54, 0x78, 0xf6, 0x40, 0xff, 0xae, 0x0c, 0xe6, 0x9a,
+ 0xd0, 0x0f, 0xa5, 0x98, 0x62, 0x93, 0x23, 0x1e, 0x5e, 0x0e, 0x4a, 0xf9, 0x70, 0x50, 0xbe, 0x53,
+ 0xf8, 0x52, 0x58, 0x5e, 0x9a, 0x21, 0xb1, 0xb1, 0xe0, 0xf9, 0x16, 0xa1, 0xbb, 0x60, 0xc5, 0x38,
+ 0x98, 0xc0, 0xf1, 0xb5, 0xc7, 0x80, 0x19, 0xcc, 0x0b, 0x6e, 0xb0, 0x3f, 0x9a, 0x8f, 0x1a, 0xef,
+ 0x17, 0x32, 0x6a, 0xbc, 0xf7, 0x82, 0xc2, 0xae, 0xe9, 0x5e, 0x0a, 0x0e, 0xdf, 0x3e, 0x56, 0x6c,
+ 0xf5, 0xcb, 0x33, 0xc8, 0x57, 0x83, 0xfd, 0x34, 0x0b, 0xe9, 0xfc, 0x34, 0x5f, 0x2f, 0xa5, 0x1a,
+ 0x09, 0xc9, 0xdc, 0x61, 0x8c, 0x4d, 0x3e, 0xc5, 0xb8, 0x99, 0x50, 0x76, 0xf6, 0xca, 0xf1, 0x22,
+ 0x19, 0x4c, 0xa3, 0x71, 0x1b, 0xdb, 0xe3, 0xe7, 0x0f, 0xaf, 0x0e, 0x83, 0x0d, 0xfd, 0x94, 0x3d,
+ 0x70, 0x20, 0x91, 0xf1, 0x99, 0xf7, 0x29, 0x7a, 0xe0, 0xa4, 0xc2, 0xb3, 0xc7, 0xe3, 0xdd, 0x04,
+ 0x0f, 0xdc, 0x1e, 0xb4, 0x37, 0xc8, 0x40, 0x5e, 0x81, 0xfe, 0xa4, 0xad, 0xc8, 0xb7, 0x0b, 0x87,
+ 0x17, 0xe5, 0x04, 0x86, 0x79, 0x5e, 0x5c, 0x81, 0xe3, 0x69, 0x40, 0x62, 0x71, 0x45, 0x85, 0x18,
+ 0xc8, 0x1e, 0xb5, 0xf7, 0x13, 0xd4, 0xc8, 0xe6, 0xc2, 0x0f, 0x8c, 0xa1, 0x57, 0x9d, 0xec, 0xc2,
+ 0x47, 0x20, 0x40, 0x4c, 0xe3, 0xa8, 0xda, 0xdb, 0xa0, 0xc2, 0xb3, 0x47, 0xee, 0x67, 0x64, 0x7c,
+ 0x89, 0x59, 0x79, 0x07, 0xb6, 0x2f, 0xc1, 0x0e, 0x7b, 0x91, 0xf3, 0xa8, 0xd0, 0x9d, 0x06, 0x53,
+ 0x6d, 0x42, 0x0d, 0x83, 0x37, 0x6d, 0x04, 0x8f, 0xfc, 0xcd, 0x42, 0x89, 0x77, 0x67, 0xf1, 0x1d,
+ 0x11, 0xf9, 0x7c, 0x2c, 0xb8, 0x88, 0x5d, 0x78, 0x25, 0x50, 0xfc, 0x04, 0xcc, 0x16, 0x32, 0xcb,
+ 0xa8, 0xb6, 0x1d, 0x5b, 0xfb, 0xaf, 0x87, 0x87, 0xe5, 0x3a, 0x30, 0x63, 0xb5, 0x1d, 0x1b, 0x87,
+ 0x80, 0x0b, 0x0e, 0x01, 0x85, 0x09, 0xc1, 0x5b, 0x7d, 0xd7, 0x79, 0xd0, 0xa2, 0xbb, 0xe6, 0x51,
+ 0xc2, 0xa8, 0xc6, 0x04, 0x62, 0xfd, 0xa8, 0x8c, 0x89, 0x01, 0x65, 0x67, 0x0f, 0xd9, 0x27, 0x23,
+ 0xef, 0x36, 0xd2, 0x15, 0x3e, 0x22, 0x56, 0x81, 0x47, 0x19, 0xce, 0xd8, 0x5a, 0x1c, 0xc9, 0x70,
+ 0x96, 0xc0, 0xc0, 0x04, 0x6e, 0x22, 0x8c, 0x70, 0xcc, 0x7c, 0x0d, 0xf8, 0x10, 0xe8, 0x8c, 0xcf,
+ 0x3c, 0x1c, 0x11, 0x9d, 0xa3, 0x31, 0x11, 0x3f, 0x4c, 0xc3, 0xd3, 0x53, 0x8b, 0x47, 0xfb, 0x6f,
+ 0xe3, 0x00, 0xe7, 0xee, 0x51, 0xfc, 0x15, 0x88, 0xb7, 0x82, 0xf6, 0x56, 0x49, 0x34, 0x04, 0xca,
+ 0x01, 0x09, 0x22, 0x2a, 0x63, 0x41, 0xf0, 0x4d, 0x42, 0xb1, 0x49, 0x44, 0xca, 0xcf, 0x1e, 0xc0,
+ 0x17, 0xca, 0x60, 0x01, 0xfb, 0x08, 0x74, 0xa1, 0xe9, 0x92, 0x8e, 0x72, 0x2c, 0x8e, 0xf2, 0xef,
+ 0x16, 0x0e, 0xf0, 0xc3, 0xcb, 0x21, 0xe2, 0x63, 0x2c, 0x50, 0x88, 0x45, 0xf7, 0x11, 0x64, 0x61,
+ 0x22, 0xdb, 0x28, 0x4a, 0xc8, 0x02, 0x55, 0xf1, 0xf1, 0xe0, 0x91, 0xd2, 0x23, 0x97, 0x17, 0x46,
+ 0xd0, 0xd8, 0x26, 0xec, 0x91, 0x2b, 0xc2, 0x44, 0xf6, 0x98, 0xbc, 0xe1, 0x0e, 0xba, 0xe0, 0xdc,
+ 0x32, 0x2f, 0x76, 0xa1, 0xf6, 0xaa, 0x7c, 0x78, 0xa2, 0xed, 0x77, 0xc7, 0xe2, 0x81, 0x79, 0x88,
+ 0xcb, 0xa8, 0x54, 0x90, 0x77, 0x9d, 0x2b, 0x64, 0x69, 0x6b, 0xde, 0xc0, 0xff, 0x49, 0x3c, 0xcb,
+ 0xee, 0xde, 0xae, 0x4d, 0x4e, 0x86, 0xce, 0x1b, 0xc1, 0xa3, 0x7a, 0x13, 0x98, 0xbf, 0x62, 0xf9,
+ 0x3b, 0xab, 0xd0, 0xec, 0x40, 0xd7, 0x70, 0xae, 0x60, 0x8f, 0xb9, 0x69, 0x83, 0x4f, 0xe4, 0xfd,
+ 0x57, 0x04, 0xec, 0x4b, 0x24, 0x94, 0xc9, 0x1c, 0x7f, 0x4b, 0x63, 0x79, 0xc6, 0x73, 0x95, 0xbd,
+ 0xc2, 0x7c, 0x40, 0x06, 0x33, 0x86, 0x73, 0x85, 0x2a, 0xc9, 0xff, 0x75, 0xb4, 0x3a, 0x92, 0x7a,
+ 0xa2, 0x87, 0x25, 0x17, 0xb2, 0x3f, 0xf1, 0x89, 0x5e, 0x62, 0xf1, 0x13, 0x39, 0xb9, 0x34, 0x67,
+ 0x38, 0x57, 0x9a, 0xd0, 0x27, 0x2d, 0x42, 0xdb, 0x1c, 0x93, 0x93, 0xb5, 0xe5, 0x11, 0x82, 0x74,
+ 0x1e, 0x1e, 0x3e, 0xa7, 0xdd, 0x45, 0x08, 0x05, 0x14, 0xb2, 0x38, 0xe9, 0x5d, 0x84, 0xa1, 0x1c,
+ 0x4c, 0x20, 0x46, 0x8a, 0x0c, 0x66, 0x0d, 0xe7, 0x0a, 0x1a, 0x1a, 0x96, 0xad, 0x6e, 0x77, 0x3c,
+ 0x23, 0x64, 0x5a, 0xe3, 0x3f, 0x10, 0x43, 0xc0, 0xc5, 0xc4, 0x8d, 0xff, 0x21, 0x0c, 0x64, 0x0f,
+ 0xc3, 0xf3, 0x48, 0x63, 0x09, 0x46, 0x68, 0x7b, 0x3c, 0x38, 0x8c, 0xda, 0x20, 0x42, 0x36, 0x8e,
+ 0xac, 0x41, 0xc4, 0x71, 0x30, 0x91, 0x9d, 0x93, 0x85, 0x32, 0x1e, 0xe6, 0xc7, 0xdb, 0x26, 0xde,
+ 0x9b, 0xce, 0x35, 0x91, 0x0e, 0xbb, 0x1c, 0x23, 0x63, 0x41, 0x23, 0x85, 0x0b, 0xa2, 0x00, 0x0f,
+ 0xd9, 0xe3, 0xf1, 0x31, 0x19, 0xcc, 0x11, 0x16, 0x1e, 0x21, 0x56, 0xc0, 0x48, 0x8d, 0x8a, 0xad,
+ 0xc1, 0xd1, 0x34, 0xaa, 0x04, 0x0e, 0x26, 0x72, 0x9f, 0x3f, 0xb2, 0xe3, 0x46, 0x38, 0x3e, 0x1e,
+ 0x87, 0xe0, 0xc8, 0xc6, 0xd8, 0x18, 0x8f, 0x90, 0x8f, 0x62, 0x8c, 0x1d, 0xd1, 0x31, 0xf2, 0xe7,
+ 0x85, 0xad, 0x68, 0x9c, 0x18, 0x1c, 0xa2, 0x29, 0x8c, 0x11, 0x86, 0x11, 0x9b, 0xc2, 0x11, 0x21,
+ 0xf1, 0xa7, 0x32, 0x00, 0x84, 0x81, 0x35, 0xe7, 0x32, 0xbe, 0x48, 0x73, 0x0c, 0xdd, 0x59, 0xbf,
+ 0x5b, 0xbd, 0x3c, 0xc4, 0xad, 0x3e, 0x65, 0x08, 0x97, 0xb4, 0x2b, 0x81, 0x8c, 0x94, 0x51, 0x25,
+ 0x27, 0xbe, 0x12, 0x98, 0x5c, 0x7e, 0xf6, 0x18, 0x7f, 0x99, 0x58, 0x73, 0xd1, 0x01, 0xd3, 0x9f,
+ 0x1d, 0x0b, 0xca, 0xcc, 0xec, 0x5f, 0xe6, 0x67, 0xff, 0x87, 0xc0, 0x76, 0x54, 0x1b, 0x71, 0xd8,
+ 0xc1, 0xd1, 0xec, 0x6d, 0xc4, 0xa3, 0x3b, 0x20, 0xfa, 0x03, 0x79, 0x70, 0x9c, 0x76, 0x22, 0xdf,
+ 0x0e, 0x10, 0xa7, 0x3c, 0x87, 0xc7, 0x75, 0x92, 0x43, 0x50, 0x1e, 0xd7, 0x82, 0x54, 0x9a, 0xa5,
+ 0x4c, 0x01, 0xf6, 0x26, 0xb2, 0xba, 0x51, 0xd4, 0x1f, 0xea, 0x99, 0x76, 0x47, 0x3c, 0xdc, 0xef,
+ 0x10, 0xe0, 0x83, 0xb5, 0x46, 0x99, 0x5f, 0x6b, 0x1c, 0xb0, 0x32, 0x99, 0x7a, 0xe7, 0x1a, 0x8b,
+ 0x8c, 0xb0, 0x3b, 0xf1, 0x9d, 0xeb, 0xf8, 0xb2, 0xb3, 0x47, 0xe9, 0xbd, 0x32, 0xc8, 0x37, 0x1d,
+ 0xd7, 0xd7, 0x9e, 0x9f, 0xa6, 0x75, 0x12, 0xc9, 0x47, 0x20, 0x05, 0xcf, 0x6a, 0x19, 0xe4, 0x51,
+ 0xe5, 0xe8, 0x8c, 0xe1, 0xf6, 0xe4, 0xa3, 0xce, 0xa6, 0x6f, 0x62, 0xaf, 0x6e, 0x54, 0xfe, 0x62,
+ 0x6b, 0xbf, 0x07, 0x0d, 0xfc, 0x71, 0xda, 0x78, 0x3a, 0x44, 0x7e, 0xcd, 0xf8, 0x03, 0x18, 0x99,
+ 0xc5, 0xd3, 0x89, 0x2d, 0x39, 0x7b, 0xdc, 0x5e, 0x7b, 0x9c, 0xfa, 0xb6, 0x2e, 0x5b, 0x5d, 0xa8,
+ 0x3d, 0x9f, 0xb8, 0x8c, 0xd4, 0xcd, 0x5d, 0x28, 0x7e, 0x24, 0x26, 0xd1, 0xb5, 0x15, 0xc7, 0x97,
+ 0x95, 0xa3, 0xf8, 0xb2, 0x69, 0x1b, 0x14, 0x39, 0x80, 0x4e, 0x58, 0x9a, 0x74, 0x83, 0x4a, 0x28,
+ 0x7b, 0x22, 0x71, 0x3a, 0x4f, 0x34, 0xa1, 0x4f, 0x8c, 0xca, 0x46, 0x70, 0x45, 0xd2, 0xf7, 0x8d,
+ 0x25, 0x62, 0x67, 0x78, 0xa1, 0x8e, 0xdc, 0x77, 0x03, 0xd3, 0x07, 0x58, 0x70, 0xd6, 0x78, 0x70,
+ 0xbe, 0x3b, 0x5e, 0x40, 0x3c, 0x93, 0x63, 0x81, 0xe9, 0xed, 0x21, 0x4c, 0xeb, 0x1c, 0x4c, 0xf7,
+ 0x8c, 0xc8, 0x45, 0xf6, 0x80, 0xfd, 0x78, 0x01, 0x1c, 0x27, 0x93, 0xfe, 0x92, 0xdd, 0xa1, 0x11,
+ 0x56, 0xdf, 0x2c, 0x1d, 0xf1, 0x66, 0xdb, 0xc1, 0x10, 0xac, 0x5c, 0x2c, 0xe7, 0x42, 0x5f, 0x2c,
+ 0x67, 0x75, 0x89, 0x84, 0x73, 0x45, 0x9d, 0x28, 0xde, 0x69, 0x1b, 0x16, 0x66, 0x02, 0xcb, 0x1e,
+ 0x77, 0xb9, 0xe1, 0x77, 0xfc, 0x3d, 0xa2, 0x53, 0xe2, 0xf7, 0x88, 0xfe, 0x76, 0xba, 0x75, 0x3b,
+ 0x5c, 0x74, 0x9f, 0xc0, 0x33, 0xb6, 0x9d, 0x52, 0xac, 0xe8, 0x09, 0x70, 0xf7, 0x9f, 0xc3, 0x9d,
+ 0x2c, 0x8a, 0x20, 0x32, 0xa2, 0x3b, 0x19, 0x26, 0x70, 0x94, 0xee, 0x64, 0xc3, 0x18, 0xc8, 0x1e,
+ 0xc7, 0xdf, 0x2e, 0xd0, 0xdd, 0x7c, 0xdc, 0x6e, 0xb4, 0x3f, 0x96, 0x32, 0x1f, 0xa5, 0xbf, 0x99,
+ 0x4b, 0xe5, 0xff, 0x8c, 0xf9, 0x4a, 0x1e, 0xa6, 0xd3, 0x78, 0x34, 0x27, 0x91, 0x9b, 0xc0, 0xba,
+ 0x91, 0x84, 0x7d, 0xd1, 0xcf, 0x5b, 0x1d, 0x7f, 0x67, 0x4c, 0x27, 0x3a, 0xae, 0x20, 0x5a, 0x34,
+ 0x5e, 0x3d, 0x79, 0xd0, 0xfe, 0x57, 0x2e, 0x55, 0x08, 0xa9, 0x50, 0x24, 0x98, 0xad, 0x18, 0x11,
+ 0xa7, 0x08, 0xfc, 0x94, 0x48, 0x6f, 0x82, 0x1a, 0x7d, 0xce, 0xea, 0x40, 0xe7, 0x11, 0xa8, 0xd1,
+ 0x98, 0xaf, 0xf1, 0x69, 0x74, 0x12, 0xb9, 0xff, 0xa4, 0x1a, 0x1d, 0x8a, 0x64, 0x4c, 0x1a, 0x9d,
+ 0x48, 0x2f, 0x7b, 0x19, 0xbf, 0x62, 0x8e, 0x4e, 0xa4, 0x6a, 0x96, 0x7d, 0x49, 0xfb, 0xa7, 0x22,
+ 0x50, 0x82, 0x38, 0xc2, 0xfe, 0x0e, 0x8d, 0x05, 0xf3, 0x21, 0xe1, 0xbb, 0x51, 0x46, 0x88, 0xf7,
+ 0xc2, 0x87, 0x93, 0x2a, 0x1c, 0x08, 0x27, 0x55, 0x02, 0xf3, 0x96, 0xed, 0x43, 0xd7, 0x36, 0xbb,
+ 0xcb, 0x5d, 0x73, 0xdb, 0x3b, 0x3d, 0x35, 0xf0, 0xf2, 0xba, 0x2a, 0x93, 0xc7, 0xe0, 0xbf, 0x60,
+ 0x2f, 0x10, 0x9d, 0xe6, 0x2f, 0x10, 0x8d, 0x89, 0x7e, 0x35, 0x13, 0x1f, 0xfd, 0x2a, 0x8c, 0x6e,
+ 0x05, 0x86, 0x07, 0xc7, 0x16, 0xb5, 0x8d, 0x53, 0x86, 0xfb, 0xbb, 0x5d, 0x30, 0x0a, 0x5b, 0x18,
+ 0xfa, 0xf1, 0xd5, 0x72, 0xaa, 0xd5, 0x3d, 0xa4, 0x08, 0x8b, 0xfd, 0x4a, 0x90, 0xda, 0x42, 0x65,
+ 0x2b, 0x2f, 0xf7, 0x55, 0x3e, 0x34, 0x79, 0xf2, 0x02, 0x26, 0x0f, 0xab, 0x54, 0x05, 0xd1, 0x3b,
+ 0x5d, 0xc5, 0x17, 0x0b, 0x45, 0x6a, 0x3b, 0x81, 0xd3, 0x48, 0x05, 0x70, 0x22, 0x88, 0x76, 0xdb,
+ 0xeb, 0x41, 0xd3, 0x35, 0xed, 0x36, 0xd4, 0x3e, 0x29, 0x8d, 0xc3, 0xec, 0x5d, 0x06, 0xd3, 0x56,
+ 0xdb, 0xb1, 0x9b, 0xd6, 0xb3, 0x83, 0xcb, 0xe5, 0x92, 0x83, 0xac, 0x63, 0x89, 0x54, 0xe9, 0x17,
+ 0x46, 0xf8, 0xad, 0x5a, 0x05, 0x33, 0x6d, 0xd3, 0xed, 0x90, 0x20, 0x7c, 0x85, 0xbe, 0x8b, 0x9c,
+ 0x62, 0x09, 0x95, 0x83, 0x4f, 0x8c, 0xe8, 0x6b, 0xb5, 0xc1, 0x0b, 0xb1, 0xd8, 0x17, 0xcd, 0x23,
+ 0x96, 0x58, 0x25, 0xfa, 0x88, 0x93, 0x39, 0x92, 0x8e, 0x0b, 0xbb, 0x26, 0xb9, 0x74, 0x7c, 0x8a,
+ 0xdc, 0x11, 0x1d, 0x26, 0xa4, 0x5d, 0x1e, 0xc0, 0x45, 0x1d, 0x40, 0x63, 0xd2, 0xcb, 0x03, 0x42,
+ 0x5c, 0x64, 0xaf, 0x99, 0xef, 0x2a, 0x82, 0x79, 0xd2, 0xab, 0x51, 0x71, 0x6a, 0x2f, 0x94, 0x41,
+ 0xb1, 0x09, 0xfd, 0x07, 0xe0, 0xbe, 0xd6, 0x3c, 0xfc, 0x98, 0xac, 0x00, 0xf9, 0x52, 0x18, 0x70,
+ 0x10, 0xfd, 0x4d, 0xbb, 0x6f, 0x1f, 0xf0, 0xb5, 0x48, 0x78, 0x9a, 0xf4, 0xbe, 0x7d, 0x72, 0xf1,
+ 0xd9, 0xe3, 0xf3, 0x13, 0x32, 0x90, 0x4b, 0x9d, 0x8e, 0xd6, 0x3e, 0x3c, 0x14, 0x37, 0x80, 0xd9,
+ 0xa0, 0xcd, 0x44, 0x31, 0x20, 0xd9, 0xa4, 0xb4, 0x8b, 0xa0, 0xa1, 0x6c, 0x4a, 0x9d, 0x89, 0xef,
+ 0x2a, 0x24, 0x94, 0x9d, 0x3d, 0x28, 0x5f, 0x98, 0xa2, 0x8d, 0x66, 0xc9, 0x71, 0x2e, 0xe1, 0xa3,
+ 0x32, 0xbf, 0x28, 0x83, 0xc2, 0x32, 0xf4, 0xdb, 0x3b, 0x9a, 0x37, 0x96, 0x36, 0xd3, 0x77, 0xef,
+ 0xf9, 0x90, 0xa0, 0x9c, 0x69, 0xa3, 0x3f, 0x07, 0x6c, 0x2f, 0x62, 0x96, 0x27, 0x1d, 0xfd, 0x39,
+ 0xb1, 0xf4, 0x09, 0x1c, 0x82, 0xcb, 0x83, 0x85, 0x70, 0x05, 0x8c, 0x60, 0xf6, 0x8e, 0xdc, 0x23,
+ 0x6e, 0x3d, 0x74, 0x88, 0xdd, 0xac, 0xfd, 0x7e, 0xba, 0x10, 0x6b, 0xa1, 0xcc, 0xf9, 0x9a, 0x67,
+ 0xbc, 0x30, 0x99, 0x22, 0xf8, 0x9a, 0x18, 0x83, 0x13, 0x58, 0x01, 0x90, 0xc1, 0x34, 0x66, 0xa8,
+ 0x62, 0x5d, 0xc6, 0xae, 0x87, 0xdc, 0x42, 0xe5, 0x73, 0xc6, 0xb2, 0x50, 0x79, 0x0f, 0xbf, 0x50,
+ 0x29, 0x18, 0x31, 0x39, 0x58, 0xa7, 0x4c, 0xe9, 0x8b, 0x83, 0xbe, 0x1f, 0xfb, 0x32, 0x65, 0x0a,
+ 0x5f, 0x9c, 0x21, 0xe5, 0x67, 0x8f, 0xe8, 0x1b, 0xff, 0x0b, 0xed, 0xac, 0x83, 0x0d, 0x59, 0xed,
+ 0x7f, 0x9c, 0x00, 0xf9, 0x73, 0xe8, 0xcf, 0x3f, 0x46, 0x37, 0x6a, 0xbd, 0x6c, 0x0c, 0xc1, 0x1d,
+ 0x9e, 0x06, 0xf2, 0x88, 0x3e, 0x9d, 0xf6, 0xdc, 0x2a, 0xb6, 0x3b, 0x8c, 0x18, 0x31, 0xf0, 0x77,
+ 0xea, 0x29, 0x50, 0xf4, 0x9c, 0x3d, 0xb7, 0x8d, 0xcc, 0x6f, 0xa4, 0x31, 0xf4, 0x29, 0x6d, 0x50,
+ 0x53, 0x8e, 0xf4, 0xe2, 0xf8, 0x5c, 0x4e, 0x99, 0x0b, 0x96, 0x64, 0xee, 0x82, 0xa5, 0x14, 0xfb,
+ 0x0f, 0x02, 0xbc, 0x65, 0xaf, 0x11, 0x7f, 0x8c, 0xef, 0x1a, 0xec, 0x8c, 0x0b, 0xf6, 0x18, 0xb1,
+ 0x1c, 0x56, 0x1d, 0xd2, 0x3a, 0x8c, 0xf3, 0xa2, 0x0d, 0xe3, 0xc8, 0x4f, 0xd4, 0x61, 0x5c, 0x80,
+ 0x87, 0x89, 0x9c, 0x72, 0x2f, 0x52, 0x27, 0xd7, 0x0b, 0xe3, 0x44, 0x37, 0xcf, 0x29, 0xfd, 0xa1,
+ 0xd0, 0x19, 0xa3, 0xf3, 0xeb, 0xc8, 0xe8, 0x1c, 0x91, 0xfb, 0xeb, 0xaf, 0xc9, 0x38, 0x92, 0x66,
+ 0x60, 0x04, 0x89, 0x5f, 0x94, 0x94, 0x1a, 0x22, 0x34, 0x06, 0x73, 0x71, 0xa4, 0xe7, 0x47, 0x0f,
+ 0x2d, 0xce, 0x8b, 0x8e, 0xe1, 0x7f, 0xd2, 0xa1, 0xc5, 0x45, 0x19, 0xc9, 0x1e, 0xc8, 0x5f, 0x20,
+ 0x17, 0x93, 0x95, 0xda, 0xbe, 0x75, 0x79, 0xcc, 0x2d, 0x8d, 0x1f, 0x5e, 0x52, 0x46, 0x13, 0x3e,
+ 0x20, 0x21, 0xc2, 0xe1, 0xa4, 0xa3, 0x09, 0x8b, 0xb1, 0x91, 0x3d, 0x4c, 0x3f, 0x06, 0x90, 0xf4,
+ 0xe8, 0xda, 0xce, 0x1b, 0x64, 0x20, 0x37, 0xa1, 0xaf, 0xc1, 0xc3, 0xa3, 0x75, 0x16, 0xcc, 0x31,
+ 0x4b, 0x07, 0xc1, 0x85, 0x37, 0x5c, 0x5a, 0xda, 0x83, 0xf2, 0xa1, 0xc8, 0xd8, 0x45, 0x97, 0x49,
+ 0x1f, 0x94, 0x17, 0x61, 0x62, 0x02, 0x07, 0xe5, 0xe9, 0xb2, 0xcf, 0xb7, 0x0b, 0x50, 0xe3, 0x5a,
+ 0x01, 0x3a, 0x14, 0x50, 0x47, 0xb1, 0x14, 0xf4, 0xf6, 0xc8, 0xd8, 0x98, 0x10, 0x56, 0x1f, 0x62,
+ 0xb1, 0x6a, 0xf0, 0x58, 0xdd, 0x25, 0x22, 0x26, 0x31, 0xe3, 0x43, 0x68, 0x82, 0xff, 0xce, 0x10,
+ 0x2e, 0x83, 0x83, 0xeb, 0x69, 0x23, 0xf3, 0x91, 0x3d, 0x62, 0x3f, 0x47, 0xc6, 0xad, 0x26, 0x99,
+ 0x5b, 0x8d, 0x67, 0xdc, 0xa2, 0xd3, 0x36, 0x99, 0x9b, 0xb6, 0xa5, 0x3c, 0x58, 0x11, 0xf9, 0x0b,
+ 0x07, 0xcc, 0x0d, 0x83, 0x28, 0x3f, 0xe6, 0x83, 0x15, 0x43, 0x39, 0xc8, 0x1e, 0x9c, 0xaf, 0xc9,
+ 0x00, 0xac, 0xb8, 0xce, 0x5e, 0xaf, 0xe1, 0x76, 0xa0, 0xab, 0xfd, 0x59, 0x34, 0x53, 0xfb, 0xc9,
+ 0x31, 0xcc, 0xd4, 0xd6, 0x01, 0xd8, 0x0e, 0x89, 0x53, 0x0d, 0xbf, 0x43, 0x6c, 0x5e, 0x16, 0x31,
+ 0x65, 0x30, 0x34, 0xf8, 0xbb, 0x85, 0x9f, 0xc1, 0x63, 0x9c, 0xd4, 0x67, 0x45, 0xe4, 0xc6, 0x39,
+ 0x53, 0x7b, 0x77, 0x88, 0x75, 0x8b, 0xc3, 0xfa, 0xe9, 0x87, 0xe0, 0x24, 0x7b, 0xcc, 0xff, 0x61,
+ 0x0a, 0xcc, 0x92, 0x7d, 0x59, 0x22, 0xd3, 0xbf, 0x89, 0x40, 0xff, 0xd9, 0x31, 0x80, 0xbe, 0x01,
+ 0xe6, 0x9c, 0x88, 0x3a, 0xe9, 0x53, 0xd9, 0x95, 0xb2, 0x44, 0xd8, 0x19, 0xbe, 0x0c, 0x8e, 0x8c,
+ 0xf6, 0x71, 0x16, 0x79, 0x83, 0x47, 0xfe, 0x9e, 0x04, 0x79, 0x33, 0x14, 0xc7, 0x09, 0xfd, 0x7b,
+ 0x42, 0xe8, 0x37, 0x38, 0xe8, 0x4b, 0x87, 0x61, 0x65, 0x02, 0xf7, 0x2a, 0xc8, 0x20, 0x8f, 0x8f,
+ 0x41, 0xbe, 0x25, 0xc3, 0x85, 0x98, 0xd3, 0x60, 0x0a, 0x37, 0xd9, 0x70, 0x82, 0x18, 0x3c, 0xa2,
+ 0x37, 0xe6, 0x96, 0x0f, 0xdd, 0x70, 0x89, 0x3d, 0x78, 0x44, 0x3c, 0x04, 0xee, 0xe7, 0xde, 0xe9,
+ 0x22, 0xd9, 0x71, 0x0e, 0x13, 0x46, 0x9e, 0x3d, 0xb2, 0x12, 0x1f, 0xdb, 0xc1, 0xc8, 0x51, 0x66,
+ 0x8f, 0x43, 0x18, 0xc9, 0x1e, 0xf8, 0x2f, 0xe6, 0xc1, 0x69, 0xb2, 0xfc, 0xb7, 0xec, 0x3a, 0xbb,
+ 0x7d, 0xd7, 0x98, 0x59, 0x87, 0xd7, 0x85, 0x9b, 0xc1, 0x82, 0xcf, 0x39, 0xde, 0x53, 0x9d, 0xe8,
+ 0x4b, 0xd5, 0x7e, 0x87, 0x75, 0x9e, 0x79, 0x26, 0x8f, 0xe4, 0x52, 0x82, 0x00, 0xe3, 0x78, 0x4f,
+ 0xbd, 0xa3, 0x22, 0xc8, 0x28, 0xb3, 0x9a, 0x28, 0x8f, 0xb4, 0xb8, 0x1c, 0xea, 0x54, 0x41, 0x44,
+ 0xa7, 0x3e, 0x18, 0xea, 0xd4, 0xf7, 0x72, 0x3a, 0xb5, 0x72, 0x78, 0x91, 0x4c, 0x60, 0x89, 0x69,
+ 0x01, 0x14, 0x97, 0xad, 0xae, 0x0f, 0x5d, 0xed, 0xcb, 0x74, 0x1e, 0xf5, 0xaa, 0x0c, 0xbb, 0x97,
+ 0x0a, 0x28, 0x6e, 0xe1, 0xd2, 0xa8, 0x41, 0x76, 0x9b, 0x18, 0x36, 0x84, 0x43, 0x83, 0x7e, 0x9b,
+ 0x36, 0xc8, 0x5f, 0x1f, 0x99, 0xb1, 0x4d, 0xc0, 0x52, 0x04, 0xf9, 0x1b, 0xce, 0xc2, 0x44, 0xee,
+ 0xb7, 0x2a, 0x1a, 0x70, 0x17, 0x8d, 0x20, 0x97, 0xb2, 0x43, 0x58, 0x01, 0xb2, 0xd5, 0xf1, 0x70,
+ 0xd3, 0x9b, 0x31, 0xd0, 0xdf, 0xb4, 0x2e, 0x47, 0xfd, 0xa2, 0x22, 0x2c, 0x4f, 0xda, 0xe5, 0x48,
+ 0x88, 0x8b, 0xec, 0x31, 0xfb, 0x26, 0xf6, 0x37, 0xed, 0x75, 0xcd, 0x36, 0x44, 0xdc, 0x67, 0x86,
+ 0xda, 0x02, 0x90, 0xac, 0x60, 0xc4, 0x97, 0x2c, 0xb6, 0x9d, 0x16, 0x0e, 0xd1, 0x4e, 0x47, 0x5d,
+ 0x8d, 0x0c, 0x65, 0x8e, 0x2b, 0x7e, 0x64, 0xab, 0x91, 0x89, 0x6c, 0x4c, 0xe0, 0xf6, 0xd2, 0xe0,
+ 0x3c, 0xee, 0x44, 0x5b, 0xeb, 0xa8, 0x7b, 0x35, 0x54, 0x58, 0x63, 0x3b, 0x7b, 0x3b, 0xca, 0x5e,
+ 0x4d, 0x3c, 0x0f, 0x13, 0x40, 0x6b, 0x81, 0xa2, 0xf5, 0x79, 0x3a, 0x8c, 0x66, 0xbc, 0x5d, 0xea,
+ 0x39, 0xae, 0x9f, 0x6e, 0xbb, 0x14, 0x71, 0x67, 0xe0, 0xef, 0xd2, 0x9e, 0xdf, 0xe2, 0x8f, 0x67,
+ 0x8f, 0x6b, 0xf8, 0x4c, 0x71, 0x7e, 0x6b, 0x18, 0x03, 0xd9, 0xc3, 0xfb, 0xd6, 0x23, 0x1a, 0x3c,
+ 0x47, 0x6d, 0x8e, 0xb4, 0x0d, 0x8c, 0x6d, 0xe8, 0x1c, 0xa5, 0x39, 0xc6, 0xf3, 0x90, 0x3d, 0x5e,
+ 0x7f, 0xcf, 0x0c, 0x9c, 0x6f, 0x9a, 0xe0, 0xc0, 0x19, 0xb4, 0xcc, 0xc2, 0x88, 0x2d, 0x73, 0xd4,
+ 0xdd, 0x05, 0x2a, 0xeb, 0xf1, 0x0d, 0x98, 0xa3, 0xec, 0x2e, 0x24, 0x30, 0x91, 0x3d, 0xe2, 0x6f,
+ 0x96, 0x41, 0xa1, 0x39, 0xf9, 0xf1, 0x72, 0xd4, 0xb9, 0x08, 0x96, 0x55, 0x73, 0x6c, 0xc3, 0xe5,
+ 0x28, 0x73, 0x91, 0x58, 0x16, 0x26, 0x10, 0xbf, 0xff, 0x38, 0x98, 0xc3, 0x13, 0xee, 0x60, 0xb7,
+ 0xf5, 0xef, 0xe9, 0xa8, 0xf9, 0xfa, 0x0c, 0xdb, 0xea, 0xfd, 0x60, 0x3a, 0xd8, 0x1d, 0xa2, 0x23,
+ 0xe7, 0xa2, 0x58, 0xfb, 0x0c, 0xb8, 0x34, 0xc2, 0xef, 0x0f, 0xe5, 0x13, 0x31, 0xf6, 0x9d, 0xc0,
+ 0x51, 0x7d, 0x22, 0x8e, 0x74, 0x37, 0xf0, 0xb7, 0xa3, 0x11, 0xf5, 0xbf, 0x66, 0x87, 0x79, 0xff,
+ 0x2e, 0x61, 0x7e, 0xc0, 0x2e, 0xe1, 0x27, 0x59, 0x2c, 0x9b, 0x3c, 0x96, 0xf7, 0x8a, 0x8a, 0x70,
+ 0x8c, 0x63, 0xed, 0x7b, 0x43, 0x38, 0xcf, 0x71, 0x70, 0x2e, 0x1d, 0x8a, 0x97, 0x09, 0x9c, 0x9f,
+ 0xcc, 0x47, 0x63, 0xee, 0xa7, 0x32, 0x6c, 0xc7, 0x7d, 0x87, 0x33, 0xf2, 0x07, 0x0e, 0x67, 0x70,
+ 0x2d, 0xbd, 0x70, 0xc8, 0x96, 0xfe, 0x29, 0x56, 0x3b, 0x5a, 0xbc, 0x76, 0x3c, 0x4d, 0x1c, 0x91,
+ 0xf1, 0x8d, 0xcc, 0xef, 0x0b, 0xd5, 0xe3, 0x3c, 0xa7, 0x1e, 0xe5, 0xc3, 0x31, 0x93, 0xbd, 0x7e,
+ 0xfc, 0x7a, 0x30, 0xa1, 0x3d, 0xe2, 0xf6, 0x3e, 0xea, 0x46, 0x24, 0x27, 0xc4, 0xb1, 0x8d, 0xdc,
+ 0xa3, 0x6c, 0x44, 0x0e, 0xe3, 0x64, 0x02, 0x21, 0xdd, 0xe6, 0xc1, 0x2c, 0xe6, 0xe9, 0xbc, 0xd5,
+ 0xd9, 0x86, 0xbe, 0xf6, 0x6a, 0xe2, 0xaa, 0x18, 0x04, 0xd0, 0x1c, 0x53, 0x94, 0xa3, 0xb8, 0x63,
+ 0xb3, 0x69, 0xfd, 0x05, 0x08, 0x93, 0x8b, 0x0c, 0x83, 0x93, 0x0e, 0xc4, 0x38, 0x94, 0x83, 0xec,
+ 0x21, 0xfb, 0x38, 0x71, 0xe6, 0xa8, 0x99, 0xfb, 0xce, 0x9e, 0xaf, 0x3d, 0x3c, 0x86, 0x0e, 0x7a,
+ 0x09, 0x14, 0xbb, 0x98, 0x1a, 0x3d, 0x9d, 0x91, 0x3c, 0xdd, 0xa1, 0x22, 0x20, 0xe5, 0x1b, 0xf4,
+ 0xcb, 0xb4, 0x47, 0x34, 0x22, 0x39, 0x12, 0x3a, 0x93, 0x3e, 0xa2, 0x31, 0xa4, 0xfc, 0x89, 0x5c,
+ 0xd5, 0x33, 0x8d, 0x4a, 0xb7, 0x76, 0x2d, 0x7f, 0x4c, 0x81, 0x20, 0xba, 0x88, 0x56, 0x10, 0x08,
+ 0x02, 0x3f, 0xa4, 0x3d, 0x78, 0xca, 0x48, 0x05, 0x7d, 0x3e, 0xe9, 0x83, 0xa7, 0xc9, 0xc5, 0x67,
+ 0x8f, 0xc9, 0x4f, 0x93, 0x96, 0x75, 0x8e, 0xf8, 0xe0, 0x66, 0xe8, 0xde, 0x3b, 0x72, 0x63, 0x21,
+ 0xac, 0x1d, 0x5d, 0x63, 0x19, 0x58, 0x7e, 0xf6, 0xc0, 0xfc, 0xe2, 0x77, 0x82, 0x42, 0x05, 0x5e,
+ 0xdc, 0xdb, 0xd6, 0xee, 0x01, 0xd3, 0x2d, 0x17, 0xc2, 0xaa, 0xbd, 0xe5, 0x20, 0xe9, 0xfa, 0xe8,
+ 0x7f, 0x00, 0x09, 0x7d, 0x42, 0x78, 0xec, 0x40, 0xb3, 0x13, 0x1d, 0x43, 0x0b, 0x1e, 0xb5, 0x97,
+ 0x49, 0x20, 0xdf, 0xf4, 0x4d, 0x5f, 0x9b, 0x09, 0xb1, 0xd5, 0x1e, 0x66, 0xb1, 0xb8, 0x87, 0xc7,
+ 0xe2, 0x66, 0x4e, 0x16, 0x98, 0x83, 0x45, 0xf4, 0x7d, 0x0c, 0x00, 0x1a, 0x98, 0x7e, 0xd0, 0x73,
+ 0x6c, 0x94, 0x23, 0x38, 0x29, 0x19, 0x3c, 0x6b, 0xaf, 0x0c, 0xc5, 0x7d, 0x1f, 0x27, 0xee, 0xc7,
+ 0x89, 0x15, 0x31, 0x81, 0x95, 0x36, 0x09, 0xcc, 0x20, 0xd1, 0xae, 0x42, 0xb3, 0xe3, 0x69, 0xdf,
+ 0x11, 0x29, 0x7f, 0x8c, 0x98, 0xb5, 0x0f, 0x0b, 0xc7, 0xf4, 0x24, 0xb5, 0x0a, 0x89, 0xc7, 0xfb,
+ 0x0b, 0x04, 0x31, 0x4d, 0x24, 0x3e, 0xa6, 0xc9, 0xed, 0x20, 0x6f, 0xd9, 0x5b, 0x0e, 0xf5, 0x5e,
+ 0xbb, 0x36, 0x86, 0x36, 0xd2, 0x09, 0x03, 0x67, 0x14, 0x0c, 0xf8, 0x99, 0xcc, 0xd6, 0x44, 0xee,
+ 0xce, 0xcb, 0xa3, 0xd2, 0xb5, 0xff, 0x73, 0xa8, 0xb0, 0x55, 0x15, 0xe4, 0x7b, 0xa6, 0xbf, 0x43,
+ 0x8b, 0xc6, 0xff, 0x91, 0x8d, 0xbc, 0x67, 0x9b, 0xb6, 0x63, 0xef, 0xef, 0x5a, 0xcf, 0x0e, 0xaf,
+ 0xe8, 0xe5, 0xd2, 0x10, 0xe7, 0xdb, 0xd0, 0x86, 0xae, 0xe9, 0xc3, 0xe6, 0xe5, 0x6d, 0x3c, 0xc7,
+ 0x9a, 0x36, 0xd8, 0xa4, 0xd4, 0xfa, 0x8f, 0x38, 0x8e, 0xd7, 0xff, 0x2d, 0xab, 0x0b, 0x71, 0xc0,
+ 0x27, 0xaa, 0xff, 0xc1, 0x73, 0x2a, 0xfd, 0x1f, 0x50, 0x44, 0xf6, 0x68, 0xfc, 0xab, 0x04, 0xe6,
+ 0x9a, 0x48, 0xe1, 0x9a, 0x7b, 0xbb, 0xbb, 0xa6, 0xbb, 0xaf, 0xdd, 0x18, 0xa1, 0xc2, 0xa8, 0x66,
+ 0x8e, 0x53, 0x4d, 0xed, 0xd7, 0x84, 0x6f, 0xa7, 0xa6, 0x4d, 0x9b, 0x29, 0x21, 0x75, 0x3b, 0x78,
+ 0x02, 0x28, 0x20, 0xf5, 0x0e, 0xfc, 0xf9, 0x12, 0x1b, 0x02, 0xc9, 0x29, 0x18, 0x18, 0x6b, 0x28,
+ 0x6f, 0x13, 0x08, 0xca, 0x21, 0x81, 0xe3, 0x4d, 0xdf, 0x6c, 0x5f, 0x5a, 0x71, 0x5c, 0x67, 0xcf,
+ 0xb7, 0x6c, 0xe8, 0x69, 0x8f, 0x8e, 0x10, 0x08, 0xf4, 0x3f, 0x17, 0xe9, 0xbf, 0xf6, 0xef, 0x39,
+ 0xd1, 0x51, 0x34, 0xec, 0x56, 0x59, 0xf2, 0x31, 0x71, 0xae, 0xc4, 0xc6, 0x45, 0x11, 0x8a, 0xd9,
+ 0x0b, 0xed, 0x4d, 0x32, 0x50, 0xf4, 0x87, 0x7a, 0x8e, 0xeb, 0xd7, 0x9c, 0xb6, 0xd9, 0xf5, 0x7c,
+ 0xc7, 0x85, 0x5a, 0x23, 0x51, 0x6a, 0xa8, 0x87, 0xe9, 0x38, 0xed, 0x68, 0x70, 0xa4, 0x4f, 0xac,
+ 0xda, 0xc9, 0xbc, 0x8e, 0x7f, 0x5c, 0x78, 0x97, 0x91, 0x48, 0xa5, 0x9f, 0xa3, 0x18, 0x3d, 0x1f,
+ 0xd4, 0xa5, 0xa5, 0x73, 0xc5, 0x17, 0xdb, 0x79, 0x14, 0x62, 0x6a, 0x02, 0x4b, 0xe5, 0x12, 0x98,
+ 0x6f, 0xee, 0x5d, 0x0c, 0x89, 0x78, 0xac, 0x11, 0xf2, 0x1a, 0xe1, 0x60, 0x16, 0x54, 0xf1, 0x58,
+ 0x42, 0x31, 0xf2, 0xbd, 0x09, 0xcc, 0x7b, 0x6c, 0x36, 0x8a, 0x37, 0x9f, 0x28, 0x18, 0xc4, 0x62,
+ 0x78, 0xa9, 0xd9, 0x0b, 0xf0, 0x7d, 0x12, 0x98, 0x6f, 0xf4, 0xa0, 0x0d, 0x3b, 0xc4, 0xc7, 0x8e,
+ 0x13, 0xe0, 0xcb, 0x52, 0x0a, 0x90, 0x23, 0x14, 0x23, 0xc0, 0xc8, 0x1f, 0xb6, 0x12, 0x08, 0x2f,
+ 0x4a, 0x48, 0x25, 0xb8, 0xa4, 0xd2, 0xb2, 0x17, 0xdc, 0x97, 0x24, 0x30, 0x6b, 0xec, 0xd9, 0xeb,
+ 0xae, 0x83, 0x46, 0x63, 0x57, 0xbb, 0x37, 0xea, 0x20, 0x6e, 0x03, 0x27, 0x3a, 0x7b, 0x2e, 0x5e,
+ 0x7f, 0xaa, 0xda, 0x4d, 0xd8, 0x76, 0xec, 0x8e, 0x87, 0xeb, 0x51, 0x30, 0x0e, 0xbe, 0xb8, 0x3b,
+ 0xff, 0xfc, 0xbf, 0x92, 0x73, 0xda, 0x0b, 0x85, 0x23, 0xe6, 0x90, 0xca, 0x33, 0x45, 0x8b, 0xf7,
+ 0x04, 0x82, 0x71, 0x71, 0x86, 0x95, 0x90, 0xbd, 0x70, 0x3f, 0x2f, 0x01, 0xb5, 0xd4, 0x6e, 0x3b,
+ 0x7b, 0xb6, 0xdf, 0x84, 0x5d, 0xd8, 0xf6, 0x5b, 0xae, 0xd9, 0x86, 0xac, 0xfd, 0xac, 0x00, 0xb9,
+ 0x63, 0xb9, 0xb4, 0x0f, 0x46, 0x7f, 0xa9, 0x1c, 0x5f, 0x26, 0xbc, 0xe3, 0x48, 0x6a, 0x79, 0xb0,
+ 0x94, 0x14, 0xe2, 0x14, 0xdb, 0x57, 0x14, 0x2c, 0x28, 0x7b, 0xa9, 0x7e, 0x4a, 0x02, 0x33, 0x41,
+ 0x8f, 0xbd, 0x2d, 0x22, 0xcc, 0x9f, 0x4e, 0x39, 0x19, 0x09, 0x89, 0xa7, 0x90, 0xe1, 0xbb, 0x52,
+ 0xcc, 0x2a, 0xe2, 0xe8, 0xa7, 0x13, 0x5d, 0x29, 0xbd, 0xe8, 0xd0, 0x63, 0xbd, 0xb1, 0xb9, 0xdc,
+ 0xa8, 0x55, 0x74, 0x43, 0x91, 0xb5, 0x2f, 0x4b, 0x20, 0xbf, 0x6e, 0xd9, 0xdb, 0x6c, 0x60, 0xb3,
+ 0x93, 0xc8, 0x8e, 0xec, 0xc0, 0x87, 0x68, 0x4b, 0x27, 0x0f, 0xea, 0x9d, 0xe0, 0xa4, 0xbd, 0xb7,
+ 0x7b, 0x11, 0xba, 0x8d, 0x2d, 0x3c, 0xca, 0x7a, 0x2d, 0xa7, 0x09, 0x6d, 0x62, 0x84, 0x16, 0x8c,
+ 0x81, 0xef, 0x78, 0x13, 0x4c, 0x60, 0xf2, 0x80, 0x38, 0x89, 0x91, 0x78, 0xc8, 0x94, 0xc4, 0x30,
+ 0x95, 0x6a, 0xda, 0x30, 0x80, 0x78, 0xf6, 0x9a, 0xfa, 0x1b, 0x05, 0x70, 0x75, 0xc9, 0xde, 0xc7,
+ 0x36, 0x05, 0xe9, 0xe0, 0xcb, 0x3b, 0xa6, 0xbd, 0x0d, 0xf1, 0x00, 0x11, 0x4a, 0x9c, 0x8d, 0xf4,
+ 0x9f, 0xe3, 0x23, 0xfd, 0xab, 0x06, 0x98, 0x72, 0xdc, 0x0e, 0x74, 0x97, 0xf6, 0x31, 0x4f, 0xfd,
+ 0xcb, 0xce, 0xb4, 0x4d, 0x0e, 0x2a, 0x62, 0x91, 0x92, 0x5f, 0x6c, 0x90, 0xef, 0x8d, 0x80, 0xd0,
+ 0xd9, 0xdb, 0xc0, 0x14, 0x4d, 0x53, 0xe7, 0xc0, 0x74, 0xc3, 0xa8, 0xe8, 0xc6, 0x66, 0xb5, 0xa2,
+ 0x1c, 0x53, 0xaf, 0x02, 0xc7, 0xab, 0x2d, 0xdd, 0x28, 0xb5, 0xaa, 0x8d, 0xfa, 0x26, 0x4e, 0x57,
+ 0x72, 0xda, 0xf3, 0xf2, 0xa2, 0x9e, 0xbd, 0xc9, 0xcc, 0x0c, 0x82, 0xd5, 0x00, 0x53, 0x6d, 0x92,
+ 0x01, 0x0f, 0xa1, 0xb3, 0xa9, 0x6a, 0x47, 0x09, 0x92, 0x04, 0x23, 0x20, 0xa4, 0x9e, 0x01, 0xe0,
+ 0x8a, 0xeb, 0xd8, 0xdb, 0xd1, 0x99, 0xb6, 0x69, 0x83, 0x49, 0xd1, 0x1e, 0xce, 0x81, 0x22, 0xf9,
+ 0x06, 0xdf, 0x6c, 0x82, 0xff, 0x45, 0x82, 0x0f, 0x9e, 0x91, 0xc5, 0x8b, 0xe5, 0x15, 0x4d, 0xb4,
+ 0xe8, 0x23, 0xd2, 0x45, 0x22, 0x03, 0x62, 0x09, 0xd3, 0xaa, 0xdc, 0x0e, 0x8a, 0xe4, 0x5b, 0xea,
+ 0x75, 0x10, 0x1f, 0xa5, 0x94, 0x64, 0x13, 0xf4, 0x53, 0x16, 0x97, 0x69, 0xf6, 0xda, 0xfc, 0x11,
+ 0x09, 0x4c, 0xd7, 0xa1, 0x5f, 0xde, 0x81, 0xed, 0x4b, 0xda, 0x63, 0xf9, 0x05, 0xd0, 0xae, 0x05,
+ 0x6d, 0xff, 0xc2, 0x6e, 0x37, 0x5c, 0x00, 0x0d, 0x12, 0xb4, 0x17, 0xb0, 0x9d, 0xef, 0xd3, 0x79,
+ 0xfd, 0xb9, 0x75, 0x40, 0x5d, 0x83, 0x12, 0x62, 0x54, 0xe6, 0x14, 0x28, 0xba, 0xd0, 0xdb, 0xeb,
+ 0x06, 0x8b, 0x68, 0xf4, 0x49, 0x7b, 0x6d, 0x28, 0xce, 0x32, 0x27, 0xce, 0xdb, 0xc5, 0x8b, 0x98,
+ 0x40, 0xd8, 0xd3, 0x3c, 0x98, 0xaa, 0xda, 0x96, 0x6f, 0x99, 0x5d, 0xed, 0x85, 0x79, 0x30, 0xdf,
+ 0x84, 0xfe, 0xba, 0xe9, 0x9a, 0xbb, 0xd0, 0x87, 0xae, 0xa7, 0x7d, 0x83, 0xef, 0x13, 0x7a, 0x5d,
+ 0xd3, 0xdf, 0x72, 0xdc, 0xdd, 0x40, 0x35, 0x83, 0x67, 0xa4, 0x9a, 0x97, 0xa1, 0xeb, 0x45, 0x7c,
+ 0x05, 0x8f, 0xe8, 0xcd, 0x15, 0xc7, 0xbd, 0x84, 0x06, 0x41, 0x3a, 0x4d, 0xa3, 0x8f, 0x88, 0x5e,
+ 0xd7, 0xd9, 0xae, 0xc1, 0xcb, 0x30, 0x88, 0xaa, 0x16, 0x3e, 0xa3, 0xb9, 0x40, 0xc7, 0xa9, 0x3b,
+ 0x3e, 0xea, 0xb4, 0x6b, 0xce, 0x36, 0x09, 0x3b, 0x3b, 0x6d, 0xf0, 0x89, 0x51, 0x2e, 0xf3, 0x32,
+ 0xc4, 0xb9, 0x8a, 0x6c, 0x2e, 0x9a, 0xa8, 0x2e, 0x02, 0x35, 0xfc, 0xac, 0x05, 0xbb, 0x70, 0x17,
+ 0xfa, 0xee, 0x3e, 0xbe, 0x5d, 0x62, 0xda, 0x18, 0xf0, 0x86, 0x0e, 0xd0, 0xe2, 0x93, 0x75, 0x2a,
+ 0xbd, 0x45, 0x4e, 0x72, 0x87, 0x9a, 0xac, 0x8b, 0x50, 0x9c, 0xc8, 0xed, 0x59, 0x32, 0xb2, 0x66,
+ 0x5e, 0x2e, 0x83, 0x3c, 0x1e, 0x3c, 0xdf, 0x9c, 0xe3, 0x56, 0x98, 0x76, 0xa1, 0xe7, 0x99, 0xdb,
+ 0x30, 0x58, 0x61, 0xa2, 0x8f, 0xea, 0x5d, 0xa0, 0xd0, 0xc5, 0x98, 0x92, 0xc1, 0xe1, 0x46, 0xae,
+ 0x66, 0xc8, 0xc0, 0x40, 0xb4, 0xc2, 0x91, 0x00, 0xc3, 0x6d, 0x90, 0x2f, 0xce, 0xde, 0x0f, 0x0a,
+ 0x04, 0xfe, 0x19, 0x50, 0xa8, 0xe8, 0x4b, 0x1b, 0x2b, 0xca, 0x31, 0xf4, 0x37, 0xe0, 0x6f, 0x06,
+ 0x14, 0x96, 0x4b, 0xad, 0x52, 0x4d, 0x91, 0x50, 0x3d, 0xaa, 0xf5, 0xe5, 0x86, 0x22, 0xa3, 0xc4,
+ 0xf5, 0x52, 0xbd, 0x5a, 0x56, 0xf2, 0xea, 0x2c, 0x98, 0x3a, 0x5f, 0x32, 0xea, 0xd5, 0xfa, 0x8a,
+ 0x52, 0xd0, 0xfe, 0x92, 0xc5, 0xef, 0x6e, 0x1e, 0xbf, 0x9b, 0xe2, 0x78, 0x1a, 0x04, 0xd9, 0xcf,
+ 0x87, 0x90, 0xdd, 0xcb, 0x41, 0xf6, 0x9d, 0x22, 0x44, 0x26, 0xe0, 0xce, 0x54, 0x04, 0x53, 0xeb,
+ 0xae, 0xd3, 0x86, 0x9e, 0xa7, 0xfd, 0x8c, 0x04, 0x8a, 0x65, 0xd3, 0x6e, 0xc3, 0xae, 0x76, 0x4d,
+ 0x04, 0x15, 0x71, 0x15, 0xcd, 0x05, 0xae, 0xa2, 0xda, 0xd7, 0x72, 0xa2, 0xbd, 0x1f, 0xa5, 0xbb,
+ 0x48, 0x68, 0xc6, 0xc8, 0x47, 0xac, 0x97, 0x4b, 0x24, 0x35, 0x81, 0x1b, 0x76, 0x24, 0x30, 0x43,
+ 0x57, 0x03, 0x2e, 0x42, 0x76, 0x1e, 0xfe, 0x8d, 0x9c, 0xe8, 0xe4, 0x30, 0xa8, 0x41, 0x48, 0x26,
+ 0x46, 0x1e, 0x62, 0x13, 0xc1, 0x61, 0xd4, 0x26, 0xb0, 0x79, 0x28, 0x81, 0xd9, 0x0d, 0xdb, 0x1b,
+ 0x24, 0x14, 0xf1, 0x70, 0xfc, 0x41, 0x35, 0x18, 0x42, 0x87, 0x0a, 0xc7, 0x3f, 0x9c, 0x5e, 0xf6,
+ 0x82, 0xf9, 0x46, 0x0e, 0x9c, 0x5c, 0x81, 0x36, 0x74, 0xad, 0x36, 0xa9, 0x41, 0x20, 0x89, 0x7b,
+ 0x79, 0x49, 0x3c, 0x96, 0xe3, 0x7c, 0xd0, 0x17, 0xbc, 0x04, 0x5e, 0x15, 0x4a, 0xe0, 0xe9, 0x9c,
+ 0x04, 0x6e, 0x13, 0xa4, 0x33, 0x81, 0x6b, 0xd5, 0x67, 0xc0, 0x5c, 0xdd, 0xf1, 0xad, 0x2d, 0xab,
+ 0x4d, 0x7c, 0xd0, 0x7e, 0x4e, 0x06, 0xf9, 0x9a, 0xe5, 0xf9, 0x5a, 0x29, 0xea, 0x4e, 0x6e, 0x00,
+ 0xb3, 0x96, 0xdd, 0xee, 0xee, 0x75, 0xa0, 0x01, 0x4d, 0xd2, 0xaf, 0x4c, 0x1b, 0x6c, 0x52, 0xb4,
+ 0xb5, 0x8f, 0xd8, 0x92, 0x83, 0xad, 0xfd, 0xdf, 0x12, 0x5e, 0x86, 0x61, 0x59, 0xc0, 0x71, 0x29,
+ 0x63, 0xec, 0xae, 0x12, 0x98, 0xb7, 0x99, 0xac, 0x81, 0xc1, 0xde, 0x7f, 0x2f, 0x01, 0x4b, 0xce,
+ 0xe0, 0xbf, 0xd0, 0x3e, 0x20, 0xd4, 0x58, 0x87, 0x31, 0x94, 0x0e, 0x99, 0xe5, 0x11, 0x26, 0xc9,
+ 0x2a, 0x58, 0xa8, 0xd6, 0x5b, 0xba, 0x51, 0x2f, 0xd5, 0x68, 0x16, 0x59, 0xfb, 0x57, 0x09, 0x14,
+ 0x0c, 0xd8, 0xeb, 0xee, 0xb3, 0x81, 0xa7, 0xa9, 0xa3, 0x78, 0x2e, 0x74, 0x14, 0x57, 0x97, 0x01,
+ 0x30, 0xdb, 0xa8, 0x60, 0x7c, 0x33, 0x97, 0x34, 0x30, 0x9c, 0x29, 0x57, 0xc1, 0x52, 0x98, 0xdb,
+ 0x60, 0xbe, 0xd4, 0x5e, 0x24, 0xbc, 0x73, 0xc4, 0x51, 0xc3, 0x1c, 0xc6, 0xf4, 0x09, 0x1f, 0x14,
+ 0xda, 0xec, 0x19, 0x4a, 0xee, 0x68, 0xc4, 0xff, 0x15, 0x09, 0xe4, 0x5b, 0xa8, 0xb7, 0x64, 0x3a,
+ 0xce, 0xcf, 0x8e, 0xa6, 0xe3, 0x88, 0x4c, 0x8c, 0x8e, 0xdf, 0x07, 0xe6, 0x58, 0x8d, 0xa5, 0xae,
+ 0x12, 0x89, 0x2a, 0xce, 0x7d, 0x30, 0x8a, 0x86, 0x0f, 0x60, 0xe7, 0x68, 0x44, 0xfc, 0xe9, 0xc7,
+ 0x01, 0xb0, 0x06, 0x77, 0x2f, 0x42, 0xd7, 0xdb, 0xb1, 0x7a, 0xda, 0x5f, 0xcb, 0x60, 0x66, 0x05,
+ 0xfa, 0x4d, 0xdf, 0xf4, 0xf7, 0xbc, 0xbe, 0xed, 0x4e, 0xdb, 0x29, 0x9b, 0xed, 0x1d, 0x48, 0xbb,
+ 0xa3, 0xe0, 0x51, 0x7b, 0x8f, 0x2c, 0xea, 0x4f, 0x14, 0x95, 0xb3, 0x18, 0x96, 0x11, 0x83, 0xc9,
+ 0xe3, 0x41, 0xbe, 0x63, 0xfa, 0x26, 0xc5, 0xe2, 0x9a, 0x3e, 0x2c, 0x22, 0x42, 0x06, 0xce, 0xa6,
+ 0xbd, 0x43, 0x12, 0x71, 0x28, 0x12, 0x28, 0x3f, 0x1d, 0x08, 0x1f, 0xc8, 0x8d, 0x80, 0xc2, 0x09,
+ 0x30, 0x5f, 0x6f, 0xb4, 0x36, 0x6b, 0x8d, 0x95, 0x15, 0x1d, 0xa5, 0x2a, 0xb2, 0x7a, 0x0a, 0xa8,
+ 0xeb, 0xa5, 0x0b, 0x6b, 0x7a, 0xbd, 0xb5, 0x59, 0x6f, 0x54, 0x74, 0xfa, 0x65, 0x5e, 0x3d, 0x0e,
+ 0x66, 0xcb, 0xa5, 0xf2, 0x6a, 0x90, 0x50, 0x50, 0x4f, 0x83, 0x93, 0x6b, 0xfa, 0xda, 0x92, 0x6e,
+ 0x34, 0x57, 0xab, 0xeb, 0x9b, 0x88, 0xcc, 0x72, 0x63, 0xa3, 0x5e, 0x51, 0x8a, 0xaa, 0x06, 0x4e,
+ 0x31, 0x6f, 0xce, 0x1b, 0x8d, 0xfa, 0xca, 0x66, 0xb3, 0x55, 0x6a, 0xe9, 0xca, 0x94, 0x7a, 0x15,
+ 0x38, 0x5e, 0x2e, 0xd5, 0x71, 0xf6, 0x72, 0xa3, 0x5e, 0xd7, 0xcb, 0x2d, 0x65, 0x5a, 0xfb, 0xf7,
+ 0x3c, 0x98, 0xad, 0x7a, 0x75, 0x73, 0x17, 0x9e, 0x33, 0xbb, 0x56, 0x47, 0x7b, 0x21, 0x33, 0xf3,
+ 0xb8, 0x09, 0xcc, 0xbb, 0xe4, 0x2f, 0xec, 0xb4, 0x2c, 0x48, 0xd0, 0x9c, 0x37, 0xf8, 0x44, 0x34,
+ 0x27, 0xb7, 0x31, 0x81, 0x60, 0x4e, 0x4e, 0x9e, 0xd4, 0x25, 0x00, 0xc8, 0xbf, 0x56, 0x74, 0x47,
+ 0xec, 0xd9, 0xfe, 0xd6, 0x64, 0xee, 0x42, 0x0f, 0xba, 0x97, 0xad, 0x36, 0x0c, 0x72, 0x1a, 0xcc,
+ 0x57, 0xda, 0x9f, 0xca, 0xa2, 0xfb, 0x8b, 0x0c, 0xa8, 0x4c, 0x75, 0x62, 0x7a, 0xc3, 0x1f, 0x91,
+ 0x45, 0x76, 0x07, 0x85, 0x48, 0xa6, 0xd3, 0x94, 0x97, 0x48, 0xa3, 0x2d, 0xdb, 0xb6, 0x1a, 0x8d,
+ 0xcd, 0xe6, 0x6a, 0xc3, 0x68, 0x29, 0xb2, 0x3a, 0x07, 0xa6, 0xd1, 0x63, 0xad, 0x51, 0x5f, 0x51,
+ 0xf2, 0xea, 0xd5, 0xe0, 0xc4, 0x6a, 0xa9, 0xb9, 0x59, 0xad, 0x9f, 0x2b, 0xd5, 0xaa, 0x95, 0xcd,
+ 0xf2, 0x6a, 0xc9, 0x68, 0x2a, 0x05, 0xf5, 0x1a, 0x70, 0x75, 0xab, 0xaa, 0x1b, 0x9b, 0xcb, 0x7a,
+ 0xa9, 0xb5, 0x61, 0xe8, 0xcd, 0xcd, 0x7a, 0x63, 0xb3, 0x5e, 0x5a, 0xd3, 0x95, 0x22, 0x6a, 0xfe,
+ 0xf8, 0x55, 0xa4, 0x36, 0x53, 0x07, 0x95, 0x71, 0x3a, 0x46, 0x19, 0x67, 0xfa, 0x95, 0x11, 0xb0,
+ 0x6a, 0x65, 0xe8, 0x4d, 0xdd, 0x38, 0xa7, 0x2b, 0xb3, 0x83, 0x74, 0x6d, 0x4e, 0x3d, 0x09, 0x14,
+ 0xc4, 0xc3, 0x66, 0xb5, 0x19, 0xe4, 0xac, 0x28, 0xf3, 0xda, 0xa7, 0x8a, 0xe0, 0x94, 0x01, 0xb7,
+ 0x2d, 0xcf, 0x87, 0xee, 0xba, 0xb9, 0xbf, 0x0b, 0x6d, 0x3f, 0xe8, 0xe4, 0xff, 0x39, 0xb5, 0x32,
+ 0xae, 0x81, 0xf9, 0x1e, 0xa1, 0xb1, 0x06, 0xfd, 0x1d, 0xa7, 0x43, 0x47, 0xe1, 0xc7, 0xc6, 0xf6,
+ 0x1c, 0x8b, 0xeb, 0x6c, 0x76, 0x83, 0xff, 0x9a, 0xd1, 0x6d, 0x39, 0x41, 0xb7, 0xf3, 0xa3, 0xe8,
+ 0xb6, 0x7a, 0x1d, 0x98, 0xd9, 0xf3, 0xa0, 0xab, 0xef, 0x9a, 0x56, 0x37, 0xb8, 0xe3, 0x33, 0x4c,
+ 0xd0, 0xde, 0x99, 0x17, 0x3d, 0xb1, 0xc2, 0xd4, 0x65, 0xb0, 0x18, 0x63, 0xfa, 0xd6, 0x33, 0x00,
+ 0xd0, 0xca, 0x6e, 0xb8, 0x5d, 0xaa, 0xac, 0x4c, 0x0a, 0xe2, 0xef, 0xa2, 0xd5, 0xed, 0x5a, 0xf6,
+ 0x76, 0xb8, 0xef, 0x1f, 0x25, 0x68, 0x2f, 0x91, 0x45, 0x4e, 0xb0, 0xa4, 0xe5, 0x2d, 0x5d, 0x6b,
+ 0x7a, 0x91, 0x34, 0xe1, 0x7e, 0xf7, 0x60, 0xd3, 0x29, 0xaa, 0x0a, 0x98, 0xc3, 0x69, 0xb4, 0x05,
+ 0x2a, 0x53, 0xa8, 0x0f, 0x0e, 0xc8, 0xad, 0xe9, 0xad, 0xd5, 0x46, 0x25, 0x7c, 0x37, 0x8d, 0x48,
+ 0x22, 0x66, 0x4a, 0xf5, 0x0b, 0xb8, 0x35, 0xce, 0xa8, 0x8f, 0x06, 0xd7, 0x30, 0x1d, 0x76, 0xa9,
+ 0x66, 0xe8, 0xa5, 0xca, 0x85, 0x4d, 0xfd, 0x99, 0xd5, 0x66, 0xab, 0xc9, 0x37, 0xae, 0xa0, 0x1d,
+ 0xcd, 0x22, 0x7e, 0xf5, 0xb5, 0x52, 0xb5, 0x46, 0xfb, 0xf7, 0xe5, 0x86, 0xb1, 0x56, 0x6a, 0x29,
+ 0x73, 0xda, 0xcb, 0x65, 0xa0, 0xac, 0x40, 0x7f, 0xdd, 0x71, 0x7d, 0xb3, 0x5b, 0xb3, 0xec, 0x4b,
+ 0x1b, 0x6e, 0x97, 0x9b, 0x6c, 0x0a, 0x87, 0xe9, 0xe0, 0x87, 0x48, 0x8e, 0x60, 0xfc, 0x8e, 0x78,
+ 0x0f, 0x67, 0x8b, 0x94, 0x29, 0x4a, 0xd0, 0x9e, 0x23, 0x89, 0x2c, 0x77, 0x8b, 0x97, 0x9a, 0x4e,
+ 0x4f, 0x9e, 0x3b, 0xe9, 0xf1, 0x79, 0x00, 0x6a, 0x45, 0xed, 0xf9, 0x79, 0x30, 0xbd, 0x6c, 0xd9,
+ 0x66, 0xd7, 0x7a, 0x36, 0x17, 0x1d, 0x33, 0xea, 0x63, 0x72, 0x09, 0x7d, 0x8c, 0x34, 0xd2, 0xf8,
+ 0xf9, 0x53, 0xb2, 0xe8, 0xf2, 0x02, 0x23, 0xfb, 0x80, 0xc9, 0x98, 0xc1, 0xf3, 0xa3, 0x92, 0xc8,
+ 0xf2, 0xc2, 0x70, 0x7a, 0xe9, 0x30, 0xfc, 0xcc, 0xb7, 0x87, 0x8d, 0xd5, 0xd7, 0xbe, 0xa7, 0x07,
+ 0xa9, 0xc2, 0x8c, 0xf6, 0x7b, 0x32, 0xd0, 0x56, 0xa0, 0x7f, 0x0e, 0xba, 0xe1, 0x54, 0x00, 0xf7,
+ 0xfa, 0xd4, 0xde, 0x66, 0x9a, 0xec, 0x9b, 0x59, 0x00, 0xcf, 0xf3, 0x00, 0x96, 0x12, 0x1a, 0x4f,
+ 0x0c, 0xe9, 0x98, 0xc6, 0x5b, 0x05, 0x45, 0x0f, 0xbf, 0xa7, 0x6a, 0xf6, 0x84, 0xf8, 0xe1, 0x12,
+ 0x13, 0x63, 0xa9, 0x13, 0xc2, 0x06, 0x25, 0xa0, 0x7d, 0x33, 0x9c, 0x04, 0x7d, 0x0f, 0xa7, 0x1d,
+ 0xcb, 0x87, 0x66, 0x36, 0x9d, 0xbe, 0xb8, 0xd9, 0xaa, 0xcb, 0x20, 0xfb, 0x46, 0xfb, 0x68, 0x01,
+ 0x9c, 0x1c, 0x54, 0x1d, 0xed, 0x97, 0x73, 0xdc, 0x0e, 0x3b, 0xc4, 0x43, 0x7e, 0x8e, 0x6e, 0x20,
+ 0xa2, 0x07, 0xf5, 0x49, 0xe0, 0xea, 0x70, 0x19, 0xae, 0xe5, 0xd4, 0xe1, 0x15, 0xaf, 0x0b, 0x7d,
+ 0x1f, 0xba, 0xb8, 0x6a, 0xd3, 0xc6, 0xe0, 0x97, 0xea, 0x53, 0xc0, 0xa3, 0x2c, 0xdb, 0xb3, 0x3a,
+ 0xd0, 0x6d, 0x59, 0x3d, 0xaf, 0x64, 0x77, 0x5a, 0x7b, 0xbe, 0xe3, 0x5a, 0x26, 0xbd, 0x91, 0x72,
+ 0xda, 0x88, 0x7b, 0xad, 0xde, 0x0a, 0x14, 0xcb, 0x6b, 0xd8, 0x17, 0x1d, 0xd3, 0xed, 0x58, 0xf6,
+ 0x76, 0xcd, 0xf2, 0x7c, 0xea, 0x01, 0x7c, 0x20, 0x5d, 0xfb, 0x1b, 0x59, 0xf4, 0x30, 0xdd, 0x10,
+ 0x58, 0x63, 0x3a, 0x94, 0x17, 0xc8, 0x22, 0xc7, 0xe3, 0xd2, 0xd1, 0x4e, 0xa7, 0x2c, 0xcf, 0x9b,
+ 0xb4, 0x21, 0x31, 0x78, 0x04, 0xc7, 0x5d, 0x0b, 0x49, 0x0f, 0x0c, 0x81, 0x73, 0xba, 0x51, 0x5d,
+ 0xae, 0xea, 0xc8, 0xac, 0xb8, 0x1a, 0x9c, 0x88, 0xde, 0x55, 0x2e, 0x6c, 0x36, 0xf5, 0x7a, 0x4b,
+ 0x99, 0x46, 0xfd, 0x14, 0x49, 0x5e, 0x2e, 0x55, 0x6b, 0x7a, 0x65, 0xb3, 0xd5, 0x40, 0x6f, 0x2a,
+ 0xa3, 0x99, 0x16, 0xda, 0xc3, 0x79, 0x70, 0x1c, 0xcb, 0x76, 0x1f, 0x4b, 0x15, 0x09, 0xa5, 0xcf,
+ 0xd7, 0x36, 0x04, 0x68, 0x86, 0x88, 0x57, 0xfb, 0x5d, 0xe1, 0x0b, 0x37, 0x19, 0x08, 0xfb, 0xca,
+ 0x88, 0xd1, 0x8c, 0x6f, 0x48, 0x22, 0x11, 0x2a, 0x84, 0xc9, 0xa6, 0x53, 0x8a, 0x7f, 0x99, 0xf4,
+ 0x88, 0x13, 0x0f, 0x3e, 0xb6, 0x32, 0xcb, 0xf8, 0xe3, 0x67, 0xae, 0x57, 0x0d, 0xac, 0x0e, 0x0b,
+ 0x00, 0xe0, 0x14, 0xac, 0x41, 0x44, 0x0f, 0x06, 0x8e, 0x57, 0x71, 0x7a, 0x50, 0x2a, 0xb7, 0xaa,
+ 0xe7, 0xf4, 0x38, 0x3d, 0xf8, 0x9c, 0x0c, 0xa6, 0x57, 0xa0, 0x8f, 0xe6, 0x54, 0x9e, 0xf6, 0x54,
+ 0x81, 0xf5, 0x1f, 0x64, 0xc6, 0x74, 0x9d, 0xb6, 0xd9, 0x0d, 0x97, 0x01, 0xc8, 0x93, 0xf6, 0xc3,
+ 0xa3, 0x98, 0x20, 0x41, 0xd1, 0x31, 0xe3, 0xd5, 0x77, 0x83, 0x82, 0x8f, 0x5e, 0xd3, 0x65, 0xe8,
+ 0xef, 0x88, 0x1d, 0xae, 0x10, 0x91, 0x8a, 0xe9, 0x9b, 0x06, 0xc9, 0xcf, 0x8c, 0x4e, 0x82, 0xb6,
+ 0x4b, 0x0c, 0x23, 0xdf, 0x8e, 0xf6, 0xe7, 0x5f, 0xca, 0xe0, 0x6a, 0xd2, 0x3e, 0x4a, 0xbd, 0x5e,
+ 0xd3, 0x77, 0x5c, 0x68, 0xc0, 0x36, 0xb4, 0x7a, 0x7e, 0xdf, 0xfa, 0x9e, 0x4b, 0x52, 0x83, 0xcd,
+ 0x66, 0xfa, 0xa8, 0xbd, 0x41, 0x16, 0x8d, 0xf0, 0x7b, 0xa0, 0x3d, 0xf6, 0x95, 0x17, 0xd3, 0xd8,
+ 0x3f, 0x29, 0x89, 0xc4, 0xec, 0x4d, 0x49, 0x3c, 0x1d, 0x50, 0x1f, 0x3b, 0x02, 0xa0, 0x82, 0x95,
+ 0x1b, 0x43, 0x2f, 0xeb, 0xd5, 0x75, 0x34, 0x08, 0x5c, 0x0f, 0xae, 0x5d, 0xdf, 0x30, 0xca, 0xab,
+ 0xa5, 0xa6, 0xbe, 0x69, 0xe8, 0x2b, 0xd5, 0x66, 0x8b, 0x3a, 0x65, 0x91, 0xaf, 0xa6, 0xd4, 0xeb,
+ 0xc0, 0xe9, 0xe6, 0xc6, 0x52, 0xb3, 0x6c, 0x54, 0xd7, 0x71, 0xba, 0xa1, 0xd7, 0xf5, 0xf3, 0xf4,
+ 0xed, 0xb4, 0xf6, 0x61, 0x05, 0xcc, 0xa2, 0x09, 0x40, 0x93, 0xcc, 0x0b, 0xb4, 0xbf, 0xcb, 0x83,
+ 0x59, 0x03, 0x7a, 0x4e, 0xf7, 0x32, 0x9e, 0x23, 0x4c, 0x6a, 0xea, 0xf1, 0x75, 0x59, 0xf4, 0xfc,
+ 0x36, 0xc3, 0xec, 0x22, 0xc3, 0x68, 0xfc, 0x44, 0xd3, 0xbc, 0x6c, 0x5a, 0x5d, 0xf3, 0x22, 0xed,
+ 0x6a, 0xa6, 0x8d, 0x28, 0x41, 0x5d, 0x04, 0xaa, 0x73, 0xc5, 0x86, 0x6e, 0xb3, 0x7d, 0x45, 0xf7,
+ 0x77, 0x4a, 0x9d, 0x8e, 0x0b, 0x3d, 0x8f, 0xae, 0x5e, 0x0c, 0x78, 0xa3, 0xde, 0x02, 0x8e, 0xe3,
+ 0x54, 0x26, 0x33, 0x71, 0x90, 0xe9, 0x4f, 0x0e, 0x73, 0x96, 0xec, 0xfd, 0x20, 0x67, 0x81, 0xc9,
+ 0x19, 0x25, 0xb3, 0xc7, 0x25, 0x8a, 0xfc, 0x29, 0x9d, 0x1b, 0xc0, 0xac, 0x6d, 0xee, 0x42, 0xfd,
+ 0xa1, 0x9e, 0xe5, 0x42, 0x0f, 0x3b, 0xc6, 0xc8, 0x06, 0x9b, 0xa4, 0x7d, 0x54, 0xe8, 0xbc, 0xb9,
+ 0x98, 0xc4, 0xd2, 0xe9, 0xfe, 0xca, 0x08, 0xaa, 0x3f, 0xa0, 0x9f, 0x91, 0xb5, 0x0f, 0xcb, 0x60,
+ 0x8e, 0x32, 0x55, 0xb2, 0xf7, 0xab, 0x1d, 0xed, 0x7a, 0xce, 0xf8, 0x35, 0x51, 0x5a, 0x60, 0xfc,
+ 0xe2, 0x07, 0xed, 0x47, 0x65, 0x51, 0x77, 0xe7, 0x01, 0x15, 0xc7, 0x65, 0xc4, 0x3b, 0x8e, 0x6e,
+ 0x39, 0x7b, 0xd4, 0x51, 0x75, 0xda, 0x20, 0x0f, 0x59, 0x2e, 0xea, 0x69, 0xbf, 0x2a, 0xe4, 0x4c,
+ 0x2d, 0x58, 0x8d, 0x23, 0x02, 0xf0, 0xd3, 0x32, 0x58, 0xa0, 0x5c, 0x35, 0xe9, 0x39, 0x1f, 0xa1,
+ 0x03, 0x6f, 0x3f, 0x2e, 0x6c, 0x08, 0x0e, 0xa8, 0x3f, 0x2d, 0xe9, 0x11, 0x03, 0xe4, 0xc7, 0x85,
+ 0x82, 0xa3, 0x09, 0x57, 0xe4, 0x88, 0xa0, 0x7c, 0x57, 0x1e, 0xcc, 0x6e, 0x78, 0xd0, 0xa5, 0x7e,
+ 0xfb, 0xda, 0x6b, 0xf3, 0x40, 0x5e, 0x81, 0xdc, 0x46, 0xea, 0x8b, 0x85, 0x3d, 0x7c, 0xd9, 0xca,
+ 0x32, 0x44, 0x91, 0x8d, 0x14, 0x03, 0xdb, 0xcd, 0x60, 0x81, 0x88, 0xb4, 0xe4, 0xfb, 0xc8, 0x48,
+ 0x0c, 0xbc, 0x69, 0xfb, 0x52, 0xc7, 0xb1, 0x55, 0x84, 0xcb, 0x42, 0x59, 0xca, 0x88, 0xa7, 0x1a,
+ 0xdc, 0x22, 0xf3, 0xd9, 0xbc, 0xd1, 0x97, 0xaa, 0xde, 0x01, 0xae, 0x72, 0x7a, 0x90, 0x9c, 0x5f,
+ 0x61, 0x32, 0x17, 0x70, 0xe6, 0x41, 0xaf, 0xb4, 0xbf, 0x13, 0xf2, 0xd5, 0x15, 0x97, 0x4e, 0x3a,
+ 0x5d, 0xe8, 0x8d, 0xc7, 0x24, 0x39, 0x09, 0x14, 0x94, 0x03, 0xef, 0xbf, 0x18, 0x7a, 0xb3, 0x51,
+ 0x3b, 0xa7, 0x0f, 0x5e, 0xc6, 0x28, 0x68, 0xcf, 0x93, 0xc1, 0xcc, 0x92, 0xeb, 0x98, 0x9d, 0xb6,
+ 0xe9, 0xf9, 0xda, 0x37, 0x25, 0x30, 0xb7, 0x6e, 0xee, 0x77, 0x1d, 0xb3, 0x83, 0xfd, 0xfb, 0xfb,
+ 0xfa, 0x82, 0x1e, 0x79, 0x15, 0xf4, 0x05, 0xf4, 0x91, 0x3f, 0x18, 0x18, 0x1e, 0xdd, 0xcb, 0x89,
+ 0xdc, 0xab, 0x19, 0x6e, 0xf3, 0x49, 0x83, 0x82, 0x95, 0x06, 0x7c, 0x2d, 0xb2, 0x3c, 0xc5, 0x58,
+ 0x94, 0x1f, 0x16, 0x0b, 0x3f, 0x2a, 0x42, 0xf2, 0x68, 0x76, 0xe5, 0x9f, 0x3f, 0x0d, 0x8a, 0x15,
+ 0x88, 0xad, 0xb8, 0xff, 0x2e, 0x81, 0xa9, 0x26, 0xf4, 0xb1, 0x05, 0x77, 0x17, 0xe7, 0x29, 0xdc,
+ 0xc1, 0x19, 0x22, 0x27, 0xf6, 0xe0, 0x19, 0x4d, 0xd6, 0x99, 0xf3, 0xd6, 0xf8, 0x7f, 0x0a, 0x8f,
+ 0x44, 0x52, 0xee, 0x22, 0x2d, 0xf3, 0x50, 0x1e, 0x89, 0x89, 0xa4, 0xb2, 0xf7, 0xb5, 0x7a, 0x8f,
+ 0x44, 0x5d, 0xab, 0x98, 0x5e, 0xef, 0xd5, 0xac, 0x7e, 0x26, 0x7a, 0x9b, 0x51, 0xe6, 0x13, 0x9c,
+ 0xa3, 0x9e, 0x08, 0xa6, 0x88, 0xcc, 0x83, 0xf9, 0x68, 0xbf, 0x9f, 0x02, 0x21, 0x81, 0xcf, 0x5e,
+ 0x07, 0x39, 0x05, 0x5d, 0xd4, 0xe2, 0x0b, 0x9f, 0x48, 0x0c, 0x82, 0xb9, 0x3a, 0xf4, 0xaf, 0x38,
+ 0xee, 0xa5, 0xa6, 0x6f, 0xfa, 0x50, 0xfb, 0x17, 0x89, 0x5c, 0x97, 0xc7, 0x44, 0x3f, 0xa9, 0x83,
+ 0x13, 0xa4, 0x42, 0x34, 0x23, 0xee, 0xbf, 0x49, 0x45, 0x6e, 0x18, 0x28, 0x04, 0x26, 0x9f, 0x71,
+ 0xf0, 0x53, 0xed, 0x67, 0x06, 0x06, 0x7d, 0x92, 0x06, 0x4c, 0x1a, 0xa8, 0x64, 0x58, 0x06, 0xe3,
+ 0xef, 0xc7, 0xd3, 0x3e, 0x22, 0x64, 0x56, 0x8b, 0xd1, 0x3c, 0x9a, 0xae, 0xe0, 0xdf, 0x1e, 0x0b,
+ 0xf2, 0xe5, 0x1d, 0xd3, 0xd7, 0xde, 0x2d, 0x03, 0x50, 0xea, 0x74, 0xd6, 0x88, 0x0f, 0x38, 0xeb,
+ 0x90, 0x76, 0x16, 0xcc, 0xb5, 0x77, 0xcc, 0xe8, 0xe6, 0x0c, 0xd2, 0x1f, 0x70, 0x69, 0xea, 0x93,
+ 0x22, 0x67, 0x72, 0x22, 0x55, 0xad, 0x0f, 0x26, 0x54, 0x06, 0xa5, 0x1d, 0x3a, 0x9a, 0xf3, 0xa1,
+ 0x30, 0x13, 0x8f, 0xd0, 0xa1, 0xcf, 0x17, 0x23, 0xf6, 0xe2, 0xe7, 0x70, 0x94, 0x74, 0x78, 0xc0,
+ 0x26, 0x4a, 0x48, 0x79, 0xd2, 0x5b, 0x2c, 0xa0, 0x47, 0x32, 0x5f, 0x13, 0x09, 0x5d, 0xab, 0xea,
+ 0x1d, 0x2b, 0x10, 0x2d, 0x0d, 0x98, 0xa5, 0xbd, 0x28, 0x97, 0x0e, 0xbe, 0x64, 0xc1, 0x3d, 0x1d,
+ 0xcc, 0xc3, 0x8e, 0xe5, 0xc3, 0xa0, 0x96, 0x54, 0x80, 0x49, 0x10, 0xf3, 0x1f, 0x68, 0xcf, 0x15,
+ 0x0e, 0xba, 0x86, 0x05, 0x7a, 0xb0, 0x46, 0x31, 0xed, 0x4f, 0x2c, 0x8c, 0x9a, 0x18, 0xcd, 0xec,
+ 0xc1, 0xfa, 0x61, 0x19, 0x5c, 0xdd, 0x72, 0xb6, 0xb7, 0xbb, 0x30, 0x10, 0x13, 0x24, 0xde, 0x99,
+ 0x9a, 0x39, 0x4e, 0xb8, 0xf0, 0x4e, 0x90, 0xf3, 0xa0, 0x15, 0x1e, 0x25, 0x43, 0x0f, 0xfc, 0x89,
+ 0xa9, 0xc4, 0x59, 0x14, 0x16, 0xd7, 0x40, 0x3e, 0x63, 0x50, 0x10, 0x0b, 0xf8, 0x2c, 0x4c, 0x36,
+ 0x7b, 0x20, 0xbe, 0x20, 0x81, 0x79, 0x72, 0x2f, 0x62, 0xa0, 0xa0, 0x0f, 0x8c, 0x11, 0x00, 0xed,
+ 0x9b, 0x39, 0x51, 0x3f, 0x5b, 0x2c, 0x13, 0x8e, 0x93, 0x18, 0x11, 0x8b, 0x05, 0x55, 0x19, 0x4a,
+ 0x6e, 0x02, 0x37, 0x75, 0xe6, 0xc1, 0xec, 0x0a, 0x0c, 0x5a, 0x9a, 0xa7, 0xbd, 0x3f, 0x65, 0x4f,
+ 0x74, 0x16, 0xcc, 0xe1, 0xcb, 0xc1, 0x1a, 0xf4, 0x98, 0x24, 0x59, 0x35, 0xe3, 0xd2, 0xd4, 0x9b,
+ 0xc0, 0xfc, 0x45, 0xb8, 0xe5, 0xb8, 0xb0, 0xc1, 0x9d, 0xa5, 0xe4, 0x13, 0x07, 0x87, 0xa7, 0x53,
+ 0x6f, 0x01, 0xc7, 0xa9, 0xa3, 0xfb, 0x12, 0x9a, 0xeb, 0x9b, 0xee, 0x3e, 0x3d, 0x98, 0xd6, 0x9f,
+ 0xac, 0xfd, 0x25, 0xdb, 0x60, 0x96, 0x78, 0x14, 0x6f, 0x3b, 0x28, 0x76, 0xa6, 0xd2, 0x31, 0xa3,
+ 0xd3, 0x93, 0xc1, 0x34, 0xd5, 0x91, 0xc0, 0xa0, 0x4b, 0xea, 0x41, 0xc3, 0xbc, 0xea, 0x93, 0xc1,
+ 0x0c, 0x12, 0x11, 0xb6, 0x1b, 0x68, 0xd7, 0x7b, 0x7a, 0xc0, 0x87, 0xf8, 0xbd, 0x11, 0x65, 0xd5,
+ 0x7e, 0x21, 0xd4, 0x19, 0x9d, 0xd3, 0x99, 0x27, 0xa4, 0x61, 0x7e, 0x22, 0x17, 0xc9, 0x2b, 0x4c,
+ 0xf9, 0x4b, 0xfb, 0xd5, 0x8e, 0xa7, 0xad, 0xa5, 0xd3, 0x9a, 0x33, 0x00, 0x84, 0xcd, 0x2f, 0x08,
+ 0x9c, 0xc1, 0xa4, 0xf0, 0xb1, 0xf1, 0x13, 0x8f, 0x02, 0xf6, 0x8b, 0x03, 0xb3, 0x33, 0x5e, 0x40,
+ 0x05, 0x8f, 0x10, 0x8a, 0x70, 0x92, 0x3d, 0x3a, 0x3f, 0x9f, 0x07, 0x57, 0x87, 0x27, 0x9c, 0x6a,
+ 0xa6, 0x17, 0xb5, 0xec, 0x0b, 0xe9, 0x20, 0xe2, 0x8e, 0x94, 0x84, 0xcd, 0xf1, 0x24, 0x28, 0x78,
+ 0x7b, 0x17, 0x43, 0x47, 0x40, 0xf2, 0xa0, 0xbd, 0x51, 0x4e, 0x35, 0x56, 0x0d, 0xe4, 0x6f, 0xcc,
+ 0x8d, 0xf0, 0x36, 0x70, 0xc2, 0xde, 0xdb, 0x0d, 0xb1, 0xc0, 0x3d, 0x0d, 0xed, 0x59, 0x0e, 0xbe,
+ 0xe0, 0x9b, 0x6c, 0x5e, 0xbc, 0xc9, 0xa6, 0x18, 0x49, 0x45, 0x2a, 0x9d, 0xbd, 0x7a, 0x7c, 0xa6,
+ 0xef, 0x08, 0x5a, 0x39, 0xb5, 0x52, 0x10, 0xf8, 0x25, 0x16, 0xfe, 0x7f, 0xca, 0xa5, 0xea, 0x79,
+ 0x87, 0x9f, 0x5c, 0x4b, 0xd1, 0x13, 0x1e, 0xe5, 0xb1, 0xb5, 0xcf, 0x4b, 0x40, 0x6b, 0x46, 0x0e,
+ 0x39, 0x14, 0xd4, 0x75, 0x17, 0x5e, 0xb6, 0xe0, 0x15, 0xce, 0x7d, 0xeb, 0x4d, 0xc2, 0x71, 0xa8,
+ 0x79, 0x5d, 0x39, 0x40, 0x34, 0x7e, 0x5d, 0x7c, 0x00, 0x2e, 0x62, 0xf1, 0xa6, 0xd3, 0x95, 0x38,
+ 0x81, 0xd8, 0xe1, 0x12, 0x38, 0xc3, 0xa0, 0xba, 0xec, 0x3a, 0xbb, 0x09, 0x92, 0x7d, 0x39, 0x2b,
+ 0xd9, 0x0d, 0x5e, 0xb2, 0xf7, 0x25, 0xaa, 0xcb, 0x00, 0xc2, 0x31, 0xea, 0xf8, 0xfe, 0x50, 0x8e,
+ 0xcf, 0xe4, 0xe4, 0x58, 0x39, 0x24, 0xfd, 0xec, 0x65, 0xf9, 0x07, 0x79, 0x30, 0x67, 0x40, 0xb3,
+ 0x13, 0x0e, 0x02, 0xff, 0x37, 0x63, 0xde, 0x3d, 0x15, 0xe4, 0xfd, 0x68, 0x9d, 0xe6, 0xb1, 0x07,
+ 0x2b, 0xc3, 0x7e, 0x89, 0x1f, 0xf0, 0x72, 0x0d, 0xfe, 0xe8, 0x40, 0x6f, 0x21, 0x09, 0xd8, 0x86,
+ 0xb2, 0x88, 0x6d, 0x98, 0x1f, 0x64, 0x1b, 0xde, 0x02, 0x8e, 0x77, 0x4d, 0xcf, 0xaf, 0x5c, 0x6c,
+ 0x59, 0xbb, 0xd0, 0xf3, 0xcd, 0xdd, 0x1e, 0xb6, 0x02, 0x65, 0xa3, 0x3f, 0x99, 0xbf, 0x07, 0x3e,
+ 0xf1, 0x3c, 0xd8, 0xa0, 0x2a, 0x1e, 0x3e, 0x66, 0xee, 0x87, 0x84, 0x0e, 0x7f, 0x0d, 0x2b, 0x3b,
+ 0x9d, 0x66, 0xdc, 0x3f, 0xc2, 0xda, 0xd2, 0x29, 0xa0, 0xae, 0xe9, 0xcd, 0x66, 0x69, 0x05, 0x9f,
+ 0x09, 0x09, 0x9c, 0x84, 0x3a, 0x67, 0x1f, 0x83, 0xc4, 0x47, 0x90, 0x56, 0xe7, 0xa2, 0xb1, 0x57,
+ 0x39, 0xa6, 0xce, 0x82, 0x29, 0x17, 0xf6, 0xba, 0x16, 0xf4, 0x94, 0x9c, 0xf6, 0x0d, 0x09, 0x14,
+ 0x37, 0x6c, 0x17, 0x9a, 0x1d, 0xed, 0x19, 0xf1, 0x43, 0xc8, 0x88, 0x4a, 0xc1, 0xc7, 0xbd, 0x4a,
+ 0x5c, 0x95, 0xa5, 0x8d, 0x0e, 0x31, 0x32, 0x16, 0xf8, 0xc4, 0x96, 0x63, 0xe3, 0x4b, 0xcd, 0xbc,
+ 0x49, 0x9f, 0x9d, 0x02, 0x05, 0x7d, 0xb7, 0xe7, 0xef, 0x9f, 0x7d, 0x0c, 0x98, 0x6f, 0xfa, 0x2e,
+ 0x34, 0x77, 0x99, 0x4d, 0x75, 0xdf, 0xb9, 0x04, 0xed, 0x60, 0x53, 0x1d, 0x3f, 0xdc, 0x7d, 0x17,
+ 0x98, 0xb2, 0x9d, 0x4d, 0x73, 0xcf, 0xdf, 0x51, 0xaf, 0x3f, 0x10, 0x8d, 0x86, 0xaa, 0x5f, 0x83,
+ 0x86, 0xff, 0xfb, 0xd3, 0x7b, 0xf0, 0xd4, 0xaa, 0x68, 0x3b, 0xa5, 0x3d, 0x7f, 0x67, 0xe9, 0xba,
+ 0x4f, 0xff, 0xd9, 0x99, 0xdc, 0xe7, 0xfe, 0xec, 0x4c, 0xee, 0x2b, 0x7f, 0x76, 0x26, 0xf7, 0xe3,
+ 0x7f, 0x7e, 0xe6, 0xd8, 0xe7, 0xfe, 0xfc, 0xcc, 0xb1, 0x2f, 0xfc, 0xf9, 0x99, 0x63, 0xdf, 0x23,
+ 0xf5, 0x2e, 0x5e, 0x2c, 0x62, 0x2a, 0x4f, 0xfc, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x2f,
+ 0x5e, 0xe5, 0x7d, 0x2d, 0x02, 0x00,
}
func (m *Rpc) Marshal() (dAtA []byte, err error) {
@@ -93915,6 +93867,160 @@ func (m *RpcObjectListExportResponseError) MarshalToSizedBuffer(dAtA []byte) (in
return len(dAtA) - i, nil
}
+func (m *RpcObjectExport) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcObjectExport) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcObjectExport) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcObjectExportRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcObjectExportRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcObjectExportRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.SpaceId) > 0 {
+ i -= len(m.SpaceId)
+ copy(dAtA[i:], m.SpaceId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.SpaceId)))
+ i--
+ dAtA[i] = 0x52
+ }
+ if m.Format != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Format))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.ObjectId) > 0 {
+ i -= len(m.ObjectId)
+ copy(dAtA[i:], m.ObjectId)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.ObjectId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcObjectExportResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcObjectExportResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcObjectExportResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Event != nil {
+ {
+ size, err := m.Event.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.Result) > 0 {
+ i -= len(m.Result)
+ copy(dAtA[i:], m.Result)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Result)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Error != nil {
+ {
+ size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintCommands(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *RpcObjectExportResponseError) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *RpcObjectExportResponseError) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RpcObjectExportResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Description) > 0 {
+ i -= len(m.Description)
+ copy(dAtA[i:], m.Description)
+ i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Code != 0 {
+ i = encodeVarintCommands(dAtA, i, uint64(m.Code))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *RpcObjectImport) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -125582,157 +125688,6 @@ func (m *RpcChatUnreadResponseError) MarshalToSizedBuffer(dAtA []byte) (int, err
return len(dAtA) - i, nil
}
-func (m *RpcPushNotification) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *RpcPushNotification) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *RpcPushNotification) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- return len(dAtA) - i, nil
-}
-
-func (m *RpcPushNotificationRegisterToken) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *RpcPushNotificationRegisterToken) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *RpcPushNotificationRegisterToken) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- return len(dAtA) - i, nil
-}
-
-func (m *RpcPushNotificationRegisterTokenRequest) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *RpcPushNotificationRegisterTokenRequest) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *RpcPushNotificationRegisterTokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.Platform != 0 {
- i = encodeVarintCommands(dAtA, i, uint64(m.Platform))
- i--
- dAtA[i] = 0x10
- }
- if len(m.Token) > 0 {
- i -= len(m.Token)
- copy(dAtA[i:], m.Token)
- i = encodeVarintCommands(dAtA, i, uint64(len(m.Token)))
- i--
- dAtA[i] = 0xa
- }
- return len(dAtA) - i, nil
-}
-
-func (m *RpcPushNotificationRegisterTokenResponse) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *RpcPushNotificationRegisterTokenResponse) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *RpcPushNotificationRegisterTokenResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if m.Error != nil {
- {
- size, err := m.Error.MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintCommands(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0xa
- }
- return len(dAtA) - i, nil
-}
-
-func (m *RpcPushNotificationRegisterTokenResponseError) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *RpcPushNotificationRegisterTokenResponseError) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *RpcPushNotificationRegisterTokenResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if len(m.Description) > 0 {
- i -= len(m.Description)
- copy(dAtA[i:], m.Description)
- i = encodeVarintCommands(dAtA, i, uint64(len(m.Description)))
- i--
- dAtA[i] = 0x12
- }
- if m.Code != 0 {
- i = encodeVarintCommands(dAtA, i, uint64(m.Code))
- i--
- dAtA[i] = 0x8
- }
- return len(dAtA) - i, nil
-}
-
func (m *Empty) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -132543,6 +132498,72 @@ func (m *RpcObjectListExportResponseError) Size() (n int) {
return n
}
+func (m *RpcObjectExport) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *RpcObjectExportRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ObjectId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if m.Format != 0 {
+ n += 1 + sovCommands(uint64(m.Format))
+ }
+ l = len(m.SpaceId)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcObjectExportResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Error != nil {
+ l = m.Error.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ l = len(m.Result)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ if m.Event != nil {
+ l = m.Event.Size()
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
+func (m *RpcObjectExportResponseError) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Code != 0 {
+ n += 1 + sovCommands(uint64(m.Code))
+ }
+ l = len(m.Description)
+ if l > 0 {
+ n += 1 + l + sovCommands(uint64(l))
+ }
+ return n
+}
+
func (m *RpcObjectImport) Size() (n int) {
if m == nil {
return 0
@@ -146016,69 +146037,6 @@ func (m *RpcChatUnreadResponseError) Size() (n int) {
return n
}
-func (m *RpcPushNotification) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- return n
-}
-
-func (m *RpcPushNotificationRegisterToken) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- return n
-}
-
-func (m *RpcPushNotificationRegisterTokenRequest) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- l = len(m.Token)
- if l > 0 {
- n += 1 + l + sovCommands(uint64(l))
- }
- if m.Platform != 0 {
- n += 1 + sovCommands(uint64(m.Platform))
- }
- return n
-}
-
-func (m *RpcPushNotificationRegisterTokenResponse) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Error != nil {
- l = m.Error.Size()
- n += 1 + l + sovCommands(uint64(l))
- }
- return n
-}
-
-func (m *RpcPushNotificationRegisterTokenResponseError) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.Code != 0 {
- n += 1 + sovCommands(uint64(m.Code))
- }
- l = len(m.Description)
- if l > 0 {
- n += 1 + l + sovCommands(uint64(l))
- }
- return n
-}
-
func (m *Empty) Size() (n int) {
if m == nil {
return 0
@@ -189173,6 +189131,444 @@ func (m *RpcObjectListExportResponseError) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *RpcObjectExport) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Export: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Export: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcObjectExportRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Request: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ObjectId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ObjectId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType)
+ }
+ m.Format = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Format |= model.ExportFormat(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 10:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SpaceId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.SpaceId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcObjectExportResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Response: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Error == nil {
+ m.Error = &RpcObjectExportResponseError{}
+ }
+ if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Result = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Event", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.Event == nil {
+ m.Event = &ResponseEvent{}
+ }
+ if err := m.Event.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *RpcObjectExportResponseError) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: Error: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
+ }
+ m.Code = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Code |= RpcObjectExportResponseErrorCode(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowCommands
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthCommands
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Description = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipCommands(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthCommands
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *RpcObjectImport) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -275273,394 +275669,6 @@ func (m *RpcChatUnreadResponseError) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *RpcPushNotification) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: PushNotification: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: PushNotification: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- default:
- iNdEx = preIndex
- skippy, err := skipCommands(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthCommands
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *RpcPushNotificationRegisterToken) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: RegisterToken: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: RegisterToken: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- default:
- iNdEx = preIndex
- skippy, err := skipCommands(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthCommands
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *RpcPushNotificationRegisterTokenRequest) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: Request: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthCommands
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthCommands
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Token = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Platform", wireType)
- }
- m.Platform = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Platform |= RpcPushNotificationRegisterTokenPlatform(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- default:
- iNdEx = preIndex
- skippy, err := skipCommands(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthCommands
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *RpcPushNotificationRegisterTokenResponse) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: Response: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthCommands
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthCommands
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- if m.Error == nil {
- m.Error = &RpcPushNotificationRegisterTokenResponseError{}
- }
- if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipCommands(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthCommands
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *RpcPushNotificationRegisterTokenResponseError) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: Error: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: Error: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType)
- }
- m.Code = 0
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- m.Code |= RpcPushNotificationRegisterTokenResponseErrorCode(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- case 2:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowCommands
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthCommands
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthCommands
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Description = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipCommands(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthCommands
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
func (m *Empty) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/pb/events.pb.go b/pb/events.pb.go
index 0368ee111..f5d99e673 100644
--- a/pb/events.pb.go
+++ b/pb/events.pb.go
@@ -397,6 +397,7 @@ type EventMessage struct {
// *EventMessageValueOfPayloadBroadcast
// *EventMessageValueOfMembershipUpdate
// *EventMessageValueOfSpaceSyncStatusUpdate
+ // *EventMessageValueOfSpaceAutoWidgetAdded
// *EventMessageValueOfP2PStatusUpdate
// *EventMessageValueOfImportFinish
// *EventMessageValueOfChatAdd
@@ -405,7 +406,6 @@ type EventMessage struct {
// *EventMessageValueOfChatUpdateReadStatus
// *EventMessageValueOfChatDelete
// *EventMessageValueOfChatStateUpdate
- // *EventMessageValueOfKeyUpdate
Value IsEventMessageValue `protobuf_oneof:"value"`
}
@@ -655,6 +655,9 @@ type EventMessageValueOfMembershipUpdate struct {
type EventMessageValueOfSpaceSyncStatusUpdate struct {
SpaceSyncStatusUpdate *EventSpaceSyncStatusUpdate `protobuf:"bytes,119,opt,name=spaceSyncStatusUpdate,proto3,oneof" json:"spaceSyncStatusUpdate,omitempty"`
}
+type EventMessageValueOfSpaceAutoWidgetAdded struct {
+ SpaceAutoWidgetAdded *EventSpaceAutoWidgetAdded `protobuf:"bytes,122,opt,name=spaceAutoWidgetAdded,proto3,oneof" json:"spaceAutoWidgetAdded,omitempty"`
+}
type EventMessageValueOfP2PStatusUpdate struct {
P2PStatusUpdate *EventP2PStatusUpdate `protobuf:"bytes,120,opt,name=p2pStatusUpdate,proto3,oneof" json:"p2pStatusUpdate,omitempty"`
}
@@ -679,9 +682,6 @@ type EventMessageValueOfChatDelete struct {
type EventMessageValueOfChatStateUpdate struct {
ChatStateUpdate *EventChatUpdateState `protobuf:"bytes,133,opt,name=chatStateUpdate,proto3,oneof" json:"chatStateUpdate,omitempty"`
}
-type EventMessageValueOfKeyUpdate struct {
- KeyUpdate *EventKeyUpdate `protobuf:"bytes,135,opt,name=keyUpdate,proto3,oneof" json:"keyUpdate,omitempty"`
-}
func (*EventMessageValueOfAccountShow) IsEventMessageValue() {}
func (*EventMessageValueOfAccountDetails) IsEventMessageValue() {}
@@ -752,6 +752,7 @@ func (*EventMessageValueOfNotificationUpdate) IsEventMessageValue()
func (*EventMessageValueOfPayloadBroadcast) IsEventMessageValue() {}
func (*EventMessageValueOfMembershipUpdate) IsEventMessageValue() {}
func (*EventMessageValueOfSpaceSyncStatusUpdate) IsEventMessageValue() {}
+func (*EventMessageValueOfSpaceAutoWidgetAdded) IsEventMessageValue() {}
func (*EventMessageValueOfP2PStatusUpdate) IsEventMessageValue() {}
func (*EventMessageValueOfImportFinish) IsEventMessageValue() {}
func (*EventMessageValueOfChatAdd) IsEventMessageValue() {}
@@ -760,7 +761,6 @@ func (*EventMessageValueOfChatUpdateReactions) IsEventMessageValue()
func (*EventMessageValueOfChatUpdateReadStatus) IsEventMessageValue() {}
func (*EventMessageValueOfChatDelete) IsEventMessageValue() {}
func (*EventMessageValueOfChatStateUpdate) IsEventMessageValue() {}
-func (*EventMessageValueOfKeyUpdate) IsEventMessageValue() {}
func (m *EventMessage) GetValue() IsEventMessageValue {
if m != nil {
@@ -1259,6 +1259,13 @@ func (m *EventMessage) GetSpaceSyncStatusUpdate() *EventSpaceSyncStatusUpdate {
return nil
}
+func (m *EventMessage) GetSpaceAutoWidgetAdded() *EventSpaceAutoWidgetAdded {
+ if x, ok := m.GetValue().(*EventMessageValueOfSpaceAutoWidgetAdded); ok {
+ return x.SpaceAutoWidgetAdded
+ }
+ return nil
+}
+
func (m *EventMessage) GetP2PStatusUpdate() *EventP2PStatusUpdate {
if x, ok := m.GetValue().(*EventMessageValueOfP2PStatusUpdate); ok {
return x.P2PStatusUpdate
@@ -1315,13 +1322,6 @@ func (m *EventMessage) GetChatStateUpdate() *EventChatUpdateState {
return nil
}
-func (m *EventMessage) GetKeyUpdate() *EventKeyUpdate {
- if x, ok := m.GetValue().(*EventMessageValueOfKeyUpdate); ok {
- return x.KeyUpdate
- }
- return nil
-}
-
// XXX_OneofWrappers is for the internal use of the proto package.
func (*EventMessage) XXX_OneofWrappers() []interface{} {
return []interface{}{
@@ -1394,6 +1394,7 @@ func (*EventMessage) XXX_OneofWrappers() []interface{} {
(*EventMessageValueOfPayloadBroadcast)(nil),
(*EventMessageValueOfMembershipUpdate)(nil),
(*EventMessageValueOfSpaceSyncStatusUpdate)(nil),
+ (*EventMessageValueOfSpaceAutoWidgetAdded)(nil),
(*EventMessageValueOfP2PStatusUpdate)(nil),
(*EventMessageValueOfImportFinish)(nil),
(*EventMessageValueOfChatAdd)(nil),
@@ -1402,7 +1403,6 @@ func (*EventMessage) XXX_OneofWrappers() []interface{} {
(*EventMessageValueOfChatUpdateReadStatus)(nil),
(*EventMessageValueOfChatDelete)(nil),
(*EventMessageValueOfChatStateUpdate)(nil),
- (*EventMessageValueOfKeyUpdate)(nil),
}
}
@@ -11626,6 +11626,66 @@ func (m *EventSpaceSyncStatusUpdate) GetSyncingObjectsCounter() int64 {
return 0
}
+type EventSpaceAutoWidgetAdded struct {
+ TargetId string `protobuf:"bytes,1,opt,name=targetId,proto3" json:"targetId,omitempty"`
+ TargetName string `protobuf:"bytes,2,opt,name=targetName,proto3" json:"targetName,omitempty"`
+ WidgetBlockId string `protobuf:"bytes,3,opt,name=widgetBlockId,proto3" json:"widgetBlockId,omitempty"`
+}
+
+func (m *EventSpaceAutoWidgetAdded) Reset() { *m = EventSpaceAutoWidgetAdded{} }
+func (m *EventSpaceAutoWidgetAdded) String() string { return proto.CompactTextString(m) }
+func (*EventSpaceAutoWidgetAdded) ProtoMessage() {}
+func (*EventSpaceAutoWidgetAdded) Descriptor() ([]byte, []int) {
+ return fileDescriptor_a966342d378ae5f5, []int{0, 13, 1}
+}
+func (m *EventSpaceAutoWidgetAdded) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventSpaceAutoWidgetAdded) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventSpaceAutoWidgetAdded.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventSpaceAutoWidgetAdded) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventSpaceAutoWidgetAdded.Merge(m, src)
+}
+func (m *EventSpaceAutoWidgetAdded) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventSpaceAutoWidgetAdded) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventSpaceAutoWidgetAdded.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventSpaceAutoWidgetAdded proto.InternalMessageInfo
+
+func (m *EventSpaceAutoWidgetAdded) GetTargetId() string {
+ if m != nil {
+ return m.TargetId
+ }
+ return ""
+}
+
+func (m *EventSpaceAutoWidgetAdded) GetTargetName() string {
+ if m != nil {
+ return m.TargetName
+ }
+ return ""
+}
+
+func (m *EventSpaceAutoWidgetAdded) GetWidgetBlockId() string {
+ if m != nil {
+ return m.WidgetBlockId
+ }
+ return ""
+}
+
type EventP2PStatus struct {
}
@@ -11818,102 +11878,6 @@ func (m *EventImportFinish) GetImportType() model.ImportType {
return model.Import_Notion
}
-type EventKey struct {
-}
-
-func (m *EventKey) Reset() { *m = EventKey{} }
-func (m *EventKey) String() string { return proto.CompactTextString(m) }
-func (*EventKey) ProtoMessage() {}
-func (*EventKey) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 16}
-}
-func (m *EventKey) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *EventKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_EventKey.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *EventKey) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EventKey.Merge(m, src)
-}
-func (m *EventKey) XXX_Size() int {
- return m.Size()
-}
-func (m *EventKey) XXX_DiscardUnknown() {
- xxx_messageInfo_EventKey.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventKey proto.InternalMessageInfo
-
-type EventKeyUpdate struct {
- SpaceKeyId string `protobuf:"bytes,1,opt,name=spaceKeyId,proto3" json:"spaceKeyId,omitempty"`
- EncryptionKeyId string `protobuf:"bytes,2,opt,name=encryptionKeyId,proto3" json:"encryptionKeyId,omitempty"`
- EncryptionKey []byte `protobuf:"bytes,3,opt,name=encryptionKey,proto3" json:"encryptionKey,omitempty"`
-}
-
-func (m *EventKeyUpdate) Reset() { *m = EventKeyUpdate{} }
-func (m *EventKeyUpdate) String() string { return proto.CompactTextString(m) }
-func (*EventKeyUpdate) ProtoMessage() {}
-func (*EventKeyUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_a966342d378ae5f5, []int{0, 16, 0}
-}
-func (m *EventKeyUpdate) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *EventKeyUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_EventKeyUpdate.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *EventKeyUpdate) XXX_Merge(src proto.Message) {
- xxx_messageInfo_EventKeyUpdate.Merge(m, src)
-}
-func (m *EventKeyUpdate) XXX_Size() int {
- return m.Size()
-}
-func (m *EventKeyUpdate) XXX_DiscardUnknown() {
- xxx_messageInfo_EventKeyUpdate.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventKeyUpdate proto.InternalMessageInfo
-
-func (m *EventKeyUpdate) GetSpaceKeyId() string {
- if m != nil {
- return m.SpaceKeyId
- }
- return ""
-}
-
-func (m *EventKeyUpdate) GetEncryptionKeyId() string {
- if m != nil {
- return m.EncryptionKeyId
- }
- return ""
-}
-
-func (m *EventKeyUpdate) GetEncryptionKey() []byte {
- if m != nil {
- return m.EncryptionKey
- }
- return nil
-}
-
type ResponseEvent struct {
Messages []*EventMessage `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"`
ContextId string `protobuf:"bytes,2,opt,name=contextId,proto3" json:"contextId,omitempty"`
@@ -12621,12 +12585,11 @@ func init() {
proto.RegisterType((*EventSpace)(nil), "anytype.Event.Space")
proto.RegisterType((*EventSpaceSyncStatus)(nil), "anytype.Event.Space.SyncStatus")
proto.RegisterType((*EventSpaceSyncStatusUpdate)(nil), "anytype.Event.Space.SyncStatus.Update")
+ proto.RegisterType((*EventSpaceAutoWidgetAdded)(nil), "anytype.Event.Space.AutoWidgetAdded")
proto.RegisterType((*EventP2PStatus)(nil), "anytype.Event.P2PStatus")
proto.RegisterType((*EventP2PStatusUpdate)(nil), "anytype.Event.P2PStatus.Update")
proto.RegisterType((*EventImport)(nil), "anytype.Event.Import")
proto.RegisterType((*EventImportFinish)(nil), "anytype.Event.Import.Finish")
- proto.RegisterType((*EventKey)(nil), "anytype.Event.Key")
- proto.RegisterType((*EventKeyUpdate)(nil), "anytype.Event.Key.Update")
proto.RegisterType((*ResponseEvent)(nil), "anytype.ResponseEvent")
proto.RegisterType((*Model)(nil), "anytype.Model")
proto.RegisterType((*ModelProcess)(nil), "anytype.Model.Process")
@@ -12642,407 +12605,407 @@ func init() { proto.RegisterFile("pb/protos/events.proto", fileDescriptor_a96634
var fileDescriptor_a966342d378ae5f5 = []byte{
// 6409 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x49, 0x8c, 0x1c, 0xc9,
- 0x79, 0x6e, 0xed, 0xcb, 0xdf, 0xcd, 0x66, 0x31, 0xc8, 0xe1, 0xe4, 0xe4, 0x70, 0x38, 0x9c, 0xe6,
- 0x32, 0xd4, 0x0c, 0xa7, 0x38, 0x43, 0x72, 0xc8, 0x11, 0x67, 0xb8, 0xf4, 0xc6, 0xa9, 0xe2, 0xd2,
- 0x6c, 0x45, 0x93, 0xd4, 0x68, 0x24, 0x3c, 0x28, 0xbb, 0x32, 0xba, 0x3b, 0xc5, 0xea, 0xcc, 0x52,
- 0x66, 0x76, 0x93, 0xad, 0xfd, 0x69, 0x79, 0xc2, 0x03, 0xde, 0x83, 0x7d, 0x30, 0x6c, 0xc3, 0x17,
- 0xc3, 0x86, 0x05, 0xf8, 0x60, 0x18, 0x02, 0x7c, 0xb1, 0x2f, 0xb6, 0x01, 0xc3, 0xbb, 0x0d, 0x48,
- 0x37, 0x5f, 0x64, 0x09, 0xa3, 0x8b, 0x0f, 0xf6, 0x41, 0x36, 0x60, 0xf8, 0x68, 0xc4, 0x92, 0x91,
- 0x11, 0xb9, 0x54, 0x56, 0x69, 0x46, 0x5e, 0x60, 0x9d, 0xba, 0x22, 0xf2, 0xff, 0xbf, 0x58, 0xfe,
- 0x25, 0x22, 0xfe, 0x58, 0x1a, 0x8e, 0x8e, 0x36, 0xce, 0x8f, 0x7c, 0x2f, 0xf4, 0x82, 0xf3, 0x64,
- 0x8f, 0xb8, 0x61, 0xd0, 0x65, 0x29, 0xd4, 0xb4, 0xdc, 0xfd, 0x70, 0x7f, 0x44, 0xcc, 0x53, 0xa3,
- 0xc7, 0x5b, 0xe7, 0x87, 0xce, 0xc6, 0xf9, 0xd1, 0xc6, 0xf9, 0x1d, 0xcf, 0x26, 0xc3, 0x88, 0x9c,
- 0x25, 0x04, 0xb9, 0x79, 0x6c, 0xcb, 0xf3, 0xb6, 0x86, 0x84, 0x7f, 0xdb, 0xd8, 0xdd, 0x3c, 0x1f,
- 0x84, 0xfe, 0xee, 0x20, 0xe4, 0x5f, 0xe7, 0x7f, 0xe3, 0xcf, 0xca, 0x50, 0x5f, 0xa1, 0xf0, 0xe8,
- 0x02, 0xb4, 0x76, 0x48, 0x10, 0x58, 0x5b, 0x24, 0x30, 0xca, 0x27, 0xaa, 0x67, 0x67, 0x2e, 0x1c,
- 0xed, 0x8a, 0xa2, 0xba, 0x8c, 0xa2, 0x7b, 0x8f, 0x7f, 0xc6, 0x92, 0x0e, 0x1d, 0x83, 0xf6, 0xc0,
- 0x73, 0x43, 0xf2, 0x34, 0xec, 0xdb, 0x46, 0xe5, 0x44, 0xf9, 0x6c, 0x1b, 0xc7, 0x19, 0xe8, 0x12,
- 0xb4, 0x1d, 0xd7, 0x09, 0x1d, 0x2b, 0xf4, 0x7c, 0xa3, 0x7a, 0xa2, 0xac, 0x41, 0xb2, 0x4a, 0x76,
- 0x17, 0x06, 0x03, 0x6f, 0xd7, 0x0d, 0x71, 0x4c, 0x88, 0x0c, 0x68, 0x86, 0xbe, 0x35, 0x20, 0x7d,
- 0xdb, 0xa8, 0x31, 0xc4, 0x28, 0x69, 0x7e, 0xf7, 0x22, 0x34, 0x45, 0x1d, 0xd0, 0x73, 0xd0, 0x0c,
- 0x46, 0x9c, 0xea, 0x9b, 0x65, 0x4e, 0x26, 0xd2, 0xe8, 0x06, 0xcc, 0x58, 0x1c, 0x76, 0x7d, 0xdb,
- 0x7b, 0x62, 0x94, 0x59, 0xc1, 0xcf, 0x27, 0xda, 0x22, 0x0a, 0xee, 0x52, 0x92, 0x5e, 0x09, 0xab,
- 0x1c, 0xa8, 0x0f, 0x73, 0x22, 0xb9, 0x4c, 0x42, 0xcb, 0x19, 0x06, 0xc6, 0x5f, 0x72, 0x90, 0xe3,
- 0x39, 0x20, 0x82, 0xac, 0x57, 0xc2, 0x09, 0x46, 0xf4, 0x29, 0x38, 0x2c, 0x72, 0x96, 0x3c, 0x77,
- 0xd3, 0xd9, 0x7a, 0x38, 0xb2, 0xad, 0x90, 0x18, 0x7f, 0xc5, 0xf1, 0x4e, 0xe5, 0xe0, 0x71, 0xda,
- 0x2e, 0x27, 0xee, 0x95, 0x70, 0x16, 0x06, 0xba, 0x05, 0x07, 0x44, 0xb6, 0x00, 0xfd, 0x6b, 0x0e,
- 0xfa, 0x42, 0x0e, 0xa8, 0x44, 0xd3, 0xd9, 0xd0, 0xa7, 0xe1, 0x88, 0xc8, 0xb8, 0xeb, 0xb8, 0x8f,
- 0x97, 0xb6, 0xad, 0xe1, 0x90, 0xb8, 0x5b, 0xc4, 0xf8, 0x9b, 0xf1, 0x75, 0xd4, 0x88, 0x7b, 0x25,
- 0x9c, 0x09, 0x82, 0xb6, 0xc0, 0xc8, 0xca, 0xef, 0x39, 0x36, 0x31, 0xfe, 0x96, 0x17, 0x70, 0x76,
- 0xa2, 0x02, 0x1c, 0x9b, 0x16, 0x92, 0x0b, 0x86, 0xee, 0x43, 0xc7, 0xdb, 0xf8, 0x1c, 0x19, 0x44,
- 0x3d, 0xbf, 0x4e, 0x42, 0xa3, 0xc3, 0xf0, 0x5f, 0x4a, 0xe0, 0xdf, 0x67, 0x64, 0x91, 0xcc, 0xba,
- 0xeb, 0x24, 0xec, 0x95, 0x70, 0x8a, 0x19, 0x3d, 0x04, 0xa4, 0xe5, 0x2d, 0xec, 0x10, 0xd7, 0x36,
- 0x2e, 0x30, 0xc8, 0x93, 0xe3, 0x21, 0x19, 0x69, 0xaf, 0x84, 0x33, 0x00, 0x52, 0xb0, 0x0f, 0xdd,
- 0x80, 0x84, 0xc6, 0xc5, 0x49, 0x60, 0x19, 0x69, 0x0a, 0x96, 0xe5, 0x52, 0x21, 0xf2, 0x5c, 0x4c,
- 0x86, 0x56, 0xe8, 0x78, 0xae, 0xa8, 0xef, 0x25, 0x06, 0x7c, 0x3a, 0x1b, 0x58, 0xd2, 0xca, 0x1a,
- 0x67, 0x82, 0xa0, 0xff, 0x05, 0xcf, 0x24, 0xf2, 0x31, 0xd9, 0xf1, 0xf6, 0x88, 0xf1, 0x26, 0x43,
- 0x3f, 0x53, 0x84, 0xce, 0xa9, 0x7b, 0x25, 0x9c, 0x0d, 0x83, 0x16, 0x61, 0x36, 0xfa, 0xc0, 0x60,
- 0x2f, 0x33, 0xd8, 0x63, 0x79, 0xb0, 0x02, 0x4c, 0xe3, 0xa1, 0x46, 0xcf, 0xd3, 0x4b, 0x43, 0x2f,
- 0x20, 0xc6, 0x42, 0xa6, 0xd1, 0x0b, 0x08, 0x46, 0x42, 0x8d, 0x5e, 0xe1, 0x50, 0x1b, 0x19, 0x84,
- 0xbe, 0x33, 0x60, 0x15, 0xa4, 0x5a, 0x74, 0x65, 0x7c, 0x23, 0x63, 0x62, 0xa1, 0x4a, 0xd9, 0x30,
- 0x08, 0xc3, 0xc1, 0x60, 0x77, 0x23, 0x18, 0xf8, 0xce, 0x88, 0xe6, 0x2d, 0xd8, 0xb6, 0xf1, 0xce,
- 0x38, 0xe4, 0x75, 0x85, 0xb8, 0xbb, 0x60, 0x53, 0xe9, 0x24, 0x01, 0xd0, 0xa7, 0x01, 0xa9, 0x59,
- 0xa2, 0xfb, 0xae, 0x31, 0xd8, 0x8f, 0x4d, 0x00, 0x2b, 0xfb, 0x32, 0x03, 0x06, 0x59, 0x70, 0x44,
- 0xcd, 0x5d, 0xf3, 0x02, 0x87, 0xfe, 0x35, 0xae, 0x33, 0xf8, 0x57, 0x27, 0x80, 0x8f, 0x58, 0xa8,
- 0x62, 0x65, 0x41, 0x25, 0x8b, 0x58, 0xa2, 0xa6, 0x4d, 0xfc, 0xc0, 0xb8, 0x31, 0x71, 0x11, 0x11,
- 0x4b, 0xb2, 0x88, 0x28, 0x3f, 0xd9, 0x45, 0xef, 0xfa, 0xde, 0xee, 0x28, 0x30, 0x6e, 0x4e, 0xdc,
- 0x45, 0x9c, 0x21, 0xd9, 0x45, 0x3c, 0x17, 0x5d, 0x86, 0xd6, 0xc6, 0xd0, 0x1b, 0x3c, 0xa6, 0xc2,
- 0xac, 0x30, 0x48, 0x23, 0x01, 0xb9, 0x48, 0x3f, 0x0b, 0xf1, 0x49, 0x5a, 0xaa, 0xac, 0xec, 0xf7,
- 0x32, 0x19, 0x92, 0x90, 0x88, 0xa1, 0xf1, 0xf9, 0x4c, 0x56, 0x4e, 0x42, 0x95, 0x55, 0xe1, 0x40,
- 0xcb, 0x30, 0xb3, 0xe9, 0x0c, 0x49, 0xf0, 0x70, 0x34, 0xf4, 0x2c, 0x3e, 0x4e, 0xce, 0x5c, 0x38,
- 0x91, 0x09, 0x70, 0x2b, 0xa6, 0xa3, 0x28, 0x0a, 0x1b, 0xba, 0x0e, 0xed, 0x1d, 0xcb, 0x7f, 0x1c,
- 0xf4, 0xdd, 0x4d, 0xcf, 0xa8, 0x67, 0x8e, 0x70, 0x1c, 0xe3, 0x5e, 0x44, 0xd5, 0x2b, 0xe1, 0x98,
- 0x85, 0x8e, 0x93, 0xac, 0x52, 0xeb, 0x24, 0xbc, 0xe5, 0x90, 0xa1, 0x1d, 0x18, 0x0d, 0x06, 0xf2,
- 0x62, 0x26, 0xc8, 0x3a, 0x09, 0xbb, 0x9c, 0x8c, 0x8e, 0x93, 0x3a, 0x23, 0x7a, 0x0f, 0x0e, 0x47,
- 0x39, 0x4b, 0xdb, 0xce, 0xd0, 0xf6, 0x89, 0xdb, 0xb7, 0x03, 0xa3, 0x99, 0x39, 0x04, 0xc5, 0x78,
- 0x0a, 0x2d, 0x1d, 0x26, 0x33, 0x20, 0xa8, 0x67, 0x8c, 0xb2, 0x55, 0x93, 0x34, 0x5a, 0x99, 0x9e,
- 0x31, 0x86, 0x56, 0x89, 0xa9, 0x76, 0x65, 0x81, 0x20, 0x1b, 0x9e, 0x8d, 0xf2, 0x17, 0xad, 0xc1,
- 0xe3, 0x2d, 0xdf, 0xdb, 0x75, 0xed, 0x25, 0x6f, 0xe8, 0xf9, 0x46, 0x3b, 0x73, 0x70, 0x8b, 0xf1,
- 0x13, 0xf4, 0xbd, 0x12, 0xce, 0x83, 0x42, 0x4b, 0x30, 0x1b, 0x7d, 0x7a, 0x40, 0x9e, 0x86, 0x06,
- 0x64, 0x8e, 0xf3, 0x31, 0x34, 0x25, 0xa2, 0x0e, 0x52, 0x65, 0x52, 0x41, 0xa8, 0x4a, 0x18, 0x33,
- 0x05, 0x20, 0x94, 0x48, 0x05, 0xa1, 0x69, 0x15, 0x84, 0x0e, 0xc1, 0xc6, 0x81, 0x02, 0x10, 0x4a,
- 0xa4, 0x82, 0xd0, 0x34, 0x1d, 0xaa, 0x65, 0x4b, 0x3d, 0xef, 0x31, 0xd5, 0x27, 0x63, 0x2e, 0x73,
- 0xa8, 0x56, 0x7a, 0x4b, 0x10, 0xd2, 0xa1, 0x3a, 0xc9, 0x4c, 0x67, 0x42, 0x51, 0xde, 0xc2, 0xd0,
- 0xd9, 0x72, 0x8d, 0x83, 0x63, 0x74, 0x99, 0xa2, 0x31, 0x2a, 0x3a, 0x13, 0xd2, 0xd8, 0xd0, 0x4d,
- 0x61, 0x96, 0xeb, 0x24, 0x5c, 0x76, 0xf6, 0x8c, 0x43, 0x99, 0xc3, 0x50, 0x8c, 0xb2, 0xec, 0xec,
- 0x49, 0xbb, 0xe4, 0x2c, 0x6a, 0xd3, 0xa2, 0x41, 0xce, 0x78, 0xa6, 0xa0, 0x69, 0x11, 0xa1, 0xda,
- 0xb4, 0x28, 0x4f, 0x6d, 0xda, 0x5d, 0x2b, 0x24, 0x4f, 0x8d, 0xe7, 0x0a, 0x9a, 0xc6, 0xa8, 0xd4,
- 0xa6, 0xb1, 0x0c, 0x3a, 0xba, 0x45, 0x19, 0x8f, 0x88, 0x1f, 0x3a, 0x03, 0x6b, 0xc8, 0xbb, 0xea,
- 0x54, 0xe6, 0x18, 0x14, 0xe3, 0x69, 0xd4, 0x74, 0x74, 0xcb, 0x84, 0x51, 0x1b, 0xfe, 0xc0, 0xda,
- 0x18, 0x12, 0xec, 0x3d, 0x31, 0x4e, 0x17, 0x34, 0x3c, 0x22, 0x54, 0x1b, 0x1e, 0xe5, 0xa9, 0xbe,
- 0xe5, 0x93, 0x8e, 0xbd, 0x45, 0x42, 0xe3, 0x6c, 0x81, 0x6f, 0xe1, 0x64, 0xaa, 0x6f, 0xe1, 0x39,
- 0xd2, 0x03, 0x2c, 0x5b, 0xa1, 0xb5, 0xe7, 0x90, 0x27, 0x8f, 0x1c, 0xf2, 0x84, 0x0e, 0xec, 0x87,
- 0xc7, 0x78, 0x80, 0x88, 0xb6, 0x2b, 0x88, 0xa5, 0x07, 0x48, 0x80, 0x48, 0x0f, 0xa0, 0xe6, 0x0b,
- 0xb7, 0x7e, 0x64, 0x8c, 0x07, 0xd0, 0xf0, 0xa5, 0x8f, 0xcf, 0x83, 0x42, 0x16, 0x1c, 0x4d, 0x7d,
- 0xba, 0xef, 0xdb, 0xc4, 0x37, 0x5e, 0x60, 0x85, 0xbc, 0x5c, 0x5c, 0x08, 0x23, 0xef, 0x95, 0x70,
- 0x0e, 0x50, 0xaa, 0x88, 0x75, 0x6f, 0xd7, 0x1f, 0x10, 0xda, 0x4f, 0x27, 0x27, 0x29, 0x42, 0x92,
- 0xa7, 0x8a, 0x90, 0x5f, 0xd0, 0x1e, 0xbc, 0x20, 0xbf, 0xd0, 0x82, 0xd9, 0x28, 0xca, 0x4a, 0x17,
- 0x2b, 0x98, 0x33, 0xac, 0xa4, 0xee, 0xf8, 0x92, 0x92, 0x5c, 0xbd, 0x12, 0x1e, 0x0f, 0x8b, 0xf6,
- 0xe1, 0xb8, 0x46, 0xc0, 0xc7, 0x79, 0xb5, 0xe0, 0x97, 0x59, 0xc1, 0xe7, 0xc7, 0x17, 0x9c, 0x62,
- 0xeb, 0x95, 0x70, 0x01, 0x30, 0x1a, 0xc1, 0xf3, 0x5a, 0x67, 0x44, 0x86, 0x2d, 0x54, 0xe4, 0x4b,
- 0xac, 0xdc, 0x73, 0xe3, 0xcb, 0xd5, 0x79, 0x7a, 0x25, 0x3c, 0x0e, 0x92, 0xae, 0xb8, 0x32, 0x3f,
- 0x53, 0x49, 0x7e, 0x31, 0x73, 0xda, 0x93, 0x53, 0x1c, 0x97, 0x65, 0x2e, 0x58, 0xa6, 0xe6, 0x8b,
- 0xee, 0xfc, 0xf2, 0xa4, 0x9a, 0x2f, 0xfb, 0x31, 0x0f, 0x4a, 0x93, 0x1d, 0xfd, 0xf4, 0xc0, 0xf2,
- 0xb7, 0x48, 0xc8, 0x3b, 0xba, 0x6f, 0xd3, 0x46, 0x7d, 0x65, 0x12, 0xd9, 0xa5, 0xd8, 0x34, 0xd9,
- 0x65, 0x02, 0xa3, 0x00, 0x8e, 0x69, 0x14, 0xfd, 0x60, 0xc9, 0x1b, 0x0e, 0xc9, 0x20, 0xea, 0xcd,
- 0xaf, 0xb2, 0x82, 0x5f, 0x1b, 0x5f, 0x70, 0x82, 0xa9, 0x57, 0xc2, 0x63, 0x41, 0x53, 0xed, 0xbd,
- 0x3f, 0xb4, 0x13, 0x3a, 0x63, 0x4c, 0xa4, 0xab, 0x49, 0xb6, 0x54, 0x7b, 0x53, 0x14, 0x29, 0x5d,
- 0x55, 0x28, 0x68, 0x73, 0x9f, 0x9d, 0x44, 0x57, 0x75, 0x9e, 0x94, 0xae, 0xea, 0x9f, 0xe9, 0xe8,
- 0xb6, 0x1b, 0x10, 0x9f, 0x61, 0xdc, 0xf6, 0x1c, 0xd7, 0x78, 0x31, 0x73, 0x74, 0x7b, 0x18, 0x10,
- 0x5f, 0x14, 0x44, 0xa9, 0xe8, 0xe8, 0xa6, 0xb1, 0x69, 0x38, 0x77, 0xc9, 0x66, 0x68, 0x9c, 0x28,
- 0xc2, 0xa1, 0x54, 0x1a, 0x0e, 0xcd, 0xa0, 0x23, 0x85, 0xcc, 0x58, 0x27, 0x54, 0x2a, 0xd8, 0x72,
- 0xb7, 0x88, 0xf1, 0x52, 0xe6, 0x48, 0xa1, 0xc0, 0x29, 0xc4, 0x74, 0xa4, 0xc8, 0x02, 0xa1, 0x2b,
- 0x7f, 0x99, 0x4f, 0x67, 0x64, 0x1c, 0x7a, 0x3e, 0x73, 0xe5, 0xaf, 0x40, 0x4b, 0x52, 0xba, 0x06,
- 0x49, 0x03, 0xa0, 0x8f, 0x41, 0x6d, 0xe4, 0xb8, 0x5b, 0x86, 0xcd, 0x80, 0x0e, 0x27, 0x80, 0xd6,
- 0x1c, 0x77, 0xab, 0x57, 0xc2, 0x8c, 0x04, 0xbd, 0x03, 0x30, 0xf2, 0xbd, 0x01, 0x09, 0x82, 0x55,
- 0xf2, 0xc4, 0x20, 0x8c, 0xc1, 0x4c, 0x32, 0x70, 0x82, 0xee, 0x2a, 0xa1, 0xe3, 0xb2, 0x42, 0x8f,
- 0x56, 0xe0, 0x80, 0x48, 0x09, 0x2b, 0xdf, 0xcc, 0x9c, 0xfc, 0x45, 0x00, 0x71, 0xb8, 0x49, 0xe3,
- 0xa2, 0x6b, 0x1f, 0x91, 0xb1, 0xec, 0xb9, 0xc4, 0xd8, 0xca, 0x5c, 0xfb, 0x44, 0x20, 0x94, 0x84,
- 0xce, 0xb1, 0x14, 0x0e, 0xb4, 0x08, 0xb3, 0xe1, 0xb6, 0x4f, 0x2c, 0x7b, 0x3d, 0xb4, 0xc2, 0xdd,
- 0xc0, 0x70, 0x33, 0xa7, 0x69, 0xfc, 0x63, 0xf7, 0x01, 0xa3, 0xa4, 0x53, 0x50, 0x95, 0x07, 0xad,
- 0x42, 0x87, 0x2e, 0x84, 0xee, 0x3a, 0x3b, 0x4e, 0x88, 0x89, 0x35, 0xd8, 0x26, 0xb6, 0xe1, 0x65,
- 0x2e, 0xa2, 0xe8, 0xb4, 0xb7, 0xab, 0xd2, 0xd1, 0xd9, 0x4a, 0x92, 0x17, 0xf5, 0x60, 0x8e, 0xe6,
- 0xad, 0x8f, 0xac, 0x01, 0x79, 0x18, 0x58, 0x5b, 0xc4, 0x18, 0x65, 0x6a, 0x20, 0x43, 0x8b, 0xa9,
- 0xe8, 0x64, 0x45, 0xe7, 0x8b, 0x90, 0xee, 0x7a, 0x03, 0x6b, 0xc8, 0x91, 0x3e, 0x9f, 0x8f, 0x14,
- 0x53, 0x45, 0x48, 0x71, 0x8e, 0xd6, 0x46, 0xde, 0xf7, 0xb6, 0xb1, 0x57, 0xd0, 0x46, 0x41, 0xa7,
- 0xb5, 0x51, 0xe4, 0x51, 0x3c, 0xd7, 0x0b, 0x9d, 0x4d, 0x67, 0x20, 0xec, 0xd7, 0xb5, 0x0d, 0x3f,
- 0x13, 0x6f, 0x55, 0x21, 0xeb, 0xae, 0xf3, 0xc8, 0x52, 0x8a, 0x17, 0x3d, 0x00, 0xa4, 0xe6, 0x09,
- 0xa5, 0x0a, 0x18, 0xe2, 0xfc, 0x38, 0x44, 0xa9, 0x59, 0x19, 0xfc, 0xb4, 0x96, 0x23, 0x6b, 0x9f,
- 0x2e, 0x6f, 0x17, 0x7d, 0xcf, 0xb2, 0x07, 0x56, 0x10, 0x1a, 0x61, 0x66, 0x2d, 0xd7, 0x38, 0x59,
- 0x57, 0xd2, 0xd1, 0x5a, 0x26, 0x79, 0x29, 0xde, 0x0e, 0xd9, 0xd9, 0x20, 0x7e, 0xb0, 0xed, 0x8c,
- 0x44, 0x1d, 0x77, 0x33, 0xf1, 0xee, 0x49, 0xb2, 0xb8, 0x86, 0x29, 0x5e, 0x3a, 0x11, 0x67, 0x71,
- 0xea, 0xf5, 0x7d, 0x77, 0xc0, 0x95, 0x51, 0x80, 0x3e, 0xc9, 0x9c, 0x88, 0x33, 0xcd, 0xe8, 0xc6,
- 0xc4, 0x31, 0x74, 0x36, 0x0c, 0xba, 0x03, 0x07, 0x47, 0x17, 0x46, 0x1a, 0xf2, 0xd3, 0xcc, 0x89,
- 0xf3, 0xda, 0x85, 0xb5, 0x24, 0x64, 0x92, 0x93, 0x9a, 0x9a, 0xb3, 0x33, 0xf2, 0xfc, 0xf0, 0x96,
- 0xe3, 0x3a, 0xc1, 0xb6, 0xb1, 0x9f, 0x69, 0x6a, 0x7d, 0x46, 0xd2, 0xe5, 0x34, 0xd4, 0xd4, 0x54,
- 0x1e, 0x74, 0x09, 0x9a, 0x83, 0x6d, 0x2b, 0x5c, 0xb0, 0x6d, 0xe3, 0x6b, 0x3c, 0xe0, 0xfb, 0x6c,
- 0x82, 0x7f, 0x69, 0xdb, 0x0a, 0x45, 0x88, 0x24, 0x22, 0x45, 0xd7, 0x00, 0xe8, 0x4f, 0xd1, 0x82,
- 0xff, 0x5d, 0xce, 0xf4, 0x55, 0x8c, 0x51, 0xd6, 0x5e, 0x61, 0x40, 0xef, 0xc1, 0xe1, 0x38, 0x45,
- 0x8d, 0x94, 0xaf, 0xf9, 0xbf, 0x5e, 0xce, 0xf4, 0xb6, 0x0a, 0x8e, 0xa4, 0xed, 0x95, 0x70, 0x16,
- 0x04, 0x1d, 0x22, 0xb4, 0xec, 0xc8, 0x0b, 0xfd, 0x9f, 0xec, 0x68, 0xb9, 0x0e, 0x2d, 0x88, 0xe9,
- 0x10, 0x91, 0x05, 0x12, 0xb5, 0x5a, 0x0c, 0xf4, 0xdf, 0x18, 0xd3, 0x6a, 0x39, 0xa8, 0x2b, 0x0c,
- 0xe8, 0x2e, 0x1c, 0xa4, 0x29, 0x0a, 0x46, 0x44, 0xcf, 0x7d, 0xab, 0x9c, 0x29, 0x7c, 0xa5, 0x5a,
- 0x8c, 0x9a, 0x0a, 0x3f, 0xc1, 0x8a, 0xae, 0x42, 0xfb, 0x31, 0xd9, 0x17, 0x38, 0xdf, 0xe6, 0x38,
- 0xcf, 0x25, 0x70, 0xee, 0x90, 0xfd, 0x58, 0x00, 0x31, 0xf9, 0x62, 0x13, 0xea, 0x7b, 0xd6, 0x70,
- 0x97, 0x98, 0x3f, 0xa8, 0x43, 0x8d, 0x16, 0x66, 0xfe, 0x7d, 0x19, 0xaa, 0x54, 0xb0, 0x73, 0x50,
- 0x71, 0x6c, 0x83, 0xef, 0xd8, 0x54, 0x1c, 0x1b, 0x19, 0xd0, 0xf4, 0xe8, 0x7c, 0x59, 0xee, 0x1f,
- 0x45, 0x49, 0x34, 0x0f, 0xb3, 0xd6, 0x66, 0x48, 0xfc, 0xfb, 0xe2, 0x73, 0x83, 0x7d, 0xd6, 0xf2,
- 0xa8, 0x72, 0x89, 0xbd, 0x28, 0x11, 0x44, 0x33, 0x13, 0xfb, 0x4b, 0xb4, 0xec, 0x68, 0xdb, 0x2a,
- 0x22, 0x45, 0x47, 0xa1, 0x11, 0xec, 0x6e, 0xf4, 0xed, 0xc0, 0xa8, 0x9d, 0xa8, 0x9e, 0x6d, 0x63,
- 0x91, 0x42, 0x6f, 0xc3, 0xac, 0x4d, 0x46, 0xc4, 0xb5, 0x89, 0x3b, 0x70, 0x48, 0x60, 0xd4, 0xd9,
- 0x2e, 0xd8, 0xb3, 0x5d, 0xbe, 0x83, 0xd6, 0x8d, 0x76, 0xd0, 0xba, 0xeb, 0x6c, 0x07, 0x0d, 0x6b,
- 0xc4, 0xe6, 0x67, 0xa1, 0x21, 0xc4, 0x90, 0x6c, 0x62, 0x5c, 0x5c, 0x45, 0x2b, 0xae, 0x0b, 0xf5,
- 0x80, 0xf6, 0xb7, 0xa8, 0xba, 0x91, 0x51, 0x75, 0x26, 0x0f, 0xcc, 0xc9, 0xcc, 0x4d, 0x68, 0x08,
- 0xd1, 0x24, 0x4b, 0x50, 0xba, 0xa1, 0xf2, 0xd3, 0x74, 0x43, 0x55, 0xad, 0x97, 0xf9, 0x65, 0x38,
- 0x98, 0xd4, 0xfa, 0x64, 0x81, 0x8b, 0xd0, 0xf6, 0xa5, 0x55, 0x55, 0x12, 0x9a, 0x9f, 0x2a, 0xb2,
- 0x2b, 0x81, 0x70, 0xcc, 0x96, 0x5b, 0xfc, 0x03, 0xe8, 0xa4, 0x0c, 0xa3, 0x03, 0x55, 0xc7, 0xe6,
- 0xdb, 0x92, 0x6d, 0x4c, 0x7f, 0x52, 0x6e, 0x27, 0xa0, 0x14, 0xac, 0xf8, 0x16, 0x16, 0xa9, 0x5c,
- 0xd4, 0x87, 0x30, 0xa3, 0xe8, 0x7b, 0xdc, 0xf7, 0xe5, 0x89, 0xfa, 0x3e, 0x4f, 0x86, 0xe6, 0x77,
- 0x1a, 0xd0, 0x14, 0x1b, 0x56, 0xe6, 0x2a, 0xd4, 0xd8, 0xf6, 0xe1, 0x11, 0xa8, 0x3b, 0xae, 0x4d,
- 0x9e, 0x32, 0xec, 0x3a, 0xe6, 0x09, 0xf4, 0x3a, 0x34, 0xc5, 0xe6, 0x95, 0xe8, 0xb0, 0xbc, 0xad,
- 0xd0, 0x88, 0xcc, 0x7c, 0x1f, 0x9a, 0xd1, 0x36, 0xe2, 0x31, 0x68, 0x8f, 0x7c, 0x8f, 0x0e, 0xc9,
- 0xfd, 0x48, 0x0c, 0x71, 0x06, 0x7a, 0x03, 0x9a, 0xb6, 0xd8, 0xa8, 0xac, 0x08, 0x0f, 0x9b, 0xa3,
- 0xb2, 0x11, 0x9d, 0xf9, 0xb5, 0x32, 0x34, 0xf8, 0x6e, 0xa2, 0xb9, 0x27, 0xd5, 0xea, 0x4d, 0x68,
- 0x0c, 0x58, 0x9e, 0x91, 0xdc, 0x49, 0xd4, 0x6a, 0x28, 0xb6, 0x27, 0xb1, 0x20, 0xa6, 0x6c, 0x01,
- 0x77, 0x82, 0x95, 0xb1, 0x6c, 0x5c, 0x96, 0x58, 0x10, 0xff, 0xa7, 0x95, 0xfb, 0x47, 0x15, 0x38,
- 0xa0, 0x6f, 0x52, 0x1e, 0x83, 0xf6, 0x40, 0x6e, 0x7b, 0x8a, 0xde, 0x95, 0x19, 0xe8, 0x3e, 0xc0,
- 0x60, 0xe8, 0x10, 0x37, 0x64, 0x61, 0xf2, 0x4a, 0xe6, 0xea, 0x2b, 0x73, 0xcf, 0xb2, 0xbb, 0x24,
- 0xd9, 0xb0, 0x02, 0x81, 0x6e, 0x40, 0x3d, 0x18, 0x78, 0x23, 0x6e, 0xf7, 0x73, 0xca, 0x72, 0x5c,
- 0xaf, 0xf6, 0xc2, 0x6e, 0xb8, 0xcd, 0x67, 0x78, 0x0b, 0x23, 0x67, 0x9d, 0x32, 0x60, 0xce, 0x67,
- 0x7e, 0x05, 0x20, 0x86, 0x46, 0x27, 0xe4, 0x84, 0x7a, 0xd5, 0xda, 0x89, 0xea, 0xaf, 0x66, 0x29,
- 0x14, 0x6b, 0x56, 0xb8, 0x2d, 0xfc, 0xac, 0x9a, 0x85, 0xce, 0xc1, 0xa1, 0xc0, 0xd9, 0x72, 0xad,
- 0x70, 0xd7, 0x27, 0x8f, 0x88, 0xef, 0x6c, 0x3a, 0xc4, 0x66, 0xd5, 0x6b, 0xe1, 0xf4, 0x07, 0xf3,
- 0x0d, 0x38, 0x94, 0xde, 0x80, 0x1d, 0xdb, 0x89, 0xe6, 0xff, 0x6d, 0x43, 0x83, 0xaf, 0xad, 0xcd,
- 0x7f, 0xad, 0x48, 0xbd, 0x36, 0xff, 0xa4, 0x0c, 0x75, 0xbe, 0xc7, 0x98, 0xf4, 0x30, 0xb7, 0x54,
- 0x9d, 0xae, 0x66, 0x2c, 0x3c, 0xb3, 0xf6, 0x5c, 0xe9, 0x78, 0xf4, 0x88, 0x8e, 0x3b, 0x52, 0xd1,
- 0x73, 0xfd, 0xc1, 0x6d, 0x68, 0x45, 0xc4, 0xd4, 0xbb, 0x3c, 0x26, 0xfb, 0xa2, 0x70, 0xfa, 0x13,
- 0x9d, 0x13, 0xe3, 0x97, 0x34, 0xd5, 0xa4, 0x3d, 0xf1, 0x52, 0xc4, 0x20, 0xf7, 0x59, 0xa8, 0xd2,
- 0xd5, 0x6c, 0xb2, 0x09, 0xd3, 0x9b, 0x65, 0x6e, 0x6d, 0x97, 0xa0, 0xce, 0xf7, 0x79, 0x93, 0x65,
- 0x20, 0xa8, 0x3d, 0x26, 0xfb, 0x91, 0x57, 0x62, 0xbf, 0x73, 0x41, 0xfe, 0xb8, 0x0a, 0xb3, 0xea,
- 0xde, 0x96, 0xb9, 0x92, 0x3b, 0x24, 0xb3, 0x41, 0x36, 0x1e, 0x92, 0x45, 0x92, 0x7a, 0x36, 0x86,
- 0xc5, 0x54, 0xa3, 0x8d, 0x79, 0xc2, 0xec, 0x42, 0x43, 0x6c, 0x19, 0x26, 0x91, 0x24, 0x7d, 0x45,
- 0xa5, 0xbf, 0x0d, 0x2d, 0xb9, 0x03, 0xf8, 0x61, 0xcb, 0xf6, 0xa1, 0x25, 0xb7, 0xfa, 0x8e, 0x40,
- 0x3d, 0xf4, 0x42, 0x6b, 0xc8, 0xe0, 0xaa, 0x98, 0x27, 0xa8, 0x5e, 0xba, 0xe4, 0x69, 0xb8, 0x24,
- 0x3d, 0x6f, 0x15, 0xc7, 0x19, 0xdc, 0xb1, 0x92, 0x3d, 0xfe, 0xb5, 0xca, 0xbf, 0xca, 0x8c, 0xb8,
- 0xcc, 0x9a, 0x5a, 0xe6, 0x3e, 0x34, 0xc4, 0xfe, 0x9f, 0xfc, 0x5e, 0x56, 0xbe, 0xa3, 0x05, 0xa8,
- 0x6f, 0xd1, 0xef, 0x42, 0xea, 0xaf, 0x26, 0xec, 0x9b, 0x2f, 0xeb, 0x97, 0x3c, 0x37, 0xa4, 0x6a,
- 0xac, 0x87, 0x35, 0x31, 0xe7, 0xa4, 0x22, 0xf4, 0xf9, 0x66, 0x2e, 0x37, 0x42, 0x91, 0x32, 0xbf,
- 0x53, 0x86, 0xb6, 0xdc, 0x3d, 0x37, 0xdf, 0xcf, 0x33, 0x9e, 0x05, 0x38, 0xe0, 0x0b, 0x2a, 0x6a,
- 0xa8, 0x91, 0x09, 0x3d, 0x9f, 0xa8, 0x09, 0x56, 0x68, 0xb0, 0xce, 0x61, 0xbe, 0x93, 0x2b, 0xd4,
- 0x79, 0x98, 0x8d, 0x48, 0xef, 0xc4, 0xaa, 0xa7, 0xe5, 0x99, 0xa6, 0xe4, 0x4e, 0x8d, 0xdc, 0xe6,
- 0x26, 0xcc, 0xaa, 0x7b, 0x68, 0xe6, 0xa3, 0x6c, 0xeb, 0xb9, 0x41, 0x8b, 0x51, 0xf6, 0xeb, 0x2a,
- 0x89, 0x40, 0x41, 0xd4, 0x84, 0x98, 0x04, 0x6b, 0x0c, 0xe6, 0xb3, 0x50, 0xe7, 0x3b, 0xfb, 0x09,
- 0x64, 0xf3, 0xd7, 0x06, 0x50, 0x67, 0x42, 0x30, 0x2f, 0x72, 0x03, 0x38, 0x07, 0x0d, 0x16, 0xa5,
- 0x8a, 0xce, 0x3d, 0x1d, 0xc9, 0x92, 0x18, 0x16, 0x34, 0xe6, 0x12, 0xcc, 0x28, 0x7b, 0xaa, 0x54,
- 0x63, 0xd9, 0x07, 0xa9, 0x05, 0x51, 0x12, 0x99, 0xd0, 0xa2, 0x03, 0xb4, 0xf0, 0xb9, 0xb4, 0xfd,
- 0x32, 0x6d, 0x9e, 0x92, 0xb3, 0x45, 0x53, 0xec, 0x21, 0xf7, 0x65, 0x2f, 0xc9, 0xb4, 0xf9, 0x19,
- 0x68, 0xcb, 0xad, 0x57, 0x74, 0x1f, 0x66, 0xc5, 0xd6, 0x2b, 0x8f, 0x1c, 0x51, 0xe2, 0xb9, 0x02,
- 0xed, 0x7a, 0x40, 0x9e, 0x86, 0x6c, 0xf7, 0xb6, 0xfb, 0x60, 0x7f, 0x44, 0xb0, 0x06, 0x60, 0x7e,
- 0xeb, 0x2c, 0xeb, 0x79, 0x73, 0x04, 0x2d, 0xb9, 0xdf, 0x94, 0x94, 0xc2, 0x15, 0xee, 0x1a, 0x2b,
- 0x85, 0x9b, 0xa5, 0x9c, 0x9f, 0x3a, 0x60, 0xe6, 0x41, 0xcd, 0xe7, 0xa1, 0x7a, 0x87, 0xec, 0x53,
- 0x0b, 0xe1, 0x8e, 0x54, 0x58, 0x08, 0x77, 0x98, 0x7d, 0x68, 0x88, 0x7d, 0xdf, 0x64, 0x79, 0xe7,
- 0xa1, 0xb1, 0xc9, 0xb7, 0x92, 0x0b, 0x5c, 0xa6, 0x20, 0x33, 0x6f, 0xc0, 0x8c, 0xba, 0xdb, 0x9b,
- 0xc4, 0x3b, 0x01, 0x33, 0x03, 0x65, 0x3f, 0x99, 0x8b, 0x41, 0xcd, 0x32, 0x89, 0xae, 0x8e, 0x29,
- 0x84, 0x95, 0x4c, 0x3d, 0x7c, 0x29, 0xb3, 0xdb, 0xc7, 0x68, 0xe3, 0x1d, 0x38, 0x98, 0xdc, 0xd6,
- 0x4d, 0x96, 0x74, 0x16, 0x0e, 0x6e, 0x24, 0x36, 0x91, 0xb9, 0x0f, 0x4c, 0x66, 0x9b, 0x7d, 0xa8,
- 0xf3, 0x6d, 0xb7, 0x24, 0xc4, 0xeb, 0x50, 0xb7, 0xd8, 0xb6, 0x5e, 0x85, 0x4d, 0x2d, 0xcc, 0xcc,
- 0x5a, 0x32, 0x56, 0xcc, 0x09, 0x4d, 0x07, 0x0e, 0xe8, 0x3b, 0x79, 0x49, 0xc8, 0x1e, 0x1c, 0xd8,
- 0xd3, 0x76, 0x0c, 0x39, 0xf4, 0x7c, 0x26, 0xb4, 0x06, 0x85, 0x75, 0x46, 0xf3, 0xeb, 0x0d, 0xa8,
- 0xb1, 0xad, 0xe8, 0x64, 0x11, 0x97, 0xa1, 0x16, 0x92, 0xa7, 0xd1, 0xbc, 0x78, 0x7e, 0xec, 0xbe,
- 0x36, 0x8f, 0x87, 0x32, 0x7a, 0xf4, 0x71, 0x3a, 0x89, 0xdf, 0x1f, 0x46, 0x0b, 0xa8, 0x93, 0xe3,
- 0x19, 0xd7, 0x29, 0x29, 0xe6, 0x1c, 0x94, 0x95, 0xd9, 0x82, 0x38, 0x3a, 0x51, 0xc0, 0xca, 0x8c,
- 0x10, 0x73, 0x0e, 0x74, 0x03, 0x9a, 0x83, 0x6d, 0x32, 0x78, 0x4c, 0x6c, 0x71, 0x66, 0xe2, 0xf4,
- 0x78, 0xe6, 0x25, 0x4e, 0x8c, 0x23, 0x2e, 0x5a, 0xf6, 0x80, 0x49, 0xb7, 0x31, 0x49, 0xd9, 0x4c,
- 0xe2, 0x98, 0x73, 0xa0, 0x15, 0x68, 0x3b, 0x03, 0xcf, 0x5d, 0xd9, 0xf1, 0x3e, 0xe7, 0x88, 0xc3,
- 0x11, 0x2f, 0x8f, 0x67, 0xef, 0x47, 0xe4, 0x38, 0xe6, 0x8c, 0x60, 0xfa, 0x3b, 0x74, 0xc5, 0xd8,
- 0x9a, 0x14, 0x86, 0x91, 0xe3, 0x98, 0xd3, 0x3c, 0x26, 0xe4, 0x99, 0x6d, 0xe4, 0xb7, 0xa0, 0xce,
- 0xba, 0x1c, 0x5d, 0x53, 0x3f, 0xcf, 0x29, 0x25, 0xe5, 0x7a, 0x2c, 0x21, 0x2a, 0x89, 0xc3, 0xfa,
- 0x5f, 0xc7, 0x99, 0x99, 0x04, 0x47, 0xc8, 0x8d, 0xe3, 0xbc, 0x08, 0x4d, 0x21, 0x0a, 0xbd, 0xc2,
- 0xad, 0x88, 0xe0, 0x05, 0xa8, 0x73, 0xc3, 0xcc, 0x6e, 0xcf, 0x4b, 0xd0, 0x96, 0x9d, 0x39, 0x9e,
- 0x84, 0xf5, 0x4e, 0x0e, 0xc9, 0xb7, 0x2b, 0x50, 0xe7, 0x5b, 0xf2, 0x69, 0x57, 0xab, 0x5a, 0xc1,
- 0xc9, 0xf1, 0x3b, 0xfc, 0xaa, 0x19, 0xdc, 0x62, 0x8b, 0x43, 0x3a, 0x97, 0x97, 0xc7, 0x6c, 0xcf,
- 0x16, 0x70, 0xaf, 0x45, 0xf4, 0x38, 0x66, 0x2d, 0x10, 0xe7, 0x7d, 0x68, 0x4b, 0x2e, 0xb4, 0xa8,
- 0x8b, 0xf4, 0xdc, 0x58, 0x51, 0x24, 0x8b, 0x14, 0x80, 0xbf, 0x5c, 0x86, 0xea, 0xb2, 0xb3, 0x97,
- 0xea, 0x87, 0xb7, 0x22, 0xab, 0x2e, 0x72, 0x07, 0xcb, 0xce, 0x9e, 0x66, 0xd4, 0xe6, 0x4a, 0xa4,
- 0x71, 0xef, 0xe8, 0xd5, 0x3b, 0x33, 0x7e, 0x06, 0x16, 0xc3, 0xf0, 0x8a, 0xfd, 0x42, 0x13, 0x6a,
- 0xec, 0xb4, 0x4b, 0x96, 0x9f, 0xda, 0x1f, 0x15, 0x57, 0x8c, 0xc5, 0xd3, 0xd9, 0x80, 0xcb, 0xe8,
- 0xb9, 0x9f, 0x8a, 0x03, 0x3d, 0x27, 0xc7, 0x33, 0x6a, 0x71, 0x87, 0xcb, 0x50, 0xdb, 0x71, 0x76,
- 0x88, 0x70, 0x53, 0x05, 0x45, 0xde, 0x73, 0x76, 0x08, 0x66, 0xf4, 0x94, 0x6f, 0xdb, 0x0a, 0xb6,
- 0x85, 0x87, 0x2a, 0xe0, 0xeb, 0x59, 0xc1, 0x36, 0x66, 0xf4, 0x94, 0xcf, 0xa5, 0xab, 0xc8, 0xc6,
- 0x24, 0x7c, 0x74, 0x71, 0x89, 0x19, 0x3d, 0xe5, 0x0b, 0x9c, 0x2f, 0x10, 0xe1, 0x93, 0x0a, 0xf8,
- 0xd6, 0x9d, 0x2f, 0x10, 0xcc, 0xe8, 0x63, 0x17, 0xde, 0x9a, 0xac, 0x6b, 0x14, 0x17, 0xfe, 0x00,
- 0xe6, 0x42, 0x6d, 0xcf, 0x56, 0x1c, 0xb9, 0x3a, 0x57, 0x20, 0x17, 0x8d, 0x07, 0x27, 0x30, 0xa8,
- 0x11, 0xb0, 0x35, 0x73, 0xb6, 0x11, 0xbc, 0x00, 0xf5, 0x4f, 0x3a, 0x76, 0xb8, 0xad, 0x7f, 0xae,
- 0x6b, 0x2e, 0x8f, 0x8a, 0x6d, 0x2a, 0x97, 0xa7, 0x4a, 0x9d, 0xe3, 0x2c, 0x43, 0x8d, 0xaa, 0xcf,
- 0x74, 0x7a, 0x1c, 0x6b, 0xdd, 0x87, 0x72, 0xc0, 0x6a, 0x47, 0x73, 0x9c, 0x63, 0x50, 0xa3, 0x1a,
- 0x92, 0xd3, 0x25, 0xc7, 0xa0, 0x46, 0xf5, 0x2e, 0xff, 0x2b, 0x95, 0xb6, 0xfe, 0xb5, 0x1a, 0x7d,
- 0x3d, 0x03, 0x73, 0xba, 0x38, 0x72, 0x50, 0xfe, 0xb0, 0x09, 0x35, 0x76, 0x74, 0x2c, 0x69, 0x91,
- 0x9f, 0x80, 0x03, 0x5c, 0x7e, 0x8b, 0x62, 0x0a, 0x5e, 0xc9, 0x3c, 0x39, 0xaa, 0x1f, 0x48, 0x13,
- 0x2a, 0x20, 0x58, 0xb0, 0x8e, 0x30, 0xf9, 0xa4, 0x82, 0x41, 0x69, 0x1a, 0xf9, 0x8e, 0x9c, 0xbc,
- 0xd6, 0x0a, 0xce, 0x2d, 0x32, 0x5e, 0x3e, 0x05, 0x8e, 0x66, 0xb2, 0x68, 0x11, 0x5a, 0x74, 0x68,
- 0xa5, 0xdd, 0x25, 0xcc, 0xf6, 0xcc, 0x78, 0xfe, 0xbe, 0xa0, 0xc6, 0x92, 0x8f, 0x0e, 0xec, 0x03,
- 0xcb, 0xb7, 0x59, 0xad, 0x84, 0x0d, 0xbf, 0x3c, 0x1e, 0x64, 0x29, 0x22, 0xc7, 0x31, 0x27, 0xba,
- 0x03, 0x33, 0x36, 0x91, 0x71, 0x02, 0x61, 0xd4, 0x1f, 0x1b, 0x0f, 0xb4, 0x1c, 0x33, 0x60, 0x95,
- 0x9b, 0xd6, 0x29, 0x5a, 0x1b, 0x06, 0x85, 0x93, 0x0d, 0x06, 0x15, 0x9f, 0x0f, 0x8f, 0x39, 0xcd,
- 0xd3, 0x70, 0x40, 0x93, 0xdb, 0x47, 0x3a, 0xeb, 0x50, 0x65, 0xc9, 0x71, 0xae, 0xc8, 0x25, 0xca,
- 0x6b, 0xfa, 0xb4, 0x23, 0x77, 0x45, 0x22, 0x18, 0xef, 0x42, 0x2b, 0x12, 0x0c, 0xba, 0xa9, 0xd7,
- 0xe1, 0x95, 0xe2, 0x3a, 0x48, 0x99, 0x0a, 0xb4, 0x55, 0x68, 0x4b, 0x09, 0xa1, 0x05, 0x1d, 0xee,
- 0xd5, 0x62, 0xb8, 0x58, 0xba, 0x02, 0x0f, 0xc3, 0x8c, 0x22, 0x28, 0xb4, 0xa4, 0x23, 0xbe, 0x56,
- 0x8c, 0xa8, 0x8a, 0x39, 0x9e, 0xf5, 0x48, 0x89, 0xa9, 0x52, 0xa9, 0xc6, 0x52, 0xf9, 0x6e, 0x13,
- 0x5a, 0xf2, 0xb8, 0x66, 0xc6, 0x1a, 0x73, 0xd7, 0x1f, 0x16, 0xae, 0x31, 0x23, 0xfe, 0xee, 0x43,
- 0x7f, 0x88, 0x29, 0x07, 0x15, 0x71, 0xe8, 0x84, 0xd2, 0x54, 0x5f, 0x2e, 0x66, 0x7d, 0x40, 0xc9,
- 0x31, 0xe7, 0x42, 0xf7, 0x75, 0x2d, 0xaf, 0x8d, 0x39, 0xce, 0xa3, 0x81, 0xe4, 0x6a, 0x7a, 0x1f,
- 0xda, 0x0e, 0x9d, 0xfa, 0xf5, 0xe2, 0x91, 0xf7, 0xd5, 0x62, 0xb8, 0x7e, 0xc4, 0x82, 0x63, 0x6e,
- 0x5a, 0xb7, 0x4d, 0x6b, 0x8f, 0xda, 0x35, 0x03, 0x6b, 0x4c, 0x5a, 0xb7, 0x5b, 0x31, 0x13, 0x56,
- 0x11, 0xd0, 0x55, 0x31, 0x77, 0x69, 0x16, 0x78, 0x96, 0xb8, 0xab, 0xe2, 0xf9, 0xcb, 0x7b, 0xa9,
- 0x91, 0x96, 0x9b, 0xf1, 0xeb, 0x13, 0xa0, 0x8c, 0x1d, 0x6d, 0xa9, 0x04, 0xf9, 0xcc, 0xa8, 0x3d,
- 0xa9, 0x04, 0xb5, 0x1d, 0xb1, 0xe7, 0xa1, 0xfa, 0xd0, 0x1f, 0xe6, 0x8f, 0xd5, 0x4c, 0xdc, 0x39,
- 0x9f, 0x4f, 0xea, 0x96, 0x90, 0x3f, 0xa1, 0x97, 0x32, 0xc9, 0xc5, 0x51, 0x3a, 0x3d, 0x87, 0xe8,
- 0x9a, 0x18, 0xd0, 0xdf, 0xd4, 0xed, 0xed, 0xc5, 0x84, 0xbd, 0x51, 0x0b, 0x5b, 0xf3, 0x09, 0x3f,
- 0xb1, 0xa6, 0x8c, 0xe4, 0x93, 0x8e, 0x93, 0xb7, 0xa3, 0xf9, 0xc7, 0x54, 0x9e, 0x22, 0xd9, 0xb7,
- 0x1c, 0xeb, 0x9b, 0x65, 0x68, 0xc9, 0xd3, 0xb8, 0xe9, 0xe8, 0x7c, 0xcb, 0x09, 0x7a, 0xc4, 0xb2,
- 0x89, 0x2f, 0xec, 0xf6, 0x95, 0xc2, 0x63, 0xbe, 0xdd, 0xbe, 0xe0, 0xc0, 0x92, 0xd7, 0x3c, 0x01,
- 0xad, 0x28, 0x37, 0x67, 0x51, 0xf6, 0xa3, 0x0a, 0x34, 0xc4, 0x39, 0xde, 0x64, 0x25, 0xae, 0x43,
- 0x63, 0x68, 0xed, 0x7b, 0xbb, 0xd1, 0x92, 0xe9, 0x4c, 0xc1, 0xd1, 0xe0, 0xee, 0x5d, 0x46, 0x8d,
- 0x05, 0x17, 0x7a, 0x1b, 0xea, 0x43, 0x67, 0xc7, 0x09, 0x85, 0xfb, 0x38, 0x5d, 0xc8, 0xce, 0x4e,
- 0xfc, 0x70, 0x1e, 0x5a, 0x38, 0x3b, 0xbe, 0x17, 0x5d, 0xbe, 0x28, 0x2c, 0xfc, 0x11, 0xa3, 0xc6,
- 0x82, 0xcb, 0xbc, 0x0d, 0x0d, 0x5e, 0x9d, 0xe9, 0x06, 0x09, 0xbd, 0x25, 0xb1, 0xa6, 0xb3, 0xba,
- 0xe5, 0xcc, 0x4a, 0x8f, 0x43, 0x83, 0x17, 0x9e, 0xa3, 0x35, 0x3f, 0x7c, 0x8e, 0xad, 0x77, 0x86,
- 0xe6, 0xdd, 0x78, 0xc3, 0xf1, 0xc3, 0xef, 0x65, 0x98, 0x0f, 0xe0, 0xe0, 0xb2, 0x15, 0x5a, 0x1b,
- 0x56, 0x40, 0x30, 0x19, 0x78, 0xbe, 0x9d, 0x89, 0xea, 0xf3, 0x4f, 0x22, 0x42, 0x9d, 0x8f, 0x2a,
- 0xe8, 0x7e, 0x1e, 0x3a, 0xfc, 0xaf, 0x13, 0x3a, 0xfc, 0xbd, 0x5a, 0x4e, 0x3c, 0x6f, 0x92, 0x48,
- 0x06, 0x55, 0xb8, 0x54, 0x40, 0xef, 0xaa, 0x3e, 0xf7, 0x3e, 0x55, 0xc0, 0xa9, 0x4d, 0xbe, 0xaf,
- 0xea, 0x11, 0xbd, 0x22, 0x5e, 0x2d, 0xa4, 0x77, 0x33, 0x19, 0xd2, 0x3b, 0x53, 0xc0, 0x9d, 0x8a,
- 0xe9, 0x5d, 0xd5, 0x63, 0x7a, 0x45, 0xa5, 0xab, 0x41, 0xbd, 0xff, 0x61, 0x61, 0xb4, 0x5f, 0xc9,
- 0x09, 0xfb, 0x7c, 0x5c, 0x0f, 0xfb, 0x8c, 0xd1, 0x9a, 0x9f, 0x55, 0xdc, 0xe7, 0x57, 0x1b, 0x39,
- 0x71, 0x9f, 0x2b, 0x5a, 0xdc, 0x67, 0x4c, 0xcd, 0x92, 0x81, 0x9f, 0xab, 0x7a, 0xe0, 0xe7, 0x54,
- 0x01, 0xa7, 0x16, 0xf9, 0xb9, 0xa2, 0x45, 0x7e, 0x8a, 0x0a, 0x55, 0x42, 0x3f, 0x57, 0xb4, 0xd0,
- 0x4f, 0x11, 0xa3, 0x12, 0xfb, 0xb9, 0xa2, 0xc5, 0x7e, 0x8a, 0x18, 0x95, 0xe0, 0xcf, 0x15, 0x2d,
- 0xf8, 0x53, 0xc4, 0xa8, 0x44, 0x7f, 0xae, 0xea, 0xd1, 0x9f, 0xe2, 0xfe, 0x51, 0x84, 0xfe, 0xf3,
- 0x40, 0xcd, 0x7f, 0x60, 0xa0, 0xe6, 0xff, 0x57, 0x73, 0x02, 0x30, 0x38, 0x3b, 0x00, 0x73, 0x2e,
- 0x5f, 0x92, 0xc5, 0x11, 0x98, 0xc9, 0x47, 0x81, 0x74, 0x08, 0xe6, 0x5a, 0x22, 0x04, 0x73, 0xba,
- 0x80, 0x59, 0x8f, 0xc1, 0xfc, 0xb7, 0x09, 0x32, 0xfc, 0x4e, 0x63, 0xcc, 0x7a, 0xfa, 0x2d, 0x75,
- 0x3d, 0x3d, 0x66, 0x24, 0x4b, 0x2f, 0xa8, 0xaf, 0xeb, 0x0b, 0xea, 0xb3, 0x13, 0xf0, 0x6a, 0x2b,
- 0xea, 0xb5, 0xac, 0x15, 0x75, 0x77, 0x02, 0x94, 0xdc, 0x25, 0xf5, 0xed, 0xf4, 0x92, 0xfa, 0xdc,
- 0x04, 0x78, 0x99, 0x6b, 0xea, 0xb5, 0xac, 0x35, 0xf5, 0x24, 0xb5, 0xcb, 0x5d, 0x54, 0xbf, 0xad,
- 0x2d, 0xaa, 0x5f, 0x9e, 0xa4, 0xbb, 0xe2, 0xc1, 0xe1, 0x53, 0x39, 0xab, 0xea, 0x37, 0x26, 0x81,
- 0x19, 0x1f, 0xc4, 0xfe, 0xf9, 0xba, 0x58, 0x2f, 0xe6, 0xb7, 0x5f, 0x84, 0x56, 0x74, 0xd0, 0xc6,
- 0xfc, 0x3c, 0x34, 0xa3, 0xcb, 0x9b, 0x19, 0x27, 0x75, 0xc5, 0xa2, 0x8e, 0xcf, 0x9e, 0x45, 0x0a,
- 0x5d, 0x87, 0x1a, 0xfd, 0x25, 0xcc, 0xe2, 0x95, 0xc9, 0x0e, 0xf4, 0xd0, 0x42, 0x30, 0xe3, 0x33,
- 0xff, 0xe5, 0x08, 0x80, 0x72, 0xa7, 0x6d, 0xd2, 0x62, 0xdf, 0xa5, 0xce, 0x6c, 0x18, 0x12, 0x9f,
- 0x1d, 0xe4, 0x2a, 0xbc, 0xf3, 0x15, 0x97, 0x40, 0xb5, 0x25, 0x24, 0x3e, 0x16, 0xec, 0xe8, 0x1e,
- 0xb4, 0xa2, 0x40, 0x2a, 0x3b, 0xf2, 0x9c, 0xa7, 0x64, 0x59, 0x50, 0x51, 0x68, 0x0f, 0x4b, 0x08,
- 0xb4, 0x00, 0xb5, 0xc0, 0xf3, 0x43, 0x71, 0x3e, 0xfa, 0xb5, 0x89, 0xa1, 0xd6, 0x3d, 0x3f, 0xc4,
- 0x8c, 0x95, 0x37, 0x4d, 0x79, 0x32, 0x60, 0x9a, 0xa6, 0x69, 0x1e, 0xfb, 0x9f, 0xab, 0xd2, 0x87,
- 0x2e, 0x09, 0x6b, 0xe4, 0x3a, 0x74, 0x7e, 0x72, 0x29, 0xa9, 0x56, 0x89, 0xc4, 0x24, 0x88, 0x4b,
- 0x82, 0xcf, 0x6f, 0x5e, 0x81, 0xce, 0xc0, 0xdb, 0x23, 0x3e, 0x8e, 0x8f, 0x38, 0x89, 0x53, 0x68,
- 0xa9, 0x7c, 0x64, 0x42, 0x6b, 0xdb, 0xb1, 0x49, 0x7f, 0x20, 0xfc, 0x5f, 0x0b, 0xcb, 0x34, 0xba,
- 0x03, 0x2d, 0x16, 0x63, 0x8f, 0x22, 0xfc, 0xd3, 0x55, 0x92, 0x87, 0xfa, 0x23, 0x00, 0x5a, 0x10,
- 0x2b, 0xfc, 0x96, 0x13, 0xb2, 0x3e, 0x6c, 0x61, 0x99, 0xa6, 0x15, 0x66, 0xe7, 0xc8, 0xd4, 0x0a,
- 0x37, 0x79, 0x85, 0x93, 0xf9, 0xe8, 0x12, 0x3c, 0xc3, 0xf2, 0x12, 0x4b, 0x4c, 0x1e, 0xaa, 0x6f,
- 0xe1, 0xec, 0x8f, 0xec, 0xdc, 0x9c, 0xb5, 0xc5, 0x2f, 0x08, 0xb1, 0xe0, 0x5d, 0x1d, 0xc7, 0x19,
- 0xe8, 0x1c, 0x1c, 0xb2, 0xc9, 0xa6, 0xb5, 0x3b, 0x0c, 0x1f, 0x90, 0x9d, 0xd1, 0xd0, 0x0a, 0x49,
- 0xdf, 0x66, 0xaf, 0x16, 0xb4, 0x71, 0xfa, 0x03, 0x7a, 0x1d, 0x0e, 0x8b, 0x4c, 0x6e, 0xc6, 0x54,
- 0x1a, 0x7d, 0x9b, 0x5d, 0xe2, 0x6f, 0xe3, 0xac, 0x4f, 0xe6, 0x0f, 0x6b, 0x54, 0xe8, 0x4c, 0xb5,
- 0xdf, 0x85, 0xaa, 0x65, 0xdb, 0x62, 0xd8, 0xbc, 0x38, 0xa5, 0x81, 0x88, 0x5b, 0x27, 0x14, 0x01,
- 0xad, 0xc9, 0x23, 0x77, 0x7c, 0xe0, 0xbc, 0x3c, 0x2d, 0x96, 0x7c, 0x4c, 0x45, 0xe0, 0x50, 0xc4,
- 0x5d, 0x7e, 0x7b, 0xa2, 0xfa, 0xd3, 0x21, 0xca, 0x9b, 0x15, 0x02, 0x07, 0xdd, 0x86, 0x1a, 0xab,
- 0x21, 0x1f, 0x58, 0x2f, 0x4d, 0x8b, 0x77, 0x8f, 0xd7, 0x8f, 0x61, 0x98, 0x03, 0x7e, 0xf6, 0x4d,
- 0x39, 0x70, 0x59, 0xd6, 0x0f, 0x5c, 0x2e, 0x42, 0xdd, 0x09, 0xc9, 0x4e, 0xfa, 0xfc, 0xed, 0x58,
- 0x55, 0x15, 0x9e, 0x87, 0xb3, 0x8e, 0x3d, 0x07, 0xf8, 0x7e, 0xee, 0x75, 0x86, 0x9b, 0x50, 0xa3,
- 0xec, 0xa9, 0xb9, 0xe4, 0x24, 0x05, 0x33, 0x4e, 0xf3, 0x02, 0xd4, 0x68, 0x63, 0xc7, 0xb4, 0x4e,
- 0xd4, 0xa7, 0x22, 0xeb, 0xb3, 0x38, 0x03, 0x6d, 0x6f, 0x44, 0x7c, 0x66, 0x18, 0xe6, 0x3f, 0xd5,
- 0x94, 0x43, 0x71, 0x7d, 0x55, 0xc7, 0xde, 0x9c, 0xda, 0x73, 0xaa, 0x5a, 0x86, 0x13, 0x5a, 0xf6,
- 0xd6, 0xf4, 0x68, 0x29, 0x3d, 0xc3, 0x09, 0x3d, 0xfb, 0x29, 0x30, 0x53, 0x9a, 0x76, 0x57, 0xd3,
- 0xb4, 0xcb, 0xd3, 0x23, 0x6a, 0xba, 0x46, 0x8a, 0x74, 0x6d, 0x59, 0xd7, 0xb5, 0xee, 0x64, 0x22,
- 0x97, 0x43, 0xd3, 0x04, 0xda, 0xf6, 0x99, 0x5c, 0x6d, 0x5b, 0xd4, 0xb4, 0x6d, 0xda, 0xa2, 0x3f,
- 0x22, 0x7d, 0xfb, 0x7e, 0x0d, 0x6a, 0x74, 0x78, 0x44, 0x2b, 0xaa, 0xae, 0xbd, 0x31, 0xd5, 0xd0,
- 0xaa, 0xea, 0xd9, 0x6a, 0x42, 0xcf, 0x2e, 0x4d, 0x87, 0x94, 0xd2, 0xb1, 0xd5, 0x84, 0x8e, 0x4d,
- 0x89, 0x97, 0xd2, 0xaf, 0x9e, 0xa6, 0x5f, 0x17, 0xa6, 0x43, 0xd3, 0x74, 0xcb, 0x2a, 0xd2, 0xad,
- 0x9b, 0xba, 0x6e, 0x4d, 0x38, 0x7b, 0x63, 0x73, 0x95, 0x09, 0xf4, 0xea, 0xbd, 0x5c, 0xbd, 0xba,
- 0xae, 0xe9, 0xd5, 0x34, 0xc5, 0x7e, 0x44, 0x3a, 0x75, 0x89, 0x4f, 0x3a, 0xf3, 0x6f, 0xa5, 0x65,
- 0x4d, 0x3a, 0xcd, 0x37, 0xa1, 0x1d, 0x3f, 0x0a, 0x92, 0x71, 0x3c, 0x9f, 0x93, 0x45, 0xa5, 0x46,
- 0x49, 0xf3, 0x22, 0xb4, 0xe3, 0x87, 0x3e, 0xb2, 0x6e, 0xc0, 0xb1, 0x8f, 0xf2, 0xf6, 0x14, 0x4b,
- 0x99, 0x2b, 0x70, 0x28, 0xfd, 0x0c, 0x41, 0x46, 0x1c, 0x5e, 0x39, 0x5b, 0x1e, 0xdd, 0x5e, 0x51,
- 0xb2, 0xcc, 0x27, 0x30, 0x97, 0x78, 0x58, 0x60, 0x6a, 0x0c, 0x74, 0x51, 0x99, 0x22, 0x57, 0x13,
- 0xd7, 0x54, 0xf5, 0xd3, 0xf2, 0xf1, 0x44, 0xd8, 0x5c, 0x86, 0xb9, 0x82, 0xca, 0x4f, 0x72, 0x58,
- 0xfe, 0xb3, 0x30, 0x33, 0xae, 0xee, 0x1f, 0xc1, 0x61, 0xfe, 0x10, 0x3a, 0xa9, 0x47, 0x51, 0x92,
- 0xc5, 0xac, 0x01, 0x6c, 0x49, 0x1a, 0xa1, 0xb4, 0xaf, 0x4f, 0x71, 0x75, 0x81, 0xf1, 0x61, 0x05,
- 0xc3, 0xfc, 0xad, 0x32, 0x1c, 0x4a, 0xbf, 0x88, 0x32, 0xe9, 0xe2, 0xc7, 0x80, 0x26, 0xc3, 0x92,
- 0x37, 0x3e, 0xa2, 0x24, 0xba, 0x07, 0xb3, 0xc1, 0xd0, 0x19, 0x90, 0xa5, 0x6d, 0xcb, 0xdd, 0x22,
- 0x81, 0x58, 0xd1, 0x14, 0xbc, 0x6a, 0xb2, 0x1e, 0x73, 0x60, 0x8d, 0xdd, 0x7c, 0x02, 0x33, 0xca,
- 0x47, 0xf4, 0x0e, 0x54, 0xbc, 0x51, 0xea, 0x5c, 0x63, 0x3e, 0xe6, 0xfd, 0xc8, 0xde, 0x70, 0xc5,
- 0x1b, 0xa5, 0x4d, 0x52, 0x35, 0xdf, 0xaa, 0x66, 0xbe, 0xe6, 0x1d, 0x38, 0x94, 0x7e, 0x74, 0x24,
- 0xd9, 0x3d, 0x67, 0x52, 0x51, 0x02, 0xde, 0x4d, 0xc9, 0x25, 0xff, 0x15, 0x38, 0x98, 0x7c, 0x4a,
- 0x24, 0xe3, 0x36, 0x4e, 0x7c, 0xa9, 0x29, 0x0a, 0xd7, 0xcf, 0xff, 0xbf, 0x32, 0xcc, 0xe9, 0x0d,
- 0x41, 0x47, 0x01, 0xe9, 0x39, 0xab, 0x9e, 0x4b, 0x3a, 0x25, 0xf4, 0x0c, 0x1c, 0xd2, 0xf3, 0x17,
- 0x6c, 0xbb, 0x53, 0x4e, 0x93, 0x53, 0xb7, 0xd5, 0xa9, 0x20, 0x03, 0x8e, 0x24, 0x7a, 0x88, 0x39,
- 0xd1, 0x4e, 0x15, 0x3d, 0x07, 0xcf, 0x24, 0xbf, 0x8c, 0x86, 0xd6, 0x80, 0x74, 0x6a, 0xe6, 0x4f,
- 0x2a, 0x50, 0x7b, 0x18, 0x10, 0xdf, 0xfc, 0x87, 0x4a, 0x74, 0x4b, 0xe3, 0x2d, 0xa8, 0xb1, 0x57,
- 0x3e, 0x94, 0x1b, 0x94, 0xe5, 0xc4, 0x0d, 0x4a, 0xed, 0x16, 0x5e, 0x7c, 0x83, 0xf2, 0x2d, 0xa8,
- 0xb1, 0x77, 0x3d, 0xa6, 0xe7, 0xfc, 0x46, 0x19, 0xda, 0xf1, 0x1b, 0x1b, 0x53, 0xf3, 0xab, 0xb7,
- 0x42, 0x2a, 0xfa, 0xad, 0x90, 0x57, 0xa0, 0xee, 0xb3, 0xfb, 0x1b, 0xdc, 0xcb, 0x24, 0xef, 0x9a,
- 0xb0, 0x02, 0x31, 0x27, 0x31, 0x09, 0xcc, 0xa8, 0x2f, 0x88, 0x4c, 0x5f, 0x8d, 0x53, 0xe2, 0xf9,
- 0xb0, 0xbe, 0x1d, 0x2c, 0xf8, 0xbe, 0xb5, 0x2f, 0x14, 0x53, 0xcf, 0x34, 0x8f, 0x41, 0x6d, 0xcd,
- 0x71, 0xb7, 0xb2, 0x2f, 0xae, 0x9a, 0xbf, 0x5f, 0x86, 0xa6, 0x38, 0xbc, 0x6b, 0x5e, 0x81, 0xea,
- 0x2a, 0x79, 0x42, 0x2b, 0x22, 0x8e, 0x0d, 0xa7, 0x2a, 0x72, 0x8f, 0xb5, 0x42, 0xd0, 0xe3, 0x88,
- 0xcc, 0xbc, 0x2a, 0x87, 0xc9, 0xe9, 0x79, 0xdf, 0x82, 0x1a, 0x7b, 0xf8, 0x63, 0x7a, 0xce, 0x3f,
- 0x68, 0x41, 0x83, 0xdf, 0xfe, 0x34, 0x7f, 0xb7, 0x05, 0x0d, 0xfe, 0x18, 0x08, 0xba, 0x0e, 0xcd,
- 0x60, 0x77, 0x67, 0xc7, 0xf2, 0xf7, 0x8d, 0xec, 0x4b, 0xfb, 0xda, 0xdb, 0x21, 0xdd, 0x75, 0x4e,
- 0x8b, 0x23, 0x26, 0xf4, 0x26, 0xd4, 0x06, 0xd6, 0x26, 0x49, 0x6d, 0xe7, 0x66, 0x31, 0x2f, 0x59,
- 0x9b, 0x04, 0x33, 0x72, 0x74, 0x13, 0x5a, 0x42, 0x2c, 0x81, 0x88, 0xe7, 0x8c, 0x2f, 0x37, 0x12,
- 0xa6, 0xe4, 0x32, 0x6f, 0x43, 0x53, 0x54, 0x06, 0xdd, 0x90, 0x77, 0x5f, 0x93, 0x91, 0xe7, 0xcc,
- 0x26, 0xc8, 0x57, 0x22, 0xe4, 0x2d, 0xd8, 0x3f, 0xad, 0x40, 0x8d, 0x56, 0xee, 0x43, 0x23, 0xa1,
- 0xe3, 0x00, 0x43, 0x2b, 0x08, 0xd7, 0x76, 0x87, 0x43, 0x62, 0x8b, 0x1b, 0x76, 0x4a, 0x0e, 0x3a,
- 0x0b, 0x07, 0x79, 0x2a, 0xd8, 0x5e, 0xdf, 0x1d, 0x0c, 0x88, 0xbc, 0x59, 0x9a, 0xcc, 0x46, 0x0b,
- 0x50, 0x67, 0xcf, 0x53, 0x8a, 0x59, 0xe1, 0xab, 0x85, 0x3d, 0xdb, 0x5d, 0x73, 0x5c, 0x51, 0x1b,
- 0xce, 0x69, 0x7a, 0xd0, 0x96, 0x79, 0xd4, 0x08, 0x47, 0x8e, 0xeb, 0x3a, 0xee, 0x96, 0xd0, 0xe8,
- 0x28, 0x49, 0x07, 0x1d, 0xfa, 0x53, 0xd4, 0xb7, 0x8e, 0x45, 0x8a, 0xe6, 0x6f, 0x5a, 0xce, 0x50,
- 0x54, 0xb1, 0x8e, 0x45, 0x8a, 0x22, 0xed, 0x8a, 0x27, 0x54, 0x6a, 0xac, 0x81, 0x51, 0xd2, 0xfc,
- 0xa0, 0x2c, 0x2f, 0x80, 0x67, 0x5d, 0xce, 0x4c, 0xc5, 0x92, 0x8e, 0xa9, 0x01, 0x6d, 0x3e, 0x20,
- 0x28, 0x21, 0xea, 0xa3, 0xd0, 0xf0, 0xdc, 0xa1, 0xe3, 0x12, 0x11, 0x3b, 0x12, 0xa9, 0x44, 0x1f,
- 0xd7, 0x53, 0x7d, 0x2c, 0xbe, 0xaf, 0xd8, 0x0e, 0xad, 0x62, 0x23, 0xfe, 0xce, 0x73, 0xd0, 0x35,
- 0x68, 0xda, 0x64, 0xcf, 0x19, 0x90, 0xc0, 0x68, 0x32, 0xd5, 0x3b, 0x39, 0xb6, 0x6f, 0x97, 0x19,
- 0x2d, 0x8e, 0x78, 0xcc, 0x10, 0x1a, 0x3c, 0x4b, 0x36, 0xa9, 0xac, 0x34, 0x29, 0xae, 0x74, 0x65,
- 0x4c, 0xa5, 0xab, 0x05, 0x95, 0xae, 0x25, 0x2b, 0x3d, 0xff, 0x25, 0x80, 0x58, 0xdd, 0xd0, 0x0c,
- 0x34, 0x1f, 0xba, 0x8f, 0x5d, 0xef, 0x89, 0xdb, 0x29, 0xd1, 0xc4, 0xfd, 0xcd, 0x4d, 0x5a, 0x4a,
- 0xa7, 0x4c, 0x13, 0x94, 0xce, 0x71, 0xb7, 0x3a, 0x15, 0x04, 0xd0, 0xa0, 0x09, 0x62, 0x77, 0xaa,
- 0xf4, 0xf7, 0x2d, 0x26, 0xbf, 0x4e, 0x0d, 0x3d, 0x0b, 0x87, 0xfb, 0xee, 0xc0, 0xdb, 0x19, 0x59,
- 0xa1, 0xb3, 0x31, 0x24, 0x8f, 0x88, 0x1f, 0x38, 0x9e, 0xdb, 0xa9, 0xd3, 0xd1, 0x6b, 0x95, 0x84,
- 0x4f, 0x3c, 0xff, 0xf1, 0x2a, 0x21, 0xb6, 0x78, 0xf9, 0xa4, 0xd3, 0x30, 0xff, 0xad, 0xcc, 0x77,
- 0x83, 0xcd, 0x9b, 0x30, 0xab, 0xbd, 0xf5, 0x63, 0xc4, 0x2f, 0x8f, 0x27, 0x1e, 0x1e, 0x3f, 0xca,
- 0xe2, 0xb5, 0x24, 0x9e, 0xca, 0xf0, 0x94, 0x79, 0x0b, 0x40, 0x79, 0xe1, 0xe7, 0x38, 0xc0, 0xc6,
- 0x7e, 0x48, 0x02, 0xfe, 0xba, 0x0f, 0x85, 0xa8, 0x61, 0x25, 0x47, 0xc5, 0xaf, 0x68, 0xf8, 0xe6,
- 0x65, 0x00, 0xe5, 0x7d, 0x1f, 0x6a, 0x57, 0x34, 0xb5, 0x98, 0x04, 0x4b, 0x66, 0x9b, 0x5d, 0xd1,
- 0x82, 0xe8, 0x25, 0x9f, 0xa8, 0x06, 0x3c, 0x7a, 0xa7, 0xd6, 0x80, 0xe5, 0x98, 0x2b, 0x00, 0xf1,
- 0x63, 0x36, 0xe6, 0x15, 0xe9, 0xba, 0x5f, 0x83, 0x9a, 0x6d, 0x85, 0x96, 0x91, 0x7c, 0x0b, 0x84,
- 0x8f, 0x5c, 0x31, 0x0b, 0x66, 0x64, 0xe6, 0x6f, 0x96, 0x61, 0x56, 0x7d, 0xb8, 0xc7, 0x7c, 0x17,
- 0x6a, 0xec, 0xe5, 0x9f, 0x1b, 0x30, 0xab, 0xbe, 0xdc, 0x93, 0x7a, 0xa1, 0x9d, 0xe3, 0xa9, 0xac,
- 0x58, 0x63, 0x30, 0xfb, 0xb2, 0x4a, 0x1f, 0x1a, 0xea, 0x75, 0x68, 0x8a, 0x87, 0x80, 0xcc, 0xd3,
- 0xd0, 0x8e, 0xdf, 0xfd, 0xa1, 0xbe, 0x83, 0xe7, 0x47, 0x52, 0x16, 0x49, 0xf3, 0x1f, 0xab, 0x50,
- 0x67, 0xe2, 0x34, 0xbf, 0x56, 0x51, 0x35, 0xd4, 0xfc, 0x49, 0x39, 0x77, 0x2d, 0x78, 0x51, 0x7b,
- 0xaa, 0x60, 0x2e, 0xf5, 0xde, 0x95, 0x78, 0xe6, 0x47, 0x77, 0xac, 0x97, 0xa1, 0xe9, 0x72, 0xcd,
- 0x14, 0x2f, 0x05, 0x1c, 0xcb, 0xe4, 0x12, 0xda, 0x8b, 0x23, 0x62, 0x74, 0x09, 0xea, 0xc4, 0xf7,
- 0x3d, 0x9f, 0x99, 0xd4, 0x5c, 0xea, 0xe5, 0xa8, 0xf8, 0x49, 0xa1, 0x15, 0x4a, 0x85, 0x39, 0x31,
- 0xba, 0x04, 0xcf, 0x04, 0xdc, 0x8a, 0xf8, 0x9c, 0x32, 0x10, 0xf7, 0xaa, 0x85, 0xb7, 0xc9, 0xfe,
- 0x38, 0xff, 0x89, 0x68, 0x80, 0x55, 0x0c, 0xaf, 0xa4, 0x5a, 0x64, 0x19, 0xb5, 0xa1, 0xce, 0x0a,
- 0xea, 0x54, 0x54, 0xb3, 0xad, 0xe6, 0x18, 0x5e, 0x6d, 0xfe, 0x22, 0x34, 0x45, 0x3e, 0xa5, 0x5f,
- 0xe0, 0x75, 0xef, 0x94, 0xd0, 0x2c, 0xb4, 0xd6, 0xc9, 0x70, 0xb3, 0xe7, 0x05, 0x61, 0xa7, 0x8c,
- 0x0e, 0x40, 0x9b, 0xd9, 0xc2, 0x7d, 0x77, 0xb8, 0xdf, 0xa9, 0xcc, 0xbf, 0x07, 0x6d, 0xd9, 0x22,
- 0xd4, 0x82, 0xda, 0xea, 0xee, 0x70, 0xd8, 0x29, 0xb1, 0xa9, 0x69, 0xe8, 0xf9, 0x51, 0x60, 0x7a,
- 0xe5, 0x29, 0x1d, 0x67, 0x3a, 0xe5, 0x3c, 0x6f, 0x50, 0x41, 0x1d, 0x98, 0x15, 0x85, 0xf3, 0x3a,
- 0x57, 0xcd, 0x1f, 0x94, 0xa1, 0x2d, 0xdf, 0x4a, 0xa2, 0xf3, 0xc2, 0x48, 0xc6, 0xf9, 0x7e, 0xe0,
- 0x4a, 0x42, 0xda, 0xf9, 0x4f, 0x2f, 0x25, 0x24, 0x7e, 0x06, 0xe6, 0x84, 0xcb, 0x8d, 0x3a, 0x9f,
- 0x7b, 0xcd, 0x44, 0xee, 0xfc, 0x6d, 0xd9, 0xeb, 0x1d, 0x66, 0x62, 0x4b, 0x9e, 0xeb, 0x92, 0x41,
- 0xc8, 0xfa, 0xfe, 0x20, 0xcc, 0xac, 0x7a, 0xe1, 0x9a, 0x17, 0x04, 0xb4, 0x65, 0xbc, 0xa7, 0xe2,
- 0xef, 0x15, 0x34, 0x07, 0x10, 0x9d, 0x35, 0xa3, 0x4e, 0xd2, 0xfc, 0xf5, 0x32, 0x34, 0xf8, 0x0b,
- 0x4e, 0xe6, 0x2f, 0x95, 0xa1, 0x21, 0x5e, 0x6d, 0x7a, 0x05, 0x3a, 0xbe, 0x47, 0x81, 0xa3, 0x05,
- 0x45, 0x7f, 0x59, 0xb4, 0x32, 0x95, 0x4f, 0xd7, 0xb8, 0x9e, 0xa2, 0x15, 0x62, 0x0a, 0xa0, 0xe5,
- 0xa1, 0xab, 0x00, 0xfc, 0x55, 0xa8, 0x07, 0xfb, 0xf2, 0xe1, 0x8b, 0xe4, 0x11, 0x33, 0xf1, 0x8e,
- 0x14, 0xdb, 0x8c, 0x51, 0xa8, 0xcd, 0xaf, 0xb2, 0xab, 0xc4, 0xe6, 0x53, 0xd9, 0xf3, 0xc7, 0x01,
- 0x58, 0x57, 0xdf, 0x21, 0xfb, 0xb2, 0xf3, 0x95, 0x1c, 0xea, 0x19, 0x89, 0x3b, 0xf0, 0xf7, 0x47,
- 0x62, 0x89, 0x2d, 0x3d, 0x69, 0x32, 0x9b, 0xce, 0x8f, 0xb5, 0x2c, 0x56, 0xb3, 0x59, 0xac, 0x67,
- 0xce, 0x7f, 0x11, 0x0e, 0x60, 0x12, 0x8c, 0x3c, 0x37, 0x20, 0x3f, 0xab, 0x7f, 0x95, 0x91, 0xfb,
- 0x4f, 0x2f, 0xe6, 0xbf, 0x5f, 0x87, 0x3a, 0x9b, 0xde, 0x9a, 0x7f, 0x5e, 0x97, 0x13, 0xf1, 0x94,
- 0x83, 0xb9, 0xa0, 0x9e, 0x34, 0x52, 0x3d, 0x85, 0x36, 0x33, 0xd6, 0x4f, 0x18, 0xbd, 0x0d, 0xad,
- 0x91, 0xef, 0x6d, 0xf9, 0x74, 0x42, 0x5d, 0x4b, 0x3c, 0x13, 0xa5, 0xb3, 0xad, 0x09, 0x32, 0x2c,
- 0x19, 0x54, 0xed, 0xaf, 0xeb, 0xda, 0x7f, 0x13, 0xda, 0xb6, 0xef, 0x8d, 0xd8, 0x1d, 0x79, 0xb1,
- 0xbb, 0x77, 0x22, 0x07, 0x77, 0x39, 0xa2, 0xeb, 0x95, 0x70, 0xcc, 0x44, 0xed, 0x87, 0x8b, 0x5f,
- 0x6c, 0xac, 0xbf, 0x90, 0xc3, 0xce, 0x15, 0xa6, 0x57, 0xc2, 0x82, 0x9c, 0x32, 0x92, 0xa7, 0x8c,
- 0xb1, 0x35, 0x96, 0x71, 0xe5, 0x69, 0xc4, 0xc8, 0xc9, 0xd1, 0x35, 0x68, 0x05, 0xd6, 0x1e, 0x61,
- 0x0f, 0x63, 0xb7, 0xc7, 0x76, 0xc5, 0xba, 0x20, 0xeb, 0x95, 0xb0, 0x64, 0xa1, 0x4d, 0xde, 0x71,
- 0xb6, 0xf8, 0x52, 0x56, 0xbc, 0xce, 0x9d, 0xd7, 0xe4, 0x7b, 0x11, 0x1d, 0x7b, 0x4a, 0x3d, 0x4a,
- 0xd0, 0xa5, 0x17, 0xf7, 0xd9, 0x33, 0x7c, 0xdf, 0x9a, 0x25, 0xcc, 0x19, 0x68, 0xcb, 0x2e, 0x32,
- 0x5b, 0xd2, 0x4e, 0x5b, 0xd0, 0xe0, 0x2d, 0x30, 0x01, 0x5a, 0x51, 0x85, 0x28, 0xb1, 0x04, 0x37,
- 0x57, 0xa1, 0x15, 0x09, 0x2d, 0xe7, 0x5d, 0x0c, 0x04, 0x35, 0xdb, 0x13, 0x73, 0xb6, 0x2a, 0x66,
- 0xbf, 0xa9, 0x50, 0xd5, 0xe7, 0xb4, 0xda, 0xf2, 0xad, 0xa8, 0xf9, 0x85, 0xe8, 0xc0, 0x14, 0xf5,
- 0xad, 0x3c, 0x1a, 0x30, 0x03, 0x4d, 0xbc, 0xcb, 0xa6, 0xd3, 0x9d, 0x32, 0xcd, 0xa6, 0x6b, 0xb4,
- 0x4e, 0x85, 0xba, 0xe9, 0x25, 0xcb, 0x1d, 0x90, 0x21, 0x9b, 0x82, 0x49, 0xe7, 0x5f, 0x5b, 0x6c,
- 0x4b, 0xf0, 0xc5, 0x63, 0x7f, 0xf1, 0xc1, 0xf1, 0xf2, 0xf7, 0x3e, 0x38, 0x5e, 0xfe, 0xd1, 0x07,
- 0xc7, 0xcb, 0xbf, 0xf8, 0xe3, 0xe3, 0xa5, 0xef, 0xfd, 0xf8, 0x78, 0xe9, 0xef, 0x7e, 0x7c, 0xbc,
- 0xf4, 0x7e, 0x65, 0xb4, 0xb1, 0xd1, 0x60, 0x87, 0x5e, 0x2e, 0xfe, 0x7b, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0x17, 0x1e, 0x8d, 0x0f, 0x01, 0x67, 0x00, 0x00,
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5d, 0x59, 0x8c, 0x1c, 0xc7,
+ 0x79, 0x9e, 0xfb, 0xf8, 0x77, 0xb9, 0x1c, 0x16, 0x29, 0xaa, 0xd5, 0xa2, 0x28, 0x6a, 0x79, 0x88,
+ 0x96, 0xa8, 0xa1, 0x44, 0x52, 0xa4, 0x4c, 0x89, 0xc7, 0x5e, 0xd4, 0x0c, 0x8f, 0xe5, 0xba, 0x96,
+ 0xa4, 0x65, 0xd9, 0x08, 0xdc, 0x3b, 0x5d, 0xbb, 0xdb, 0xe6, 0x6c, 0xf7, 0xb8, 0xbb, 0x77, 0xc9,
+ 0xf5, 0x15, 0xc7, 0x47, 0x82, 0x00, 0x09, 0x92, 0x87, 0x20, 0x09, 0xf2, 0x12, 0x20, 0x88, 0x81,
+ 0x3c, 0x04, 0x41, 0x80, 0x20, 0x40, 0xf2, 0x92, 0x04, 0x08, 0x72, 0x27, 0x80, 0xfd, 0x96, 0x17,
+ 0xc7, 0x8e, 0xfc, 0x92, 0x97, 0x3c, 0x38, 0x01, 0x82, 0x3c, 0x06, 0x75, 0x74, 0x75, 0x55, 0x1f,
+ 0xd3, 0x33, 0x96, 0x9c, 0x03, 0xf1, 0xd3, 0x4e, 0x55, 0xfd, 0xdf, 0x57, 0xd7, 0x5f, 0x7f, 0x55,
+ 0xfd, 0x55, 0x5d, 0x0b, 0x47, 0x47, 0x1b, 0xe7, 0x47, 0xbe, 0x17, 0x7a, 0xc1, 0x79, 0xb2, 0x47,
+ 0xdc, 0x30, 0xe8, 0xb2, 0x10, 0x6a, 0x5a, 0xee, 0x7e, 0xb8, 0x3f, 0x22, 0xe6, 0xa9, 0xd1, 0xe3,
+ 0xad, 0xf3, 0x43, 0x67, 0xe3, 0xfc, 0x68, 0xe3, 0xfc, 0x8e, 0x67, 0x93, 0x61, 0x24, 0xce, 0x02,
+ 0x42, 0xdc, 0x3c, 0xb6, 0xe5, 0x79, 0x5b, 0x43, 0xc2, 0xd3, 0x36, 0x76, 0x37, 0xcf, 0x07, 0xa1,
+ 0xbf, 0x3b, 0x08, 0x79, 0xea, 0xfc, 0x1f, 0xfe, 0x65, 0x19, 0xea, 0x2b, 0x94, 0x1e, 0x5d, 0x80,
+ 0xd6, 0x0e, 0x09, 0x02, 0x6b, 0x8b, 0x04, 0x46, 0xf9, 0x44, 0xf5, 0xec, 0xcc, 0x85, 0xa3, 0x5d,
+ 0x91, 0x55, 0x97, 0x49, 0x74, 0xef, 0xf1, 0x64, 0x2c, 0xe5, 0xd0, 0x31, 0x68, 0x0f, 0x3c, 0x37,
+ 0x24, 0x4f, 0xc3, 0xbe, 0x6d, 0x54, 0x4e, 0x94, 0xcf, 0xb6, 0x71, 0x1c, 0x81, 0x2e, 0x41, 0xdb,
+ 0x71, 0x9d, 0xd0, 0xb1, 0x42, 0xcf, 0x37, 0xaa, 0x27, 0xca, 0x1a, 0x25, 0x2b, 0x64, 0x77, 0x61,
+ 0x30, 0xf0, 0x76, 0xdd, 0x10, 0xc7, 0x82, 0xc8, 0x80, 0x66, 0xe8, 0x5b, 0x03, 0xd2, 0xb7, 0x8d,
+ 0x1a, 0x63, 0x8c, 0x82, 0xe6, 0xb7, 0x2f, 0x42, 0x53, 0x94, 0x01, 0x3d, 0x07, 0xcd, 0x60, 0xc4,
+ 0xa5, 0xbe, 0x51, 0xe6, 0x62, 0x22, 0x8c, 0x6e, 0xc0, 0x8c, 0xc5, 0x69, 0xd7, 0xb7, 0xbd, 0x27,
+ 0x46, 0x99, 0x65, 0xfc, 0x7c, 0xa2, 0x2e, 0x22, 0xe3, 0x2e, 0x15, 0xe9, 0x95, 0xb0, 0x8a, 0x40,
+ 0x7d, 0x98, 0x13, 0xc1, 0x65, 0x12, 0x5a, 0xce, 0x30, 0x30, 0xfe, 0x86, 0x93, 0x1c, 0xcf, 0x21,
+ 0x11, 0x62, 0xbd, 0x12, 0x4e, 0x00, 0xd1, 0xa7, 0xe0, 0xb0, 0x88, 0x59, 0xf2, 0xdc, 0x4d, 0x67,
+ 0xeb, 0xe1, 0xc8, 0xb6, 0x42, 0x62, 0xfc, 0x2d, 0xe7, 0x3b, 0x95, 0xc3, 0xc7, 0x65, 0xbb, 0x5c,
+ 0xb8, 0x57, 0xc2, 0x59, 0x1c, 0xe8, 0x16, 0x1c, 0x10, 0xd1, 0x82, 0xf4, 0xef, 0x38, 0xe9, 0x0b,
+ 0x39, 0xa4, 0x92, 0x4d, 0x87, 0xa1, 0x4f, 0xc3, 0x11, 0x11, 0x71, 0xd7, 0x71, 0x1f, 0x2f, 0x6d,
+ 0x5b, 0xc3, 0x21, 0x71, 0xb7, 0x88, 0xf1, 0xf7, 0xe3, 0xcb, 0xa8, 0x09, 0xf7, 0x4a, 0x38, 0x93,
+ 0x04, 0x6d, 0x81, 0x91, 0x15, 0xdf, 0x73, 0x6c, 0x62, 0xfc, 0x03, 0xcf, 0xe0, 0xec, 0x44, 0x19,
+ 0x38, 0x36, 0xcd, 0x24, 0x97, 0x0c, 0xdd, 0x87, 0x8e, 0xb7, 0xf1, 0x39, 0x32, 0x88, 0x5a, 0x7e,
+ 0x9d, 0x84, 0x46, 0x87, 0xf1, 0xbf, 0x94, 0xe0, 0xbf, 0xcf, 0xc4, 0xa2, 0x3e, 0xeb, 0xae, 0x93,
+ 0xb0, 0x57, 0xc2, 0x29, 0x30, 0x7a, 0x08, 0x48, 0x8b, 0x5b, 0xd8, 0x21, 0xae, 0x6d, 0x5c, 0x60,
+ 0x94, 0x27, 0xc7, 0x53, 0x32, 0xd1, 0x5e, 0x09, 0x67, 0x10, 0xa4, 0x68, 0x1f, 0xba, 0x01, 0x09,
+ 0x8d, 0x8b, 0x93, 0xd0, 0x32, 0xd1, 0x14, 0x2d, 0x8b, 0xa5, 0x9d, 0xc8, 0x63, 0x31, 0x19, 0x5a,
+ 0xa1, 0xe3, 0xb9, 0xa2, 0xbc, 0x97, 0x18, 0xf1, 0xe9, 0x6c, 0x62, 0x29, 0x2b, 0x4b, 0x9c, 0x49,
+ 0x82, 0x7e, 0x0a, 0x9e, 0x49, 0xc4, 0x63, 0xb2, 0xe3, 0xed, 0x11, 0xe3, 0x4d, 0xc6, 0x7e, 0xa6,
+ 0x88, 0x9d, 0x4b, 0xf7, 0x4a, 0x38, 0x9b, 0x06, 0x2d, 0xc2, 0x6c, 0x94, 0xc0, 0x68, 0x2f, 0x33,
+ 0xda, 0x63, 0x79, 0xb4, 0x82, 0x4c, 0xc3, 0xd0, 0x41, 0xcf, 0xc3, 0x4b, 0x43, 0x2f, 0x20, 0xc6,
+ 0x42, 0xe6, 0xa0, 0x17, 0x14, 0x4c, 0x84, 0x0e, 0x7a, 0x05, 0xa1, 0x56, 0x32, 0x08, 0x7d, 0x67,
+ 0xc0, 0x0a, 0x48, 0xb5, 0xe8, 0xca, 0xf8, 0x4a, 0xc6, 0xc2, 0x42, 0x95, 0xb2, 0x69, 0x10, 0x86,
+ 0x83, 0xc1, 0xee, 0x46, 0x30, 0xf0, 0x9d, 0x11, 0x8d, 0x5b, 0xb0, 0x6d, 0xe3, 0x9d, 0x71, 0xcc,
+ 0xeb, 0x8a, 0x70, 0x77, 0xc1, 0xa6, 0xbd, 0x93, 0x24, 0x40, 0x9f, 0x06, 0xa4, 0x46, 0x89, 0xe6,
+ 0xbb, 0xc6, 0x68, 0x3f, 0x36, 0x01, 0xad, 0x6c, 0xcb, 0x0c, 0x1a, 0x64, 0xc1, 0x11, 0x35, 0x76,
+ 0xcd, 0x0b, 0x1c, 0xfa, 0xd7, 0xb8, 0xce, 0xe8, 0x5f, 0x9d, 0x80, 0x3e, 0x82, 0x50, 0xc5, 0xca,
+ 0xa2, 0x4a, 0x66, 0xb1, 0x44, 0x87, 0x36, 0xf1, 0x03, 0xe3, 0xc6, 0xc4, 0x59, 0x44, 0x90, 0x64,
+ 0x16, 0x51, 0x7c, 0xb2, 0x89, 0xde, 0xf5, 0xbd, 0xdd, 0x51, 0x60, 0xdc, 0x9c, 0xb8, 0x89, 0x38,
+ 0x20, 0xd9, 0x44, 0x3c, 0x16, 0x5d, 0x86, 0xd6, 0xc6, 0xd0, 0x1b, 0x3c, 0xa6, 0x9d, 0x59, 0x61,
+ 0x94, 0x46, 0x82, 0x72, 0x91, 0x26, 0x8b, 0xee, 0x93, 0xb2, 0x54, 0x59, 0xd9, 0xef, 0x65, 0x32,
+ 0x24, 0x21, 0x11, 0x53, 0xe3, 0xf3, 0x99, 0x50, 0x2e, 0x42, 0x95, 0x55, 0x41, 0xa0, 0x65, 0x98,
+ 0xd9, 0x74, 0x86, 0x24, 0x78, 0x38, 0x1a, 0x7a, 0x16, 0x9f, 0x27, 0x67, 0x2e, 0x9c, 0xc8, 0x24,
+ 0xb8, 0x15, 0xcb, 0x51, 0x16, 0x05, 0x86, 0xae, 0x43, 0x7b, 0xc7, 0xf2, 0x1f, 0x07, 0x7d, 0x77,
+ 0xd3, 0x33, 0xea, 0x99, 0x33, 0x1c, 0xe7, 0xb8, 0x17, 0x49, 0xf5, 0x4a, 0x38, 0x86, 0xd0, 0x79,
+ 0x92, 0x15, 0x6a, 0x9d, 0x84, 0xb7, 0x1c, 0x32, 0xb4, 0x03, 0xa3, 0xc1, 0x48, 0x5e, 0xcc, 0x24,
+ 0x59, 0x27, 0x61, 0x97, 0x8b, 0xd1, 0x79, 0x52, 0x07, 0xa2, 0xf7, 0xe0, 0x70, 0x14, 0xb3, 0xb4,
+ 0xed, 0x0c, 0x6d, 0x9f, 0xb8, 0x7d, 0x3b, 0x30, 0x9a, 0x99, 0x53, 0x50, 0xcc, 0xa7, 0xc8, 0xd2,
+ 0x69, 0x32, 0x83, 0x82, 0x5a, 0xc6, 0x28, 0x5a, 0x1d, 0x92, 0x46, 0x2b, 0xd3, 0x32, 0xc6, 0xd4,
+ 0xaa, 0x30, 0xd5, 0xae, 0x2c, 0x12, 0x64, 0xc3, 0xb3, 0x51, 0xfc, 0xa2, 0x35, 0x78, 0xbc, 0xe5,
+ 0x7b, 0xbb, 0xae, 0xbd, 0xe4, 0x0d, 0x3d, 0xdf, 0x68, 0x67, 0x4e, 0x6e, 0x31, 0x7f, 0x42, 0xbe,
+ 0x57, 0xc2, 0x79, 0x54, 0x68, 0x09, 0x66, 0xa3, 0xa4, 0x07, 0xe4, 0x69, 0x68, 0x40, 0xe6, 0x3c,
+ 0x1f, 0x53, 0x53, 0x21, 0x6a, 0x20, 0x55, 0x90, 0x4a, 0x42, 0x55, 0xc2, 0x98, 0x29, 0x20, 0xa1,
+ 0x42, 0x2a, 0x09, 0x0d, 0xab, 0x24, 0x74, 0x0a, 0x36, 0x0e, 0x14, 0x90, 0x50, 0x21, 0x95, 0x84,
+ 0x86, 0xe9, 0x54, 0x2d, 0x6b, 0xea, 0x79, 0x8f, 0xa9, 0x3e, 0x19, 0x73, 0x99, 0x53, 0xb5, 0xd2,
+ 0x5a, 0x42, 0x90, 0x4e, 0xd5, 0x49, 0x30, 0x5d, 0x09, 0x45, 0x71, 0x0b, 0x43, 0x67, 0xcb, 0x35,
+ 0x0e, 0x8e, 0xd1, 0x65, 0xca, 0xc6, 0xa4, 0xe8, 0x4a, 0x48, 0x83, 0xa1, 0x9b, 0x62, 0x58, 0xae,
+ 0x93, 0x70, 0xd9, 0xd9, 0x33, 0x0e, 0x65, 0x4e, 0x43, 0x31, 0xcb, 0xb2, 0xb3, 0x27, 0xc7, 0x25,
+ 0x87, 0xa8, 0x55, 0x8b, 0x26, 0x39, 0xe3, 0x99, 0x82, 0xaa, 0x45, 0x82, 0x6a, 0xd5, 0xa2, 0x38,
+ 0xb5, 0x6a, 0x77, 0xad, 0x90, 0x3c, 0x35, 0x9e, 0x2b, 0xa8, 0x1a, 0x93, 0x52, 0xab, 0xc6, 0x22,
+ 0xe8, 0xec, 0x16, 0x45, 0x3c, 0x22, 0x7e, 0xe8, 0x0c, 0xac, 0x21, 0x6f, 0xaa, 0x53, 0x99, 0x73,
+ 0x50, 0xcc, 0xa7, 0x49, 0xd3, 0xd9, 0x2d, 0x93, 0x46, 0xad, 0xf8, 0x03, 0x6b, 0x63, 0x48, 0xb0,
+ 0xf7, 0xc4, 0x38, 0x5d, 0x50, 0xf1, 0x48, 0x50, 0xad, 0x78, 0x14, 0xa7, 0xda, 0x96, 0x4f, 0x3a,
+ 0xf6, 0x16, 0x09, 0x8d, 0xb3, 0x05, 0xb6, 0x85, 0x8b, 0xa9, 0xb6, 0x85, 0xc7, 0x48, 0x0b, 0xb0,
+ 0x6c, 0x85, 0xd6, 0x9e, 0x43, 0x9e, 0x3c, 0x72, 0xc8, 0x13, 0x3a, 0xb1, 0x1f, 0x1e, 0x63, 0x01,
+ 0x22, 0xd9, 0xae, 0x10, 0x96, 0x16, 0x20, 0x41, 0x22, 0x2d, 0x80, 0x1a, 0x2f, 0xcc, 0xfa, 0x91,
+ 0x31, 0x16, 0x40, 0xe3, 0x97, 0x36, 0x3e, 0x8f, 0x0a, 0x59, 0x70, 0x34, 0x95, 0x74, 0xdf, 0xb7,
+ 0x89, 0x6f, 0xbc, 0xc0, 0x32, 0x79, 0xb9, 0x38, 0x13, 0x26, 0xde, 0x2b, 0xe1, 0x1c, 0xa2, 0x54,
+ 0x16, 0xeb, 0xde, 0xae, 0x3f, 0x20, 0xb4, 0x9d, 0x4e, 0x4e, 0x92, 0x85, 0x14, 0x4f, 0x65, 0x21,
+ 0x53, 0xd0, 0x1e, 0xbc, 0x20, 0x53, 0x68, 0xc6, 0x6c, 0x16, 0x65, 0xb9, 0x8b, 0x1d, 0xcc, 0x19,
+ 0x96, 0x53, 0x77, 0x7c, 0x4e, 0x49, 0x54, 0xaf, 0x84, 0xc7, 0xd3, 0xa2, 0x7d, 0x38, 0xae, 0x09,
+ 0xf0, 0x79, 0x5e, 0xcd, 0xf8, 0x65, 0x96, 0xf1, 0xf9, 0xf1, 0x19, 0xa7, 0x60, 0xbd, 0x12, 0x2e,
+ 0x20, 0x46, 0x23, 0x78, 0x5e, 0x6b, 0x8c, 0x68, 0x60, 0x0b, 0x15, 0xf9, 0x12, 0xcb, 0xf7, 0xdc,
+ 0xf8, 0x7c, 0x75, 0x4c, 0xaf, 0x84, 0xc7, 0x51, 0xd2, 0x1d, 0x57, 0x66, 0x32, 0xed, 0xc9, 0x2f,
+ 0x66, 0x2e, 0x7b, 0x72, 0xb2, 0xe3, 0x7d, 0x99, 0x4b, 0x96, 0xa9, 0xf9, 0xa2, 0x39, 0xbf, 0x3c,
+ 0xa9, 0xe6, 0xcb, 0x76, 0xcc, 0xa3, 0xd2, 0xfa, 0x8e, 0x26, 0x3d, 0xb0, 0xfc, 0x2d, 0x12, 0xf2,
+ 0x86, 0xee, 0xdb, 0xb4, 0x52, 0x5f, 0x99, 0xa4, 0xef, 0x52, 0x30, 0xad, 0xef, 0x32, 0x89, 0x51,
+ 0x00, 0xc7, 0x34, 0x89, 0x7e, 0xb0, 0xe4, 0x0d, 0x87, 0x64, 0x10, 0xb5, 0xe6, 0x4f, 0xb3, 0x8c,
+ 0x5f, 0x1b, 0x9f, 0x71, 0x02, 0xd4, 0x2b, 0xe1, 0xb1, 0xa4, 0xa9, 0xfa, 0xde, 0x1f, 0xda, 0x09,
+ 0x9d, 0x31, 0x26, 0xd2, 0xd5, 0x24, 0x2c, 0x55, 0xdf, 0x94, 0x44, 0x4a, 0x57, 0x15, 0x09, 0x5a,
+ 0xdd, 0x67, 0x27, 0xd1, 0x55, 0x1d, 0x93, 0xd2, 0x55, 0x3d, 0x99, 0xce, 0x6e, 0xbb, 0x01, 0xf1,
+ 0x19, 0xc7, 0x6d, 0xcf, 0x71, 0x8d, 0x17, 0x33, 0x67, 0xb7, 0x87, 0x01, 0xf1, 0x45, 0x46, 0x54,
+ 0x8a, 0xce, 0x6e, 0x1a, 0x4c, 0xe3, 0xb9, 0x4b, 0x36, 0x43, 0xe3, 0x44, 0x11, 0x0f, 0x95, 0xd2,
+ 0x78, 0x68, 0x04, 0x9d, 0x29, 0x64, 0xc4, 0x3a, 0xa1, 0xbd, 0x82, 0x2d, 0x77, 0x8b, 0x18, 0x2f,
+ 0x65, 0xce, 0x14, 0x0a, 0x9d, 0x22, 0x4c, 0x67, 0x8a, 0x2c, 0x12, 0xba, 0xf3, 0x97, 0xf1, 0x74,
+ 0x45, 0xc6, 0xa9, 0xe7, 0x33, 0x77, 0xfe, 0x0a, 0xb5, 0x14, 0xa5, 0x7b, 0x90, 0x34, 0x01, 0xfa,
+ 0x18, 0xd4, 0x46, 0x8e, 0xbb, 0x65, 0xd8, 0x8c, 0xe8, 0x70, 0x82, 0x68, 0xcd, 0x71, 0xb7, 0x7a,
+ 0x25, 0xcc, 0x44, 0xd0, 0x3b, 0x00, 0x23, 0xdf, 0x1b, 0x90, 0x20, 0x58, 0x25, 0x4f, 0x0c, 0xc2,
+ 0x00, 0x66, 0x12, 0xc0, 0x05, 0xba, 0xab, 0x84, 0xce, 0xcb, 0x8a, 0x3c, 0x5a, 0x81, 0x03, 0x22,
+ 0x24, 0x46, 0xf9, 0x66, 0xe6, 0xe2, 0x2f, 0x22, 0x88, 0xdd, 0x4d, 0x1a, 0x8a, 0xee, 0x7d, 0x44,
+ 0xc4, 0xb2, 0xe7, 0x12, 0x63, 0x2b, 0x73, 0xef, 0x13, 0x91, 0x50, 0x11, 0xba, 0xc6, 0x52, 0x10,
+ 0x68, 0x11, 0x66, 0xc3, 0x6d, 0x9f, 0x58, 0xf6, 0x7a, 0x68, 0x85, 0xbb, 0x81, 0xe1, 0x66, 0x2e,
+ 0xd3, 0x78, 0x62, 0xf7, 0x01, 0x93, 0xa4, 0x4b, 0x50, 0x15, 0x83, 0x56, 0xa1, 0x43, 0x37, 0x42,
+ 0x77, 0x9d, 0x1d, 0x27, 0xc4, 0xc4, 0x1a, 0x6c, 0x13, 0xdb, 0xf0, 0x32, 0x37, 0x51, 0x74, 0xd9,
+ 0xdb, 0x55, 0xe5, 0xe8, 0x6a, 0x25, 0x89, 0x45, 0x3d, 0x98, 0xa3, 0x71, 0xeb, 0x23, 0x6b, 0x40,
+ 0x1e, 0x06, 0xd6, 0x16, 0x31, 0x46, 0x99, 0x1a, 0xc8, 0xd8, 0x62, 0x29, 0xba, 0x58, 0xd1, 0x71,
+ 0x11, 0xd3, 0x5d, 0x6f, 0x60, 0x0d, 0x39, 0xd3, 0xe7, 0xf3, 0x99, 0x62, 0xa9, 0x88, 0x29, 0x8e,
+ 0xd1, 0xea, 0xc8, 0xdb, 0xde, 0x36, 0xf6, 0x0a, 0xea, 0x28, 0xe4, 0xb4, 0x3a, 0x8a, 0x38, 0xca,
+ 0xe7, 0x7a, 0xa1, 0xb3, 0xe9, 0x0c, 0xc4, 0xf8, 0x75, 0x6d, 0xc3, 0xcf, 0xe4, 0x5b, 0x55, 0xc4,
+ 0xba, 0xeb, 0xdc, 0xb3, 0x94, 0xc2, 0xa2, 0x07, 0x80, 0xd4, 0x38, 0xa1, 0x54, 0x01, 0x63, 0x9c,
+ 0x1f, 0xc7, 0x28, 0x35, 0x2b, 0x03, 0x4f, 0x4b, 0x39, 0xb2, 0xf6, 0xe9, 0xf6, 0x76, 0xd1, 0xf7,
+ 0x2c, 0x7b, 0x60, 0x05, 0xa1, 0x11, 0x66, 0x96, 0x72, 0x8d, 0x8b, 0x75, 0xa5, 0x1c, 0x2d, 0x65,
+ 0x12, 0x4b, 0xf9, 0x76, 0xc8, 0xce, 0x06, 0xf1, 0x83, 0x6d, 0x67, 0x24, 0xca, 0xb8, 0x9b, 0xc9,
+ 0x77, 0x4f, 0x8a, 0xc5, 0x25, 0x4c, 0x61, 0xe9, 0x42, 0x9c, 0xf9, 0xa9, 0xd7, 0xf7, 0xdd, 0x01,
+ 0x57, 0x46, 0x41, 0xfa, 0x24, 0x73, 0x21, 0xce, 0x34, 0xa3, 0x1b, 0x0b, 0xc7, 0xd4, 0xd9, 0x34,
+ 0xe8, 0x7d, 0x38, 0xc2, 0x12, 0x16, 0x76, 0x43, 0x8f, 0xaf, 0x7f, 0x17, 0x6c, 0x9b, 0xd8, 0xc6,
+ 0x17, 0x32, 0x77, 0xd2, 0x9c, 0x3e, 0x21, 0xcb, 0x7c, 0x29, 0x19, 0x1c, 0xe8, 0x0e, 0x1c, 0x1c,
+ 0x5d, 0x18, 0x69, 0xa5, 0x7e, 0x9a, 0xb9, 0x28, 0x5f, 0xbb, 0xb0, 0x96, 0x2c, 0x6e, 0x12, 0x49,
+ 0x87, 0xb1, 0xb3, 0x33, 0xf2, 0xfc, 0xf0, 0x96, 0xe3, 0x3a, 0xc1, 0xb6, 0xb1, 0x9f, 0x39, 0x8c,
+ 0xfb, 0x4c, 0xa4, 0xcb, 0x65, 0xe8, 0x30, 0x56, 0x31, 0xe8, 0x12, 0x34, 0x07, 0xdb, 0x16, 0x2d,
+ 0x9d, 0xf1, 0x55, 0xee, 0x4c, 0x7e, 0x36, 0x81, 0x5f, 0xda, 0xb6, 0x42, 0xe1, 0x7e, 0x89, 0x44,
+ 0xd1, 0x35, 0x00, 0xfa, 0x53, 0xd4, 0xe0, 0x67, 0xca, 0x99, 0x76, 0x90, 0x01, 0x65, 0xe9, 0x15,
+ 0x00, 0x7a, 0x0f, 0x0e, 0xc7, 0x21, 0x6a, 0x00, 0xb8, 0x3f, 0xe1, 0x6b, 0xe5, 0x4c, 0x4b, 0xae,
+ 0xf0, 0x48, 0xd9, 0x5e, 0x09, 0x67, 0x51, 0xd0, 0xe9, 0x47, 0x8b, 0x8e, 0x2c, 0xdc, 0xcf, 0x66,
+ 0x7b, 0xe2, 0x75, 0x6a, 0x21, 0x4c, 0x3b, 0x2f, 0x8b, 0x24, 0xaa, 0xb5, 0x58, 0x44, 0x7c, 0x7d,
+ 0x4c, 0xad, 0xe5, 0x82, 0x41, 0x01, 0xa0, 0xbb, 0x70, 0x90, 0x86, 0x28, 0x19, 0x11, 0x2d, 0xf7,
+ 0xcd, 0x72, 0x66, 0xe7, 0x2b, 0xc5, 0x62, 0xd2, 0xb4, 0xf3, 0x13, 0xd0, 0xc5, 0x26, 0xd4, 0xf7,
+ 0xac, 0xe1, 0x2e, 0x31, 0xbf, 0x5b, 0x87, 0x1a, 0x05, 0x98, 0xff, 0x54, 0x86, 0x2a, 0xed, 0x9c,
+ 0x39, 0xa8, 0x38, 0xb6, 0xc1, 0x4f, 0x74, 0x2a, 0x8e, 0x8d, 0x0c, 0x68, 0x7a, 0x74, 0x3d, 0x2d,
+ 0xcf, 0x97, 0xa2, 0x20, 0x9a, 0x87, 0x59, 0x6b, 0x33, 0x24, 0xfe, 0x7d, 0x91, 0xdc, 0x60, 0xc9,
+ 0x5a, 0x1c, 0x55, 0x10, 0x71, 0x56, 0x25, 0x9c, 0x6c, 0x66, 0xe2, 0xfc, 0x89, 0xe6, 0x1d, 0x1d,
+ 0x6b, 0x45, 0xa2, 0xe8, 0x28, 0x34, 0x82, 0xdd, 0x8d, 0xbe, 0x1d, 0x18, 0xb5, 0x13, 0xd5, 0xb3,
+ 0x6d, 0x2c, 0x42, 0xe8, 0x6d, 0x98, 0xb5, 0xc9, 0x88, 0xb8, 0x36, 0x71, 0x07, 0x0e, 0x09, 0x8c,
+ 0x3a, 0x3b, 0x25, 0x7b, 0xb6, 0xcb, 0x4f, 0xd8, 0xba, 0xd1, 0x09, 0x5b, 0x77, 0x9d, 0x9d, 0xb0,
+ 0x61, 0x4d, 0xd8, 0xfc, 0x2c, 0x34, 0x44, 0x53, 0x26, 0xab, 0x18, 0x67, 0x57, 0xd1, 0xb2, 0xeb,
+ 0x42, 0x3d, 0xa0, 0x6d, 0x26, 0x8a, 0x6e, 0x64, 0x14, 0x9d, 0xb5, 0x29, 0xe6, 0x62, 0xe6, 0x26,
+ 0x34, 0x84, 0x8a, 0x26, 0x73, 0x50, 0x9a, 0xa1, 0xf2, 0xa3, 0x34, 0x43, 0x55, 0x2d, 0x97, 0xf9,
+ 0x65, 0x38, 0x98, 0xd4, 0xdc, 0x64, 0x86, 0x8b, 0xd0, 0xf6, 0xe5, 0xc8, 0xa8, 0x24, 0xb4, 0x37,
+ 0x95, 0x65, 0x57, 0x12, 0xe1, 0x18, 0x96, 0x9b, 0xfd, 0x03, 0xe8, 0xa4, 0x94, 0xbb, 0x03, 0x55,
+ 0xc7, 0xe6, 0xc7, 0x96, 0x6d, 0x4c, 0x7f, 0x52, 0xb4, 0x13, 0x50, 0x09, 0x96, 0x7d, 0x0b, 0x8b,
+ 0x50, 0x2e, 0xeb, 0x43, 0x98, 0x51, 0x74, 0x36, 0x6e, 0xfb, 0xf2, 0x44, 0x6d, 0x9f, 0xd7, 0x87,
+ 0xe6, 0xb7, 0x1a, 0xd0, 0x14, 0x07, 0x5a, 0xe6, 0x2a, 0xd4, 0xd8, 0xf1, 0xe2, 0x11, 0xa8, 0x3b,
+ 0xae, 0x4d, 0x9e, 0x32, 0xee, 0x3a, 0xe6, 0x01, 0xf4, 0x3a, 0x34, 0xc5, 0xe1, 0x96, 0x68, 0xb0,
+ 0xbc, 0xa3, 0xd2, 0x48, 0xcc, 0x7c, 0x1f, 0x9a, 0xd1, 0x31, 0xe3, 0x31, 0x68, 0x8f, 0x7c, 0x8f,
+ 0x4e, 0xd9, 0xfd, 0xa8, 0x1b, 0xe2, 0x08, 0xf4, 0x06, 0x34, 0x6d, 0x71, 0x90, 0x59, 0x11, 0x56,
+ 0x32, 0x47, 0x65, 0x23, 0x39, 0xf3, 0xab, 0x65, 0x68, 0xf0, 0xd3, 0x46, 0x73, 0x4f, 0xaa, 0xd5,
+ 0x9b, 0xd0, 0x18, 0xb0, 0x38, 0x23, 0x79, 0xd2, 0xa8, 0x95, 0x50, 0x1c, 0x5f, 0x62, 0x21, 0x4c,
+ 0x61, 0x01, 0x37, 0x64, 0x95, 0xb1, 0x30, 0xde, 0x97, 0x58, 0x08, 0xff, 0x8f, 0xe5, 0xfb, 0xa7,
+ 0x15, 0x38, 0xa0, 0x1f, 0x62, 0x1e, 0x83, 0xf6, 0x40, 0x1e, 0x8b, 0x8a, 0xd6, 0x95, 0x11, 0xe8,
+ 0x3e, 0xc0, 0x60, 0xe8, 0x10, 0x37, 0x64, 0x6e, 0xf4, 0x4a, 0xe6, 0xee, 0x2c, 0xf3, 0x4c, 0xb3,
+ 0xbb, 0x24, 0x61, 0x58, 0xa1, 0x40, 0x37, 0xa0, 0x1e, 0x0c, 0xbc, 0x11, 0x1f, 0xf7, 0x73, 0xca,
+ 0x76, 0x5d, 0x2f, 0xf6, 0xc2, 0x6e, 0xb8, 0xcd, 0x57, 0x80, 0x0b, 0x23, 0x67, 0x9d, 0x02, 0x30,
+ 0xc7, 0x99, 0x5f, 0x01, 0x88, 0xa9, 0xd1, 0x09, 0xb9, 0xe0, 0x5e, 0xb5, 0x76, 0xa2, 0xf2, 0xab,
+ 0x51, 0x8a, 0xc4, 0x9a, 0x15, 0x6e, 0x0b, 0x3b, 0xab, 0x46, 0xa1, 0x73, 0x70, 0x28, 0x70, 0xb6,
+ 0x5c, 0x2b, 0xdc, 0xf5, 0xc9, 0x23, 0xe2, 0x3b, 0x9b, 0x0e, 0xb1, 0x59, 0xf1, 0x5a, 0x38, 0x9d,
+ 0x60, 0xbe, 0x01, 0x87, 0xd2, 0x07, 0xb4, 0x63, 0x1b, 0xd1, 0xfc, 0xf9, 0x36, 0x34, 0xf8, 0xde,
+ 0xdb, 0xfc, 0x8f, 0x8a, 0xd4, 0x6b, 0xf3, 0xcf, 0xcb, 0x50, 0xe7, 0x67, 0x90, 0x49, 0x0b, 0x73,
+ 0x4b, 0xd5, 0xe9, 0x6a, 0xc6, 0xc6, 0x34, 0xeb, 0x4c, 0xb6, 0x7b, 0x87, 0xec, 0x3f, 0xa2, 0xf3,
+ 0x8e, 0x54, 0xf4, 0x5c, 0x7b, 0x70, 0x1b, 0x5a, 0x91, 0x30, 0xb5, 0x2e, 0x8f, 0xc9, 0xbe, 0xc8,
+ 0x9c, 0xfe, 0x44, 0xe7, 0xc4, 0xfc, 0x25, 0x87, 0x6a, 0x72, 0x3c, 0xf1, 0x5c, 0xc4, 0x24, 0xf7,
+ 0x59, 0xa8, 0xd2, 0xdd, 0x6e, 0xb2, 0x0a, 0xd3, 0x0f, 0xcb, 0xdc, 0xd2, 0x2e, 0x41, 0x9d, 0x9f,
+ 0x03, 0x27, 0xf3, 0x40, 0x50, 0x7b, 0x4c, 0xf6, 0x23, 0xab, 0xc4, 0x7e, 0xe7, 0x92, 0xfc, 0x59,
+ 0x15, 0x66, 0xd5, 0xb3, 0x2f, 0x73, 0x25, 0x77, 0x4a, 0x66, 0x93, 0x6c, 0x3c, 0x25, 0x8b, 0x20,
+ 0xb5, 0x6c, 0x8c, 0x8b, 0xa9, 0x46, 0x1b, 0xf3, 0x80, 0xd9, 0x85, 0x86, 0x38, 0x52, 0x4c, 0x32,
+ 0x49, 0xf9, 0x8a, 0x2a, 0x7f, 0x1b, 0x5a, 0xf2, 0x84, 0xf0, 0xc3, 0xe6, 0xed, 0x43, 0x4b, 0x1e,
+ 0x05, 0x1e, 0x81, 0x7a, 0xe8, 0x85, 0xd6, 0x90, 0xd1, 0x55, 0x31, 0x0f, 0x50, 0xbd, 0x74, 0xc9,
+ 0xd3, 0x70, 0x49, 0x5a, 0xde, 0x2a, 0x8e, 0x23, 0xb8, 0x61, 0x25, 0x7b, 0x3c, 0xb5, 0xca, 0x53,
+ 0x65, 0x44, 0x9c, 0x67, 0x4d, 0xcd, 0x73, 0x1f, 0x1a, 0xe2, 0x7c, 0x50, 0xa6, 0x97, 0x95, 0x74,
+ 0xb4, 0x00, 0xf5, 0x2d, 0x9a, 0x2e, 0x7a, 0xfd, 0xd5, 0xc4, 0xf8, 0xe6, 0xdb, 0xfe, 0x25, 0xcf,
+ 0x0d, 0xa9, 0x1a, 0xeb, 0x6e, 0x4f, 0xcc, 0x91, 0xb4, 0x0b, 0x7d, 0x7e, 0xd8, 0xcb, 0x07, 0xa1,
+ 0x08, 0x99, 0xdf, 0x2a, 0x43, 0x5b, 0x9e, 0xae, 0x9b, 0xef, 0xe7, 0x0d, 0x9e, 0x05, 0x38, 0xe0,
+ 0x0b, 0x29, 0x3a, 0x50, 0xa3, 0x21, 0xf4, 0x7c, 0xa2, 0x24, 0x58, 0x91, 0xc1, 0x3a, 0xc2, 0x7c,
+ 0x27, 0xb7, 0x53, 0xe7, 0x61, 0x36, 0x12, 0xbd, 0x13, 0xab, 0x9e, 0x16, 0x67, 0x9a, 0x12, 0x9d,
+ 0x9a, 0xb9, 0xcd, 0x4d, 0x98, 0x55, 0xcf, 0xd8, 0xcc, 0x47, 0xd9, 0xa3, 0xe7, 0x06, 0xcd, 0x46,
+ 0x39, 0xcf, 0xab, 0x24, 0x1c, 0x09, 0x51, 0x15, 0x62, 0x11, 0xac, 0x01, 0xcc, 0x67, 0xa1, 0xce,
+ 0x4f, 0xfe, 0x13, 0xcc, 0xe6, 0x6f, 0x0c, 0xa0, 0xce, 0x3a, 0xc1, 0xbc, 0xc8, 0x07, 0xc0, 0x39,
+ 0x68, 0x30, 0x2f, 0x56, 0x74, 0x2f, 0xea, 0x48, 0x56, 0x8f, 0x61, 0x21, 0x63, 0x2e, 0xc1, 0x8c,
+ 0x72, 0xe6, 0x4a, 0x35, 0x96, 0x25, 0x48, 0x2d, 0x88, 0x82, 0xc8, 0x84, 0x16, 0x9d, 0xa0, 0x85,
+ 0xcd, 0xa5, 0xf5, 0x97, 0x61, 0xf3, 0x94, 0x5c, 0x2d, 0x9a, 0xe2, 0x8c, 0xb9, 0x2f, 0x5b, 0x49,
+ 0x86, 0xcd, 0xcf, 0x40, 0x5b, 0x1e, 0xcd, 0xa2, 0xfb, 0x30, 0x2b, 0x8e, 0x66, 0xb9, 0x67, 0x89,
+ 0x0a, 0xcf, 0x15, 0x68, 0xd7, 0x03, 0xf2, 0x34, 0x64, 0xa7, 0xbb, 0xdd, 0x07, 0xfb, 0x23, 0x82,
+ 0x35, 0x02, 0xf3, 0x9b, 0x67, 0x59, 0xcb, 0x9b, 0x23, 0x68, 0xc9, 0xf3, 0xa8, 0x64, 0x2f, 0x5c,
+ 0xe1, 0xa6, 0xb1, 0x52, 0x78, 0x98, 0xca, 0xf1, 0xd4, 0x00, 0x33, 0x0b, 0x6a, 0x3e, 0x0f, 0xd5,
+ 0x3b, 0x64, 0x9f, 0x8e, 0x10, 0x6e, 0x48, 0xc5, 0x08, 0xe1, 0x06, 0xb3, 0x0f, 0x0d, 0x71, 0x2e,
+ 0x9c, 0xcc, 0xef, 0x3c, 0x34, 0x36, 0xf9, 0x51, 0x73, 0x81, 0xc9, 0x14, 0x62, 0xe6, 0x0d, 0x98,
+ 0x51, 0x4f, 0x83, 0x93, 0x7c, 0x27, 0x60, 0x66, 0xa0, 0x9c, 0x37, 0xf3, 0x6e, 0x50, 0xa3, 0x4c,
+ 0xa2, 0xab, 0x63, 0x8a, 0x61, 0x25, 0x53, 0x0f, 0x5f, 0xca, 0x6c, 0xf6, 0x31, 0xda, 0x78, 0x07,
+ 0x0e, 0x26, 0x8f, 0x7d, 0x93, 0x39, 0x9d, 0x85, 0x83, 0x1b, 0x89, 0x43, 0x66, 0x6e, 0x03, 0x93,
+ 0xd1, 0x66, 0x1f, 0xea, 0xfc, 0x58, 0x2e, 0x49, 0xf1, 0x3a, 0xd4, 0x2d, 0x76, 0xec, 0x57, 0x61,
+ 0x4b, 0x0b, 0x33, 0xb3, 0x94, 0x0c, 0x8a, 0xb9, 0xa0, 0xe9, 0xc0, 0x01, 0xfd, 0xa4, 0x2f, 0x49,
+ 0xd9, 0x83, 0x03, 0x7b, 0xda, 0x89, 0x22, 0xa7, 0x9e, 0xcf, 0xa4, 0xd6, 0xa8, 0xb0, 0x0e, 0x34,
+ 0xbf, 0xd6, 0x80, 0x1a, 0x3b, 0xaa, 0x4e, 0x66, 0x71, 0x19, 0x6a, 0x21, 0x79, 0x1a, 0xad, 0x8b,
+ 0xe7, 0xc7, 0x9e, 0x7b, 0x73, 0x7f, 0x29, 0x93, 0x47, 0x1f, 0xa7, 0x8b, 0xf8, 0xfd, 0x61, 0xb4,
+ 0x81, 0x3a, 0x39, 0x1e, 0xb8, 0x4e, 0x45, 0x31, 0x47, 0x50, 0x28, 0x1b, 0x0b, 0xe2, 0x6a, 0x45,
+ 0x01, 0x94, 0x0d, 0x42, 0xcc, 0x11, 0xe8, 0x06, 0x34, 0x07, 0xdb, 0x64, 0xf0, 0x98, 0xd8, 0xe2,
+ 0x4e, 0xc5, 0xe9, 0xf1, 0xe0, 0x25, 0x2e, 0x8c, 0x23, 0x14, 0xcd, 0x7b, 0xc0, 0x7a, 0xb7, 0x31,
+ 0x49, 0xde, 0xac, 0xc7, 0x31, 0x47, 0xa0, 0x15, 0x68, 0x3b, 0x03, 0xcf, 0x5d, 0xd9, 0xf1, 0x3e,
+ 0xe7, 0x88, 0xcb, 0x13, 0x2f, 0x8f, 0x87, 0xf7, 0x23, 0x71, 0x1c, 0x23, 0x23, 0x9a, 0xfe, 0x0e,
+ 0xdd, 0x31, 0xb6, 0x26, 0xa5, 0x61, 0xe2, 0x38, 0x46, 0x9a, 0xc7, 0x44, 0x7f, 0x66, 0x0f, 0xf2,
+ 0x5b, 0x50, 0x67, 0x4d, 0x8e, 0xae, 0xa9, 0xc9, 0x73, 0x4a, 0x4e, 0xb9, 0x16, 0x4b, 0x74, 0x95,
+ 0xe4, 0x61, 0xed, 0xaf, 0xf3, 0xcc, 0x4c, 0xc2, 0x23, 0xfa, 0x8d, 0xf3, 0xbc, 0x08, 0x4d, 0xd1,
+ 0x15, 0x7a, 0x81, 0x5b, 0x91, 0xc0, 0x0b, 0x50, 0xe7, 0x03, 0x33, 0xbb, 0x3e, 0x2f, 0x41, 0x5b,
+ 0x36, 0xe6, 0x78, 0x11, 0xd6, 0x3a, 0x39, 0x22, 0x3f, 0x57, 0x81, 0x3a, 0x3f, 0xb2, 0x4f, 0x9b,
+ 0x5a, 0x75, 0x14, 0x9c, 0x1c, 0x7f, 0x03, 0x40, 0x1d, 0x06, 0xb7, 0xd8, 0xe6, 0x90, 0xae, 0xe5,
+ 0xe5, 0x35, 0xdc, 0xb3, 0x05, 0xe8, 0xb5, 0x48, 0x1e, 0xc7, 0xd0, 0x82, 0xee, 0xbc, 0x0f, 0x6d,
+ 0x89, 0x42, 0x8b, 0x7a, 0x97, 0x9e, 0x1b, 0xdb, 0x15, 0xc9, 0x2c, 0x05, 0xe1, 0xaf, 0x96, 0xa1,
+ 0xba, 0xec, 0xec, 0xa5, 0xda, 0xe1, 0xad, 0x68, 0x54, 0x17, 0x99, 0x83, 0x65, 0x67, 0x4f, 0x1b,
+ 0xd4, 0xe6, 0x4a, 0xa4, 0x71, 0xef, 0xe8, 0xc5, 0x3b, 0x33, 0x7e, 0x05, 0x16, 0xd3, 0xf0, 0x82,
+ 0xfd, 0x52, 0x13, 0x6a, 0xec, 0x36, 0x4c, 0x96, 0x9d, 0xda, 0x1f, 0x15, 0x17, 0x8c, 0xf9, 0xdb,
+ 0xd9, 0x84, 0xcb, 0xe4, 0xb9, 0x9d, 0x8a, 0x1d, 0x3d, 0x27, 0xc7, 0x03, 0x35, 0xbf, 0xc3, 0x65,
+ 0xa8, 0xed, 0x38, 0x3b, 0x44, 0x98, 0xa9, 0x82, 0x2c, 0xef, 0x39, 0x3b, 0x04, 0x33, 0x79, 0x8a,
+ 0xdb, 0xb6, 0x82, 0x6d, 0x61, 0xa1, 0x0a, 0x70, 0x3d, 0x2b, 0xd8, 0xc6, 0x4c, 0x9e, 0xe2, 0x5c,
+ 0xba, 0x8b, 0x6c, 0x4c, 0x82, 0xa3, 0x9b, 0x4b, 0xcc, 0xe4, 0x29, 0x2e, 0x70, 0xbe, 0x40, 0x84,
+ 0x4d, 0x2a, 0xc0, 0xad, 0x3b, 0x5f, 0x20, 0x98, 0xc9, 0xc7, 0x26, 0xbc, 0x35, 0x59, 0xd3, 0x28,
+ 0x26, 0xfc, 0x01, 0xcc, 0x85, 0xda, 0x99, 0xae, 0xb8, 0x92, 0x75, 0xae, 0xa0, 0x5f, 0x34, 0x0c,
+ 0x4e, 0x70, 0xd0, 0x41, 0xc0, 0xf6, 0xcc, 0xd9, 0x83, 0xe0, 0x05, 0xa8, 0x7f, 0xd2, 0xb1, 0xc3,
+ 0x6d, 0x3d, 0xb9, 0xae, 0x99, 0x3c, 0xda, 0x6d, 0x53, 0x99, 0x3c, 0xb5, 0xd7, 0x39, 0xcf, 0x32,
+ 0xd4, 0xa8, 0xfa, 0x4c, 0xa7, 0xc7, 0xb1, 0xd6, 0x7d, 0x28, 0x03, 0xac, 0x36, 0x34, 0xe7, 0x39,
+ 0x06, 0x35, 0xaa, 0x21, 0x39, 0x4d, 0x72, 0x0c, 0x6a, 0x54, 0xef, 0xf2, 0x53, 0x69, 0x6f, 0xeb,
+ 0xa9, 0xd5, 0x28, 0xf5, 0x0c, 0xcc, 0xe9, 0xdd, 0x91, 0xc3, 0xf2, 0x27, 0x4d, 0xa8, 0xb1, 0xab,
+ 0x65, 0xc9, 0x11, 0xf9, 0x09, 0x38, 0xc0, 0xfb, 0x6f, 0x51, 0x2c, 0xc1, 0x2b, 0x99, 0x37, 0x4b,
+ 0xf5, 0x0b, 0x6b, 0x42, 0x05, 0x04, 0x04, 0xeb, 0x0c, 0x93, 0x2f, 0x2a, 0x18, 0x95, 0xa6, 0x91,
+ 0xef, 0xc8, 0xc5, 0x6b, 0xad, 0xe0, 0x5e, 0x23, 0xc3, 0xf2, 0x25, 0x70, 0xb4, 0x92, 0x45, 0x8b,
+ 0xd0, 0xa2, 0x53, 0x2b, 0x6d, 0x2e, 0x31, 0x6c, 0xcf, 0x8c, 0xc7, 0xf7, 0x85, 0x34, 0x96, 0x38,
+ 0x3a, 0xb1, 0x0f, 0x2c, 0xdf, 0x66, 0xa5, 0x12, 0x63, 0xf8, 0xe5, 0xf1, 0x24, 0x4b, 0x91, 0x38,
+ 0x8e, 0x91, 0xe8, 0x0e, 0xcc, 0xd8, 0x44, 0xfa, 0x09, 0xc4, 0xa0, 0xfe, 0xd8, 0x78, 0xa2, 0xe5,
+ 0x18, 0x80, 0x55, 0x34, 0x2d, 0x53, 0xb4, 0x37, 0x0c, 0x0a, 0x17, 0x1b, 0x8c, 0x2a, 0xbe, 0x3f,
+ 0x1e, 0x23, 0xcd, 0xd3, 0x70, 0x40, 0xeb, 0xb7, 0x8f, 0x74, 0xd5, 0xa1, 0xf6, 0x25, 0xe7, 0xb9,
+ 0x22, 0xb7, 0x28, 0xaf, 0xe9, 0xcb, 0x8e, 0xdc, 0x1d, 0x89, 0x00, 0xde, 0x85, 0x56, 0xd4, 0x31,
+ 0xe8, 0xa6, 0x5e, 0x86, 0x57, 0x8a, 0xcb, 0x20, 0xfb, 0x54, 0xb0, 0xad, 0x42, 0x5b, 0xf6, 0x10,
+ 0x5a, 0xd0, 0xe9, 0x5e, 0x2d, 0xa6, 0x8b, 0x7b, 0x57, 0xf0, 0x61, 0x98, 0x51, 0x3a, 0x0a, 0x2d,
+ 0xe9, 0x8c, 0xaf, 0x15, 0x33, 0xaa, 0xdd, 0x1c, 0xaf, 0x7a, 0x64, 0x8f, 0xa9, 0xbd, 0x52, 0x8d,
+ 0x7b, 0xe5, 0xf7, 0x9b, 0xd0, 0x92, 0xd7, 0x39, 0x33, 0xf6, 0x98, 0xbb, 0xfe, 0xb0, 0x70, 0x8f,
+ 0x19, 0xe1, 0xbb, 0x0f, 0xfd, 0x21, 0xa6, 0x08, 0xda, 0xc5, 0xa1, 0x13, 0xca, 0xa1, 0xfa, 0x72,
+ 0x31, 0xf4, 0x01, 0x15, 0xc7, 0x1c, 0x85, 0xee, 0xeb, 0x5a, 0x5e, 0x1b, 0x73, 0xdd, 0x47, 0x23,
+ 0xc9, 0xd5, 0xf4, 0x3e, 0xb4, 0x1d, 0xba, 0xf4, 0xeb, 0xc5, 0x33, 0xef, 0xab, 0xc5, 0x74, 0xfd,
+ 0x08, 0x82, 0x63, 0x34, 0x2d, 0xdb, 0xa6, 0xb5, 0x47, 0xc7, 0x35, 0x23, 0x6b, 0x4c, 0x5a, 0xb6,
+ 0x5b, 0x31, 0x08, 0xab, 0x0c, 0xe8, 0xaa, 0x58, 0xbb, 0x34, 0x0b, 0x2c, 0x4b, 0xdc, 0x54, 0xf1,
+ 0xfa, 0xe5, 0xbd, 0xd4, 0x4c, 0xcb, 0x87, 0xf1, 0xeb, 0x13, 0xb0, 0x8c, 0x9d, 0x6d, 0x69, 0x0f,
+ 0xf2, 0x95, 0x51, 0x7b, 0xd2, 0x1e, 0xd4, 0x4e, 0xc4, 0x9e, 0x87, 0xea, 0x43, 0x7f, 0x98, 0x3f,
+ 0x57, 0xb3, 0xee, 0xce, 0x49, 0x3e, 0xa9, 0x8f, 0x84, 0xfc, 0x05, 0xbd, 0xec, 0x93, 0x5c, 0x1e,
+ 0xa5, 0xd1, 0x73, 0x84, 0xae, 0x89, 0x09, 0xfd, 0x4d, 0x7d, 0xbc, 0xbd, 0x98, 0x18, 0x6f, 0x74,
+ 0x84, 0xad, 0xf9, 0x84, 0xdf, 0x68, 0x53, 0x66, 0xf2, 0x49, 0xe7, 0xc9, 0xdb, 0xd1, 0xfa, 0x63,
+ 0x2a, 0x4b, 0x91, 0x6c, 0x5b, 0xce, 0xf5, 0x8d, 0x32, 0xb4, 0xe4, 0x6d, 0xdd, 0xb4, 0x77, 0xbe,
+ 0xe5, 0x04, 0x3d, 0x62, 0xd9, 0xc4, 0x17, 0xe3, 0xf6, 0x95, 0xc2, 0x6b, 0xc0, 0xdd, 0xbe, 0x40,
+ 0x60, 0x89, 0x35, 0x4f, 0x40, 0x2b, 0x8a, 0xcd, 0xd9, 0x94, 0x7d, 0xbf, 0x02, 0x0d, 0x71, 0xcf,
+ 0x37, 0x59, 0x88, 0xeb, 0xd0, 0x18, 0x5a, 0xfb, 0xde, 0x6e, 0xb4, 0x65, 0x3a, 0x53, 0x70, 0x75,
+ 0xb8, 0x7b, 0x97, 0x49, 0x63, 0x81, 0x42, 0x6f, 0x43, 0x7d, 0xe8, 0xec, 0x38, 0xa1, 0x30, 0x1f,
+ 0xa7, 0x0b, 0xe1, 0xec, 0x46, 0x10, 0xc7, 0xd0, 0xcc, 0xd9, 0xf5, 0xbe, 0xe8, 0xe3, 0x8c, 0xc2,
+ 0xcc, 0x1f, 0x31, 0x69, 0x2c, 0x50, 0xe6, 0x6d, 0x68, 0xf0, 0xe2, 0x4c, 0x37, 0x49, 0xe8, 0x35,
+ 0x89, 0x35, 0x9d, 0x95, 0x2d, 0x67, 0x55, 0x7a, 0x1c, 0x1a, 0x3c, 0xf3, 0x1c, 0xad, 0xf9, 0xde,
+ 0x73, 0x6c, 0xbf, 0x33, 0x34, 0xef, 0xc6, 0x07, 0x8e, 0x1f, 0xfe, 0x2c, 0xc3, 0x7c, 0x00, 0x07,
+ 0x97, 0xad, 0xd0, 0xda, 0xb0, 0x02, 0x82, 0xc9, 0xc0, 0xf3, 0xed, 0x4c, 0x56, 0x9f, 0x27, 0x09,
+ 0x0f, 0x75, 0x3e, 0xab, 0x90, 0xfb, 0x89, 0xeb, 0xf0, 0x7f, 0x8f, 0xeb, 0xf0, 0x0f, 0x6a, 0x39,
+ 0xfe, 0xbc, 0x49, 0x3c, 0x19, 0x54, 0xe1, 0x52, 0x0e, 0xbd, 0xab, 0xfa, 0xda, 0xfb, 0x54, 0x01,
+ 0x52, 0x5b, 0x7c, 0x5f, 0xd5, 0x3d, 0x7a, 0x45, 0x58, 0xcd, 0xa5, 0x77, 0x33, 0xe9, 0xd2, 0x3b,
+ 0x53, 0x80, 0x4e, 0xf9, 0xf4, 0xae, 0xea, 0x3e, 0xbd, 0xa2, 0xdc, 0x55, 0xa7, 0xde, 0xff, 0x33,
+ 0x37, 0xda, 0xaf, 0xe5, 0xb8, 0x7d, 0x3e, 0xae, 0xbb, 0x7d, 0xc6, 0x68, 0xcd, 0x8f, 0xcb, 0xef,
+ 0xf3, 0xeb, 0x8d, 0x1c, 0xbf, 0xcf, 0x15, 0xcd, 0xef, 0x33, 0xa6, 0x64, 0x49, 0xc7, 0xcf, 0x55,
+ 0xdd, 0xf1, 0x73, 0xaa, 0x00, 0xa9, 0x79, 0x7e, 0xae, 0x68, 0x9e, 0x9f, 0xa2, 0x4c, 0x15, 0xd7,
+ 0xcf, 0x15, 0xcd, 0xf5, 0x53, 0x04, 0x54, 0x7c, 0x3f, 0x57, 0x34, 0xdf, 0x4f, 0x11, 0x50, 0x71,
+ 0xfe, 0x5c, 0xd1, 0x9c, 0x3f, 0x45, 0x40, 0xc5, 0xfb, 0x73, 0x55, 0xf7, 0xfe, 0x14, 0xb7, 0x8f,
+ 0xd2, 0xe9, 0x3f, 0x71, 0xd4, 0xfc, 0x37, 0x3a, 0x6a, 0x7e, 0xb1, 0x9a, 0xe3, 0x80, 0xc1, 0xd9,
+ 0x0e, 0x98, 0x73, 0xf9, 0x3d, 0x59, 0xec, 0x81, 0x99, 0x7c, 0x16, 0x48, 0xbb, 0x60, 0xae, 0x25,
+ 0x5c, 0x30, 0xa7, 0x0b, 0xc0, 0xba, 0x0f, 0xe6, 0xff, 0x8c, 0x93, 0xe1, 0x77, 0x1b, 0x63, 0xf6,
+ 0xd3, 0x6f, 0xa9, 0xfb, 0xe9, 0x31, 0x33, 0x59, 0x7a, 0x43, 0x7d, 0x5d, 0xdf, 0x50, 0x9f, 0x9d,
+ 0x00, 0xab, 0xed, 0xa8, 0xd7, 0xb2, 0x76, 0xd4, 0xdd, 0x09, 0x58, 0x72, 0xb7, 0xd4, 0xb7, 0xd3,
+ 0x5b, 0xea, 0x73, 0x13, 0xf0, 0x65, 0xee, 0xa9, 0xd7, 0xb2, 0xf6, 0xd4, 0x93, 0x94, 0x2e, 0x77,
+ 0x53, 0xfd, 0xb6, 0xb6, 0xa9, 0x7e, 0x79, 0x92, 0xe6, 0x8a, 0x27, 0x87, 0x4f, 0xe5, 0xec, 0xaa,
+ 0xdf, 0x98, 0x84, 0x66, 0xbc, 0x13, 0xfb, 0x27, 0xfb, 0x62, 0x3d, 0x9b, 0xdf, 0x79, 0x11, 0x5a,
+ 0xd1, 0x45, 0x1b, 0xf3, 0xf3, 0xd0, 0x8c, 0x3e, 0xee, 0xcc, 0xb8, 0xa9, 0x2b, 0x36, 0x75, 0x7c,
+ 0xf5, 0x2c, 0x42, 0xe8, 0x3a, 0xd4, 0xe8, 0x2f, 0x31, 0x2c, 0x5e, 0x99, 0xec, 0x42, 0x0f, 0xcd,
+ 0x04, 0x33, 0x9c, 0xf9, 0xef, 0x47, 0x00, 0x94, 0x6f, 0xde, 0x26, 0xcd, 0xf6, 0x5d, 0x6a, 0xcc,
+ 0x86, 0x21, 0xf1, 0xd9, 0x45, 0xae, 0xc2, 0x6f, 0xc2, 0xe2, 0x1c, 0xa8, 0xb6, 0x84, 0xc4, 0xc7,
+ 0x02, 0x8e, 0xee, 0x41, 0x2b, 0x72, 0xa4, 0xb2, 0x2b, 0xcf, 0x79, 0x4a, 0x96, 0x45, 0x15, 0xb9,
+ 0xf6, 0xb0, 0xa4, 0x40, 0x0b, 0x50, 0x0b, 0x3c, 0x3f, 0x14, 0xf7, 0xa3, 0x5f, 0x9b, 0x98, 0x6a,
+ 0xdd, 0xf3, 0x43, 0xcc, 0xa0, 0xbc, 0x6a, 0xca, 0x93, 0x02, 0xd3, 0x54, 0x4d, 0xb3, 0xd8, 0xff,
+ 0x56, 0x95, 0x36, 0x74, 0x49, 0x8c, 0x46, 0xae, 0x43, 0xe7, 0x27, 0xef, 0x25, 0x75, 0x54, 0x22,
+ 0xb1, 0x08, 0xe2, 0x3d, 0xc1, 0xd7, 0x37, 0xaf, 0x40, 0x67, 0xe0, 0xed, 0x11, 0x1f, 0xc7, 0x57,
+ 0x9c, 0xc4, 0x2d, 0xb4, 0x54, 0x3c, 0x32, 0xa1, 0xb5, 0xed, 0xd8, 0xa4, 0x3f, 0x10, 0xf6, 0xaf,
+ 0x85, 0x65, 0x18, 0xdd, 0x81, 0x16, 0xf3, 0xb1, 0x47, 0x1e, 0xfe, 0xe9, 0x0a, 0xc9, 0x5d, 0xfd,
+ 0x11, 0x01, 0xcd, 0x88, 0x65, 0x7e, 0xcb, 0x09, 0x59, 0x1b, 0xb6, 0xb0, 0x0c, 0xd3, 0x02, 0xb3,
+ 0x7b, 0x64, 0x6a, 0x81, 0x9b, 0xbc, 0xc0, 0xc9, 0x78, 0x74, 0x09, 0x9e, 0x61, 0x71, 0x89, 0x2d,
+ 0x26, 0x77, 0xd5, 0xb7, 0x70, 0x76, 0x22, 0xbb, 0x37, 0x67, 0x6d, 0xf1, 0x0f, 0x88, 0x98, 0xf3,
+ 0xae, 0x8e, 0xe3, 0x08, 0x74, 0x0e, 0x0e, 0xd9, 0x64, 0xd3, 0xda, 0x1d, 0x86, 0x0f, 0xc8, 0xce,
+ 0x68, 0x68, 0x85, 0xa4, 0x6f, 0xb3, 0x57, 0x0d, 0xda, 0x38, 0x9d, 0x80, 0x5e, 0x87, 0xc3, 0x22,
+ 0x92, 0x0f, 0x63, 0xda, 0x1b, 0x7d, 0x9b, 0x7d, 0xe4, 0xdf, 0xc6, 0x59, 0x49, 0xe6, 0xf7, 0x6a,
+ 0xb4, 0xd3, 0x99, 0x6a, 0xbf, 0x0b, 0x55, 0xcb, 0xb6, 0xc5, 0xb4, 0x79, 0x71, 0xca, 0x01, 0x22,
+ 0xbe, 0x1c, 0xa1, 0x0c, 0x68, 0x4d, 0x5e, 0xb9, 0xe3, 0x13, 0xe7, 0xe5, 0x69, 0xb9, 0xe4, 0x63,
+ 0x2b, 0x82, 0x87, 0x32, 0xee, 0xf2, 0x2f, 0x29, 0xaa, 0x3f, 0x1a, 0xa3, 0xfc, 0x3c, 0x45, 0xf0,
+ 0xa0, 0xdb, 0x50, 0x63, 0x25, 0xe4, 0x13, 0xeb, 0xa5, 0x69, 0xf9, 0xee, 0xf1, 0xf2, 0x31, 0x0e,
+ 0x73, 0xc0, 0xef, 0xbe, 0x29, 0x17, 0x2e, 0xcb, 0xfa, 0x85, 0xcb, 0x45, 0xa8, 0x3b, 0x21, 0xd9,
+ 0x49, 0xdf, 0xbf, 0x1d, 0xab, 0xaa, 0xc2, 0xf2, 0x70, 0xe8, 0xd8, 0x7b, 0x80, 0xef, 0xe7, 0x7e,
+ 0xce, 0x70, 0x13, 0x6a, 0x14, 0x9e, 0x5a, 0x4b, 0x4e, 0x92, 0x31, 0x43, 0x9a, 0x17, 0xa0, 0x46,
+ 0x2b, 0x3b, 0xa6, 0x76, 0xa2, 0x3c, 0x15, 0x59, 0x9e, 0xc5, 0x19, 0x68, 0x7b, 0x23, 0xe2, 0xb3,
+ 0x81, 0x61, 0xfe, 0x6b, 0x4d, 0xb9, 0x14, 0xd7, 0x57, 0x75, 0xec, 0xcd, 0xa9, 0x2d, 0xa7, 0xaa,
+ 0x65, 0x38, 0xa1, 0x65, 0x6f, 0x4d, 0xcf, 0x96, 0xd2, 0x33, 0x9c, 0xd0, 0xb3, 0x1f, 0x81, 0x33,
+ 0xa5, 0x69, 0x77, 0x35, 0x4d, 0xbb, 0x3c, 0x3d, 0xa3, 0xa6, 0x6b, 0xa4, 0x48, 0xd7, 0x96, 0x75,
+ 0x5d, 0xeb, 0x4e, 0xd6, 0xe5, 0x72, 0x6a, 0x9a, 0x40, 0xdb, 0x3e, 0x93, 0xab, 0x6d, 0x8b, 0x9a,
+ 0xb6, 0x4d, 0x9b, 0xf5, 0x47, 0xa4, 0x6f, 0xdf, 0xa9, 0x41, 0x8d, 0x4e, 0x8f, 0x68, 0x45, 0xd5,
+ 0xb5, 0x37, 0xa6, 0x9a, 0x5a, 0x55, 0x3d, 0x5b, 0x4d, 0xe8, 0xd9, 0xa5, 0xe9, 0x98, 0x52, 0x3a,
+ 0xb6, 0x9a, 0xd0, 0xb1, 0x29, 0xf9, 0x52, 0xfa, 0xd5, 0xd3, 0xf4, 0xeb, 0xc2, 0x74, 0x6c, 0x9a,
+ 0x6e, 0x59, 0x45, 0xba, 0x75, 0x53, 0xd7, 0xad, 0x09, 0x57, 0x6f, 0x6c, 0xad, 0x32, 0x81, 0x5e,
+ 0xbd, 0x97, 0xab, 0x57, 0xd7, 0x35, 0xbd, 0x9a, 0x26, 0xdb, 0x8f, 0x48, 0xa7, 0x2e, 0xf1, 0x45,
+ 0x67, 0xfe, 0x57, 0x69, 0x59, 0x8b, 0x4e, 0xf3, 0x4d, 0x68, 0xc7, 0x8f, 0x86, 0x64, 0x5c, 0xcf,
+ 0xe7, 0x62, 0x51, 0xae, 0x51, 0xd0, 0xbc, 0x08, 0xed, 0xf8, 0x21, 0x90, 0xac, 0x2f, 0xe0, 0x58,
+ 0xa2, 0xfc, 0x7a, 0x8a, 0x85, 0xcc, 0x15, 0x38, 0x94, 0x7e, 0xa6, 0x20, 0xc3, 0x0f, 0xaf, 0xdc,
+ 0x2d, 0x8f, 0xbe, 0x5e, 0x51, 0xa2, 0xcc, 0x27, 0x30, 0x97, 0x78, 0x78, 0x60, 0x6a, 0x0e, 0x74,
+ 0x51, 0x59, 0x22, 0x57, 0x13, 0x9f, 0x9a, 0xea, 0xb7, 0xe5, 0xe3, 0x85, 0xb0, 0xb9, 0x0c, 0x73,
+ 0x05, 0x85, 0x9f, 0xe4, 0xb2, 0xfc, 0x67, 0x61, 0x66, 0x5c, 0xd9, 0x3f, 0x82, 0xcb, 0xfc, 0x21,
+ 0x74, 0x52, 0x8f, 0xa6, 0x24, 0xb3, 0x59, 0x03, 0xd8, 0x92, 0x32, 0x42, 0x69, 0x5f, 0x9f, 0xe2,
+ 0xd3, 0x05, 0x86, 0xc3, 0x0a, 0x87, 0xf9, 0xdb, 0x65, 0x38, 0x94, 0x7e, 0x31, 0x65, 0xd2, 0xcd,
+ 0x8f, 0x01, 0x4d, 0xc6, 0x25, 0xbf, 0xf8, 0x88, 0x82, 0xe8, 0x1e, 0xcc, 0x06, 0x43, 0x67, 0x40,
+ 0x96, 0xb6, 0x2d, 0x77, 0x8b, 0x04, 0x62, 0x47, 0x53, 0xf0, 0xea, 0xc9, 0x7a, 0x8c, 0xc0, 0x1a,
+ 0xdc, 0x7c, 0x02, 0x33, 0x4a, 0x22, 0x7a, 0x07, 0x2a, 0xde, 0x28, 0x75, 0xaf, 0x31, 0x9f, 0xf3,
+ 0x7e, 0x34, 0xde, 0x70, 0xc5, 0x1b, 0xa5, 0x87, 0xa4, 0x3a, 0x7c, 0xab, 0xda, 0xf0, 0x35, 0xef,
+ 0xc0, 0xa1, 0xf4, 0xa3, 0x24, 0xc9, 0xe6, 0x39, 0x93, 0xf2, 0x12, 0xf0, 0x66, 0x4a, 0x6e, 0xf9,
+ 0xaf, 0xc0, 0xc1, 0xe4, 0x53, 0x23, 0x19, 0x5f, 0xe3, 0xc4, 0x1f, 0x35, 0x45, 0xee, 0xfa, 0xf9,
+ 0x5f, 0x28, 0xc3, 0x9c, 0x5e, 0x11, 0x74, 0x14, 0x90, 0x1e, 0xb3, 0xea, 0xb9, 0xa4, 0x53, 0x42,
+ 0xcf, 0xc0, 0x21, 0x3d, 0x7e, 0xc1, 0xb6, 0x3b, 0xe5, 0xb4, 0x38, 0x35, 0x5b, 0x9d, 0x0a, 0x32,
+ 0xe0, 0x48, 0xa2, 0x85, 0x98, 0x11, 0xed, 0x54, 0xd1, 0x73, 0xf0, 0x4c, 0x32, 0x65, 0x34, 0xb4,
+ 0x06, 0xa4, 0x53, 0x33, 0x7f, 0x58, 0x81, 0xda, 0xc3, 0x80, 0xf8, 0xe6, 0xbf, 0x54, 0xa2, 0xaf,
+ 0x34, 0xde, 0x82, 0x1a, 0x7b, 0x05, 0x44, 0xf9, 0x82, 0xb2, 0x9c, 0xf8, 0x82, 0x52, 0xfb, 0x0a,
+ 0x2f, 0xfe, 0x82, 0xf2, 0x2d, 0xa8, 0xb1, 0x77, 0x3f, 0xa6, 0x47, 0x7e, 0xbd, 0x0c, 0xed, 0xf8,
+ 0x0d, 0x8e, 0xa9, 0xf1, 0xea, 0x57, 0x21, 0x15, 0xfd, 0xab, 0x90, 0x57, 0xa0, 0xee, 0xb3, 0xef,
+ 0x37, 0xb8, 0x95, 0x49, 0x7e, 0x6b, 0xc2, 0x32, 0xc4, 0x5c, 0xc4, 0x24, 0x30, 0xa3, 0xbe, 0x30,
+ 0x32, 0x7d, 0x31, 0x4e, 0x89, 0xe7, 0xc5, 0xfa, 0x76, 0xb0, 0xe0, 0xfb, 0xd6, 0xbe, 0x50, 0x4c,
+ 0x3d, 0xd2, 0x3c, 0x06, 0xb5, 0x35, 0xc7, 0xdd, 0xca, 0xfe, 0x70, 0xd5, 0xfc, 0xa3, 0x32, 0x34,
+ 0xc5, 0xe5, 0x5d, 0xf3, 0x0a, 0x54, 0x57, 0xc9, 0x13, 0x5a, 0x10, 0x71, 0x6d, 0x38, 0x55, 0x90,
+ 0x7b, 0xac, 0x16, 0x42, 0x1e, 0x47, 0x62, 0xe6, 0x55, 0x39, 0x4d, 0x4e, 0x8f, 0x7d, 0x0b, 0x6a,
+ 0xec, 0x61, 0x90, 0xe9, 0x91, 0x7f, 0xdc, 0x82, 0x06, 0xff, 0xfa, 0xd3, 0xfc, 0xbd, 0x16, 0x34,
+ 0xf8, 0x63, 0x21, 0xe8, 0x3a, 0x34, 0x83, 0xdd, 0x9d, 0x1d, 0xcb, 0xdf, 0x37, 0xb2, 0x3f, 0xbc,
+ 0xd7, 0xde, 0x16, 0xe9, 0xae, 0x73, 0x59, 0x1c, 0x81, 0xd0, 0x9b, 0x50, 0x1b, 0x58, 0x9b, 0x24,
+ 0x75, 0x9c, 0x9b, 0x05, 0x5e, 0xb2, 0x36, 0x09, 0x66, 0xe2, 0xe8, 0x26, 0xb4, 0x44, 0xb7, 0x04,
+ 0xc2, 0x9f, 0x33, 0x3e, 0xdf, 0xa8, 0x33, 0x25, 0xca, 0xbc, 0x0d, 0x4d, 0x51, 0x18, 0x74, 0x43,
+ 0x7e, 0xfb, 0x9a, 0xf4, 0x3c, 0x67, 0x56, 0x41, 0xbe, 0x22, 0x21, 0xbf, 0x82, 0xfd, 0x8b, 0x0a,
+ 0xd4, 0x68, 0xe1, 0x3e, 0x34, 0x13, 0x3a, 0x0e, 0x30, 0xb4, 0x82, 0x70, 0x6d, 0x77, 0x38, 0x24,
+ 0xb6, 0xf8, 0xc2, 0x4e, 0x89, 0x41, 0x67, 0xe1, 0x20, 0x0f, 0x05, 0xdb, 0xeb, 0xbb, 0x83, 0x01,
+ 0x91, 0x5f, 0x96, 0x26, 0xa3, 0xd1, 0x02, 0xd4, 0xd9, 0xf3, 0x95, 0x62, 0x55, 0xf8, 0x6a, 0x61,
+ 0xcb, 0x76, 0xd7, 0x1c, 0x57, 0x94, 0x86, 0x23, 0x4d, 0x0f, 0xda, 0x32, 0x8e, 0x0e, 0xc2, 0x91,
+ 0xe3, 0xba, 0x8e, 0xbb, 0x25, 0x34, 0x3a, 0x0a, 0xd2, 0x49, 0x87, 0xfe, 0x14, 0xe5, 0xad, 0x63,
+ 0x11, 0xa2, 0xf1, 0x9b, 0x96, 0x33, 0x14, 0x45, 0xac, 0x63, 0x11, 0xa2, 0x4c, 0xbb, 0xe2, 0x89,
+ 0x95, 0x1a, 0xab, 0x60, 0x14, 0x34, 0x3f, 0x28, 0xcb, 0x0f, 0xc0, 0xb3, 0x3e, 0xce, 0x4c, 0xf9,
+ 0x92, 0x8e, 0xa9, 0x0e, 0x6d, 0x3e, 0x21, 0x28, 0x2e, 0xea, 0xa3, 0xd0, 0xf0, 0xdc, 0xa1, 0xe3,
+ 0x12, 0xe1, 0x3b, 0x12, 0xa1, 0x44, 0x1b, 0xd7, 0x53, 0x6d, 0x2c, 0xd2, 0x57, 0x6c, 0x87, 0x16,
+ 0xb1, 0x11, 0xa7, 0xf3, 0x18, 0x74, 0x0d, 0x9a, 0x36, 0xd9, 0x73, 0x06, 0x24, 0x30, 0x9a, 0x4c,
+ 0xf5, 0x4e, 0x8e, 0x6d, 0xdb, 0x65, 0x26, 0x8b, 0x23, 0x8c, 0x19, 0x42, 0x83, 0x47, 0xc9, 0x2a,
+ 0x95, 0x95, 0x2a, 0xc5, 0x85, 0xae, 0x8c, 0x29, 0x74, 0xb5, 0xa0, 0xd0, 0xb5, 0x64, 0xa1, 0xe7,
+ 0xbf, 0x04, 0x10, 0xab, 0x1b, 0x9a, 0x81, 0xe6, 0x43, 0xf7, 0xb1, 0xeb, 0x3d, 0x71, 0x3b, 0x25,
+ 0x1a, 0xb8, 0xbf, 0xb9, 0x49, 0x73, 0xe9, 0x94, 0x69, 0x80, 0xca, 0x39, 0xee, 0x56, 0xa7, 0x82,
+ 0x00, 0x1a, 0x34, 0x40, 0xec, 0x4e, 0x95, 0xfe, 0xbe, 0xc5, 0xfa, 0xaf, 0x53, 0x43, 0xcf, 0xc2,
+ 0xe1, 0xbe, 0x3b, 0xf0, 0x76, 0x46, 0x56, 0xe8, 0x6c, 0x0c, 0xc9, 0x23, 0xe2, 0x07, 0x8e, 0xe7,
+ 0x76, 0xea, 0x74, 0xf6, 0x5a, 0x25, 0xe1, 0x13, 0xcf, 0x7f, 0xbc, 0x4a, 0x88, 0x2d, 0x5e, 0x2f,
+ 0xe9, 0x34, 0xcc, 0xff, 0x2c, 0xf3, 0xd3, 0x60, 0xf3, 0x26, 0xcc, 0x6a, 0x6f, 0x01, 0x19, 0xf1,
+ 0xcb, 0xe4, 0x89, 0x87, 0xc9, 0x8f, 0x32, 0x7f, 0x2d, 0x89, 0x97, 0x32, 0x3c, 0x64, 0xde, 0x02,
+ 0x50, 0x5e, 0x00, 0x3a, 0x0e, 0xb0, 0xb1, 0x1f, 0x92, 0x80, 0xbf, 0xfe, 0x43, 0x29, 0x6a, 0x58,
+ 0x89, 0x51, 0xf9, 0x2b, 0x1a, 0xbf, 0x79, 0x19, 0x40, 0x79, 0xff, 0x87, 0x8e, 0x2b, 0x1a, 0x5a,
+ 0x4c, 0x92, 0x25, 0xa3, 0xcd, 0xae, 0xa8, 0x41, 0xf4, 0xd2, 0x4f, 0x54, 0x02, 0xee, 0xbd, 0x53,
+ 0x4b, 0xc0, 0x62, 0xcc, 0x15, 0x80, 0xf8, 0xb1, 0x1b, 0xf3, 0x8a, 0x34, 0xdd, 0xaf, 0x41, 0xcd,
+ 0xb6, 0x42, 0x4b, 0x58, 0xcd, 0xe7, 0x12, 0x33, 0x57, 0x0c, 0xc1, 0x4c, 0xcc, 0xfc, 0xad, 0x32,
+ 0xcc, 0xaa, 0x0f, 0xfb, 0x98, 0xef, 0x42, 0x8d, 0xbd, 0x0c, 0x74, 0x03, 0x66, 0xd5, 0x97, 0x7d,
+ 0x52, 0x2f, 0xb8, 0x73, 0x3e, 0x15, 0x8a, 0x35, 0x80, 0xd9, 0x97, 0x45, 0xfa, 0xd0, 0x54, 0xaf,
+ 0x43, 0x53, 0x3c, 0x14, 0x64, 0x9e, 0x86, 0x76, 0xfc, 0x2e, 0x10, 0xb5, 0x1d, 0x3c, 0x3e, 0xea,
+ 0x65, 0x11, 0x34, 0xff, 0xb9, 0x06, 0x75, 0xd6, 0x9d, 0xe6, 0x57, 0x2b, 0xaa, 0x86, 0x9a, 0x3f,
+ 0x2c, 0xe7, 0xee, 0x05, 0x2f, 0x6a, 0x4f, 0x15, 0xcc, 0xa5, 0xde, 0xc3, 0x12, 0xcf, 0x00, 0xe9,
+ 0x86, 0xf5, 0x32, 0x34, 0x5d, 0xae, 0x99, 0xe2, 0xa5, 0x80, 0x63, 0x99, 0x28, 0xa1, 0xbd, 0x38,
+ 0x12, 0x46, 0x97, 0xa0, 0x4e, 0x7c, 0xdf, 0xf3, 0xd9, 0x90, 0x9a, 0x4b, 0xbd, 0x2c, 0x15, 0x3f,
+ 0x39, 0xb4, 0x42, 0xa5, 0x30, 0x17, 0x46, 0x97, 0xe0, 0x99, 0x80, 0x8f, 0x22, 0xbe, 0xa6, 0x0c,
+ 0xc4, 0x77, 0xd5, 0xc2, 0xda, 0x64, 0x27, 0x9a, 0x01, 0x1c, 0x4c, 0xbe, 0x22, 0x64, 0x42, 0x8b,
+ 0xaf, 0x4d, 0xe5, 0x00, 0x91, 0x61, 0xaa, 0x79, 0xfc, 0xf7, 0x6a, 0x6c, 0x17, 0x95, 0x18, 0xba,
+ 0x5e, 0x79, 0xc2, 0xa8, 0xa2, 0xe3, 0x64, 0x6e, 0x21, 0xf5, 0xc8, 0xf9, 0x4f, 0x44, 0xb3, 0xba,
+ 0x32, 0xda, 0x4b, 0xaa, 0x19, 0x28, 0xa3, 0x36, 0xd4, 0x59, 0xed, 0x3a, 0x15, 0xd5, 0x56, 0x54,
+ 0x73, 0x46, 0x7b, 0x6d, 0xfe, 0x22, 0x34, 0x45, 0x3c, 0x95, 0x5f, 0xe0, 0x0d, 0xd6, 0x29, 0xa1,
+ 0x59, 0x68, 0xad, 0x93, 0xe1, 0x66, 0xcf, 0x0b, 0xc2, 0x4e, 0x19, 0x1d, 0x80, 0x36, 0x1b, 0x80,
+ 0xf7, 0xdd, 0xe1, 0x7e, 0xa7, 0x32, 0xff, 0x1e, 0xb4, 0x65, 0x33, 0xa2, 0x16, 0xd4, 0x56, 0x77,
+ 0x87, 0xc3, 0x4e, 0x89, 0xad, 0x87, 0x43, 0xcf, 0x8f, 0xbc, 0xe1, 0x2b, 0x4f, 0xe9, 0xe4, 0xd6,
+ 0x29, 0xe7, 0x99, 0xa0, 0x0a, 0xea, 0xc0, 0xac, 0xc8, 0x9c, 0x97, 0xb9, 0x6a, 0x7e, 0xb7, 0x0c,
+ 0x6d, 0xf9, 0xc8, 0x12, 0x5d, 0x8c, 0x46, 0x8a, 0x95, 0x6f, 0x7c, 0xae, 0x24, 0x54, 0x2c, 0xff,
+ 0xcd, 0xa6, 0x84, 0x9a, 0x9d, 0x81, 0x39, 0x61, 0xe7, 0xa3, 0x1e, 0xe7, 0xa6, 0x3a, 0x11, 0x3b,
+ 0x7f, 0x5b, 0xb6, 0x7a, 0x87, 0x8d, 0xeb, 0x25, 0xcf, 0x75, 0xc9, 0x20, 0x64, 0x6d, 0x7f, 0x10,
+ 0x66, 0x56, 0xbd, 0x70, 0xcd, 0x0b, 0x02, 0x5a, 0x33, 0xde, 0x52, 0x71, 0x7a, 0x05, 0xcd, 0x01,
+ 0x44, 0x17, 0xdc, 0xa8, 0x65, 0x36, 0x7f, 0xb3, 0x0c, 0x0d, 0xfe, 0xf4, 0x93, 0xf9, 0x2b, 0x65,
+ 0x68, 0x88, 0xe7, 0x9e, 0x5e, 0x81, 0x8e, 0xef, 0x51, 0xe2, 0x68, 0x17, 0xd3, 0x5f, 0x16, 0xb5,
+ 0x4c, 0xc5, 0xd3, 0x8d, 0xb5, 0xa7, 0xa8, 0xa2, 0x58, 0x77, 0x68, 0x71, 0xe8, 0x2a, 0x00, 0x7f,
+ 0x4e, 0xea, 0xc1, 0xbe, 0x7c, 0x6d, 0x23, 0x79, 0xaf, 0x4d, 0x3c, 0x40, 0xc5, 0x4e, 0x80, 0x14,
+ 0xe9, 0xf9, 0x2f, 0xc2, 0x01, 0x4c, 0x82, 0x91, 0xe7, 0x06, 0xe4, 0xc7, 0xf5, 0xef, 0x33, 0x72,
+ 0xff, 0x11, 0xc6, 0xfc, 0x77, 0xea, 0x50, 0x67, 0x4b, 0x5a, 0xf3, 0xaf, 0xea, 0x72, 0xf1, 0x9d,
+ 0x32, 0x2a, 0x17, 0xd4, 0xdb, 0x45, 0xaa, 0x75, 0xd0, 0x56, 0xc3, 0xfa, 0xad, 0xa2, 0xb7, 0xa1,
+ 0x35, 0xf2, 0xbd, 0x2d, 0x9f, 0x2e, 0xa2, 0x6b, 0x89, 0xe7, 0x9d, 0x74, 0xd8, 0x9a, 0x10, 0xc3,
+ 0x12, 0xa0, 0x2a, 0x5f, 0x5d, 0x57, 0xbe, 0x9b, 0xd0, 0xb6, 0x7d, 0x6f, 0xc4, 0xbe, 0x8b, 0x17,
+ 0x27, 0x7a, 0x27, 0x72, 0x78, 0x97, 0x23, 0xb9, 0x5e, 0x09, 0xc7, 0x20, 0xaa, 0xbe, 0xbc, 0xf5,
+ 0xc5, 0x61, 0xfa, 0x0b, 0x39, 0x70, 0xde, 0x5f, 0xbd, 0x12, 0x16, 0xe2, 0x14, 0x48, 0x9e, 0x32,
+ 0x60, 0x6b, 0x2c, 0x70, 0xe5, 0x69, 0x04, 0xe4, 0xe2, 0xe8, 0x1a, 0xb4, 0x02, 0x6b, 0x8f, 0xb0,
+ 0xc7, 0xb2, 0xdb, 0x63, 0x9b, 0x62, 0x5d, 0x88, 0xf5, 0x4a, 0x58, 0x42, 0x68, 0x95, 0x77, 0x9c,
+ 0x2d, 0xbe, 0x7d, 0x15, 0x2f, 0x76, 0xe7, 0x55, 0xf9, 0x5e, 0x24, 0xc7, 0x9e, 0x57, 0x8f, 0x02,
+ 0x74, 0xbb, 0xc5, 0xed, 0xf4, 0x0c, 0x3f, 0xab, 0x66, 0x01, 0x73, 0x06, 0xda, 0xb2, 0x89, 0xcc,
+ 0x96, 0x1c, 0x26, 0x2d, 0x68, 0xf0, 0x1a, 0x98, 0x00, 0xad, 0xa8, 0x40, 0x54, 0x58, 0x92, 0x9b,
+ 0xab, 0xd0, 0x8a, 0x3a, 0x2d, 0xe7, 0x2d, 0x0c, 0x04, 0x35, 0xdb, 0x13, 0xeb, 0xb4, 0x2a, 0x66,
+ 0xbf, 0x69, 0xa7, 0xaa, 0x4f, 0x68, 0xb5, 0xe5, 0xfb, 0x50, 0xf3, 0x0b, 0xd1, 0x25, 0x29, 0x6a,
+ 0xda, 0xb8, 0x07, 0x60, 0x06, 0x9a, 0x78, 0x97, 0x2d, 0xa1, 0x3b, 0x65, 0x1a, 0x4d, 0xf7, 0x65,
+ 0x9d, 0x0a, 0xb5, 0x92, 0x4b, 0x96, 0x3b, 0x20, 0x43, 0xb6, 0xec, 0x92, 0xb6, 0xb7, 0xb6, 0xd8,
+ 0x96, 0xe4, 0x8b, 0xc7, 0xfe, 0xfa, 0x83, 0xe3, 0xe5, 0x6f, 0x7f, 0x70, 0xbc, 0xfc, 0xfd, 0x0f,
+ 0x8e, 0x97, 0x7f, 0xf9, 0x07, 0xc7, 0x4b, 0xdf, 0xfe, 0xc1, 0xf1, 0xd2, 0x3f, 0xfe, 0xe0, 0x78,
+ 0xe9, 0xfd, 0xca, 0x68, 0x63, 0xa3, 0xc1, 0x2e, 0xba, 0x5c, 0xfc, 0xaf, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x12, 0x2b, 0x47, 0xb9, 0x15, 0x67, 0x00, 0x00,
}
func (m *Event) Marshal() (dAtA []byte, err error) {
@@ -14524,6 +14487,29 @@ func (m *EventMessageValueOfImportFinish) MarshalToSizedBuffer(dAtA []byte) (int
}
return len(dAtA) - i, nil
}
+func (m *EventMessageValueOfSpaceAutoWidgetAdded) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventMessageValueOfSpaceAutoWidgetAdded) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SpaceAutoWidgetAdded != nil {
+ {
+ size, err := m.SpaceAutoWidgetAdded.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x7
+ i--
+ dAtA[i] = 0xd2
+ }
+ return len(dAtA) - i, nil
+}
func (m *EventMessageValueOfBlockDataviewRelationSet) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
@@ -14777,29 +14763,6 @@ func (m *EventMessageValueOfChatUpdateReadStatus) MarshalToSizedBuffer(dAtA []by
}
return len(dAtA) - i, nil
}
-func (m *EventMessageValueOfKeyUpdate) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *EventMessageValueOfKeyUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- if m.KeyUpdate != nil {
- {
- size, err := m.KeyUpdate.MarshalToSizedBuffer(dAtA[:i])
- if err != nil {
- return 0, err
- }
- i -= size
- i = encodeVarintEvents(dAtA, i, uint64(size))
- }
- i--
- dAtA[i] = 0x8
- i--
- dAtA[i] = 0xba
- }
- return len(dAtA) - i, nil
-}
func (m *EventMessageValueOfAccountDetails) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
@@ -22830,6 +22793,50 @@ func (m *EventSpaceSyncStatusUpdate) MarshalToSizedBuffer(dAtA []byte) (int, err
return len(dAtA) - i, nil
}
+func (m *EventSpaceAutoWidgetAdded) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventSpaceAutoWidgetAdded) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventSpaceAutoWidgetAdded) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.WidgetBlockId) > 0 {
+ i -= len(m.WidgetBlockId)
+ copy(dAtA[i:], m.WidgetBlockId)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.WidgetBlockId)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.TargetName) > 0 {
+ i -= len(m.TargetName)
+ copy(dAtA[i:], m.TargetName)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.TargetName)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.TargetId) > 0 {
+ i -= len(m.TargetId)
+ copy(dAtA[i:], m.TargetId)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.TargetId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *EventP2PStatus) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -22956,73 +22963,6 @@ func (m *EventImportFinish) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
-func (m *EventKey) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *EventKey) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *EventKey) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- return len(dAtA) - i, nil
-}
-
-func (m *EventKeyUpdate) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *EventKeyUpdate) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *EventKeyUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if len(m.EncryptionKey) > 0 {
- i -= len(m.EncryptionKey)
- copy(dAtA[i:], m.EncryptionKey)
- i = encodeVarintEvents(dAtA, i, uint64(len(m.EncryptionKey)))
- i--
- dAtA[i] = 0x1a
- }
- if len(m.EncryptionKeyId) > 0 {
- i -= len(m.EncryptionKeyId)
- copy(dAtA[i:], m.EncryptionKeyId)
- i = encodeVarintEvents(dAtA, i, uint64(len(m.EncryptionKeyId)))
- i--
- dAtA[i] = 0x12
- }
- if len(m.SpaceKeyId) > 0 {
- i -= len(m.SpaceKeyId)
- copy(dAtA[i:], m.SpaceKeyId)
- i = encodeVarintEvents(dAtA, i, uint64(len(m.SpaceKeyId)))
- i--
- dAtA[i] = 0xa
- }
- return len(dAtA) - i, nil
-}
-
func (m *ResponseEvent) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -24213,6 +24153,18 @@ func (m *EventMessageValueOfImportFinish) Size() (n int) {
}
return n
}
+func (m *EventMessageValueOfSpaceAutoWidgetAdded) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.SpaceAutoWidgetAdded != nil {
+ l = m.SpaceAutoWidgetAdded.Size()
+ n += 2 + l + sovEvents(uint64(l))
+ }
+ return n
+}
func (m *EventMessageValueOfBlockDataviewRelationSet) Size() (n int) {
if m == nil {
return 0
@@ -24345,18 +24297,6 @@ func (m *EventMessageValueOfChatUpdateReadStatus) Size() (n int) {
}
return n
}
-func (m *EventMessageValueOfKeyUpdate) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- if m.KeyUpdate != nil {
- l = m.KeyUpdate.Size()
- n += 2 + l + sovEvents(uint64(l))
- }
- return n
-}
func (m *EventMessageValueOfAccountDetails) Size() (n int) {
if m == nil {
return 0
@@ -27780,6 +27720,27 @@ func (m *EventSpaceSyncStatusUpdate) Size() (n int) {
return n
}
+func (m *EventSpaceAutoWidgetAdded) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.TargetId)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ l = len(m.TargetName)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ l = len(m.WidgetBlockId)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+
func (m *EventP2PStatus) Size() (n int) {
if m == nil {
return 0
@@ -27836,36 +27797,6 @@ func (m *EventImportFinish) Size() (n int) {
return n
}
-func (m *EventKey) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- return n
-}
-
-func (m *EventKeyUpdate) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- l = len(m.SpaceKeyId)
- if l > 0 {
- n += 1 + l + sovEvents(uint64(l))
- }
- l = len(m.EncryptionKeyId)
- if l > 0 {
- n += 1 + l + sovEvents(uint64(l))
- }
- l = len(m.EncryptionKey)
- if l > 0 {
- n += 1 + l + sovEvents(uint64(l))
- }
- return n
-}
-
func (m *ResponseEvent) Size() (n int) {
if m == nil {
return 0
@@ -30407,6 +30338,41 @@ func (m *EventMessage) Unmarshal(dAtA []byte) error {
}
m.Value = &EventMessageValueOfImportFinish{v}
iNdEx = postIndex
+ case 122:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SpaceAutoWidgetAdded", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ v := &EventSpaceAutoWidgetAdded{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &EventMessageValueOfSpaceAutoWidgetAdded{v}
+ iNdEx = postIndex
case 123:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field BlockDataviewRelationSet", wireType)
@@ -30824,41 +30790,6 @@ func (m *EventMessage) Unmarshal(dAtA []byte) error {
}
m.Value = &EventMessageValueOfChatUpdateReadStatus{v}
iNdEx = postIndex
- case 135:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field KeyUpdate", wireType)
- }
- var msglen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowEvents
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- msglen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if msglen < 0 {
- return ErrInvalidLengthEvents
- }
- postIndex := iNdEx + msglen
- if postIndex < 0 {
- return ErrInvalidLengthEvents
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- v := &EventKeyUpdate{}
- if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
- return err
- }
- m.Value = &EventMessageValueOfKeyUpdate{v}
- iNdEx = postIndex
case 201:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field AccountDetails", wireType)
@@ -52278,6 +52209,152 @@ func (m *EventSpaceSyncStatusUpdate) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *EventSpaceAutoWidgetAdded) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: AutoWidgetAdded: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: AutoWidgetAdded: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TargetId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.TargetId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field TargetName", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.TargetName = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field WidgetBlockId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.WidgetBlockId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *EventP2PStatus) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -52618,204 +52695,6 @@ func (m *EventImportFinish) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *EventKey) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowEvents
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: Key: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: Key: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- default:
- iNdEx = preIndex
- skippy, err := skipEvents(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthEvents
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *EventKeyUpdate) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowEvents
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: Update: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: Update: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field SpaceKeyId", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowEvents
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthEvents
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthEvents
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.SpaceKeyId = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 2:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field EncryptionKeyId", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowEvents
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthEvents
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthEvents
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.EncryptionKeyId = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 3:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field EncryptionKey", wireType)
- }
- var byteLen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowEvents
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- byteLen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if byteLen < 0 {
- return ErrInvalidLengthEvents
- }
- postIndex := iNdEx + byteLen
- if postIndex < 0 {
- return ErrInvalidLengthEvents
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.EncryptionKey = append(m.EncryptionKey[:0], dAtA[iNdEx:postIndex]...)
- if m.EncryptionKey == nil {
- m.EncryptionKey = []byte{}
- }
- iNdEx = postIndex
- default:
- iNdEx = preIndex
- skippy, err := skipEvents(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthEvents
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
func (m *ResponseEvent) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto
index 40f2c1a75..4c6b8c51d 100644
--- a/pb/protos/commands.proto
+++ b/pb/protos/commands.proto
@@ -2908,6 +2908,35 @@ message Rpc {
}
+ message Export {
+ message Request {
+ string spaceId = 10;
+ // ids of documents for export, when empty - will export all available docs
+ string objectId = 2;
+ // export format
+ anytype.model.Export.Format format = 3;
+ }
+
+ message Response {
+ Error error = 1;
+ string result = 2;
+ ResponseEvent event = 3;
+
+ message Error {
+ Code code = 1;
+ string description = 2;
+
+ enum Code {
+ NULL = 0;
+ UNKNOWN_ERROR = 1;
+ BAD_INPUT = 2;
+ // ...
+ }
+ }
+ }
+
+ }
+
message Import {
message Request {
option (no_auth) = true;
diff --git a/pb/protos/events.proto b/pb/protos/events.proto
index 92e361fa9..6572a2553 100644
--- a/pb/protos/events.proto
+++ b/pb/protos/events.proto
@@ -108,6 +108,7 @@ message Event {
Membership.Update membershipUpdate = 117;
Space.SyncStatus.Update spaceSyncStatusUpdate = 119;
+ Space.AutoWidgetAdded spaceAutoWidgetAdded = 122;
P2PStatus.Update p2pStatusUpdate = 120;
@@ -1155,6 +1156,12 @@ message Event {
IncompatibleVersion = 2;
NetworkError = 3;
}
+
+ message AutoWidgetAdded {
+ string targetId = 1;
+ string targetName = 2; // pluralName (if exists) for types, fallback to name. Special cases for "bin" and "favorites"
+ string widgetBlockId = 3;
+ }
}
message P2PStatus {
message Update {
diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto
index d74e2bdcd..1e8e58e65 100644
--- a/pb/protos/service/service.proto
+++ b/pb/protos/service/service.proto
@@ -127,6 +127,7 @@ service ClientCommands {
rpc ObjectUndo (anytype.Rpc.Object.Undo.Request) returns (anytype.Rpc.Object.Undo.Response);
rpc ObjectRedo (anytype.Rpc.Object.Redo.Request) returns (anytype.Rpc.Object.Redo.Response);
rpc ObjectListExport (anytype.Rpc.Object.ListExport.Request) returns (anytype.Rpc.Object.ListExport.Response);
+ rpc ObjectExport (anytype.Rpc.Object.Export.Request) returns (anytype.Rpc.Object.Export.Response);
rpc ObjectBookmarkFetch (anytype.Rpc.Object.BookmarkFetch.Request) returns (anytype.Rpc.Object.BookmarkFetch.Response);
rpc ObjectToBookmark (anytype.Rpc.Object.ToBookmark.Request) returns (anytype.Rpc.Object.ToBookmark.Response);
rpc ObjectImport (anytype.Rpc.Object.Import.Request) returns (anytype.Rpc.Object.Import.Response);
diff --git a/pb/service/mock_service/mock_ClientCommandsServer.go b/pb/service/mock_service/mock_ClientCommandsServer.go
deleted file mode 100644
index a4db01e73..000000000
--- a/pb/service/mock_service/mock_ClientCommandsServer.go
+++ /dev/null
@@ -1,14283 +0,0 @@
-// Code generated by mockery. DO NOT EDIT.
-
-package mock_service
-
-import (
- context "context"
-
- pb "github.com/anyproto/anytype-heart/pb"
- mock "github.com/stretchr/testify/mock"
-
- service "github.com/anyproto/anytype-heart/pb/service"
-)
-
-// MockClientCommandsServer is an autogenerated mock type for the ClientCommandsServer type
-type MockClientCommandsServer struct {
- mock.Mock
-}
-
-type MockClientCommandsServer_Expecter struct {
- mock *mock.Mock
-}
-
-func (_m *MockClientCommandsServer) EXPECT() *MockClientCommandsServer_Expecter {
- return &MockClientCommandsServer_Expecter{mock: &_m.Mock}
-}
-
-// AIAutofill provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AIAutofill(_a0 context.Context, _a1 *pb.RpcAIAutofillRequest) *pb.RpcAIAutofillResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AIAutofill")
- }
-
- var r0 *pb.RpcAIAutofillResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAIAutofillRequest) *pb.RpcAIAutofillResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAIAutofillResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AIAutofill_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AIAutofill'
-type MockClientCommandsServer_AIAutofill_Call struct {
- *mock.Call
-}
-
-// AIAutofill is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAIAutofillRequest
-func (_e *MockClientCommandsServer_Expecter) AIAutofill(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AIAutofill_Call {
- return &MockClientCommandsServer_AIAutofill_Call{Call: _e.mock.On("AIAutofill", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AIAutofill_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAIAutofillRequest)) *MockClientCommandsServer_AIAutofill_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAIAutofillRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AIAutofill_Call) Return(_a0 *pb.RpcAIAutofillResponse) *MockClientCommandsServer_AIAutofill_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AIAutofill_Call) RunAndReturn(run func(context.Context, *pb.RpcAIAutofillRequest) *pb.RpcAIAutofillResponse) *MockClientCommandsServer_AIAutofill_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AIListSummary provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AIListSummary(_a0 context.Context, _a1 *pb.RpcAIListSummaryRequest) *pb.RpcAIListSummaryResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AIListSummary")
- }
-
- var r0 *pb.RpcAIListSummaryResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAIListSummaryRequest) *pb.RpcAIListSummaryResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAIListSummaryResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AIListSummary_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AIListSummary'
-type MockClientCommandsServer_AIListSummary_Call struct {
- *mock.Call
-}
-
-// AIListSummary is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAIListSummaryRequest
-func (_e *MockClientCommandsServer_Expecter) AIListSummary(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AIListSummary_Call {
- return &MockClientCommandsServer_AIListSummary_Call{Call: _e.mock.On("AIListSummary", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AIListSummary_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAIListSummaryRequest)) *MockClientCommandsServer_AIListSummary_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAIListSummaryRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AIListSummary_Call) Return(_a0 *pb.RpcAIListSummaryResponse) *MockClientCommandsServer_AIListSummary_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AIListSummary_Call) RunAndReturn(run func(context.Context, *pb.RpcAIListSummaryRequest) *pb.RpcAIListSummaryResponse) *MockClientCommandsServer_AIListSummary_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AIObjectCreateFromUrl provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AIObjectCreateFromUrl(_a0 context.Context, _a1 *pb.RpcAIObjectCreateFromUrlRequest) *pb.RpcAIObjectCreateFromUrlResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AIObjectCreateFromUrl")
- }
-
- var r0 *pb.RpcAIObjectCreateFromUrlResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAIObjectCreateFromUrlRequest) *pb.RpcAIObjectCreateFromUrlResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAIObjectCreateFromUrlResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AIObjectCreateFromUrl_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AIObjectCreateFromUrl'
-type MockClientCommandsServer_AIObjectCreateFromUrl_Call struct {
- *mock.Call
-}
-
-// AIObjectCreateFromUrl is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAIObjectCreateFromUrlRequest
-func (_e *MockClientCommandsServer_Expecter) AIObjectCreateFromUrl(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AIObjectCreateFromUrl_Call {
- return &MockClientCommandsServer_AIObjectCreateFromUrl_Call{Call: _e.mock.On("AIObjectCreateFromUrl", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AIObjectCreateFromUrl_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAIObjectCreateFromUrlRequest)) *MockClientCommandsServer_AIObjectCreateFromUrl_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAIObjectCreateFromUrlRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AIObjectCreateFromUrl_Call) Return(_a0 *pb.RpcAIObjectCreateFromUrlResponse) *MockClientCommandsServer_AIObjectCreateFromUrl_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AIObjectCreateFromUrl_Call) RunAndReturn(run func(context.Context, *pb.RpcAIObjectCreateFromUrlRequest) *pb.RpcAIObjectCreateFromUrlResponse) *MockClientCommandsServer_AIObjectCreateFromUrl_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AIWritingTools provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AIWritingTools(_a0 context.Context, _a1 *pb.RpcAIWritingToolsRequest) *pb.RpcAIWritingToolsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AIWritingTools")
- }
-
- var r0 *pb.RpcAIWritingToolsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAIWritingToolsRequest) *pb.RpcAIWritingToolsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAIWritingToolsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AIWritingTools_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AIWritingTools'
-type MockClientCommandsServer_AIWritingTools_Call struct {
- *mock.Call
-}
-
-// AIWritingTools is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAIWritingToolsRequest
-func (_e *MockClientCommandsServer_Expecter) AIWritingTools(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AIWritingTools_Call {
- return &MockClientCommandsServer_AIWritingTools_Call{Call: _e.mock.On("AIWritingTools", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AIWritingTools_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAIWritingToolsRequest)) *MockClientCommandsServer_AIWritingTools_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAIWritingToolsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AIWritingTools_Call) Return(_a0 *pb.RpcAIWritingToolsResponse) *MockClientCommandsServer_AIWritingTools_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AIWritingTools_Call) RunAndReturn(run func(context.Context, *pb.RpcAIWritingToolsRequest) *pb.RpcAIWritingToolsResponse) *MockClientCommandsServer_AIWritingTools_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountChangeJsonApiAddr provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountChangeJsonApiAddr(_a0 context.Context, _a1 *pb.RpcAccountChangeJsonApiAddrRequest) *pb.RpcAccountChangeJsonApiAddrResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountChangeJsonApiAddr")
- }
-
- var r0 *pb.RpcAccountChangeJsonApiAddrResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountChangeJsonApiAddrRequest) *pb.RpcAccountChangeJsonApiAddrResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountChangeJsonApiAddrResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountChangeJsonApiAddr_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountChangeJsonApiAddr'
-type MockClientCommandsServer_AccountChangeJsonApiAddr_Call struct {
- *mock.Call
-}
-
-// AccountChangeJsonApiAddr is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountChangeJsonApiAddrRequest
-func (_e *MockClientCommandsServer_Expecter) AccountChangeJsonApiAddr(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountChangeJsonApiAddr_Call {
- return &MockClientCommandsServer_AccountChangeJsonApiAddr_Call{Call: _e.mock.On("AccountChangeJsonApiAddr", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountChangeJsonApiAddr_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountChangeJsonApiAddrRequest)) *MockClientCommandsServer_AccountChangeJsonApiAddr_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountChangeJsonApiAddrRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountChangeJsonApiAddr_Call) Return(_a0 *pb.RpcAccountChangeJsonApiAddrResponse) *MockClientCommandsServer_AccountChangeJsonApiAddr_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountChangeJsonApiAddr_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountChangeJsonApiAddrRequest) *pb.RpcAccountChangeJsonApiAddrResponse) *MockClientCommandsServer_AccountChangeJsonApiAddr_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountChangeNetworkConfigAndRestart provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountChangeNetworkConfigAndRestart(_a0 context.Context, _a1 *pb.RpcAccountChangeNetworkConfigAndRestartRequest) *pb.RpcAccountChangeNetworkConfigAndRestartResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountChangeNetworkConfigAndRestart")
- }
-
- var r0 *pb.RpcAccountChangeNetworkConfigAndRestartResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountChangeNetworkConfigAndRestartRequest) *pb.RpcAccountChangeNetworkConfigAndRestartResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountChangeNetworkConfigAndRestartResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountChangeNetworkConfigAndRestart'
-type MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call struct {
- *mock.Call
-}
-
-// AccountChangeNetworkConfigAndRestart is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountChangeNetworkConfigAndRestartRequest
-func (_e *MockClientCommandsServer_Expecter) AccountChangeNetworkConfigAndRestart(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call {
- return &MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call{Call: _e.mock.On("AccountChangeNetworkConfigAndRestart", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountChangeNetworkConfigAndRestartRequest)) *MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountChangeNetworkConfigAndRestartRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call) Return(_a0 *pb.RpcAccountChangeNetworkConfigAndRestartResponse) *MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountChangeNetworkConfigAndRestartRequest) *pb.RpcAccountChangeNetworkConfigAndRestartResponse) *MockClientCommandsServer_AccountChangeNetworkConfigAndRestart_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountConfigUpdate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountConfigUpdate(_a0 context.Context, _a1 *pb.RpcAccountConfigUpdateRequest) *pb.RpcAccountConfigUpdateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountConfigUpdate")
- }
-
- var r0 *pb.RpcAccountConfigUpdateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountConfigUpdateRequest) *pb.RpcAccountConfigUpdateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountConfigUpdateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountConfigUpdate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountConfigUpdate'
-type MockClientCommandsServer_AccountConfigUpdate_Call struct {
- *mock.Call
-}
-
-// AccountConfigUpdate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountConfigUpdateRequest
-func (_e *MockClientCommandsServer_Expecter) AccountConfigUpdate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountConfigUpdate_Call {
- return &MockClientCommandsServer_AccountConfigUpdate_Call{Call: _e.mock.On("AccountConfigUpdate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountConfigUpdate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountConfigUpdateRequest)) *MockClientCommandsServer_AccountConfigUpdate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountConfigUpdateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountConfigUpdate_Call) Return(_a0 *pb.RpcAccountConfigUpdateResponse) *MockClientCommandsServer_AccountConfigUpdate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountConfigUpdate_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountConfigUpdateRequest) *pb.RpcAccountConfigUpdateResponse) *MockClientCommandsServer_AccountConfigUpdate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountCreate(_a0 context.Context, _a1 *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountCreate")
- }
-
- var r0 *pb.RpcAccountCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountCreate'
-type MockClientCommandsServer_AccountCreate_Call struct {
- *mock.Call
-}
-
-// AccountCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountCreateRequest
-func (_e *MockClientCommandsServer_Expecter) AccountCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountCreate_Call {
- return &MockClientCommandsServer_AccountCreate_Call{Call: _e.mock.On("AccountCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountCreateRequest)) *MockClientCommandsServer_AccountCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountCreate_Call) Return(_a0 *pb.RpcAccountCreateResponse) *MockClientCommandsServer_AccountCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountCreateRequest) *pb.RpcAccountCreateResponse) *MockClientCommandsServer_AccountCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountDelete(_a0 context.Context, _a1 *pb.RpcAccountDeleteRequest) *pb.RpcAccountDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountDelete")
- }
-
- var r0 *pb.RpcAccountDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountDeleteRequest) *pb.RpcAccountDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountDelete'
-type MockClientCommandsServer_AccountDelete_Call struct {
- *mock.Call
-}
-
-// AccountDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) AccountDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountDelete_Call {
- return &MockClientCommandsServer_AccountDelete_Call{Call: _e.mock.On("AccountDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountDeleteRequest)) *MockClientCommandsServer_AccountDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountDelete_Call) Return(_a0 *pb.RpcAccountDeleteResponse) *MockClientCommandsServer_AccountDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountDeleteRequest) *pb.RpcAccountDeleteResponse) *MockClientCommandsServer_AccountDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountEnableLocalNetworkSync provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountEnableLocalNetworkSync(_a0 context.Context, _a1 *pb.RpcAccountEnableLocalNetworkSyncRequest) *pb.RpcAccountEnableLocalNetworkSyncResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountEnableLocalNetworkSync")
- }
-
- var r0 *pb.RpcAccountEnableLocalNetworkSyncResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountEnableLocalNetworkSyncRequest) *pb.RpcAccountEnableLocalNetworkSyncResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountEnableLocalNetworkSyncResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountEnableLocalNetworkSync_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountEnableLocalNetworkSync'
-type MockClientCommandsServer_AccountEnableLocalNetworkSync_Call struct {
- *mock.Call
-}
-
-// AccountEnableLocalNetworkSync is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountEnableLocalNetworkSyncRequest
-func (_e *MockClientCommandsServer_Expecter) AccountEnableLocalNetworkSync(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountEnableLocalNetworkSync_Call {
- return &MockClientCommandsServer_AccountEnableLocalNetworkSync_Call{Call: _e.mock.On("AccountEnableLocalNetworkSync", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountEnableLocalNetworkSync_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountEnableLocalNetworkSyncRequest)) *MockClientCommandsServer_AccountEnableLocalNetworkSync_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountEnableLocalNetworkSyncRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountEnableLocalNetworkSync_Call) Return(_a0 *pb.RpcAccountEnableLocalNetworkSyncResponse) *MockClientCommandsServer_AccountEnableLocalNetworkSync_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountEnableLocalNetworkSync_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountEnableLocalNetworkSyncRequest) *pb.RpcAccountEnableLocalNetworkSyncResponse) *MockClientCommandsServer_AccountEnableLocalNetworkSync_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountLocalLinkNewChallenge provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountLocalLinkNewChallenge(_a0 context.Context, _a1 *pb.RpcAccountLocalLinkNewChallengeRequest) *pb.RpcAccountLocalLinkNewChallengeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountLocalLinkNewChallenge")
- }
-
- var r0 *pb.RpcAccountLocalLinkNewChallengeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountLocalLinkNewChallengeRequest) *pb.RpcAccountLocalLinkNewChallengeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountLocalLinkNewChallengeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountLocalLinkNewChallenge_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountLocalLinkNewChallenge'
-type MockClientCommandsServer_AccountLocalLinkNewChallenge_Call struct {
- *mock.Call
-}
-
-// AccountLocalLinkNewChallenge is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountLocalLinkNewChallengeRequest
-func (_e *MockClientCommandsServer_Expecter) AccountLocalLinkNewChallenge(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountLocalLinkNewChallenge_Call {
- return &MockClientCommandsServer_AccountLocalLinkNewChallenge_Call{Call: _e.mock.On("AccountLocalLinkNewChallenge", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountLocalLinkNewChallenge_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountLocalLinkNewChallengeRequest)) *MockClientCommandsServer_AccountLocalLinkNewChallenge_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountLocalLinkNewChallengeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountLocalLinkNewChallenge_Call) Return(_a0 *pb.RpcAccountLocalLinkNewChallengeResponse) *MockClientCommandsServer_AccountLocalLinkNewChallenge_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountLocalLinkNewChallenge_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountLocalLinkNewChallengeRequest) *pb.RpcAccountLocalLinkNewChallengeResponse) *MockClientCommandsServer_AccountLocalLinkNewChallenge_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountLocalLinkSolveChallenge provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountLocalLinkSolveChallenge(_a0 context.Context, _a1 *pb.RpcAccountLocalLinkSolveChallengeRequest) *pb.RpcAccountLocalLinkSolveChallengeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountLocalLinkSolveChallenge")
- }
-
- var r0 *pb.RpcAccountLocalLinkSolveChallengeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountLocalLinkSolveChallengeRequest) *pb.RpcAccountLocalLinkSolveChallengeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountLocalLinkSolveChallengeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountLocalLinkSolveChallenge'
-type MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call struct {
- *mock.Call
-}
-
-// AccountLocalLinkSolveChallenge is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountLocalLinkSolveChallengeRequest
-func (_e *MockClientCommandsServer_Expecter) AccountLocalLinkSolveChallenge(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call {
- return &MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call{Call: _e.mock.On("AccountLocalLinkSolveChallenge", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountLocalLinkSolveChallengeRequest)) *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountLocalLinkSolveChallengeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call) Return(_a0 *pb.RpcAccountLocalLinkSolveChallengeResponse) *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountLocalLinkSolveChallengeRequest) *pb.RpcAccountLocalLinkSolveChallengeResponse) *MockClientCommandsServer_AccountLocalLinkSolveChallenge_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountMigrate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountMigrate(_a0 context.Context, _a1 *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountMigrate")
- }
-
- var r0 *pb.RpcAccountMigrateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountMigrateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountMigrate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountMigrate'
-type MockClientCommandsServer_AccountMigrate_Call struct {
- *mock.Call
-}
-
-// AccountMigrate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountMigrateRequest
-func (_e *MockClientCommandsServer_Expecter) AccountMigrate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountMigrate_Call {
- return &MockClientCommandsServer_AccountMigrate_Call{Call: _e.mock.On("AccountMigrate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountMigrate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountMigrateRequest)) *MockClientCommandsServer_AccountMigrate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountMigrateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountMigrate_Call) Return(_a0 *pb.RpcAccountMigrateResponse) *MockClientCommandsServer_AccountMigrate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountMigrate_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountMigrateRequest) *pb.RpcAccountMigrateResponse) *MockClientCommandsServer_AccountMigrate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountMigrateCancel provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountMigrateCancel(_a0 context.Context, _a1 *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountMigrateCancel")
- }
-
- var r0 *pb.RpcAccountMigrateCancelResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountMigrateCancelResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountMigrateCancel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountMigrateCancel'
-type MockClientCommandsServer_AccountMigrateCancel_Call struct {
- *mock.Call
-}
-
-// AccountMigrateCancel is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountMigrateCancelRequest
-func (_e *MockClientCommandsServer_Expecter) AccountMigrateCancel(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountMigrateCancel_Call {
- return &MockClientCommandsServer_AccountMigrateCancel_Call{Call: _e.mock.On("AccountMigrateCancel", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountMigrateCancelRequest)) *MockClientCommandsServer_AccountMigrateCancel_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountMigrateCancelRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) Return(_a0 *pb.RpcAccountMigrateCancelResponse) *MockClientCommandsServer_AccountMigrateCancel_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountMigrateCancel_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountMigrateCancelRequest) *pb.RpcAccountMigrateCancelResponse) *MockClientCommandsServer_AccountMigrateCancel_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountMove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountMove(_a0 context.Context, _a1 *pb.RpcAccountMoveRequest) *pb.RpcAccountMoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountMove")
- }
-
- var r0 *pb.RpcAccountMoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountMoveRequest) *pb.RpcAccountMoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountMoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountMove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountMove'
-type MockClientCommandsServer_AccountMove_Call struct {
- *mock.Call
-}
-
-// AccountMove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountMoveRequest
-func (_e *MockClientCommandsServer_Expecter) AccountMove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountMove_Call {
- return &MockClientCommandsServer_AccountMove_Call{Call: _e.mock.On("AccountMove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountMove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountMoveRequest)) *MockClientCommandsServer_AccountMove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountMoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountMove_Call) Return(_a0 *pb.RpcAccountMoveResponse) *MockClientCommandsServer_AccountMove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountMove_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountMoveRequest) *pb.RpcAccountMoveResponse) *MockClientCommandsServer_AccountMove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountRecover provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountRecover(_a0 context.Context, _a1 *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountRecover")
- }
-
- var r0 *pb.RpcAccountRecoverResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountRecoverResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountRecover_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountRecover'
-type MockClientCommandsServer_AccountRecover_Call struct {
- *mock.Call
-}
-
-// AccountRecover is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountRecoverRequest
-func (_e *MockClientCommandsServer_Expecter) AccountRecover(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountRecover_Call {
- return &MockClientCommandsServer_AccountRecover_Call{Call: _e.mock.On("AccountRecover", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountRecover_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountRecoverRequest)) *MockClientCommandsServer_AccountRecover_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountRecoverRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountRecover_Call) Return(_a0 *pb.RpcAccountRecoverResponse) *MockClientCommandsServer_AccountRecover_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountRecover_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountRecoverRequest) *pb.RpcAccountRecoverResponse) *MockClientCommandsServer_AccountRecover_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountRecoverFromLegacyExport provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountRecoverFromLegacyExport(_a0 context.Context, _a1 *pb.RpcAccountRecoverFromLegacyExportRequest) *pb.RpcAccountRecoverFromLegacyExportResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountRecoverFromLegacyExport")
- }
-
- var r0 *pb.RpcAccountRecoverFromLegacyExportResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountRecoverFromLegacyExportRequest) *pb.RpcAccountRecoverFromLegacyExportResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountRecoverFromLegacyExportResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountRecoverFromLegacyExport_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountRecoverFromLegacyExport'
-type MockClientCommandsServer_AccountRecoverFromLegacyExport_Call struct {
- *mock.Call
-}
-
-// AccountRecoverFromLegacyExport is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountRecoverFromLegacyExportRequest
-func (_e *MockClientCommandsServer_Expecter) AccountRecoverFromLegacyExport(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountRecoverFromLegacyExport_Call {
- return &MockClientCommandsServer_AccountRecoverFromLegacyExport_Call{Call: _e.mock.On("AccountRecoverFromLegacyExport", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountRecoverFromLegacyExport_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountRecoverFromLegacyExportRequest)) *MockClientCommandsServer_AccountRecoverFromLegacyExport_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountRecoverFromLegacyExportRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountRecoverFromLegacyExport_Call) Return(_a0 *pb.RpcAccountRecoverFromLegacyExportResponse) *MockClientCommandsServer_AccountRecoverFromLegacyExport_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountRecoverFromLegacyExport_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountRecoverFromLegacyExportRequest) *pb.RpcAccountRecoverFromLegacyExportResponse) *MockClientCommandsServer_AccountRecoverFromLegacyExport_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountRevertDeletion provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountRevertDeletion(_a0 context.Context, _a1 *pb.RpcAccountRevertDeletionRequest) *pb.RpcAccountRevertDeletionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountRevertDeletion")
- }
-
- var r0 *pb.RpcAccountRevertDeletionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountRevertDeletionRequest) *pb.RpcAccountRevertDeletionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountRevertDeletionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountRevertDeletion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountRevertDeletion'
-type MockClientCommandsServer_AccountRevertDeletion_Call struct {
- *mock.Call
-}
-
-// AccountRevertDeletion is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountRevertDeletionRequest
-func (_e *MockClientCommandsServer_Expecter) AccountRevertDeletion(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountRevertDeletion_Call {
- return &MockClientCommandsServer_AccountRevertDeletion_Call{Call: _e.mock.On("AccountRevertDeletion", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountRevertDeletion_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountRevertDeletionRequest)) *MockClientCommandsServer_AccountRevertDeletion_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountRevertDeletionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountRevertDeletion_Call) Return(_a0 *pb.RpcAccountRevertDeletionResponse) *MockClientCommandsServer_AccountRevertDeletion_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountRevertDeletion_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountRevertDeletionRequest) *pb.RpcAccountRevertDeletionResponse) *MockClientCommandsServer_AccountRevertDeletion_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountSelect provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountSelect(_a0 context.Context, _a1 *pb.RpcAccountSelectRequest) *pb.RpcAccountSelectResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountSelect")
- }
-
- var r0 *pb.RpcAccountSelectResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountSelectRequest) *pb.RpcAccountSelectResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountSelectResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountSelect_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountSelect'
-type MockClientCommandsServer_AccountSelect_Call struct {
- *mock.Call
-}
-
-// AccountSelect is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountSelectRequest
-func (_e *MockClientCommandsServer_Expecter) AccountSelect(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountSelect_Call {
- return &MockClientCommandsServer_AccountSelect_Call{Call: _e.mock.On("AccountSelect", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountSelect_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountSelectRequest)) *MockClientCommandsServer_AccountSelect_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountSelectRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountSelect_Call) Return(_a0 *pb.RpcAccountSelectResponse) *MockClientCommandsServer_AccountSelect_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountSelect_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountSelectRequest) *pb.RpcAccountSelectResponse) *MockClientCommandsServer_AccountSelect_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AccountStop provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AccountStop(_a0 context.Context, _a1 *pb.RpcAccountStopRequest) *pb.RpcAccountStopResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AccountStop")
- }
-
- var r0 *pb.RpcAccountStopResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAccountStopRequest) *pb.RpcAccountStopResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAccountStopResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AccountStop_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AccountStop'
-type MockClientCommandsServer_AccountStop_Call struct {
- *mock.Call
-}
-
-// AccountStop is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAccountStopRequest
-func (_e *MockClientCommandsServer_Expecter) AccountStop(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AccountStop_Call {
- return &MockClientCommandsServer_AccountStop_Call{Call: _e.mock.On("AccountStop", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AccountStop_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAccountStopRequest)) *MockClientCommandsServer_AccountStop_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAccountStopRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountStop_Call) Return(_a0 *pb.RpcAccountStopResponse) *MockClientCommandsServer_AccountStop_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AccountStop_Call) RunAndReturn(run func(context.Context, *pb.RpcAccountStopRequest) *pb.RpcAccountStopResponse) *MockClientCommandsServer_AccountStop_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AppGetVersion provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AppGetVersion(_a0 context.Context, _a1 *pb.RpcAppGetVersionRequest) *pb.RpcAppGetVersionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AppGetVersion")
- }
-
- var r0 *pb.RpcAppGetVersionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAppGetVersionRequest) *pb.RpcAppGetVersionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAppGetVersionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AppGetVersion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AppGetVersion'
-type MockClientCommandsServer_AppGetVersion_Call struct {
- *mock.Call
-}
-
-// AppGetVersion is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAppGetVersionRequest
-func (_e *MockClientCommandsServer_Expecter) AppGetVersion(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AppGetVersion_Call {
- return &MockClientCommandsServer_AppGetVersion_Call{Call: _e.mock.On("AppGetVersion", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AppGetVersion_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAppGetVersionRequest)) *MockClientCommandsServer_AppGetVersion_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAppGetVersionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AppGetVersion_Call) Return(_a0 *pb.RpcAppGetVersionResponse) *MockClientCommandsServer_AppGetVersion_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AppGetVersion_Call) RunAndReturn(run func(context.Context, *pb.RpcAppGetVersionRequest) *pb.RpcAppGetVersionResponse) *MockClientCommandsServer_AppGetVersion_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AppSetDeviceState provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AppSetDeviceState(_a0 context.Context, _a1 *pb.RpcAppSetDeviceStateRequest) *pb.RpcAppSetDeviceStateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AppSetDeviceState")
- }
-
- var r0 *pb.RpcAppSetDeviceStateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAppSetDeviceStateRequest) *pb.RpcAppSetDeviceStateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAppSetDeviceStateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AppSetDeviceState_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AppSetDeviceState'
-type MockClientCommandsServer_AppSetDeviceState_Call struct {
- *mock.Call
-}
-
-// AppSetDeviceState is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAppSetDeviceStateRequest
-func (_e *MockClientCommandsServer_Expecter) AppSetDeviceState(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AppSetDeviceState_Call {
- return &MockClientCommandsServer_AppSetDeviceState_Call{Call: _e.mock.On("AppSetDeviceState", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AppSetDeviceState_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAppSetDeviceStateRequest)) *MockClientCommandsServer_AppSetDeviceState_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAppSetDeviceStateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AppSetDeviceState_Call) Return(_a0 *pb.RpcAppSetDeviceStateResponse) *MockClientCommandsServer_AppSetDeviceState_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AppSetDeviceState_Call) RunAndReturn(run func(context.Context, *pb.RpcAppSetDeviceStateRequest) *pb.RpcAppSetDeviceStateResponse) *MockClientCommandsServer_AppSetDeviceState_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// AppShutdown provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) AppShutdown(_a0 context.Context, _a1 *pb.RpcAppShutdownRequest) *pb.RpcAppShutdownResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for AppShutdown")
- }
-
- var r0 *pb.RpcAppShutdownResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcAppShutdownRequest) *pb.RpcAppShutdownResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcAppShutdownResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_AppShutdown_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AppShutdown'
-type MockClientCommandsServer_AppShutdown_Call struct {
- *mock.Call
-}
-
-// AppShutdown is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcAppShutdownRequest
-func (_e *MockClientCommandsServer_Expecter) AppShutdown(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_AppShutdown_Call {
- return &MockClientCommandsServer_AppShutdown_Call{Call: _e.mock.On("AppShutdown", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_AppShutdown_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcAppShutdownRequest)) *MockClientCommandsServer_AppShutdown_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcAppShutdownRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_AppShutdown_Call) Return(_a0 *pb.RpcAppShutdownResponse) *MockClientCommandsServer_AppShutdown_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_AppShutdown_Call) RunAndReturn(run func(context.Context, *pb.RpcAppShutdownRequest) *pb.RpcAppShutdownResponse) *MockClientCommandsServer_AppShutdown_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockBookmarkCreateAndFetch provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockBookmarkCreateAndFetch(_a0 context.Context, _a1 *pb.RpcBlockBookmarkCreateAndFetchRequest) *pb.RpcBlockBookmarkCreateAndFetchResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockBookmarkCreateAndFetch")
- }
-
- var r0 *pb.RpcBlockBookmarkCreateAndFetchResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockBookmarkCreateAndFetchRequest) *pb.RpcBlockBookmarkCreateAndFetchResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockBookmarkCreateAndFetchResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockBookmarkCreateAndFetch'
-type MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call struct {
- *mock.Call
-}
-
-// BlockBookmarkCreateAndFetch is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockBookmarkCreateAndFetchRequest
-func (_e *MockClientCommandsServer_Expecter) BlockBookmarkCreateAndFetch(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call {
- return &MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call{Call: _e.mock.On("BlockBookmarkCreateAndFetch", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockBookmarkCreateAndFetchRequest)) *MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockBookmarkCreateAndFetchRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call) Return(_a0 *pb.RpcBlockBookmarkCreateAndFetchResponse) *MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockBookmarkCreateAndFetchRequest) *pb.RpcBlockBookmarkCreateAndFetchResponse) *MockClientCommandsServer_BlockBookmarkCreateAndFetch_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockBookmarkFetch provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockBookmarkFetch(_a0 context.Context, _a1 *pb.RpcBlockBookmarkFetchRequest) *pb.RpcBlockBookmarkFetchResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockBookmarkFetch")
- }
-
- var r0 *pb.RpcBlockBookmarkFetchResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockBookmarkFetchRequest) *pb.RpcBlockBookmarkFetchResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockBookmarkFetchResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockBookmarkFetch_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockBookmarkFetch'
-type MockClientCommandsServer_BlockBookmarkFetch_Call struct {
- *mock.Call
-}
-
-// BlockBookmarkFetch is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockBookmarkFetchRequest
-func (_e *MockClientCommandsServer_Expecter) BlockBookmarkFetch(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockBookmarkFetch_Call {
- return &MockClientCommandsServer_BlockBookmarkFetch_Call{Call: _e.mock.On("BlockBookmarkFetch", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockBookmarkFetch_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockBookmarkFetchRequest)) *MockClientCommandsServer_BlockBookmarkFetch_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockBookmarkFetchRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockBookmarkFetch_Call) Return(_a0 *pb.RpcBlockBookmarkFetchResponse) *MockClientCommandsServer_BlockBookmarkFetch_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockBookmarkFetch_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockBookmarkFetchRequest) *pb.RpcBlockBookmarkFetchResponse) *MockClientCommandsServer_BlockBookmarkFetch_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockCopy provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockCopy(_a0 context.Context, _a1 *pb.RpcBlockCopyRequest) *pb.RpcBlockCopyResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockCopy")
- }
-
- var r0 *pb.RpcBlockCopyResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockCopyRequest) *pb.RpcBlockCopyResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockCopyResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockCopy_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockCopy'
-type MockClientCommandsServer_BlockCopy_Call struct {
- *mock.Call
-}
-
-// BlockCopy is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockCopyRequest
-func (_e *MockClientCommandsServer_Expecter) BlockCopy(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockCopy_Call {
- return &MockClientCommandsServer_BlockCopy_Call{Call: _e.mock.On("BlockCopy", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockCopy_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockCopyRequest)) *MockClientCommandsServer_BlockCopy_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockCopyRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockCopy_Call) Return(_a0 *pb.RpcBlockCopyResponse) *MockClientCommandsServer_BlockCopy_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockCopy_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockCopyRequest) *pb.RpcBlockCopyResponse) *MockClientCommandsServer_BlockCopy_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockCreate(_a0 context.Context, _a1 *pb.RpcBlockCreateRequest) *pb.RpcBlockCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockCreate")
- }
-
- var r0 *pb.RpcBlockCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockCreateRequest) *pb.RpcBlockCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockCreate'
-type MockClientCommandsServer_BlockCreate_Call struct {
- *mock.Call
-}
-
-// BlockCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockCreateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockCreate_Call {
- return &MockClientCommandsServer_BlockCreate_Call{Call: _e.mock.On("BlockCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockCreateRequest)) *MockClientCommandsServer_BlockCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockCreate_Call) Return(_a0 *pb.RpcBlockCreateResponse) *MockClientCommandsServer_BlockCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockCreateRequest) *pb.RpcBlockCreateResponse) *MockClientCommandsServer_BlockCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockCreateWidget provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockCreateWidget(_a0 context.Context, _a1 *pb.RpcBlockCreateWidgetRequest) *pb.RpcBlockCreateWidgetResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockCreateWidget")
- }
-
- var r0 *pb.RpcBlockCreateWidgetResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockCreateWidgetRequest) *pb.RpcBlockCreateWidgetResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockCreateWidgetResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockCreateWidget_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockCreateWidget'
-type MockClientCommandsServer_BlockCreateWidget_Call struct {
- *mock.Call
-}
-
-// BlockCreateWidget is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockCreateWidgetRequest
-func (_e *MockClientCommandsServer_Expecter) BlockCreateWidget(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockCreateWidget_Call {
- return &MockClientCommandsServer_BlockCreateWidget_Call{Call: _e.mock.On("BlockCreateWidget", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockCreateWidget_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockCreateWidgetRequest)) *MockClientCommandsServer_BlockCreateWidget_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockCreateWidgetRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockCreateWidget_Call) Return(_a0 *pb.RpcBlockCreateWidgetResponse) *MockClientCommandsServer_BlockCreateWidget_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockCreateWidget_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockCreateWidgetRequest) *pb.RpcBlockCreateWidgetResponse) *MockClientCommandsServer_BlockCreateWidget_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockCut provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockCut(_a0 context.Context, _a1 *pb.RpcBlockCutRequest) *pb.RpcBlockCutResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockCut")
- }
-
- var r0 *pb.RpcBlockCutResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockCutRequest) *pb.RpcBlockCutResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockCutResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockCut_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockCut'
-type MockClientCommandsServer_BlockCut_Call struct {
- *mock.Call
-}
-
-// BlockCut is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockCutRequest
-func (_e *MockClientCommandsServer_Expecter) BlockCut(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockCut_Call {
- return &MockClientCommandsServer_BlockCut_Call{Call: _e.mock.On("BlockCut", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockCut_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockCutRequest)) *MockClientCommandsServer_BlockCut_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockCutRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockCut_Call) Return(_a0 *pb.RpcBlockCutResponse) *MockClientCommandsServer_BlockCut_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockCut_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockCutRequest) *pb.RpcBlockCutResponse) *MockClientCommandsServer_BlockCut_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewCreateFromExistingObject provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewCreateFromExistingObject(_a0 context.Context, _a1 *pb.RpcBlockDataviewCreateFromExistingObjectRequest) *pb.RpcBlockDataviewCreateFromExistingObjectResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewCreateFromExistingObject")
- }
-
- var r0 *pb.RpcBlockDataviewCreateFromExistingObjectResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewCreateFromExistingObjectRequest) *pb.RpcBlockDataviewCreateFromExistingObjectResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewCreateFromExistingObjectResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewCreateFromExistingObject'
-type MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call struct {
- *mock.Call
-}
-
-// BlockDataviewCreateFromExistingObject is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewCreateFromExistingObjectRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewCreateFromExistingObject(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call {
- return &MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call{Call: _e.mock.On("BlockDataviewCreateFromExistingObject", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewCreateFromExistingObjectRequest)) *MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewCreateFromExistingObjectRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call) Return(_a0 *pb.RpcBlockDataviewCreateFromExistingObjectResponse) *MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewCreateFromExistingObjectRequest) *pb.RpcBlockDataviewCreateFromExistingObjectResponse) *MockClientCommandsServer_BlockDataviewCreateFromExistingObject_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewFilterAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewFilterAdd(_a0 context.Context, _a1 *pb.RpcBlockDataviewFilterAddRequest) *pb.RpcBlockDataviewFilterAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewFilterAdd")
- }
-
- var r0 *pb.RpcBlockDataviewFilterAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewFilterAddRequest) *pb.RpcBlockDataviewFilterAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewFilterAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewFilterAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewFilterAdd'
-type MockClientCommandsServer_BlockDataviewFilterAdd_Call struct {
- *mock.Call
-}
-
-// BlockDataviewFilterAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewFilterAddRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewFilterAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewFilterAdd_Call {
- return &MockClientCommandsServer_BlockDataviewFilterAdd_Call{Call: _e.mock.On("BlockDataviewFilterAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewFilterAddRequest)) *MockClientCommandsServer_BlockDataviewFilterAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewFilterAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterAdd_Call) Return(_a0 *pb.RpcBlockDataviewFilterAddResponse) *MockClientCommandsServer_BlockDataviewFilterAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewFilterAddRequest) *pb.RpcBlockDataviewFilterAddResponse) *MockClientCommandsServer_BlockDataviewFilterAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewFilterRemove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewFilterRemove(_a0 context.Context, _a1 *pb.RpcBlockDataviewFilterRemoveRequest) *pb.RpcBlockDataviewFilterRemoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewFilterRemove")
- }
-
- var r0 *pb.RpcBlockDataviewFilterRemoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewFilterRemoveRequest) *pb.RpcBlockDataviewFilterRemoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewFilterRemoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewFilterRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewFilterRemove'
-type MockClientCommandsServer_BlockDataviewFilterRemove_Call struct {
- *mock.Call
-}
-
-// BlockDataviewFilterRemove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewFilterRemoveRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewFilterRemove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewFilterRemove_Call {
- return &MockClientCommandsServer_BlockDataviewFilterRemove_Call{Call: _e.mock.On("BlockDataviewFilterRemove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewFilterRemoveRequest)) *MockClientCommandsServer_BlockDataviewFilterRemove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewFilterRemoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterRemove_Call) Return(_a0 *pb.RpcBlockDataviewFilterRemoveResponse) *MockClientCommandsServer_BlockDataviewFilterRemove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewFilterRemoveRequest) *pb.RpcBlockDataviewFilterRemoveResponse) *MockClientCommandsServer_BlockDataviewFilterRemove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewFilterReplace provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewFilterReplace(_a0 context.Context, _a1 *pb.RpcBlockDataviewFilterReplaceRequest) *pb.RpcBlockDataviewFilterReplaceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewFilterReplace")
- }
-
- var r0 *pb.RpcBlockDataviewFilterReplaceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewFilterReplaceRequest) *pb.RpcBlockDataviewFilterReplaceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewFilterReplaceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewFilterReplace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewFilterReplace'
-type MockClientCommandsServer_BlockDataviewFilterReplace_Call struct {
- *mock.Call
-}
-
-// BlockDataviewFilterReplace is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewFilterReplaceRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewFilterReplace(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewFilterReplace_Call {
- return &MockClientCommandsServer_BlockDataviewFilterReplace_Call{Call: _e.mock.On("BlockDataviewFilterReplace", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterReplace_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewFilterReplaceRequest)) *MockClientCommandsServer_BlockDataviewFilterReplace_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewFilterReplaceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterReplace_Call) Return(_a0 *pb.RpcBlockDataviewFilterReplaceResponse) *MockClientCommandsServer_BlockDataviewFilterReplace_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterReplace_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewFilterReplaceRequest) *pb.RpcBlockDataviewFilterReplaceResponse) *MockClientCommandsServer_BlockDataviewFilterReplace_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewFilterSort provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewFilterSort(_a0 context.Context, _a1 *pb.RpcBlockDataviewFilterSortRequest) *pb.RpcBlockDataviewFilterSortResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewFilterSort")
- }
-
- var r0 *pb.RpcBlockDataviewFilterSortResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewFilterSortRequest) *pb.RpcBlockDataviewFilterSortResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewFilterSortResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewFilterSort_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewFilterSort'
-type MockClientCommandsServer_BlockDataviewFilterSort_Call struct {
- *mock.Call
-}
-
-// BlockDataviewFilterSort is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewFilterSortRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewFilterSort(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewFilterSort_Call {
- return &MockClientCommandsServer_BlockDataviewFilterSort_Call{Call: _e.mock.On("BlockDataviewFilterSort", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterSort_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewFilterSortRequest)) *MockClientCommandsServer_BlockDataviewFilterSort_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewFilterSortRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterSort_Call) Return(_a0 *pb.RpcBlockDataviewFilterSortResponse) *MockClientCommandsServer_BlockDataviewFilterSort_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewFilterSort_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewFilterSortRequest) *pb.RpcBlockDataviewFilterSortResponse) *MockClientCommandsServer_BlockDataviewFilterSort_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewGroupOrderUpdate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewGroupOrderUpdate(_a0 context.Context, _a1 *pb.RpcBlockDataviewGroupOrderUpdateRequest) *pb.RpcBlockDataviewGroupOrderUpdateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewGroupOrderUpdate")
- }
-
- var r0 *pb.RpcBlockDataviewGroupOrderUpdateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewGroupOrderUpdateRequest) *pb.RpcBlockDataviewGroupOrderUpdateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewGroupOrderUpdateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewGroupOrderUpdate'
-type MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call struct {
- *mock.Call
-}
-
-// BlockDataviewGroupOrderUpdate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewGroupOrderUpdateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewGroupOrderUpdate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call {
- return &MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call{Call: _e.mock.On("BlockDataviewGroupOrderUpdate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewGroupOrderUpdateRequest)) *MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewGroupOrderUpdateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call) Return(_a0 *pb.RpcBlockDataviewGroupOrderUpdateResponse) *MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewGroupOrderUpdateRequest) *pb.RpcBlockDataviewGroupOrderUpdateResponse) *MockClientCommandsServer_BlockDataviewGroupOrderUpdate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewObjectOrderMove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewObjectOrderMove(_a0 context.Context, _a1 *pb.RpcBlockDataviewObjectOrderMoveRequest) *pb.RpcBlockDataviewObjectOrderMoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewObjectOrderMove")
- }
-
- var r0 *pb.RpcBlockDataviewObjectOrderMoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewObjectOrderMoveRequest) *pb.RpcBlockDataviewObjectOrderMoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewObjectOrderMoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewObjectOrderMove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewObjectOrderMove'
-type MockClientCommandsServer_BlockDataviewObjectOrderMove_Call struct {
- *mock.Call
-}
-
-// BlockDataviewObjectOrderMove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewObjectOrderMoveRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewObjectOrderMove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewObjectOrderMove_Call {
- return &MockClientCommandsServer_BlockDataviewObjectOrderMove_Call{Call: _e.mock.On("BlockDataviewObjectOrderMove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewObjectOrderMove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewObjectOrderMoveRequest)) *MockClientCommandsServer_BlockDataviewObjectOrderMove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewObjectOrderMoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewObjectOrderMove_Call) Return(_a0 *pb.RpcBlockDataviewObjectOrderMoveResponse) *MockClientCommandsServer_BlockDataviewObjectOrderMove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewObjectOrderMove_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewObjectOrderMoveRequest) *pb.RpcBlockDataviewObjectOrderMoveResponse) *MockClientCommandsServer_BlockDataviewObjectOrderMove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewObjectOrderUpdate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewObjectOrderUpdate(_a0 context.Context, _a1 *pb.RpcBlockDataviewObjectOrderUpdateRequest) *pb.RpcBlockDataviewObjectOrderUpdateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewObjectOrderUpdate")
- }
-
- var r0 *pb.RpcBlockDataviewObjectOrderUpdateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewObjectOrderUpdateRequest) *pb.RpcBlockDataviewObjectOrderUpdateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewObjectOrderUpdateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewObjectOrderUpdate'
-type MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call struct {
- *mock.Call
-}
-
-// BlockDataviewObjectOrderUpdate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewObjectOrderUpdateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewObjectOrderUpdate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call {
- return &MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call{Call: _e.mock.On("BlockDataviewObjectOrderUpdate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewObjectOrderUpdateRequest)) *MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewObjectOrderUpdateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call) Return(_a0 *pb.RpcBlockDataviewObjectOrderUpdateResponse) *MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewObjectOrderUpdateRequest) *pb.RpcBlockDataviewObjectOrderUpdateResponse) *MockClientCommandsServer_BlockDataviewObjectOrderUpdate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewRelationAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewRelationAdd(_a0 context.Context, _a1 *pb.RpcBlockDataviewRelationAddRequest) *pb.RpcBlockDataviewRelationAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewRelationAdd")
- }
-
- var r0 *pb.RpcBlockDataviewRelationAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewRelationAddRequest) *pb.RpcBlockDataviewRelationAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewRelationAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewRelationAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewRelationAdd'
-type MockClientCommandsServer_BlockDataviewRelationAdd_Call struct {
- *mock.Call
-}
-
-// BlockDataviewRelationAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewRelationAddRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewRelationAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewRelationAdd_Call {
- return &MockClientCommandsServer_BlockDataviewRelationAdd_Call{Call: _e.mock.On("BlockDataviewRelationAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewRelationAddRequest)) *MockClientCommandsServer_BlockDataviewRelationAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewRelationAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationAdd_Call) Return(_a0 *pb.RpcBlockDataviewRelationAddResponse) *MockClientCommandsServer_BlockDataviewRelationAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewRelationAddRequest) *pb.RpcBlockDataviewRelationAddResponse) *MockClientCommandsServer_BlockDataviewRelationAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewRelationDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewRelationDelete(_a0 context.Context, _a1 *pb.RpcBlockDataviewRelationDeleteRequest) *pb.RpcBlockDataviewRelationDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewRelationDelete")
- }
-
- var r0 *pb.RpcBlockDataviewRelationDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewRelationDeleteRequest) *pb.RpcBlockDataviewRelationDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewRelationDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewRelationDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewRelationDelete'
-type MockClientCommandsServer_BlockDataviewRelationDelete_Call struct {
- *mock.Call
-}
-
-// BlockDataviewRelationDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewRelationDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewRelationDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewRelationDelete_Call {
- return &MockClientCommandsServer_BlockDataviewRelationDelete_Call{Call: _e.mock.On("BlockDataviewRelationDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewRelationDeleteRequest)) *MockClientCommandsServer_BlockDataviewRelationDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewRelationDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationDelete_Call) Return(_a0 *pb.RpcBlockDataviewRelationDeleteResponse) *MockClientCommandsServer_BlockDataviewRelationDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewRelationDeleteRequest) *pb.RpcBlockDataviewRelationDeleteResponse) *MockClientCommandsServer_BlockDataviewRelationDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewRelationSet provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewRelationSet(_a0 context.Context, _a1 *pb.RpcBlockDataviewRelationSetRequest) *pb.RpcBlockDataviewRelationSetResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewRelationSet")
- }
-
- var r0 *pb.RpcBlockDataviewRelationSetResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewRelationSetRequest) *pb.RpcBlockDataviewRelationSetResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewRelationSetResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewRelationSet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewRelationSet'
-type MockClientCommandsServer_BlockDataviewRelationSet_Call struct {
- *mock.Call
-}
-
-// BlockDataviewRelationSet is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewRelationSetRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewRelationSet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewRelationSet_Call {
- return &MockClientCommandsServer_BlockDataviewRelationSet_Call{Call: _e.mock.On("BlockDataviewRelationSet", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationSet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewRelationSetRequest)) *MockClientCommandsServer_BlockDataviewRelationSet_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewRelationSetRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationSet_Call) Return(_a0 *pb.RpcBlockDataviewRelationSetResponse) *MockClientCommandsServer_BlockDataviewRelationSet_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewRelationSet_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewRelationSetRequest) *pb.RpcBlockDataviewRelationSetResponse) *MockClientCommandsServer_BlockDataviewRelationSet_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewSetSource provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewSetSource(_a0 context.Context, _a1 *pb.RpcBlockDataviewSetSourceRequest) *pb.RpcBlockDataviewSetSourceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewSetSource")
- }
-
- var r0 *pb.RpcBlockDataviewSetSourceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewSetSourceRequest) *pb.RpcBlockDataviewSetSourceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewSetSourceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewSetSource_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewSetSource'
-type MockClientCommandsServer_BlockDataviewSetSource_Call struct {
- *mock.Call
-}
-
-// BlockDataviewSetSource is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewSetSourceRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewSetSource(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewSetSource_Call {
- return &MockClientCommandsServer_BlockDataviewSetSource_Call{Call: _e.mock.On("BlockDataviewSetSource", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSetSource_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewSetSourceRequest)) *MockClientCommandsServer_BlockDataviewSetSource_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewSetSourceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSetSource_Call) Return(_a0 *pb.RpcBlockDataviewSetSourceResponse) *MockClientCommandsServer_BlockDataviewSetSource_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSetSource_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewSetSourceRequest) *pb.RpcBlockDataviewSetSourceResponse) *MockClientCommandsServer_BlockDataviewSetSource_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewSortAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewSortAdd(_a0 context.Context, _a1 *pb.RpcBlockDataviewSortAddRequest) *pb.RpcBlockDataviewSortAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewSortAdd")
- }
-
- var r0 *pb.RpcBlockDataviewSortAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewSortAddRequest) *pb.RpcBlockDataviewSortAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewSortAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewSortAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewSortAdd'
-type MockClientCommandsServer_BlockDataviewSortAdd_Call struct {
- *mock.Call
-}
-
-// BlockDataviewSortAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewSortAddRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewSortAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewSortAdd_Call {
- return &MockClientCommandsServer_BlockDataviewSortAdd_Call{Call: _e.mock.On("BlockDataviewSortAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewSortAddRequest)) *MockClientCommandsServer_BlockDataviewSortAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewSortAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortAdd_Call) Return(_a0 *pb.RpcBlockDataviewSortAddResponse) *MockClientCommandsServer_BlockDataviewSortAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewSortAddRequest) *pb.RpcBlockDataviewSortAddResponse) *MockClientCommandsServer_BlockDataviewSortAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewSortRemove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewSortRemove(_a0 context.Context, _a1 *pb.RpcBlockDataviewSortRemoveRequest) *pb.RpcBlockDataviewSortRemoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewSortRemove")
- }
-
- var r0 *pb.RpcBlockDataviewSortRemoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewSortRemoveRequest) *pb.RpcBlockDataviewSortRemoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewSortRemoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewSortRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewSortRemove'
-type MockClientCommandsServer_BlockDataviewSortRemove_Call struct {
- *mock.Call
-}
-
-// BlockDataviewSortRemove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewSortRemoveRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewSortRemove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewSortRemove_Call {
- return &MockClientCommandsServer_BlockDataviewSortRemove_Call{Call: _e.mock.On("BlockDataviewSortRemove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewSortRemoveRequest)) *MockClientCommandsServer_BlockDataviewSortRemove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewSortRemoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortRemove_Call) Return(_a0 *pb.RpcBlockDataviewSortRemoveResponse) *MockClientCommandsServer_BlockDataviewSortRemove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewSortRemoveRequest) *pb.RpcBlockDataviewSortRemoveResponse) *MockClientCommandsServer_BlockDataviewSortRemove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewSortReplace provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewSortReplace(_a0 context.Context, _a1 *pb.RpcBlockDataviewSortReplaceRequest) *pb.RpcBlockDataviewSortReplaceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewSortReplace")
- }
-
- var r0 *pb.RpcBlockDataviewSortReplaceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewSortReplaceRequest) *pb.RpcBlockDataviewSortReplaceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewSortReplaceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewSortReplace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewSortReplace'
-type MockClientCommandsServer_BlockDataviewSortReplace_Call struct {
- *mock.Call
-}
-
-// BlockDataviewSortReplace is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewSortReplaceRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewSortReplace(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewSortReplace_Call {
- return &MockClientCommandsServer_BlockDataviewSortReplace_Call{Call: _e.mock.On("BlockDataviewSortReplace", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortReplace_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewSortReplaceRequest)) *MockClientCommandsServer_BlockDataviewSortReplace_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewSortReplaceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortReplace_Call) Return(_a0 *pb.RpcBlockDataviewSortReplaceResponse) *MockClientCommandsServer_BlockDataviewSortReplace_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortReplace_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewSortReplaceRequest) *pb.RpcBlockDataviewSortReplaceResponse) *MockClientCommandsServer_BlockDataviewSortReplace_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewSortSort provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewSortSort(_a0 context.Context, _a1 *pb.RpcBlockDataviewSortSSortRequest) *pb.RpcBlockDataviewSortSSortResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewSortSort")
- }
-
- var r0 *pb.RpcBlockDataviewSortSSortResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewSortSSortRequest) *pb.RpcBlockDataviewSortSSortResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewSortSSortResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewSortSort_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewSortSort'
-type MockClientCommandsServer_BlockDataviewSortSort_Call struct {
- *mock.Call
-}
-
-// BlockDataviewSortSort is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewSortSSortRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewSortSort(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewSortSort_Call {
- return &MockClientCommandsServer_BlockDataviewSortSort_Call{Call: _e.mock.On("BlockDataviewSortSort", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortSort_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewSortSSortRequest)) *MockClientCommandsServer_BlockDataviewSortSort_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewSortSSortRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortSort_Call) Return(_a0 *pb.RpcBlockDataviewSortSSortResponse) *MockClientCommandsServer_BlockDataviewSortSort_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewSortSort_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewSortSSortRequest) *pb.RpcBlockDataviewSortSSortResponse) *MockClientCommandsServer_BlockDataviewSortSort_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewCreate(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewCreateRequest) *pb.RpcBlockDataviewViewCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewCreate")
- }
-
- var r0 *pb.RpcBlockDataviewViewCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewCreateRequest) *pb.RpcBlockDataviewViewCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewCreate'
-type MockClientCommandsServer_BlockDataviewViewCreate_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewCreateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewCreate_Call {
- return &MockClientCommandsServer_BlockDataviewViewCreate_Call{Call: _e.mock.On("BlockDataviewViewCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewCreateRequest)) *MockClientCommandsServer_BlockDataviewViewCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewCreate_Call) Return(_a0 *pb.RpcBlockDataviewViewCreateResponse) *MockClientCommandsServer_BlockDataviewViewCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewCreateRequest) *pb.RpcBlockDataviewViewCreateResponse) *MockClientCommandsServer_BlockDataviewViewCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewDelete(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewDeleteRequest) *pb.RpcBlockDataviewViewDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewDelete")
- }
-
- var r0 *pb.RpcBlockDataviewViewDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewDeleteRequest) *pb.RpcBlockDataviewViewDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewDelete'
-type MockClientCommandsServer_BlockDataviewViewDelete_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewDelete_Call {
- return &MockClientCommandsServer_BlockDataviewViewDelete_Call{Call: _e.mock.On("BlockDataviewViewDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewDeleteRequest)) *MockClientCommandsServer_BlockDataviewViewDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewDelete_Call) Return(_a0 *pb.RpcBlockDataviewViewDeleteResponse) *MockClientCommandsServer_BlockDataviewViewDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewDeleteRequest) *pb.RpcBlockDataviewViewDeleteResponse) *MockClientCommandsServer_BlockDataviewViewDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewRelationAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewRelationAdd(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewRelationAddRequest) *pb.RpcBlockDataviewViewRelationAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewRelationAdd")
- }
-
- var r0 *pb.RpcBlockDataviewViewRelationAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewRelationAddRequest) *pb.RpcBlockDataviewViewRelationAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewRelationAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewRelationAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewRelationAdd'
-type MockClientCommandsServer_BlockDataviewViewRelationAdd_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewRelationAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewRelationAddRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewRelationAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewRelationAdd_Call {
- return &MockClientCommandsServer_BlockDataviewViewRelationAdd_Call{Call: _e.mock.On("BlockDataviewViewRelationAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewRelationAddRequest)) *MockClientCommandsServer_BlockDataviewViewRelationAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewRelationAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationAdd_Call) Return(_a0 *pb.RpcBlockDataviewViewRelationAddResponse) *MockClientCommandsServer_BlockDataviewViewRelationAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewRelationAddRequest) *pb.RpcBlockDataviewViewRelationAddResponse) *MockClientCommandsServer_BlockDataviewViewRelationAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewRelationRemove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewRelationRemove(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewRelationRemoveRequest) *pb.RpcBlockDataviewViewRelationRemoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewRelationRemove")
- }
-
- var r0 *pb.RpcBlockDataviewViewRelationRemoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewRelationRemoveRequest) *pb.RpcBlockDataviewViewRelationRemoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewRelationRemoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewRelationRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewRelationRemove'
-type MockClientCommandsServer_BlockDataviewViewRelationRemove_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewRelationRemove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewRelationRemoveRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewRelationRemove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewRelationRemove_Call {
- return &MockClientCommandsServer_BlockDataviewViewRelationRemove_Call{Call: _e.mock.On("BlockDataviewViewRelationRemove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewRelationRemoveRequest)) *MockClientCommandsServer_BlockDataviewViewRelationRemove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewRelationRemoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationRemove_Call) Return(_a0 *pb.RpcBlockDataviewViewRelationRemoveResponse) *MockClientCommandsServer_BlockDataviewViewRelationRemove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewRelationRemoveRequest) *pb.RpcBlockDataviewViewRelationRemoveResponse) *MockClientCommandsServer_BlockDataviewViewRelationRemove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewRelationReplace provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewRelationReplace(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewRelationReplaceRequest) *pb.RpcBlockDataviewViewRelationReplaceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewRelationReplace")
- }
-
- var r0 *pb.RpcBlockDataviewViewRelationReplaceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewRelationReplaceRequest) *pb.RpcBlockDataviewViewRelationReplaceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewRelationReplaceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewRelationReplace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewRelationReplace'
-type MockClientCommandsServer_BlockDataviewViewRelationReplace_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewRelationReplace is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewRelationReplaceRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewRelationReplace(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewRelationReplace_Call {
- return &MockClientCommandsServer_BlockDataviewViewRelationReplace_Call{Call: _e.mock.On("BlockDataviewViewRelationReplace", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationReplace_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewRelationReplaceRequest)) *MockClientCommandsServer_BlockDataviewViewRelationReplace_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewRelationReplaceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationReplace_Call) Return(_a0 *pb.RpcBlockDataviewViewRelationReplaceResponse) *MockClientCommandsServer_BlockDataviewViewRelationReplace_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationReplace_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewRelationReplaceRequest) *pb.RpcBlockDataviewViewRelationReplaceResponse) *MockClientCommandsServer_BlockDataviewViewRelationReplace_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewRelationSort provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewRelationSort(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewRelationSortRequest) *pb.RpcBlockDataviewViewRelationSortResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewRelationSort")
- }
-
- var r0 *pb.RpcBlockDataviewViewRelationSortResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewRelationSortRequest) *pb.RpcBlockDataviewViewRelationSortResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewRelationSortResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewRelationSort_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewRelationSort'
-type MockClientCommandsServer_BlockDataviewViewRelationSort_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewRelationSort is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewRelationSortRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewRelationSort(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewRelationSort_Call {
- return &MockClientCommandsServer_BlockDataviewViewRelationSort_Call{Call: _e.mock.On("BlockDataviewViewRelationSort", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationSort_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewRelationSortRequest)) *MockClientCommandsServer_BlockDataviewViewRelationSort_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewRelationSortRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationSort_Call) Return(_a0 *pb.RpcBlockDataviewViewRelationSortResponse) *MockClientCommandsServer_BlockDataviewViewRelationSort_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewRelationSort_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewRelationSortRequest) *pb.RpcBlockDataviewViewRelationSortResponse) *MockClientCommandsServer_BlockDataviewViewRelationSort_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewSetActive provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewSetActive(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewSetActiveRequest) *pb.RpcBlockDataviewViewSetActiveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewSetActive")
- }
-
- var r0 *pb.RpcBlockDataviewViewSetActiveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewSetActiveRequest) *pb.RpcBlockDataviewViewSetActiveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewSetActiveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewSetActive_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewSetActive'
-type MockClientCommandsServer_BlockDataviewViewSetActive_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewSetActive is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewSetActiveRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewSetActive(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewSetActive_Call {
- return &MockClientCommandsServer_BlockDataviewViewSetActive_Call{Call: _e.mock.On("BlockDataviewViewSetActive", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewSetActive_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewSetActiveRequest)) *MockClientCommandsServer_BlockDataviewViewSetActive_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewSetActiveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewSetActive_Call) Return(_a0 *pb.RpcBlockDataviewViewSetActiveResponse) *MockClientCommandsServer_BlockDataviewViewSetActive_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewSetActive_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewSetActiveRequest) *pb.RpcBlockDataviewViewSetActiveResponse) *MockClientCommandsServer_BlockDataviewViewSetActive_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewSetPosition provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewSetPosition(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewSetPositionRequest) *pb.RpcBlockDataviewViewSetPositionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewSetPosition")
- }
-
- var r0 *pb.RpcBlockDataviewViewSetPositionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewSetPositionRequest) *pb.RpcBlockDataviewViewSetPositionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewSetPositionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewSetPosition_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewSetPosition'
-type MockClientCommandsServer_BlockDataviewViewSetPosition_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewSetPosition is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewSetPositionRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewSetPosition(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewSetPosition_Call {
- return &MockClientCommandsServer_BlockDataviewViewSetPosition_Call{Call: _e.mock.On("BlockDataviewViewSetPosition", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewSetPosition_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewSetPositionRequest)) *MockClientCommandsServer_BlockDataviewViewSetPosition_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewSetPositionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewSetPosition_Call) Return(_a0 *pb.RpcBlockDataviewViewSetPositionResponse) *MockClientCommandsServer_BlockDataviewViewSetPosition_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewSetPosition_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewSetPositionRequest) *pb.RpcBlockDataviewViewSetPositionResponse) *MockClientCommandsServer_BlockDataviewViewSetPosition_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDataviewViewUpdate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDataviewViewUpdate(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewUpdateRequest) *pb.RpcBlockDataviewViewUpdateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDataviewViewUpdate")
- }
-
- var r0 *pb.RpcBlockDataviewViewUpdateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDataviewViewUpdateRequest) *pb.RpcBlockDataviewViewUpdateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDataviewViewUpdateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDataviewViewUpdate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDataviewViewUpdate'
-type MockClientCommandsServer_BlockDataviewViewUpdate_Call struct {
- *mock.Call
-}
-
-// BlockDataviewViewUpdate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDataviewViewUpdateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDataviewViewUpdate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDataviewViewUpdate_Call {
- return &MockClientCommandsServer_BlockDataviewViewUpdate_Call{Call: _e.mock.On("BlockDataviewViewUpdate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewUpdate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDataviewViewUpdateRequest)) *MockClientCommandsServer_BlockDataviewViewUpdate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDataviewViewUpdateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewUpdate_Call) Return(_a0 *pb.RpcBlockDataviewViewUpdateResponse) *MockClientCommandsServer_BlockDataviewViewUpdate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDataviewViewUpdate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDataviewViewUpdateRequest) *pb.RpcBlockDataviewViewUpdateResponse) *MockClientCommandsServer_BlockDataviewViewUpdate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockDivListSetStyle provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockDivListSetStyle(_a0 context.Context, _a1 *pb.RpcBlockDivListSetStyleRequest) *pb.RpcBlockDivListSetStyleResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockDivListSetStyle")
- }
-
- var r0 *pb.RpcBlockDivListSetStyleResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockDivListSetStyleRequest) *pb.RpcBlockDivListSetStyleResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockDivListSetStyleResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockDivListSetStyle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockDivListSetStyle'
-type MockClientCommandsServer_BlockDivListSetStyle_Call struct {
- *mock.Call
-}
-
-// BlockDivListSetStyle is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockDivListSetStyleRequest
-func (_e *MockClientCommandsServer_Expecter) BlockDivListSetStyle(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockDivListSetStyle_Call {
- return &MockClientCommandsServer_BlockDivListSetStyle_Call{Call: _e.mock.On("BlockDivListSetStyle", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockDivListSetStyle_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockDivListSetStyleRequest)) *MockClientCommandsServer_BlockDivListSetStyle_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockDivListSetStyleRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDivListSetStyle_Call) Return(_a0 *pb.RpcBlockDivListSetStyleResponse) *MockClientCommandsServer_BlockDivListSetStyle_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockDivListSetStyle_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockDivListSetStyleRequest) *pb.RpcBlockDivListSetStyleResponse) *MockClientCommandsServer_BlockDivListSetStyle_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockExport provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockExport(_a0 context.Context, _a1 *pb.RpcBlockExportRequest) *pb.RpcBlockExportResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockExport")
- }
-
- var r0 *pb.RpcBlockExportResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockExportRequest) *pb.RpcBlockExportResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockExportResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockExport_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockExport'
-type MockClientCommandsServer_BlockExport_Call struct {
- *mock.Call
-}
-
-// BlockExport is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockExportRequest
-func (_e *MockClientCommandsServer_Expecter) BlockExport(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockExport_Call {
- return &MockClientCommandsServer_BlockExport_Call{Call: _e.mock.On("BlockExport", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockExport_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockExportRequest)) *MockClientCommandsServer_BlockExport_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockExportRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockExport_Call) Return(_a0 *pb.RpcBlockExportResponse) *MockClientCommandsServer_BlockExport_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockExport_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockExportRequest) *pb.RpcBlockExportResponse) *MockClientCommandsServer_BlockExport_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockFileCreateAndUpload provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockFileCreateAndUpload(_a0 context.Context, _a1 *pb.RpcBlockFileCreateAndUploadRequest) *pb.RpcBlockFileCreateAndUploadResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockFileCreateAndUpload")
- }
-
- var r0 *pb.RpcBlockFileCreateAndUploadResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockFileCreateAndUploadRequest) *pb.RpcBlockFileCreateAndUploadResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockFileCreateAndUploadResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockFileCreateAndUpload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockFileCreateAndUpload'
-type MockClientCommandsServer_BlockFileCreateAndUpload_Call struct {
- *mock.Call
-}
-
-// BlockFileCreateAndUpload is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockFileCreateAndUploadRequest
-func (_e *MockClientCommandsServer_Expecter) BlockFileCreateAndUpload(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockFileCreateAndUpload_Call {
- return &MockClientCommandsServer_BlockFileCreateAndUpload_Call{Call: _e.mock.On("BlockFileCreateAndUpload", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockFileCreateAndUpload_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockFileCreateAndUploadRequest)) *MockClientCommandsServer_BlockFileCreateAndUpload_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockFileCreateAndUploadRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockFileCreateAndUpload_Call) Return(_a0 *pb.RpcBlockFileCreateAndUploadResponse) *MockClientCommandsServer_BlockFileCreateAndUpload_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockFileCreateAndUpload_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockFileCreateAndUploadRequest) *pb.RpcBlockFileCreateAndUploadResponse) *MockClientCommandsServer_BlockFileCreateAndUpload_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockFileListSetStyle provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockFileListSetStyle(_a0 context.Context, _a1 *pb.RpcBlockFileListSetStyleRequest) *pb.RpcBlockFileListSetStyleResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockFileListSetStyle")
- }
-
- var r0 *pb.RpcBlockFileListSetStyleResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockFileListSetStyleRequest) *pb.RpcBlockFileListSetStyleResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockFileListSetStyleResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockFileListSetStyle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockFileListSetStyle'
-type MockClientCommandsServer_BlockFileListSetStyle_Call struct {
- *mock.Call
-}
-
-// BlockFileListSetStyle is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockFileListSetStyleRequest
-func (_e *MockClientCommandsServer_Expecter) BlockFileListSetStyle(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockFileListSetStyle_Call {
- return &MockClientCommandsServer_BlockFileListSetStyle_Call{Call: _e.mock.On("BlockFileListSetStyle", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockFileListSetStyle_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockFileListSetStyleRequest)) *MockClientCommandsServer_BlockFileListSetStyle_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockFileListSetStyleRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockFileListSetStyle_Call) Return(_a0 *pb.RpcBlockFileListSetStyleResponse) *MockClientCommandsServer_BlockFileListSetStyle_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockFileListSetStyle_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockFileListSetStyleRequest) *pb.RpcBlockFileListSetStyleResponse) *MockClientCommandsServer_BlockFileListSetStyle_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockFileSetName provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockFileSetName(_a0 context.Context, _a1 *pb.RpcBlockFileSetNameRequest) *pb.RpcBlockFileSetNameResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockFileSetName")
- }
-
- var r0 *pb.RpcBlockFileSetNameResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockFileSetNameRequest) *pb.RpcBlockFileSetNameResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockFileSetNameResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockFileSetName_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockFileSetName'
-type MockClientCommandsServer_BlockFileSetName_Call struct {
- *mock.Call
-}
-
-// BlockFileSetName is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockFileSetNameRequest
-func (_e *MockClientCommandsServer_Expecter) BlockFileSetName(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockFileSetName_Call {
- return &MockClientCommandsServer_BlockFileSetName_Call{Call: _e.mock.On("BlockFileSetName", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockFileSetName_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockFileSetNameRequest)) *MockClientCommandsServer_BlockFileSetName_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockFileSetNameRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockFileSetName_Call) Return(_a0 *pb.RpcBlockFileSetNameResponse) *MockClientCommandsServer_BlockFileSetName_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockFileSetName_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockFileSetNameRequest) *pb.RpcBlockFileSetNameResponse) *MockClientCommandsServer_BlockFileSetName_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockFileSetTargetObjectId provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockFileSetTargetObjectId(_a0 context.Context, _a1 *pb.RpcBlockFileSetTargetObjectIdRequest) *pb.RpcBlockFileSetTargetObjectIdResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockFileSetTargetObjectId")
- }
-
- var r0 *pb.RpcBlockFileSetTargetObjectIdResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockFileSetTargetObjectIdRequest) *pb.RpcBlockFileSetTargetObjectIdResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockFileSetTargetObjectIdResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockFileSetTargetObjectId_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockFileSetTargetObjectId'
-type MockClientCommandsServer_BlockFileSetTargetObjectId_Call struct {
- *mock.Call
-}
-
-// BlockFileSetTargetObjectId is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockFileSetTargetObjectIdRequest
-func (_e *MockClientCommandsServer_Expecter) BlockFileSetTargetObjectId(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockFileSetTargetObjectId_Call {
- return &MockClientCommandsServer_BlockFileSetTargetObjectId_Call{Call: _e.mock.On("BlockFileSetTargetObjectId", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockFileSetTargetObjectId_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockFileSetTargetObjectIdRequest)) *MockClientCommandsServer_BlockFileSetTargetObjectId_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockFileSetTargetObjectIdRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockFileSetTargetObjectId_Call) Return(_a0 *pb.RpcBlockFileSetTargetObjectIdResponse) *MockClientCommandsServer_BlockFileSetTargetObjectId_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockFileSetTargetObjectId_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockFileSetTargetObjectIdRequest) *pb.RpcBlockFileSetTargetObjectIdResponse) *MockClientCommandsServer_BlockFileSetTargetObjectId_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockImageSetName provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockImageSetName(_a0 context.Context, _a1 *pb.RpcBlockImageSetNameRequest) *pb.RpcBlockImageSetNameResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockImageSetName")
- }
-
- var r0 *pb.RpcBlockImageSetNameResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockImageSetNameRequest) *pb.RpcBlockImageSetNameResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockImageSetNameResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockImageSetName_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockImageSetName'
-type MockClientCommandsServer_BlockImageSetName_Call struct {
- *mock.Call
-}
-
-// BlockImageSetName is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockImageSetNameRequest
-func (_e *MockClientCommandsServer_Expecter) BlockImageSetName(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockImageSetName_Call {
- return &MockClientCommandsServer_BlockImageSetName_Call{Call: _e.mock.On("BlockImageSetName", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockImageSetName_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockImageSetNameRequest)) *MockClientCommandsServer_BlockImageSetName_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockImageSetNameRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockImageSetName_Call) Return(_a0 *pb.RpcBlockImageSetNameResponse) *MockClientCommandsServer_BlockImageSetName_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockImageSetName_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockImageSetNameRequest) *pb.RpcBlockImageSetNameResponse) *MockClientCommandsServer_BlockImageSetName_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockLatexSetText provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockLatexSetText(_a0 context.Context, _a1 *pb.RpcBlockLatexSetTextRequest) *pb.RpcBlockLatexSetTextResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockLatexSetText")
- }
-
- var r0 *pb.RpcBlockLatexSetTextResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockLatexSetTextRequest) *pb.RpcBlockLatexSetTextResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockLatexSetTextResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockLatexSetText_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockLatexSetText'
-type MockClientCommandsServer_BlockLatexSetText_Call struct {
- *mock.Call
-}
-
-// BlockLatexSetText is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockLatexSetTextRequest
-func (_e *MockClientCommandsServer_Expecter) BlockLatexSetText(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockLatexSetText_Call {
- return &MockClientCommandsServer_BlockLatexSetText_Call{Call: _e.mock.On("BlockLatexSetText", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockLatexSetText_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockLatexSetTextRequest)) *MockClientCommandsServer_BlockLatexSetText_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockLatexSetTextRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockLatexSetText_Call) Return(_a0 *pb.RpcBlockLatexSetTextResponse) *MockClientCommandsServer_BlockLatexSetText_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockLatexSetText_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockLatexSetTextRequest) *pb.RpcBlockLatexSetTextResponse) *MockClientCommandsServer_BlockLatexSetText_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockLinkCreateWithObject provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockLinkCreateWithObject(_a0 context.Context, _a1 *pb.RpcBlockLinkCreateWithObjectRequest) *pb.RpcBlockLinkCreateWithObjectResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockLinkCreateWithObject")
- }
-
- var r0 *pb.RpcBlockLinkCreateWithObjectResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockLinkCreateWithObjectRequest) *pb.RpcBlockLinkCreateWithObjectResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockLinkCreateWithObjectResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockLinkCreateWithObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockLinkCreateWithObject'
-type MockClientCommandsServer_BlockLinkCreateWithObject_Call struct {
- *mock.Call
-}
-
-// BlockLinkCreateWithObject is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockLinkCreateWithObjectRequest
-func (_e *MockClientCommandsServer_Expecter) BlockLinkCreateWithObject(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockLinkCreateWithObject_Call {
- return &MockClientCommandsServer_BlockLinkCreateWithObject_Call{Call: _e.mock.On("BlockLinkCreateWithObject", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockLinkCreateWithObject_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockLinkCreateWithObjectRequest)) *MockClientCommandsServer_BlockLinkCreateWithObject_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockLinkCreateWithObjectRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockLinkCreateWithObject_Call) Return(_a0 *pb.RpcBlockLinkCreateWithObjectResponse) *MockClientCommandsServer_BlockLinkCreateWithObject_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockLinkCreateWithObject_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockLinkCreateWithObjectRequest) *pb.RpcBlockLinkCreateWithObjectResponse) *MockClientCommandsServer_BlockLinkCreateWithObject_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockLinkListSetAppearance provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockLinkListSetAppearance(_a0 context.Context, _a1 *pb.RpcBlockLinkListSetAppearanceRequest) *pb.RpcBlockLinkListSetAppearanceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockLinkListSetAppearance")
- }
-
- var r0 *pb.RpcBlockLinkListSetAppearanceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockLinkListSetAppearanceRequest) *pb.RpcBlockLinkListSetAppearanceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockLinkListSetAppearanceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockLinkListSetAppearance_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockLinkListSetAppearance'
-type MockClientCommandsServer_BlockLinkListSetAppearance_Call struct {
- *mock.Call
-}
-
-// BlockLinkListSetAppearance is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockLinkListSetAppearanceRequest
-func (_e *MockClientCommandsServer_Expecter) BlockLinkListSetAppearance(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockLinkListSetAppearance_Call {
- return &MockClientCommandsServer_BlockLinkListSetAppearance_Call{Call: _e.mock.On("BlockLinkListSetAppearance", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockLinkListSetAppearance_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockLinkListSetAppearanceRequest)) *MockClientCommandsServer_BlockLinkListSetAppearance_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockLinkListSetAppearanceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockLinkListSetAppearance_Call) Return(_a0 *pb.RpcBlockLinkListSetAppearanceResponse) *MockClientCommandsServer_BlockLinkListSetAppearance_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockLinkListSetAppearance_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockLinkListSetAppearanceRequest) *pb.RpcBlockLinkListSetAppearanceResponse) *MockClientCommandsServer_BlockLinkListSetAppearance_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListConvertToObjects provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListConvertToObjects(_a0 context.Context, _a1 *pb.RpcBlockListConvertToObjectsRequest) *pb.RpcBlockListConvertToObjectsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListConvertToObjects")
- }
-
- var r0 *pb.RpcBlockListConvertToObjectsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListConvertToObjectsRequest) *pb.RpcBlockListConvertToObjectsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListConvertToObjectsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListConvertToObjects_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListConvertToObjects'
-type MockClientCommandsServer_BlockListConvertToObjects_Call struct {
- *mock.Call
-}
-
-// BlockListConvertToObjects is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListConvertToObjectsRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListConvertToObjects(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListConvertToObjects_Call {
- return &MockClientCommandsServer_BlockListConvertToObjects_Call{Call: _e.mock.On("BlockListConvertToObjects", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListConvertToObjects_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListConvertToObjectsRequest)) *MockClientCommandsServer_BlockListConvertToObjects_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListConvertToObjectsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListConvertToObjects_Call) Return(_a0 *pb.RpcBlockListConvertToObjectsResponse) *MockClientCommandsServer_BlockListConvertToObjects_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListConvertToObjects_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListConvertToObjectsRequest) *pb.RpcBlockListConvertToObjectsResponse) *MockClientCommandsServer_BlockListConvertToObjects_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListDelete(_a0 context.Context, _a1 *pb.RpcBlockListDeleteRequest) *pb.RpcBlockListDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListDelete")
- }
-
- var r0 *pb.RpcBlockListDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListDeleteRequest) *pb.RpcBlockListDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListDelete'
-type MockClientCommandsServer_BlockListDelete_Call struct {
- *mock.Call
-}
-
-// BlockListDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListDelete_Call {
- return &MockClientCommandsServer_BlockListDelete_Call{Call: _e.mock.On("BlockListDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListDeleteRequest)) *MockClientCommandsServer_BlockListDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListDelete_Call) Return(_a0 *pb.RpcBlockListDeleteResponse) *MockClientCommandsServer_BlockListDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListDeleteRequest) *pb.RpcBlockListDeleteResponse) *MockClientCommandsServer_BlockListDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListDuplicate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListDuplicate(_a0 context.Context, _a1 *pb.RpcBlockListDuplicateRequest) *pb.RpcBlockListDuplicateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListDuplicate")
- }
-
- var r0 *pb.RpcBlockListDuplicateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListDuplicateRequest) *pb.RpcBlockListDuplicateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListDuplicateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListDuplicate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListDuplicate'
-type MockClientCommandsServer_BlockListDuplicate_Call struct {
- *mock.Call
-}
-
-// BlockListDuplicate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListDuplicateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListDuplicate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListDuplicate_Call {
- return &MockClientCommandsServer_BlockListDuplicate_Call{Call: _e.mock.On("BlockListDuplicate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListDuplicate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListDuplicateRequest)) *MockClientCommandsServer_BlockListDuplicate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListDuplicateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListDuplicate_Call) Return(_a0 *pb.RpcBlockListDuplicateResponse) *MockClientCommandsServer_BlockListDuplicate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListDuplicate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListDuplicateRequest) *pb.RpcBlockListDuplicateResponse) *MockClientCommandsServer_BlockListDuplicate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListMoveToExistingObject provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListMoveToExistingObject(_a0 context.Context, _a1 *pb.RpcBlockListMoveToExistingObjectRequest) *pb.RpcBlockListMoveToExistingObjectResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListMoveToExistingObject")
- }
-
- var r0 *pb.RpcBlockListMoveToExistingObjectResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListMoveToExistingObjectRequest) *pb.RpcBlockListMoveToExistingObjectResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListMoveToExistingObjectResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListMoveToExistingObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListMoveToExistingObject'
-type MockClientCommandsServer_BlockListMoveToExistingObject_Call struct {
- *mock.Call
-}
-
-// BlockListMoveToExistingObject is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListMoveToExistingObjectRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListMoveToExistingObject(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListMoveToExistingObject_Call {
- return &MockClientCommandsServer_BlockListMoveToExistingObject_Call{Call: _e.mock.On("BlockListMoveToExistingObject", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListMoveToExistingObject_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListMoveToExistingObjectRequest)) *MockClientCommandsServer_BlockListMoveToExistingObject_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListMoveToExistingObjectRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListMoveToExistingObject_Call) Return(_a0 *pb.RpcBlockListMoveToExistingObjectResponse) *MockClientCommandsServer_BlockListMoveToExistingObject_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListMoveToExistingObject_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListMoveToExistingObjectRequest) *pb.RpcBlockListMoveToExistingObjectResponse) *MockClientCommandsServer_BlockListMoveToExistingObject_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListMoveToNewObject provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListMoveToNewObject(_a0 context.Context, _a1 *pb.RpcBlockListMoveToNewObjectRequest) *pb.RpcBlockListMoveToNewObjectResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListMoveToNewObject")
- }
-
- var r0 *pb.RpcBlockListMoveToNewObjectResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListMoveToNewObjectRequest) *pb.RpcBlockListMoveToNewObjectResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListMoveToNewObjectResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListMoveToNewObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListMoveToNewObject'
-type MockClientCommandsServer_BlockListMoveToNewObject_Call struct {
- *mock.Call
-}
-
-// BlockListMoveToNewObject is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListMoveToNewObjectRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListMoveToNewObject(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListMoveToNewObject_Call {
- return &MockClientCommandsServer_BlockListMoveToNewObject_Call{Call: _e.mock.On("BlockListMoveToNewObject", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListMoveToNewObject_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListMoveToNewObjectRequest)) *MockClientCommandsServer_BlockListMoveToNewObject_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListMoveToNewObjectRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListMoveToNewObject_Call) Return(_a0 *pb.RpcBlockListMoveToNewObjectResponse) *MockClientCommandsServer_BlockListMoveToNewObject_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListMoveToNewObject_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListMoveToNewObjectRequest) *pb.RpcBlockListMoveToNewObjectResponse) *MockClientCommandsServer_BlockListMoveToNewObject_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListSetAlign provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListSetAlign(_a0 context.Context, _a1 *pb.RpcBlockListSetAlignRequest) *pb.RpcBlockListSetAlignResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListSetAlign")
- }
-
- var r0 *pb.RpcBlockListSetAlignResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListSetAlignRequest) *pb.RpcBlockListSetAlignResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListSetAlignResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListSetAlign_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListSetAlign'
-type MockClientCommandsServer_BlockListSetAlign_Call struct {
- *mock.Call
-}
-
-// BlockListSetAlign is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListSetAlignRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListSetAlign(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListSetAlign_Call {
- return &MockClientCommandsServer_BlockListSetAlign_Call{Call: _e.mock.On("BlockListSetAlign", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListSetAlign_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListSetAlignRequest)) *MockClientCommandsServer_BlockListSetAlign_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListSetAlignRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListSetAlign_Call) Return(_a0 *pb.RpcBlockListSetAlignResponse) *MockClientCommandsServer_BlockListSetAlign_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListSetAlign_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListSetAlignRequest) *pb.RpcBlockListSetAlignResponse) *MockClientCommandsServer_BlockListSetAlign_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListSetBackgroundColor provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListSetBackgroundColor(_a0 context.Context, _a1 *pb.RpcBlockListSetBackgroundColorRequest) *pb.RpcBlockListSetBackgroundColorResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListSetBackgroundColor")
- }
-
- var r0 *pb.RpcBlockListSetBackgroundColorResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListSetBackgroundColorRequest) *pb.RpcBlockListSetBackgroundColorResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListSetBackgroundColorResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListSetBackgroundColor_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListSetBackgroundColor'
-type MockClientCommandsServer_BlockListSetBackgroundColor_Call struct {
- *mock.Call
-}
-
-// BlockListSetBackgroundColor is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListSetBackgroundColorRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListSetBackgroundColor(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListSetBackgroundColor_Call {
- return &MockClientCommandsServer_BlockListSetBackgroundColor_Call{Call: _e.mock.On("BlockListSetBackgroundColor", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListSetBackgroundColor_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListSetBackgroundColorRequest)) *MockClientCommandsServer_BlockListSetBackgroundColor_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListSetBackgroundColorRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListSetBackgroundColor_Call) Return(_a0 *pb.RpcBlockListSetBackgroundColorResponse) *MockClientCommandsServer_BlockListSetBackgroundColor_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListSetBackgroundColor_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListSetBackgroundColorRequest) *pb.RpcBlockListSetBackgroundColorResponse) *MockClientCommandsServer_BlockListSetBackgroundColor_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListSetFields provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListSetFields(_a0 context.Context, _a1 *pb.RpcBlockListSetFieldsRequest) *pb.RpcBlockListSetFieldsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListSetFields")
- }
-
- var r0 *pb.RpcBlockListSetFieldsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListSetFieldsRequest) *pb.RpcBlockListSetFieldsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListSetFieldsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListSetFields_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListSetFields'
-type MockClientCommandsServer_BlockListSetFields_Call struct {
- *mock.Call
-}
-
-// BlockListSetFields is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListSetFieldsRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListSetFields(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListSetFields_Call {
- return &MockClientCommandsServer_BlockListSetFields_Call{Call: _e.mock.On("BlockListSetFields", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListSetFields_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListSetFieldsRequest)) *MockClientCommandsServer_BlockListSetFields_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListSetFieldsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListSetFields_Call) Return(_a0 *pb.RpcBlockListSetFieldsResponse) *MockClientCommandsServer_BlockListSetFields_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListSetFields_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListSetFieldsRequest) *pb.RpcBlockListSetFieldsResponse) *MockClientCommandsServer_BlockListSetFields_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListSetVerticalAlign provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListSetVerticalAlign(_a0 context.Context, _a1 *pb.RpcBlockListSetVerticalAlignRequest) *pb.RpcBlockListSetVerticalAlignResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListSetVerticalAlign")
- }
-
- var r0 *pb.RpcBlockListSetVerticalAlignResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListSetVerticalAlignRequest) *pb.RpcBlockListSetVerticalAlignResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListSetVerticalAlignResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListSetVerticalAlign_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListSetVerticalAlign'
-type MockClientCommandsServer_BlockListSetVerticalAlign_Call struct {
- *mock.Call
-}
-
-// BlockListSetVerticalAlign is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListSetVerticalAlignRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListSetVerticalAlign(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListSetVerticalAlign_Call {
- return &MockClientCommandsServer_BlockListSetVerticalAlign_Call{Call: _e.mock.On("BlockListSetVerticalAlign", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListSetVerticalAlign_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListSetVerticalAlignRequest)) *MockClientCommandsServer_BlockListSetVerticalAlign_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListSetVerticalAlignRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListSetVerticalAlign_Call) Return(_a0 *pb.RpcBlockListSetVerticalAlignResponse) *MockClientCommandsServer_BlockListSetVerticalAlign_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListSetVerticalAlign_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListSetVerticalAlignRequest) *pb.RpcBlockListSetVerticalAlignResponse) *MockClientCommandsServer_BlockListSetVerticalAlign_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockListTurnInto provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockListTurnInto(_a0 context.Context, _a1 *pb.RpcBlockListTurnIntoRequest) *pb.RpcBlockListTurnIntoResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockListTurnInto")
- }
-
- var r0 *pb.RpcBlockListTurnIntoResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockListTurnIntoRequest) *pb.RpcBlockListTurnIntoResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockListTurnIntoResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockListTurnInto_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockListTurnInto'
-type MockClientCommandsServer_BlockListTurnInto_Call struct {
- *mock.Call
-}
-
-// BlockListTurnInto is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockListTurnIntoRequest
-func (_e *MockClientCommandsServer_Expecter) BlockListTurnInto(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockListTurnInto_Call {
- return &MockClientCommandsServer_BlockListTurnInto_Call{Call: _e.mock.On("BlockListTurnInto", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockListTurnInto_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockListTurnIntoRequest)) *MockClientCommandsServer_BlockListTurnInto_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockListTurnIntoRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListTurnInto_Call) Return(_a0 *pb.RpcBlockListTurnIntoResponse) *MockClientCommandsServer_BlockListTurnInto_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockListTurnInto_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockListTurnIntoRequest) *pb.RpcBlockListTurnIntoResponse) *MockClientCommandsServer_BlockListTurnInto_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockMerge provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockMerge(_a0 context.Context, _a1 *pb.RpcBlockMergeRequest) *pb.RpcBlockMergeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockMerge")
- }
-
- var r0 *pb.RpcBlockMergeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockMergeRequest) *pb.RpcBlockMergeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockMergeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockMerge_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockMerge'
-type MockClientCommandsServer_BlockMerge_Call struct {
- *mock.Call
-}
-
-// BlockMerge is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockMergeRequest
-func (_e *MockClientCommandsServer_Expecter) BlockMerge(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockMerge_Call {
- return &MockClientCommandsServer_BlockMerge_Call{Call: _e.mock.On("BlockMerge", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockMerge_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockMergeRequest)) *MockClientCommandsServer_BlockMerge_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockMergeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockMerge_Call) Return(_a0 *pb.RpcBlockMergeResponse) *MockClientCommandsServer_BlockMerge_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockMerge_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockMergeRequest) *pb.RpcBlockMergeResponse) *MockClientCommandsServer_BlockMerge_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockPaste provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockPaste(_a0 context.Context, _a1 *pb.RpcBlockPasteRequest) *pb.RpcBlockPasteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockPaste")
- }
-
- var r0 *pb.RpcBlockPasteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockPasteRequest) *pb.RpcBlockPasteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockPasteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockPaste_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockPaste'
-type MockClientCommandsServer_BlockPaste_Call struct {
- *mock.Call
-}
-
-// BlockPaste is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockPasteRequest
-func (_e *MockClientCommandsServer_Expecter) BlockPaste(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockPaste_Call {
- return &MockClientCommandsServer_BlockPaste_Call{Call: _e.mock.On("BlockPaste", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockPaste_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockPasteRequest)) *MockClientCommandsServer_BlockPaste_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockPasteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockPaste_Call) Return(_a0 *pb.RpcBlockPasteResponse) *MockClientCommandsServer_BlockPaste_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockPaste_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockPasteRequest) *pb.RpcBlockPasteResponse) *MockClientCommandsServer_BlockPaste_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockPreview provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockPreview(_a0 context.Context, _a1 *pb.RpcBlockPreviewRequest) *pb.RpcBlockPreviewResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockPreview")
- }
-
- var r0 *pb.RpcBlockPreviewResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockPreviewRequest) *pb.RpcBlockPreviewResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockPreviewResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockPreview_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockPreview'
-type MockClientCommandsServer_BlockPreview_Call struct {
- *mock.Call
-}
-
-// BlockPreview is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockPreviewRequest
-func (_e *MockClientCommandsServer_Expecter) BlockPreview(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockPreview_Call {
- return &MockClientCommandsServer_BlockPreview_Call{Call: _e.mock.On("BlockPreview", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockPreview_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockPreviewRequest)) *MockClientCommandsServer_BlockPreview_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockPreviewRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockPreview_Call) Return(_a0 *pb.RpcBlockPreviewResponse) *MockClientCommandsServer_BlockPreview_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockPreview_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockPreviewRequest) *pb.RpcBlockPreviewResponse) *MockClientCommandsServer_BlockPreview_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockRelationAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockRelationAdd(_a0 context.Context, _a1 *pb.RpcBlockRelationAddRequest) *pb.RpcBlockRelationAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockRelationAdd")
- }
-
- var r0 *pb.RpcBlockRelationAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockRelationAddRequest) *pb.RpcBlockRelationAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockRelationAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockRelationAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockRelationAdd'
-type MockClientCommandsServer_BlockRelationAdd_Call struct {
- *mock.Call
-}
-
-// BlockRelationAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockRelationAddRequest
-func (_e *MockClientCommandsServer_Expecter) BlockRelationAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockRelationAdd_Call {
- return &MockClientCommandsServer_BlockRelationAdd_Call{Call: _e.mock.On("BlockRelationAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockRelationAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockRelationAddRequest)) *MockClientCommandsServer_BlockRelationAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockRelationAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockRelationAdd_Call) Return(_a0 *pb.RpcBlockRelationAddResponse) *MockClientCommandsServer_BlockRelationAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockRelationAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockRelationAddRequest) *pb.RpcBlockRelationAddResponse) *MockClientCommandsServer_BlockRelationAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockRelationSetKey provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockRelationSetKey(_a0 context.Context, _a1 *pb.RpcBlockRelationSetKeyRequest) *pb.RpcBlockRelationSetKeyResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockRelationSetKey")
- }
-
- var r0 *pb.RpcBlockRelationSetKeyResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockRelationSetKeyRequest) *pb.RpcBlockRelationSetKeyResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockRelationSetKeyResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockRelationSetKey_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockRelationSetKey'
-type MockClientCommandsServer_BlockRelationSetKey_Call struct {
- *mock.Call
-}
-
-// BlockRelationSetKey is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockRelationSetKeyRequest
-func (_e *MockClientCommandsServer_Expecter) BlockRelationSetKey(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockRelationSetKey_Call {
- return &MockClientCommandsServer_BlockRelationSetKey_Call{Call: _e.mock.On("BlockRelationSetKey", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockRelationSetKey_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockRelationSetKeyRequest)) *MockClientCommandsServer_BlockRelationSetKey_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockRelationSetKeyRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockRelationSetKey_Call) Return(_a0 *pb.RpcBlockRelationSetKeyResponse) *MockClientCommandsServer_BlockRelationSetKey_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockRelationSetKey_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockRelationSetKeyRequest) *pb.RpcBlockRelationSetKeyResponse) *MockClientCommandsServer_BlockRelationSetKey_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockReplace provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockReplace(_a0 context.Context, _a1 *pb.RpcBlockReplaceRequest) *pb.RpcBlockReplaceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockReplace")
- }
-
- var r0 *pb.RpcBlockReplaceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockReplaceRequest) *pb.RpcBlockReplaceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockReplaceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockReplace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockReplace'
-type MockClientCommandsServer_BlockReplace_Call struct {
- *mock.Call
-}
-
-// BlockReplace is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockReplaceRequest
-func (_e *MockClientCommandsServer_Expecter) BlockReplace(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockReplace_Call {
- return &MockClientCommandsServer_BlockReplace_Call{Call: _e.mock.On("BlockReplace", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockReplace_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockReplaceRequest)) *MockClientCommandsServer_BlockReplace_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockReplaceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockReplace_Call) Return(_a0 *pb.RpcBlockReplaceResponse) *MockClientCommandsServer_BlockReplace_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockReplace_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockReplaceRequest) *pb.RpcBlockReplaceResponse) *MockClientCommandsServer_BlockReplace_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockSetCarriage provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockSetCarriage(_a0 context.Context, _a1 *pb.RpcBlockSetCarriageRequest) *pb.RpcBlockSetCarriageResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockSetCarriage")
- }
-
- var r0 *pb.RpcBlockSetCarriageResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockSetCarriageRequest) *pb.RpcBlockSetCarriageResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockSetCarriageResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockSetCarriage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockSetCarriage'
-type MockClientCommandsServer_BlockSetCarriage_Call struct {
- *mock.Call
-}
-
-// BlockSetCarriage is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockSetCarriageRequest
-func (_e *MockClientCommandsServer_Expecter) BlockSetCarriage(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockSetCarriage_Call {
- return &MockClientCommandsServer_BlockSetCarriage_Call{Call: _e.mock.On("BlockSetCarriage", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockSetCarriage_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockSetCarriageRequest)) *MockClientCommandsServer_BlockSetCarriage_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockSetCarriageRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockSetCarriage_Call) Return(_a0 *pb.RpcBlockSetCarriageResponse) *MockClientCommandsServer_BlockSetCarriage_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockSetCarriage_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockSetCarriageRequest) *pb.RpcBlockSetCarriageResponse) *MockClientCommandsServer_BlockSetCarriage_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockSetFields provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockSetFields(_a0 context.Context, _a1 *pb.RpcBlockSetFieldsRequest) *pb.RpcBlockSetFieldsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockSetFields")
- }
-
- var r0 *pb.RpcBlockSetFieldsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockSetFieldsRequest) *pb.RpcBlockSetFieldsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockSetFieldsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockSetFields_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockSetFields'
-type MockClientCommandsServer_BlockSetFields_Call struct {
- *mock.Call
-}
-
-// BlockSetFields is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockSetFieldsRequest
-func (_e *MockClientCommandsServer_Expecter) BlockSetFields(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockSetFields_Call {
- return &MockClientCommandsServer_BlockSetFields_Call{Call: _e.mock.On("BlockSetFields", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockSetFields_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockSetFieldsRequest)) *MockClientCommandsServer_BlockSetFields_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockSetFieldsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockSetFields_Call) Return(_a0 *pb.RpcBlockSetFieldsResponse) *MockClientCommandsServer_BlockSetFields_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockSetFields_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockSetFieldsRequest) *pb.RpcBlockSetFieldsResponse) *MockClientCommandsServer_BlockSetFields_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockSplit provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockSplit(_a0 context.Context, _a1 *pb.RpcBlockSplitRequest) *pb.RpcBlockSplitResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockSplit")
- }
-
- var r0 *pb.RpcBlockSplitResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockSplitRequest) *pb.RpcBlockSplitResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockSplitResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockSplit_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockSplit'
-type MockClientCommandsServer_BlockSplit_Call struct {
- *mock.Call
-}
-
-// BlockSplit is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockSplitRequest
-func (_e *MockClientCommandsServer_Expecter) BlockSplit(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockSplit_Call {
- return &MockClientCommandsServer_BlockSplit_Call{Call: _e.mock.On("BlockSplit", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockSplit_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockSplitRequest)) *MockClientCommandsServer_BlockSplit_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockSplitRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockSplit_Call) Return(_a0 *pb.RpcBlockSplitResponse) *MockClientCommandsServer_BlockSplit_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockSplit_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockSplitRequest) *pb.RpcBlockSplitResponse) *MockClientCommandsServer_BlockSplit_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableColumnCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableColumnCreate(_a0 context.Context, _a1 *pb.RpcBlockTableColumnCreateRequest) *pb.RpcBlockTableColumnCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableColumnCreate")
- }
-
- var r0 *pb.RpcBlockTableColumnCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableColumnCreateRequest) *pb.RpcBlockTableColumnCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableColumnCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableColumnCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableColumnCreate'
-type MockClientCommandsServer_BlockTableColumnCreate_Call struct {
- *mock.Call
-}
-
-// BlockTableColumnCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableColumnCreateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableColumnCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableColumnCreate_Call {
- return &MockClientCommandsServer_BlockTableColumnCreate_Call{Call: _e.mock.On("BlockTableColumnCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableColumnCreateRequest)) *MockClientCommandsServer_BlockTableColumnCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableColumnCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnCreate_Call) Return(_a0 *pb.RpcBlockTableColumnCreateResponse) *MockClientCommandsServer_BlockTableColumnCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableColumnCreateRequest) *pb.RpcBlockTableColumnCreateResponse) *MockClientCommandsServer_BlockTableColumnCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableColumnDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableColumnDelete(_a0 context.Context, _a1 *pb.RpcBlockTableColumnDeleteRequest) *pb.RpcBlockTableColumnDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableColumnDelete")
- }
-
- var r0 *pb.RpcBlockTableColumnDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableColumnDeleteRequest) *pb.RpcBlockTableColumnDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableColumnDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableColumnDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableColumnDelete'
-type MockClientCommandsServer_BlockTableColumnDelete_Call struct {
- *mock.Call
-}
-
-// BlockTableColumnDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableColumnDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableColumnDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableColumnDelete_Call {
- return &MockClientCommandsServer_BlockTableColumnDelete_Call{Call: _e.mock.On("BlockTableColumnDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableColumnDeleteRequest)) *MockClientCommandsServer_BlockTableColumnDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableColumnDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnDelete_Call) Return(_a0 *pb.RpcBlockTableColumnDeleteResponse) *MockClientCommandsServer_BlockTableColumnDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableColumnDeleteRequest) *pb.RpcBlockTableColumnDeleteResponse) *MockClientCommandsServer_BlockTableColumnDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableColumnDuplicate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableColumnDuplicate(_a0 context.Context, _a1 *pb.RpcBlockTableColumnDuplicateRequest) *pb.RpcBlockTableColumnDuplicateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableColumnDuplicate")
- }
-
- var r0 *pb.RpcBlockTableColumnDuplicateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableColumnDuplicateRequest) *pb.RpcBlockTableColumnDuplicateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableColumnDuplicateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableColumnDuplicate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableColumnDuplicate'
-type MockClientCommandsServer_BlockTableColumnDuplicate_Call struct {
- *mock.Call
-}
-
-// BlockTableColumnDuplicate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableColumnDuplicateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableColumnDuplicate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableColumnDuplicate_Call {
- return &MockClientCommandsServer_BlockTableColumnDuplicate_Call{Call: _e.mock.On("BlockTableColumnDuplicate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnDuplicate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableColumnDuplicateRequest)) *MockClientCommandsServer_BlockTableColumnDuplicate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableColumnDuplicateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnDuplicate_Call) Return(_a0 *pb.RpcBlockTableColumnDuplicateResponse) *MockClientCommandsServer_BlockTableColumnDuplicate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnDuplicate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableColumnDuplicateRequest) *pb.RpcBlockTableColumnDuplicateResponse) *MockClientCommandsServer_BlockTableColumnDuplicate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableColumnListFill provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableColumnListFill(_a0 context.Context, _a1 *pb.RpcBlockTableColumnListFillRequest) *pb.RpcBlockTableColumnListFillResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableColumnListFill")
- }
-
- var r0 *pb.RpcBlockTableColumnListFillResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableColumnListFillRequest) *pb.RpcBlockTableColumnListFillResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableColumnListFillResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableColumnListFill_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableColumnListFill'
-type MockClientCommandsServer_BlockTableColumnListFill_Call struct {
- *mock.Call
-}
-
-// BlockTableColumnListFill is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableColumnListFillRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableColumnListFill(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableColumnListFill_Call {
- return &MockClientCommandsServer_BlockTableColumnListFill_Call{Call: _e.mock.On("BlockTableColumnListFill", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnListFill_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableColumnListFillRequest)) *MockClientCommandsServer_BlockTableColumnListFill_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableColumnListFillRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnListFill_Call) Return(_a0 *pb.RpcBlockTableColumnListFillResponse) *MockClientCommandsServer_BlockTableColumnListFill_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnListFill_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableColumnListFillRequest) *pb.RpcBlockTableColumnListFillResponse) *MockClientCommandsServer_BlockTableColumnListFill_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableColumnMove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableColumnMove(_a0 context.Context, _a1 *pb.RpcBlockTableColumnMoveRequest) *pb.RpcBlockTableColumnMoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableColumnMove")
- }
-
- var r0 *pb.RpcBlockTableColumnMoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableColumnMoveRequest) *pb.RpcBlockTableColumnMoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableColumnMoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableColumnMove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableColumnMove'
-type MockClientCommandsServer_BlockTableColumnMove_Call struct {
- *mock.Call
-}
-
-// BlockTableColumnMove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableColumnMoveRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableColumnMove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableColumnMove_Call {
- return &MockClientCommandsServer_BlockTableColumnMove_Call{Call: _e.mock.On("BlockTableColumnMove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnMove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableColumnMoveRequest)) *MockClientCommandsServer_BlockTableColumnMove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableColumnMoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnMove_Call) Return(_a0 *pb.RpcBlockTableColumnMoveResponse) *MockClientCommandsServer_BlockTableColumnMove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableColumnMove_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableColumnMoveRequest) *pb.RpcBlockTableColumnMoveResponse) *MockClientCommandsServer_BlockTableColumnMove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableCreate(_a0 context.Context, _a1 *pb.RpcBlockTableCreateRequest) *pb.RpcBlockTableCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableCreate")
- }
-
- var r0 *pb.RpcBlockTableCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableCreateRequest) *pb.RpcBlockTableCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableCreate'
-type MockClientCommandsServer_BlockTableCreate_Call struct {
- *mock.Call
-}
-
-// BlockTableCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableCreateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableCreate_Call {
- return &MockClientCommandsServer_BlockTableCreate_Call{Call: _e.mock.On("BlockTableCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableCreateRequest)) *MockClientCommandsServer_BlockTableCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableCreate_Call) Return(_a0 *pb.RpcBlockTableCreateResponse) *MockClientCommandsServer_BlockTableCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableCreateRequest) *pb.RpcBlockTableCreateResponse) *MockClientCommandsServer_BlockTableCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableExpand provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableExpand(_a0 context.Context, _a1 *pb.RpcBlockTableExpandRequest) *pb.RpcBlockTableExpandResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableExpand")
- }
-
- var r0 *pb.RpcBlockTableExpandResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableExpandRequest) *pb.RpcBlockTableExpandResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableExpandResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableExpand_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableExpand'
-type MockClientCommandsServer_BlockTableExpand_Call struct {
- *mock.Call
-}
-
-// BlockTableExpand is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableExpandRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableExpand(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableExpand_Call {
- return &MockClientCommandsServer_BlockTableExpand_Call{Call: _e.mock.On("BlockTableExpand", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableExpand_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableExpandRequest)) *MockClientCommandsServer_BlockTableExpand_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableExpandRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableExpand_Call) Return(_a0 *pb.RpcBlockTableExpandResponse) *MockClientCommandsServer_BlockTableExpand_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableExpand_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableExpandRequest) *pb.RpcBlockTableExpandResponse) *MockClientCommandsServer_BlockTableExpand_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableRowCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableRowCreate(_a0 context.Context, _a1 *pb.RpcBlockTableRowCreateRequest) *pb.RpcBlockTableRowCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableRowCreate")
- }
-
- var r0 *pb.RpcBlockTableRowCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableRowCreateRequest) *pb.RpcBlockTableRowCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableRowCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableRowCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableRowCreate'
-type MockClientCommandsServer_BlockTableRowCreate_Call struct {
- *mock.Call
-}
-
-// BlockTableRowCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableRowCreateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableRowCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableRowCreate_Call {
- return &MockClientCommandsServer_BlockTableRowCreate_Call{Call: _e.mock.On("BlockTableRowCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableRowCreateRequest)) *MockClientCommandsServer_BlockTableRowCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableRowCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowCreate_Call) Return(_a0 *pb.RpcBlockTableRowCreateResponse) *MockClientCommandsServer_BlockTableRowCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableRowCreateRequest) *pb.RpcBlockTableRowCreateResponse) *MockClientCommandsServer_BlockTableRowCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableRowDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableRowDelete(_a0 context.Context, _a1 *pb.RpcBlockTableRowDeleteRequest) *pb.RpcBlockTableRowDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableRowDelete")
- }
-
- var r0 *pb.RpcBlockTableRowDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableRowDeleteRequest) *pb.RpcBlockTableRowDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableRowDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableRowDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableRowDelete'
-type MockClientCommandsServer_BlockTableRowDelete_Call struct {
- *mock.Call
-}
-
-// BlockTableRowDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableRowDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableRowDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableRowDelete_Call {
- return &MockClientCommandsServer_BlockTableRowDelete_Call{Call: _e.mock.On("BlockTableRowDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableRowDeleteRequest)) *MockClientCommandsServer_BlockTableRowDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableRowDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowDelete_Call) Return(_a0 *pb.RpcBlockTableRowDeleteResponse) *MockClientCommandsServer_BlockTableRowDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableRowDeleteRequest) *pb.RpcBlockTableRowDeleteResponse) *MockClientCommandsServer_BlockTableRowDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableRowDuplicate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableRowDuplicate(_a0 context.Context, _a1 *pb.RpcBlockTableRowDuplicateRequest) *pb.RpcBlockTableRowDuplicateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableRowDuplicate")
- }
-
- var r0 *pb.RpcBlockTableRowDuplicateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableRowDuplicateRequest) *pb.RpcBlockTableRowDuplicateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableRowDuplicateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableRowDuplicate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableRowDuplicate'
-type MockClientCommandsServer_BlockTableRowDuplicate_Call struct {
- *mock.Call
-}
-
-// BlockTableRowDuplicate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableRowDuplicateRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableRowDuplicate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableRowDuplicate_Call {
- return &MockClientCommandsServer_BlockTableRowDuplicate_Call{Call: _e.mock.On("BlockTableRowDuplicate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowDuplicate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableRowDuplicateRequest)) *MockClientCommandsServer_BlockTableRowDuplicate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableRowDuplicateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowDuplicate_Call) Return(_a0 *pb.RpcBlockTableRowDuplicateResponse) *MockClientCommandsServer_BlockTableRowDuplicate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowDuplicate_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableRowDuplicateRequest) *pb.RpcBlockTableRowDuplicateResponse) *MockClientCommandsServer_BlockTableRowDuplicate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableRowListClean provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableRowListClean(_a0 context.Context, _a1 *pb.RpcBlockTableRowListCleanRequest) *pb.RpcBlockTableRowListCleanResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableRowListClean")
- }
-
- var r0 *pb.RpcBlockTableRowListCleanResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableRowListCleanRequest) *pb.RpcBlockTableRowListCleanResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableRowListCleanResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableRowListClean_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableRowListClean'
-type MockClientCommandsServer_BlockTableRowListClean_Call struct {
- *mock.Call
-}
-
-// BlockTableRowListClean is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableRowListCleanRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableRowListClean(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableRowListClean_Call {
- return &MockClientCommandsServer_BlockTableRowListClean_Call{Call: _e.mock.On("BlockTableRowListClean", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowListClean_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableRowListCleanRequest)) *MockClientCommandsServer_BlockTableRowListClean_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableRowListCleanRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowListClean_Call) Return(_a0 *pb.RpcBlockTableRowListCleanResponse) *MockClientCommandsServer_BlockTableRowListClean_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowListClean_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableRowListCleanRequest) *pb.RpcBlockTableRowListCleanResponse) *MockClientCommandsServer_BlockTableRowListClean_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableRowListFill provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableRowListFill(_a0 context.Context, _a1 *pb.RpcBlockTableRowListFillRequest) *pb.RpcBlockTableRowListFillResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableRowListFill")
- }
-
- var r0 *pb.RpcBlockTableRowListFillResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableRowListFillRequest) *pb.RpcBlockTableRowListFillResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableRowListFillResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableRowListFill_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableRowListFill'
-type MockClientCommandsServer_BlockTableRowListFill_Call struct {
- *mock.Call
-}
-
-// BlockTableRowListFill is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableRowListFillRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableRowListFill(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableRowListFill_Call {
- return &MockClientCommandsServer_BlockTableRowListFill_Call{Call: _e.mock.On("BlockTableRowListFill", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowListFill_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableRowListFillRequest)) *MockClientCommandsServer_BlockTableRowListFill_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableRowListFillRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowListFill_Call) Return(_a0 *pb.RpcBlockTableRowListFillResponse) *MockClientCommandsServer_BlockTableRowListFill_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowListFill_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableRowListFillRequest) *pb.RpcBlockTableRowListFillResponse) *MockClientCommandsServer_BlockTableRowListFill_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableRowSetHeader provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableRowSetHeader(_a0 context.Context, _a1 *pb.RpcBlockTableRowSetHeaderRequest) *pb.RpcBlockTableRowSetHeaderResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableRowSetHeader")
- }
-
- var r0 *pb.RpcBlockTableRowSetHeaderResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableRowSetHeaderRequest) *pb.RpcBlockTableRowSetHeaderResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableRowSetHeaderResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableRowSetHeader_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableRowSetHeader'
-type MockClientCommandsServer_BlockTableRowSetHeader_Call struct {
- *mock.Call
-}
-
-// BlockTableRowSetHeader is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableRowSetHeaderRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableRowSetHeader(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableRowSetHeader_Call {
- return &MockClientCommandsServer_BlockTableRowSetHeader_Call{Call: _e.mock.On("BlockTableRowSetHeader", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowSetHeader_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableRowSetHeaderRequest)) *MockClientCommandsServer_BlockTableRowSetHeader_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableRowSetHeaderRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowSetHeader_Call) Return(_a0 *pb.RpcBlockTableRowSetHeaderResponse) *MockClientCommandsServer_BlockTableRowSetHeader_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableRowSetHeader_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableRowSetHeaderRequest) *pb.RpcBlockTableRowSetHeaderResponse) *MockClientCommandsServer_BlockTableRowSetHeader_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTableSort provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTableSort(_a0 context.Context, _a1 *pb.RpcBlockTableSortRequest) *pb.RpcBlockTableSortResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTableSort")
- }
-
- var r0 *pb.RpcBlockTableSortResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTableSortRequest) *pb.RpcBlockTableSortResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTableSortResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTableSort_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTableSort'
-type MockClientCommandsServer_BlockTableSort_Call struct {
- *mock.Call
-}
-
-// BlockTableSort is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTableSortRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTableSort(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTableSort_Call {
- return &MockClientCommandsServer_BlockTableSort_Call{Call: _e.mock.On("BlockTableSort", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTableSort_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTableSortRequest)) *MockClientCommandsServer_BlockTableSort_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTableSortRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableSort_Call) Return(_a0 *pb.RpcBlockTableSortResponse) *MockClientCommandsServer_BlockTableSort_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTableSort_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTableSortRequest) *pb.RpcBlockTableSortResponse) *MockClientCommandsServer_BlockTableSort_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextListClearContent provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextListClearContent(_a0 context.Context, _a1 *pb.RpcBlockTextListClearContentRequest) *pb.RpcBlockTextListClearContentResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextListClearContent")
- }
-
- var r0 *pb.RpcBlockTextListClearContentResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextListClearContentRequest) *pb.RpcBlockTextListClearContentResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextListClearContentResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextListClearContent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextListClearContent'
-type MockClientCommandsServer_BlockTextListClearContent_Call struct {
- *mock.Call
-}
-
-// BlockTextListClearContent is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextListClearContentRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextListClearContent(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextListClearContent_Call {
- return &MockClientCommandsServer_BlockTextListClearContent_Call{Call: _e.mock.On("BlockTextListClearContent", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextListClearContent_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextListClearContentRequest)) *MockClientCommandsServer_BlockTextListClearContent_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextListClearContentRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListClearContent_Call) Return(_a0 *pb.RpcBlockTextListClearContentResponse) *MockClientCommandsServer_BlockTextListClearContent_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListClearContent_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextListClearContentRequest) *pb.RpcBlockTextListClearContentResponse) *MockClientCommandsServer_BlockTextListClearContent_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextListClearStyle provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextListClearStyle(_a0 context.Context, _a1 *pb.RpcBlockTextListClearStyleRequest) *pb.RpcBlockTextListClearStyleResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextListClearStyle")
- }
-
- var r0 *pb.RpcBlockTextListClearStyleResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextListClearStyleRequest) *pb.RpcBlockTextListClearStyleResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextListClearStyleResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextListClearStyle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextListClearStyle'
-type MockClientCommandsServer_BlockTextListClearStyle_Call struct {
- *mock.Call
-}
-
-// BlockTextListClearStyle is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextListClearStyleRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextListClearStyle(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextListClearStyle_Call {
- return &MockClientCommandsServer_BlockTextListClearStyle_Call{Call: _e.mock.On("BlockTextListClearStyle", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextListClearStyle_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextListClearStyleRequest)) *MockClientCommandsServer_BlockTextListClearStyle_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextListClearStyleRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListClearStyle_Call) Return(_a0 *pb.RpcBlockTextListClearStyleResponse) *MockClientCommandsServer_BlockTextListClearStyle_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListClearStyle_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextListClearStyleRequest) *pb.RpcBlockTextListClearStyleResponse) *MockClientCommandsServer_BlockTextListClearStyle_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextListSetColor provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextListSetColor(_a0 context.Context, _a1 *pb.RpcBlockTextListSetColorRequest) *pb.RpcBlockTextListSetColorResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextListSetColor")
- }
-
- var r0 *pb.RpcBlockTextListSetColorResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextListSetColorRequest) *pb.RpcBlockTextListSetColorResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextListSetColorResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextListSetColor_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextListSetColor'
-type MockClientCommandsServer_BlockTextListSetColor_Call struct {
- *mock.Call
-}
-
-// BlockTextListSetColor is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextListSetColorRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextListSetColor(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextListSetColor_Call {
- return &MockClientCommandsServer_BlockTextListSetColor_Call{Call: _e.mock.On("BlockTextListSetColor", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetColor_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextListSetColorRequest)) *MockClientCommandsServer_BlockTextListSetColor_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextListSetColorRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetColor_Call) Return(_a0 *pb.RpcBlockTextListSetColorResponse) *MockClientCommandsServer_BlockTextListSetColor_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetColor_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextListSetColorRequest) *pb.RpcBlockTextListSetColorResponse) *MockClientCommandsServer_BlockTextListSetColor_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextListSetMark provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextListSetMark(_a0 context.Context, _a1 *pb.RpcBlockTextListSetMarkRequest) *pb.RpcBlockTextListSetMarkResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextListSetMark")
- }
-
- var r0 *pb.RpcBlockTextListSetMarkResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextListSetMarkRequest) *pb.RpcBlockTextListSetMarkResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextListSetMarkResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextListSetMark_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextListSetMark'
-type MockClientCommandsServer_BlockTextListSetMark_Call struct {
- *mock.Call
-}
-
-// BlockTextListSetMark is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextListSetMarkRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextListSetMark(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextListSetMark_Call {
- return &MockClientCommandsServer_BlockTextListSetMark_Call{Call: _e.mock.On("BlockTextListSetMark", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetMark_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextListSetMarkRequest)) *MockClientCommandsServer_BlockTextListSetMark_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextListSetMarkRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetMark_Call) Return(_a0 *pb.RpcBlockTextListSetMarkResponse) *MockClientCommandsServer_BlockTextListSetMark_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetMark_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextListSetMarkRequest) *pb.RpcBlockTextListSetMarkResponse) *MockClientCommandsServer_BlockTextListSetMark_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextListSetStyle provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextListSetStyle(_a0 context.Context, _a1 *pb.RpcBlockTextListSetStyleRequest) *pb.RpcBlockTextListSetStyleResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextListSetStyle")
- }
-
- var r0 *pb.RpcBlockTextListSetStyleResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextListSetStyleRequest) *pb.RpcBlockTextListSetStyleResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextListSetStyleResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextListSetStyle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextListSetStyle'
-type MockClientCommandsServer_BlockTextListSetStyle_Call struct {
- *mock.Call
-}
-
-// BlockTextListSetStyle is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextListSetStyleRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextListSetStyle(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextListSetStyle_Call {
- return &MockClientCommandsServer_BlockTextListSetStyle_Call{Call: _e.mock.On("BlockTextListSetStyle", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetStyle_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextListSetStyleRequest)) *MockClientCommandsServer_BlockTextListSetStyle_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextListSetStyleRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetStyle_Call) Return(_a0 *pb.RpcBlockTextListSetStyleResponse) *MockClientCommandsServer_BlockTextListSetStyle_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextListSetStyle_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextListSetStyleRequest) *pb.RpcBlockTextListSetStyleResponse) *MockClientCommandsServer_BlockTextListSetStyle_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextSetChecked provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextSetChecked(_a0 context.Context, _a1 *pb.RpcBlockTextSetCheckedRequest) *pb.RpcBlockTextSetCheckedResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextSetChecked")
- }
-
- var r0 *pb.RpcBlockTextSetCheckedResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextSetCheckedRequest) *pb.RpcBlockTextSetCheckedResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextSetCheckedResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextSetChecked_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextSetChecked'
-type MockClientCommandsServer_BlockTextSetChecked_Call struct {
- *mock.Call
-}
-
-// BlockTextSetChecked is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextSetCheckedRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextSetChecked(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextSetChecked_Call {
- return &MockClientCommandsServer_BlockTextSetChecked_Call{Call: _e.mock.On("BlockTextSetChecked", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetChecked_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextSetCheckedRequest)) *MockClientCommandsServer_BlockTextSetChecked_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextSetCheckedRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetChecked_Call) Return(_a0 *pb.RpcBlockTextSetCheckedResponse) *MockClientCommandsServer_BlockTextSetChecked_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetChecked_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextSetCheckedRequest) *pb.RpcBlockTextSetCheckedResponse) *MockClientCommandsServer_BlockTextSetChecked_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextSetColor provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextSetColor(_a0 context.Context, _a1 *pb.RpcBlockTextSetColorRequest) *pb.RpcBlockTextSetColorResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextSetColor")
- }
-
- var r0 *pb.RpcBlockTextSetColorResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextSetColorRequest) *pb.RpcBlockTextSetColorResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextSetColorResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextSetColor_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextSetColor'
-type MockClientCommandsServer_BlockTextSetColor_Call struct {
- *mock.Call
-}
-
-// BlockTextSetColor is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextSetColorRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextSetColor(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextSetColor_Call {
- return &MockClientCommandsServer_BlockTextSetColor_Call{Call: _e.mock.On("BlockTextSetColor", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetColor_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextSetColorRequest)) *MockClientCommandsServer_BlockTextSetColor_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextSetColorRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetColor_Call) Return(_a0 *pb.RpcBlockTextSetColorResponse) *MockClientCommandsServer_BlockTextSetColor_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetColor_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextSetColorRequest) *pb.RpcBlockTextSetColorResponse) *MockClientCommandsServer_BlockTextSetColor_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextSetIcon provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextSetIcon(_a0 context.Context, _a1 *pb.RpcBlockTextSetIconRequest) *pb.RpcBlockTextSetIconResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextSetIcon")
- }
-
- var r0 *pb.RpcBlockTextSetIconResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextSetIconRequest) *pb.RpcBlockTextSetIconResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextSetIconResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextSetIcon_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextSetIcon'
-type MockClientCommandsServer_BlockTextSetIcon_Call struct {
- *mock.Call
-}
-
-// BlockTextSetIcon is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextSetIconRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextSetIcon(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextSetIcon_Call {
- return &MockClientCommandsServer_BlockTextSetIcon_Call{Call: _e.mock.On("BlockTextSetIcon", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetIcon_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextSetIconRequest)) *MockClientCommandsServer_BlockTextSetIcon_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextSetIconRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetIcon_Call) Return(_a0 *pb.RpcBlockTextSetIconResponse) *MockClientCommandsServer_BlockTextSetIcon_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetIcon_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextSetIconRequest) *pb.RpcBlockTextSetIconResponse) *MockClientCommandsServer_BlockTextSetIcon_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextSetStyle provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextSetStyle(_a0 context.Context, _a1 *pb.RpcBlockTextSetStyleRequest) *pb.RpcBlockTextSetStyleResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextSetStyle")
- }
-
- var r0 *pb.RpcBlockTextSetStyleResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextSetStyleRequest) *pb.RpcBlockTextSetStyleResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextSetStyleResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextSetStyle_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextSetStyle'
-type MockClientCommandsServer_BlockTextSetStyle_Call struct {
- *mock.Call
-}
-
-// BlockTextSetStyle is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextSetStyleRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextSetStyle(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextSetStyle_Call {
- return &MockClientCommandsServer_BlockTextSetStyle_Call{Call: _e.mock.On("BlockTextSetStyle", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetStyle_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextSetStyleRequest)) *MockClientCommandsServer_BlockTextSetStyle_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextSetStyleRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetStyle_Call) Return(_a0 *pb.RpcBlockTextSetStyleResponse) *MockClientCommandsServer_BlockTextSetStyle_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetStyle_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextSetStyleRequest) *pb.RpcBlockTextSetStyleResponse) *MockClientCommandsServer_BlockTextSetStyle_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockTextSetText provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockTextSetText(_a0 context.Context, _a1 *pb.RpcBlockTextSetTextRequest) *pb.RpcBlockTextSetTextResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockTextSetText")
- }
-
- var r0 *pb.RpcBlockTextSetTextResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockTextSetTextRequest) *pb.RpcBlockTextSetTextResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockTextSetTextResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockTextSetText_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockTextSetText'
-type MockClientCommandsServer_BlockTextSetText_Call struct {
- *mock.Call
-}
-
-// BlockTextSetText is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockTextSetTextRequest
-func (_e *MockClientCommandsServer_Expecter) BlockTextSetText(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockTextSetText_Call {
- return &MockClientCommandsServer_BlockTextSetText_Call{Call: _e.mock.On("BlockTextSetText", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetText_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockTextSetTextRequest)) *MockClientCommandsServer_BlockTextSetText_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockTextSetTextRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetText_Call) Return(_a0 *pb.RpcBlockTextSetTextResponse) *MockClientCommandsServer_BlockTextSetText_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockTextSetText_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockTextSetTextRequest) *pb.RpcBlockTextSetTextResponse) *MockClientCommandsServer_BlockTextSetText_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockUpload provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockUpload(_a0 context.Context, _a1 *pb.RpcBlockUploadRequest) *pb.RpcBlockUploadResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockUpload")
- }
-
- var r0 *pb.RpcBlockUploadResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockUploadRequest) *pb.RpcBlockUploadResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockUploadResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockUpload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockUpload'
-type MockClientCommandsServer_BlockUpload_Call struct {
- *mock.Call
-}
-
-// BlockUpload is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockUploadRequest
-func (_e *MockClientCommandsServer_Expecter) BlockUpload(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockUpload_Call {
- return &MockClientCommandsServer_BlockUpload_Call{Call: _e.mock.On("BlockUpload", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockUpload_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockUploadRequest)) *MockClientCommandsServer_BlockUpload_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockUploadRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockUpload_Call) Return(_a0 *pb.RpcBlockUploadResponse) *MockClientCommandsServer_BlockUpload_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockUpload_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockUploadRequest) *pb.RpcBlockUploadResponse) *MockClientCommandsServer_BlockUpload_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockVideoSetName provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockVideoSetName(_a0 context.Context, _a1 *pb.RpcBlockVideoSetNameRequest) *pb.RpcBlockVideoSetNameResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockVideoSetName")
- }
-
- var r0 *pb.RpcBlockVideoSetNameResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockVideoSetNameRequest) *pb.RpcBlockVideoSetNameResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockVideoSetNameResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockVideoSetName_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockVideoSetName'
-type MockClientCommandsServer_BlockVideoSetName_Call struct {
- *mock.Call
-}
-
-// BlockVideoSetName is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockVideoSetNameRequest
-func (_e *MockClientCommandsServer_Expecter) BlockVideoSetName(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockVideoSetName_Call {
- return &MockClientCommandsServer_BlockVideoSetName_Call{Call: _e.mock.On("BlockVideoSetName", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockVideoSetName_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockVideoSetNameRequest)) *MockClientCommandsServer_BlockVideoSetName_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockVideoSetNameRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockVideoSetName_Call) Return(_a0 *pb.RpcBlockVideoSetNameResponse) *MockClientCommandsServer_BlockVideoSetName_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockVideoSetName_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockVideoSetNameRequest) *pb.RpcBlockVideoSetNameResponse) *MockClientCommandsServer_BlockVideoSetName_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockWidgetSetLayout provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockWidgetSetLayout(_a0 context.Context, _a1 *pb.RpcBlockWidgetSetLayoutRequest) *pb.RpcBlockWidgetSetLayoutResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockWidgetSetLayout")
- }
-
- var r0 *pb.RpcBlockWidgetSetLayoutResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockWidgetSetLayoutRequest) *pb.RpcBlockWidgetSetLayoutResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockWidgetSetLayoutResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockWidgetSetLayout_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockWidgetSetLayout'
-type MockClientCommandsServer_BlockWidgetSetLayout_Call struct {
- *mock.Call
-}
-
-// BlockWidgetSetLayout is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockWidgetSetLayoutRequest
-func (_e *MockClientCommandsServer_Expecter) BlockWidgetSetLayout(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockWidgetSetLayout_Call {
- return &MockClientCommandsServer_BlockWidgetSetLayout_Call{Call: _e.mock.On("BlockWidgetSetLayout", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetLayout_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockWidgetSetLayoutRequest)) *MockClientCommandsServer_BlockWidgetSetLayout_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockWidgetSetLayoutRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetLayout_Call) Return(_a0 *pb.RpcBlockWidgetSetLayoutResponse) *MockClientCommandsServer_BlockWidgetSetLayout_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetLayout_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockWidgetSetLayoutRequest) *pb.RpcBlockWidgetSetLayoutResponse) *MockClientCommandsServer_BlockWidgetSetLayout_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockWidgetSetLimit provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockWidgetSetLimit(_a0 context.Context, _a1 *pb.RpcBlockWidgetSetLimitRequest) *pb.RpcBlockWidgetSetLimitResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockWidgetSetLimit")
- }
-
- var r0 *pb.RpcBlockWidgetSetLimitResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockWidgetSetLimitRequest) *pb.RpcBlockWidgetSetLimitResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockWidgetSetLimitResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockWidgetSetLimit_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockWidgetSetLimit'
-type MockClientCommandsServer_BlockWidgetSetLimit_Call struct {
- *mock.Call
-}
-
-// BlockWidgetSetLimit is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockWidgetSetLimitRequest
-func (_e *MockClientCommandsServer_Expecter) BlockWidgetSetLimit(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockWidgetSetLimit_Call {
- return &MockClientCommandsServer_BlockWidgetSetLimit_Call{Call: _e.mock.On("BlockWidgetSetLimit", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetLimit_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockWidgetSetLimitRequest)) *MockClientCommandsServer_BlockWidgetSetLimit_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockWidgetSetLimitRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetLimit_Call) Return(_a0 *pb.RpcBlockWidgetSetLimitResponse) *MockClientCommandsServer_BlockWidgetSetLimit_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetLimit_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockWidgetSetLimitRequest) *pb.RpcBlockWidgetSetLimitResponse) *MockClientCommandsServer_BlockWidgetSetLimit_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockWidgetSetTargetId provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockWidgetSetTargetId(_a0 context.Context, _a1 *pb.RpcBlockWidgetSetTargetIdRequest) *pb.RpcBlockWidgetSetTargetIdResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockWidgetSetTargetId")
- }
-
- var r0 *pb.RpcBlockWidgetSetTargetIdResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockWidgetSetTargetIdRequest) *pb.RpcBlockWidgetSetTargetIdResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockWidgetSetTargetIdResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockWidgetSetTargetId_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockWidgetSetTargetId'
-type MockClientCommandsServer_BlockWidgetSetTargetId_Call struct {
- *mock.Call
-}
-
-// BlockWidgetSetTargetId is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockWidgetSetTargetIdRequest
-func (_e *MockClientCommandsServer_Expecter) BlockWidgetSetTargetId(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockWidgetSetTargetId_Call {
- return &MockClientCommandsServer_BlockWidgetSetTargetId_Call{Call: _e.mock.On("BlockWidgetSetTargetId", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetTargetId_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockWidgetSetTargetIdRequest)) *MockClientCommandsServer_BlockWidgetSetTargetId_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockWidgetSetTargetIdRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetTargetId_Call) Return(_a0 *pb.RpcBlockWidgetSetTargetIdResponse) *MockClientCommandsServer_BlockWidgetSetTargetId_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetTargetId_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockWidgetSetTargetIdRequest) *pb.RpcBlockWidgetSetTargetIdResponse) *MockClientCommandsServer_BlockWidgetSetTargetId_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BlockWidgetSetViewId provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BlockWidgetSetViewId(_a0 context.Context, _a1 *pb.RpcBlockWidgetSetViewIdRequest) *pb.RpcBlockWidgetSetViewIdResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BlockWidgetSetViewId")
- }
-
- var r0 *pb.RpcBlockWidgetSetViewIdResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBlockWidgetSetViewIdRequest) *pb.RpcBlockWidgetSetViewIdResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBlockWidgetSetViewIdResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BlockWidgetSetViewId_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BlockWidgetSetViewId'
-type MockClientCommandsServer_BlockWidgetSetViewId_Call struct {
- *mock.Call
-}
-
-// BlockWidgetSetViewId is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBlockWidgetSetViewIdRequest
-func (_e *MockClientCommandsServer_Expecter) BlockWidgetSetViewId(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BlockWidgetSetViewId_Call {
- return &MockClientCommandsServer_BlockWidgetSetViewId_Call{Call: _e.mock.On("BlockWidgetSetViewId", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetViewId_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBlockWidgetSetViewIdRequest)) *MockClientCommandsServer_BlockWidgetSetViewId_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBlockWidgetSetViewIdRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetViewId_Call) Return(_a0 *pb.RpcBlockWidgetSetViewIdResponse) *MockClientCommandsServer_BlockWidgetSetViewId_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BlockWidgetSetViewId_Call) RunAndReturn(run func(context.Context, *pb.RpcBlockWidgetSetViewIdRequest) *pb.RpcBlockWidgetSetViewIdResponse) *MockClientCommandsServer_BlockWidgetSetViewId_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// BroadcastPayloadEvent provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) BroadcastPayloadEvent(_a0 context.Context, _a1 *pb.RpcBroadcastPayloadEventRequest) *pb.RpcBroadcastPayloadEventResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for BroadcastPayloadEvent")
- }
-
- var r0 *pb.RpcBroadcastPayloadEventResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcBroadcastPayloadEventRequest) *pb.RpcBroadcastPayloadEventResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcBroadcastPayloadEventResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_BroadcastPayloadEvent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BroadcastPayloadEvent'
-type MockClientCommandsServer_BroadcastPayloadEvent_Call struct {
- *mock.Call
-}
-
-// BroadcastPayloadEvent is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcBroadcastPayloadEventRequest
-func (_e *MockClientCommandsServer_Expecter) BroadcastPayloadEvent(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_BroadcastPayloadEvent_Call {
- return &MockClientCommandsServer_BroadcastPayloadEvent_Call{Call: _e.mock.On("BroadcastPayloadEvent", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_BroadcastPayloadEvent_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcBroadcastPayloadEventRequest)) *MockClientCommandsServer_BroadcastPayloadEvent_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcBroadcastPayloadEventRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_BroadcastPayloadEvent_Call) Return(_a0 *pb.RpcBroadcastPayloadEventResponse) *MockClientCommandsServer_BroadcastPayloadEvent_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_BroadcastPayloadEvent_Call) RunAndReturn(run func(context.Context, *pb.RpcBroadcastPayloadEventRequest) *pb.RpcBroadcastPayloadEventResponse) *MockClientCommandsServer_BroadcastPayloadEvent_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatAddMessage provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatAddMessage(_a0 context.Context, _a1 *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatAddMessage")
- }
-
- var r0 *pb.RpcChatAddMessageResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatAddMessageResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatAddMessage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatAddMessage'
-type MockClientCommandsServer_ChatAddMessage_Call struct {
- *mock.Call
-}
-
-// ChatAddMessage is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatAddMessageRequest
-func (_e *MockClientCommandsServer_Expecter) ChatAddMessage(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatAddMessage_Call {
- return &MockClientCommandsServer_ChatAddMessage_Call{Call: _e.mock.On("ChatAddMessage", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatAddMessage_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatAddMessageRequest)) *MockClientCommandsServer_ChatAddMessage_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatAddMessageRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatAddMessage_Call) Return(_a0 *pb.RpcChatAddMessageResponse) *MockClientCommandsServer_ChatAddMessage_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatAddMessage_Call) RunAndReturn(run func(context.Context, *pb.RpcChatAddMessageRequest) *pb.RpcChatAddMessageResponse) *MockClientCommandsServer_ChatAddMessage_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatDeleteMessage provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatDeleteMessage(_a0 context.Context, _a1 *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatDeleteMessage")
- }
-
- var r0 *pb.RpcChatDeleteMessageResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatDeleteMessageResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatDeleteMessage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatDeleteMessage'
-type MockClientCommandsServer_ChatDeleteMessage_Call struct {
- *mock.Call
-}
-
-// ChatDeleteMessage is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatDeleteMessageRequest
-func (_e *MockClientCommandsServer_Expecter) ChatDeleteMessage(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatDeleteMessage_Call {
- return &MockClientCommandsServer_ChatDeleteMessage_Call{Call: _e.mock.On("ChatDeleteMessage", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatDeleteMessage_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatDeleteMessageRequest)) *MockClientCommandsServer_ChatDeleteMessage_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatDeleteMessageRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatDeleteMessage_Call) Return(_a0 *pb.RpcChatDeleteMessageResponse) *MockClientCommandsServer_ChatDeleteMessage_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatDeleteMessage_Call) RunAndReturn(run func(context.Context, *pb.RpcChatDeleteMessageRequest) *pb.RpcChatDeleteMessageResponse) *MockClientCommandsServer_ChatDeleteMessage_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatEditMessageContent provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatEditMessageContent(_a0 context.Context, _a1 *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatEditMessageContent")
- }
-
- var r0 *pb.RpcChatEditMessageContentResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatEditMessageContentResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatEditMessageContent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatEditMessageContent'
-type MockClientCommandsServer_ChatEditMessageContent_Call struct {
- *mock.Call
-}
-
-// ChatEditMessageContent is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatEditMessageContentRequest
-func (_e *MockClientCommandsServer_Expecter) ChatEditMessageContent(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatEditMessageContent_Call {
- return &MockClientCommandsServer_ChatEditMessageContent_Call{Call: _e.mock.On("ChatEditMessageContent", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatEditMessageContent_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatEditMessageContentRequest)) *MockClientCommandsServer_ChatEditMessageContent_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatEditMessageContentRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatEditMessageContent_Call) Return(_a0 *pb.RpcChatEditMessageContentResponse) *MockClientCommandsServer_ChatEditMessageContent_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatEditMessageContent_Call) RunAndReturn(run func(context.Context, *pb.RpcChatEditMessageContentRequest) *pb.RpcChatEditMessageContentResponse) *MockClientCommandsServer_ChatEditMessageContent_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatGetMessages provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatGetMessages(_a0 context.Context, _a1 *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatGetMessages")
- }
-
- var r0 *pb.RpcChatGetMessagesResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatGetMessagesResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatGetMessages_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatGetMessages'
-type MockClientCommandsServer_ChatGetMessages_Call struct {
- *mock.Call
-}
-
-// ChatGetMessages is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatGetMessagesRequest
-func (_e *MockClientCommandsServer_Expecter) ChatGetMessages(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatGetMessages_Call {
- return &MockClientCommandsServer_ChatGetMessages_Call{Call: _e.mock.On("ChatGetMessages", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatGetMessages_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatGetMessagesRequest)) *MockClientCommandsServer_ChatGetMessages_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatGetMessagesRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatGetMessages_Call) Return(_a0 *pb.RpcChatGetMessagesResponse) *MockClientCommandsServer_ChatGetMessages_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatGetMessages_Call) RunAndReturn(run func(context.Context, *pb.RpcChatGetMessagesRequest) *pb.RpcChatGetMessagesResponse) *MockClientCommandsServer_ChatGetMessages_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatGetMessagesByIds provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatGetMessagesByIds(_a0 context.Context, _a1 *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatGetMessagesByIds")
- }
-
- var r0 *pb.RpcChatGetMessagesByIdsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatGetMessagesByIdsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatGetMessagesByIds_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatGetMessagesByIds'
-type MockClientCommandsServer_ChatGetMessagesByIds_Call struct {
- *mock.Call
-}
-
-// ChatGetMessagesByIds is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatGetMessagesByIdsRequest
-func (_e *MockClientCommandsServer_Expecter) ChatGetMessagesByIds(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatGetMessagesByIds_Call {
- return &MockClientCommandsServer_ChatGetMessagesByIds_Call{Call: _e.mock.On("ChatGetMessagesByIds", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatGetMessagesByIds_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatGetMessagesByIdsRequest)) *MockClientCommandsServer_ChatGetMessagesByIds_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatGetMessagesByIdsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatGetMessagesByIds_Call) Return(_a0 *pb.RpcChatGetMessagesByIdsResponse) *MockClientCommandsServer_ChatGetMessagesByIds_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatGetMessagesByIds_Call) RunAndReturn(run func(context.Context, *pb.RpcChatGetMessagesByIdsRequest) *pb.RpcChatGetMessagesByIdsResponse) *MockClientCommandsServer_ChatGetMessagesByIds_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatReadMessages provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatReadMessages(_a0 context.Context, _a1 *pb.RpcChatReadMessagesRequest) *pb.RpcChatReadMessagesResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatReadMessages")
- }
-
- var r0 *pb.RpcChatReadMessagesResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatReadMessagesRequest) *pb.RpcChatReadMessagesResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatReadMessagesResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatReadMessages_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatReadMessages'
-type MockClientCommandsServer_ChatReadMessages_Call struct {
- *mock.Call
-}
-
-// ChatReadMessages is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatReadMessagesRequest
-func (_e *MockClientCommandsServer_Expecter) ChatReadMessages(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatReadMessages_Call {
- return &MockClientCommandsServer_ChatReadMessages_Call{Call: _e.mock.On("ChatReadMessages", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatReadMessages_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatReadMessagesRequest)) *MockClientCommandsServer_ChatReadMessages_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatReadMessagesRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatReadMessages_Call) Return(_a0 *pb.RpcChatReadMessagesResponse) *MockClientCommandsServer_ChatReadMessages_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatReadMessages_Call) RunAndReturn(run func(context.Context, *pb.RpcChatReadMessagesRequest) *pb.RpcChatReadMessagesResponse) *MockClientCommandsServer_ChatReadMessages_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatSubscribeLastMessages provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatSubscribeLastMessages(_a0 context.Context, _a1 *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatSubscribeLastMessages")
- }
-
- var r0 *pb.RpcChatSubscribeLastMessagesResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatSubscribeLastMessagesResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatSubscribeLastMessages_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatSubscribeLastMessages'
-type MockClientCommandsServer_ChatSubscribeLastMessages_Call struct {
- *mock.Call
-}
-
-// ChatSubscribeLastMessages is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatSubscribeLastMessagesRequest
-func (_e *MockClientCommandsServer_Expecter) ChatSubscribeLastMessages(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatSubscribeLastMessages_Call {
- return &MockClientCommandsServer_ChatSubscribeLastMessages_Call{Call: _e.mock.On("ChatSubscribeLastMessages", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatSubscribeLastMessages_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatSubscribeLastMessagesRequest)) *MockClientCommandsServer_ChatSubscribeLastMessages_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatSubscribeLastMessagesRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatSubscribeLastMessages_Call) Return(_a0 *pb.RpcChatSubscribeLastMessagesResponse) *MockClientCommandsServer_ChatSubscribeLastMessages_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatSubscribeLastMessages_Call) RunAndReturn(run func(context.Context, *pb.RpcChatSubscribeLastMessagesRequest) *pb.RpcChatSubscribeLastMessagesResponse) *MockClientCommandsServer_ChatSubscribeLastMessages_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatSubscribeToMessagePreviews provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatSubscribeToMessagePreviews(_a0 context.Context, _a1 *pb.RpcChatSubscribeToMessagePreviewsRequest) *pb.RpcChatSubscribeToMessagePreviewsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatSubscribeToMessagePreviews")
- }
-
- var r0 *pb.RpcChatSubscribeToMessagePreviewsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatSubscribeToMessagePreviewsRequest) *pb.RpcChatSubscribeToMessagePreviewsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatSubscribeToMessagePreviewsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatSubscribeToMessagePreviews'
-type MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call struct {
- *mock.Call
-}
-
-// ChatSubscribeToMessagePreviews is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatSubscribeToMessagePreviewsRequest
-func (_e *MockClientCommandsServer_Expecter) ChatSubscribeToMessagePreviews(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call {
- return &MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call{Call: _e.mock.On("ChatSubscribeToMessagePreviews", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatSubscribeToMessagePreviewsRequest)) *MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatSubscribeToMessagePreviewsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call) Return(_a0 *pb.RpcChatSubscribeToMessagePreviewsResponse) *MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call) RunAndReturn(run func(context.Context, *pb.RpcChatSubscribeToMessagePreviewsRequest) *pb.RpcChatSubscribeToMessagePreviewsResponse) *MockClientCommandsServer_ChatSubscribeToMessagePreviews_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatToggleMessageReaction provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatToggleMessageReaction(_a0 context.Context, _a1 *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatToggleMessageReaction")
- }
-
- var r0 *pb.RpcChatToggleMessageReactionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatToggleMessageReactionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatToggleMessageReaction_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatToggleMessageReaction'
-type MockClientCommandsServer_ChatToggleMessageReaction_Call struct {
- *mock.Call
-}
-
-// ChatToggleMessageReaction is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatToggleMessageReactionRequest
-func (_e *MockClientCommandsServer_Expecter) ChatToggleMessageReaction(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatToggleMessageReaction_Call {
- return &MockClientCommandsServer_ChatToggleMessageReaction_Call{Call: _e.mock.On("ChatToggleMessageReaction", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatToggleMessageReaction_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatToggleMessageReactionRequest)) *MockClientCommandsServer_ChatToggleMessageReaction_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatToggleMessageReactionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatToggleMessageReaction_Call) Return(_a0 *pb.RpcChatToggleMessageReactionResponse) *MockClientCommandsServer_ChatToggleMessageReaction_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatToggleMessageReaction_Call) RunAndReturn(run func(context.Context, *pb.RpcChatToggleMessageReactionRequest) *pb.RpcChatToggleMessageReactionResponse) *MockClientCommandsServer_ChatToggleMessageReaction_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatUnreadMessages provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatUnreadMessages(_a0 context.Context, _a1 *pb.RpcChatUnreadRequest) *pb.RpcChatUnreadResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatUnreadMessages")
- }
-
- var r0 *pb.RpcChatUnreadResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatUnreadRequest) *pb.RpcChatUnreadResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatUnreadResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatUnreadMessages_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatUnreadMessages'
-type MockClientCommandsServer_ChatUnreadMessages_Call struct {
- *mock.Call
-}
-
-// ChatUnreadMessages is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatUnreadRequest
-func (_e *MockClientCommandsServer_Expecter) ChatUnreadMessages(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatUnreadMessages_Call {
- return &MockClientCommandsServer_ChatUnreadMessages_Call{Call: _e.mock.On("ChatUnreadMessages", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatUnreadMessages_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatUnreadRequest)) *MockClientCommandsServer_ChatUnreadMessages_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatUnreadRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatUnreadMessages_Call) Return(_a0 *pb.RpcChatUnreadResponse) *MockClientCommandsServer_ChatUnreadMessages_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatUnreadMessages_Call) RunAndReturn(run func(context.Context, *pb.RpcChatUnreadRequest) *pb.RpcChatUnreadResponse) *MockClientCommandsServer_ChatUnreadMessages_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatUnsubscribe provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatUnsubscribe(_a0 context.Context, _a1 *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatUnsubscribe")
- }
-
- var r0 *pb.RpcChatUnsubscribeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatUnsubscribeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatUnsubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatUnsubscribe'
-type MockClientCommandsServer_ChatUnsubscribe_Call struct {
- *mock.Call
-}
-
-// ChatUnsubscribe is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatUnsubscribeRequest
-func (_e *MockClientCommandsServer_Expecter) ChatUnsubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatUnsubscribe_Call {
- return &MockClientCommandsServer_ChatUnsubscribe_Call{Call: _e.mock.On("ChatUnsubscribe", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatUnsubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatUnsubscribeRequest)) *MockClientCommandsServer_ChatUnsubscribe_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatUnsubscribeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatUnsubscribe_Call) Return(_a0 *pb.RpcChatUnsubscribeResponse) *MockClientCommandsServer_ChatUnsubscribe_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatUnsubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcChatUnsubscribeRequest) *pb.RpcChatUnsubscribeResponse) *MockClientCommandsServer_ChatUnsubscribe_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ChatUnsubscribeFromMessagePreviews provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ChatUnsubscribeFromMessagePreviews(_a0 context.Context, _a1 *pb.RpcChatUnsubscribeFromMessagePreviewsRequest) *pb.RpcChatUnsubscribeFromMessagePreviewsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ChatUnsubscribeFromMessagePreviews")
- }
-
- var r0 *pb.RpcChatUnsubscribeFromMessagePreviewsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcChatUnsubscribeFromMessagePreviewsRequest) *pb.RpcChatUnsubscribeFromMessagePreviewsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcChatUnsubscribeFromMessagePreviewsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ChatUnsubscribeFromMessagePreviews'
-type MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call struct {
- *mock.Call
-}
-
-// ChatUnsubscribeFromMessagePreviews is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcChatUnsubscribeFromMessagePreviewsRequest
-func (_e *MockClientCommandsServer_Expecter) ChatUnsubscribeFromMessagePreviews(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call {
- return &MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call{Call: _e.mock.On("ChatUnsubscribeFromMessagePreviews", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcChatUnsubscribeFromMessagePreviewsRequest)) *MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcChatUnsubscribeFromMessagePreviewsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call) Return(_a0 *pb.RpcChatUnsubscribeFromMessagePreviewsResponse) *MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call) RunAndReturn(run func(context.Context, *pb.RpcChatUnsubscribeFromMessagePreviewsRequest) *pb.RpcChatUnsubscribeFromMessagePreviewsResponse) *MockClientCommandsServer_ChatUnsubscribeFromMessagePreviews_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugAccountSelectTrace provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugAccountSelectTrace(_a0 context.Context, _a1 *pb.RpcDebugAccountSelectTraceRequest) *pb.RpcDebugAccountSelectTraceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugAccountSelectTrace")
- }
-
- var r0 *pb.RpcDebugAccountSelectTraceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugAccountSelectTraceRequest) *pb.RpcDebugAccountSelectTraceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugAccountSelectTraceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugAccountSelectTrace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugAccountSelectTrace'
-type MockClientCommandsServer_DebugAccountSelectTrace_Call struct {
- *mock.Call
-}
-
-// DebugAccountSelectTrace is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugAccountSelectTraceRequest
-func (_e *MockClientCommandsServer_Expecter) DebugAccountSelectTrace(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugAccountSelectTrace_Call {
- return &MockClientCommandsServer_DebugAccountSelectTrace_Call{Call: _e.mock.On("DebugAccountSelectTrace", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugAccountSelectTrace_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugAccountSelectTraceRequest)) *MockClientCommandsServer_DebugAccountSelectTrace_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugAccountSelectTraceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugAccountSelectTrace_Call) Return(_a0 *pb.RpcDebugAccountSelectTraceResponse) *MockClientCommandsServer_DebugAccountSelectTrace_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugAccountSelectTrace_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugAccountSelectTraceRequest) *pb.RpcDebugAccountSelectTraceResponse) *MockClientCommandsServer_DebugAccountSelectTrace_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugAnystoreObjectChanges provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugAnystoreObjectChanges(_a0 context.Context, _a1 *pb.RpcDebugAnystoreObjectChangesRequest) *pb.RpcDebugAnystoreObjectChangesResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugAnystoreObjectChanges")
- }
-
- var r0 *pb.RpcDebugAnystoreObjectChangesResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugAnystoreObjectChangesRequest) *pb.RpcDebugAnystoreObjectChangesResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugAnystoreObjectChangesResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugAnystoreObjectChanges_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugAnystoreObjectChanges'
-type MockClientCommandsServer_DebugAnystoreObjectChanges_Call struct {
- *mock.Call
-}
-
-// DebugAnystoreObjectChanges is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugAnystoreObjectChangesRequest
-func (_e *MockClientCommandsServer_Expecter) DebugAnystoreObjectChanges(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugAnystoreObjectChanges_Call {
- return &MockClientCommandsServer_DebugAnystoreObjectChanges_Call{Call: _e.mock.On("DebugAnystoreObjectChanges", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugAnystoreObjectChanges_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugAnystoreObjectChangesRequest)) *MockClientCommandsServer_DebugAnystoreObjectChanges_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugAnystoreObjectChangesRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugAnystoreObjectChanges_Call) Return(_a0 *pb.RpcDebugAnystoreObjectChangesResponse) *MockClientCommandsServer_DebugAnystoreObjectChanges_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugAnystoreObjectChanges_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugAnystoreObjectChangesRequest) *pb.RpcDebugAnystoreObjectChangesResponse) *MockClientCommandsServer_DebugAnystoreObjectChanges_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugExportLocalstore provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugExportLocalstore(_a0 context.Context, _a1 *pb.RpcDebugExportLocalstoreRequest) *pb.RpcDebugExportLocalstoreResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugExportLocalstore")
- }
-
- var r0 *pb.RpcDebugExportLocalstoreResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugExportLocalstoreRequest) *pb.RpcDebugExportLocalstoreResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugExportLocalstoreResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugExportLocalstore_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugExportLocalstore'
-type MockClientCommandsServer_DebugExportLocalstore_Call struct {
- *mock.Call
-}
-
-// DebugExportLocalstore is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugExportLocalstoreRequest
-func (_e *MockClientCommandsServer_Expecter) DebugExportLocalstore(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugExportLocalstore_Call {
- return &MockClientCommandsServer_DebugExportLocalstore_Call{Call: _e.mock.On("DebugExportLocalstore", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugExportLocalstore_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugExportLocalstoreRequest)) *MockClientCommandsServer_DebugExportLocalstore_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugExportLocalstoreRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugExportLocalstore_Call) Return(_a0 *pb.RpcDebugExportLocalstoreResponse) *MockClientCommandsServer_DebugExportLocalstore_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugExportLocalstore_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugExportLocalstoreRequest) *pb.RpcDebugExportLocalstoreResponse) *MockClientCommandsServer_DebugExportLocalstore_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugExportLog provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugExportLog(_a0 context.Context, _a1 *pb.RpcDebugExportLogRequest) *pb.RpcDebugExportLogResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugExportLog")
- }
-
- var r0 *pb.RpcDebugExportLogResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugExportLogRequest) *pb.RpcDebugExportLogResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugExportLogResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugExportLog_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugExportLog'
-type MockClientCommandsServer_DebugExportLog_Call struct {
- *mock.Call
-}
-
-// DebugExportLog is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugExportLogRequest
-func (_e *MockClientCommandsServer_Expecter) DebugExportLog(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugExportLog_Call {
- return &MockClientCommandsServer_DebugExportLog_Call{Call: _e.mock.On("DebugExportLog", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugExportLog_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugExportLogRequest)) *MockClientCommandsServer_DebugExportLog_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugExportLogRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugExportLog_Call) Return(_a0 *pb.RpcDebugExportLogResponse) *MockClientCommandsServer_DebugExportLog_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugExportLog_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugExportLogRequest) *pb.RpcDebugExportLogResponse) *MockClientCommandsServer_DebugExportLog_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugNetCheck provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugNetCheck(_a0 context.Context, _a1 *pb.RpcDebugNetCheckRequest) *pb.RpcDebugNetCheckResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugNetCheck")
- }
-
- var r0 *pb.RpcDebugNetCheckResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugNetCheckRequest) *pb.RpcDebugNetCheckResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugNetCheckResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugNetCheck_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugNetCheck'
-type MockClientCommandsServer_DebugNetCheck_Call struct {
- *mock.Call
-}
-
-// DebugNetCheck is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugNetCheckRequest
-func (_e *MockClientCommandsServer_Expecter) DebugNetCheck(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugNetCheck_Call {
- return &MockClientCommandsServer_DebugNetCheck_Call{Call: _e.mock.On("DebugNetCheck", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugNetCheck_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugNetCheckRequest)) *MockClientCommandsServer_DebugNetCheck_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugNetCheckRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugNetCheck_Call) Return(_a0 *pb.RpcDebugNetCheckResponse) *MockClientCommandsServer_DebugNetCheck_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugNetCheck_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugNetCheckRequest) *pb.RpcDebugNetCheckResponse) *MockClientCommandsServer_DebugNetCheck_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugOpenedObjects provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugOpenedObjects(_a0 context.Context, _a1 *pb.RpcDebugOpenedObjectsRequest) *pb.RpcDebugOpenedObjectsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugOpenedObjects")
- }
-
- var r0 *pb.RpcDebugOpenedObjectsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugOpenedObjectsRequest) *pb.RpcDebugOpenedObjectsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugOpenedObjectsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugOpenedObjects_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugOpenedObjects'
-type MockClientCommandsServer_DebugOpenedObjects_Call struct {
- *mock.Call
-}
-
-// DebugOpenedObjects is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugOpenedObjectsRequest
-func (_e *MockClientCommandsServer_Expecter) DebugOpenedObjects(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugOpenedObjects_Call {
- return &MockClientCommandsServer_DebugOpenedObjects_Call{Call: _e.mock.On("DebugOpenedObjects", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugOpenedObjects_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugOpenedObjectsRequest)) *MockClientCommandsServer_DebugOpenedObjects_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugOpenedObjectsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugOpenedObjects_Call) Return(_a0 *pb.RpcDebugOpenedObjectsResponse) *MockClientCommandsServer_DebugOpenedObjects_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugOpenedObjects_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugOpenedObjectsRequest) *pb.RpcDebugOpenedObjectsResponse) *MockClientCommandsServer_DebugOpenedObjects_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugPing provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugPing(_a0 context.Context, _a1 *pb.RpcDebugPingRequest) *pb.RpcDebugPingResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugPing")
- }
-
- var r0 *pb.RpcDebugPingResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugPingRequest) *pb.RpcDebugPingResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugPingResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugPing_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugPing'
-type MockClientCommandsServer_DebugPing_Call struct {
- *mock.Call
-}
-
-// DebugPing is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugPingRequest
-func (_e *MockClientCommandsServer_Expecter) DebugPing(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugPing_Call {
- return &MockClientCommandsServer_DebugPing_Call{Call: _e.mock.On("DebugPing", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugPing_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugPingRequest)) *MockClientCommandsServer_DebugPing_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugPingRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugPing_Call) Return(_a0 *pb.RpcDebugPingResponse) *MockClientCommandsServer_DebugPing_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugPing_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugPingRequest) *pb.RpcDebugPingResponse) *MockClientCommandsServer_DebugPing_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugRunProfiler provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugRunProfiler(_a0 context.Context, _a1 *pb.RpcDebugRunProfilerRequest) *pb.RpcDebugRunProfilerResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugRunProfiler")
- }
-
- var r0 *pb.RpcDebugRunProfilerResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugRunProfilerRequest) *pb.RpcDebugRunProfilerResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugRunProfilerResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugRunProfiler_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugRunProfiler'
-type MockClientCommandsServer_DebugRunProfiler_Call struct {
- *mock.Call
-}
-
-// DebugRunProfiler is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugRunProfilerRequest
-func (_e *MockClientCommandsServer_Expecter) DebugRunProfiler(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugRunProfiler_Call {
- return &MockClientCommandsServer_DebugRunProfiler_Call{Call: _e.mock.On("DebugRunProfiler", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugRunProfiler_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugRunProfilerRequest)) *MockClientCommandsServer_DebugRunProfiler_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugRunProfilerRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugRunProfiler_Call) Return(_a0 *pb.RpcDebugRunProfilerResponse) *MockClientCommandsServer_DebugRunProfiler_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugRunProfiler_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugRunProfilerRequest) *pb.RpcDebugRunProfilerResponse) *MockClientCommandsServer_DebugRunProfiler_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugSpaceSummary provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugSpaceSummary(_a0 context.Context, _a1 *pb.RpcDebugSpaceSummaryRequest) *pb.RpcDebugSpaceSummaryResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugSpaceSummary")
- }
-
- var r0 *pb.RpcDebugSpaceSummaryResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugSpaceSummaryRequest) *pb.RpcDebugSpaceSummaryResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugSpaceSummaryResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugSpaceSummary_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugSpaceSummary'
-type MockClientCommandsServer_DebugSpaceSummary_Call struct {
- *mock.Call
-}
-
-// DebugSpaceSummary is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugSpaceSummaryRequest
-func (_e *MockClientCommandsServer_Expecter) DebugSpaceSummary(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugSpaceSummary_Call {
- return &MockClientCommandsServer_DebugSpaceSummary_Call{Call: _e.mock.On("DebugSpaceSummary", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugSpaceSummary_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugSpaceSummaryRequest)) *MockClientCommandsServer_DebugSpaceSummary_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugSpaceSummaryRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugSpaceSummary_Call) Return(_a0 *pb.RpcDebugSpaceSummaryResponse) *MockClientCommandsServer_DebugSpaceSummary_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugSpaceSummary_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugSpaceSummaryRequest) *pb.RpcDebugSpaceSummaryResponse) *MockClientCommandsServer_DebugSpaceSummary_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugStackGoroutines provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugStackGoroutines(_a0 context.Context, _a1 *pb.RpcDebugStackGoroutinesRequest) *pb.RpcDebugStackGoroutinesResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugStackGoroutines")
- }
-
- var r0 *pb.RpcDebugStackGoroutinesResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugStackGoroutinesRequest) *pb.RpcDebugStackGoroutinesResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugStackGoroutinesResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugStackGoroutines_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugStackGoroutines'
-type MockClientCommandsServer_DebugStackGoroutines_Call struct {
- *mock.Call
-}
-
-// DebugStackGoroutines is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugStackGoroutinesRequest
-func (_e *MockClientCommandsServer_Expecter) DebugStackGoroutines(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugStackGoroutines_Call {
- return &MockClientCommandsServer_DebugStackGoroutines_Call{Call: _e.mock.On("DebugStackGoroutines", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugStackGoroutines_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugStackGoroutinesRequest)) *MockClientCommandsServer_DebugStackGoroutines_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugStackGoroutinesRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugStackGoroutines_Call) Return(_a0 *pb.RpcDebugStackGoroutinesResponse) *MockClientCommandsServer_DebugStackGoroutines_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugStackGoroutines_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugStackGoroutinesRequest) *pb.RpcDebugStackGoroutinesResponse) *MockClientCommandsServer_DebugStackGoroutines_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugStat provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugStat(_a0 context.Context, _a1 *pb.RpcDebugStatRequest) *pb.RpcDebugStatResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugStat")
- }
-
- var r0 *pb.RpcDebugStatResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugStatRequest) *pb.RpcDebugStatResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugStatResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugStat_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugStat'
-type MockClientCommandsServer_DebugStat_Call struct {
- *mock.Call
-}
-
-// DebugStat is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugStatRequest
-func (_e *MockClientCommandsServer_Expecter) DebugStat(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugStat_Call {
- return &MockClientCommandsServer_DebugStat_Call{Call: _e.mock.On("DebugStat", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugStat_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugStatRequest)) *MockClientCommandsServer_DebugStat_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugStatRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugStat_Call) Return(_a0 *pb.RpcDebugStatResponse) *MockClientCommandsServer_DebugStat_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugStat_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugStatRequest) *pb.RpcDebugStatResponse) *MockClientCommandsServer_DebugStat_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugSubscriptions provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugSubscriptions(_a0 context.Context, _a1 *pb.RpcDebugSubscriptionsRequest) *pb.RpcDebugSubscriptionsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugSubscriptions")
- }
-
- var r0 *pb.RpcDebugSubscriptionsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugSubscriptionsRequest) *pb.RpcDebugSubscriptionsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugSubscriptionsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugSubscriptions_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugSubscriptions'
-type MockClientCommandsServer_DebugSubscriptions_Call struct {
- *mock.Call
-}
-
-// DebugSubscriptions is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugSubscriptionsRequest
-func (_e *MockClientCommandsServer_Expecter) DebugSubscriptions(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugSubscriptions_Call {
- return &MockClientCommandsServer_DebugSubscriptions_Call{Call: _e.mock.On("DebugSubscriptions", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugSubscriptions_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugSubscriptionsRequest)) *MockClientCommandsServer_DebugSubscriptions_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugSubscriptionsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugSubscriptions_Call) Return(_a0 *pb.RpcDebugSubscriptionsResponse) *MockClientCommandsServer_DebugSubscriptions_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugSubscriptions_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugSubscriptionsRequest) *pb.RpcDebugSubscriptionsResponse) *MockClientCommandsServer_DebugSubscriptions_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugTree provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugTree(_a0 context.Context, _a1 *pb.RpcDebugTreeRequest) *pb.RpcDebugTreeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugTree")
- }
-
- var r0 *pb.RpcDebugTreeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugTreeRequest) *pb.RpcDebugTreeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugTreeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugTree_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugTree'
-type MockClientCommandsServer_DebugTree_Call struct {
- *mock.Call
-}
-
-// DebugTree is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugTreeRequest
-func (_e *MockClientCommandsServer_Expecter) DebugTree(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugTree_Call {
- return &MockClientCommandsServer_DebugTree_Call{Call: _e.mock.On("DebugTree", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugTree_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugTreeRequest)) *MockClientCommandsServer_DebugTree_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugTreeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugTree_Call) Return(_a0 *pb.RpcDebugTreeResponse) *MockClientCommandsServer_DebugTree_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugTree_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugTreeRequest) *pb.RpcDebugTreeResponse) *MockClientCommandsServer_DebugTree_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DebugTreeHeads provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DebugTreeHeads(_a0 context.Context, _a1 *pb.RpcDebugTreeHeadsRequest) *pb.RpcDebugTreeHeadsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DebugTreeHeads")
- }
-
- var r0 *pb.RpcDebugTreeHeadsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDebugTreeHeadsRequest) *pb.RpcDebugTreeHeadsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDebugTreeHeadsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DebugTreeHeads_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DebugTreeHeads'
-type MockClientCommandsServer_DebugTreeHeads_Call struct {
- *mock.Call
-}
-
-// DebugTreeHeads is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDebugTreeHeadsRequest
-func (_e *MockClientCommandsServer_Expecter) DebugTreeHeads(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DebugTreeHeads_Call {
- return &MockClientCommandsServer_DebugTreeHeads_Call{Call: _e.mock.On("DebugTreeHeads", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DebugTreeHeads_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDebugTreeHeadsRequest)) *MockClientCommandsServer_DebugTreeHeads_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDebugTreeHeadsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugTreeHeads_Call) Return(_a0 *pb.RpcDebugTreeHeadsResponse) *MockClientCommandsServer_DebugTreeHeads_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DebugTreeHeads_Call) RunAndReturn(run func(context.Context, *pb.RpcDebugTreeHeadsRequest) *pb.RpcDebugTreeHeadsResponse) *MockClientCommandsServer_DebugTreeHeads_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DeviceList provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DeviceList(_a0 context.Context, _a1 *pb.RpcDeviceListRequest) *pb.RpcDeviceListResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DeviceList")
- }
-
- var r0 *pb.RpcDeviceListResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDeviceListRequest) *pb.RpcDeviceListResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDeviceListResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DeviceList_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeviceList'
-type MockClientCommandsServer_DeviceList_Call struct {
- *mock.Call
-}
-
-// DeviceList is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDeviceListRequest
-func (_e *MockClientCommandsServer_Expecter) DeviceList(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DeviceList_Call {
- return &MockClientCommandsServer_DeviceList_Call{Call: _e.mock.On("DeviceList", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DeviceList_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDeviceListRequest)) *MockClientCommandsServer_DeviceList_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDeviceListRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DeviceList_Call) Return(_a0 *pb.RpcDeviceListResponse) *MockClientCommandsServer_DeviceList_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DeviceList_Call) RunAndReturn(run func(context.Context, *pb.RpcDeviceListRequest) *pb.RpcDeviceListResponse) *MockClientCommandsServer_DeviceList_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DeviceNetworkStateSet provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DeviceNetworkStateSet(_a0 context.Context, _a1 *pb.RpcDeviceNetworkStateSetRequest) *pb.RpcDeviceNetworkStateSetResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DeviceNetworkStateSet")
- }
-
- var r0 *pb.RpcDeviceNetworkStateSetResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDeviceNetworkStateSetRequest) *pb.RpcDeviceNetworkStateSetResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDeviceNetworkStateSetResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DeviceNetworkStateSet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeviceNetworkStateSet'
-type MockClientCommandsServer_DeviceNetworkStateSet_Call struct {
- *mock.Call
-}
-
-// DeviceNetworkStateSet is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDeviceNetworkStateSetRequest
-func (_e *MockClientCommandsServer_Expecter) DeviceNetworkStateSet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DeviceNetworkStateSet_Call {
- return &MockClientCommandsServer_DeviceNetworkStateSet_Call{Call: _e.mock.On("DeviceNetworkStateSet", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DeviceNetworkStateSet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDeviceNetworkStateSetRequest)) *MockClientCommandsServer_DeviceNetworkStateSet_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDeviceNetworkStateSetRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DeviceNetworkStateSet_Call) Return(_a0 *pb.RpcDeviceNetworkStateSetResponse) *MockClientCommandsServer_DeviceNetworkStateSet_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DeviceNetworkStateSet_Call) RunAndReturn(run func(context.Context, *pb.RpcDeviceNetworkStateSetRequest) *pb.RpcDeviceNetworkStateSetResponse) *MockClientCommandsServer_DeviceNetworkStateSet_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// DeviceSetName provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) DeviceSetName(_a0 context.Context, _a1 *pb.RpcDeviceSetNameRequest) *pb.RpcDeviceSetNameResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for DeviceSetName")
- }
-
- var r0 *pb.RpcDeviceSetNameResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcDeviceSetNameRequest) *pb.RpcDeviceSetNameResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcDeviceSetNameResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_DeviceSetName_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeviceSetName'
-type MockClientCommandsServer_DeviceSetName_Call struct {
- *mock.Call
-}
-
-// DeviceSetName is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcDeviceSetNameRequest
-func (_e *MockClientCommandsServer_Expecter) DeviceSetName(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_DeviceSetName_Call {
- return &MockClientCommandsServer_DeviceSetName_Call{Call: _e.mock.On("DeviceSetName", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_DeviceSetName_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcDeviceSetNameRequest)) *MockClientCommandsServer_DeviceSetName_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcDeviceSetNameRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_DeviceSetName_Call) Return(_a0 *pb.RpcDeviceSetNameResponse) *MockClientCommandsServer_DeviceSetName_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_DeviceSetName_Call) RunAndReturn(run func(context.Context, *pb.RpcDeviceSetNameRequest) *pb.RpcDeviceSetNameResponse) *MockClientCommandsServer_DeviceSetName_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// FileDownload provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) FileDownload(_a0 context.Context, _a1 *pb.RpcFileDownloadRequest) *pb.RpcFileDownloadResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for FileDownload")
- }
-
- var r0 *pb.RpcFileDownloadResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcFileDownloadRequest) *pb.RpcFileDownloadResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcFileDownloadResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_FileDownload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FileDownload'
-type MockClientCommandsServer_FileDownload_Call struct {
- *mock.Call
-}
-
-// FileDownload is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcFileDownloadRequest
-func (_e *MockClientCommandsServer_Expecter) FileDownload(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_FileDownload_Call {
- return &MockClientCommandsServer_FileDownload_Call{Call: _e.mock.On("FileDownload", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_FileDownload_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcFileDownloadRequest)) *MockClientCommandsServer_FileDownload_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcFileDownloadRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileDownload_Call) Return(_a0 *pb.RpcFileDownloadResponse) *MockClientCommandsServer_FileDownload_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileDownload_Call) RunAndReturn(run func(context.Context, *pb.RpcFileDownloadRequest) *pb.RpcFileDownloadResponse) *MockClientCommandsServer_FileDownload_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// FileDrop provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) FileDrop(_a0 context.Context, _a1 *pb.RpcFileDropRequest) *pb.RpcFileDropResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for FileDrop")
- }
-
- var r0 *pb.RpcFileDropResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcFileDropRequest) *pb.RpcFileDropResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcFileDropResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_FileDrop_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FileDrop'
-type MockClientCommandsServer_FileDrop_Call struct {
- *mock.Call
-}
-
-// FileDrop is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcFileDropRequest
-func (_e *MockClientCommandsServer_Expecter) FileDrop(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_FileDrop_Call {
- return &MockClientCommandsServer_FileDrop_Call{Call: _e.mock.On("FileDrop", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_FileDrop_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcFileDropRequest)) *MockClientCommandsServer_FileDrop_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcFileDropRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileDrop_Call) Return(_a0 *pb.RpcFileDropResponse) *MockClientCommandsServer_FileDrop_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileDrop_Call) RunAndReturn(run func(context.Context, *pb.RpcFileDropRequest) *pb.RpcFileDropResponse) *MockClientCommandsServer_FileDrop_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// FileListOffload provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) FileListOffload(_a0 context.Context, _a1 *pb.RpcFileListOffloadRequest) *pb.RpcFileListOffloadResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for FileListOffload")
- }
-
- var r0 *pb.RpcFileListOffloadResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcFileListOffloadRequest) *pb.RpcFileListOffloadResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcFileListOffloadResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_FileListOffload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FileListOffload'
-type MockClientCommandsServer_FileListOffload_Call struct {
- *mock.Call
-}
-
-// FileListOffload is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcFileListOffloadRequest
-func (_e *MockClientCommandsServer_Expecter) FileListOffload(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_FileListOffload_Call {
- return &MockClientCommandsServer_FileListOffload_Call{Call: _e.mock.On("FileListOffload", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_FileListOffload_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcFileListOffloadRequest)) *MockClientCommandsServer_FileListOffload_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcFileListOffloadRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileListOffload_Call) Return(_a0 *pb.RpcFileListOffloadResponse) *MockClientCommandsServer_FileListOffload_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileListOffload_Call) RunAndReturn(run func(context.Context, *pb.RpcFileListOffloadRequest) *pb.RpcFileListOffloadResponse) *MockClientCommandsServer_FileListOffload_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// FileNodeUsage provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) FileNodeUsage(_a0 context.Context, _a1 *pb.RpcFileNodeUsageRequest) *pb.RpcFileNodeUsageResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for FileNodeUsage")
- }
-
- var r0 *pb.RpcFileNodeUsageResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcFileNodeUsageRequest) *pb.RpcFileNodeUsageResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcFileNodeUsageResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_FileNodeUsage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FileNodeUsage'
-type MockClientCommandsServer_FileNodeUsage_Call struct {
- *mock.Call
-}
-
-// FileNodeUsage is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcFileNodeUsageRequest
-func (_e *MockClientCommandsServer_Expecter) FileNodeUsage(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_FileNodeUsage_Call {
- return &MockClientCommandsServer_FileNodeUsage_Call{Call: _e.mock.On("FileNodeUsage", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_FileNodeUsage_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcFileNodeUsageRequest)) *MockClientCommandsServer_FileNodeUsage_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcFileNodeUsageRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileNodeUsage_Call) Return(_a0 *pb.RpcFileNodeUsageResponse) *MockClientCommandsServer_FileNodeUsage_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileNodeUsage_Call) RunAndReturn(run func(context.Context, *pb.RpcFileNodeUsageRequest) *pb.RpcFileNodeUsageResponse) *MockClientCommandsServer_FileNodeUsage_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// FileReconcile provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) FileReconcile(_a0 context.Context, _a1 *pb.RpcFileReconcileRequest) *pb.RpcFileReconcileResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for FileReconcile")
- }
-
- var r0 *pb.RpcFileReconcileResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcFileReconcileRequest) *pb.RpcFileReconcileResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcFileReconcileResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_FileReconcile_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FileReconcile'
-type MockClientCommandsServer_FileReconcile_Call struct {
- *mock.Call
-}
-
-// FileReconcile is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcFileReconcileRequest
-func (_e *MockClientCommandsServer_Expecter) FileReconcile(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_FileReconcile_Call {
- return &MockClientCommandsServer_FileReconcile_Call{Call: _e.mock.On("FileReconcile", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_FileReconcile_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcFileReconcileRequest)) *MockClientCommandsServer_FileReconcile_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcFileReconcileRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileReconcile_Call) Return(_a0 *pb.RpcFileReconcileResponse) *MockClientCommandsServer_FileReconcile_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileReconcile_Call) RunAndReturn(run func(context.Context, *pb.RpcFileReconcileRequest) *pb.RpcFileReconcileResponse) *MockClientCommandsServer_FileReconcile_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// FileSpaceOffload provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) FileSpaceOffload(_a0 context.Context, _a1 *pb.RpcFileSpaceOffloadRequest) *pb.RpcFileSpaceOffloadResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for FileSpaceOffload")
- }
-
- var r0 *pb.RpcFileSpaceOffloadResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcFileSpaceOffloadRequest) *pb.RpcFileSpaceOffloadResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcFileSpaceOffloadResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_FileSpaceOffload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FileSpaceOffload'
-type MockClientCommandsServer_FileSpaceOffload_Call struct {
- *mock.Call
-}
-
-// FileSpaceOffload is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcFileSpaceOffloadRequest
-func (_e *MockClientCommandsServer_Expecter) FileSpaceOffload(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_FileSpaceOffload_Call {
- return &MockClientCommandsServer_FileSpaceOffload_Call{Call: _e.mock.On("FileSpaceOffload", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_FileSpaceOffload_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcFileSpaceOffloadRequest)) *MockClientCommandsServer_FileSpaceOffload_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcFileSpaceOffloadRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileSpaceOffload_Call) Return(_a0 *pb.RpcFileSpaceOffloadResponse) *MockClientCommandsServer_FileSpaceOffload_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileSpaceOffload_Call) RunAndReturn(run func(context.Context, *pb.RpcFileSpaceOffloadRequest) *pb.RpcFileSpaceOffloadResponse) *MockClientCommandsServer_FileSpaceOffload_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// FileSpaceUsage provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) FileSpaceUsage(_a0 context.Context, _a1 *pb.RpcFileSpaceUsageRequest) *pb.RpcFileSpaceUsageResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for FileSpaceUsage")
- }
-
- var r0 *pb.RpcFileSpaceUsageResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcFileSpaceUsageRequest) *pb.RpcFileSpaceUsageResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcFileSpaceUsageResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_FileSpaceUsage_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FileSpaceUsage'
-type MockClientCommandsServer_FileSpaceUsage_Call struct {
- *mock.Call
-}
-
-// FileSpaceUsage is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcFileSpaceUsageRequest
-func (_e *MockClientCommandsServer_Expecter) FileSpaceUsage(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_FileSpaceUsage_Call {
- return &MockClientCommandsServer_FileSpaceUsage_Call{Call: _e.mock.On("FileSpaceUsage", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_FileSpaceUsage_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcFileSpaceUsageRequest)) *MockClientCommandsServer_FileSpaceUsage_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcFileSpaceUsageRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileSpaceUsage_Call) Return(_a0 *pb.RpcFileSpaceUsageResponse) *MockClientCommandsServer_FileSpaceUsage_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileSpaceUsage_Call) RunAndReturn(run func(context.Context, *pb.RpcFileSpaceUsageRequest) *pb.RpcFileSpaceUsageResponse) *MockClientCommandsServer_FileSpaceUsage_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// FileUpload provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) FileUpload(_a0 context.Context, _a1 *pb.RpcFileUploadRequest) *pb.RpcFileUploadResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for FileUpload")
- }
-
- var r0 *pb.RpcFileUploadResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcFileUploadRequest) *pb.RpcFileUploadResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcFileUploadResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_FileUpload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'FileUpload'
-type MockClientCommandsServer_FileUpload_Call struct {
- *mock.Call
-}
-
-// FileUpload is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcFileUploadRequest
-func (_e *MockClientCommandsServer_Expecter) FileUpload(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_FileUpload_Call {
- return &MockClientCommandsServer_FileUpload_Call{Call: _e.mock.On("FileUpload", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_FileUpload_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcFileUploadRequest)) *MockClientCommandsServer_FileUpload_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcFileUploadRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileUpload_Call) Return(_a0 *pb.RpcFileUploadResponse) *MockClientCommandsServer_FileUpload_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_FileUpload_Call) RunAndReturn(run func(context.Context, *pb.RpcFileUploadRequest) *pb.RpcFileUploadResponse) *MockClientCommandsServer_FileUpload_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// GalleryDownloadIndex provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) GalleryDownloadIndex(_a0 context.Context, _a1 *pb.RpcGalleryDownloadIndexRequest) *pb.RpcGalleryDownloadIndexResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for GalleryDownloadIndex")
- }
-
- var r0 *pb.RpcGalleryDownloadIndexResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcGalleryDownloadIndexRequest) *pb.RpcGalleryDownloadIndexResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcGalleryDownloadIndexResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_GalleryDownloadIndex_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GalleryDownloadIndex'
-type MockClientCommandsServer_GalleryDownloadIndex_Call struct {
- *mock.Call
-}
-
-// GalleryDownloadIndex is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcGalleryDownloadIndexRequest
-func (_e *MockClientCommandsServer_Expecter) GalleryDownloadIndex(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_GalleryDownloadIndex_Call {
- return &MockClientCommandsServer_GalleryDownloadIndex_Call{Call: _e.mock.On("GalleryDownloadIndex", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_GalleryDownloadIndex_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcGalleryDownloadIndexRequest)) *MockClientCommandsServer_GalleryDownloadIndex_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcGalleryDownloadIndexRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_GalleryDownloadIndex_Call) Return(_a0 *pb.RpcGalleryDownloadIndexResponse) *MockClientCommandsServer_GalleryDownloadIndex_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_GalleryDownloadIndex_Call) RunAndReturn(run func(context.Context, *pb.RpcGalleryDownloadIndexRequest) *pb.RpcGalleryDownloadIndexResponse) *MockClientCommandsServer_GalleryDownloadIndex_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// GalleryDownloadManifest provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) GalleryDownloadManifest(_a0 context.Context, _a1 *pb.RpcGalleryDownloadManifestRequest) *pb.RpcGalleryDownloadManifestResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for GalleryDownloadManifest")
- }
-
- var r0 *pb.RpcGalleryDownloadManifestResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcGalleryDownloadManifestRequest) *pb.RpcGalleryDownloadManifestResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcGalleryDownloadManifestResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_GalleryDownloadManifest_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GalleryDownloadManifest'
-type MockClientCommandsServer_GalleryDownloadManifest_Call struct {
- *mock.Call
-}
-
-// GalleryDownloadManifest is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcGalleryDownloadManifestRequest
-func (_e *MockClientCommandsServer_Expecter) GalleryDownloadManifest(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_GalleryDownloadManifest_Call {
- return &MockClientCommandsServer_GalleryDownloadManifest_Call{Call: _e.mock.On("GalleryDownloadManifest", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_GalleryDownloadManifest_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcGalleryDownloadManifestRequest)) *MockClientCommandsServer_GalleryDownloadManifest_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcGalleryDownloadManifestRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_GalleryDownloadManifest_Call) Return(_a0 *pb.RpcGalleryDownloadManifestResponse) *MockClientCommandsServer_GalleryDownloadManifest_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_GalleryDownloadManifest_Call) RunAndReturn(run func(context.Context, *pb.RpcGalleryDownloadManifestRequest) *pb.RpcGalleryDownloadManifestResponse) *MockClientCommandsServer_GalleryDownloadManifest_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// HistoryDiffVersions provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) HistoryDiffVersions(_a0 context.Context, _a1 *pb.RpcHistoryDiffVersionsRequest) *pb.RpcHistoryDiffVersionsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for HistoryDiffVersions")
- }
-
- var r0 *pb.RpcHistoryDiffVersionsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcHistoryDiffVersionsRequest) *pb.RpcHistoryDiffVersionsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcHistoryDiffVersionsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_HistoryDiffVersions_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HistoryDiffVersions'
-type MockClientCommandsServer_HistoryDiffVersions_Call struct {
- *mock.Call
-}
-
-// HistoryDiffVersions is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcHistoryDiffVersionsRequest
-func (_e *MockClientCommandsServer_Expecter) HistoryDiffVersions(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_HistoryDiffVersions_Call {
- return &MockClientCommandsServer_HistoryDiffVersions_Call{Call: _e.mock.On("HistoryDiffVersions", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_HistoryDiffVersions_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcHistoryDiffVersionsRequest)) *MockClientCommandsServer_HistoryDiffVersions_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcHistoryDiffVersionsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_HistoryDiffVersions_Call) Return(_a0 *pb.RpcHistoryDiffVersionsResponse) *MockClientCommandsServer_HistoryDiffVersions_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_HistoryDiffVersions_Call) RunAndReturn(run func(context.Context, *pb.RpcHistoryDiffVersionsRequest) *pb.RpcHistoryDiffVersionsResponse) *MockClientCommandsServer_HistoryDiffVersions_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// HistoryGetVersions provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) HistoryGetVersions(_a0 context.Context, _a1 *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for HistoryGetVersions")
- }
-
- var r0 *pb.RpcHistoryGetVersionsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcHistoryGetVersionsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_HistoryGetVersions_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HistoryGetVersions'
-type MockClientCommandsServer_HistoryGetVersions_Call struct {
- *mock.Call
-}
-
-// HistoryGetVersions is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcHistoryGetVersionsRequest
-func (_e *MockClientCommandsServer_Expecter) HistoryGetVersions(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_HistoryGetVersions_Call {
- return &MockClientCommandsServer_HistoryGetVersions_Call{Call: _e.mock.On("HistoryGetVersions", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_HistoryGetVersions_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcHistoryGetVersionsRequest)) *MockClientCommandsServer_HistoryGetVersions_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcHistoryGetVersionsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_HistoryGetVersions_Call) Return(_a0 *pb.RpcHistoryGetVersionsResponse) *MockClientCommandsServer_HistoryGetVersions_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_HistoryGetVersions_Call) RunAndReturn(run func(context.Context, *pb.RpcHistoryGetVersionsRequest) *pb.RpcHistoryGetVersionsResponse) *MockClientCommandsServer_HistoryGetVersions_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// HistorySetVersion provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) HistorySetVersion(_a0 context.Context, _a1 *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for HistorySetVersion")
- }
-
- var r0 *pb.RpcHistorySetVersionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcHistorySetVersionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_HistorySetVersion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HistorySetVersion'
-type MockClientCommandsServer_HistorySetVersion_Call struct {
- *mock.Call
-}
-
-// HistorySetVersion is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcHistorySetVersionRequest
-func (_e *MockClientCommandsServer_Expecter) HistorySetVersion(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_HistorySetVersion_Call {
- return &MockClientCommandsServer_HistorySetVersion_Call{Call: _e.mock.On("HistorySetVersion", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_HistorySetVersion_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcHistorySetVersionRequest)) *MockClientCommandsServer_HistorySetVersion_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcHistorySetVersionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_HistorySetVersion_Call) Return(_a0 *pb.RpcHistorySetVersionResponse) *MockClientCommandsServer_HistorySetVersion_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_HistorySetVersion_Call) RunAndReturn(run func(context.Context, *pb.RpcHistorySetVersionRequest) *pb.RpcHistorySetVersionResponse) *MockClientCommandsServer_HistorySetVersion_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// HistoryShowVersion provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) HistoryShowVersion(_a0 context.Context, _a1 *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for HistoryShowVersion")
- }
-
- var r0 *pb.RpcHistoryShowVersionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcHistoryShowVersionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_HistoryShowVersion_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'HistoryShowVersion'
-type MockClientCommandsServer_HistoryShowVersion_Call struct {
- *mock.Call
-}
-
-// HistoryShowVersion is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcHistoryShowVersionRequest
-func (_e *MockClientCommandsServer_Expecter) HistoryShowVersion(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_HistoryShowVersion_Call {
- return &MockClientCommandsServer_HistoryShowVersion_Call{Call: _e.mock.On("HistoryShowVersion", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_HistoryShowVersion_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcHistoryShowVersionRequest)) *MockClientCommandsServer_HistoryShowVersion_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcHistoryShowVersionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_HistoryShowVersion_Call) Return(_a0 *pb.RpcHistoryShowVersionResponse) *MockClientCommandsServer_HistoryShowVersion_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_HistoryShowVersion_Call) RunAndReturn(run func(context.Context, *pb.RpcHistoryShowVersionRequest) *pb.RpcHistoryShowVersionResponse) *MockClientCommandsServer_HistoryShowVersion_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// InitialSetParameters provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) InitialSetParameters(_a0 context.Context, _a1 *pb.RpcInitialSetParametersRequest) *pb.RpcInitialSetParametersResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for InitialSetParameters")
- }
-
- var r0 *pb.RpcInitialSetParametersResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcInitialSetParametersRequest) *pb.RpcInitialSetParametersResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcInitialSetParametersResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_InitialSetParameters_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'InitialSetParameters'
-type MockClientCommandsServer_InitialSetParameters_Call struct {
- *mock.Call
-}
-
-// InitialSetParameters is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcInitialSetParametersRequest
-func (_e *MockClientCommandsServer_Expecter) InitialSetParameters(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_InitialSetParameters_Call {
- return &MockClientCommandsServer_InitialSetParameters_Call{Call: _e.mock.On("InitialSetParameters", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_InitialSetParameters_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcInitialSetParametersRequest)) *MockClientCommandsServer_InitialSetParameters_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcInitialSetParametersRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_InitialSetParameters_Call) Return(_a0 *pb.RpcInitialSetParametersResponse) *MockClientCommandsServer_InitialSetParameters_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_InitialSetParameters_Call) RunAndReturn(run func(context.Context, *pb.RpcInitialSetParametersRequest) *pb.RpcInitialSetParametersResponse) *MockClientCommandsServer_InitialSetParameters_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// LinkPreview provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) LinkPreview(_a0 context.Context, _a1 *pb.RpcLinkPreviewRequest) *pb.RpcLinkPreviewResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for LinkPreview")
- }
-
- var r0 *pb.RpcLinkPreviewResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcLinkPreviewRequest) *pb.RpcLinkPreviewResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcLinkPreviewResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_LinkPreview_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'LinkPreview'
-type MockClientCommandsServer_LinkPreview_Call struct {
- *mock.Call
-}
-
-// LinkPreview is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcLinkPreviewRequest
-func (_e *MockClientCommandsServer_Expecter) LinkPreview(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_LinkPreview_Call {
- return &MockClientCommandsServer_LinkPreview_Call{Call: _e.mock.On("LinkPreview", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_LinkPreview_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcLinkPreviewRequest)) *MockClientCommandsServer_LinkPreview_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcLinkPreviewRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_LinkPreview_Call) Return(_a0 *pb.RpcLinkPreviewResponse) *MockClientCommandsServer_LinkPreview_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_LinkPreview_Call) RunAndReturn(run func(context.Context, *pb.RpcLinkPreviewRequest) *pb.RpcLinkPreviewResponse) *MockClientCommandsServer_LinkPreview_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ListenSessionEvents provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ListenSessionEvents(_a0 *pb.StreamRequest, _a1 service.ClientCommands_ListenSessionEventsServer) {
- _m.Called(_a0, _a1)
-}
-
-// MockClientCommandsServer_ListenSessionEvents_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ListenSessionEvents'
-type MockClientCommandsServer_ListenSessionEvents_Call struct {
- *mock.Call
-}
-
-// ListenSessionEvents is a helper method to define mock.On call
-// - _a0 *pb.StreamRequest
-// - _a1 service.ClientCommands_ListenSessionEventsServer
-func (_e *MockClientCommandsServer_Expecter) ListenSessionEvents(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ListenSessionEvents_Call {
- return &MockClientCommandsServer_ListenSessionEvents_Call{Call: _e.mock.On("ListenSessionEvents", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ListenSessionEvents_Call) Run(run func(_a0 *pb.StreamRequest, _a1 service.ClientCommands_ListenSessionEventsServer)) *MockClientCommandsServer_ListenSessionEvents_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(*pb.StreamRequest), args[1].(service.ClientCommands_ListenSessionEventsServer))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ListenSessionEvents_Call) Return() *MockClientCommandsServer_ListenSessionEvents_Call {
- _c.Call.Return()
- return _c
-}
-
-func (_c *MockClientCommandsServer_ListenSessionEvents_Call) RunAndReturn(run func(*pb.StreamRequest, service.ClientCommands_ListenSessionEventsServer)) *MockClientCommandsServer_ListenSessionEvents_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// LogSend provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) LogSend(_a0 context.Context, _a1 *pb.RpcLogSendRequest) *pb.RpcLogSendResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for LogSend")
- }
-
- var r0 *pb.RpcLogSendResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcLogSendRequest) *pb.RpcLogSendResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcLogSendResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_LogSend_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'LogSend'
-type MockClientCommandsServer_LogSend_Call struct {
- *mock.Call
-}
-
-// LogSend is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcLogSendRequest
-func (_e *MockClientCommandsServer_Expecter) LogSend(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_LogSend_Call {
- return &MockClientCommandsServer_LogSend_Call{Call: _e.mock.On("LogSend", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_LogSend_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcLogSendRequest)) *MockClientCommandsServer_LogSend_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcLogSendRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_LogSend_Call) Return(_a0 *pb.RpcLogSendResponse) *MockClientCommandsServer_LogSend_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_LogSend_Call) RunAndReturn(run func(context.Context, *pb.RpcLogSendRequest) *pb.RpcLogSendResponse) *MockClientCommandsServer_LogSend_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipFinalize provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipFinalize(_a0 context.Context, _a1 *pb.RpcMembershipFinalizeRequest) *pb.RpcMembershipFinalizeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipFinalize")
- }
-
- var r0 *pb.RpcMembershipFinalizeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipFinalizeRequest) *pb.RpcMembershipFinalizeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipFinalizeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipFinalize_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipFinalize'
-type MockClientCommandsServer_MembershipFinalize_Call struct {
- *mock.Call
-}
-
-// MembershipFinalize is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipFinalizeRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipFinalize(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipFinalize_Call {
- return &MockClientCommandsServer_MembershipFinalize_Call{Call: _e.mock.On("MembershipFinalize", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipFinalize_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipFinalizeRequest)) *MockClientCommandsServer_MembershipFinalize_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipFinalizeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipFinalize_Call) Return(_a0 *pb.RpcMembershipFinalizeResponse) *MockClientCommandsServer_MembershipFinalize_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipFinalize_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipFinalizeRequest) *pb.RpcMembershipFinalizeResponse) *MockClientCommandsServer_MembershipFinalize_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipGetPortalLinkUrl provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipGetPortalLinkUrl(_a0 context.Context, _a1 *pb.RpcMembershipGetPortalLinkUrlRequest) *pb.RpcMembershipGetPortalLinkUrlResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipGetPortalLinkUrl")
- }
-
- var r0 *pb.RpcMembershipGetPortalLinkUrlResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipGetPortalLinkUrlRequest) *pb.RpcMembershipGetPortalLinkUrlResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipGetPortalLinkUrlResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipGetPortalLinkUrl_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipGetPortalLinkUrl'
-type MockClientCommandsServer_MembershipGetPortalLinkUrl_Call struct {
- *mock.Call
-}
-
-// MembershipGetPortalLinkUrl is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipGetPortalLinkUrlRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipGetPortalLinkUrl(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipGetPortalLinkUrl_Call {
- return &MockClientCommandsServer_MembershipGetPortalLinkUrl_Call{Call: _e.mock.On("MembershipGetPortalLinkUrl", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipGetPortalLinkUrl_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipGetPortalLinkUrlRequest)) *MockClientCommandsServer_MembershipGetPortalLinkUrl_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipGetPortalLinkUrlRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetPortalLinkUrl_Call) Return(_a0 *pb.RpcMembershipGetPortalLinkUrlResponse) *MockClientCommandsServer_MembershipGetPortalLinkUrl_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetPortalLinkUrl_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipGetPortalLinkUrlRequest) *pb.RpcMembershipGetPortalLinkUrlResponse) *MockClientCommandsServer_MembershipGetPortalLinkUrl_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipGetStatus provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipGetStatus(_a0 context.Context, _a1 *pb.RpcMembershipGetStatusRequest) *pb.RpcMembershipGetStatusResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipGetStatus")
- }
-
- var r0 *pb.RpcMembershipGetStatusResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipGetStatusRequest) *pb.RpcMembershipGetStatusResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipGetStatusResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipGetStatus_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipGetStatus'
-type MockClientCommandsServer_MembershipGetStatus_Call struct {
- *mock.Call
-}
-
-// MembershipGetStatus is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipGetStatusRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipGetStatus(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipGetStatus_Call {
- return &MockClientCommandsServer_MembershipGetStatus_Call{Call: _e.mock.On("MembershipGetStatus", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipGetStatus_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipGetStatusRequest)) *MockClientCommandsServer_MembershipGetStatus_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipGetStatusRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetStatus_Call) Return(_a0 *pb.RpcMembershipGetStatusResponse) *MockClientCommandsServer_MembershipGetStatus_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetStatus_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipGetStatusRequest) *pb.RpcMembershipGetStatusResponse) *MockClientCommandsServer_MembershipGetStatus_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipGetTiers provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipGetTiers(_a0 context.Context, _a1 *pb.RpcMembershipGetTiersRequest) *pb.RpcMembershipGetTiersResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipGetTiers")
- }
-
- var r0 *pb.RpcMembershipGetTiersResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipGetTiersRequest) *pb.RpcMembershipGetTiersResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipGetTiersResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipGetTiers_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipGetTiers'
-type MockClientCommandsServer_MembershipGetTiers_Call struct {
- *mock.Call
-}
-
-// MembershipGetTiers is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipGetTiersRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipGetTiers(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipGetTiers_Call {
- return &MockClientCommandsServer_MembershipGetTiers_Call{Call: _e.mock.On("MembershipGetTiers", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipGetTiers_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipGetTiersRequest)) *MockClientCommandsServer_MembershipGetTiers_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipGetTiersRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetTiers_Call) Return(_a0 *pb.RpcMembershipGetTiersResponse) *MockClientCommandsServer_MembershipGetTiers_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetTiers_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipGetTiersRequest) *pb.RpcMembershipGetTiersResponse) *MockClientCommandsServer_MembershipGetTiers_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipGetVerificationEmail provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipGetVerificationEmail(_a0 context.Context, _a1 *pb.RpcMembershipGetVerificationEmailRequest) *pb.RpcMembershipGetVerificationEmailResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipGetVerificationEmail")
- }
-
- var r0 *pb.RpcMembershipGetVerificationEmailResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipGetVerificationEmailRequest) *pb.RpcMembershipGetVerificationEmailResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipGetVerificationEmailResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipGetVerificationEmail_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipGetVerificationEmail'
-type MockClientCommandsServer_MembershipGetVerificationEmail_Call struct {
- *mock.Call
-}
-
-// MembershipGetVerificationEmail is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipGetVerificationEmailRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipGetVerificationEmail(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipGetVerificationEmail_Call {
- return &MockClientCommandsServer_MembershipGetVerificationEmail_Call{Call: _e.mock.On("MembershipGetVerificationEmail", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipGetVerificationEmail_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipGetVerificationEmailRequest)) *MockClientCommandsServer_MembershipGetVerificationEmail_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipGetVerificationEmailRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetVerificationEmail_Call) Return(_a0 *pb.RpcMembershipGetVerificationEmailResponse) *MockClientCommandsServer_MembershipGetVerificationEmail_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetVerificationEmail_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipGetVerificationEmailRequest) *pb.RpcMembershipGetVerificationEmailResponse) *MockClientCommandsServer_MembershipGetVerificationEmail_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipGetVerificationEmailStatus provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipGetVerificationEmailStatus(_a0 context.Context, _a1 *pb.RpcMembershipGetVerificationEmailStatusRequest) *pb.RpcMembershipGetVerificationEmailStatusResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipGetVerificationEmailStatus")
- }
-
- var r0 *pb.RpcMembershipGetVerificationEmailStatusResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipGetVerificationEmailStatusRequest) *pb.RpcMembershipGetVerificationEmailStatusResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipGetVerificationEmailStatusResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipGetVerificationEmailStatus'
-type MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call struct {
- *mock.Call
-}
-
-// MembershipGetVerificationEmailStatus is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipGetVerificationEmailStatusRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipGetVerificationEmailStatus(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call {
- return &MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call{Call: _e.mock.On("MembershipGetVerificationEmailStatus", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipGetVerificationEmailStatusRequest)) *MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipGetVerificationEmailStatusRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call) Return(_a0 *pb.RpcMembershipGetVerificationEmailStatusResponse) *MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipGetVerificationEmailStatusRequest) *pb.RpcMembershipGetVerificationEmailStatusResponse) *MockClientCommandsServer_MembershipGetVerificationEmailStatus_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipIsNameValid provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipIsNameValid(_a0 context.Context, _a1 *pb.RpcMembershipIsNameValidRequest) *pb.RpcMembershipIsNameValidResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipIsNameValid")
- }
-
- var r0 *pb.RpcMembershipIsNameValidResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipIsNameValidRequest) *pb.RpcMembershipIsNameValidResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipIsNameValidResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipIsNameValid_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipIsNameValid'
-type MockClientCommandsServer_MembershipIsNameValid_Call struct {
- *mock.Call
-}
-
-// MembershipIsNameValid is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipIsNameValidRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipIsNameValid(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipIsNameValid_Call {
- return &MockClientCommandsServer_MembershipIsNameValid_Call{Call: _e.mock.On("MembershipIsNameValid", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipIsNameValid_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipIsNameValidRequest)) *MockClientCommandsServer_MembershipIsNameValid_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipIsNameValidRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipIsNameValid_Call) Return(_a0 *pb.RpcMembershipIsNameValidResponse) *MockClientCommandsServer_MembershipIsNameValid_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipIsNameValid_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipIsNameValidRequest) *pb.RpcMembershipIsNameValidResponse) *MockClientCommandsServer_MembershipIsNameValid_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipRegisterPaymentRequest provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipRegisterPaymentRequest(_a0 context.Context, _a1 *pb.RpcMembershipRegisterPaymentRequestRequest) *pb.RpcMembershipRegisterPaymentRequestResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipRegisterPaymentRequest")
- }
-
- var r0 *pb.RpcMembershipRegisterPaymentRequestResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipRegisterPaymentRequestRequest) *pb.RpcMembershipRegisterPaymentRequestResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipRegisterPaymentRequestResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipRegisterPaymentRequest_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipRegisterPaymentRequest'
-type MockClientCommandsServer_MembershipRegisterPaymentRequest_Call struct {
- *mock.Call
-}
-
-// MembershipRegisterPaymentRequest is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipRegisterPaymentRequestRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipRegisterPaymentRequest(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipRegisterPaymentRequest_Call {
- return &MockClientCommandsServer_MembershipRegisterPaymentRequest_Call{Call: _e.mock.On("MembershipRegisterPaymentRequest", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipRegisterPaymentRequest_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipRegisterPaymentRequestRequest)) *MockClientCommandsServer_MembershipRegisterPaymentRequest_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipRegisterPaymentRequestRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipRegisterPaymentRequest_Call) Return(_a0 *pb.RpcMembershipRegisterPaymentRequestResponse) *MockClientCommandsServer_MembershipRegisterPaymentRequest_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipRegisterPaymentRequest_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipRegisterPaymentRequestRequest) *pb.RpcMembershipRegisterPaymentRequestResponse) *MockClientCommandsServer_MembershipRegisterPaymentRequest_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipVerifyAppStoreReceipt provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipVerifyAppStoreReceipt(_a0 context.Context, _a1 *pb.RpcMembershipVerifyAppStoreReceiptRequest) *pb.RpcMembershipVerifyAppStoreReceiptResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipVerifyAppStoreReceipt")
- }
-
- var r0 *pb.RpcMembershipVerifyAppStoreReceiptResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipVerifyAppStoreReceiptRequest) *pb.RpcMembershipVerifyAppStoreReceiptResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipVerifyAppStoreReceiptResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipVerifyAppStoreReceipt'
-type MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call struct {
- *mock.Call
-}
-
-// MembershipVerifyAppStoreReceipt is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipVerifyAppStoreReceiptRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipVerifyAppStoreReceipt(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call {
- return &MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call{Call: _e.mock.On("MembershipVerifyAppStoreReceipt", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipVerifyAppStoreReceiptRequest)) *MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipVerifyAppStoreReceiptRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call) Return(_a0 *pb.RpcMembershipVerifyAppStoreReceiptResponse) *MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipVerifyAppStoreReceiptRequest) *pb.RpcMembershipVerifyAppStoreReceiptResponse) *MockClientCommandsServer_MembershipVerifyAppStoreReceipt_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// MembershipVerifyEmailCode provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) MembershipVerifyEmailCode(_a0 context.Context, _a1 *pb.RpcMembershipVerifyEmailCodeRequest) *pb.RpcMembershipVerifyEmailCodeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for MembershipVerifyEmailCode")
- }
-
- var r0 *pb.RpcMembershipVerifyEmailCodeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcMembershipVerifyEmailCodeRequest) *pb.RpcMembershipVerifyEmailCodeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcMembershipVerifyEmailCodeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_MembershipVerifyEmailCode_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'MembershipVerifyEmailCode'
-type MockClientCommandsServer_MembershipVerifyEmailCode_Call struct {
- *mock.Call
-}
-
-// MembershipVerifyEmailCode is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcMembershipVerifyEmailCodeRequest
-func (_e *MockClientCommandsServer_Expecter) MembershipVerifyEmailCode(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_MembershipVerifyEmailCode_Call {
- return &MockClientCommandsServer_MembershipVerifyEmailCode_Call{Call: _e.mock.On("MembershipVerifyEmailCode", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_MembershipVerifyEmailCode_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcMembershipVerifyEmailCodeRequest)) *MockClientCommandsServer_MembershipVerifyEmailCode_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcMembershipVerifyEmailCodeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipVerifyEmailCode_Call) Return(_a0 *pb.RpcMembershipVerifyEmailCodeResponse) *MockClientCommandsServer_MembershipVerifyEmailCode_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_MembershipVerifyEmailCode_Call) RunAndReturn(run func(context.Context, *pb.RpcMembershipVerifyEmailCodeRequest) *pb.RpcMembershipVerifyEmailCodeResponse) *MockClientCommandsServer_MembershipVerifyEmailCode_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NameServiceResolveAnyId provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) NameServiceResolveAnyId(_a0 context.Context, _a1 *pb.RpcNameServiceResolveAnyIdRequest) *pb.RpcNameServiceResolveAnyIdResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for NameServiceResolveAnyId")
- }
-
- var r0 *pb.RpcNameServiceResolveAnyIdResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcNameServiceResolveAnyIdRequest) *pb.RpcNameServiceResolveAnyIdResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcNameServiceResolveAnyIdResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_NameServiceResolveAnyId_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NameServiceResolveAnyId'
-type MockClientCommandsServer_NameServiceResolveAnyId_Call struct {
- *mock.Call
-}
-
-// NameServiceResolveAnyId is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcNameServiceResolveAnyIdRequest
-func (_e *MockClientCommandsServer_Expecter) NameServiceResolveAnyId(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_NameServiceResolveAnyId_Call {
- return &MockClientCommandsServer_NameServiceResolveAnyId_Call{Call: _e.mock.On("NameServiceResolveAnyId", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_NameServiceResolveAnyId_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcNameServiceResolveAnyIdRequest)) *MockClientCommandsServer_NameServiceResolveAnyId_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcNameServiceResolveAnyIdRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_NameServiceResolveAnyId_Call) Return(_a0 *pb.RpcNameServiceResolveAnyIdResponse) *MockClientCommandsServer_NameServiceResolveAnyId_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_NameServiceResolveAnyId_Call) RunAndReturn(run func(context.Context, *pb.RpcNameServiceResolveAnyIdRequest) *pb.RpcNameServiceResolveAnyIdResponse) *MockClientCommandsServer_NameServiceResolveAnyId_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NameServiceResolveName provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) NameServiceResolveName(_a0 context.Context, _a1 *pb.RpcNameServiceResolveNameRequest) *pb.RpcNameServiceResolveNameResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for NameServiceResolveName")
- }
-
- var r0 *pb.RpcNameServiceResolveNameResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcNameServiceResolveNameRequest) *pb.RpcNameServiceResolveNameResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcNameServiceResolveNameResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_NameServiceResolveName_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NameServiceResolveName'
-type MockClientCommandsServer_NameServiceResolveName_Call struct {
- *mock.Call
-}
-
-// NameServiceResolveName is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcNameServiceResolveNameRequest
-func (_e *MockClientCommandsServer_Expecter) NameServiceResolveName(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_NameServiceResolveName_Call {
- return &MockClientCommandsServer_NameServiceResolveName_Call{Call: _e.mock.On("NameServiceResolveName", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_NameServiceResolveName_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcNameServiceResolveNameRequest)) *MockClientCommandsServer_NameServiceResolveName_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcNameServiceResolveNameRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_NameServiceResolveName_Call) Return(_a0 *pb.RpcNameServiceResolveNameResponse) *MockClientCommandsServer_NameServiceResolveName_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_NameServiceResolveName_Call) RunAndReturn(run func(context.Context, *pb.RpcNameServiceResolveNameRequest) *pb.RpcNameServiceResolveNameResponse) *MockClientCommandsServer_NameServiceResolveName_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NameServiceUserAccountGet provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) NameServiceUserAccountGet(_a0 context.Context, _a1 *pb.RpcNameServiceUserAccountGetRequest) *pb.RpcNameServiceUserAccountGetResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for NameServiceUserAccountGet")
- }
-
- var r0 *pb.RpcNameServiceUserAccountGetResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcNameServiceUserAccountGetRequest) *pb.RpcNameServiceUserAccountGetResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcNameServiceUserAccountGetResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_NameServiceUserAccountGet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NameServiceUserAccountGet'
-type MockClientCommandsServer_NameServiceUserAccountGet_Call struct {
- *mock.Call
-}
-
-// NameServiceUserAccountGet is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcNameServiceUserAccountGetRequest
-func (_e *MockClientCommandsServer_Expecter) NameServiceUserAccountGet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_NameServiceUserAccountGet_Call {
- return &MockClientCommandsServer_NameServiceUserAccountGet_Call{Call: _e.mock.On("NameServiceUserAccountGet", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_NameServiceUserAccountGet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcNameServiceUserAccountGetRequest)) *MockClientCommandsServer_NameServiceUserAccountGet_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcNameServiceUserAccountGetRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_NameServiceUserAccountGet_Call) Return(_a0 *pb.RpcNameServiceUserAccountGetResponse) *MockClientCommandsServer_NameServiceUserAccountGet_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_NameServiceUserAccountGet_Call) RunAndReturn(run func(context.Context, *pb.RpcNameServiceUserAccountGetRequest) *pb.RpcNameServiceUserAccountGetResponse) *MockClientCommandsServer_NameServiceUserAccountGet_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NavigationGetObjectInfoWithLinks provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) NavigationGetObjectInfoWithLinks(_a0 context.Context, _a1 *pb.RpcNavigationGetObjectInfoWithLinksRequest) *pb.RpcNavigationGetObjectInfoWithLinksResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for NavigationGetObjectInfoWithLinks")
- }
-
- var r0 *pb.RpcNavigationGetObjectInfoWithLinksResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcNavigationGetObjectInfoWithLinksRequest) *pb.RpcNavigationGetObjectInfoWithLinksResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcNavigationGetObjectInfoWithLinksResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NavigationGetObjectInfoWithLinks'
-type MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call struct {
- *mock.Call
-}
-
-// NavigationGetObjectInfoWithLinks is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcNavigationGetObjectInfoWithLinksRequest
-func (_e *MockClientCommandsServer_Expecter) NavigationGetObjectInfoWithLinks(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call {
- return &MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call{Call: _e.mock.On("NavigationGetObjectInfoWithLinks", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcNavigationGetObjectInfoWithLinksRequest)) *MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcNavigationGetObjectInfoWithLinksRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call) Return(_a0 *pb.RpcNavigationGetObjectInfoWithLinksResponse) *MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call) RunAndReturn(run func(context.Context, *pb.RpcNavigationGetObjectInfoWithLinksRequest) *pb.RpcNavigationGetObjectInfoWithLinksResponse) *MockClientCommandsServer_NavigationGetObjectInfoWithLinks_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NavigationListObjects provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) NavigationListObjects(_a0 context.Context, _a1 *pb.RpcNavigationListObjectsRequest) *pb.RpcNavigationListObjectsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for NavigationListObjects")
- }
-
- var r0 *pb.RpcNavigationListObjectsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcNavigationListObjectsRequest) *pb.RpcNavigationListObjectsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcNavigationListObjectsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_NavigationListObjects_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NavigationListObjects'
-type MockClientCommandsServer_NavigationListObjects_Call struct {
- *mock.Call
-}
-
-// NavigationListObjects is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcNavigationListObjectsRequest
-func (_e *MockClientCommandsServer_Expecter) NavigationListObjects(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_NavigationListObjects_Call {
- return &MockClientCommandsServer_NavigationListObjects_Call{Call: _e.mock.On("NavigationListObjects", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_NavigationListObjects_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcNavigationListObjectsRequest)) *MockClientCommandsServer_NavigationListObjects_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcNavigationListObjectsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_NavigationListObjects_Call) Return(_a0 *pb.RpcNavigationListObjectsResponse) *MockClientCommandsServer_NavigationListObjects_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_NavigationListObjects_Call) RunAndReturn(run func(context.Context, *pb.RpcNavigationListObjectsRequest) *pb.RpcNavigationListObjectsResponse) *MockClientCommandsServer_NavigationListObjects_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NotificationList provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) NotificationList(_a0 context.Context, _a1 *pb.RpcNotificationListRequest) *pb.RpcNotificationListResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for NotificationList")
- }
-
- var r0 *pb.RpcNotificationListResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcNotificationListRequest) *pb.RpcNotificationListResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcNotificationListResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_NotificationList_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NotificationList'
-type MockClientCommandsServer_NotificationList_Call struct {
- *mock.Call
-}
-
-// NotificationList is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcNotificationListRequest
-func (_e *MockClientCommandsServer_Expecter) NotificationList(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_NotificationList_Call {
- return &MockClientCommandsServer_NotificationList_Call{Call: _e.mock.On("NotificationList", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_NotificationList_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcNotificationListRequest)) *MockClientCommandsServer_NotificationList_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcNotificationListRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_NotificationList_Call) Return(_a0 *pb.RpcNotificationListResponse) *MockClientCommandsServer_NotificationList_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_NotificationList_Call) RunAndReturn(run func(context.Context, *pb.RpcNotificationListRequest) *pb.RpcNotificationListResponse) *MockClientCommandsServer_NotificationList_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NotificationReply provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) NotificationReply(_a0 context.Context, _a1 *pb.RpcNotificationReplyRequest) *pb.RpcNotificationReplyResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for NotificationReply")
- }
-
- var r0 *pb.RpcNotificationReplyResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcNotificationReplyRequest) *pb.RpcNotificationReplyResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcNotificationReplyResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_NotificationReply_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NotificationReply'
-type MockClientCommandsServer_NotificationReply_Call struct {
- *mock.Call
-}
-
-// NotificationReply is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcNotificationReplyRequest
-func (_e *MockClientCommandsServer_Expecter) NotificationReply(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_NotificationReply_Call {
- return &MockClientCommandsServer_NotificationReply_Call{Call: _e.mock.On("NotificationReply", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_NotificationReply_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcNotificationReplyRequest)) *MockClientCommandsServer_NotificationReply_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcNotificationReplyRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_NotificationReply_Call) Return(_a0 *pb.RpcNotificationReplyResponse) *MockClientCommandsServer_NotificationReply_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_NotificationReply_Call) RunAndReturn(run func(context.Context, *pb.RpcNotificationReplyRequest) *pb.RpcNotificationReplyResponse) *MockClientCommandsServer_NotificationReply_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NotificationTest provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) NotificationTest(_a0 context.Context, _a1 *pb.RpcNotificationTestRequest) *pb.RpcNotificationTestResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for NotificationTest")
- }
-
- var r0 *pb.RpcNotificationTestResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcNotificationTestRequest) *pb.RpcNotificationTestResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcNotificationTestResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_NotificationTest_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NotificationTest'
-type MockClientCommandsServer_NotificationTest_Call struct {
- *mock.Call
-}
-
-// NotificationTest is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcNotificationTestRequest
-func (_e *MockClientCommandsServer_Expecter) NotificationTest(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_NotificationTest_Call {
- return &MockClientCommandsServer_NotificationTest_Call{Call: _e.mock.On("NotificationTest", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_NotificationTest_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcNotificationTestRequest)) *MockClientCommandsServer_NotificationTest_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcNotificationTestRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_NotificationTest_Call) Return(_a0 *pb.RpcNotificationTestResponse) *MockClientCommandsServer_NotificationTest_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_NotificationTest_Call) RunAndReturn(run func(context.Context, *pb.RpcNotificationTestRequest) *pb.RpcNotificationTestResponse) *MockClientCommandsServer_NotificationTest_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectApplyTemplate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectApplyTemplate(_a0 context.Context, _a1 *pb.RpcObjectApplyTemplateRequest) *pb.RpcObjectApplyTemplateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectApplyTemplate")
- }
-
- var r0 *pb.RpcObjectApplyTemplateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectApplyTemplateRequest) *pb.RpcObjectApplyTemplateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectApplyTemplateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectApplyTemplate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectApplyTemplate'
-type MockClientCommandsServer_ObjectApplyTemplate_Call struct {
- *mock.Call
-}
-
-// ObjectApplyTemplate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectApplyTemplateRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectApplyTemplate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectApplyTemplate_Call {
- return &MockClientCommandsServer_ObjectApplyTemplate_Call{Call: _e.mock.On("ObjectApplyTemplate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectApplyTemplate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectApplyTemplateRequest)) *MockClientCommandsServer_ObjectApplyTemplate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectApplyTemplateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectApplyTemplate_Call) Return(_a0 *pb.RpcObjectApplyTemplateResponse) *MockClientCommandsServer_ObjectApplyTemplate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectApplyTemplate_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectApplyTemplateRequest) *pb.RpcObjectApplyTemplateResponse) *MockClientCommandsServer_ObjectApplyTemplate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectBookmarkFetch provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectBookmarkFetch(_a0 context.Context, _a1 *pb.RpcObjectBookmarkFetchRequest) *pb.RpcObjectBookmarkFetchResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectBookmarkFetch")
- }
-
- var r0 *pb.RpcObjectBookmarkFetchResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectBookmarkFetchRequest) *pb.RpcObjectBookmarkFetchResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectBookmarkFetchResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectBookmarkFetch_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectBookmarkFetch'
-type MockClientCommandsServer_ObjectBookmarkFetch_Call struct {
- *mock.Call
-}
-
-// ObjectBookmarkFetch is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectBookmarkFetchRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectBookmarkFetch(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectBookmarkFetch_Call {
- return &MockClientCommandsServer_ObjectBookmarkFetch_Call{Call: _e.mock.On("ObjectBookmarkFetch", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectBookmarkFetch_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectBookmarkFetchRequest)) *MockClientCommandsServer_ObjectBookmarkFetch_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectBookmarkFetchRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectBookmarkFetch_Call) Return(_a0 *pb.RpcObjectBookmarkFetchResponse) *MockClientCommandsServer_ObjectBookmarkFetch_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectBookmarkFetch_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectBookmarkFetchRequest) *pb.RpcObjectBookmarkFetchResponse) *MockClientCommandsServer_ObjectBookmarkFetch_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectChatAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectChatAdd(_a0 context.Context, _a1 *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectChatAdd")
- }
-
- var r0 *pb.RpcObjectChatAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectChatAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectChatAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectChatAdd'
-type MockClientCommandsServer_ObjectChatAdd_Call struct {
- *mock.Call
-}
-
-// ObjectChatAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectChatAddRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectChatAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectChatAdd_Call {
- return &MockClientCommandsServer_ObjectChatAdd_Call{Call: _e.mock.On("ObjectChatAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectChatAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectChatAddRequest)) *MockClientCommandsServer_ObjectChatAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectChatAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectChatAdd_Call) Return(_a0 *pb.RpcObjectChatAddResponse) *MockClientCommandsServer_ObjectChatAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectChatAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectChatAddRequest) *pb.RpcObjectChatAddResponse) *MockClientCommandsServer_ObjectChatAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectClose provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectClose(_a0 context.Context, _a1 *pb.RpcObjectCloseRequest) *pb.RpcObjectCloseResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectClose")
- }
-
- var r0 *pb.RpcObjectCloseResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCloseRequest) *pb.RpcObjectCloseResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCloseResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectClose_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectClose'
-type MockClientCommandsServer_ObjectClose_Call struct {
- *mock.Call
-}
-
-// ObjectClose is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCloseRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectClose(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectClose_Call {
- return &MockClientCommandsServer_ObjectClose_Call{Call: _e.mock.On("ObjectClose", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectClose_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCloseRequest)) *MockClientCommandsServer_ObjectClose_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCloseRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectClose_Call) Return(_a0 *pb.RpcObjectCloseResponse) *MockClientCommandsServer_ObjectClose_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectClose_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCloseRequest) *pb.RpcObjectCloseResponse) *MockClientCommandsServer_ObjectClose_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCollectionAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCollectionAdd(_a0 context.Context, _a1 *pb.RpcObjectCollectionAddRequest) *pb.RpcObjectCollectionAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCollectionAdd")
- }
-
- var r0 *pb.RpcObjectCollectionAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCollectionAddRequest) *pb.RpcObjectCollectionAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCollectionAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCollectionAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCollectionAdd'
-type MockClientCommandsServer_ObjectCollectionAdd_Call struct {
- *mock.Call
-}
-
-// ObjectCollectionAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCollectionAddRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCollectionAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCollectionAdd_Call {
- return &MockClientCommandsServer_ObjectCollectionAdd_Call{Call: _e.mock.On("ObjectCollectionAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCollectionAddRequest)) *MockClientCommandsServer_ObjectCollectionAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCollectionAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionAdd_Call) Return(_a0 *pb.RpcObjectCollectionAddResponse) *MockClientCommandsServer_ObjectCollectionAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCollectionAddRequest) *pb.RpcObjectCollectionAddResponse) *MockClientCommandsServer_ObjectCollectionAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCollectionRemove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCollectionRemove(_a0 context.Context, _a1 *pb.RpcObjectCollectionRemoveRequest) *pb.RpcObjectCollectionRemoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCollectionRemove")
- }
-
- var r0 *pb.RpcObjectCollectionRemoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCollectionRemoveRequest) *pb.RpcObjectCollectionRemoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCollectionRemoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCollectionRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCollectionRemove'
-type MockClientCommandsServer_ObjectCollectionRemove_Call struct {
- *mock.Call
-}
-
-// ObjectCollectionRemove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCollectionRemoveRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCollectionRemove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCollectionRemove_Call {
- return &MockClientCommandsServer_ObjectCollectionRemove_Call{Call: _e.mock.On("ObjectCollectionRemove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCollectionRemoveRequest)) *MockClientCommandsServer_ObjectCollectionRemove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCollectionRemoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionRemove_Call) Return(_a0 *pb.RpcObjectCollectionRemoveResponse) *MockClientCommandsServer_ObjectCollectionRemove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCollectionRemoveRequest) *pb.RpcObjectCollectionRemoveResponse) *MockClientCommandsServer_ObjectCollectionRemove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCollectionSort provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCollectionSort(_a0 context.Context, _a1 *pb.RpcObjectCollectionSortRequest) *pb.RpcObjectCollectionSortResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCollectionSort")
- }
-
- var r0 *pb.RpcObjectCollectionSortResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCollectionSortRequest) *pb.RpcObjectCollectionSortResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCollectionSortResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCollectionSort_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCollectionSort'
-type MockClientCommandsServer_ObjectCollectionSort_Call struct {
- *mock.Call
-}
-
-// ObjectCollectionSort is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCollectionSortRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCollectionSort(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCollectionSort_Call {
- return &MockClientCommandsServer_ObjectCollectionSort_Call{Call: _e.mock.On("ObjectCollectionSort", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionSort_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCollectionSortRequest)) *MockClientCommandsServer_ObjectCollectionSort_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCollectionSortRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionSort_Call) Return(_a0 *pb.RpcObjectCollectionSortResponse) *MockClientCommandsServer_ObjectCollectionSort_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCollectionSort_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCollectionSortRequest) *pb.RpcObjectCollectionSortResponse) *MockClientCommandsServer_ObjectCollectionSort_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCreate(_a0 context.Context, _a1 *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCreate")
- }
-
- var r0 *pb.RpcObjectCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreate'
-type MockClientCommandsServer_ObjectCreate_Call struct {
- *mock.Call
-}
-
-// ObjectCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCreateRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCreate_Call {
- return &MockClientCommandsServer_ObjectCreate_Call{Call: _e.mock.On("ObjectCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateRequest)) *MockClientCommandsServer_ObjectCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreate_Call) Return(_a0 *pb.RpcObjectCreateResponse) *MockClientCommandsServer_ObjectCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse) *MockClientCommandsServer_ObjectCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCreateBookmark provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCreateBookmark(_a0 context.Context, _a1 *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCreateBookmark")
- }
-
- var r0 *pb.RpcObjectCreateBookmarkResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCreateBookmarkResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCreateBookmark_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreateBookmark'
-type MockClientCommandsServer_ObjectCreateBookmark_Call struct {
- *mock.Call
-}
-
-// ObjectCreateBookmark is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCreateBookmarkRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCreateBookmark(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCreateBookmark_Call {
- return &MockClientCommandsServer_ObjectCreateBookmark_Call{Call: _e.mock.On("ObjectCreateBookmark", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateBookmark_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateBookmarkRequest)) *MockClientCommandsServer_ObjectCreateBookmark_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateBookmarkRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateBookmark_Call) Return(_a0 *pb.RpcObjectCreateBookmarkResponse) *MockClientCommandsServer_ObjectCreateBookmark_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateBookmark_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse) *MockClientCommandsServer_ObjectCreateBookmark_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCreateFromUrl provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCreateFromUrl(_a0 context.Context, _a1 *pb.RpcObjectCreateFromUrlRequest) *pb.RpcObjectCreateFromUrlResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCreateFromUrl")
- }
-
- var r0 *pb.RpcObjectCreateFromUrlResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateFromUrlRequest) *pb.RpcObjectCreateFromUrlResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCreateFromUrlResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCreateFromUrl_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreateFromUrl'
-type MockClientCommandsServer_ObjectCreateFromUrl_Call struct {
- *mock.Call
-}
-
-// ObjectCreateFromUrl is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCreateFromUrlRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCreateFromUrl(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCreateFromUrl_Call {
- return &MockClientCommandsServer_ObjectCreateFromUrl_Call{Call: _e.mock.On("ObjectCreateFromUrl", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateFromUrl_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateFromUrlRequest)) *MockClientCommandsServer_ObjectCreateFromUrl_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateFromUrlRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateFromUrl_Call) Return(_a0 *pb.RpcObjectCreateFromUrlResponse) *MockClientCommandsServer_ObjectCreateFromUrl_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateFromUrl_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateFromUrlRequest) *pb.RpcObjectCreateFromUrlResponse) *MockClientCommandsServer_ObjectCreateFromUrl_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCreateObjectType provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCreateObjectType(_a0 context.Context, _a1 *pb.RpcObjectCreateObjectTypeRequest) *pb.RpcObjectCreateObjectTypeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCreateObjectType")
- }
-
- var r0 *pb.RpcObjectCreateObjectTypeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateObjectTypeRequest) *pb.RpcObjectCreateObjectTypeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCreateObjectTypeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCreateObjectType_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreateObjectType'
-type MockClientCommandsServer_ObjectCreateObjectType_Call struct {
- *mock.Call
-}
-
-// ObjectCreateObjectType is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCreateObjectTypeRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCreateObjectType(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCreateObjectType_Call {
- return &MockClientCommandsServer_ObjectCreateObjectType_Call{Call: _e.mock.On("ObjectCreateObjectType", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateObjectType_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateObjectTypeRequest)) *MockClientCommandsServer_ObjectCreateObjectType_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateObjectTypeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateObjectType_Call) Return(_a0 *pb.RpcObjectCreateObjectTypeResponse) *MockClientCommandsServer_ObjectCreateObjectType_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateObjectType_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateObjectTypeRequest) *pb.RpcObjectCreateObjectTypeResponse) *MockClientCommandsServer_ObjectCreateObjectType_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCreateRelation provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCreateRelation(_a0 context.Context, _a1 *pb.RpcObjectCreateRelationRequest) *pb.RpcObjectCreateRelationResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCreateRelation")
- }
-
- var r0 *pb.RpcObjectCreateRelationResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateRelationRequest) *pb.RpcObjectCreateRelationResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCreateRelationResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCreateRelation_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreateRelation'
-type MockClientCommandsServer_ObjectCreateRelation_Call struct {
- *mock.Call
-}
-
-// ObjectCreateRelation is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCreateRelationRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCreateRelation(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCreateRelation_Call {
- return &MockClientCommandsServer_ObjectCreateRelation_Call{Call: _e.mock.On("ObjectCreateRelation", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateRelation_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateRelationRequest)) *MockClientCommandsServer_ObjectCreateRelation_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateRelationRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateRelation_Call) Return(_a0 *pb.RpcObjectCreateRelationResponse) *MockClientCommandsServer_ObjectCreateRelation_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateRelation_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateRelationRequest) *pb.RpcObjectCreateRelationResponse) *MockClientCommandsServer_ObjectCreateRelation_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCreateRelationOption provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCreateRelationOption(_a0 context.Context, _a1 *pb.RpcObjectCreateRelationOptionRequest) *pb.RpcObjectCreateRelationOptionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCreateRelationOption")
- }
-
- var r0 *pb.RpcObjectCreateRelationOptionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateRelationOptionRequest) *pb.RpcObjectCreateRelationOptionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCreateRelationOptionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCreateRelationOption_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreateRelationOption'
-type MockClientCommandsServer_ObjectCreateRelationOption_Call struct {
- *mock.Call
-}
-
-// ObjectCreateRelationOption is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCreateRelationOptionRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCreateRelationOption(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCreateRelationOption_Call {
- return &MockClientCommandsServer_ObjectCreateRelationOption_Call{Call: _e.mock.On("ObjectCreateRelationOption", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateRelationOption_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateRelationOptionRequest)) *MockClientCommandsServer_ObjectCreateRelationOption_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateRelationOptionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateRelationOption_Call) Return(_a0 *pb.RpcObjectCreateRelationOptionResponse) *MockClientCommandsServer_ObjectCreateRelationOption_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateRelationOption_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateRelationOptionRequest) *pb.RpcObjectCreateRelationOptionResponse) *MockClientCommandsServer_ObjectCreateRelationOption_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCreateSet provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCreateSet(_a0 context.Context, _a1 *pb.RpcObjectCreateSetRequest) *pb.RpcObjectCreateSetResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCreateSet")
- }
-
- var r0 *pb.RpcObjectCreateSetResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCreateSetRequest) *pb.RpcObjectCreateSetResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCreateSetResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCreateSet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCreateSet'
-type MockClientCommandsServer_ObjectCreateSet_Call struct {
- *mock.Call
-}
-
-// ObjectCreateSet is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCreateSetRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCreateSet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCreateSet_Call {
- return &MockClientCommandsServer_ObjectCreateSet_Call{Call: _e.mock.On("ObjectCreateSet", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateSet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCreateSetRequest)) *MockClientCommandsServer_ObjectCreateSet_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCreateSetRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateSet_Call) Return(_a0 *pb.RpcObjectCreateSetResponse) *MockClientCommandsServer_ObjectCreateSet_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCreateSet_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCreateSetRequest) *pb.RpcObjectCreateSetResponse) *MockClientCommandsServer_ObjectCreateSet_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCrossSpaceSearchSubscribe provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCrossSpaceSearchSubscribe(_a0 context.Context, _a1 *pb.RpcObjectCrossSpaceSearchSubscribeRequest) *pb.RpcObjectCrossSpaceSearchSubscribeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCrossSpaceSearchSubscribe")
- }
-
- var r0 *pb.RpcObjectCrossSpaceSearchSubscribeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCrossSpaceSearchSubscribeRequest) *pb.RpcObjectCrossSpaceSearchSubscribeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCrossSpaceSearchSubscribeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCrossSpaceSearchSubscribe'
-type MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call struct {
- *mock.Call
-}
-
-// ObjectCrossSpaceSearchSubscribe is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCrossSpaceSearchSubscribeRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCrossSpaceSearchSubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call {
- return &MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call{Call: _e.mock.On("ObjectCrossSpaceSearchSubscribe", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCrossSpaceSearchSubscribeRequest)) *MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCrossSpaceSearchSubscribeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call) Return(_a0 *pb.RpcObjectCrossSpaceSearchSubscribeResponse) *MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCrossSpaceSearchSubscribeRequest) *pb.RpcObjectCrossSpaceSearchSubscribeResponse) *MockClientCommandsServer_ObjectCrossSpaceSearchSubscribe_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectCrossSpaceSearchUnsubscribe provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectCrossSpaceSearchUnsubscribe(_a0 context.Context, _a1 *pb.RpcObjectCrossSpaceSearchUnsubscribeRequest) *pb.RpcObjectCrossSpaceSearchUnsubscribeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectCrossSpaceSearchUnsubscribe")
- }
-
- var r0 *pb.RpcObjectCrossSpaceSearchUnsubscribeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectCrossSpaceSearchUnsubscribeRequest) *pb.RpcObjectCrossSpaceSearchUnsubscribeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectCrossSpaceSearchUnsubscribeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectCrossSpaceSearchUnsubscribe'
-type MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call struct {
- *mock.Call
-}
-
-// ObjectCrossSpaceSearchUnsubscribe is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectCrossSpaceSearchUnsubscribeRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectCrossSpaceSearchUnsubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call {
- return &MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call{Call: _e.mock.On("ObjectCrossSpaceSearchUnsubscribe", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectCrossSpaceSearchUnsubscribeRequest)) *MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectCrossSpaceSearchUnsubscribeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call) Return(_a0 *pb.RpcObjectCrossSpaceSearchUnsubscribeResponse) *MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectCrossSpaceSearchUnsubscribeRequest) *pb.RpcObjectCrossSpaceSearchUnsubscribeResponse) *MockClientCommandsServer_ObjectCrossSpaceSearchUnsubscribe_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectDateByTimestamp provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectDateByTimestamp(_a0 context.Context, _a1 *pb.RpcObjectDateByTimestampRequest) *pb.RpcObjectDateByTimestampResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectDateByTimestamp")
- }
-
- var r0 *pb.RpcObjectDateByTimestampResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectDateByTimestampRequest) *pb.RpcObjectDateByTimestampResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectDateByTimestampResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectDateByTimestamp_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectDateByTimestamp'
-type MockClientCommandsServer_ObjectDateByTimestamp_Call struct {
- *mock.Call
-}
-
-// ObjectDateByTimestamp is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectDateByTimestampRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectDateByTimestamp(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectDateByTimestamp_Call {
- return &MockClientCommandsServer_ObjectDateByTimestamp_Call{Call: _e.mock.On("ObjectDateByTimestamp", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectDateByTimestamp_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectDateByTimestampRequest)) *MockClientCommandsServer_ObjectDateByTimestamp_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectDateByTimestampRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectDateByTimestamp_Call) Return(_a0 *pb.RpcObjectDateByTimestampResponse) *MockClientCommandsServer_ObjectDateByTimestamp_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectDateByTimestamp_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectDateByTimestampRequest) *pb.RpcObjectDateByTimestampResponse) *MockClientCommandsServer_ObjectDateByTimestamp_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectDuplicate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectDuplicate(_a0 context.Context, _a1 *pb.RpcObjectDuplicateRequest) *pb.RpcObjectDuplicateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectDuplicate")
- }
-
- var r0 *pb.RpcObjectDuplicateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectDuplicateRequest) *pb.RpcObjectDuplicateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectDuplicateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectDuplicate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectDuplicate'
-type MockClientCommandsServer_ObjectDuplicate_Call struct {
- *mock.Call
-}
-
-// ObjectDuplicate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectDuplicateRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectDuplicate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectDuplicate_Call {
- return &MockClientCommandsServer_ObjectDuplicate_Call{Call: _e.mock.On("ObjectDuplicate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectDuplicate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectDuplicateRequest)) *MockClientCommandsServer_ObjectDuplicate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectDuplicateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectDuplicate_Call) Return(_a0 *pb.RpcObjectDuplicateResponse) *MockClientCommandsServer_ObjectDuplicate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectDuplicate_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectDuplicateRequest) *pb.RpcObjectDuplicateResponse) *MockClientCommandsServer_ObjectDuplicate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectGraph provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectGraph(_a0 context.Context, _a1 *pb.RpcObjectGraphRequest) *pb.RpcObjectGraphResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectGraph")
- }
-
- var r0 *pb.RpcObjectGraphResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectGraphRequest) *pb.RpcObjectGraphResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectGraphResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectGraph_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectGraph'
-type MockClientCommandsServer_ObjectGraph_Call struct {
- *mock.Call
-}
-
-// ObjectGraph is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectGraphRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectGraph(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectGraph_Call {
- return &MockClientCommandsServer_ObjectGraph_Call{Call: _e.mock.On("ObjectGraph", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectGraph_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectGraphRequest)) *MockClientCommandsServer_ObjectGraph_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectGraphRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectGraph_Call) Return(_a0 *pb.RpcObjectGraphResponse) *MockClientCommandsServer_ObjectGraph_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectGraph_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectGraphRequest) *pb.RpcObjectGraphResponse) *MockClientCommandsServer_ObjectGraph_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectGroupsSubscribe provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectGroupsSubscribe(_a0 context.Context, _a1 *pb.RpcObjectGroupsSubscribeRequest) *pb.RpcObjectGroupsSubscribeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectGroupsSubscribe")
- }
-
- var r0 *pb.RpcObjectGroupsSubscribeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectGroupsSubscribeRequest) *pb.RpcObjectGroupsSubscribeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectGroupsSubscribeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectGroupsSubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectGroupsSubscribe'
-type MockClientCommandsServer_ObjectGroupsSubscribe_Call struct {
- *mock.Call
-}
-
-// ObjectGroupsSubscribe is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectGroupsSubscribeRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectGroupsSubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectGroupsSubscribe_Call {
- return &MockClientCommandsServer_ObjectGroupsSubscribe_Call{Call: _e.mock.On("ObjectGroupsSubscribe", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectGroupsSubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectGroupsSubscribeRequest)) *MockClientCommandsServer_ObjectGroupsSubscribe_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectGroupsSubscribeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectGroupsSubscribe_Call) Return(_a0 *pb.RpcObjectGroupsSubscribeResponse) *MockClientCommandsServer_ObjectGroupsSubscribe_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectGroupsSubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectGroupsSubscribeRequest) *pb.RpcObjectGroupsSubscribeResponse) *MockClientCommandsServer_ObjectGroupsSubscribe_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectImport provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectImport(_a0 context.Context, _a1 *pb.RpcObjectImportRequest) *pb.RpcObjectImportResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectImport")
- }
-
- var r0 *pb.RpcObjectImportResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectImportRequest) *pb.RpcObjectImportResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectImportResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectImport_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectImport'
-type MockClientCommandsServer_ObjectImport_Call struct {
- *mock.Call
-}
-
-// ObjectImport is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectImportRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectImport(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectImport_Call {
- return &MockClientCommandsServer_ObjectImport_Call{Call: _e.mock.On("ObjectImport", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectImport_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectImportRequest)) *MockClientCommandsServer_ObjectImport_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectImportRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImport_Call) Return(_a0 *pb.RpcObjectImportResponse) *MockClientCommandsServer_ObjectImport_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImport_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectImportRequest) *pb.RpcObjectImportResponse) *MockClientCommandsServer_ObjectImport_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectImportExperience provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectImportExperience(_a0 context.Context, _a1 *pb.RpcObjectImportExperienceRequest) *pb.RpcObjectImportExperienceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectImportExperience")
- }
-
- var r0 *pb.RpcObjectImportExperienceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectImportExperienceRequest) *pb.RpcObjectImportExperienceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectImportExperienceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectImportExperience_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectImportExperience'
-type MockClientCommandsServer_ObjectImportExperience_Call struct {
- *mock.Call
-}
-
-// ObjectImportExperience is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectImportExperienceRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectImportExperience(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectImportExperience_Call {
- return &MockClientCommandsServer_ObjectImportExperience_Call{Call: _e.mock.On("ObjectImportExperience", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectImportExperience_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectImportExperienceRequest)) *MockClientCommandsServer_ObjectImportExperience_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectImportExperienceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImportExperience_Call) Return(_a0 *pb.RpcObjectImportExperienceResponse) *MockClientCommandsServer_ObjectImportExperience_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImportExperience_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectImportExperienceRequest) *pb.RpcObjectImportExperienceResponse) *MockClientCommandsServer_ObjectImportExperience_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectImportList provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectImportList(_a0 context.Context, _a1 *pb.RpcObjectImportListRequest) *pb.RpcObjectImportListResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectImportList")
- }
-
- var r0 *pb.RpcObjectImportListResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectImportListRequest) *pb.RpcObjectImportListResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectImportListResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectImportList_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectImportList'
-type MockClientCommandsServer_ObjectImportList_Call struct {
- *mock.Call
-}
-
-// ObjectImportList is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectImportListRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectImportList(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectImportList_Call {
- return &MockClientCommandsServer_ObjectImportList_Call{Call: _e.mock.On("ObjectImportList", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectImportList_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectImportListRequest)) *MockClientCommandsServer_ObjectImportList_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectImportListRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImportList_Call) Return(_a0 *pb.RpcObjectImportListResponse) *MockClientCommandsServer_ObjectImportList_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImportList_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectImportListRequest) *pb.RpcObjectImportListResponse) *MockClientCommandsServer_ObjectImportList_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectImportNotionValidateToken provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectImportNotionValidateToken(_a0 context.Context, _a1 *pb.RpcObjectImportNotionValidateTokenRequest) *pb.RpcObjectImportNotionValidateTokenResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectImportNotionValidateToken")
- }
-
- var r0 *pb.RpcObjectImportNotionValidateTokenResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectImportNotionValidateTokenRequest) *pb.RpcObjectImportNotionValidateTokenResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectImportNotionValidateTokenResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectImportNotionValidateToken_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectImportNotionValidateToken'
-type MockClientCommandsServer_ObjectImportNotionValidateToken_Call struct {
- *mock.Call
-}
-
-// ObjectImportNotionValidateToken is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectImportNotionValidateTokenRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectImportNotionValidateToken(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectImportNotionValidateToken_Call {
- return &MockClientCommandsServer_ObjectImportNotionValidateToken_Call{Call: _e.mock.On("ObjectImportNotionValidateToken", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectImportNotionValidateToken_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectImportNotionValidateTokenRequest)) *MockClientCommandsServer_ObjectImportNotionValidateToken_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectImportNotionValidateTokenRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImportNotionValidateToken_Call) Return(_a0 *pb.RpcObjectImportNotionValidateTokenResponse) *MockClientCommandsServer_ObjectImportNotionValidateToken_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImportNotionValidateToken_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectImportNotionValidateTokenRequest) *pb.RpcObjectImportNotionValidateTokenResponse) *MockClientCommandsServer_ObjectImportNotionValidateToken_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectImportUseCase provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectImportUseCase(_a0 context.Context, _a1 *pb.RpcObjectImportUseCaseRequest) *pb.RpcObjectImportUseCaseResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectImportUseCase")
- }
-
- var r0 *pb.RpcObjectImportUseCaseResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectImportUseCaseRequest) *pb.RpcObjectImportUseCaseResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectImportUseCaseResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectImportUseCase_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectImportUseCase'
-type MockClientCommandsServer_ObjectImportUseCase_Call struct {
- *mock.Call
-}
-
-// ObjectImportUseCase is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectImportUseCaseRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectImportUseCase(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectImportUseCase_Call {
- return &MockClientCommandsServer_ObjectImportUseCase_Call{Call: _e.mock.On("ObjectImportUseCase", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectImportUseCase_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectImportUseCaseRequest)) *MockClientCommandsServer_ObjectImportUseCase_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectImportUseCaseRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImportUseCase_Call) Return(_a0 *pb.RpcObjectImportUseCaseResponse) *MockClientCommandsServer_ObjectImportUseCase_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectImportUseCase_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectImportUseCaseRequest) *pb.RpcObjectImportUseCaseResponse) *MockClientCommandsServer_ObjectImportUseCase_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectListDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectListDelete(_a0 context.Context, _a1 *pb.RpcObjectListDeleteRequest) *pb.RpcObjectListDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectListDelete")
- }
-
- var r0 *pb.RpcObjectListDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListDeleteRequest) *pb.RpcObjectListDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectListDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectListDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListDelete'
-type MockClientCommandsServer_ObjectListDelete_Call struct {
- *mock.Call
-}
-
-// ObjectListDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectListDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectListDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectListDelete_Call {
- return &MockClientCommandsServer_ObjectListDelete_Call{Call: _e.mock.On("ObjectListDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectListDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListDeleteRequest)) *MockClientCommandsServer_ObjectListDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectListDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListDelete_Call) Return(_a0 *pb.RpcObjectListDeleteResponse) *MockClientCommandsServer_ObjectListDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListDeleteRequest) *pb.RpcObjectListDeleteResponse) *MockClientCommandsServer_ObjectListDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectListDuplicate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectListDuplicate(_a0 context.Context, _a1 *pb.RpcObjectListDuplicateRequest) *pb.RpcObjectListDuplicateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectListDuplicate")
- }
-
- var r0 *pb.RpcObjectListDuplicateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListDuplicateRequest) *pb.RpcObjectListDuplicateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectListDuplicateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectListDuplicate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListDuplicate'
-type MockClientCommandsServer_ObjectListDuplicate_Call struct {
- *mock.Call
-}
-
-// ObjectListDuplicate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectListDuplicateRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectListDuplicate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectListDuplicate_Call {
- return &MockClientCommandsServer_ObjectListDuplicate_Call{Call: _e.mock.On("ObjectListDuplicate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectListDuplicate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListDuplicateRequest)) *MockClientCommandsServer_ObjectListDuplicate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectListDuplicateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListDuplicate_Call) Return(_a0 *pb.RpcObjectListDuplicateResponse) *MockClientCommandsServer_ObjectListDuplicate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListDuplicate_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListDuplicateRequest) *pb.RpcObjectListDuplicateResponse) *MockClientCommandsServer_ObjectListDuplicate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectListExport provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectListExport(_a0 context.Context, _a1 *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectListExport")
- }
-
- var r0 *pb.RpcObjectListExportResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectListExportResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectListExport_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListExport'
-type MockClientCommandsServer_ObjectListExport_Call struct {
- *mock.Call
-}
-
-// ObjectListExport is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectListExportRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectListExport(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectListExport_Call {
- return &MockClientCommandsServer_ObjectListExport_Call{Call: _e.mock.On("ObjectListExport", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectListExport_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListExportRequest)) *MockClientCommandsServer_ObjectListExport_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectListExportRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListExport_Call) Return(_a0 *pb.RpcObjectListExportResponse) *MockClientCommandsServer_ObjectListExport_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListExport_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse) *MockClientCommandsServer_ObjectListExport_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectListModifyDetailValues provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectListModifyDetailValues(_a0 context.Context, _a1 *pb.RpcObjectListModifyDetailValuesRequest) *pb.RpcObjectListModifyDetailValuesResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectListModifyDetailValues")
- }
-
- var r0 *pb.RpcObjectListModifyDetailValuesResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListModifyDetailValuesRequest) *pb.RpcObjectListModifyDetailValuesResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectListModifyDetailValuesResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectListModifyDetailValues_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListModifyDetailValues'
-type MockClientCommandsServer_ObjectListModifyDetailValues_Call struct {
- *mock.Call
-}
-
-// ObjectListModifyDetailValues is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectListModifyDetailValuesRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectListModifyDetailValues(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectListModifyDetailValues_Call {
- return &MockClientCommandsServer_ObjectListModifyDetailValues_Call{Call: _e.mock.On("ObjectListModifyDetailValues", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectListModifyDetailValues_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListModifyDetailValuesRequest)) *MockClientCommandsServer_ObjectListModifyDetailValues_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectListModifyDetailValuesRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListModifyDetailValues_Call) Return(_a0 *pb.RpcObjectListModifyDetailValuesResponse) *MockClientCommandsServer_ObjectListModifyDetailValues_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListModifyDetailValues_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListModifyDetailValuesRequest) *pb.RpcObjectListModifyDetailValuesResponse) *MockClientCommandsServer_ObjectListModifyDetailValues_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectListSetDetails provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectListSetDetails(_a0 context.Context, _a1 *pb.RpcObjectListSetDetailsRequest) *pb.RpcObjectListSetDetailsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectListSetDetails")
- }
-
- var r0 *pb.RpcObjectListSetDetailsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListSetDetailsRequest) *pb.RpcObjectListSetDetailsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectListSetDetailsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectListSetDetails_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListSetDetails'
-type MockClientCommandsServer_ObjectListSetDetails_Call struct {
- *mock.Call
-}
-
-// ObjectListSetDetails is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectListSetDetailsRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectListSetDetails(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectListSetDetails_Call {
- return &MockClientCommandsServer_ObjectListSetDetails_Call{Call: _e.mock.On("ObjectListSetDetails", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetDetails_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListSetDetailsRequest)) *MockClientCommandsServer_ObjectListSetDetails_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectListSetDetailsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetDetails_Call) Return(_a0 *pb.RpcObjectListSetDetailsResponse) *MockClientCommandsServer_ObjectListSetDetails_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetDetails_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListSetDetailsRequest) *pb.RpcObjectListSetDetailsResponse) *MockClientCommandsServer_ObjectListSetDetails_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectListSetIsArchived provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectListSetIsArchived(_a0 context.Context, _a1 *pb.RpcObjectListSetIsArchivedRequest) *pb.RpcObjectListSetIsArchivedResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectListSetIsArchived")
- }
-
- var r0 *pb.RpcObjectListSetIsArchivedResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListSetIsArchivedRequest) *pb.RpcObjectListSetIsArchivedResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectListSetIsArchivedResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectListSetIsArchived_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListSetIsArchived'
-type MockClientCommandsServer_ObjectListSetIsArchived_Call struct {
- *mock.Call
-}
-
-// ObjectListSetIsArchived is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectListSetIsArchivedRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectListSetIsArchived(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectListSetIsArchived_Call {
- return &MockClientCommandsServer_ObjectListSetIsArchived_Call{Call: _e.mock.On("ObjectListSetIsArchived", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetIsArchived_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListSetIsArchivedRequest)) *MockClientCommandsServer_ObjectListSetIsArchived_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectListSetIsArchivedRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetIsArchived_Call) Return(_a0 *pb.RpcObjectListSetIsArchivedResponse) *MockClientCommandsServer_ObjectListSetIsArchived_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetIsArchived_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListSetIsArchivedRequest) *pb.RpcObjectListSetIsArchivedResponse) *MockClientCommandsServer_ObjectListSetIsArchived_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectListSetIsFavorite provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectListSetIsFavorite(_a0 context.Context, _a1 *pb.RpcObjectListSetIsFavoriteRequest) *pb.RpcObjectListSetIsFavoriteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectListSetIsFavorite")
- }
-
- var r0 *pb.RpcObjectListSetIsFavoriteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListSetIsFavoriteRequest) *pb.RpcObjectListSetIsFavoriteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectListSetIsFavoriteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectListSetIsFavorite_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListSetIsFavorite'
-type MockClientCommandsServer_ObjectListSetIsFavorite_Call struct {
- *mock.Call
-}
-
-// ObjectListSetIsFavorite is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectListSetIsFavoriteRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectListSetIsFavorite(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectListSetIsFavorite_Call {
- return &MockClientCommandsServer_ObjectListSetIsFavorite_Call{Call: _e.mock.On("ObjectListSetIsFavorite", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetIsFavorite_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListSetIsFavoriteRequest)) *MockClientCommandsServer_ObjectListSetIsFavorite_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectListSetIsFavoriteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetIsFavorite_Call) Return(_a0 *pb.RpcObjectListSetIsFavoriteResponse) *MockClientCommandsServer_ObjectListSetIsFavorite_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetIsFavorite_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListSetIsFavoriteRequest) *pb.RpcObjectListSetIsFavoriteResponse) *MockClientCommandsServer_ObjectListSetIsFavorite_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectListSetObjectType provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectListSetObjectType(_a0 context.Context, _a1 *pb.RpcObjectListSetObjectTypeRequest) *pb.RpcObjectListSetObjectTypeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectListSetObjectType")
- }
-
- var r0 *pb.RpcObjectListSetObjectTypeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectListSetObjectTypeRequest) *pb.RpcObjectListSetObjectTypeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectListSetObjectTypeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectListSetObjectType_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectListSetObjectType'
-type MockClientCommandsServer_ObjectListSetObjectType_Call struct {
- *mock.Call
-}
-
-// ObjectListSetObjectType is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectListSetObjectTypeRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectListSetObjectType(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectListSetObjectType_Call {
- return &MockClientCommandsServer_ObjectListSetObjectType_Call{Call: _e.mock.On("ObjectListSetObjectType", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetObjectType_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectListSetObjectTypeRequest)) *MockClientCommandsServer_ObjectListSetObjectType_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectListSetObjectTypeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetObjectType_Call) Return(_a0 *pb.RpcObjectListSetObjectTypeResponse) *MockClientCommandsServer_ObjectListSetObjectType_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectListSetObjectType_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectListSetObjectTypeRequest) *pb.RpcObjectListSetObjectTypeResponse) *MockClientCommandsServer_ObjectListSetObjectType_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectOpen provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectOpen(_a0 context.Context, _a1 *pb.RpcObjectOpenRequest) *pb.RpcObjectOpenResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectOpen")
- }
-
- var r0 *pb.RpcObjectOpenResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectOpenRequest) *pb.RpcObjectOpenResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectOpenResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectOpen_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectOpen'
-type MockClientCommandsServer_ObjectOpen_Call struct {
- *mock.Call
-}
-
-// ObjectOpen is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectOpenRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectOpen(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectOpen_Call {
- return &MockClientCommandsServer_ObjectOpen_Call{Call: _e.mock.On("ObjectOpen", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectOpen_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectOpenRequest)) *MockClientCommandsServer_ObjectOpen_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectOpenRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectOpen_Call) Return(_a0 *pb.RpcObjectOpenResponse) *MockClientCommandsServer_ObjectOpen_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectOpen_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectOpenRequest) *pb.RpcObjectOpenResponse) *MockClientCommandsServer_ObjectOpen_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectRedo provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectRedo(_a0 context.Context, _a1 *pb.RpcObjectRedoRequest) *pb.RpcObjectRedoResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectRedo")
- }
-
- var r0 *pb.RpcObjectRedoResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectRedoRequest) *pb.RpcObjectRedoResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectRedoResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectRedo_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectRedo'
-type MockClientCommandsServer_ObjectRedo_Call struct {
- *mock.Call
-}
-
-// ObjectRedo is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectRedoRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectRedo(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectRedo_Call {
- return &MockClientCommandsServer_ObjectRedo_Call{Call: _e.mock.On("ObjectRedo", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectRedo_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectRedoRequest)) *MockClientCommandsServer_ObjectRedo_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectRedoRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRedo_Call) Return(_a0 *pb.RpcObjectRedoResponse) *MockClientCommandsServer_ObjectRedo_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRedo_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectRedoRequest) *pb.RpcObjectRedoResponse) *MockClientCommandsServer_ObjectRedo_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectRelationAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectRelationAdd(_a0 context.Context, _a1 *pb.RpcObjectRelationAddRequest) *pb.RpcObjectRelationAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectRelationAdd")
- }
-
- var r0 *pb.RpcObjectRelationAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectRelationAddRequest) *pb.RpcObjectRelationAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectRelationAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectRelationAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectRelationAdd'
-type MockClientCommandsServer_ObjectRelationAdd_Call struct {
- *mock.Call
-}
-
-// ObjectRelationAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectRelationAddRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectRelationAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectRelationAdd_Call {
- return &MockClientCommandsServer_ObjectRelationAdd_Call{Call: _e.mock.On("ObjectRelationAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectRelationAddRequest)) *MockClientCommandsServer_ObjectRelationAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectRelationAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationAdd_Call) Return(_a0 *pb.RpcObjectRelationAddResponse) *MockClientCommandsServer_ObjectRelationAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectRelationAddRequest) *pb.RpcObjectRelationAddResponse) *MockClientCommandsServer_ObjectRelationAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectRelationAddFeatured provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectRelationAddFeatured(_a0 context.Context, _a1 *pb.RpcObjectRelationAddFeaturedRequest) *pb.RpcObjectRelationAddFeaturedResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectRelationAddFeatured")
- }
-
- var r0 *pb.RpcObjectRelationAddFeaturedResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectRelationAddFeaturedRequest) *pb.RpcObjectRelationAddFeaturedResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectRelationAddFeaturedResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectRelationAddFeatured_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectRelationAddFeatured'
-type MockClientCommandsServer_ObjectRelationAddFeatured_Call struct {
- *mock.Call
-}
-
-// ObjectRelationAddFeatured is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectRelationAddFeaturedRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectRelationAddFeatured(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectRelationAddFeatured_Call {
- return &MockClientCommandsServer_ObjectRelationAddFeatured_Call{Call: _e.mock.On("ObjectRelationAddFeatured", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationAddFeatured_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectRelationAddFeaturedRequest)) *MockClientCommandsServer_ObjectRelationAddFeatured_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectRelationAddFeaturedRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationAddFeatured_Call) Return(_a0 *pb.RpcObjectRelationAddFeaturedResponse) *MockClientCommandsServer_ObjectRelationAddFeatured_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationAddFeatured_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectRelationAddFeaturedRequest) *pb.RpcObjectRelationAddFeaturedResponse) *MockClientCommandsServer_ObjectRelationAddFeatured_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectRelationDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectRelationDelete(_a0 context.Context, _a1 *pb.RpcObjectRelationDeleteRequest) *pb.RpcObjectRelationDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectRelationDelete")
- }
-
- var r0 *pb.RpcObjectRelationDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectRelationDeleteRequest) *pb.RpcObjectRelationDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectRelationDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectRelationDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectRelationDelete'
-type MockClientCommandsServer_ObjectRelationDelete_Call struct {
- *mock.Call
-}
-
-// ObjectRelationDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectRelationDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectRelationDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectRelationDelete_Call {
- return &MockClientCommandsServer_ObjectRelationDelete_Call{Call: _e.mock.On("ObjectRelationDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectRelationDeleteRequest)) *MockClientCommandsServer_ObjectRelationDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectRelationDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationDelete_Call) Return(_a0 *pb.RpcObjectRelationDeleteResponse) *MockClientCommandsServer_ObjectRelationDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectRelationDeleteRequest) *pb.RpcObjectRelationDeleteResponse) *MockClientCommandsServer_ObjectRelationDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectRelationListAvailable provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectRelationListAvailable(_a0 context.Context, _a1 *pb.RpcObjectRelationListAvailableRequest) *pb.RpcObjectRelationListAvailableResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectRelationListAvailable")
- }
-
- var r0 *pb.RpcObjectRelationListAvailableResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectRelationListAvailableRequest) *pb.RpcObjectRelationListAvailableResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectRelationListAvailableResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectRelationListAvailable_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectRelationListAvailable'
-type MockClientCommandsServer_ObjectRelationListAvailable_Call struct {
- *mock.Call
-}
-
-// ObjectRelationListAvailable is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectRelationListAvailableRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectRelationListAvailable(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectRelationListAvailable_Call {
- return &MockClientCommandsServer_ObjectRelationListAvailable_Call{Call: _e.mock.On("ObjectRelationListAvailable", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationListAvailable_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectRelationListAvailableRequest)) *MockClientCommandsServer_ObjectRelationListAvailable_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectRelationListAvailableRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationListAvailable_Call) Return(_a0 *pb.RpcObjectRelationListAvailableResponse) *MockClientCommandsServer_ObjectRelationListAvailable_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationListAvailable_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectRelationListAvailableRequest) *pb.RpcObjectRelationListAvailableResponse) *MockClientCommandsServer_ObjectRelationListAvailable_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectRelationRemoveFeatured provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectRelationRemoveFeatured(_a0 context.Context, _a1 *pb.RpcObjectRelationRemoveFeaturedRequest) *pb.RpcObjectRelationRemoveFeaturedResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectRelationRemoveFeatured")
- }
-
- var r0 *pb.RpcObjectRelationRemoveFeaturedResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectRelationRemoveFeaturedRequest) *pb.RpcObjectRelationRemoveFeaturedResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectRelationRemoveFeaturedResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectRelationRemoveFeatured_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectRelationRemoveFeatured'
-type MockClientCommandsServer_ObjectRelationRemoveFeatured_Call struct {
- *mock.Call
-}
-
-// ObjectRelationRemoveFeatured is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectRelationRemoveFeaturedRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectRelationRemoveFeatured(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectRelationRemoveFeatured_Call {
- return &MockClientCommandsServer_ObjectRelationRemoveFeatured_Call{Call: _e.mock.On("ObjectRelationRemoveFeatured", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationRemoveFeatured_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectRelationRemoveFeaturedRequest)) *MockClientCommandsServer_ObjectRelationRemoveFeatured_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectRelationRemoveFeaturedRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationRemoveFeatured_Call) Return(_a0 *pb.RpcObjectRelationRemoveFeaturedResponse) *MockClientCommandsServer_ObjectRelationRemoveFeatured_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectRelationRemoveFeatured_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectRelationRemoveFeaturedRequest) *pb.RpcObjectRelationRemoveFeaturedResponse) *MockClientCommandsServer_ObjectRelationRemoveFeatured_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSearch provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSearch(_a0 context.Context, _a1 *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSearch")
- }
-
- var r0 *pb.RpcObjectSearchResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSearchResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSearch_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSearch'
-type MockClientCommandsServer_ObjectSearch_Call struct {
- *mock.Call
-}
-
-// ObjectSearch is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSearchRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSearch(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSearch_Call {
- return &MockClientCommandsServer_ObjectSearch_Call{Call: _e.mock.On("ObjectSearch", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSearch_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSearchRequest)) *MockClientCommandsServer_ObjectSearch_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSearchRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSearch_Call) Return(_a0 *pb.RpcObjectSearchResponse) *MockClientCommandsServer_ObjectSearch_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSearch_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse) *MockClientCommandsServer_ObjectSearch_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSearchSubscribe provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSearchSubscribe(_a0 context.Context, _a1 *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSearchSubscribe")
- }
-
- var r0 *pb.RpcObjectSearchSubscribeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSearchSubscribeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSearchSubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSearchSubscribe'
-type MockClientCommandsServer_ObjectSearchSubscribe_Call struct {
- *mock.Call
-}
-
-// ObjectSearchSubscribe is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSearchSubscribeRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSearchSubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSearchSubscribe_Call {
- return &MockClientCommandsServer_ObjectSearchSubscribe_Call{Call: _e.mock.On("ObjectSearchSubscribe", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchSubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSearchSubscribeRequest)) *MockClientCommandsServer_ObjectSearchSubscribe_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSearchSubscribeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchSubscribe_Call) Return(_a0 *pb.RpcObjectSearchSubscribeResponse) *MockClientCommandsServer_ObjectSearchSubscribe_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchSubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse) *MockClientCommandsServer_ObjectSearchSubscribe_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSearchUnsubscribe provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSearchUnsubscribe(_a0 context.Context, _a1 *pb.RpcObjectSearchUnsubscribeRequest) *pb.RpcObjectSearchUnsubscribeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSearchUnsubscribe")
- }
-
- var r0 *pb.RpcObjectSearchUnsubscribeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSearchUnsubscribeRequest) *pb.RpcObjectSearchUnsubscribeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSearchUnsubscribeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSearchUnsubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSearchUnsubscribe'
-type MockClientCommandsServer_ObjectSearchUnsubscribe_Call struct {
- *mock.Call
-}
-
-// ObjectSearchUnsubscribe is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSearchUnsubscribeRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSearchUnsubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSearchUnsubscribe_Call {
- return &MockClientCommandsServer_ObjectSearchUnsubscribe_Call{Call: _e.mock.On("ObjectSearchUnsubscribe", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchUnsubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSearchUnsubscribeRequest)) *MockClientCommandsServer_ObjectSearchUnsubscribe_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSearchUnsubscribeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchUnsubscribe_Call) Return(_a0 *pb.RpcObjectSearchUnsubscribeResponse) *MockClientCommandsServer_ObjectSearchUnsubscribe_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchUnsubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSearchUnsubscribeRequest) *pb.RpcObjectSearchUnsubscribeResponse) *MockClientCommandsServer_ObjectSearchUnsubscribe_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSearchWithMeta provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSearchWithMeta(_a0 context.Context, _a1 *pb.RpcObjectSearchWithMetaRequest) *pb.RpcObjectSearchWithMetaResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSearchWithMeta")
- }
-
- var r0 *pb.RpcObjectSearchWithMetaResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSearchWithMetaRequest) *pb.RpcObjectSearchWithMetaResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSearchWithMetaResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSearchWithMeta_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSearchWithMeta'
-type MockClientCommandsServer_ObjectSearchWithMeta_Call struct {
- *mock.Call
-}
-
-// ObjectSearchWithMeta is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSearchWithMetaRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSearchWithMeta(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSearchWithMeta_Call {
- return &MockClientCommandsServer_ObjectSearchWithMeta_Call{Call: _e.mock.On("ObjectSearchWithMeta", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchWithMeta_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSearchWithMetaRequest)) *MockClientCommandsServer_ObjectSearchWithMeta_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSearchWithMetaRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchWithMeta_Call) Return(_a0 *pb.RpcObjectSearchWithMetaResponse) *MockClientCommandsServer_ObjectSearchWithMeta_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSearchWithMeta_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSearchWithMetaRequest) *pb.RpcObjectSearchWithMetaResponse) *MockClientCommandsServer_ObjectSearchWithMeta_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSetDetails provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSetDetails(_a0 context.Context, _a1 *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSetDetails")
- }
-
- var r0 *pb.RpcObjectSetDetailsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSetDetailsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSetDetails_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetDetails'
-type MockClientCommandsServer_ObjectSetDetails_Call struct {
- *mock.Call
-}
-
-// ObjectSetDetails is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSetDetailsRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSetDetails(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSetDetails_Call {
- return &MockClientCommandsServer_ObjectSetDetails_Call{Call: _e.mock.On("ObjectSetDetails", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSetDetails_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetDetailsRequest)) *MockClientCommandsServer_ObjectSetDetails_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSetDetailsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetDetails_Call) Return(_a0 *pb.RpcObjectSetDetailsResponse) *MockClientCommandsServer_ObjectSetDetails_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetDetails_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse) *MockClientCommandsServer_ObjectSetDetails_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSetInternalFlags provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSetInternalFlags(_a0 context.Context, _a1 *pb.RpcObjectSetInternalFlagsRequest) *pb.RpcObjectSetInternalFlagsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSetInternalFlags")
- }
-
- var r0 *pb.RpcObjectSetInternalFlagsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetInternalFlagsRequest) *pb.RpcObjectSetInternalFlagsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSetInternalFlagsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSetInternalFlags_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetInternalFlags'
-type MockClientCommandsServer_ObjectSetInternalFlags_Call struct {
- *mock.Call
-}
-
-// ObjectSetInternalFlags is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSetInternalFlagsRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSetInternalFlags(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSetInternalFlags_Call {
- return &MockClientCommandsServer_ObjectSetInternalFlags_Call{Call: _e.mock.On("ObjectSetInternalFlags", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSetInternalFlags_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetInternalFlagsRequest)) *MockClientCommandsServer_ObjectSetInternalFlags_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSetInternalFlagsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetInternalFlags_Call) Return(_a0 *pb.RpcObjectSetInternalFlagsResponse) *MockClientCommandsServer_ObjectSetInternalFlags_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetInternalFlags_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetInternalFlagsRequest) *pb.RpcObjectSetInternalFlagsResponse) *MockClientCommandsServer_ObjectSetInternalFlags_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSetIsArchived provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSetIsArchived(_a0 context.Context, _a1 *pb.RpcObjectSetIsArchivedRequest) *pb.RpcObjectSetIsArchivedResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSetIsArchived")
- }
-
- var r0 *pb.RpcObjectSetIsArchivedResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetIsArchivedRequest) *pb.RpcObjectSetIsArchivedResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSetIsArchivedResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSetIsArchived_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetIsArchived'
-type MockClientCommandsServer_ObjectSetIsArchived_Call struct {
- *mock.Call
-}
-
-// ObjectSetIsArchived is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSetIsArchivedRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSetIsArchived(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSetIsArchived_Call {
- return &MockClientCommandsServer_ObjectSetIsArchived_Call{Call: _e.mock.On("ObjectSetIsArchived", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSetIsArchived_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetIsArchivedRequest)) *MockClientCommandsServer_ObjectSetIsArchived_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSetIsArchivedRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetIsArchived_Call) Return(_a0 *pb.RpcObjectSetIsArchivedResponse) *MockClientCommandsServer_ObjectSetIsArchived_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetIsArchived_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetIsArchivedRequest) *pb.RpcObjectSetIsArchivedResponse) *MockClientCommandsServer_ObjectSetIsArchived_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSetIsFavorite provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSetIsFavorite(_a0 context.Context, _a1 *pb.RpcObjectSetIsFavoriteRequest) *pb.RpcObjectSetIsFavoriteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSetIsFavorite")
- }
-
- var r0 *pb.RpcObjectSetIsFavoriteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetIsFavoriteRequest) *pb.RpcObjectSetIsFavoriteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSetIsFavoriteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSetIsFavorite_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetIsFavorite'
-type MockClientCommandsServer_ObjectSetIsFavorite_Call struct {
- *mock.Call
-}
-
-// ObjectSetIsFavorite is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSetIsFavoriteRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSetIsFavorite(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSetIsFavorite_Call {
- return &MockClientCommandsServer_ObjectSetIsFavorite_Call{Call: _e.mock.On("ObjectSetIsFavorite", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSetIsFavorite_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetIsFavoriteRequest)) *MockClientCommandsServer_ObjectSetIsFavorite_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSetIsFavoriteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetIsFavorite_Call) Return(_a0 *pb.RpcObjectSetIsFavoriteResponse) *MockClientCommandsServer_ObjectSetIsFavorite_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetIsFavorite_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetIsFavoriteRequest) *pb.RpcObjectSetIsFavoriteResponse) *MockClientCommandsServer_ObjectSetIsFavorite_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSetLayout provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSetLayout(_a0 context.Context, _a1 *pb.RpcObjectSetLayoutRequest) *pb.RpcObjectSetLayoutResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSetLayout")
- }
-
- var r0 *pb.RpcObjectSetLayoutResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetLayoutRequest) *pb.RpcObjectSetLayoutResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSetLayoutResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSetLayout_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetLayout'
-type MockClientCommandsServer_ObjectSetLayout_Call struct {
- *mock.Call
-}
-
-// ObjectSetLayout is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSetLayoutRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSetLayout(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSetLayout_Call {
- return &MockClientCommandsServer_ObjectSetLayout_Call{Call: _e.mock.On("ObjectSetLayout", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSetLayout_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetLayoutRequest)) *MockClientCommandsServer_ObjectSetLayout_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSetLayoutRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetLayout_Call) Return(_a0 *pb.RpcObjectSetLayoutResponse) *MockClientCommandsServer_ObjectSetLayout_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetLayout_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetLayoutRequest) *pb.RpcObjectSetLayoutResponse) *MockClientCommandsServer_ObjectSetLayout_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSetObjectType provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSetObjectType(_a0 context.Context, _a1 *pb.RpcObjectSetObjectTypeRequest) *pb.RpcObjectSetObjectTypeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSetObjectType")
- }
-
- var r0 *pb.RpcObjectSetObjectTypeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetObjectTypeRequest) *pb.RpcObjectSetObjectTypeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSetObjectTypeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSetObjectType_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetObjectType'
-type MockClientCommandsServer_ObjectSetObjectType_Call struct {
- *mock.Call
-}
-
-// ObjectSetObjectType is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSetObjectTypeRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSetObjectType(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSetObjectType_Call {
- return &MockClientCommandsServer_ObjectSetObjectType_Call{Call: _e.mock.On("ObjectSetObjectType", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSetObjectType_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetObjectTypeRequest)) *MockClientCommandsServer_ObjectSetObjectType_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSetObjectTypeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetObjectType_Call) Return(_a0 *pb.RpcObjectSetObjectTypeResponse) *MockClientCommandsServer_ObjectSetObjectType_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetObjectType_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetObjectTypeRequest) *pb.RpcObjectSetObjectTypeResponse) *MockClientCommandsServer_ObjectSetObjectType_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSetSource provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSetSource(_a0 context.Context, _a1 *pb.RpcObjectSetSourceRequest) *pb.RpcObjectSetSourceResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSetSource")
- }
-
- var r0 *pb.RpcObjectSetSourceResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSetSourceRequest) *pb.RpcObjectSetSourceResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSetSourceResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSetSource_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSetSource'
-type MockClientCommandsServer_ObjectSetSource_Call struct {
- *mock.Call
-}
-
-// ObjectSetSource is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSetSourceRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSetSource(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSetSource_Call {
- return &MockClientCommandsServer_ObjectSetSource_Call{Call: _e.mock.On("ObjectSetSource", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSetSource_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSetSourceRequest)) *MockClientCommandsServer_ObjectSetSource_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSetSourceRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetSource_Call) Return(_a0 *pb.RpcObjectSetSourceResponse) *MockClientCommandsServer_ObjectSetSource_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSetSource_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSetSourceRequest) *pb.RpcObjectSetSourceResponse) *MockClientCommandsServer_ObjectSetSource_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectShareByLink provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectShareByLink(_a0 context.Context, _a1 *pb.RpcObjectShareByLinkRequest) *pb.RpcObjectShareByLinkResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectShareByLink")
- }
-
- var r0 *pb.RpcObjectShareByLinkResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectShareByLinkRequest) *pb.RpcObjectShareByLinkResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectShareByLinkResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectShareByLink_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectShareByLink'
-type MockClientCommandsServer_ObjectShareByLink_Call struct {
- *mock.Call
-}
-
-// ObjectShareByLink is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectShareByLinkRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectShareByLink(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectShareByLink_Call {
- return &MockClientCommandsServer_ObjectShareByLink_Call{Call: _e.mock.On("ObjectShareByLink", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectShareByLink_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectShareByLinkRequest)) *MockClientCommandsServer_ObjectShareByLink_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectShareByLinkRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectShareByLink_Call) Return(_a0 *pb.RpcObjectShareByLinkResponse) *MockClientCommandsServer_ObjectShareByLink_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectShareByLink_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectShareByLinkRequest) *pb.RpcObjectShareByLinkResponse) *MockClientCommandsServer_ObjectShareByLink_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectShow provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectShow(_a0 context.Context, _a1 *pb.RpcObjectShowRequest) *pb.RpcObjectShowResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectShow")
- }
-
- var r0 *pb.RpcObjectShowResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectShowRequest) *pb.RpcObjectShowResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectShowResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectShow_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectShow'
-type MockClientCommandsServer_ObjectShow_Call struct {
- *mock.Call
-}
-
-// ObjectShow is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectShowRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectShow(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectShow_Call {
- return &MockClientCommandsServer_ObjectShow_Call{Call: _e.mock.On("ObjectShow", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectShow_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectShowRequest)) *MockClientCommandsServer_ObjectShow_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectShowRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectShow_Call) Return(_a0 *pb.RpcObjectShowResponse) *MockClientCommandsServer_ObjectShow_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectShow_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectShowRequest) *pb.RpcObjectShowResponse) *MockClientCommandsServer_ObjectShow_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectSubscribeIds provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectSubscribeIds(_a0 context.Context, _a1 *pb.RpcObjectSubscribeIdsRequest) *pb.RpcObjectSubscribeIdsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectSubscribeIds")
- }
-
- var r0 *pb.RpcObjectSubscribeIdsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectSubscribeIdsRequest) *pb.RpcObjectSubscribeIdsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectSubscribeIdsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectSubscribeIds_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectSubscribeIds'
-type MockClientCommandsServer_ObjectSubscribeIds_Call struct {
- *mock.Call
-}
-
-// ObjectSubscribeIds is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectSubscribeIdsRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectSubscribeIds(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectSubscribeIds_Call {
- return &MockClientCommandsServer_ObjectSubscribeIds_Call{Call: _e.mock.On("ObjectSubscribeIds", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectSubscribeIds_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectSubscribeIdsRequest)) *MockClientCommandsServer_ObjectSubscribeIds_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectSubscribeIdsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSubscribeIds_Call) Return(_a0 *pb.RpcObjectSubscribeIdsResponse) *MockClientCommandsServer_ObjectSubscribeIds_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectSubscribeIds_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectSubscribeIdsRequest) *pb.RpcObjectSubscribeIdsResponse) *MockClientCommandsServer_ObjectSubscribeIds_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectToBookmark provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectToBookmark(_a0 context.Context, _a1 *pb.RpcObjectToBookmarkRequest) *pb.RpcObjectToBookmarkResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectToBookmark")
- }
-
- var r0 *pb.RpcObjectToBookmarkResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectToBookmarkRequest) *pb.RpcObjectToBookmarkResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectToBookmarkResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectToBookmark_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectToBookmark'
-type MockClientCommandsServer_ObjectToBookmark_Call struct {
- *mock.Call
-}
-
-// ObjectToBookmark is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectToBookmarkRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectToBookmark(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectToBookmark_Call {
- return &MockClientCommandsServer_ObjectToBookmark_Call{Call: _e.mock.On("ObjectToBookmark", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectToBookmark_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectToBookmarkRequest)) *MockClientCommandsServer_ObjectToBookmark_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectToBookmarkRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectToBookmark_Call) Return(_a0 *pb.RpcObjectToBookmarkResponse) *MockClientCommandsServer_ObjectToBookmark_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectToBookmark_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectToBookmarkRequest) *pb.RpcObjectToBookmarkResponse) *MockClientCommandsServer_ObjectToBookmark_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectToCollection provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectToCollection(_a0 context.Context, _a1 *pb.RpcObjectToCollectionRequest) *pb.RpcObjectToCollectionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectToCollection")
- }
-
- var r0 *pb.RpcObjectToCollectionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectToCollectionRequest) *pb.RpcObjectToCollectionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectToCollectionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectToCollection_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectToCollection'
-type MockClientCommandsServer_ObjectToCollection_Call struct {
- *mock.Call
-}
-
-// ObjectToCollection is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectToCollectionRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectToCollection(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectToCollection_Call {
- return &MockClientCommandsServer_ObjectToCollection_Call{Call: _e.mock.On("ObjectToCollection", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectToCollection_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectToCollectionRequest)) *MockClientCommandsServer_ObjectToCollection_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectToCollectionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectToCollection_Call) Return(_a0 *pb.RpcObjectToCollectionResponse) *MockClientCommandsServer_ObjectToCollection_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectToCollection_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectToCollectionRequest) *pb.RpcObjectToCollectionResponse) *MockClientCommandsServer_ObjectToCollection_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectToSet provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectToSet(_a0 context.Context, _a1 *pb.RpcObjectToSetRequest) *pb.RpcObjectToSetResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectToSet")
- }
-
- var r0 *pb.RpcObjectToSetResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectToSetRequest) *pb.RpcObjectToSetResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectToSetResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectToSet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectToSet'
-type MockClientCommandsServer_ObjectToSet_Call struct {
- *mock.Call
-}
-
-// ObjectToSet is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectToSetRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectToSet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectToSet_Call {
- return &MockClientCommandsServer_ObjectToSet_Call{Call: _e.mock.On("ObjectToSet", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectToSet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectToSetRequest)) *MockClientCommandsServer_ObjectToSet_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectToSetRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectToSet_Call) Return(_a0 *pb.RpcObjectToSetResponse) *MockClientCommandsServer_ObjectToSet_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectToSet_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectToSetRequest) *pb.RpcObjectToSetResponse) *MockClientCommandsServer_ObjectToSet_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectTypeListConflictingRelations provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectTypeListConflictingRelations(_a0 context.Context, _a1 *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectTypeListConflictingRelations")
- }
-
- var r0 *pb.RpcObjectTypeListConflictingRelationsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectTypeListConflictingRelationsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectTypeListConflictingRelations_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeListConflictingRelations'
-type MockClientCommandsServer_ObjectTypeListConflictingRelations_Call struct {
- *mock.Call
-}
-
-// ObjectTypeListConflictingRelations is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectTypeListConflictingRelationsRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectTypeListConflictingRelations(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call {
- return &MockClientCommandsServer_ObjectTypeListConflictingRelations_Call{Call: _e.mock.On("ObjectTypeListConflictingRelations", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectTypeListConflictingRelationsRequest)) *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectTypeListConflictingRelationsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call) Return(_a0 *pb.RpcObjectTypeListConflictingRelationsResponse) *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectTypeListConflictingRelationsRequest) *pb.RpcObjectTypeListConflictingRelationsResponse) *MockClientCommandsServer_ObjectTypeListConflictingRelations_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectTypeRecommendedFeaturedRelationsSet provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectTypeRecommendedFeaturedRelationsSet(_a0 context.Context, _a1 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectTypeRecommendedFeaturedRelationsSet")
- }
-
- var r0 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeRecommendedFeaturedRelationsSet'
-type MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call struct {
- *mock.Call
-}
-
-// ObjectTypeRecommendedFeaturedRelationsSet is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectTypeRecommendedFeaturedRelationsSet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call {
- return &MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call{Call: _e.mock.On("ObjectTypeRecommendedFeaturedRelationsSet", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest)) *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call) Return(_a0 *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectTypeRecommendedFeaturedRelationsSetRequest) *pb.RpcObjectTypeRecommendedFeaturedRelationsSetResponse) *MockClientCommandsServer_ObjectTypeRecommendedFeaturedRelationsSet_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectTypeRecommendedRelationsSet provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectTypeRecommendedRelationsSet(_a0 context.Context, _a1 *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectTypeRecommendedRelationsSet")
- }
-
- var r0 *pb.RpcObjectTypeRecommendedRelationsSetResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectTypeRecommendedRelationsSetResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeRecommendedRelationsSet'
-type MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call struct {
- *mock.Call
-}
-
-// ObjectTypeRecommendedRelationsSet is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectTypeRecommendedRelationsSetRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectTypeRecommendedRelationsSet(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call {
- return &MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call{Call: _e.mock.On("ObjectTypeRecommendedRelationsSet", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectTypeRecommendedRelationsSetRequest)) *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectTypeRecommendedRelationsSetRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call) Return(_a0 *pb.RpcObjectTypeRecommendedRelationsSetResponse) *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectTypeRecommendedRelationsSetRequest) *pb.RpcObjectTypeRecommendedRelationsSetResponse) *MockClientCommandsServer_ObjectTypeRecommendedRelationsSet_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectTypeRelationAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectTypeRelationAdd(_a0 context.Context, _a1 *pb.RpcObjectTypeRelationAddRequest) *pb.RpcObjectTypeRelationAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectTypeRelationAdd")
- }
-
- var r0 *pb.RpcObjectTypeRelationAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectTypeRelationAddRequest) *pb.RpcObjectTypeRelationAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectTypeRelationAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectTypeRelationAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeRelationAdd'
-type MockClientCommandsServer_ObjectTypeRelationAdd_Call struct {
- *mock.Call
-}
-
-// ObjectTypeRelationAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectTypeRelationAddRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectTypeRelationAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectTypeRelationAdd_Call {
- return &MockClientCommandsServer_ObjectTypeRelationAdd_Call{Call: _e.mock.On("ObjectTypeRelationAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRelationAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectTypeRelationAddRequest)) *MockClientCommandsServer_ObjectTypeRelationAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectTypeRelationAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRelationAdd_Call) Return(_a0 *pb.RpcObjectTypeRelationAddResponse) *MockClientCommandsServer_ObjectTypeRelationAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRelationAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectTypeRelationAddRequest) *pb.RpcObjectTypeRelationAddResponse) *MockClientCommandsServer_ObjectTypeRelationAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectTypeRelationRemove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectTypeRelationRemove(_a0 context.Context, _a1 *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectTypeRelationRemove")
- }
-
- var r0 *pb.RpcObjectTypeRelationRemoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectTypeRelationRemoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectTypeRelationRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectTypeRelationRemove'
-type MockClientCommandsServer_ObjectTypeRelationRemove_Call struct {
- *mock.Call
-}
-
-// ObjectTypeRelationRemove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectTypeRelationRemoveRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectTypeRelationRemove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectTypeRelationRemove_Call {
- return &MockClientCommandsServer_ObjectTypeRelationRemove_Call{Call: _e.mock.On("ObjectTypeRelationRemove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRelationRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectTypeRelationRemoveRequest)) *MockClientCommandsServer_ObjectTypeRelationRemove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectTypeRelationRemoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRelationRemove_Call) Return(_a0 *pb.RpcObjectTypeRelationRemoveResponse) *MockClientCommandsServer_ObjectTypeRelationRemove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectTypeRelationRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectTypeRelationRemoveRequest) *pb.RpcObjectTypeRelationRemoveResponse) *MockClientCommandsServer_ObjectTypeRelationRemove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectUndo provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectUndo(_a0 context.Context, _a1 *pb.RpcObjectUndoRequest) *pb.RpcObjectUndoResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectUndo")
- }
-
- var r0 *pb.RpcObjectUndoResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectUndoRequest) *pb.RpcObjectUndoResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectUndoResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectUndo_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectUndo'
-type MockClientCommandsServer_ObjectUndo_Call struct {
- *mock.Call
-}
-
-// ObjectUndo is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectUndoRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectUndo(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectUndo_Call {
- return &MockClientCommandsServer_ObjectUndo_Call{Call: _e.mock.On("ObjectUndo", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectUndo_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectUndoRequest)) *MockClientCommandsServer_ObjectUndo_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectUndoRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectUndo_Call) Return(_a0 *pb.RpcObjectUndoResponse) *MockClientCommandsServer_ObjectUndo_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectUndo_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectUndoRequest) *pb.RpcObjectUndoResponse) *MockClientCommandsServer_ObjectUndo_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ObjectWorkspaceSetDashboard provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ObjectWorkspaceSetDashboard(_a0 context.Context, _a1 *pb.RpcObjectWorkspaceSetDashboardRequest) *pb.RpcObjectWorkspaceSetDashboardResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ObjectWorkspaceSetDashboard")
- }
-
- var r0 *pb.RpcObjectWorkspaceSetDashboardResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcObjectWorkspaceSetDashboardRequest) *pb.RpcObjectWorkspaceSetDashboardResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcObjectWorkspaceSetDashboardResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ObjectWorkspaceSetDashboard'
-type MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call struct {
- *mock.Call
-}
-
-// ObjectWorkspaceSetDashboard is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcObjectWorkspaceSetDashboardRequest
-func (_e *MockClientCommandsServer_Expecter) ObjectWorkspaceSetDashboard(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call {
- return &MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call{Call: _e.mock.On("ObjectWorkspaceSetDashboard", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcObjectWorkspaceSetDashboardRequest)) *MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcObjectWorkspaceSetDashboardRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call) Return(_a0 *pb.RpcObjectWorkspaceSetDashboardResponse) *MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call) RunAndReturn(run func(context.Context, *pb.RpcObjectWorkspaceSetDashboardRequest) *pb.RpcObjectWorkspaceSetDashboardResponse) *MockClientCommandsServer_ObjectWorkspaceSetDashboard_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ProcessCancel provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ProcessCancel(_a0 context.Context, _a1 *pb.RpcProcessCancelRequest) *pb.RpcProcessCancelResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ProcessCancel")
- }
-
- var r0 *pb.RpcProcessCancelResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcProcessCancelRequest) *pb.RpcProcessCancelResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcProcessCancelResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ProcessCancel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ProcessCancel'
-type MockClientCommandsServer_ProcessCancel_Call struct {
- *mock.Call
-}
-
-// ProcessCancel is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcProcessCancelRequest
-func (_e *MockClientCommandsServer_Expecter) ProcessCancel(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ProcessCancel_Call {
- return &MockClientCommandsServer_ProcessCancel_Call{Call: _e.mock.On("ProcessCancel", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ProcessCancel_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcProcessCancelRequest)) *MockClientCommandsServer_ProcessCancel_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcProcessCancelRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ProcessCancel_Call) Return(_a0 *pb.RpcProcessCancelResponse) *MockClientCommandsServer_ProcessCancel_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ProcessCancel_Call) RunAndReturn(run func(context.Context, *pb.RpcProcessCancelRequest) *pb.RpcProcessCancelResponse) *MockClientCommandsServer_ProcessCancel_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ProcessSubscribe provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ProcessSubscribe(_a0 context.Context, _a1 *pb.RpcProcessSubscribeRequest) *pb.RpcProcessSubscribeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ProcessSubscribe")
- }
-
- var r0 *pb.RpcProcessSubscribeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcProcessSubscribeRequest) *pb.RpcProcessSubscribeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcProcessSubscribeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ProcessSubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ProcessSubscribe'
-type MockClientCommandsServer_ProcessSubscribe_Call struct {
- *mock.Call
-}
-
-// ProcessSubscribe is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcProcessSubscribeRequest
-func (_e *MockClientCommandsServer_Expecter) ProcessSubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ProcessSubscribe_Call {
- return &MockClientCommandsServer_ProcessSubscribe_Call{Call: _e.mock.On("ProcessSubscribe", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ProcessSubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcProcessSubscribeRequest)) *MockClientCommandsServer_ProcessSubscribe_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcProcessSubscribeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ProcessSubscribe_Call) Return(_a0 *pb.RpcProcessSubscribeResponse) *MockClientCommandsServer_ProcessSubscribe_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ProcessSubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcProcessSubscribeRequest) *pb.RpcProcessSubscribeResponse) *MockClientCommandsServer_ProcessSubscribe_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// ProcessUnsubscribe provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) ProcessUnsubscribe(_a0 context.Context, _a1 *pb.RpcProcessUnsubscribeRequest) *pb.RpcProcessUnsubscribeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for ProcessUnsubscribe")
- }
-
- var r0 *pb.RpcProcessUnsubscribeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcProcessUnsubscribeRequest) *pb.RpcProcessUnsubscribeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcProcessUnsubscribeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_ProcessUnsubscribe_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ProcessUnsubscribe'
-type MockClientCommandsServer_ProcessUnsubscribe_Call struct {
- *mock.Call
-}
-
-// ProcessUnsubscribe is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcProcessUnsubscribeRequest
-func (_e *MockClientCommandsServer_Expecter) ProcessUnsubscribe(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_ProcessUnsubscribe_Call {
- return &MockClientCommandsServer_ProcessUnsubscribe_Call{Call: _e.mock.On("ProcessUnsubscribe", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_ProcessUnsubscribe_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcProcessUnsubscribeRequest)) *MockClientCommandsServer_ProcessUnsubscribe_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcProcessUnsubscribeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_ProcessUnsubscribe_Call) Return(_a0 *pb.RpcProcessUnsubscribeResponse) *MockClientCommandsServer_ProcessUnsubscribe_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_ProcessUnsubscribe_Call) RunAndReturn(run func(context.Context, *pb.RpcProcessUnsubscribeRequest) *pb.RpcProcessUnsubscribeResponse) *MockClientCommandsServer_ProcessUnsubscribe_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// PublishingCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) PublishingCreate(_a0 context.Context, _a1 *pb.RpcPublishingCreateRequest) *pb.RpcPublishingCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for PublishingCreate")
- }
-
- var r0 *pb.RpcPublishingCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcPublishingCreateRequest) *pb.RpcPublishingCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcPublishingCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_PublishingCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PublishingCreate'
-type MockClientCommandsServer_PublishingCreate_Call struct {
- *mock.Call
-}
-
-// PublishingCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcPublishingCreateRequest
-func (_e *MockClientCommandsServer_Expecter) PublishingCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_PublishingCreate_Call {
- return &MockClientCommandsServer_PublishingCreate_Call{Call: _e.mock.On("PublishingCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_PublishingCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcPublishingCreateRequest)) *MockClientCommandsServer_PublishingCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcPublishingCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingCreate_Call) Return(_a0 *pb.RpcPublishingCreateResponse) *MockClientCommandsServer_PublishingCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcPublishingCreateRequest) *pb.RpcPublishingCreateResponse) *MockClientCommandsServer_PublishingCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// PublishingGetStatus provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) PublishingGetStatus(_a0 context.Context, _a1 *pb.RpcPublishingGetStatusRequest) *pb.RpcPublishingGetStatusResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for PublishingGetStatus")
- }
-
- var r0 *pb.RpcPublishingGetStatusResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcPublishingGetStatusRequest) *pb.RpcPublishingGetStatusResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcPublishingGetStatusResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_PublishingGetStatus_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PublishingGetStatus'
-type MockClientCommandsServer_PublishingGetStatus_Call struct {
- *mock.Call
-}
-
-// PublishingGetStatus is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcPublishingGetStatusRequest
-func (_e *MockClientCommandsServer_Expecter) PublishingGetStatus(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_PublishingGetStatus_Call {
- return &MockClientCommandsServer_PublishingGetStatus_Call{Call: _e.mock.On("PublishingGetStatus", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_PublishingGetStatus_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcPublishingGetStatusRequest)) *MockClientCommandsServer_PublishingGetStatus_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcPublishingGetStatusRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingGetStatus_Call) Return(_a0 *pb.RpcPublishingGetStatusResponse) *MockClientCommandsServer_PublishingGetStatus_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingGetStatus_Call) RunAndReturn(run func(context.Context, *pb.RpcPublishingGetStatusRequest) *pb.RpcPublishingGetStatusResponse) *MockClientCommandsServer_PublishingGetStatus_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// PublishingList provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) PublishingList(_a0 context.Context, _a1 *pb.RpcPublishingListRequest) *pb.RpcPublishingListResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for PublishingList")
- }
-
- var r0 *pb.RpcPublishingListResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcPublishingListRequest) *pb.RpcPublishingListResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcPublishingListResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_PublishingList_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PublishingList'
-type MockClientCommandsServer_PublishingList_Call struct {
- *mock.Call
-}
-
-// PublishingList is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcPublishingListRequest
-func (_e *MockClientCommandsServer_Expecter) PublishingList(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_PublishingList_Call {
- return &MockClientCommandsServer_PublishingList_Call{Call: _e.mock.On("PublishingList", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_PublishingList_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcPublishingListRequest)) *MockClientCommandsServer_PublishingList_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcPublishingListRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingList_Call) Return(_a0 *pb.RpcPublishingListResponse) *MockClientCommandsServer_PublishingList_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingList_Call) RunAndReturn(run func(context.Context, *pb.RpcPublishingListRequest) *pb.RpcPublishingListResponse) *MockClientCommandsServer_PublishingList_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// PublishingRemove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) PublishingRemove(_a0 context.Context, _a1 *pb.RpcPublishingRemoveRequest) *pb.RpcPublishingRemoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for PublishingRemove")
- }
-
- var r0 *pb.RpcPublishingRemoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcPublishingRemoveRequest) *pb.RpcPublishingRemoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcPublishingRemoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_PublishingRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PublishingRemove'
-type MockClientCommandsServer_PublishingRemove_Call struct {
- *mock.Call
-}
-
-// PublishingRemove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcPublishingRemoveRequest
-func (_e *MockClientCommandsServer_Expecter) PublishingRemove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_PublishingRemove_Call {
- return &MockClientCommandsServer_PublishingRemove_Call{Call: _e.mock.On("PublishingRemove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_PublishingRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcPublishingRemoveRequest)) *MockClientCommandsServer_PublishingRemove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcPublishingRemoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingRemove_Call) Return(_a0 *pb.RpcPublishingRemoveResponse) *MockClientCommandsServer_PublishingRemove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcPublishingRemoveRequest) *pb.RpcPublishingRemoveResponse) *MockClientCommandsServer_PublishingRemove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// PublishingResolveUri provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) PublishingResolveUri(_a0 context.Context, _a1 *pb.RpcPublishingResolveUriRequest) *pb.RpcPublishingResolveUriResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for PublishingResolveUri")
- }
-
- var r0 *pb.RpcPublishingResolveUriResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcPublishingResolveUriRequest) *pb.RpcPublishingResolveUriResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcPublishingResolveUriResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_PublishingResolveUri_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'PublishingResolveUri'
-type MockClientCommandsServer_PublishingResolveUri_Call struct {
- *mock.Call
-}
-
-// PublishingResolveUri is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcPublishingResolveUriRequest
-func (_e *MockClientCommandsServer_Expecter) PublishingResolveUri(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_PublishingResolveUri_Call {
- return &MockClientCommandsServer_PublishingResolveUri_Call{Call: _e.mock.On("PublishingResolveUri", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_PublishingResolveUri_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcPublishingResolveUriRequest)) *MockClientCommandsServer_PublishingResolveUri_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcPublishingResolveUriRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingResolveUri_Call) Return(_a0 *pb.RpcPublishingResolveUriResponse) *MockClientCommandsServer_PublishingResolveUri_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_PublishingResolveUri_Call) RunAndReturn(run func(context.Context, *pb.RpcPublishingResolveUriRequest) *pb.RpcPublishingResolveUriResponse) *MockClientCommandsServer_PublishingResolveUri_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// RelationListRemoveOption provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) RelationListRemoveOption(_a0 context.Context, _a1 *pb.RpcRelationListRemoveOptionRequest) *pb.RpcRelationListRemoveOptionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for RelationListRemoveOption")
- }
-
- var r0 *pb.RpcRelationListRemoveOptionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcRelationListRemoveOptionRequest) *pb.RpcRelationListRemoveOptionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcRelationListRemoveOptionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_RelationListRemoveOption_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RelationListRemoveOption'
-type MockClientCommandsServer_RelationListRemoveOption_Call struct {
- *mock.Call
-}
-
-// RelationListRemoveOption is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcRelationListRemoveOptionRequest
-func (_e *MockClientCommandsServer_Expecter) RelationListRemoveOption(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_RelationListRemoveOption_Call {
- return &MockClientCommandsServer_RelationListRemoveOption_Call{Call: _e.mock.On("RelationListRemoveOption", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_RelationListRemoveOption_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcRelationListRemoveOptionRequest)) *MockClientCommandsServer_RelationListRemoveOption_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcRelationListRemoveOptionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_RelationListRemoveOption_Call) Return(_a0 *pb.RpcRelationListRemoveOptionResponse) *MockClientCommandsServer_RelationListRemoveOption_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_RelationListRemoveOption_Call) RunAndReturn(run func(context.Context, *pb.RpcRelationListRemoveOptionRequest) *pb.RpcRelationListRemoveOptionResponse) *MockClientCommandsServer_RelationListRemoveOption_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// RelationListWithValue provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) RelationListWithValue(_a0 context.Context, _a1 *pb.RpcRelationListWithValueRequest) *pb.RpcRelationListWithValueResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for RelationListWithValue")
- }
-
- var r0 *pb.RpcRelationListWithValueResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcRelationListWithValueRequest) *pb.RpcRelationListWithValueResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcRelationListWithValueResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_RelationListWithValue_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RelationListWithValue'
-type MockClientCommandsServer_RelationListWithValue_Call struct {
- *mock.Call
-}
-
-// RelationListWithValue is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcRelationListWithValueRequest
-func (_e *MockClientCommandsServer_Expecter) RelationListWithValue(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_RelationListWithValue_Call {
- return &MockClientCommandsServer_RelationListWithValue_Call{Call: _e.mock.On("RelationListWithValue", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_RelationListWithValue_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcRelationListWithValueRequest)) *MockClientCommandsServer_RelationListWithValue_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcRelationListWithValueRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_RelationListWithValue_Call) Return(_a0 *pb.RpcRelationListWithValueResponse) *MockClientCommandsServer_RelationListWithValue_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_RelationListWithValue_Call) RunAndReturn(run func(context.Context, *pb.RpcRelationListWithValueRequest) *pb.RpcRelationListWithValueResponse) *MockClientCommandsServer_RelationListWithValue_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// RelationOptions provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) RelationOptions(_a0 context.Context, _a1 *pb.RpcRelationOptionsRequest) *pb.RpcRelationOptionsResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for RelationOptions")
- }
-
- var r0 *pb.RpcRelationOptionsResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcRelationOptionsRequest) *pb.RpcRelationOptionsResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcRelationOptionsResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_RelationOptions_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RelationOptions'
-type MockClientCommandsServer_RelationOptions_Call struct {
- *mock.Call
-}
-
-// RelationOptions is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcRelationOptionsRequest
-func (_e *MockClientCommandsServer_Expecter) RelationOptions(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_RelationOptions_Call {
- return &MockClientCommandsServer_RelationOptions_Call{Call: _e.mock.On("RelationOptions", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_RelationOptions_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcRelationOptionsRequest)) *MockClientCommandsServer_RelationOptions_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcRelationOptionsRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_RelationOptions_Call) Return(_a0 *pb.RpcRelationOptionsResponse) *MockClientCommandsServer_RelationOptions_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_RelationOptions_Call) RunAndReturn(run func(context.Context, *pb.RpcRelationOptionsRequest) *pb.RpcRelationOptionsResponse) *MockClientCommandsServer_RelationOptions_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceDelete provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceDelete(_a0 context.Context, _a1 *pb.RpcSpaceDeleteRequest) *pb.RpcSpaceDeleteResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceDelete")
- }
-
- var r0 *pb.RpcSpaceDeleteResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceDeleteRequest) *pb.RpcSpaceDeleteResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceDeleteResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceDelete_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceDelete'
-type MockClientCommandsServer_SpaceDelete_Call struct {
- *mock.Call
-}
-
-// SpaceDelete is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceDeleteRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceDelete(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceDelete_Call {
- return &MockClientCommandsServer_SpaceDelete_Call{Call: _e.mock.On("SpaceDelete", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceDelete_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceDeleteRequest)) *MockClientCommandsServer_SpaceDelete_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceDeleteRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceDelete_Call) Return(_a0 *pb.RpcSpaceDeleteResponse) *MockClientCommandsServer_SpaceDelete_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceDelete_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceDeleteRequest) *pb.RpcSpaceDeleteResponse) *MockClientCommandsServer_SpaceDelete_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceInviteGenerate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceInviteGenerate(_a0 context.Context, _a1 *pb.RpcSpaceInviteGenerateRequest) *pb.RpcSpaceInviteGenerateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceInviteGenerate")
- }
-
- var r0 *pb.RpcSpaceInviteGenerateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceInviteGenerateRequest) *pb.RpcSpaceInviteGenerateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceInviteGenerateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceInviteGenerate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceInviteGenerate'
-type MockClientCommandsServer_SpaceInviteGenerate_Call struct {
- *mock.Call
-}
-
-// SpaceInviteGenerate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceInviteGenerateRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceInviteGenerate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceInviteGenerate_Call {
- return &MockClientCommandsServer_SpaceInviteGenerate_Call{Call: _e.mock.On("SpaceInviteGenerate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGenerate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceInviteGenerateRequest)) *MockClientCommandsServer_SpaceInviteGenerate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceInviteGenerateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGenerate_Call) Return(_a0 *pb.RpcSpaceInviteGenerateResponse) *MockClientCommandsServer_SpaceInviteGenerate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGenerate_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceInviteGenerateRequest) *pb.RpcSpaceInviteGenerateResponse) *MockClientCommandsServer_SpaceInviteGenerate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceInviteGetCurrent provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceInviteGetCurrent(_a0 context.Context, _a1 *pb.RpcSpaceInviteGetCurrentRequest) *pb.RpcSpaceInviteGetCurrentResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceInviteGetCurrent")
- }
-
- var r0 *pb.RpcSpaceInviteGetCurrentResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceInviteGetCurrentRequest) *pb.RpcSpaceInviteGetCurrentResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceInviteGetCurrentResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceInviteGetCurrent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceInviteGetCurrent'
-type MockClientCommandsServer_SpaceInviteGetCurrent_Call struct {
- *mock.Call
-}
-
-// SpaceInviteGetCurrent is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceInviteGetCurrentRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceInviteGetCurrent(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceInviteGetCurrent_Call {
- return &MockClientCommandsServer_SpaceInviteGetCurrent_Call{Call: _e.mock.On("SpaceInviteGetCurrent", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGetCurrent_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceInviteGetCurrentRequest)) *MockClientCommandsServer_SpaceInviteGetCurrent_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceInviteGetCurrentRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGetCurrent_Call) Return(_a0 *pb.RpcSpaceInviteGetCurrentResponse) *MockClientCommandsServer_SpaceInviteGetCurrent_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGetCurrent_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceInviteGetCurrentRequest) *pb.RpcSpaceInviteGetCurrentResponse) *MockClientCommandsServer_SpaceInviteGetCurrent_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceInviteGetGuest provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceInviteGetGuest(_a0 context.Context, _a1 *pb.RpcSpaceInviteGetGuestRequest) *pb.RpcSpaceInviteGetGuestResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceInviteGetGuest")
- }
-
- var r0 *pb.RpcSpaceInviteGetGuestResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceInviteGetGuestRequest) *pb.RpcSpaceInviteGetGuestResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceInviteGetGuestResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceInviteGetGuest_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceInviteGetGuest'
-type MockClientCommandsServer_SpaceInviteGetGuest_Call struct {
- *mock.Call
-}
-
-// SpaceInviteGetGuest is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceInviteGetGuestRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceInviteGetGuest(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceInviteGetGuest_Call {
- return &MockClientCommandsServer_SpaceInviteGetGuest_Call{Call: _e.mock.On("SpaceInviteGetGuest", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGetGuest_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceInviteGetGuestRequest)) *MockClientCommandsServer_SpaceInviteGetGuest_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceInviteGetGuestRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGetGuest_Call) Return(_a0 *pb.RpcSpaceInviteGetGuestResponse) *MockClientCommandsServer_SpaceInviteGetGuest_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteGetGuest_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceInviteGetGuestRequest) *pb.RpcSpaceInviteGetGuestResponse) *MockClientCommandsServer_SpaceInviteGetGuest_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceInviteRevoke provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceInviteRevoke(_a0 context.Context, _a1 *pb.RpcSpaceInviteRevokeRequest) *pb.RpcSpaceInviteRevokeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceInviteRevoke")
- }
-
- var r0 *pb.RpcSpaceInviteRevokeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceInviteRevokeRequest) *pb.RpcSpaceInviteRevokeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceInviteRevokeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceInviteRevoke_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceInviteRevoke'
-type MockClientCommandsServer_SpaceInviteRevoke_Call struct {
- *mock.Call
-}
-
-// SpaceInviteRevoke is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceInviteRevokeRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceInviteRevoke(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceInviteRevoke_Call {
- return &MockClientCommandsServer_SpaceInviteRevoke_Call{Call: _e.mock.On("SpaceInviteRevoke", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteRevoke_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceInviteRevokeRequest)) *MockClientCommandsServer_SpaceInviteRevoke_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceInviteRevokeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteRevoke_Call) Return(_a0 *pb.RpcSpaceInviteRevokeResponse) *MockClientCommandsServer_SpaceInviteRevoke_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteRevoke_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceInviteRevokeRequest) *pb.RpcSpaceInviteRevokeResponse) *MockClientCommandsServer_SpaceInviteRevoke_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceInviteView provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceInviteView(_a0 context.Context, _a1 *pb.RpcSpaceInviteViewRequest) *pb.RpcSpaceInviteViewResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceInviteView")
- }
-
- var r0 *pb.RpcSpaceInviteViewResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceInviteViewRequest) *pb.RpcSpaceInviteViewResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceInviteViewResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceInviteView_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceInviteView'
-type MockClientCommandsServer_SpaceInviteView_Call struct {
- *mock.Call
-}
-
-// SpaceInviteView is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceInviteViewRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceInviteView(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceInviteView_Call {
- return &MockClientCommandsServer_SpaceInviteView_Call{Call: _e.mock.On("SpaceInviteView", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteView_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceInviteViewRequest)) *MockClientCommandsServer_SpaceInviteView_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceInviteViewRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteView_Call) Return(_a0 *pb.RpcSpaceInviteViewResponse) *MockClientCommandsServer_SpaceInviteView_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceInviteView_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceInviteViewRequest) *pb.RpcSpaceInviteViewResponse) *MockClientCommandsServer_SpaceInviteView_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceJoin provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceJoin(_a0 context.Context, _a1 *pb.RpcSpaceJoinRequest) *pb.RpcSpaceJoinResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceJoin")
- }
-
- var r0 *pb.RpcSpaceJoinResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceJoinRequest) *pb.RpcSpaceJoinResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceJoinResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceJoin_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceJoin'
-type MockClientCommandsServer_SpaceJoin_Call struct {
- *mock.Call
-}
-
-// SpaceJoin is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceJoinRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceJoin(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceJoin_Call {
- return &MockClientCommandsServer_SpaceJoin_Call{Call: _e.mock.On("SpaceJoin", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceJoin_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceJoinRequest)) *MockClientCommandsServer_SpaceJoin_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceJoinRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceJoin_Call) Return(_a0 *pb.RpcSpaceJoinResponse) *MockClientCommandsServer_SpaceJoin_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceJoin_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceJoinRequest) *pb.RpcSpaceJoinResponse) *MockClientCommandsServer_SpaceJoin_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceJoinCancel provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceJoinCancel(_a0 context.Context, _a1 *pb.RpcSpaceJoinCancelRequest) *pb.RpcSpaceJoinCancelResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceJoinCancel")
- }
-
- var r0 *pb.RpcSpaceJoinCancelResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceJoinCancelRequest) *pb.RpcSpaceJoinCancelResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceJoinCancelResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceJoinCancel_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceJoinCancel'
-type MockClientCommandsServer_SpaceJoinCancel_Call struct {
- *mock.Call
-}
-
-// SpaceJoinCancel is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceJoinCancelRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceJoinCancel(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceJoinCancel_Call {
- return &MockClientCommandsServer_SpaceJoinCancel_Call{Call: _e.mock.On("SpaceJoinCancel", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceJoinCancel_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceJoinCancelRequest)) *MockClientCommandsServer_SpaceJoinCancel_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceJoinCancelRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceJoinCancel_Call) Return(_a0 *pb.RpcSpaceJoinCancelResponse) *MockClientCommandsServer_SpaceJoinCancel_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceJoinCancel_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceJoinCancelRequest) *pb.RpcSpaceJoinCancelResponse) *MockClientCommandsServer_SpaceJoinCancel_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceLeaveApprove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceLeaveApprove(_a0 context.Context, _a1 *pb.RpcSpaceLeaveApproveRequest) *pb.RpcSpaceLeaveApproveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceLeaveApprove")
- }
-
- var r0 *pb.RpcSpaceLeaveApproveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceLeaveApproveRequest) *pb.RpcSpaceLeaveApproveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceLeaveApproveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceLeaveApprove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceLeaveApprove'
-type MockClientCommandsServer_SpaceLeaveApprove_Call struct {
- *mock.Call
-}
-
-// SpaceLeaveApprove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceLeaveApproveRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceLeaveApprove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceLeaveApprove_Call {
- return &MockClientCommandsServer_SpaceLeaveApprove_Call{Call: _e.mock.On("SpaceLeaveApprove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceLeaveApprove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceLeaveApproveRequest)) *MockClientCommandsServer_SpaceLeaveApprove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceLeaveApproveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceLeaveApprove_Call) Return(_a0 *pb.RpcSpaceLeaveApproveResponse) *MockClientCommandsServer_SpaceLeaveApprove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceLeaveApprove_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceLeaveApproveRequest) *pb.RpcSpaceLeaveApproveResponse) *MockClientCommandsServer_SpaceLeaveApprove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceMakeShareable provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceMakeShareable(_a0 context.Context, _a1 *pb.RpcSpaceMakeShareableRequest) *pb.RpcSpaceMakeShareableResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceMakeShareable")
- }
-
- var r0 *pb.RpcSpaceMakeShareableResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceMakeShareableRequest) *pb.RpcSpaceMakeShareableResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceMakeShareableResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceMakeShareable_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceMakeShareable'
-type MockClientCommandsServer_SpaceMakeShareable_Call struct {
- *mock.Call
-}
-
-// SpaceMakeShareable is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceMakeShareableRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceMakeShareable(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceMakeShareable_Call {
- return &MockClientCommandsServer_SpaceMakeShareable_Call{Call: _e.mock.On("SpaceMakeShareable", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceMakeShareable_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceMakeShareableRequest)) *MockClientCommandsServer_SpaceMakeShareable_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceMakeShareableRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceMakeShareable_Call) Return(_a0 *pb.RpcSpaceMakeShareableResponse) *MockClientCommandsServer_SpaceMakeShareable_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceMakeShareable_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceMakeShareableRequest) *pb.RpcSpaceMakeShareableResponse) *MockClientCommandsServer_SpaceMakeShareable_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceParticipantPermissionsChange provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceParticipantPermissionsChange(_a0 context.Context, _a1 *pb.RpcSpaceParticipantPermissionsChangeRequest) *pb.RpcSpaceParticipantPermissionsChangeResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceParticipantPermissionsChange")
- }
-
- var r0 *pb.RpcSpaceParticipantPermissionsChangeResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceParticipantPermissionsChangeRequest) *pb.RpcSpaceParticipantPermissionsChangeResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceParticipantPermissionsChangeResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceParticipantPermissionsChange_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceParticipantPermissionsChange'
-type MockClientCommandsServer_SpaceParticipantPermissionsChange_Call struct {
- *mock.Call
-}
-
-// SpaceParticipantPermissionsChange is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceParticipantPermissionsChangeRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceParticipantPermissionsChange(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceParticipantPermissionsChange_Call {
- return &MockClientCommandsServer_SpaceParticipantPermissionsChange_Call{Call: _e.mock.On("SpaceParticipantPermissionsChange", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceParticipantPermissionsChange_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceParticipantPermissionsChangeRequest)) *MockClientCommandsServer_SpaceParticipantPermissionsChange_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceParticipantPermissionsChangeRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceParticipantPermissionsChange_Call) Return(_a0 *pb.RpcSpaceParticipantPermissionsChangeResponse) *MockClientCommandsServer_SpaceParticipantPermissionsChange_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceParticipantPermissionsChange_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceParticipantPermissionsChangeRequest) *pb.RpcSpaceParticipantPermissionsChangeResponse) *MockClientCommandsServer_SpaceParticipantPermissionsChange_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceParticipantRemove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceParticipantRemove(_a0 context.Context, _a1 *pb.RpcSpaceParticipantRemoveRequest) *pb.RpcSpaceParticipantRemoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceParticipantRemove")
- }
-
- var r0 *pb.RpcSpaceParticipantRemoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceParticipantRemoveRequest) *pb.RpcSpaceParticipantRemoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceParticipantRemoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceParticipantRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceParticipantRemove'
-type MockClientCommandsServer_SpaceParticipantRemove_Call struct {
- *mock.Call
-}
-
-// SpaceParticipantRemove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceParticipantRemoveRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceParticipantRemove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceParticipantRemove_Call {
- return &MockClientCommandsServer_SpaceParticipantRemove_Call{Call: _e.mock.On("SpaceParticipantRemove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceParticipantRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceParticipantRemoveRequest)) *MockClientCommandsServer_SpaceParticipantRemove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceParticipantRemoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceParticipantRemove_Call) Return(_a0 *pb.RpcSpaceParticipantRemoveResponse) *MockClientCommandsServer_SpaceParticipantRemove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceParticipantRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceParticipantRemoveRequest) *pb.RpcSpaceParticipantRemoveResponse) *MockClientCommandsServer_SpaceParticipantRemove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceRequestApprove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceRequestApprove(_a0 context.Context, _a1 *pb.RpcSpaceRequestApproveRequest) *pb.RpcSpaceRequestApproveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceRequestApprove")
- }
-
- var r0 *pb.RpcSpaceRequestApproveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceRequestApproveRequest) *pb.RpcSpaceRequestApproveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceRequestApproveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceRequestApprove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceRequestApprove'
-type MockClientCommandsServer_SpaceRequestApprove_Call struct {
- *mock.Call
-}
-
-// SpaceRequestApprove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceRequestApproveRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceRequestApprove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceRequestApprove_Call {
- return &MockClientCommandsServer_SpaceRequestApprove_Call{Call: _e.mock.On("SpaceRequestApprove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceRequestApprove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceRequestApproveRequest)) *MockClientCommandsServer_SpaceRequestApprove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceRequestApproveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceRequestApprove_Call) Return(_a0 *pb.RpcSpaceRequestApproveResponse) *MockClientCommandsServer_SpaceRequestApprove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceRequestApprove_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceRequestApproveRequest) *pb.RpcSpaceRequestApproveResponse) *MockClientCommandsServer_SpaceRequestApprove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceRequestDecline provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceRequestDecline(_a0 context.Context, _a1 *pb.RpcSpaceRequestDeclineRequest) *pb.RpcSpaceRequestDeclineResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceRequestDecline")
- }
-
- var r0 *pb.RpcSpaceRequestDeclineResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceRequestDeclineRequest) *pb.RpcSpaceRequestDeclineResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceRequestDeclineResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceRequestDecline_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceRequestDecline'
-type MockClientCommandsServer_SpaceRequestDecline_Call struct {
- *mock.Call
-}
-
-// SpaceRequestDecline is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceRequestDeclineRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceRequestDecline(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceRequestDecline_Call {
- return &MockClientCommandsServer_SpaceRequestDecline_Call{Call: _e.mock.On("SpaceRequestDecline", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceRequestDecline_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceRequestDeclineRequest)) *MockClientCommandsServer_SpaceRequestDecline_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceRequestDeclineRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceRequestDecline_Call) Return(_a0 *pb.RpcSpaceRequestDeclineResponse) *MockClientCommandsServer_SpaceRequestDecline_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceRequestDecline_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceRequestDeclineRequest) *pb.RpcSpaceRequestDeclineResponse) *MockClientCommandsServer_SpaceRequestDecline_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceSetOrder provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceSetOrder(_a0 context.Context, _a1 *pb.RpcSpaceSetOrderRequest) *pb.RpcSpaceSetOrderResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceSetOrder")
- }
-
- var r0 *pb.RpcSpaceSetOrderResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceSetOrderRequest) *pb.RpcSpaceSetOrderResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceSetOrderResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceSetOrder_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceSetOrder'
-type MockClientCommandsServer_SpaceSetOrder_Call struct {
- *mock.Call
-}
-
-// SpaceSetOrder is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceSetOrderRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceSetOrder(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceSetOrder_Call {
- return &MockClientCommandsServer_SpaceSetOrder_Call{Call: _e.mock.On("SpaceSetOrder", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceSetOrder_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceSetOrderRequest)) *MockClientCommandsServer_SpaceSetOrder_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceSetOrderRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceSetOrder_Call) Return(_a0 *pb.RpcSpaceSetOrderResponse) *MockClientCommandsServer_SpaceSetOrder_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceSetOrder_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceSetOrderRequest) *pb.RpcSpaceSetOrderResponse) *MockClientCommandsServer_SpaceSetOrder_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceStopSharing provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceStopSharing(_a0 context.Context, _a1 *pb.RpcSpaceStopSharingRequest) *pb.RpcSpaceStopSharingResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceStopSharing")
- }
-
- var r0 *pb.RpcSpaceStopSharingResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceStopSharingRequest) *pb.RpcSpaceStopSharingResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceStopSharingResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceStopSharing_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceStopSharing'
-type MockClientCommandsServer_SpaceStopSharing_Call struct {
- *mock.Call
-}
-
-// SpaceStopSharing is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceStopSharingRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceStopSharing(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceStopSharing_Call {
- return &MockClientCommandsServer_SpaceStopSharing_Call{Call: _e.mock.On("SpaceStopSharing", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceStopSharing_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceStopSharingRequest)) *MockClientCommandsServer_SpaceStopSharing_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceStopSharingRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceStopSharing_Call) Return(_a0 *pb.RpcSpaceStopSharingResponse) *MockClientCommandsServer_SpaceStopSharing_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceStopSharing_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceStopSharingRequest) *pb.RpcSpaceStopSharingResponse) *MockClientCommandsServer_SpaceStopSharing_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// SpaceUnsetOrder provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) SpaceUnsetOrder(_a0 context.Context, _a1 *pb.RpcSpaceUnsetOrderRequest) *pb.RpcSpaceUnsetOrderResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for SpaceUnsetOrder")
- }
-
- var r0 *pb.RpcSpaceUnsetOrderResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcSpaceUnsetOrderRequest) *pb.RpcSpaceUnsetOrderResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcSpaceUnsetOrderResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_SpaceUnsetOrder_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'SpaceUnsetOrder'
-type MockClientCommandsServer_SpaceUnsetOrder_Call struct {
- *mock.Call
-}
-
-// SpaceUnsetOrder is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcSpaceUnsetOrderRequest
-func (_e *MockClientCommandsServer_Expecter) SpaceUnsetOrder(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_SpaceUnsetOrder_Call {
- return &MockClientCommandsServer_SpaceUnsetOrder_Call{Call: _e.mock.On("SpaceUnsetOrder", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_SpaceUnsetOrder_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcSpaceUnsetOrderRequest)) *MockClientCommandsServer_SpaceUnsetOrder_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcSpaceUnsetOrderRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceUnsetOrder_Call) Return(_a0 *pb.RpcSpaceUnsetOrderResponse) *MockClientCommandsServer_SpaceUnsetOrder_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_SpaceUnsetOrder_Call) RunAndReturn(run func(context.Context, *pb.RpcSpaceUnsetOrderRequest) *pb.RpcSpaceUnsetOrderResponse) *MockClientCommandsServer_SpaceUnsetOrder_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// TemplateClone provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) TemplateClone(_a0 context.Context, _a1 *pb.RpcTemplateCloneRequest) *pb.RpcTemplateCloneResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for TemplateClone")
- }
-
- var r0 *pb.RpcTemplateCloneResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcTemplateCloneRequest) *pb.RpcTemplateCloneResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcTemplateCloneResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_TemplateClone_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateClone'
-type MockClientCommandsServer_TemplateClone_Call struct {
- *mock.Call
-}
-
-// TemplateClone is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcTemplateCloneRequest
-func (_e *MockClientCommandsServer_Expecter) TemplateClone(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_TemplateClone_Call {
- return &MockClientCommandsServer_TemplateClone_Call{Call: _e.mock.On("TemplateClone", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_TemplateClone_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcTemplateCloneRequest)) *MockClientCommandsServer_TemplateClone_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcTemplateCloneRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_TemplateClone_Call) Return(_a0 *pb.RpcTemplateCloneResponse) *MockClientCommandsServer_TemplateClone_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_TemplateClone_Call) RunAndReturn(run func(context.Context, *pb.RpcTemplateCloneRequest) *pb.RpcTemplateCloneResponse) *MockClientCommandsServer_TemplateClone_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// TemplateCreateFromObject provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) TemplateCreateFromObject(_a0 context.Context, _a1 *pb.RpcTemplateCreateFromObjectRequest) *pb.RpcTemplateCreateFromObjectResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for TemplateCreateFromObject")
- }
-
- var r0 *pb.RpcTemplateCreateFromObjectResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcTemplateCreateFromObjectRequest) *pb.RpcTemplateCreateFromObjectResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcTemplateCreateFromObjectResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_TemplateCreateFromObject_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateCreateFromObject'
-type MockClientCommandsServer_TemplateCreateFromObject_Call struct {
- *mock.Call
-}
-
-// TemplateCreateFromObject is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcTemplateCreateFromObjectRequest
-func (_e *MockClientCommandsServer_Expecter) TemplateCreateFromObject(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_TemplateCreateFromObject_Call {
- return &MockClientCommandsServer_TemplateCreateFromObject_Call{Call: _e.mock.On("TemplateCreateFromObject", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_TemplateCreateFromObject_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcTemplateCreateFromObjectRequest)) *MockClientCommandsServer_TemplateCreateFromObject_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcTemplateCreateFromObjectRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_TemplateCreateFromObject_Call) Return(_a0 *pb.RpcTemplateCreateFromObjectResponse) *MockClientCommandsServer_TemplateCreateFromObject_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_TemplateCreateFromObject_Call) RunAndReturn(run func(context.Context, *pb.RpcTemplateCreateFromObjectRequest) *pb.RpcTemplateCreateFromObjectResponse) *MockClientCommandsServer_TemplateCreateFromObject_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// TemplateExportAll provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) TemplateExportAll(_a0 context.Context, _a1 *pb.RpcTemplateExportAllRequest) *pb.RpcTemplateExportAllResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for TemplateExportAll")
- }
-
- var r0 *pb.RpcTemplateExportAllResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcTemplateExportAllRequest) *pb.RpcTemplateExportAllResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcTemplateExportAllResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_TemplateExportAll_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TemplateExportAll'
-type MockClientCommandsServer_TemplateExportAll_Call struct {
- *mock.Call
-}
-
-// TemplateExportAll is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcTemplateExportAllRequest
-func (_e *MockClientCommandsServer_Expecter) TemplateExportAll(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_TemplateExportAll_Call {
- return &MockClientCommandsServer_TemplateExportAll_Call{Call: _e.mock.On("TemplateExportAll", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_TemplateExportAll_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcTemplateExportAllRequest)) *MockClientCommandsServer_TemplateExportAll_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcTemplateExportAllRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_TemplateExportAll_Call) Return(_a0 *pb.RpcTemplateExportAllResponse) *MockClientCommandsServer_TemplateExportAll_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_TemplateExportAll_Call) RunAndReturn(run func(context.Context, *pb.RpcTemplateExportAllRequest) *pb.RpcTemplateExportAllResponse) *MockClientCommandsServer_TemplateExportAll_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// UnsplashDownload provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) UnsplashDownload(_a0 context.Context, _a1 *pb.RpcUnsplashDownloadRequest) *pb.RpcUnsplashDownloadResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for UnsplashDownload")
- }
-
- var r0 *pb.RpcUnsplashDownloadResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcUnsplashDownloadRequest) *pb.RpcUnsplashDownloadResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcUnsplashDownloadResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_UnsplashDownload_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UnsplashDownload'
-type MockClientCommandsServer_UnsplashDownload_Call struct {
- *mock.Call
-}
-
-// UnsplashDownload is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcUnsplashDownloadRequest
-func (_e *MockClientCommandsServer_Expecter) UnsplashDownload(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_UnsplashDownload_Call {
- return &MockClientCommandsServer_UnsplashDownload_Call{Call: _e.mock.On("UnsplashDownload", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_UnsplashDownload_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcUnsplashDownloadRequest)) *MockClientCommandsServer_UnsplashDownload_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcUnsplashDownloadRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_UnsplashDownload_Call) Return(_a0 *pb.RpcUnsplashDownloadResponse) *MockClientCommandsServer_UnsplashDownload_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_UnsplashDownload_Call) RunAndReturn(run func(context.Context, *pb.RpcUnsplashDownloadRequest) *pb.RpcUnsplashDownloadResponse) *MockClientCommandsServer_UnsplashDownload_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// UnsplashSearch provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) UnsplashSearch(_a0 context.Context, _a1 *pb.RpcUnsplashSearchRequest) *pb.RpcUnsplashSearchResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for UnsplashSearch")
- }
-
- var r0 *pb.RpcUnsplashSearchResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcUnsplashSearchRequest) *pb.RpcUnsplashSearchResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcUnsplashSearchResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_UnsplashSearch_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UnsplashSearch'
-type MockClientCommandsServer_UnsplashSearch_Call struct {
- *mock.Call
-}
-
-// UnsplashSearch is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcUnsplashSearchRequest
-func (_e *MockClientCommandsServer_Expecter) UnsplashSearch(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_UnsplashSearch_Call {
- return &MockClientCommandsServer_UnsplashSearch_Call{Call: _e.mock.On("UnsplashSearch", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_UnsplashSearch_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcUnsplashSearchRequest)) *MockClientCommandsServer_UnsplashSearch_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcUnsplashSearchRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_UnsplashSearch_Call) Return(_a0 *pb.RpcUnsplashSearchResponse) *MockClientCommandsServer_UnsplashSearch_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_UnsplashSearch_Call) RunAndReturn(run func(context.Context, *pb.RpcUnsplashSearchRequest) *pb.RpcUnsplashSearchResponse) *MockClientCommandsServer_UnsplashSearch_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WalletCloseSession provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WalletCloseSession(_a0 context.Context, _a1 *pb.RpcWalletCloseSessionRequest) *pb.RpcWalletCloseSessionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WalletCloseSession")
- }
-
- var r0 *pb.RpcWalletCloseSessionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWalletCloseSessionRequest) *pb.RpcWalletCloseSessionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWalletCloseSessionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WalletCloseSession_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WalletCloseSession'
-type MockClientCommandsServer_WalletCloseSession_Call struct {
- *mock.Call
-}
-
-// WalletCloseSession is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWalletCloseSessionRequest
-func (_e *MockClientCommandsServer_Expecter) WalletCloseSession(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WalletCloseSession_Call {
- return &MockClientCommandsServer_WalletCloseSession_Call{Call: _e.mock.On("WalletCloseSession", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WalletCloseSession_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWalletCloseSessionRequest)) *MockClientCommandsServer_WalletCloseSession_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWalletCloseSessionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletCloseSession_Call) Return(_a0 *pb.RpcWalletCloseSessionResponse) *MockClientCommandsServer_WalletCloseSession_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletCloseSession_Call) RunAndReturn(run func(context.Context, *pb.RpcWalletCloseSessionRequest) *pb.RpcWalletCloseSessionResponse) *MockClientCommandsServer_WalletCloseSession_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WalletConvert provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WalletConvert(_a0 context.Context, _a1 *pb.RpcWalletConvertRequest) *pb.RpcWalletConvertResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WalletConvert")
- }
-
- var r0 *pb.RpcWalletConvertResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWalletConvertRequest) *pb.RpcWalletConvertResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWalletConvertResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WalletConvert_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WalletConvert'
-type MockClientCommandsServer_WalletConvert_Call struct {
- *mock.Call
-}
-
-// WalletConvert is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWalletConvertRequest
-func (_e *MockClientCommandsServer_Expecter) WalletConvert(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WalletConvert_Call {
- return &MockClientCommandsServer_WalletConvert_Call{Call: _e.mock.On("WalletConvert", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WalletConvert_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWalletConvertRequest)) *MockClientCommandsServer_WalletConvert_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWalletConvertRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletConvert_Call) Return(_a0 *pb.RpcWalletConvertResponse) *MockClientCommandsServer_WalletConvert_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletConvert_Call) RunAndReturn(run func(context.Context, *pb.RpcWalletConvertRequest) *pb.RpcWalletConvertResponse) *MockClientCommandsServer_WalletConvert_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WalletCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WalletCreate(_a0 context.Context, _a1 *pb.RpcWalletCreateRequest) *pb.RpcWalletCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WalletCreate")
- }
-
- var r0 *pb.RpcWalletCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWalletCreateRequest) *pb.RpcWalletCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWalletCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WalletCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WalletCreate'
-type MockClientCommandsServer_WalletCreate_Call struct {
- *mock.Call
-}
-
-// WalletCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWalletCreateRequest
-func (_e *MockClientCommandsServer_Expecter) WalletCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WalletCreate_Call {
- return &MockClientCommandsServer_WalletCreate_Call{Call: _e.mock.On("WalletCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WalletCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWalletCreateRequest)) *MockClientCommandsServer_WalletCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWalletCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletCreate_Call) Return(_a0 *pb.RpcWalletCreateResponse) *MockClientCommandsServer_WalletCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcWalletCreateRequest) *pb.RpcWalletCreateResponse) *MockClientCommandsServer_WalletCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WalletCreateSession provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WalletCreateSession(_a0 context.Context, _a1 *pb.RpcWalletCreateSessionRequest) *pb.RpcWalletCreateSessionResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WalletCreateSession")
- }
-
- var r0 *pb.RpcWalletCreateSessionResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWalletCreateSessionRequest) *pb.RpcWalletCreateSessionResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWalletCreateSessionResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WalletCreateSession_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WalletCreateSession'
-type MockClientCommandsServer_WalletCreateSession_Call struct {
- *mock.Call
-}
-
-// WalletCreateSession is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWalletCreateSessionRequest
-func (_e *MockClientCommandsServer_Expecter) WalletCreateSession(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WalletCreateSession_Call {
- return &MockClientCommandsServer_WalletCreateSession_Call{Call: _e.mock.On("WalletCreateSession", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WalletCreateSession_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWalletCreateSessionRequest)) *MockClientCommandsServer_WalletCreateSession_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWalletCreateSessionRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletCreateSession_Call) Return(_a0 *pb.RpcWalletCreateSessionResponse) *MockClientCommandsServer_WalletCreateSession_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletCreateSession_Call) RunAndReturn(run func(context.Context, *pb.RpcWalletCreateSessionRequest) *pb.RpcWalletCreateSessionResponse) *MockClientCommandsServer_WalletCreateSession_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WalletRecover provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WalletRecover(_a0 context.Context, _a1 *pb.RpcWalletRecoverRequest) *pb.RpcWalletRecoverResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WalletRecover")
- }
-
- var r0 *pb.RpcWalletRecoverResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWalletRecoverRequest) *pb.RpcWalletRecoverResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWalletRecoverResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WalletRecover_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WalletRecover'
-type MockClientCommandsServer_WalletRecover_Call struct {
- *mock.Call
-}
-
-// WalletRecover is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWalletRecoverRequest
-func (_e *MockClientCommandsServer_Expecter) WalletRecover(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WalletRecover_Call {
- return &MockClientCommandsServer_WalletRecover_Call{Call: _e.mock.On("WalletRecover", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WalletRecover_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWalletRecoverRequest)) *MockClientCommandsServer_WalletRecover_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWalletRecoverRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletRecover_Call) Return(_a0 *pb.RpcWalletRecoverResponse) *MockClientCommandsServer_WalletRecover_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WalletRecover_Call) RunAndReturn(run func(context.Context, *pb.RpcWalletRecoverRequest) *pb.RpcWalletRecoverResponse) *MockClientCommandsServer_WalletRecover_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceCreate provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceCreate(_a0 context.Context, _a1 *pb.RpcWorkspaceCreateRequest) *pb.RpcWorkspaceCreateResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceCreate")
- }
-
- var r0 *pb.RpcWorkspaceCreateResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceCreateRequest) *pb.RpcWorkspaceCreateResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceCreateResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceCreate_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceCreate'
-type MockClientCommandsServer_WorkspaceCreate_Call struct {
- *mock.Call
-}
-
-// WorkspaceCreate is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceCreateRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceCreate(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceCreate_Call {
- return &MockClientCommandsServer_WorkspaceCreate_Call{Call: _e.mock.On("WorkspaceCreate", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceCreate_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceCreateRequest)) *MockClientCommandsServer_WorkspaceCreate_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceCreateRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceCreate_Call) Return(_a0 *pb.RpcWorkspaceCreateResponse) *MockClientCommandsServer_WorkspaceCreate_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceCreate_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceCreateRequest) *pb.RpcWorkspaceCreateResponse) *MockClientCommandsServer_WorkspaceCreate_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceExport provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceExport(_a0 context.Context, _a1 *pb.RpcWorkspaceExportRequest) *pb.RpcWorkspaceExportResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceExport")
- }
-
- var r0 *pb.RpcWorkspaceExportResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceExportRequest) *pb.RpcWorkspaceExportResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceExportResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceExport_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceExport'
-type MockClientCommandsServer_WorkspaceExport_Call struct {
- *mock.Call
-}
-
-// WorkspaceExport is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceExportRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceExport(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceExport_Call {
- return &MockClientCommandsServer_WorkspaceExport_Call{Call: _e.mock.On("WorkspaceExport", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceExport_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceExportRequest)) *MockClientCommandsServer_WorkspaceExport_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceExportRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceExport_Call) Return(_a0 *pb.RpcWorkspaceExportResponse) *MockClientCommandsServer_WorkspaceExport_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceExport_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceExportRequest) *pb.RpcWorkspaceExportResponse) *MockClientCommandsServer_WorkspaceExport_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceGetAll provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceGetAll(_a0 context.Context, _a1 *pb.RpcWorkspaceGetAllRequest) *pb.RpcWorkspaceGetAllResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceGetAll")
- }
-
- var r0 *pb.RpcWorkspaceGetAllResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceGetAllRequest) *pb.RpcWorkspaceGetAllResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceGetAllResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceGetAll_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceGetAll'
-type MockClientCommandsServer_WorkspaceGetAll_Call struct {
- *mock.Call
-}
-
-// WorkspaceGetAll is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceGetAllRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceGetAll(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceGetAll_Call {
- return &MockClientCommandsServer_WorkspaceGetAll_Call{Call: _e.mock.On("WorkspaceGetAll", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceGetAll_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceGetAllRequest)) *MockClientCommandsServer_WorkspaceGetAll_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceGetAllRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceGetAll_Call) Return(_a0 *pb.RpcWorkspaceGetAllResponse) *MockClientCommandsServer_WorkspaceGetAll_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceGetAll_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceGetAllRequest) *pb.RpcWorkspaceGetAllResponse) *MockClientCommandsServer_WorkspaceGetAll_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceGetCurrent provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceGetCurrent(_a0 context.Context, _a1 *pb.RpcWorkspaceGetCurrentRequest) *pb.RpcWorkspaceGetCurrentResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceGetCurrent")
- }
-
- var r0 *pb.RpcWorkspaceGetCurrentResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceGetCurrentRequest) *pb.RpcWorkspaceGetCurrentResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceGetCurrentResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceGetCurrent_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceGetCurrent'
-type MockClientCommandsServer_WorkspaceGetCurrent_Call struct {
- *mock.Call
-}
-
-// WorkspaceGetCurrent is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceGetCurrentRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceGetCurrent(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceGetCurrent_Call {
- return &MockClientCommandsServer_WorkspaceGetCurrent_Call{Call: _e.mock.On("WorkspaceGetCurrent", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceGetCurrent_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceGetCurrentRequest)) *MockClientCommandsServer_WorkspaceGetCurrent_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceGetCurrentRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceGetCurrent_Call) Return(_a0 *pb.RpcWorkspaceGetCurrentResponse) *MockClientCommandsServer_WorkspaceGetCurrent_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceGetCurrent_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceGetCurrentRequest) *pb.RpcWorkspaceGetCurrentResponse) *MockClientCommandsServer_WorkspaceGetCurrent_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceObjectAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceObjectAdd(_a0 context.Context, _a1 *pb.RpcWorkspaceObjectAddRequest) *pb.RpcWorkspaceObjectAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceObjectAdd")
- }
-
- var r0 *pb.RpcWorkspaceObjectAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceObjectAddRequest) *pb.RpcWorkspaceObjectAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceObjectAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceObjectAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceObjectAdd'
-type MockClientCommandsServer_WorkspaceObjectAdd_Call struct {
- *mock.Call
-}
-
-// WorkspaceObjectAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceObjectAddRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceObjectAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceObjectAdd_Call {
- return &MockClientCommandsServer_WorkspaceObjectAdd_Call{Call: _e.mock.On("WorkspaceObjectAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceObjectAddRequest)) *MockClientCommandsServer_WorkspaceObjectAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceObjectAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectAdd_Call) Return(_a0 *pb.RpcWorkspaceObjectAddResponse) *MockClientCommandsServer_WorkspaceObjectAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceObjectAddRequest) *pb.RpcWorkspaceObjectAddResponse) *MockClientCommandsServer_WorkspaceObjectAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceObjectListAdd provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceObjectListAdd(_a0 context.Context, _a1 *pb.RpcWorkspaceObjectListAddRequest) *pb.RpcWorkspaceObjectListAddResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceObjectListAdd")
- }
-
- var r0 *pb.RpcWorkspaceObjectListAddResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceObjectListAddRequest) *pb.RpcWorkspaceObjectListAddResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceObjectListAddResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceObjectListAdd_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceObjectListAdd'
-type MockClientCommandsServer_WorkspaceObjectListAdd_Call struct {
- *mock.Call
-}
-
-// WorkspaceObjectListAdd is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceObjectListAddRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceObjectListAdd(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceObjectListAdd_Call {
- return &MockClientCommandsServer_WorkspaceObjectListAdd_Call{Call: _e.mock.On("WorkspaceObjectListAdd", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectListAdd_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceObjectListAddRequest)) *MockClientCommandsServer_WorkspaceObjectListAdd_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceObjectListAddRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectListAdd_Call) Return(_a0 *pb.RpcWorkspaceObjectListAddResponse) *MockClientCommandsServer_WorkspaceObjectListAdd_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectListAdd_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceObjectListAddRequest) *pb.RpcWorkspaceObjectListAddResponse) *MockClientCommandsServer_WorkspaceObjectListAdd_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceObjectListRemove provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceObjectListRemove(_a0 context.Context, _a1 *pb.RpcWorkspaceObjectListRemoveRequest) *pb.RpcWorkspaceObjectListRemoveResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceObjectListRemove")
- }
-
- var r0 *pb.RpcWorkspaceObjectListRemoveResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceObjectListRemoveRequest) *pb.RpcWorkspaceObjectListRemoveResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceObjectListRemoveResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceObjectListRemove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceObjectListRemove'
-type MockClientCommandsServer_WorkspaceObjectListRemove_Call struct {
- *mock.Call
-}
-
-// WorkspaceObjectListRemove is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceObjectListRemoveRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceObjectListRemove(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceObjectListRemove_Call {
- return &MockClientCommandsServer_WorkspaceObjectListRemove_Call{Call: _e.mock.On("WorkspaceObjectListRemove", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectListRemove_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceObjectListRemoveRequest)) *MockClientCommandsServer_WorkspaceObjectListRemove_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceObjectListRemoveRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectListRemove_Call) Return(_a0 *pb.RpcWorkspaceObjectListRemoveResponse) *MockClientCommandsServer_WorkspaceObjectListRemove_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceObjectListRemove_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceObjectListRemoveRequest) *pb.RpcWorkspaceObjectListRemoveResponse) *MockClientCommandsServer_WorkspaceObjectListRemove_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceOpen provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceOpen(_a0 context.Context, _a1 *pb.RpcWorkspaceOpenRequest) *pb.RpcWorkspaceOpenResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceOpen")
- }
-
- var r0 *pb.RpcWorkspaceOpenResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceOpenRequest) *pb.RpcWorkspaceOpenResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceOpenResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceOpen_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceOpen'
-type MockClientCommandsServer_WorkspaceOpen_Call struct {
- *mock.Call
-}
-
-// WorkspaceOpen is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceOpenRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceOpen(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceOpen_Call {
- return &MockClientCommandsServer_WorkspaceOpen_Call{Call: _e.mock.On("WorkspaceOpen", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceOpen_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceOpenRequest)) *MockClientCommandsServer_WorkspaceOpen_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceOpenRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceOpen_Call) Return(_a0 *pb.RpcWorkspaceOpenResponse) *MockClientCommandsServer_WorkspaceOpen_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceOpen_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceOpenRequest) *pb.RpcWorkspaceOpenResponse) *MockClientCommandsServer_WorkspaceOpen_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceSelect provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceSelect(_a0 context.Context, _a1 *pb.RpcWorkspaceSelectRequest) *pb.RpcWorkspaceSelectResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceSelect")
- }
-
- var r0 *pb.RpcWorkspaceSelectResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceSelectRequest) *pb.RpcWorkspaceSelectResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceSelectResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceSelect_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceSelect'
-type MockClientCommandsServer_WorkspaceSelect_Call struct {
- *mock.Call
-}
-
-// WorkspaceSelect is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceSelectRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceSelect(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceSelect_Call {
- return &MockClientCommandsServer_WorkspaceSelect_Call{Call: _e.mock.On("WorkspaceSelect", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceSelect_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceSelectRequest)) *MockClientCommandsServer_WorkspaceSelect_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceSelectRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceSelect_Call) Return(_a0 *pb.RpcWorkspaceSelectResponse) *MockClientCommandsServer_WorkspaceSelect_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceSelect_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceSelectRequest) *pb.RpcWorkspaceSelectResponse) *MockClientCommandsServer_WorkspaceSelect_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// WorkspaceSetInfo provides a mock function with given fields: _a0, _a1
-func (_m *MockClientCommandsServer) WorkspaceSetInfo(_a0 context.Context, _a1 *pb.RpcWorkspaceSetInfoRequest) *pb.RpcWorkspaceSetInfoResponse {
- ret := _m.Called(_a0, _a1)
-
- if len(ret) == 0 {
- panic("no return value specified for WorkspaceSetInfo")
- }
-
- var r0 *pb.RpcWorkspaceSetInfoResponse
- if rf, ok := ret.Get(0).(func(context.Context, *pb.RpcWorkspaceSetInfoRequest) *pb.RpcWorkspaceSetInfoResponse); ok {
- r0 = rf(_a0, _a1)
- } else {
- if ret.Get(0) != nil {
- r0 = ret.Get(0).(*pb.RpcWorkspaceSetInfoResponse)
- }
- }
-
- return r0
-}
-
-// MockClientCommandsServer_WorkspaceSetInfo_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'WorkspaceSetInfo'
-type MockClientCommandsServer_WorkspaceSetInfo_Call struct {
- *mock.Call
-}
-
-// WorkspaceSetInfo is a helper method to define mock.On call
-// - _a0 context.Context
-// - _a1 *pb.RpcWorkspaceSetInfoRequest
-func (_e *MockClientCommandsServer_Expecter) WorkspaceSetInfo(_a0 interface{}, _a1 interface{}) *MockClientCommandsServer_WorkspaceSetInfo_Call {
- return &MockClientCommandsServer_WorkspaceSetInfo_Call{Call: _e.mock.On("WorkspaceSetInfo", _a0, _a1)}
-}
-
-func (_c *MockClientCommandsServer_WorkspaceSetInfo_Call) Run(run func(_a0 context.Context, _a1 *pb.RpcWorkspaceSetInfoRequest)) *MockClientCommandsServer_WorkspaceSetInfo_Call {
- _c.Call.Run(func(args mock.Arguments) {
- run(args[0].(context.Context), args[1].(*pb.RpcWorkspaceSetInfoRequest))
- })
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceSetInfo_Call) Return(_a0 *pb.RpcWorkspaceSetInfoResponse) *MockClientCommandsServer_WorkspaceSetInfo_Call {
- _c.Call.Return(_a0)
- return _c
-}
-
-func (_c *MockClientCommandsServer_WorkspaceSetInfo_Call) RunAndReturn(run func(context.Context, *pb.RpcWorkspaceSetInfoRequest) *pb.RpcWorkspaceSetInfoResponse) *MockClientCommandsServer_WorkspaceSetInfo_Call {
- _c.Call.Return(run)
- return _c
-}
-
-// NewMockClientCommandsServer creates a new instance of MockClientCommandsServer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
-// The first argument is typically a *testing.T value.
-func NewMockClientCommandsServer(t interface {
- mock.TestingT
- Cleanup(func())
-}) *MockClientCommandsServer {
- mock := &MockClientCommandsServer{}
- mock.Mock.Test(t)
-
- t.Cleanup(func() { mock.AssertExpectations(t) })
-
- return mock
-}
diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go
index 51f19f896..1727ae8d0 100644
--- a/pb/service/service.pb.go
+++ b/pb/service/service.pb.go
@@ -26,366 +26,365 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) }
var fileDescriptor_93a29dc403579097 = []byte{
- // 5733 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0x5f, 0x6f, 0x1d, 0x49,
- 0x56, 0xc0, 0xc7, 0x2f, 0x0c, 0xf4, 0xb2, 0x03, 0xdc, 0x81, 0x61, 0x76, 0xd8, 0x4d, 0x32, 0x99,
- 0xc4, 0x4e, 0xe2, 0xf8, 0x3a, 0x93, 0xcc, 0x3f, 0x76, 0x91, 0xe0, 0xc6, 0x8e, 0x3d, 0x77, 0xc7,
- 0x76, 0x8c, 0xef, 0x75, 0x22, 0x46, 0x42, 0xa2, 0x7d, 0xbb, 0x7c, 0xdd, 0xb8, 0x6f, 0x57, 0x6f,
- 0x77, 0x5d, 0x27, 0x77, 0x11, 0x08, 0x04, 0x02, 0x81, 0x16, 0xb1, 0xe2, 0x9f, 0xe0, 0x09, 0x89,
- 0x4f, 0xc0, 0xc7, 0xe0, 0x71, 0x1f, 0x79, 0x44, 0x33, 0xdf, 0x03, 0xa1, 0xae, 0xaa, 0xae, 0x3f,
- 0xa7, 0xcf, 0xa9, 0x6e, 0xcf, 0x3e, 0x25, 0xf2, 0xf9, 0x9d, 0x73, 0xaa, 0xba, 0x4e, 0x55, 0x9d,
- 0xaa, 0xae, 0xae, 0x1b, 0xdd, 0x2c, 0xce, 0xb6, 0x8b, 0x92, 0x0b, 0x5e, 0x6d, 0x57, 0xac, 0xbc,
- 0x4a, 0x67, 0xac, 0xf9, 0x77, 0x28, 0xff, 0x3c, 0x78, 0x33, 0xce, 0x57, 0x62, 0x55, 0xb0, 0xf7,
- 0xde, 0xb5, 0xe4, 0x8c, 0x2f, 0x16, 0x71, 0x9e, 0x54, 0x0a, 0x79, 0xef, 0x1d, 0x2b, 0x61, 0x57,
- 0x2c, 0x17, 0xfa, 0xef, 0x8f, 0x7f, 0xf2, 0x7f, 0x6b, 0xd1, 0x5b, 0x3b, 0x59, 0xca, 0x72, 0xb1,
- 0xa3, 0x35, 0x06, 0x5f, 0x46, 0xdf, 0x1e, 0x15, 0xc5, 0x3e, 0x13, 0x2f, 0x58, 0x59, 0xa5, 0x3c,
- 0x1f, 0x7c, 0x30, 0xd4, 0x0e, 0x86, 0x27, 0xc5, 0x6c, 0x38, 0x2a, 0x8a, 0xa1, 0x15, 0x0e, 0x4f,
- 0xd8, 0x8f, 0x96, 0xac, 0x12, 0xef, 0xdd, 0x09, 0x43, 0x55, 0xc1, 0xf3, 0x8a, 0x0d, 0xce, 0xa3,
- 0x5f, 0x1b, 0x15, 0xc5, 0x84, 0x89, 0x5d, 0x56, 0x57, 0x60, 0x22, 0x62, 0xc1, 0x06, 0x1b, 0x2d,
- 0x55, 0x1f, 0x30, 0x3e, 0xee, 0x75, 0x83, 0xda, 0xcf, 0x34, 0xfa, 0x56, 0xed, 0xe7, 0x62, 0x29,
- 0x12, 0xfe, 0x2a, 0x1f, 0xbc, 0xdf, 0x56, 0xd4, 0x22, 0x63, 0xfb, 0x76, 0x08, 0xd1, 0x56, 0x5f,
- 0x46, 0xbf, 0xfc, 0x32, 0xce, 0x32, 0x26, 0x76, 0x4a, 0x56, 0x17, 0xdc, 0xd7, 0x51, 0xa2, 0xa1,
- 0x92, 0x19, 0xbb, 0x1f, 0x04, 0x19, 0x6d, 0xf8, 0xcb, 0xe8, 0xdb, 0x4a, 0x72, 0xc2, 0x66, 0xfc,
- 0x8a, 0x95, 0x03, 0x54, 0x4b, 0x0b, 0x89, 0x47, 0xde, 0x82, 0xa0, 0xed, 0x1d, 0x9e, 0x5f, 0xb1,
- 0x52, 0xe0, 0xb6, 0xb5, 0x30, 0x6c, 0xdb, 0x42, 0xda, 0xf6, 0xdf, 0xae, 0x45, 0xdf, 0x1d, 0xcd,
- 0x66, 0x7c, 0x99, 0x8b, 0x03, 0x3e, 0x8b, 0xb3, 0x83, 0x34, 0xbf, 0x3c, 0x62, 0xaf, 0x76, 0x2e,
- 0x6a, 0x3e, 0x9f, 0xb3, 0xc1, 0x13, 0xff, 0xa9, 0x2a, 0x74, 0x68, 0xd8, 0xa1, 0x0b, 0x1b, 0xdf,
- 0x1f, 0x5d, 0x4f, 0x49, 0x97, 0xe5, 0x1f, 0xd6, 0xa2, 0x1b, 0xb0, 0x2c, 0x13, 0x9e, 0x5d, 0x31,
- 0x5b, 0x9a, 0x8f, 0x3b, 0x0c, 0xfb, 0xb8, 0x29, 0xcf, 0x27, 0xd7, 0x55, 0xd3, 0x25, 0xca, 0xa2,
- 0xb7, 0xdd, 0x70, 0x99, 0xb0, 0x4a, 0x76, 0xa7, 0xfb, 0x74, 0x44, 0x68, 0xc4, 0x78, 0x7e, 0xd0,
- 0x07, 0xd5, 0xde, 0xd2, 0x68, 0xa0, 0xbd, 0x65, 0xbc, 0x32, 0xce, 0xee, 0xa1, 0x16, 0x1c, 0xc2,
- 0xf8, 0xba, 0xdf, 0x83, 0xd4, 0xae, 0xfe, 0x28, 0xfa, 0x95, 0x97, 0xbc, 0xbc, 0xac, 0x8a, 0x78,
- 0xc6, 0x74, 0x57, 0xb8, 0xeb, 0x6b, 0x37, 0x52, 0xd8, 0x1b, 0xd6, 0xbb, 0x30, 0x27, 0x68, 0x1b,
- 0xe1, 0xf3, 0x82, 0xc1, 0x31, 0xc8, 0x2a, 0xd6, 0x42, 0x2a, 0x68, 0x21, 0xa4, 0x6d, 0x5f, 0x46,
- 0x03, 0x6b, 0xfb, 0xec, 0x8f, 0xd9, 0x4c, 0x8c, 0x92, 0x04, 0xb6, 0x8a, 0xd5, 0x95, 0xc4, 0x70,
- 0x94, 0x24, 0x54, 0xab, 0xe0, 0xa8, 0x76, 0xf6, 0x2a, 0x7a, 0x07, 0x38, 0x3b, 0x48, 0x2b, 0xe9,
- 0x70, 0x2b, 0x6c, 0x45, 0x63, 0xc6, 0xe9, 0xb0, 0x2f, 0xae, 0x1d, 0xff, 0xf9, 0x5a, 0xf4, 0x1d,
- 0xc4, 0xf3, 0x09, 0x5b, 0xf0, 0x2b, 0x36, 0x78, 0xd4, 0x6d, 0x4d, 0x91, 0xc6, 0xff, 0x87, 0xd7,
- 0xd0, 0x40, 0xc2, 0x64, 0xc2, 0x32, 0x36, 0x13, 0x64, 0x98, 0x28, 0x71, 0x67, 0x98, 0x18, 0xcc,
- 0xe9, 0x61, 0x8d, 0x70, 0x9f, 0x89, 0x9d, 0x65, 0x59, 0xb2, 0x5c, 0x90, 0x6d, 0x69, 0x91, 0xce,
- 0xb6, 0xf4, 0x50, 0xa4, 0x3e, 0xfb, 0x4c, 0x8c, 0xb2, 0x8c, 0xac, 0x8f, 0x12, 0x77, 0xd6, 0xc7,
- 0x60, 0xda, 0xc3, 0x2c, 0xfa, 0x55, 0xe7, 0x89, 0x89, 0x71, 0x7e, 0xce, 0x07, 0xf4, 0xb3, 0x90,
- 0x72, 0xe3, 0x63, 0xa3, 0x93, 0x43, 0xaa, 0xf1, 0xec, 0x75, 0xc1, 0x4b, 0xba, 0x59, 0x94, 0xb8,
- 0xb3, 0x1a, 0x06, 0xd3, 0x1e, 0xfe, 0x30, 0x7a, 0x4b, 0x8f, 0x92, 0xcd, 0x7c, 0x76, 0x07, 0x1d,
- 0x42, 0xe1, 0x84, 0x76, 0xb7, 0x83, 0x6a, 0x99, 0x3f, 0x4c, 0xe7, 0x65, 0x3d, 0xfa, 0xe0, 0xe6,
- 0xb5, 0xb4, 0xc3, 0xbc, 0xa5, 0xb4, 0x79, 0x1e, 0xfd, 0xba, 0x6f, 0x7e, 0x27, 0xce, 0x67, 0x2c,
- 0x1b, 0x3c, 0x08, 0xa9, 0x2b, 0xc6, 0xb8, 0xda, 0xec, 0xc5, 0xda, 0xc1, 0x4e, 0x13, 0x7a, 0x30,
- 0xfd, 0x00, 0xd5, 0x06, 0x43, 0xe9, 0x9d, 0x30, 0xd4, 0xb2, 0xbd, 0xcb, 0x32, 0x46, 0xda, 0x56,
- 0xc2, 0x0e, 0xdb, 0x06, 0xd2, 0xb6, 0xcb, 0xe8, 0x37, 0x4c, 0x33, 0xd7, 0x79, 0x81, 0x94, 0xd7,
- 0x93, 0xce, 0x26, 0xd1, 0x8e, 0x2e, 0x64, 0x7c, 0x3d, 0xec, 0x07, 0xb7, 0xea, 0xa3, 0x47, 0x14,
- 0xbc, 0x3e, 0x60, 0x3c, 0xb9, 0x13, 0x86, 0xb4, 0xed, 0xbf, 0x5b, 0x8b, 0xbe, 0xa7, 0x65, 0xcf,
- 0xf2, 0xf8, 0x2c, 0x63, 0x72, 0x8a, 0x3f, 0x62, 0xe2, 0x15, 0x2f, 0x2f, 0x27, 0xab, 0x7c, 0x46,
- 0xa4, 0x33, 0x38, 0xdc, 0x91, 0xce, 0x90, 0x4a, 0xba, 0x30, 0x7f, 0x12, 0xbd, 0xdb, 0x04, 0xc5,
- 0x45, 0x9c, 0xcf, 0xd9, 0x0f, 0x2b, 0x9e, 0x8f, 0x8a, 0x74, 0x94, 0x24, 0xe5, 0x60, 0x88, 0x37,
- 0x3d, 0xe4, 0x4c, 0x09, 0xb6, 0x7b, 0xf3, 0x4e, 0xfa, 0xac, 0x9f, 0xb2, 0xe0, 0x05, 0x4c, 0x9f,
- 0x9b, 0xc7, 0x27, 0x78, 0x41, 0xa5, 0xcf, 0x3e, 0xd2, 0xb2, 0x7a, 0x58, 0xcf, 0x41, 0xb8, 0xd5,
- 0x43, 0x77, 0xd2, 0xb9, 0x1d, 0x42, 0xec, 0x1c, 0xd0, 0x3c, 0x28, 0x9e, 0x9f, 0xa7, 0xf3, 0xd3,
- 0x22, 0xa9, 0xfb, 0xd0, 0x7d, 0xbc, 0xce, 0x0e, 0x42, 0xcc, 0x01, 0x04, 0xaa, 0xbd, 0xfd, 0xbd,
- 0xcd, 0x32, 0xf5, 0xb8, 0xb4, 0x57, 0xf2, 0xc5, 0x01, 0x9b, 0xc7, 0xb3, 0x95, 0x1e, 0x4c, 0x3f,
- 0x0a, 0x8d, 0x62, 0x90, 0x36, 0x85, 0xf8, 0xf8, 0x9a, 0x5a, 0xba, 0x3c, 0xff, 0xb1, 0x16, 0xdd,
- 0xf1, 0xe2, 0x44, 0x07, 0x93, 0x2a, 0xfd, 0x28, 0x4f, 0x4e, 0x58, 0x25, 0xe2, 0x52, 0x0c, 0xbe,
- 0x1f, 0x88, 0x01, 0x42, 0xc7, 0x94, 0xed, 0x07, 0xdf, 0x48, 0xd7, 0xb6, 0xfa, 0xa4, 0x9e, 0x25,
- 0xf4, 0xf8, 0xe3, 0xb7, 0xba, 0x94, 0xc0, 0xd1, 0xe7, 0x76, 0x08, 0xb1, 0xad, 0x2e, 0x05, 0xe3,
- 0xfc, 0x2a, 0x15, 0x6c, 0x9f, 0xe5, 0xac, 0x6c, 0xb7, 0xba, 0x52, 0xf5, 0x11, 0xa2, 0xd5, 0x09,
- 0xd4, 0x8e, 0x74, 0x9e, 0x37, 0x93, 0x69, 0x6c, 0x06, 0x8c, 0xb4, 0x72, 0x8d, 0x87, 0xfd, 0x60,
- 0xa2, 0x86, 0x62, 0xbf, 0x36, 0x12, 0xac, 0xa1, 0x42, 0x7a, 0xd5, 0xd0, 0xa0, 0x76, 0x61, 0xee,
- 0x78, 0x3b, 0x61, 0x57, 0xfc, 0x12, 0x2e, 0xcc, 0x5d, 0x03, 0x0a, 0x20, 0x16, 0xe6, 0x28, 0x68,
- 0x93, 0x0f, 0xc7, 0xcf, 0x8b, 0x94, 0xbd, 0x02, 0xc9, 0x87, 0xab, 0x5c, 0x8b, 0x89, 0xe4, 0x03,
- 0xc1, 0xb4, 0x87, 0xa3, 0xe8, 0x97, 0xa4, 0xf0, 0x87, 0x3c, 0xcd, 0x07, 0x37, 0x11, 0xa5, 0x5a,
- 0x60, 0xac, 0xde, 0xa2, 0x01, 0x50, 0xe2, 0xfa, 0xaf, 0x3a, 0x13, 0xb8, 0x4b, 0x28, 0x81, 0x24,
- 0x60, 0xbd, 0x0b, 0xb3, 0x59, 0x9f, 0x14, 0xd6, 0xa3, 0xe5, 0xe4, 0x22, 0x2e, 0xd3, 0x7c, 0x3e,
- 0xc0, 0x74, 0x1d, 0x39, 0x91, 0xf5, 0x61, 0x1c, 0x08, 0x27, 0xad, 0x38, 0x2a, 0x8a, 0xb2, 0x1e,
- 0x84, 0xb1, 0x70, 0xf2, 0x91, 0x60, 0x38, 0xb5, 0x50, 0xdc, 0xdb, 0x2e, 0x9b, 0x65, 0x69, 0x1e,
- 0xf4, 0xa6, 0x91, 0x3e, 0xde, 0x2c, 0x0a, 0x82, 0xf7, 0x80, 0xc5, 0x57, 0xac, 0xa9, 0x19, 0xf6,
- 0x64, 0x5c, 0x20, 0x18, 0xbc, 0x00, 0xb4, 0x4b, 0x6c, 0x29, 0x3e, 0x8c, 0x2f, 0x59, 0xfd, 0x80,
- 0x59, 0x3d, 0x85, 0x0f, 0x30, 0x7d, 0x8f, 0x20, 0x96, 0xd8, 0x38, 0xa9, 0x5d, 0x2d, 0xa3, 0x77,
- 0xa4, 0xfc, 0x38, 0x2e, 0x45, 0x3a, 0x4b, 0x8b, 0x38, 0x6f, 0x96, 0x6e, 0xd8, 0x28, 0xd2, 0xa2,
- 0x8c, 0xcb, 0xad, 0x9e, 0xb4, 0x76, 0xfb, 0xaf, 0x6b, 0xd1, 0xfb, 0xd0, 0xef, 0x31, 0x2b, 0x17,
- 0xa9, 0xdc, 0x01, 0xa8, 0xd4, 0x90, 0x3f, 0xf8, 0x34, 0x6c, 0xb4, 0xa5, 0x60, 0x4a, 0xf3, 0xd9,
- 0xf5, 0x15, 0x6d, 0xde, 0x37, 0xd1, 0xab, 0xa2, 0xe7, 0x65, 0xd2, 0xda, 0x21, 0x9b, 0x34, 0x4b,
- 0x1d, 0x29, 0x24, 0xf2, 0xbe, 0x16, 0x04, 0x7a, 0xf8, 0x69, 0x5e, 0x35, 0xd6, 0xb1, 0x1e, 0x6e,
- 0xc5, 0xc1, 0x1e, 0xee, 0x61, 0xb6, 0x87, 0x1f, 0x2f, 0xcf, 0xb2, 0xb4, 0xba, 0x48, 0xf3, 0xb9,
- 0x4e, 0xf2, 0x7d, 0x5d, 0x2b, 0x86, 0x79, 0xfe, 0x46, 0x27, 0x87, 0x39, 0xd1, 0xc1, 0x42, 0x3a,
- 0x01, 0x61, 0xb2, 0xd1, 0xc9, 0xd9, 0xb5, 0x97, 0x95, 0xd6, 0x8b, 0x7e, 0xb0, 0xf6, 0x72, 0x54,
- 0x6b, 0x29, 0xb1, 0xf6, 0x6a, 0x53, 0x76, 0xed, 0xe5, 0xd6, 0xa1, 0xe2, 0xd9, 0x15, 0x3b, 0x2d,
- 0x53, 0xb0, 0xf6, 0xf2, 0xca, 0xd7, 0x30, 0xc4, 0xda, 0x8b, 0x62, 0xed, 0x40, 0x65, 0x89, 0x7d,
- 0x26, 0x26, 0x22, 0x16, 0xcb, 0x0a, 0x0c, 0x54, 0x8e, 0x0d, 0x83, 0x10, 0x03, 0x15, 0x81, 0x6a,
- 0x6f, 0xbf, 0x1f, 0x45, 0x6a, 0xbf, 0x44, 0xee, 0x69, 0xf9, 0x73, 0x8f, 0xde, 0x48, 0xf1, 0x36,
- 0xb4, 0xde, 0x0f, 0x10, 0x36, 0xbd, 0x52, 0x7f, 0x97, 0x5b, 0x75, 0x03, 0x54, 0x43, 0x8a, 0x88,
- 0xf4, 0x0a, 0x20, 0xb0, 0xa0, 0x93, 0x0b, 0xfe, 0x0a, 0x2f, 0x68, 0x2d, 0x09, 0x17, 0x54, 0x13,
- 0x76, 0xf3, 0x5c, 0x17, 0x14, 0xdb, 0x3c, 0x6f, 0x8a, 0x11, 0xda, 0x3c, 0x87, 0x8c, 0x8d, 0x19,
- 0xd7, 0xf0, 0x53, 0xce, 0x2f, 0x17, 0x71, 0x79, 0x09, 0x62, 0xc6, 0x53, 0x6e, 0x18, 0x22, 0x66,
- 0x28, 0xd6, 0xc6, 0x8c, 0xeb, 0xb0, 0x4e, 0xce, 0x4f, 0xcb, 0x0c, 0xc4, 0x8c, 0x67, 0x43, 0x23,
- 0x44, 0xcc, 0x10, 0xa8, 0x1d, 0x9d, 0x5c, 0x6f, 0x13, 0x06, 0xb7, 0x6b, 0x3c, 0xf5, 0x09, 0xa3,
- 0xb6, 0x6b, 0x10, 0x0c, 0x86, 0xd0, 0x7e, 0x19, 0x17, 0x17, 0x78, 0x08, 0x49, 0x51, 0x38, 0x84,
- 0x1a, 0x04, 0xb6, 0xf7, 0x84, 0xc5, 0xe5, 0xec, 0x02, 0x6f, 0x6f, 0x25, 0x0b, 0xb7, 0xb7, 0x61,
- 0x60, 0x7b, 0x2b, 0xc1, 0xcb, 0x54, 0x5c, 0x1c, 0x32, 0x11, 0xe3, 0xed, 0xed, 0x33, 0xe1, 0xf6,
- 0x6e, 0xb1, 0x36, 0xfb, 0x77, 0x1d, 0x4e, 0x96, 0x67, 0xd5, 0xac, 0x4c, 0xcf, 0xd8, 0x20, 0x60,
- 0xc5, 0x40, 0x44, 0xf6, 0x4f, 0xc2, 0xda, 0xe7, 0x4f, 0xd7, 0xa2, 0x9b, 0x4d, 0xb3, 0xf3, 0xaa,
- 0xd2, 0x73, 0x9f, 0xef, 0xfe, 0x63, 0xbc, 0x7d, 0x09, 0x9c, 0x78, 0x9d, 0xd1, 0x43, 0xcd, 0xc9,
- 0x0d, 0xf0, 0x22, 0x9d, 0xe6, 0x95, 0x29, 0xd4, 0xa7, 0x7d, 0xac, 0x3b, 0x0a, 0x44, 0x6e, 0xd0,
- 0x4b, 0xd1, 0xa6, 0x65, 0xba, 0x7d, 0x1a, 0xd9, 0x38, 0xa9, 0x40, 0x5a, 0xd6, 0x3c, 0x6f, 0x87,
- 0x20, 0xd2, 0x32, 0x9c, 0x84, 0xa1, 0xb0, 0x5f, 0xf2, 0x65, 0x51, 0x75, 0x84, 0x02, 0x80, 0xc2,
- 0xa1, 0xd0, 0x86, 0xb5, 0xcf, 0xd7, 0xd1, 0x6f, 0xba, 0xe1, 0xe7, 0x3e, 0xec, 0x2d, 0x3a, 0xa6,
- 0xb0, 0x47, 0x3c, 0xec, 0x8b, 0xdb, 0x8c, 0xa2, 0xf1, 0x2c, 0x76, 0x99, 0x88, 0xd3, 0xac, 0x1a,
- 0xac, 0xe3, 0x36, 0x1a, 0x39, 0x91, 0x51, 0x60, 0x1c, 0x1c, 0xdf, 0x76, 0x97, 0x45, 0x96, 0xce,
- 0xda, 0x2f, 0x93, 0xb4, 0xae, 0x11, 0x87, 0xc7, 0x37, 0x17, 0x83, 0xe3, 0x75, 0x9d, 0xfa, 0xc9,
- 0xff, 0x4c, 0x57, 0x05, 0xc3, 0xc7, 0x6b, 0x0f, 0x09, 0x8f, 0xd7, 0x10, 0x85, 0xf5, 0x99, 0x30,
- 0x71, 0x10, 0xaf, 0xf8, 0x92, 0x18, 0xaf, 0x8d, 0x38, 0x5c, 0x1f, 0x17, 0xb3, 0x6b, 0x03, 0xe3,
- 0x61, 0x9c, 0x0b, 0x56, 0xe6, 0x71, 0xb6, 0x97, 0xc5, 0xf3, 0x6a, 0x40, 0x8c, 0x31, 0x3e, 0x45,
- 0xac, 0x0d, 0x68, 0x1a, 0x79, 0x8c, 0xe3, 0x6a, 0x2f, 0xbe, 0xe2, 0x65, 0x2a, 0xe8, 0xc7, 0x68,
- 0x91, 0xce, 0xc7, 0xe8, 0xa1, 0xa8, 0xb7, 0x51, 0x39, 0xbb, 0x48, 0xaf, 0x58, 0x12, 0xf0, 0xd6,
- 0x20, 0x3d, 0xbc, 0x39, 0x28, 0xd2, 0x68, 0x13, 0xbe, 0x2c, 0x67, 0x8c, 0x6c, 0x34, 0x25, 0xee,
- 0x6c, 0x34, 0x83, 0x69, 0x0f, 0x7f, 0xb5, 0x16, 0xfd, 0x96, 0x92, 0xba, 0x6f, 0x78, 0x76, 0xe3,
- 0xea, 0xe2, 0x8c, 0xc7, 0x65, 0x32, 0xf8, 0x10, 0xb3, 0x83, 0xa2, 0xc6, 0xf5, 0xe3, 0xeb, 0xa8,
- 0xc0, 0xc7, 0x5a, 0xe7, 0xdd, 0xb6, 0xc7, 0xa1, 0x8f, 0xd5, 0x43, 0xc2, 0x8f, 0x15, 0xa2, 0x70,
- 0x00, 0x91, 0x72, 0xb5, 0x01, 0xb8, 0x4e, 0xea, 0xfb, 0xbb, 0x80, 0x1b, 0x9d, 0x1c, 0x1c, 0x1f,
- 0x6b, 0xa1, 0x1f, 0x2d, 0x5b, 0x94, 0x0d, 0x3c, 0x62, 0x86, 0x7d, 0x71, 0xd2, 0xb3, 0xe9, 0x15,
- 0x61, 0xcf, 0xad, 0x9e, 0x31, 0xec, 0x8b, 0x13, 0x9e, 0x9d, 0x61, 0x2d, 0xe4, 0x19, 0x19, 0xda,
- 0x86, 0x7d, 0x71, 0x98, 0x7d, 0x69, 0xa6, 0x99, 0x17, 0x1e, 0x04, 0xec, 0xc0, 0xb9, 0x61, 0xb3,
- 0x17, 0xab, 0x1d, 0xfe, 0xcd, 0x5a, 0xf4, 0x5d, 0xeb, 0xf1, 0x90, 0x27, 0xe9, 0xf9, 0x4a, 0x41,
- 0x2f, 0xe2, 0x6c, 0xc9, 0xaa, 0xc1, 0x63, 0xca, 0x5a, 0x9b, 0x35, 0x25, 0x78, 0x72, 0x2d, 0x1d,
- 0xd8, 0x77, 0x46, 0x45, 0x91, 0xad, 0xa6, 0x6c, 0x51, 0x64, 0x64, 0xdf, 0xf1, 0x90, 0x70, 0xdf,
- 0x81, 0x28, 0xcc, 0xca, 0xa7, 0xbc, 0xce, 0xf9, 0xd1, 0xac, 0x5c, 0x8a, 0xc2, 0x59, 0x79, 0x83,
- 0xc0, 0x5c, 0x69, 0xca, 0x77, 0x78, 0x96, 0xb1, 0x99, 0x68, 0x9f, 0x12, 0x31, 0x9a, 0x96, 0x08,
- 0xe7, 0x4a, 0x80, 0xb4, 0xbb, 0x72, 0xcd, 0x1a, 0x32, 0x2e, 0xd9, 0xd3, 0xd5, 0x41, 0x9a, 0x5f,
- 0x0e, 0xf0, 0xb4, 0xc0, 0x02, 0xc4, 0xae, 0x1c, 0x0a, 0xc2, 0xb5, 0xea, 0x69, 0x9e, 0x70, 0x7c,
- 0xad, 0x5a, 0x4b, 0xc2, 0x6b, 0x55, 0x4d, 0x40, 0x93, 0x27, 0x8c, 0x32, 0x59, 0x4b, 0xc2, 0x26,
- 0x35, 0x81, 0x0d, 0x85, 0xfa, 0x4d, 0x11, 0x39, 0x14, 0x82, 0x77, 0x43, 0x1b, 0x9d, 0x1c, 0x8c,
- 0xd0, 0x66, 0xd1, 0xba, 0xc7, 0xc4, 0xec, 0x02, 0x8f, 0x50, 0x0f, 0x09, 0x47, 0x28, 0x44, 0x61,
- 0x95, 0xa6, 0xdc, 0x2c, 0xba, 0xd7, 0xf1, 0xf8, 0x68, 0x2d, 0xb8, 0x37, 0x3a, 0x39, 0xb8, 0x8c,
- 0x1c, 0x2f, 0xe4, 0x33, 0x43, 0x83, 0x5c, 0xc9, 0xc2, 0xcb, 0x48, 0xc3, 0xc0, 0xd2, 0x2b, 0x81,
- 0xdc, 0xcb, 0x5a, 0xa7, 0x15, 0xbd, 0xdd, 0xac, 0x8d, 0x4e, 0x4e, 0x3b, 0xf9, 0x67, 0xb3, 0x8c,
- 0x53, 0xd2, 0x23, 0x5e, 0xf7, 0x91, 0x17, 0x71, 0x96, 0x26, 0xb1, 0x60, 0x53, 0x7e, 0xc9, 0x72,
- 0x7c, 0xc5, 0xa4, 0x4b, 0xab, 0xf8, 0xa1, 0xa7, 0x10, 0x5e, 0x31, 0x85, 0x15, 0x61, 0x9c, 0x28,
- 0xfa, 0xb4, 0x62, 0x3b, 0x71, 0x45, 0x8c, 0x64, 0x1e, 0x12, 0x8e, 0x13, 0x88, 0xc2, 0x7c, 0x55,
- 0xc9, 0x9f, 0xbd, 0x2e, 0x58, 0x99, 0xb2, 0x7c, 0xc6, 0xf0, 0x7c, 0x15, 0x52, 0xe1, 0x7c, 0x15,
- 0xa1, 0xe1, 0x5a, 0x6d, 0x37, 0x16, 0xec, 0xe9, 0x6a, 0x9a, 0x2e, 0x58, 0x25, 0xe2, 0x45, 0x81,
- 0xaf, 0xd5, 0x00, 0x14, 0x5e, 0xab, 0xb5, 0xe1, 0xd6, 0xd6, 0x90, 0x19, 0x10, 0xdb, 0x87, 0xcb,
- 0x20, 0x11, 0x38, 0x5c, 0x46, 0xa0, 0xf0, 0xc1, 0x5a, 0x00, 0x7d, 0x49, 0xd0, 0xb2, 0x12, 0x7c,
- 0x49, 0x40, 0xd3, 0xad, 0x0d, 0x37, 0xc3, 0x4c, 0xea, 0xae, 0xd9, 0x51, 0xf4, 0x89, 0xdb, 0x45,
- 0x37, 0x7b, 0xb1, 0xf8, 0x0e, 0xdf, 0x09, 0xcb, 0x62, 0x39, 0x6d, 0x05, 0xb6, 0xd1, 0x1a, 0xa6,
- 0xcf, 0x0e, 0x9f, 0xc3, 0x6a, 0x87, 0x7f, 0xb1, 0x16, 0xbd, 0x87, 0x79, 0x7c, 0x5e, 0x48, 0xbf,
- 0x8f, 0xba, 0x6d, 0x29, 0x92, 0x38, 0x3d, 0x17, 0xd6, 0xb0, 0x07, 0x40, 0x1a, 0x91, 0x3d, 0x5c,
- 0xa7, 0x0b, 0xe0, 0x27, 0x6d, 0xa6, 0xfc, 0x90, 0x23, 0x0e, 0x80, 0x84, 0x78, 0xbb, 0x1e, 0xf2,
- 0xcb, 0x55, 0x81, 0xf5, 0x90, 0xb1, 0xa1, 0xc5, 0xc4, 0x7a, 0x08, 0xc1, 0x6c, 0xef, 0x74, 0xab,
- 0xf7, 0x32, 0x15, 0x17, 0x32, 0xdf, 0x02, 0xbd, 0xd3, 0x2b, 0xab, 0x81, 0x88, 0xde, 0x49, 0xc2,
- 0x30, 0x23, 0x69, 0xc0, 0xba, 0x6f, 0x62, 0x63, 0xb9, 0x31, 0xe4, 0xf6, 0xcc, 0x7b, 0xdd, 0x20,
- 0x8c, 0xd7, 0x46, 0xac, 0x97, 0x3e, 0x0f, 0x42, 0x16, 0xc0, 0xf2, 0x67, 0xb3, 0x17, 0xab, 0x1d,
- 0xfe, 0x59, 0xf4, 0x9d, 0x56, 0xc5, 0xf6, 0x58, 0x2c, 0x96, 0x25, 0x4b, 0x06, 0xdb, 0x1d, 0xe5,
- 0x6e, 0x40, 0xe3, 0xfa, 0x51, 0x7f, 0x85, 0x56, 0x8e, 0xde, 0x70, 0x2a, 0xac, 0x4c, 0x19, 0x1e,
- 0x87, 0x4c, 0xfa, 0x6c, 0x30, 0x47, 0xa7, 0x75, 0x5a, 0xcb, 0x6c, 0x37, 0xba, 0x46, 0x57, 0x71,
- 0x9a, 0xc9, 0x97, 0xb5, 0x1f, 0x86, 0x8c, 0x7a, 0x68, 0x70, 0x99, 0x4d, 0xaa, 0xb4, 0x46, 0x66,
- 0xd9, 0xc7, 0x9d, 0xe5, 0xd9, 0x43, 0x7a, 0x24, 0x40, 0x56, 0x67, 0x5b, 0x3d, 0x69, 0xed, 0x56,
- 0x34, 0x53, 0x5e, 0xfd, 0x67, 0x37, 0xc8, 0x31, 0xaf, 0x5a, 0x15, 0x89, 0xf4, 0xad, 0x9e, 0xb4,
- 0xf6, 0xfa, 0xa7, 0xd1, 0xbb, 0x6d, 0xaf, 0x7a, 0x22, 0xda, 0xee, 0x34, 0x05, 0xe6, 0xa2, 0x47,
- 0xfd, 0x15, 0xb4, 0xfb, 0x7f, 0x33, 0xfb, 0xd2, 0xca, 0xff, 0x8c, 0x2f, 0x16, 0x2c, 0x4f, 0x58,
- 0xd2, 0x68, 0x54, 0xf5, 0xfa, 0xe9, 0x33, 0xda, 0xae, 0x51, 0x18, 0xba, 0x1a, 0xa6, 0x44, 0xbf,
- 0xfd, 0x0d, 0x34, 0x75, 0xd1, 0xfe, 0x6b, 0x2d, 0xba, 0x8f, 0x16, 0xad, 0x09, 0x5c, 0xaf, 0x88,
- 0xbf, 0xd7, 0xc7, 0x11, 0xa6, 0x69, 0x8a, 0x3a, 0xfa, 0x39, 0x2c, 0xe8, 0x22, 0xff, 0xfb, 0x5a,
- 0x74, 0xdb, 0x2a, 0xd6, 0xe1, 0xbd, 0xc3, 0xf3, 0xf3, 0x2c, 0x9d, 0x09, 0xf9, 0x46, 0x56, 0xab,
- 0xd0, 0x8f, 0x93, 0xd2, 0xe8, 0x7e, 0x9c, 0x01, 0x4d, 0xbb, 0x78, 0xfd, 0x3c, 0xad, 0x04, 0x2f,
- 0x57, 0x93, 0x0b, 0xfe, 0xaa, 0xf9, 0x3c, 0xc9, 0x1f, 0x97, 0x35, 0x30, 0x74, 0x08, 0x62, 0xf1,
- 0x8a, 0x93, 0x2d, 0x57, 0xf6, 0x33, 0xa6, 0x8a, 0x70, 0xe5, 0x10, 0x1d, 0xae, 0x7c, 0xd2, 0xce,
- 0x4a, 0x4d, 0xad, 0xec, 0x37, 0x57, 0x1b, 0x78, 0x51, 0xdb, 0xdf, 0x5d, 0xdd, 0xeb, 0x06, 0x6d,
- 0x6e, 0xaa, 0xc5, 0xbb, 0xe9, 0xf9, 0xb9, 0xa9, 0x13, 0x5e, 0x52, 0x17, 0x21, 0x72, 0x53, 0x02,
- 0xb5, 0xcb, 0xab, 0xbd, 0x34, 0x63, 0xf2, 0xdd, 0xcd, 0xf3, 0xf3, 0xf3, 0x8c, 0xc7, 0x09, 0x58,
- 0x5e, 0xd5, 0xe2, 0xa1, 0x2b, 0x27, 0x96, 0x57, 0x18, 0x67, 0x4f, 0x85, 0xd4, 0xd2, 0x3a, 0xba,
- 0xf3, 0x59, 0x9a, 0xc1, 0xd3, 0xcd, 0x52, 0xd3, 0x08, 0x89, 0x53, 0x21, 0x2d, 0xc8, 0xa6, 0x40,
- 0xb5, 0xa8, 0x8e, 0xca, 0xa6, 0xfc, 0x77, 0xdb, 0x8a, 0x8e, 0x98, 0x48, 0x81, 0x10, 0xcc, 0xee,
- 0x32, 0xd4, 0xc2, 0xd3, 0x42, 0x1a, 0xbf, 0xd5, 0xd6, 0x52, 0x12, 0x62, 0x97, 0xc1, 0x27, 0xec,
- 0x6a, 0xb9, 0xfe, 0xfb, 0x2e, 0x7f, 0x95, 0x4b, 0xa3, 0xb7, 0xdb, 0x2a, 0x8d, 0x8c, 0x58, 0x2d,
- 0x43, 0x46, 0x1b, 0xfe, 0x22, 0xfa, 0x45, 0x69, 0xb8, 0xe4, 0xc5, 0xe0, 0x06, 0xa2, 0x50, 0x3a,
- 0x67, 0x81, 0x6f, 0x92, 0x72, 0x7b, 0x88, 0xc4, 0xc4, 0xc6, 0x69, 0x15, 0xcf, 0xe1, 0x01, 0x7e,
- 0xdb, 0xe2, 0x52, 0x4a, 0x1c, 0x22, 0x69, 0x53, 0x7e, 0x54, 0x1c, 0xf1, 0x44, 0x5b, 0x47, 0x6a,
- 0x68, 0x84, 0xa1, 0xa8, 0x70, 0x21, 0x9b, 0xb6, 0x1e, 0xc5, 0x57, 0xe9, 0xdc, 0xa4, 0x16, 0x6a,
- 0x00, 0xab, 0x40, 0xda, 0x6a, 0x99, 0xa1, 0x03, 0x11, 0x69, 0x2b, 0x09, 0x6b, 0x9f, 0xff, 0xb4,
- 0x16, 0xdd, 0xb2, 0xcc, 0x7e, 0xb3, 0x2f, 0x3b, 0xce, 0xcf, 0x79, 0x9d, 0xe4, 0x1e, 0xa4, 0xf9,
- 0x65, 0x35, 0xf8, 0x84, 0x32, 0x89, 0xf3, 0xa6, 0x28, 0x9f, 0x5e, 0x5b, 0xcf, 0xae, 0x4f, 0x9a,
- 0x4d, 0x4b, 0x7b, 0x72, 0x41, 0x69, 0x80, 0xf5, 0x89, 0xd9, 0xdb, 0x84, 0x1c, 0xb1, 0x3e, 0x09,
- 0xf1, 0xb6, 0x89, 0x8d, 0xf3, 0x8c, 0xe7, 0xb0, 0x89, 0xad, 0x85, 0x5a, 0x48, 0x34, 0x71, 0x0b,
- 0xb2, 0xe3, 0x71, 0x23, 0x52, 0xfb, 0x6b, 0xa3, 0x2c, 0x03, 0xe3, 0xb1, 0x51, 0x35, 0x00, 0x31,
- 0x1e, 0xa3, 0xa0, 0xf6, 0x73, 0x12, 0x7d, 0xab, 0x7e, 0xa4, 0xc7, 0x25, 0xbb, 0x4a, 0x19, 0x3c,
- 0x64, 0xe3, 0x48, 0x88, 0xfe, 0xef, 0x13, 0xb6, 0x67, 0x9d, 0xe6, 0x55, 0x91, 0xc5, 0xd5, 0x85,
- 0x3e, 0x76, 0xe1, 0xd7, 0xb9, 0x11, 0xc2, 0x83, 0x17, 0x77, 0x3b, 0x28, 0x3b, 0xa8, 0x37, 0x32,
- 0x33, 0xc4, 0xac, 0xe3, 0xaa, 0xad, 0x61, 0x66, 0xa3, 0x93, 0xb3, 0xef, 0x36, 0xf6, 0xe3, 0x2c,
- 0x63, 0xe5, 0xaa, 0x91, 0x1d, 0xc6, 0x79, 0x7a, 0xce, 0x2a, 0x01, 0xde, 0x6d, 0x68, 0x6a, 0x08,
- 0x31, 0xe2, 0xdd, 0x46, 0x00, 0xb7, 0xeb, 0x36, 0xe0, 0x79, 0x9c, 0x27, 0xec, 0x35, 0x58, 0xb7,
- 0x41, 0x3b, 0x92, 0x21, 0xd6, 0x6d, 0x14, 0x6b, 0xf7, 0xf8, 0x9f, 0x66, 0x7c, 0x76, 0xa9, 0xa7,
- 0x00, 0xbf, 0x81, 0xa5, 0x04, 0xce, 0x01, 0xb7, 0x43, 0x88, 0x9d, 0x04, 0xa4, 0xe0, 0x84, 0x15,
- 0x59, 0x3c, 0x83, 0x27, 0xad, 0x94, 0x8e, 0x96, 0x11, 0x93, 0x00, 0x64, 0x40, 0x71, 0xf5, 0x09,
- 0x2e, 0xac, 0xb8, 0xe0, 0x00, 0xd7, 0xed, 0x10, 0x62, 0xa7, 0x41, 0x29, 0x98, 0x14, 0x59, 0x2a,
- 0x40, 0x37, 0x50, 0x1a, 0x52, 0x42, 0x74, 0x03, 0x9f, 0x00, 0x26, 0x0f, 0x59, 0x39, 0x67, 0xa8,
- 0x49, 0x29, 0x09, 0x9a, 0x6c, 0x08, 0x7b, 0xac, 0x5c, 0xd5, 0x9d, 0x17, 0x2b, 0x70, 0xac, 0x5c,
- 0x57, 0x8b, 0x17, 0x2b, 0xe2, 0x58, 0xb9, 0x07, 0x80, 0x22, 0x1e, 0xc7, 0x95, 0xc0, 0x8b, 0x28,
- 0x25, 0xc1, 0x22, 0x36, 0x84, 0x9d, 0xa3, 0x55, 0x11, 0x97, 0x02, 0xcc, 0xd1, 0xba, 0x00, 0xce,
- 0x59, 0x83, 0x9b, 0xa4, 0xdc, 0x8e, 0x24, 0xaa, 0x55, 0x98, 0xd8, 0x4b, 0x59, 0x96, 0x54, 0x60,
- 0x24, 0xd1, 0xcf, 0xbd, 0x91, 0x12, 0x23, 0x49, 0x9b, 0x02, 0xa1, 0xa4, 0xdf, 0x84, 0x60, 0xb5,
- 0x03, 0x2f, 0x41, 0x6e, 0x87, 0x10, 0x3b, 0x3e, 0x35, 0x85, 0xde, 0x89, 0xcb, 0x32, 0xad, 0x27,
- 0xff, 0x75, 0xbc, 0x40, 0x8d, 0x9c, 0x18, 0x9f, 0x30, 0x0e, 0x74, 0xaf, 0x66, 0xe0, 0xc6, 0x0a,
- 0x06, 0x87, 0xee, 0x0f, 0x82, 0x8c, 0xcd, 0x38, 0xa5, 0xc4, 0x79, 0x59, 0x8e, 0x3d, 0x4d, 0xe4,
- 0x5d, 0xf9, 0x7a, 0x17, 0xe6, 0x7c, 0xe1, 0x66, 0x5c, 0x1c, 0xf2, 0x2b, 0x36, 0xe5, 0xcf, 0x5e,
- 0xa7, 0x55, 0xbd, 0xdc, 0xd2, 0x33, 0xf7, 0x13, 0xc2, 0x12, 0x06, 0x13, 0x5f, 0xb8, 0x75, 0x2a,
- 0xd9, 0x04, 0x02, 0x94, 0xe5, 0x88, 0xbd, 0x42, 0x13, 0x08, 0x68, 0xd1, 0x70, 0x44, 0x02, 0x11,
- 0xe2, 0xed, 0x8e, 0x99, 0x71, 0xae, 0xaf, 0x35, 0x98, 0xf2, 0x26, 0x97, 0xa3, 0xac, 0x41, 0x90,
- 0xd8, 0xb4, 0x08, 0x2a, 0xd8, 0xf5, 0xa5, 0xf1, 0x6f, 0xbb, 0xd8, 0x3d, 0xc2, 0x4e, 0xbb, 0x9b,
- 0xdd, 0xef, 0x41, 0x22, 0xae, 0xec, 0x89, 0x0f, 0xca, 0x55, 0xfb, 0xc0, 0xc7, 0xfd, 0x1e, 0xa4,
- 0xb3, 0xfb, 0xe6, 0x56, 0xeb, 0x69, 0x3c, 0xbb, 0x9c, 0x97, 0x7c, 0x99, 0x27, 0x3b, 0x3c, 0xe3,
- 0x25, 0xd8, 0x7d, 0xf3, 0x4a, 0x0d, 0x50, 0x62, 0xf7, 0xad, 0x43, 0xc5, 0x66, 0x70, 0x6e, 0x29,
- 0x46, 0x59, 0x3a, 0x87, 0x2b, 0x6a, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, 0x05, 0x91, 0x20, 0x52,
- 0x2b, 0x6e, 0x91, 0xce, 0xe2, 0x4c, 0xf9, 0xdb, 0xa6, 0xcd, 0x78, 0x60, 0x67, 0x10, 0x21, 0x0a,
- 0x48, 0x3d, 0xa7, 0xcb, 0x32, 0x1f, 0xe7, 0x82, 0x93, 0xf5, 0x6c, 0x80, 0xce, 0x7a, 0x3a, 0x20,
- 0x18, 0x56, 0xa7, 0xec, 0x75, 0x5d, 0x9a, 0xfa, 0x1f, 0x6c, 0x58, 0xad, 0xff, 0x3e, 0xd4, 0xf2,
- 0xd0, 0xb0, 0x0a, 0x38, 0x50, 0x19, 0xed, 0x44, 0x05, 0x4c, 0x40, 0xdb, 0x0f, 0x93, 0x7b, 0xdd,
- 0x20, 0xee, 0x67, 0x22, 0x56, 0x19, 0x0b, 0xf9, 0x91, 0x40, 0x1f, 0x3f, 0x0d, 0x68, 0xb7, 0x5b,
- 0xbc, 0xfa, 0x5c, 0xb0, 0xd9, 0x65, 0xeb, 0x00, 0x9b, 0x5f, 0x50, 0x85, 0x10, 0xdb, 0x2d, 0x04,
- 0x8a, 0x37, 0xd1, 0x78, 0xc6, 0xf3, 0x50, 0x13, 0xd5, 0xf2, 0x3e, 0x4d, 0xa4, 0x39, 0xbb, 0xf8,
- 0x35, 0x52, 0x1d, 0x99, 0xaa, 0x99, 0x36, 0x09, 0x0b, 0x2e, 0x44, 0x2c, 0x7e, 0x49, 0xd8, 0xe6,
- 0xe4, 0xd0, 0xe7, 0x61, 0xfb, 0x74, 0x7f, 0xcb, 0xca, 0x21, 0x7d, 0xba, 0x9f, 0x62, 0xe9, 0x4a,
- 0xaa, 0x18, 0xe9, 0xb0, 0xe2, 0xc7, 0xc9, 0xc3, 0x7e, 0xb0, 0x5d, 0xf2, 0x78, 0x3e, 0x77, 0x32,
- 0x16, 0x97, 0xca, 0xeb, 0x56, 0xc0, 0x90, 0xc5, 0x88, 0x25, 0x4f, 0x00, 0x07, 0x43, 0x98, 0xe7,
- 0x79, 0x87, 0xe7, 0x82, 0xe5, 0x02, 0x1b, 0xc2, 0x7c, 0x63, 0x1a, 0x0c, 0x0d, 0x61, 0x94, 0x02,
- 0x88, 0x5b, 0xb9, 0x1f, 0xc4, 0xc4, 0x51, 0xbc, 0x40, 0x33, 0x36, 0xb5, 0xd7, 0xa3, 0xe4, 0xa1,
- 0xb8, 0x05, 0x9c, 0xf3, 0x3a, 0xd7, 0xf5, 0x32, 0x8d, 0xcb, 0xb9, 0xd9, 0xdd, 0x48, 0x06, 0x8f,
- 0x68, 0x3b, 0x3e, 0x49, 0xbc, 0xce, 0x0d, 0x6b, 0x80, 0x61, 0x67, 0xbc, 0x88, 0xe7, 0xa6, 0xa6,
- 0x48, 0x0d, 0xa4, 0xbc, 0x55, 0xd5, 0x7b, 0xdd, 0x20, 0xf0, 0xf3, 0x22, 0x4d, 0x18, 0x0f, 0xf8,
- 0x91, 0xf2, 0x3e, 0x7e, 0x20, 0x08, 0xb2, 0xb7, 0xba, 0xde, 0x6a, 0x45, 0x37, 0xca, 0x13, 0xbd,
- 0x8e, 0x1d, 0x12, 0x8f, 0x07, 0x70, 0xa1, 0xec, 0x8d, 0xe0, 0x41, 0x1f, 0x6d, 0x36, 0x68, 0x43,
- 0x7d, 0xd4, 0xec, 0xbf, 0xf6, 0xe9, 0xa3, 0x18, 0xac, 0x7d, 0xfe, 0x58, 0xf7, 0xd1, 0xdd, 0x58,
- 0xc4, 0x75, 0xde, 0xfe, 0x22, 0x65, 0xaf, 0xf4, 0x42, 0x18, 0xa9, 0x6f, 0x43, 0x0d, 0xe5, 0xc7,
- 0xc9, 0x60, 0x55, 0xbc, 0xdd, 0x9b, 0x0f, 0xf8, 0xd6, 0x2b, 0x84, 0x4e, 0xdf, 0x60, 0xa9, 0xb0,
- 0xdd, 0x9b, 0x0f, 0xf8, 0xd6, 0x77, 0x2c, 0x74, 0xfa, 0x06, 0x17, 0x2d, 0x6c, 0xf7, 0xe6, 0xb5,
- 0xef, 0xbf, 0x6c, 0x3a, 0xae, 0xeb, 0xbc, 0xce, 0xc3, 0x66, 0x22, 0xbd, 0x62, 0x58, 0x3a, 0xe9,
- 0xdb, 0x33, 0x68, 0x28, 0x9d, 0xa4, 0x55, 0x9c, 0x5b, 0xce, 0xb0, 0x52, 0x1c, 0xf3, 0x2a, 0x95,
- 0xc7, 0x31, 0x9e, 0xf4, 0x30, 0xda, 0xc0, 0xa1, 0x45, 0x53, 0x48, 0xc9, 0xbe, 0x58, 0xf6, 0x50,
- 0x7b, 0x5e, 0xfd, 0x61, 0xc0, 0x5e, 0xfb, 0xd8, 0xfa, 0x56, 0x4f, 0xda, 0xbe, 0xe2, 0xf5, 0x98,
- 0xe6, 0xe5, 0xdc, 0x84, 0xa1, 0xb3, 0x84, 0x31, 0x65, 0x5e, 0xda, 0xba, 0x6f, 0x29, 0x1f, 0xf5,
- 0x57, 0xe8, 0x70, 0x3f, 0x4a, 0x92, 0x7e, 0xee, 0xdd, 0xb7, 0xdb, 0x8f, 0xfa, 0x2b, 0x68, 0xf7,
- 0x7f, 0xdd, 0x2c, 0x6b, 0xa0, 0x7f, 0xdd, 0x07, 0x1f, 0xf7, 0xb1, 0x08, 0xfa, 0xe1, 0x93, 0x6b,
- 0xe9, 0xe8, 0x82, 0xfc, 0xa4, 0x59, 0xbf, 0x37, 0xa8, 0xfc, 0x68, 0x48, 0x7e, 0x6c, 0xac, 0xbb,
- 0x64, 0x28, 0xaa, 0x2c, 0x0c, 0x3b, 0xe6, 0xc7, 0xd7, 0xd4, 0x72, 0xae, 0xdc, 0xf3, 0x60, 0xfd,
- 0x71, 0xab, 0x53, 0x9e, 0x90, 0x65, 0x87, 0x86, 0x05, 0xfa, 0xe4, 0xba, 0x6a, 0x54, 0x57, 0x75,
- 0x60, 0x79, 0xe9, 0xcc, 0x93, 0x9e, 0x86, 0xbd, 0x6b, 0x68, 0x3e, 0xba, 0x9e, 0x92, 0x2e, 0xcb,
- 0x7f, 0xae, 0x45, 0x77, 0x3d, 0xd6, 0xbe, 0xce, 0x00, 0x9b, 0x2e, 0x3f, 0x08, 0xd8, 0xa7, 0x94,
- 0x4c, 0xe1, 0x7e, 0xe7, 0x9b, 0x29, 0xdb, 0xfb, 0xe9, 0x3c, 0x95, 0xbd, 0x34, 0x13, 0xac, 0x6c,
- 0xdf, 0x4f, 0xe7, 0xdb, 0x55, 0xd4, 0x90, 0xbe, 0x9f, 0x2e, 0x80, 0x3b, 0xf7, 0xd3, 0x21, 0x9e,
- 0xd1, 0xfb, 0xe9, 0x50, 0x6b, 0xc1, 0xfb, 0xe9, 0xc2, 0x1a, 0xd4, 0xec, 0xd2, 0x14, 0x41, 0x6d,
- 0x9b, 0xf7, 0xb2, 0xe8, 0xef, 0xa2, 0x3f, 0xbe, 0x8e, 0x0a, 0x31, 0xbf, 0x2a, 0x4e, 0x1e, 0xa8,
- 0xec, 0xf1, 0x4c, 0xbd, 0x43, 0x95, 0xdb, 0xbd, 0x79, 0xed, 0xfb, 0x47, 0x7a, 0x71, 0x65, 0x66,
- 0x13, 0x5e, 0xca, 0xbb, 0x09, 0x37, 0x43, 0xb3, 0x43, 0x6d, 0xc1, 0x6d, 0xf9, 0x87, 0xfd, 0x60,
- 0xa2, 0xba, 0x35, 0xa1, 0x1b, 0x7d, 0xd8, 0x65, 0x08, 0x34, 0xf9, 0x76, 0x6f, 0x9e, 0x98, 0x46,
- 0x94, 0x6f, 0xd5, 0xda, 0x3d, 0x8c, 0xf9, 0x6d, 0xfd, 0xa8, 0xbf, 0x82, 0x76, 0x7f, 0xa5, 0xb3,
- 0x56, 0xd7, 0xbd, 0x6c, 0xe7, 0xad, 0x2e, 0x53, 0x13, 0xaf, 0x99, 0x87, 0x7d, 0xf1, 0x50, 0xfe,
- 0xe2, 0x4e, 0xa1, 0x5d, 0xf9, 0x0b, 0x3a, 0x8d, 0x7e, 0x74, 0x3d, 0x25, 0x5d, 0x96, 0x7f, 0x5c,
- 0x8b, 0x6e, 0x92, 0x65, 0xd1, 0x71, 0xf0, 0x49, 0x5f, 0xcb, 0x20, 0x1e, 0x3e, 0xbd, 0xb6, 0x9e,
- 0x2e, 0xd4, 0xbf, 0xac, 0x45, 0xb7, 0x02, 0x85, 0x52, 0x01, 0x72, 0x0d, 0xeb, 0x7e, 0xa0, 0x7c,
- 0x76, 0x7d, 0x45, 0x6a, 0xba, 0x77, 0xf1, 0x49, 0xfb, 0xae, 0xb1, 0x80, 0xed, 0x09, 0x7d, 0xd7,
- 0x58, 0xb7, 0x16, 0xdc, 0x63, 0x8a, 0xcf, 0x9a, 0x35, 0x1f, 0xba, 0xc7, 0x24, 0x8f, 0x42, 0x06,
- 0x6f, 0x31, 0xc1, 0x38, 0xcc, 0xc9, 0xb3, 0xd7, 0x45, 0x9c, 0x27, 0xb4, 0x13, 0x25, 0xef, 0x76,
- 0x62, 0x38, 0xb8, 0x37, 0x57, 0x4b, 0x4f, 0x78, 0xb3, 0x8e, 0xbb, 0x4f, 0xe9, 0x1b, 0x24, 0xb8,
- 0x37, 0xd7, 0x42, 0x09, 0x6f, 0x3a, 0x6b, 0x0c, 0x79, 0x03, 0xc9, 0xe2, 0x83, 0x3e, 0x28, 0x58,
- 0x21, 0x18, 0x6f, 0x66, 0xcb, 0xff, 0x61, 0xc8, 0x4a, 0x6b, 0xdb, 0x7f, 0xab, 0x27, 0x4d, 0xb8,
- 0x9d, 0x30, 0xf1, 0x39, 0x8b, 0x13, 0x56, 0x06, 0xdd, 0x1a, 0xaa, 0x97, 0x5b, 0x97, 0xc6, 0xdc,
- 0xee, 0xf0, 0x6c, 0xb9, 0xc8, 0x75, 0x63, 0x92, 0x6e, 0x5d, 0xaa, 0xdb, 0x2d, 0xa0, 0xe1, 0xae,
- 0xa4, 0x75, 0x2b, 0xd3, 0xcb, 0x07, 0x61, 0x33, 0x5e, 0x56, 0xb9, 0xd9, 0x8b, 0xa5, 0xeb, 0xa9,
- 0xc3, 0xa8, 0xa3, 0x9e, 0x20, 0x92, 0xb6, 0x7a, 0xd2, 0x70, 0x7b, 0xd0, 0x71, 0x6b, 0xe2, 0x69,
- 0xbb, 0xc3, 0x56, 0x2b, 0xa4, 0x1e, 0xf5, 0x57, 0x80, 0x9b, 0xb1, 0x3a, 0xaa, 0x0e, 0xd2, 0x4a,
- 0xec, 0xa5, 0x59, 0x36, 0xd8, 0x0c, 0x84, 0x49, 0x03, 0x05, 0x37, 0x63, 0x11, 0x98, 0x88, 0xe4,
- 0x66, 0xf3, 0x32, 0x1f, 0x74, 0xd9, 0x91, 0x54, 0xaf, 0x48, 0x76, 0x69, 0xb0, 0xa1, 0xe6, 0x3c,
- 0x6a, 0x53, 0xdb, 0x61, 0xf8, 0xc1, 0xb5, 0x2a, 0xbc, 0xdd, 0x9b, 0x07, 0x6f, 0xfb, 0x25, 0x25,
- 0x67, 0x96, 0x3b, 0x94, 0x09, 0x6f, 0x26, 0xb9, 0xdb, 0x41, 0x81, 0x4d, 0x49, 0xd5, 0x8d, 0x5e,
- 0xa6, 0xc9, 0x9c, 0x09, 0xf4, 0x45, 0x95, 0x0b, 0x04, 0x5f, 0x54, 0x01, 0x10, 0x34, 0x9d, 0xfa,
- 0xbb, 0xd9, 0x8d, 0x1d, 0x27, 0x58, 0xd3, 0x69, 0x65, 0x87, 0x0a, 0x35, 0x1d, 0x4a, 0x83, 0xd1,
- 0xc0, 0xb8, 0xd5, 0xf7, 0x3e, 0x3c, 0x08, 0x99, 0x01, 0x97, 0x3f, 0x6c, 0xf6, 0x62, 0xc1, 0x8c,
- 0x62, 0x1d, 0xa6, 0x8b, 0x54, 0x60, 0x33, 0x8a, 0x63, 0xa3, 0x46, 0x42, 0x33, 0x4a, 0x1b, 0xa5,
- 0xaa, 0x57, 0xe7, 0x08, 0xe3, 0x24, 0x5c, 0x3d, 0xc5, 0xf4, 0xab, 0x9e, 0x61, 0x5b, 0xef, 0x55,
- 0x73, 0x13, 0x32, 0xe2, 0x42, 0x2f, 0x96, 0x91, 0xd8, 0x96, 0xdf, 0x03, 0x43, 0x30, 0x34, 0xea,
- 0x50, 0x0a, 0xf0, 0x7d, 0x41, 0xcd, 0x35, 0xaf, 0x7e, 0x8b, 0x82, 0xc5, 0x65, 0x9c, 0xcf, 0xd0,
- 0xc5, 0xa9, 0x34, 0xd8, 0x22, 0x43, 0x8b, 0x53, 0x52, 0x03, 0xbc, 0xb5, 0xf7, 0xbf, 0xe4, 0x45,
- 0xba, 0x82, 0xf9, 0x64, 0xd6, 0xff, 0x90, 0xf7, 0x7e, 0x0f, 0x12, 0xbe, 0xb5, 0x6f, 0x00, 0xb3,
- 0xef, 0xae, 0x9c, 0x7e, 0x18, 0x30, 0xe5, 0xa3, 0xa1, 0x85, 0x30, 0xad, 0x02, 0x82, 0xda, 0xd9,
- 0x5b, 0xfc, 0x82, 0xad, 0xb0, 0xa0, 0x76, 0x37, 0x09, 0xbf, 0x60, 0xab, 0x50, 0x50, 0xb7, 0x51,
- 0x90, 0x67, 0xba, 0xeb, 0xa0, 0xf5, 0x80, 0xbe, 0xbb, 0xf4, 0xd9, 0xe8, 0xe4, 0x40, 0xcf, 0xd9,
- 0x4d, 0xaf, 0xbc, 0xd7, 0x14, 0x48, 0x41, 0x77, 0xd3, 0x2b, 0xfc, 0x2d, 0xc5, 0x66, 0x2f, 0x16,
- 0x9e, 0x08, 0x88, 0x05, 0x7b, 0xdd, 0xbc, 0xaa, 0x47, 0x8a, 0x2b, 0xe5, 0xad, 0x77, 0xf5, 0xf7,
- 0xba, 0x41, 0x7b, 0xfe, 0xf6, 0xb8, 0xe4, 0x33, 0x56, 0x55, 0xfa, 0x4a, 0x54, 0xff, 0x80, 0x93,
- 0x96, 0x0d, 0xc1, 0x85, 0xa8, 0x77, 0xc2, 0x90, 0x73, 0x8f, 0xa1, 0x12, 0xd9, 0xeb, 0x95, 0xd6,
- 0x51, 0xcd, 0xf6, 0xcd, 0x4a, 0x1b, 0x9d, 0x9c, 0xed, 0x5e, 0x5a, 0xea, 0xde, 0xa7, 0x74, 0x0f,
- 0x55, 0xc7, 0xae, 0x52, 0xba, 0xdf, 0x83, 0xd4, 0xae, 0x3e, 0x8f, 0xde, 0x3c, 0xe0, 0xf3, 0x09,
- 0xcb, 0x93, 0xc1, 0xf7, 0xfc, 0x13, 0xbc, 0x7c, 0x3e, 0xac, 0xff, 0x6c, 0x8c, 0xde, 0xa0, 0xc4,
- 0xf6, 0x0c, 0xe2, 0x2e, 0x3b, 0x5b, 0xce, 0x27, 0x22, 0x16, 0xe0, 0x0c, 0xa2, 0xfc, 0xfb, 0xb0,
- 0x16, 0x10, 0x67, 0x10, 0x3d, 0x00, 0xd8, 0x9b, 0x96, 0x8c, 0xa1, 0xf6, 0x6a, 0x41, 0xd0, 0x9e,
- 0x06, 0x6c, 0x16, 0x61, 0xec, 0xd5, 0x89, 0x3a, 0x3c, 0x33, 0x68, 0x75, 0xa4, 0x94, 0xc8, 0x22,
- 0xda, 0x94, 0x0d, 0x6e, 0x55, 0x7d, 0x79, 0xbd, 0xcd, 0x72, 0xb1, 0x88, 0xcb, 0x15, 0x08, 0x6e,
- 0x5d, 0x4b, 0x07, 0x20, 0x82, 0x1b, 0x05, 0x6d, 0xaf, 0x6d, 0x1e, 0xf3, 0xec, 0x72, 0x9f, 0x97,
- 0x7c, 0x29, 0xd2, 0x9c, 0xc1, 0x2b, 0x4e, 0xcc, 0x03, 0x75, 0x19, 0xa2, 0xd7, 0x52, 0xac, 0xcd,
- 0x72, 0x25, 0xa1, 0x8e, 0x33, 0xca, 0x3b, 0xe1, 0x2b, 0xc1, 0x4b, 0xf8, 0x3a, 0x53, 0x59, 0x81,
- 0x10, 0x91, 0xe5, 0x92, 0x30, 0x68, 0xfb, 0xe3, 0x34, 0x9f, 0xa3, 0x6d, 0x7f, 0xec, 0x5e, 0x33,
- 0x7c, 0x8b, 0x06, 0x6c, 0x87, 0x52, 0x0f, 0x4d, 0x75, 0x00, 0xfd, 0xd1, 0x30, 0xfa, 0xd0, 0x5d,
- 0x82, 0xe8, 0x50, 0x38, 0x09, 0x5c, 0x3d, 0x2f, 0x58, 0xce, 0x92, 0xe6, 0xd0, 0x1e, 0xe6, 0xca,
- 0x23, 0x82, 0xae, 0x20, 0x69, 0xc7, 0x22, 0x29, 0x3f, 0x59, 0xe6, 0xc7, 0x25, 0x3f, 0x4f, 0x33,
- 0x56, 0x82, 0xb1, 0x48, 0xa9, 0x3b, 0x72, 0x62, 0x2c, 0xc2, 0x38, 0x7b, 0xfa, 0x43, 0x4a, 0xbd,
- 0x1f, 0x36, 0x98, 0x96, 0xf1, 0x0c, 0x9e, 0xfe, 0x50, 0x36, 0xda, 0x18, 0xb1, 0x33, 0x18, 0xc0,
- 0x9d, 0x44, 0x47, 0xb9, 0xce, 0x57, 0x32, 0x3e, 0xf4, 0x47, 0xab, 0xf2, 0xf2, 0xdd, 0x0a, 0x24,
- 0x3a, 0xda, 0x1c, 0x46, 0x12, 0x89, 0x4e, 0x58, 0xc3, 0x4e, 0x25, 0x92, 0x3b, 0xd2, 0xa7, 0x9a,
- 0xc0, 0x54, 0xa2, 0x6c, 0x34, 0x42, 0x62, 0x2a, 0x69, 0x41, 0x60, 0x40, 0x6a, 0xba, 0xc1, 0x1c,
- 0x1d, 0x90, 0x8c, 0x34, 0x38, 0x20, 0xb9, 0x94, 0x1d, 0x28, 0xc6, 0x79, 0x2a, 0xd2, 0x38, 0x9b,
- 0x30, 0x71, 0x1c, 0x97, 0xf1, 0x82, 0x09, 0x56, 0xc2, 0x81, 0x42, 0x23, 0x43, 0x8f, 0x21, 0x06,
- 0x0a, 0x8a, 0xd5, 0x0e, 0x7f, 0x37, 0x7a, 0xbb, 0x9e, 0xf7, 0x59, 0xae, 0x7f, 0x92, 0xe9, 0x99,
- 0xfc, 0x2d, 0xb7, 0xc1, 0x3b, 0xc6, 0xc6, 0x44, 0x94, 0x2c, 0x5e, 0x34, 0xb6, 0xdf, 0x32, 0x7f,
- 0x97, 0xe0, 0xa3, 0xb5, 0x3a, 0x9e, 0x8f, 0xb8, 0x48, 0xcf, 0xeb, 0x65, 0xb6, 0xfe, 0x80, 0x09,
- 0xc4, 0xb3, 0x2b, 0x1e, 0x06, 0x2e, 0x3d, 0xc1, 0x38, 0x3b, 0x4e, 0xbb, 0xd2, 0x13, 0x56, 0x64,
- 0x70, 0x9c, 0xf6, 0xb4, 0x25, 0x40, 0x8c, 0xd3, 0x28, 0x68, 0x3b, 0xa7, 0x2b, 0x9e, 0xb2, 0x70,
- 0x65, 0xa6, 0xac, 0x5f, 0x65, 0xa6, 0xde, 0x37, 0x21, 0x59, 0xf4, 0xf6, 0x21, 0x5b, 0x9c, 0xb1,
- 0xb2, 0xba, 0x48, 0x0b, 0xea, 0x82, 0x60, 0x4b, 0x74, 0x5e, 0x10, 0x4c, 0xa0, 0x76, 0x26, 0xb0,
- 0xc0, 0xb8, 0x3a, 0x8a, 0x17, 0x4c, 0x5e, 0xe1, 0x02, 0x66, 0x02, 0xc7, 0x88, 0x03, 0x11, 0x33,
- 0x01, 0x09, 0x3b, 0x9f, 0x97, 0x59, 0xe6, 0x84, 0xcd, 0xeb, 0x08, 0x2b, 0x8f, 0xe3, 0xd5, 0x82,
- 0xe5, 0x42, 0x9b, 0x04, 0x7b, 0xf2, 0x8e, 0x49, 0x9c, 0x27, 0xf6, 0xe4, 0xfb, 0xe8, 0x39, 0x43,
- 0x93, 0xf7, 0xe0, 0x8f, 0x79, 0x29, 0xd4, 0x0f, 0xae, 0x9d, 0x96, 0x19, 0x18, 0x9a, 0xfc, 0x87,
- 0xea, 0x91, 0xc4, 0xd0, 0x14, 0xd6, 0x70, 0x7e, 0x5c, 0xc3, 0x2b, 0xc3, 0x0b, 0x56, 0x9a, 0x38,
- 0x79, 0xb6, 0x88, 0xd3, 0x4c, 0x47, 0xc3, 0xf7, 0x03, 0xb6, 0x09, 0x1d, 0xe2, 0xc7, 0x35, 0xfa,
- 0xea, 0x3a, 0x3f, 0x47, 0x12, 0x2e, 0x21, 0x78, 0x45, 0xd0, 0x61, 0x9f, 0x78, 0x45, 0xd0, 0xad,
- 0x65, 0x57, 0xee, 0x96, 0x95, 0xdc, 0x4a, 0x12, 0x3b, 0x3c, 0x81, 0xfb, 0x85, 0x8e, 0x4d, 0x00,
- 0x12, 0x2b, 0xf7, 0xa0, 0x82, 0x4d, 0x0d, 0x2c, 0xb6, 0x97, 0xe6, 0x71, 0x96, 0xfe, 0x18, 0xa6,
- 0xf5, 0x8e, 0x9d, 0x86, 0x20, 0x52, 0x03, 0x9c, 0xc4, 0x5c, 0xed, 0x33, 0x31, 0x4d, 0xeb, 0xa1,
- 0xff, 0x5e, 0xe0, 0xb9, 0x49, 0xa2, 0xdb, 0x95, 0x43, 0x3a, 0x97, 0x01, 0xc3, 0xc7, 0x3a, 0x2a,
- 0x8a, 0x49, 0x3d, 0xab, 0x9e, 0xb0, 0x19, 0x4b, 0x0b, 0x31, 0xf8, 0x38, 0xfc, 0xac, 0x00, 0x4e,
- 0x1c, 0xb4, 0xe8, 0xa1, 0xe6, 0xbc, 0xbe, 0xaf, 0xc7, 0x92, 0x89, 0xfa, 0x25, 0xd2, 0xd3, 0x8a,
- 0x95, 0x3a, 0xd1, 0xd8, 0x67, 0x02, 0xf4, 0x4e, 0x87, 0x1b, 0x3a, 0x60, 0x5d, 0x51, 0xa2, 0x77,
- 0x86, 0x35, 0xec, 0x66, 0x9f, 0xc3, 0xe9, 0xcb, 0xdd, 0xe5, 0x71, 0xc7, 0x87, 0xa4, 0x31, 0x87,
- 0x22, 0x36, 0xfb, 0x68, 0xda, 0x66, 0x6b, 0x6d, 0xb7, 0xa3, 0x7c, 0x35, 0x86, 0x47, 0x26, 0x10,
- 0x4b, 0x12, 0x23, 0xb2, 0xb5, 0x00, 0xee, 0x6c, 0x86, 0x97, 0x3c, 0x4e, 0x66, 0x71, 0x25, 0x8e,
- 0xe3, 0x55, 0xc6, 0xe3, 0x44, 0xce, 0xeb, 0x70, 0x33, 0xbc, 0x61, 0x86, 0x2e, 0x44, 0x6d, 0x86,
- 0x53, 0xb0, 0x9b, 0x9d, 0xc9, 0x1f, 0x58, 0xd5, 0x47, 0x49, 0x61, 0x76, 0x26, 0xcb, 0x0b, 0x8f,
- 0x91, 0xde, 0x09, 0x43, 0xf6, 0x13, 0x38, 0x25, 0x92, 0x69, 0xc8, 0x2d, 0x4c, 0xc7, 0x4b, 0x40,
- 0xde, 0x0f, 0x10, 0xf6, 0x02, 0x14, 0xf5, 0xf7, 0xe6, 0x37, 0xb5, 0x84, 0xbe, 0x32, 0xfd, 0x21,
- 0xa6, 0xeb, 0x42, 0xde, 0x09, 0xb5, 0xad, 0x9e, 0xb4, 0x4d, 0x33, 0x77, 0x2e, 0x62, 0x31, 0x4a,
- 0x92, 0x43, 0x56, 0x21, 0xdf, 0xb3, 0xd7, 0xc2, 0xa1, 0x95, 0x12, 0x69, 0x66, 0x9b, 0xb2, 0x81,
- 0x5e, 0xcb, 0x9e, 0x25, 0xa9, 0xd0, 0xb2, 0xe6, 0x80, 0xf6, 0xc3, 0xb6, 0x81, 0x36, 0x45, 0xd4,
- 0x8a, 0xa6, 0xed, 0x58, 0x5e, 0x33, 0x53, 0x3e, 0x9f, 0x67, 0x4c, 0x43, 0x27, 0x2c, 0x56, 0x37,
- 0x46, 0x6e, 0xb7, 0x6d, 0xa1, 0x20, 0x31, 0x96, 0x07, 0x15, 0x6c, 0x1a, 0x59, 0x63, 0xea, 0x95,
- 0x54, 0xf3, 0x60, 0x37, 0xda, 0x66, 0x3c, 0x80, 0x48, 0x23, 0x51, 0xd0, 0x7e, 0x76, 0x57, 0x8b,
- 0xf7, 0x59, 0xf3, 0x24, 0xe0, 0x5d, 0x57, 0x52, 0xd9, 0x11, 0x13, 0x9f, 0xdd, 0x21, 0x98, 0x5d,
- 0x27, 0x00, 0x0f, 0x4f, 0x57, 0xe3, 0x04, 0xae, 0x13, 0xa0, 0xbe, 0x64, 0x88, 0x75, 0x02, 0xc5,
- 0xfa, 0x4d, 0x67, 0xf6, 0xbd, 0x0e, 0xe2, 0xca, 0x56, 0x0e, 0x69, 0x3a, 0x14, 0x0c, 0x35, 0x1d,
- 0xa5, 0xe0, 0x3f, 0x52, 0x77, 0x6b, 0x0d, 0x79, 0xa4, 0xd8, 0xbe, 0xda, 0x7a, 0x17, 0x66, 0x73,
- 0xff, 0x5a, 0x78, 0xc2, 0xe2, 0xc4, 0x54, 0x0c, 0xd1, 0x75, 0xe5, 0x44, 0xee, 0x8f, 0x71, 0xda,
- 0xc9, 0x1f, 0x44, 0x03, 0x55, 0x8d, 0xd2, 0x75, 0x73, 0x0b, 0x2b, 0x62, 0x4d, 0x10, 0x03, 0x95,
- 0x4f, 0x38, 0x89, 0x9b, 0xd7, 0x44, 0x53, 0xae, 0x1d, 0xe8, 0xcf, 0x42, 0x2b, 0x90, 0xb8, 0xf9,
- 0x8f, 0xbd, 0x45, 0x13, 0x89, 0x5b, 0xb7, 0x96, 0x73, 0xed, 0x0f, 0x68, 0xb2, 0xbd, 0x92, 0x2f,
- 0x60, 0x99, 0x3e, 0x0b, 0x36, 0x0f, 0xa2, 0x41, 0x5c, 0xfb, 0xd3, 0x4f, 0xd3, 0xce, 0x41, 0x66,
- 0xef, 0x40, 0x1e, 0x4f, 0xc3, 0x7f, 0x16, 0x44, 0x09, 0x89, 0x39, 0xa8, 0x05, 0x39, 0xbf, 0x25,
- 0x3a, 0x7e, 0x59, 0xa6, 0x22, 0xcd, 0xe7, 0x53, 0xce, 0x33, 0xb8, 0x65, 0x39, 0x1a, 0x0f, 0x5d,
- 0x29, 0xf5, 0x5b, 0xa2, 0x2d, 0xca, 0x4e, 0x71, 0xa3, 0xf1, 0x68, 0x29, 0xf8, 0x79, 0x9a, 0x65,
- 0x20, 0x72, 0x46, 0xe3, 0x61, 0x23, 0x21, 0x22, 0xc7, 0x27, 0x9c, 0x5f, 0xc0, 0x1c, 0xcb, 0xdd,
- 0x7f, 0xbd, 0x03, 0xfa, 0x01, 0xd4, 0x71, 0x84, 0xd4, 0x2f, 0x60, 0x42, 0xc8, 0xf9, 0x45, 0xcf,
- 0x31, 0xf6, 0xdb, 0x26, 0x9b, 0x50, 0x1d, 0x81, 0xa8, 0x5f, 0xf4, 0xa4, 0x60, 0xe7, 0x9b, 0xe4,
- 0xe3, 0x65, 0x75, 0xe1, 0x6f, 0x19, 0xa8, 0xc5, 0xa1, 0xba, 0x20, 0xf5, 0x09, 0xf8, 0x85, 0x1d,
- 0x9f, 0x1d, 0x7a, 0x30, 0x71, 0x3c, 0xad, 0x53, 0x49, 0x15, 0xe6, 0xe9, 0xfb, 0xff, 0xfd, 0xd5,
- 0x8d, 0xb5, 0x9f, 0x7d, 0x75, 0x63, 0xed, 0x7f, 0xbf, 0xba, 0xb1, 0xf6, 0xd3, 0xaf, 0x6f, 0xbc,
- 0xf1, 0xb3, 0xaf, 0x6f, 0xbc, 0xf1, 0x3f, 0x5f, 0xdf, 0x78, 0xe3, 0xcb, 0x37, 0xf5, 0x6f, 0xee,
- 0x9f, 0xfd, 0x82, 0xfc, 0xe5, 0xfc, 0x27, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x89, 0x4b, 0xe1,
- 0x93, 0x97, 0x7f, 0x00, 0x00,
+ // 5713 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x9d, 0xdd, 0x6f, 0x24, 0x49,
+ 0x52, 0xc0, 0xd7, 0x2f, 0x2c, 0xd4, 0x71, 0x0b, 0xf4, 0xc2, 0xb2, 0xb7, 0xdc, 0xcd, 0xcc, 0xce,
+ 0x87, 0x3d, 0x33, 0x1e, 0xb7, 0x67, 0x67, 0xf6, 0x8b, 0x3b, 0x24, 0xe8, 0xb1, 0xc7, 0xde, 0xbe,
+ 0xb5, 0xbd, 0xc6, 0xdd, 0x9e, 0x11, 0x2b, 0x21, 0x51, 0xee, 0x4a, 0xb7, 0x0b, 0x57, 0x57, 0xd6,
+ 0x55, 0x65, 0x7b, 0xa6, 0x0f, 0x81, 0x40, 0x20, 0x10, 0x08, 0xc4, 0x89, 0x2f, 0xc1, 0x13, 0x12,
+ 0x7f, 0x01, 0x7f, 0x06, 0x8f, 0xf7, 0x78, 0x8f, 0x68, 0xf7, 0xef, 0x40, 0x42, 0x95, 0x95, 0x9f,
+ 0x51, 0x11, 0x59, 0xe5, 0xbd, 0xa7, 0x19, 0x39, 0x7e, 0x11, 0x91, 0x1f, 0x91, 0x99, 0x91, 0x59,
+ 0x59, 0xd5, 0xd1, 0xcd, 0xe2, 0x6c, 0xbb, 0x28, 0xb9, 0xe0, 0xd5, 0x76, 0xc5, 0xca, 0xab, 0x74,
+ 0xc6, 0xf4, 0xbf, 0x43, 0xf9, 0xe7, 0xc1, 0x9b, 0x71, 0xbe, 0x12, 0xab, 0x82, 0xbd, 0xf7, 0xae,
+ 0x25, 0x67, 0x7c, 0xb1, 0x88, 0xf3, 0xa4, 0x6a, 0x90, 0xf7, 0xde, 0xb1, 0x12, 0x76, 0xc5, 0x72,
+ 0xa1, 0xfe, 0xfe, 0xe4, 0x67, 0xff, 0xb7, 0x16, 0xbd, 0xb5, 0x93, 0xa5, 0x2c, 0x17, 0x3b, 0x4a,
+ 0x63, 0xf0, 0x65, 0xf4, 0xed, 0x51, 0x51, 0xec, 0x33, 0xf1, 0x82, 0x95, 0x55, 0xca, 0xf3, 0xc1,
+ 0x9d, 0xa1, 0x72, 0x30, 0x3c, 0x29, 0x66, 0xc3, 0x51, 0x51, 0x0c, 0xad, 0x70, 0x78, 0xc2, 0x7e,
+ 0xb4, 0x64, 0x95, 0x78, 0xef, 0x6e, 0x18, 0xaa, 0x0a, 0x9e, 0x57, 0x6c, 0x70, 0x1e, 0xfd, 0xda,
+ 0xa8, 0x28, 0x26, 0x4c, 0xec, 0xb2, 0xba, 0x02, 0x13, 0x11, 0x0b, 0x36, 0xd8, 0x68, 0xa9, 0xfa,
+ 0x80, 0xf1, 0x71, 0xbf, 0x1b, 0x54, 0x7e, 0xa6, 0xd1, 0xb7, 0x6a, 0x3f, 0x17, 0x4b, 0x91, 0xf0,
+ 0x57, 0xf9, 0xe0, 0xfd, 0xb6, 0xa2, 0x12, 0x19, 0xdb, 0xb7, 0x43, 0x88, 0xb2, 0xfa, 0x32, 0xfa,
+ 0xe5, 0x97, 0x71, 0x96, 0x31, 0xb1, 0x53, 0xb2, 0xba, 0xe0, 0xbe, 0x4e, 0x23, 0x1a, 0x36, 0x32,
+ 0x63, 0xf7, 0x4e, 0x90, 0x51, 0x86, 0xbf, 0x8c, 0xbe, 0xdd, 0x48, 0x4e, 0xd8, 0x8c, 0x5f, 0xb1,
+ 0x72, 0x80, 0x6a, 0x29, 0x21, 0xd1, 0xe4, 0x2d, 0x08, 0xda, 0xde, 0xe1, 0xf9, 0x15, 0x2b, 0x05,
+ 0x6e, 0x5b, 0x09, 0xc3, 0xb6, 0x2d, 0xa4, 0x6c, 0xff, 0xed, 0x5a, 0xf4, 0xdd, 0xd1, 0x6c, 0xc6,
+ 0x97, 0xb9, 0x38, 0xe0, 0xb3, 0x38, 0x3b, 0x48, 0xf3, 0xcb, 0x23, 0xf6, 0x6a, 0xe7, 0xa2, 0xe6,
+ 0xf3, 0x39, 0x1b, 0x3c, 0xf5, 0x5b, 0xb5, 0x41, 0x87, 0x86, 0x1d, 0xba, 0xb0, 0xf1, 0xfd, 0xe1,
+ 0xf5, 0x94, 0x54, 0x59, 0xfe, 0x71, 0x2d, 0xba, 0x01, 0xcb, 0x32, 0xe1, 0xd9, 0x15, 0xb3, 0xa5,
+ 0xf9, 0xa8, 0xc3, 0xb0, 0x8f, 0x9b, 0xf2, 0x7c, 0x7c, 0x5d, 0x35, 0x55, 0xa2, 0x2c, 0x7a, 0xdb,
+ 0x0d, 0x97, 0x09, 0xab, 0xe4, 0x70, 0x7a, 0x40, 0x47, 0x84, 0x42, 0x8c, 0xe7, 0x87, 0x7d, 0x50,
+ 0xe5, 0x2d, 0x8d, 0x06, 0xca, 0x5b, 0xc6, 0x2b, 0xe3, 0xec, 0x3e, 0x6a, 0xc1, 0x21, 0x8c, 0xaf,
+ 0x07, 0x3d, 0x48, 0xe5, 0xea, 0x8f, 0xa2, 0x5f, 0x79, 0xc9, 0xcb, 0xcb, 0xaa, 0x88, 0x67, 0x4c,
+ 0x0d, 0x85, 0x7b, 0xbe, 0xb6, 0x96, 0xc2, 0xd1, 0xb0, 0xde, 0x85, 0x39, 0x41, 0xab, 0x85, 0x5f,
+ 0x14, 0x0c, 0xce, 0x41, 0x56, 0xb1, 0x16, 0x52, 0x41, 0x0b, 0x21, 0x65, 0xfb, 0x32, 0x1a, 0x58,
+ 0xdb, 0x67, 0x7f, 0xcc, 0x66, 0x62, 0x94, 0x24, 0xb0, 0x57, 0xac, 0xae, 0x24, 0x86, 0xa3, 0x24,
+ 0xa1, 0x7a, 0x05, 0x47, 0x95, 0xb3, 0x57, 0xd1, 0x3b, 0xc0, 0xd9, 0x41, 0x5a, 0x49, 0x87, 0x5b,
+ 0x61, 0x2b, 0x0a, 0x33, 0x4e, 0x87, 0x7d, 0x71, 0xe5, 0xf8, 0xcf, 0xd7, 0xa2, 0xef, 0x20, 0x9e,
+ 0x4f, 0xd8, 0x82, 0x5f, 0xb1, 0xc1, 0xe3, 0x6e, 0x6b, 0x0d, 0x69, 0xfc, 0x7f, 0x70, 0x0d, 0x0d,
+ 0x24, 0x4c, 0x26, 0x2c, 0x63, 0x33, 0x41, 0x86, 0x49, 0x23, 0xee, 0x0c, 0x13, 0x83, 0x39, 0x23,
+ 0x4c, 0x0b, 0xf7, 0x99, 0xd8, 0x59, 0x96, 0x25, 0xcb, 0x05, 0xd9, 0x97, 0x16, 0xe9, 0xec, 0x4b,
+ 0x0f, 0x45, 0xea, 0xb3, 0xcf, 0xc4, 0x28, 0xcb, 0xc8, 0xfa, 0x34, 0xe2, 0xce, 0xfa, 0x18, 0x4c,
+ 0x79, 0x98, 0x45, 0xbf, 0xea, 0xb4, 0x98, 0x18, 0xe7, 0xe7, 0x7c, 0x40, 0xb7, 0x85, 0x94, 0x1b,
+ 0x1f, 0x1b, 0x9d, 0x1c, 0x52, 0x8d, 0xe7, 0xaf, 0x0b, 0x5e, 0xd2, 0xdd, 0xd2, 0x88, 0x3b, 0xab,
+ 0x61, 0x30, 0xe5, 0xe1, 0x0f, 0xa3, 0xb7, 0xd4, 0x2c, 0xa9, 0xd7, 0xb3, 0xbb, 0xe8, 0x14, 0x0a,
+ 0x17, 0xb4, 0x7b, 0x1d, 0x54, 0xcb, 0xfc, 0x61, 0x3a, 0x2f, 0xeb, 0xd9, 0x07, 0x37, 0xaf, 0xa4,
+ 0x1d, 0xe6, 0x2d, 0xa5, 0xcc, 0xf3, 0xe8, 0xd7, 0x7d, 0xf3, 0x3b, 0x71, 0x3e, 0x63, 0xd9, 0xe0,
+ 0x61, 0x48, 0xbd, 0x61, 0x8c, 0xab, 0xcd, 0x5e, 0xac, 0x9d, 0xec, 0x14, 0xa1, 0x26, 0xd3, 0x3b,
+ 0xa8, 0x36, 0x98, 0x4a, 0xef, 0x86, 0xa1, 0x96, 0xed, 0x5d, 0x96, 0x31, 0xd2, 0x76, 0x23, 0xec,
+ 0xb0, 0x6d, 0x20, 0x65, 0xbb, 0x8c, 0x7e, 0xc3, 0x74, 0x73, 0x9d, 0x17, 0x48, 0x79, 0xbd, 0xe8,
+ 0x6c, 0x12, 0xfd, 0xe8, 0x42, 0xc6, 0xd7, 0xa3, 0x7e, 0x70, 0xab, 0x3e, 0x6a, 0x46, 0xc1, 0xeb,
+ 0x03, 0xe6, 0x93, 0xbb, 0x61, 0x48, 0xd9, 0xfe, 0xbb, 0xb5, 0xe8, 0x7b, 0x4a, 0xf6, 0x3c, 0x8f,
+ 0xcf, 0x32, 0x26, 0x97, 0xf8, 0x23, 0x26, 0x5e, 0xf1, 0xf2, 0x72, 0xb2, 0xca, 0x67, 0x44, 0x3a,
+ 0x83, 0xc3, 0x1d, 0xe9, 0x0c, 0xa9, 0xa4, 0x0a, 0xf3, 0x27, 0xd1, 0xbb, 0x3a, 0x28, 0x2e, 0xe2,
+ 0x7c, 0xce, 0x7e, 0x58, 0xf1, 0x7c, 0x54, 0xa4, 0xa3, 0x24, 0x29, 0x07, 0x43, 0xbc, 0xeb, 0x21,
+ 0x67, 0x4a, 0xb0, 0xdd, 0x9b, 0x77, 0xd2, 0x67, 0xd5, 0xca, 0x82, 0x17, 0x30, 0x7d, 0xd6, 0xcd,
+ 0x27, 0x78, 0x41, 0xa5, 0xcf, 0x3e, 0xd2, 0xb2, 0x7a, 0x58, 0xaf, 0x41, 0xb8, 0xd5, 0x43, 0x77,
+ 0xd1, 0xb9, 0x1d, 0x42, 0xec, 0x1a, 0xa0, 0x1b, 0x8a, 0xe7, 0xe7, 0xe9, 0xfc, 0xb4, 0x48, 0xea,
+ 0x31, 0xf4, 0x00, 0xaf, 0xb3, 0x83, 0x10, 0x6b, 0x00, 0x81, 0x2a, 0x6f, 0xff, 0x60, 0xb3, 0x4c,
+ 0x35, 0x2f, 0xed, 0x95, 0x7c, 0x71, 0xc0, 0xe6, 0xf1, 0x6c, 0xa5, 0x26, 0xd3, 0x0f, 0x43, 0xb3,
+ 0x18, 0xa4, 0x4d, 0x21, 0x3e, 0xba, 0xa6, 0x96, 0x2a, 0xcf, 0x7f, 0xae, 0x45, 0x77, 0xbd, 0x38,
+ 0x51, 0xc1, 0xd4, 0x94, 0x7e, 0x94, 0x27, 0x27, 0xac, 0x12, 0x71, 0x29, 0x06, 0xdf, 0x0f, 0xc4,
+ 0x00, 0xa1, 0x63, 0xca, 0xf6, 0x83, 0x6f, 0xa4, 0x6b, 0x7b, 0x7d, 0x52, 0xaf, 0x12, 0x6a, 0xfe,
+ 0xf1, 0x7b, 0x5d, 0x4a, 0xe0, 0xec, 0x73, 0x3b, 0x84, 0xd8, 0x5e, 0x97, 0x82, 0x71, 0x7e, 0x95,
+ 0x0a, 0xb6, 0xcf, 0x72, 0x56, 0xb6, 0x7b, 0xbd, 0x51, 0xf5, 0x11, 0xa2, 0xd7, 0x09, 0xd4, 0xce,
+ 0x74, 0x9e, 0x37, 0x93, 0x69, 0x6c, 0x06, 0x8c, 0xb4, 0x72, 0x8d, 0x47, 0xfd, 0x60, 0xa2, 0x86,
+ 0x62, 0xbf, 0x36, 0x12, 0xac, 0x61, 0x83, 0xf4, 0xaa, 0xa1, 0x41, 0xed, 0xc6, 0xdc, 0xf1, 0x76,
+ 0xc2, 0xae, 0xf8, 0x25, 0xdc, 0x98, 0xbb, 0x06, 0x1a, 0x80, 0xd8, 0x98, 0xa3, 0xa0, 0x4d, 0x3e,
+ 0x1c, 0x3f, 0x2f, 0x52, 0xf6, 0x0a, 0x24, 0x1f, 0xae, 0x72, 0x2d, 0x26, 0x92, 0x0f, 0x04, 0x53,
+ 0x1e, 0x8e, 0xa2, 0x5f, 0x92, 0xc2, 0x1f, 0xf2, 0x34, 0x1f, 0xdc, 0x44, 0x94, 0x6a, 0x81, 0xb1,
+ 0x7a, 0x8b, 0x06, 0x40, 0x89, 0xeb, 0xbf, 0xaa, 0x4c, 0xe0, 0x1e, 0xa1, 0x04, 0x92, 0x80, 0xf5,
+ 0x2e, 0xcc, 0x66, 0x7d, 0x52, 0x58, 0xcf, 0x96, 0x93, 0x8b, 0xb8, 0x4c, 0xf3, 0xf9, 0x00, 0xd3,
+ 0x75, 0xe4, 0x44, 0xd6, 0x87, 0x71, 0x20, 0x9c, 0x94, 0xe2, 0xa8, 0x28, 0xca, 0x7a, 0x12, 0xc6,
+ 0xc2, 0xc9, 0x47, 0x82, 0xe1, 0xd4, 0x42, 0x71, 0x6f, 0xbb, 0x6c, 0x96, 0xa5, 0x79, 0xd0, 0x9b,
+ 0x42, 0xfa, 0x78, 0xb3, 0x28, 0x08, 0xde, 0x03, 0x16, 0x5f, 0x31, 0x5d, 0x33, 0xac, 0x65, 0x5c,
+ 0x20, 0x18, 0xbc, 0x00, 0xb4, 0x5b, 0x6c, 0x29, 0x3e, 0x8c, 0x2f, 0x59, 0xdd, 0xc0, 0xac, 0x5e,
+ 0xc2, 0x07, 0x98, 0xbe, 0x47, 0x10, 0x5b, 0x6c, 0x9c, 0x54, 0xae, 0x96, 0xd1, 0x3b, 0x52, 0x7e,
+ 0x1c, 0x97, 0x22, 0x9d, 0xa5, 0x45, 0x9c, 0xeb, 0xad, 0x1b, 0x36, 0x8b, 0xb4, 0x28, 0xe3, 0x72,
+ 0xab, 0x27, 0xad, 0xdc, 0xfe, 0xdb, 0x5a, 0xf4, 0x3e, 0xf4, 0x7b, 0xcc, 0xca, 0x45, 0x2a, 0x4f,
+ 0x00, 0xaa, 0x66, 0xca, 0x1f, 0x7c, 0x12, 0x36, 0xda, 0x52, 0x30, 0xa5, 0xf9, 0xf4, 0xfa, 0x8a,
+ 0x36, 0xef, 0x9b, 0xa8, 0x5d, 0xd1, 0x17, 0x65, 0xd2, 0x3a, 0x21, 0x9b, 0xe8, 0xad, 0x8e, 0x14,
+ 0x12, 0x79, 0x5f, 0x0b, 0x02, 0x23, 0xfc, 0x34, 0xaf, 0xb4, 0x75, 0x6c, 0x84, 0x5b, 0x71, 0x70,
+ 0x84, 0x7b, 0x98, 0x1d, 0xe1, 0xc7, 0xcb, 0xb3, 0x2c, 0xad, 0x2e, 0xd2, 0x7c, 0xae, 0x92, 0x7c,
+ 0x5f, 0xd7, 0x8a, 0x61, 0x9e, 0xbf, 0xd1, 0xc9, 0x61, 0x4e, 0x54, 0xb0, 0x90, 0x4e, 0x40, 0x98,
+ 0x6c, 0x74, 0x72, 0x76, 0xef, 0x65, 0xa5, 0xf5, 0xa6, 0x1f, 0xec, 0xbd, 0x1c, 0xd5, 0x5a, 0x4a,
+ 0xec, 0xbd, 0xda, 0x94, 0xdd, 0x7b, 0xb9, 0x75, 0xa8, 0x78, 0x76, 0xc5, 0x4e, 0xcb, 0x14, 0xec,
+ 0xbd, 0xbc, 0xf2, 0x69, 0x86, 0xd8, 0x7b, 0x51, 0xac, 0x9d, 0xa8, 0x2c, 0xb1, 0xcf, 0xc4, 0x44,
+ 0xc4, 0x62, 0x59, 0x81, 0x89, 0xca, 0xb1, 0x61, 0x10, 0x62, 0xa2, 0x22, 0x50, 0xe5, 0xed, 0xf7,
+ 0xa3, 0xa8, 0x39, 0x2f, 0x91, 0x67, 0x5a, 0xfe, 0xda, 0xa3, 0x0e, 0x52, 0xbc, 0x03, 0xad, 0xf7,
+ 0x03, 0x84, 0x4d, 0xaf, 0x9a, 0xbf, 0xcb, 0xa3, 0xba, 0x01, 0xaa, 0x21, 0x45, 0x44, 0x7a, 0x05,
+ 0x10, 0x58, 0xd0, 0xc9, 0x05, 0x7f, 0x85, 0x17, 0xb4, 0x96, 0x84, 0x0b, 0xaa, 0x08, 0x7b, 0x78,
+ 0xae, 0x0a, 0x8a, 0x1d, 0x9e, 0xeb, 0x62, 0x84, 0x0e, 0xcf, 0x21, 0x63, 0x63, 0xc6, 0x35, 0xfc,
+ 0x8c, 0xf3, 0xcb, 0x45, 0x5c, 0x5e, 0x82, 0x98, 0xf1, 0x94, 0x35, 0x43, 0xc4, 0x0c, 0xc5, 0xda,
+ 0x98, 0x71, 0x1d, 0xd6, 0xc9, 0xf9, 0x69, 0x99, 0x81, 0x98, 0xf1, 0x6c, 0x28, 0x84, 0x88, 0x19,
+ 0x02, 0xb5, 0xb3, 0x93, 0xeb, 0x6d, 0xc2, 0xe0, 0x71, 0x8d, 0xa7, 0x3e, 0x61, 0xd4, 0x71, 0x0d,
+ 0x82, 0xc1, 0x10, 0xda, 0x2f, 0xe3, 0xe2, 0x02, 0x0f, 0x21, 0x29, 0x0a, 0x87, 0x90, 0x46, 0x60,
+ 0x7f, 0x4f, 0x58, 0x5c, 0xce, 0x2e, 0xf0, 0xfe, 0x6e, 0x64, 0xe1, 0xfe, 0x36, 0x0c, 0xec, 0xef,
+ 0x46, 0xf0, 0x32, 0x15, 0x17, 0x87, 0x4c, 0xc4, 0x78, 0x7f, 0xfb, 0x4c, 0xb8, 0xbf, 0x5b, 0xac,
+ 0xcd, 0xfe, 0x5d, 0x87, 0x93, 0xe5, 0x59, 0x35, 0x2b, 0xd3, 0x33, 0x36, 0x08, 0x58, 0x31, 0x10,
+ 0x91, 0xfd, 0x93, 0xb0, 0xf2, 0xf9, 0x93, 0xb5, 0xe8, 0xa6, 0xee, 0x76, 0x5e, 0x55, 0x6a, 0xed,
+ 0xf3, 0xdd, 0x7f, 0x84, 0xf7, 0x2f, 0x81, 0x13, 0x8f, 0x33, 0x7a, 0xa8, 0x39, 0xb9, 0x01, 0x5e,
+ 0xa4, 0xd3, 0xbc, 0x32, 0x85, 0xfa, 0xa4, 0x8f, 0x75, 0x47, 0x81, 0xc8, 0x0d, 0x7a, 0x29, 0xda,
+ 0xb4, 0x4c, 0xf5, 0x8f, 0x96, 0x8d, 0x93, 0x0a, 0xa4, 0x65, 0xba, 0xbd, 0x1d, 0x82, 0x48, 0xcb,
+ 0x70, 0x12, 0x86, 0xc2, 0x7e, 0xc9, 0x97, 0x45, 0xd5, 0x11, 0x0a, 0x00, 0x0a, 0x87, 0x42, 0x1b,
+ 0x56, 0x3e, 0x5f, 0x47, 0xbf, 0xe9, 0x86, 0x9f, 0xdb, 0xd8, 0x5b, 0x74, 0x4c, 0x61, 0x4d, 0x3c,
+ 0xec, 0x8b, 0xdb, 0x8c, 0x42, 0x7b, 0x16, 0xbb, 0x4c, 0xc4, 0x69, 0x56, 0x0d, 0xd6, 0x71, 0x1b,
+ 0x5a, 0x4e, 0x64, 0x14, 0x18, 0x07, 0xe7, 0xb7, 0xdd, 0x65, 0x91, 0xa5, 0xb3, 0xf6, 0xc3, 0x24,
+ 0xa5, 0x6b, 0xc4, 0xe1, 0xf9, 0xcd, 0xc5, 0xe0, 0x7c, 0x5d, 0xa7, 0x7e, 0xf2, 0x3f, 0xd3, 0x55,
+ 0xc1, 0xf0, 0xf9, 0xda, 0x43, 0xc2, 0xf3, 0x35, 0x44, 0x61, 0x7d, 0x26, 0x4c, 0x1c, 0xc4, 0x2b,
+ 0xbe, 0x24, 0xe6, 0x6b, 0x23, 0x0e, 0xd7, 0xc7, 0xc5, 0xec, 0xde, 0xc0, 0x78, 0x18, 0xe7, 0x82,
+ 0x95, 0x79, 0x9c, 0xed, 0x65, 0xf1, 0xbc, 0x1a, 0x10, 0x73, 0x8c, 0x4f, 0x11, 0x7b, 0x03, 0x9a,
+ 0x46, 0x9a, 0x71, 0x5c, 0xed, 0xc5, 0x57, 0xbc, 0x4c, 0x05, 0xdd, 0x8c, 0x16, 0xe9, 0x6c, 0x46,
+ 0x0f, 0x45, 0xbd, 0x8d, 0xca, 0xd9, 0x45, 0x7a, 0xc5, 0x92, 0x80, 0x37, 0x8d, 0xf4, 0xf0, 0xe6,
+ 0xa0, 0x48, 0xa7, 0x4d, 0xf8, 0xb2, 0x9c, 0x31, 0xb2, 0xd3, 0x1a, 0x71, 0x67, 0xa7, 0x19, 0x4c,
+ 0x79, 0xf8, 0xab, 0xb5, 0xe8, 0xb7, 0x1a, 0xa9, 0xfb, 0x84, 0x67, 0x37, 0xae, 0x2e, 0xce, 0x78,
+ 0x5c, 0x26, 0x83, 0x0f, 0x30, 0x3b, 0x28, 0x6a, 0x5c, 0x3f, 0xb9, 0x8e, 0x0a, 0x6c, 0xd6, 0x3a,
+ 0xef, 0xb6, 0x23, 0x0e, 0x6d, 0x56, 0x0f, 0x09, 0x37, 0x2b, 0x44, 0xe1, 0x04, 0x22, 0xe5, 0xcd,
+ 0x01, 0xe0, 0x3a, 0xa9, 0xef, 0x9f, 0x02, 0x6e, 0x74, 0x72, 0x70, 0x7e, 0xac, 0x85, 0x7e, 0xb4,
+ 0x6c, 0x51, 0x36, 0xf0, 0x88, 0x19, 0xf6, 0xc5, 0x49, 0xcf, 0x66, 0x54, 0x84, 0x3d, 0xb7, 0x46,
+ 0xc6, 0xb0, 0x2f, 0x4e, 0x78, 0x76, 0xa6, 0xb5, 0x90, 0x67, 0x64, 0x6a, 0x1b, 0xf6, 0xc5, 0x61,
+ 0xf6, 0xa5, 0x18, 0xbd, 0x2e, 0x3c, 0x0c, 0xd8, 0x81, 0x6b, 0xc3, 0x66, 0x2f, 0x56, 0x39, 0xfc,
+ 0x9b, 0xb5, 0xe8, 0xbb, 0xd6, 0xe3, 0x21, 0x4f, 0xd2, 0xf3, 0x55, 0x03, 0xbd, 0x88, 0xb3, 0x25,
+ 0xab, 0x06, 0x4f, 0x28, 0x6b, 0x6d, 0xd6, 0x94, 0xe0, 0xe9, 0xb5, 0x74, 0xe0, 0xd8, 0x19, 0x15,
+ 0x45, 0xb6, 0x9a, 0xb2, 0x45, 0x91, 0x91, 0x63, 0xc7, 0x43, 0xc2, 0x63, 0x07, 0xa2, 0x30, 0x2b,
+ 0x9f, 0xf2, 0x3a, 0xe7, 0x47, 0xb3, 0x72, 0x29, 0x0a, 0x67, 0xe5, 0x1a, 0x81, 0xb9, 0xd2, 0x94,
+ 0xef, 0xf0, 0x2c, 0x63, 0x33, 0xd1, 0xbe, 0x25, 0x62, 0x34, 0x2d, 0x11, 0xce, 0x95, 0x00, 0x69,
+ 0x4f, 0xe5, 0xf4, 0x1e, 0x32, 0x2e, 0xd9, 0xb3, 0xd5, 0x41, 0x9a, 0x5f, 0x0e, 0xf0, 0xb4, 0xc0,
+ 0x02, 0xc4, 0xa9, 0x1c, 0x0a, 0xc2, 0xbd, 0xea, 0x69, 0x9e, 0x70, 0x7c, 0xaf, 0x5a, 0x4b, 0xc2,
+ 0x7b, 0x55, 0x45, 0x40, 0x93, 0x27, 0x8c, 0x32, 0x59, 0x4b, 0xc2, 0x26, 0x15, 0x81, 0x4d, 0x85,
+ 0xea, 0x49, 0x11, 0x39, 0x15, 0x82, 0x67, 0x43, 0x1b, 0x9d, 0x1c, 0xdc, 0x73, 0x29, 0x07, 0x68,
+ 0x44, 0x00, 0xe3, 0x77, 0x82, 0x0c, 0x0c, 0x7d, 0xbd, 0x1b, 0xde, 0x63, 0x62, 0x76, 0x81, 0x87,
+ 0xbe, 0x87, 0x84, 0x43, 0x1f, 0xa2, 0xb0, 0xad, 0xa6, 0xdc, 0xec, 0xe6, 0xd7, 0xf1, 0xc0, 0x6b,
+ 0xed, 0xe4, 0x37, 0x3a, 0x39, 0xd8, 0x56, 0xe3, 0x05, 0xdd, 0x56, 0x8d, 0x2c, 0xdc, 0x56, 0x86,
+ 0x81, 0xa5, 0x6f, 0x04, 0xf2, 0x90, 0x6c, 0x9d, 0x56, 0xf4, 0x8e, 0xc9, 0x36, 0x3a, 0x39, 0xe5,
+ 0xe4, 0x5f, 0xcc, 0xfe, 0xb0, 0x91, 0x1e, 0xf1, 0x7a, 0xf0, 0xbd, 0x88, 0xb3, 0x34, 0x89, 0x05,
+ 0x9b, 0xf2, 0x4b, 0x96, 0xe3, 0x5b, 0x31, 0x55, 0xda, 0x86, 0x1f, 0x7a, 0x0a, 0xe1, 0xad, 0x58,
+ 0x58, 0x11, 0xc6, 0x49, 0x43, 0x9f, 0x56, 0x6c, 0x27, 0xae, 0x88, 0x29, 0xd2, 0x43, 0xc2, 0x71,
+ 0x02, 0x51, 0x98, 0x08, 0x37, 0xf2, 0xe7, 0xaf, 0x0b, 0x56, 0xa6, 0x2c, 0x9f, 0x31, 0x3c, 0x11,
+ 0x86, 0x54, 0x38, 0x11, 0x46, 0x68, 0xb8, 0x09, 0xdc, 0x8d, 0x05, 0x7b, 0xb6, 0x9a, 0xa6, 0x0b,
+ 0x56, 0x89, 0x78, 0x51, 0xe0, 0x9b, 0x40, 0x00, 0x85, 0x37, 0x81, 0x6d, 0xb8, 0x75, 0xe6, 0x64,
+ 0x66, 0xda, 0xf6, 0xad, 0x35, 0x48, 0x04, 0x6e, 0xad, 0x11, 0x28, 0x6c, 0x58, 0x0b, 0xa0, 0x4f,
+ 0x1f, 0x5a, 0x56, 0x82, 0x4f, 0x1f, 0x68, 0xba, 0x75, 0x92, 0x67, 0x98, 0x49, 0x3d, 0x34, 0x3b,
+ 0x8a, 0x3e, 0x71, 0x87, 0xe8, 0x66, 0x2f, 0x16, 0x3f, 0x3a, 0x3c, 0x61, 0x59, 0x2c, 0xd7, 0xc3,
+ 0xc0, 0xf9, 0x9c, 0x66, 0xfa, 0x1c, 0x1d, 0x3a, 0xac, 0x72, 0xf8, 0x17, 0x6b, 0xd1, 0x7b, 0x98,
+ 0xc7, 0x2f, 0x0a, 0xe9, 0xf7, 0x71, 0xb7, 0xad, 0x86, 0x24, 0xae, 0xe5, 0x85, 0x35, 0xec, 0xcd,
+ 0x12, 0x2d, 0xb2, 0xb7, 0xf6, 0x54, 0x01, 0xfc, 0x6c, 0xd0, 0x94, 0x1f, 0x72, 0xc4, 0xcd, 0x92,
+ 0x10, 0x6f, 0x37, 0x5a, 0x7e, 0xb9, 0x2a, 0xb0, 0xd1, 0x32, 0x36, 0x94, 0x98, 0xd8, 0x68, 0x21,
+ 0x98, 0x1d, 0x9d, 0x6e, 0xf5, 0x5e, 0xa6, 0xe2, 0x42, 0x26, 0x72, 0x60, 0x74, 0x7a, 0x65, 0x35,
+ 0x10, 0x31, 0x3a, 0x49, 0x18, 0xa6, 0x3a, 0x1a, 0xac, 0xc7, 0x26, 0x36, 0x97, 0x1b, 0x43, 0xee,
+ 0xc8, 0xbc, 0xdf, 0x0d, 0xc2, 0x78, 0xd5, 0x62, 0xb5, 0xa7, 0x7a, 0x18, 0xb2, 0x00, 0xf6, 0x55,
+ 0x9b, 0xbd, 0x58, 0xe5, 0xf0, 0xcf, 0xa2, 0xef, 0xb4, 0x2a, 0xb6, 0xc7, 0x62, 0xb1, 0x2c, 0x59,
+ 0x32, 0xd8, 0xee, 0x28, 0xb7, 0x06, 0x8d, 0xeb, 0xc7, 0xfd, 0x15, 0x5a, 0xc9, 0xbf, 0xe6, 0x9a,
+ 0xb0, 0x32, 0x65, 0x78, 0x12, 0x32, 0xe9, 0xb3, 0xc1, 0xe4, 0x9f, 0xd6, 0x69, 0xed, 0xdf, 0xdd,
+ 0xe8, 0x1a, 0x5d, 0xc5, 0x69, 0x26, 0x9f, 0x02, 0x7f, 0x10, 0x32, 0xea, 0xa1, 0xc1, 0xfd, 0x3b,
+ 0xa9, 0xd2, 0x9a, 0x99, 0xe5, 0x18, 0x77, 0xf6, 0x7d, 0x8f, 0xe8, 0x99, 0x00, 0xd9, 0xf6, 0x6d,
+ 0xf5, 0xa4, 0x95, 0x5b, 0xa1, 0x97, 0xbc, 0xfa, 0xcf, 0x6e, 0x90, 0x63, 0x5e, 0x95, 0x2a, 0x12,
+ 0xe9, 0x5b, 0x3d, 0x69, 0xe5, 0xf5, 0x4f, 0xa3, 0x77, 0xdb, 0x5e, 0xd5, 0x42, 0xb4, 0xdd, 0x69,
+ 0x0a, 0xac, 0x45, 0x8f, 0xfb, 0x2b, 0x28, 0xf7, 0xff, 0x6e, 0x0e, 0xbc, 0x1b, 0xff, 0x33, 0xbe,
+ 0x58, 0xb0, 0x3c, 0x61, 0x89, 0xd6, 0xa8, 0xea, 0x8d, 0xd9, 0xa7, 0xb4, 0x5d, 0xa3, 0x30, 0x74,
+ 0x35, 0x4c, 0x89, 0x7e, 0xfb, 0x1b, 0x68, 0xaa, 0xa2, 0xfd, 0xf7, 0x5a, 0xf4, 0x00, 0x2d, 0x9a,
+ 0x0e, 0x5c, 0xaf, 0x88, 0xbf, 0xd7, 0xc7, 0x11, 0xa6, 0x69, 0x8a, 0x3a, 0xfa, 0x39, 0x2c, 0xa8,
+ 0x22, 0xff, 0xc7, 0x5a, 0x74, 0xdb, 0x2a, 0xd6, 0xe1, 0xbd, 0xc3, 0xf3, 0xf3, 0x2c, 0x9d, 0x09,
+ 0xf9, 0xa8, 0x57, 0xa9, 0xd0, 0xcd, 0x49, 0x69, 0x74, 0x37, 0x67, 0x40, 0xd3, 0xee, 0x8a, 0x3f,
+ 0x4b, 0x2b, 0xc1, 0xcb, 0xd5, 0xe4, 0x82, 0xbf, 0xd2, 0xef, 0x3d, 0xf9, 0xf3, 0xb2, 0x02, 0x86,
+ 0x0e, 0x41, 0xec, 0x8a, 0x71, 0xb2, 0xe5, 0xca, 0xbe, 0x1f, 0x55, 0x11, 0xae, 0x1c, 0xa2, 0xc3,
+ 0x95, 0x4f, 0xda, 0x55, 0x49, 0xd7, 0xca, 0xbe, 0xcc, 0xb5, 0x81, 0x17, 0xb5, 0xfd, 0x42, 0xd7,
+ 0xfd, 0x6e, 0xd0, 0xe6, 0xa6, 0x4a, 0xbc, 0x9b, 0x9e, 0x9f, 0x9b, 0x3a, 0xe1, 0x25, 0x75, 0x11,
+ 0x22, 0x37, 0x25, 0x50, 0xbb, 0xbd, 0xda, 0x4b, 0x33, 0x26, 0x1f, 0x0a, 0x7d, 0x71, 0x7e, 0x9e,
+ 0xf1, 0x38, 0x01, 0xdb, 0xab, 0x5a, 0x3c, 0x74, 0xe5, 0xc4, 0xf6, 0x0a, 0xe3, 0xec, 0x75, 0x93,
+ 0x5a, 0x5a, 0x47, 0x77, 0x3e, 0x4b, 0x33, 0x78, 0x6d, 0x5a, 0x6a, 0x1a, 0x21, 0x71, 0xdd, 0xa4,
+ 0x05, 0xd9, 0x14, 0xa8, 0x16, 0xd5, 0x51, 0xa9, 0xcb, 0x7f, 0xaf, 0xad, 0xe8, 0x88, 0x89, 0x14,
+ 0x08, 0xc1, 0xec, 0xf1, 0x45, 0x2d, 0x3c, 0x2d, 0xa4, 0xf1, 0x5b, 0x6d, 0xad, 0x46, 0x42, 0x1c,
+ 0x5f, 0xf8, 0x84, 0xdd, 0x2d, 0xd7, 0x7f, 0xdf, 0xe5, 0xaf, 0x72, 0x69, 0xf4, 0x76, 0x5b, 0x45,
+ 0xcb, 0x88, 0xdd, 0x32, 0x64, 0x94, 0xe1, 0xcf, 0xa3, 0x5f, 0x94, 0x86, 0x4b, 0x5e, 0x0c, 0x6e,
+ 0x20, 0x0a, 0xa5, 0x73, 0xc9, 0xf8, 0x26, 0x29, 0xb7, 0xb7, 0x53, 0x4c, 0x6c, 0x9c, 0x56, 0xf1,
+ 0x1c, 0xbe, 0x19, 0x60, 0x7b, 0x5c, 0x4a, 0x89, 0xdb, 0x29, 0x6d, 0xca, 0x8f, 0x8a, 0x23, 0x9e,
+ 0x28, 0xeb, 0x48, 0x0d, 0x8d, 0x30, 0x14, 0x15, 0x2e, 0x64, 0xd3, 0xd6, 0xa3, 0xf8, 0x2a, 0x9d,
+ 0x9b, 0xd4, 0xa2, 0x99, 0xc0, 0x2a, 0x90, 0xb6, 0x5a, 0x66, 0xe8, 0x40, 0x44, 0xda, 0x4a, 0xc2,
+ 0xca, 0xe7, 0x3f, 0xaf, 0x45, 0xb7, 0x2c, 0xb3, 0xaf, 0x0f, 0x7c, 0xc7, 0xf9, 0x39, 0xaf, 0x93,
+ 0xdc, 0x83, 0x34, 0xbf, 0xac, 0x06, 0x1f, 0x53, 0x26, 0x71, 0xde, 0x14, 0xe5, 0x93, 0x6b, 0xeb,
+ 0xd9, 0xfd, 0x89, 0x3e, 0x0d, 0xb5, 0x57, 0x22, 0x1a, 0x0d, 0xb0, 0x3f, 0x31, 0x87, 0xa6, 0x90,
+ 0x23, 0xf6, 0x27, 0x21, 0xde, 0x76, 0xb1, 0x71, 0x9e, 0xf1, 0x1c, 0x76, 0xb1, 0xb5, 0x50, 0x0b,
+ 0x89, 0x2e, 0x6e, 0x41, 0x76, 0x3e, 0xd6, 0xa2, 0xe6, 0x7c, 0x6d, 0x94, 0x65, 0x60, 0x3e, 0x36,
+ 0xaa, 0x06, 0x20, 0xe6, 0x63, 0x14, 0x54, 0x7e, 0x4e, 0xa2, 0x6f, 0xd5, 0x4d, 0x7a, 0x5c, 0xb2,
+ 0xab, 0x94, 0xc1, 0xdb, 0x3b, 0x8e, 0x84, 0x18, 0xff, 0x3e, 0x61, 0x47, 0xd6, 0x69, 0x5e, 0x15,
+ 0x59, 0x5c, 0x5d, 0xa8, 0xfb, 0x1c, 0x7e, 0x9d, 0xb5, 0x10, 0xde, 0xe8, 0xb8, 0xd7, 0x41, 0xd9,
+ 0x49, 0x5d, 0xcb, 0xcc, 0x14, 0xb3, 0x8e, 0xab, 0xb6, 0xa6, 0x99, 0x8d, 0x4e, 0xce, 0x3e, 0x34,
+ 0xd9, 0x8f, 0xb3, 0x8c, 0x95, 0x2b, 0x2d, 0x3b, 0x8c, 0xf3, 0xf4, 0x9c, 0x55, 0x02, 0x3c, 0x34,
+ 0x51, 0xd4, 0x10, 0x62, 0xc4, 0x43, 0x93, 0x00, 0x6e, 0xf7, 0x6d, 0xc0, 0xf3, 0x38, 0x4f, 0xd8,
+ 0x6b, 0xb0, 0x6f, 0x83, 0x76, 0x24, 0x43, 0xec, 0xdb, 0x28, 0xd6, 0x3e, 0x3c, 0x78, 0x96, 0xf1,
+ 0xd9, 0xa5, 0x5a, 0x02, 0xfc, 0x0e, 0x96, 0x12, 0xb8, 0x06, 0xdc, 0x0e, 0x21, 0x76, 0x11, 0x90,
+ 0x82, 0x13, 0x56, 0x64, 0xf1, 0x0c, 0x5e, 0xe1, 0x6a, 0x74, 0x94, 0x8c, 0x58, 0x04, 0x20, 0x03,
+ 0x8a, 0xab, 0xae, 0x86, 0x61, 0xc5, 0x05, 0x37, 0xc3, 0x6e, 0x87, 0x10, 0xbb, 0x0c, 0x4a, 0xc1,
+ 0xa4, 0xc8, 0x52, 0x01, 0x86, 0x41, 0xa3, 0x21, 0x25, 0xc4, 0x30, 0xf0, 0x09, 0x60, 0xf2, 0x90,
+ 0x95, 0x73, 0x86, 0x9a, 0x94, 0x92, 0xa0, 0x49, 0x4d, 0xd8, 0xfb, 0xea, 0x4d, 0xdd, 0x79, 0xb1,
+ 0x02, 0xf7, 0xd5, 0x55, 0xb5, 0x78, 0xb1, 0x22, 0xee, 0xab, 0x7b, 0x00, 0x28, 0xe2, 0x71, 0x5c,
+ 0x09, 0xbc, 0x88, 0x52, 0x12, 0x2c, 0xa2, 0x26, 0xec, 0x1a, 0xdd, 0x14, 0x71, 0x29, 0xc0, 0x1a,
+ 0xad, 0x0a, 0xe0, 0x5c, 0x62, 0xb8, 0x49, 0xca, 0xed, 0x4c, 0xd2, 0xf4, 0x0a, 0x13, 0x7b, 0x29,
+ 0xcb, 0x92, 0x0a, 0xcc, 0x24, 0xaa, 0xdd, 0xb5, 0x94, 0x98, 0x49, 0xda, 0x14, 0x08, 0x25, 0xf5,
+ 0x04, 0x04, 0xab, 0x1d, 0x78, 0x00, 0x72, 0x3b, 0x84, 0xd8, 0xf9, 0x49, 0x17, 0x7a, 0x27, 0x2e,
+ 0xcb, 0xb4, 0x5e, 0xfc, 0xd7, 0xf1, 0x02, 0x69, 0x39, 0x31, 0x3f, 0x61, 0x1c, 0x18, 0x5e, 0x7a,
+ 0xe2, 0xc6, 0x0a, 0x06, 0xa7, 0xee, 0x3b, 0x41, 0xc6, 0x66, 0x9c, 0x52, 0xe2, 0x3c, 0x85, 0xc7,
+ 0x5a, 0x13, 0x79, 0x08, 0xbf, 0xde, 0x85, 0x39, 0xaf, 0xce, 0x19, 0x17, 0x87, 0xfc, 0x8a, 0x4d,
+ 0xf9, 0xf3, 0xd7, 0x69, 0x55, 0x6f, 0xb7, 0xd4, 0xca, 0xfd, 0x94, 0xb0, 0x84, 0xc1, 0xc4, 0xab,
+ 0x73, 0x9d, 0x4a, 0x36, 0x81, 0x00, 0x65, 0x39, 0x62, 0xaf, 0xd0, 0x04, 0x02, 0x5a, 0x34, 0x1c,
+ 0x91, 0x40, 0x84, 0x78, 0x7b, 0x62, 0x66, 0x9c, 0xab, 0xef, 0x25, 0x4c, 0xb9, 0xce, 0xe5, 0x28,
+ 0x6b, 0x10, 0x24, 0x0e, 0x2d, 0x82, 0x0a, 0x76, 0x7f, 0x69, 0xfc, 0xdb, 0x21, 0x76, 0x9f, 0xb0,
+ 0xd3, 0x1e, 0x66, 0x0f, 0x7a, 0x90, 0x88, 0x2b, 0x7b, 0x95, 0x84, 0x72, 0xd5, 0xbe, 0x49, 0xf2,
+ 0xa0, 0x07, 0xe9, 0x9c, 0xbe, 0xb9, 0xd5, 0x7a, 0x16, 0xcf, 0x2e, 0xe7, 0x25, 0x5f, 0xe6, 0xc9,
+ 0x0e, 0xcf, 0x78, 0x09, 0x4e, 0xdf, 0xbc, 0x52, 0x03, 0x94, 0x38, 0x7d, 0xeb, 0x50, 0xb1, 0x19,
+ 0x9c, 0x5b, 0x8a, 0x51, 0x96, 0xce, 0xe1, 0x8e, 0xda, 0x33, 0x24, 0x01, 0x22, 0x83, 0x43, 0x41,
+ 0x24, 0x88, 0x9a, 0x1d, 0xb7, 0x48, 0x67, 0x71, 0xd6, 0xf8, 0xdb, 0xa6, 0xcd, 0x78, 0x60, 0x67,
+ 0x10, 0x21, 0x0a, 0x48, 0x3d, 0xa7, 0xcb, 0x32, 0x1f, 0xe7, 0x82, 0x93, 0xf5, 0xd4, 0x40, 0x67,
+ 0x3d, 0x1d, 0x10, 0x4c, 0xab, 0x53, 0xf6, 0xba, 0x2e, 0x4d, 0xfd, 0x0f, 0x36, 0xad, 0xd6, 0x7f,
+ 0x1f, 0x2a, 0x79, 0x68, 0x5a, 0x05, 0x1c, 0xa8, 0x8c, 0x72, 0xd2, 0x04, 0x4c, 0x40, 0xdb, 0x0f,
+ 0x93, 0xfb, 0xdd, 0x20, 0xee, 0x67, 0x22, 0x56, 0x19, 0x0b, 0xf9, 0x91, 0x40, 0x1f, 0x3f, 0x1a,
+ 0xb4, 0xc7, 0x2d, 0x5e, 0x7d, 0x2e, 0xd8, 0xec, 0xb2, 0x75, 0x33, 0xce, 0x2f, 0x68, 0x83, 0x10,
+ 0xc7, 0x2d, 0x04, 0x8a, 0x77, 0xd1, 0x78, 0xc6, 0xf3, 0x50, 0x17, 0xd5, 0xf2, 0x3e, 0x5d, 0xa4,
+ 0x38, 0xbb, 0xf9, 0x35, 0x52, 0x15, 0x99, 0x4d, 0x37, 0x6d, 0x12, 0x16, 0x5c, 0x88, 0xd8, 0xfc,
+ 0x92, 0xb0, 0xcd, 0xc9, 0xa1, 0xcf, 0xc3, 0xf6, 0x6b, 0x03, 0x2d, 0x2b, 0x87, 0xf4, 0x6b, 0x03,
+ 0x14, 0x4b, 0x57, 0xb2, 0x89, 0x91, 0x0e, 0x2b, 0x7e, 0x9c, 0x3c, 0xea, 0x07, 0xdb, 0x2d, 0x8f,
+ 0xe7, 0x73, 0x27, 0x63, 0x71, 0xd9, 0x78, 0xdd, 0x0a, 0x18, 0xb2, 0x18, 0xb1, 0xe5, 0x09, 0xe0,
+ 0x60, 0x0a, 0xf3, 0x3c, 0xef, 0xf0, 0x5c, 0xb0, 0x5c, 0x60, 0x53, 0x98, 0x6f, 0x4c, 0x81, 0xa1,
+ 0x29, 0x8c, 0x52, 0x00, 0x71, 0x2b, 0xcf, 0x83, 0x98, 0x38, 0x8a, 0x17, 0x68, 0xc6, 0xd6, 0x9c,
+ 0xf5, 0x34, 0xf2, 0x50, 0xdc, 0x02, 0xce, 0x79, 0x9c, 0xeb, 0x7a, 0x99, 0xc6, 0xe5, 0xdc, 0x9c,
+ 0x6e, 0x24, 0x83, 0xc7, 0xb4, 0x1d, 0x9f, 0x24, 0x1e, 0xe7, 0x86, 0x35, 0xc0, 0xb4, 0x33, 0x5e,
+ 0xc4, 0x73, 0x53, 0x53, 0xa4, 0x06, 0x52, 0xde, 0xaa, 0xea, 0xfd, 0x6e, 0x10, 0xf8, 0x79, 0x91,
+ 0x26, 0x8c, 0x07, 0xfc, 0x48, 0x79, 0x1f, 0x3f, 0x10, 0x04, 0xd9, 0x5b, 0x5d, 0xef, 0x66, 0x47,
+ 0x37, 0xca, 0x13, 0xb5, 0x8f, 0x1d, 0x12, 0xcd, 0x03, 0xb8, 0x50, 0xf6, 0x46, 0xf0, 0x60, 0x8c,
+ 0xea, 0x03, 0xda, 0xd0, 0x18, 0x35, 0xe7, 0xaf, 0x7d, 0xc6, 0x28, 0x06, 0x2b, 0x9f, 0x3f, 0x56,
+ 0x63, 0x74, 0x37, 0x16, 0x71, 0x9d, 0xb7, 0xbf, 0x48, 0xd9, 0x2b, 0xb5, 0x11, 0x46, 0xea, 0xab,
+ 0xa9, 0xa1, 0x7c, 0xeb, 0x19, 0xec, 0x8a, 0xb7, 0x7b, 0xf3, 0x01, 0xdf, 0x6a, 0x87, 0xd0, 0xe9,
+ 0x1b, 0x6c, 0x15, 0xb6, 0x7b, 0xf3, 0x01, 0xdf, 0xea, 0xe3, 0x0d, 0x9d, 0xbe, 0xc1, 0x17, 0x1c,
+ 0xb6, 0x7b, 0xf3, 0xca, 0xf7, 0x5f, 0xea, 0x81, 0xeb, 0x3a, 0xaf, 0xf3, 0xb0, 0x99, 0x48, 0xaf,
+ 0x18, 0x96, 0x4e, 0xfa, 0xf6, 0x0c, 0x1a, 0x4a, 0x27, 0x69, 0x15, 0xe7, 0xf3, 0x69, 0x58, 0x29,
+ 0x8e, 0x79, 0x95, 0xca, 0xeb, 0x18, 0x4f, 0x7b, 0x18, 0xd5, 0x70, 0x68, 0xd3, 0x14, 0x52, 0xb2,
+ 0x0f, 0x96, 0x3d, 0xd4, 0x5e, 0x84, 0x7f, 0x14, 0xb0, 0xd7, 0xbe, 0x0f, 0xbf, 0xd5, 0x93, 0xb6,
+ 0x8f, 0x78, 0x3d, 0x46, 0x3f, 0x9c, 0x9b, 0x30, 0x74, 0x95, 0x30, 0xa6, 0xcc, 0x43, 0x5b, 0xf7,
+ 0x29, 0xe5, 0xe3, 0xfe, 0x0a, 0x1d, 0xee, 0x47, 0x49, 0xd2, 0xcf, 0xbd, 0xfb, 0x74, 0xfb, 0x71,
+ 0x7f, 0x05, 0xe5, 0xfe, 0xaf, 0xf5, 0xb6, 0x06, 0xfa, 0x57, 0x63, 0xf0, 0x49, 0x1f, 0x8b, 0x60,
+ 0x1c, 0x3e, 0xbd, 0x96, 0x8e, 0x2a, 0xc8, 0xdf, 0xeb, 0xfd, 0xbb, 0x46, 0xe5, 0xdb, 0x48, 0xf2,
+ 0x2d, 0x66, 0x35, 0x24, 0x43, 0x51, 0x65, 0x61, 0x38, 0x30, 0x3f, 0xba, 0xa6, 0x96, 0xf3, 0x2d,
+ 0x3f, 0x0f, 0x56, 0x6f, 0xcd, 0x3a, 0xe5, 0x09, 0x59, 0x76, 0x68, 0x58, 0xa0, 0x8f, 0xaf, 0xab,
+ 0x46, 0x0d, 0x55, 0x07, 0x96, 0x5f, 0xb3, 0x79, 0xda, 0xd3, 0xb0, 0xf7, 0x7d, 0x9b, 0x0f, 0xaf,
+ 0xa7, 0xa4, 0xca, 0xf2, 0x5f, 0x6b, 0xd1, 0x3d, 0x8f, 0xb5, 0x8f, 0x33, 0xc0, 0xa1, 0xcb, 0x0f,
+ 0x02, 0xf6, 0x29, 0x25, 0x53, 0xb8, 0xdf, 0xf9, 0x66, 0xca, 0xf6, 0xc3, 0x77, 0x9e, 0xca, 0x5e,
+ 0x9a, 0x09, 0x56, 0xb6, 0x3f, 0x7c, 0xe7, 0xdb, 0x6d, 0xa8, 0x21, 0xfd, 0xe1, 0xbb, 0x00, 0xee,
+ 0x7c, 0xf8, 0x0e, 0xf1, 0x8c, 0x7e, 0xf8, 0x0e, 0xb5, 0x16, 0xfc, 0xf0, 0x5d, 0x58, 0x83, 0x5a,
+ 0x5d, 0x74, 0x11, 0x9a, 0x63, 0xf3, 0x5e, 0x16, 0xfd, 0x53, 0xf4, 0x27, 0xd7, 0x51, 0x21, 0xd6,
+ 0xd7, 0x86, 0x93, 0x17, 0x2a, 0x7b, 0xb4, 0xa9, 0x77, 0xa9, 0x72, 0xbb, 0x37, 0xaf, 0x7c, 0xff,
+ 0x48, 0x6d, 0xae, 0xcc, 0x6a, 0xc2, 0x4b, 0xf9, 0xd1, 0xc3, 0xcd, 0xd0, 0xea, 0x50, 0x5b, 0x70,
+ 0x7b, 0xfe, 0x51, 0x3f, 0x98, 0xa8, 0x6e, 0x4d, 0xa8, 0x4e, 0x1f, 0x76, 0x19, 0x02, 0x5d, 0xbe,
+ 0xdd, 0x9b, 0x27, 0x96, 0x91, 0xc6, 0x77, 0xd3, 0xdb, 0x3d, 0x8c, 0xf9, 0x7d, 0xfd, 0xb8, 0xbf,
+ 0x82, 0x72, 0x7f, 0xa5, 0xb2, 0x56, 0xd7, 0xbd, 0xec, 0xe7, 0xad, 0x2e, 0x53, 0x13, 0xaf, 0x9b,
+ 0x87, 0x7d, 0xf1, 0x50, 0xfe, 0xe2, 0x2e, 0xa1, 0x5d, 0xf9, 0x0b, 0xba, 0x8c, 0x7e, 0x78, 0x3d,
+ 0x25, 0x55, 0x96, 0x7f, 0x5a, 0x8b, 0x6e, 0x92, 0x65, 0x51, 0x71, 0xf0, 0x71, 0x5f, 0xcb, 0x20,
+ 0x1e, 0x3e, 0xb9, 0xb6, 0x9e, 0x2a, 0xd4, 0xbf, 0xae, 0x45, 0xb7, 0x02, 0x85, 0x6a, 0x02, 0xe4,
+ 0x1a, 0xd6, 0xfd, 0x40, 0xf9, 0xf4, 0xfa, 0x8a, 0xd4, 0x72, 0xef, 0xe2, 0x93, 0xf6, 0x47, 0xcc,
+ 0x02, 0xb6, 0x27, 0xf4, 0x47, 0xcc, 0xba, 0xb5, 0xe0, 0x19, 0x53, 0x7c, 0xa6, 0xf7, 0x7c, 0xe8,
+ 0x19, 0x93, 0xbc, 0x0a, 0x19, 0xfc, 0x3c, 0x0a, 0xc6, 0x61, 0x4e, 0x9e, 0xbf, 0x2e, 0xe2, 0x3c,
+ 0xa1, 0x9d, 0x34, 0xf2, 0x6e, 0x27, 0x86, 0x83, 0x67, 0x73, 0xb5, 0xf4, 0x84, 0xeb, 0x7d, 0xdc,
+ 0x03, 0x4a, 0xdf, 0x20, 0xc1, 0xb3, 0xb9, 0x16, 0x4a, 0x78, 0x53, 0x59, 0x63, 0xc8, 0x1b, 0x48,
+ 0x16, 0x1f, 0xf6, 0x41, 0xc1, 0x0e, 0xc1, 0x78, 0x33, 0x47, 0xfe, 0x8f, 0x42, 0x56, 0x5a, 0xc7,
+ 0xfe, 0x5b, 0x3d, 0x69, 0xc2, 0xed, 0x84, 0x89, 0xcf, 0x58, 0x9c, 0xb0, 0x32, 0xe8, 0xd6, 0x50,
+ 0xbd, 0xdc, 0xba, 0x34, 0xe6, 0x76, 0x87, 0x67, 0xcb, 0x45, 0xae, 0x3a, 0x93, 0x74, 0xeb, 0x52,
+ 0xdd, 0x6e, 0x01, 0x0d, 0x4f, 0x25, 0xad, 0x5b, 0x99, 0x5e, 0x3e, 0x0c, 0x9b, 0xf1, 0xb2, 0xca,
+ 0xcd, 0x5e, 0x2c, 0x5d, 0x4f, 0x15, 0x46, 0x1d, 0xf5, 0x04, 0x91, 0xb4, 0xd5, 0x93, 0x86, 0xc7,
+ 0x83, 0x8e, 0x5b, 0x13, 0x4f, 0xdb, 0x1d, 0xb6, 0x5a, 0x21, 0xf5, 0xb8, 0xbf, 0x02, 0x3c, 0x8c,
+ 0x55, 0x51, 0x75, 0x90, 0x56, 0x62, 0x2f, 0xcd, 0xb2, 0xc1, 0x66, 0x20, 0x4c, 0x34, 0x14, 0x3c,
+ 0x8c, 0x45, 0x60, 0x22, 0x92, 0xf5, 0xe1, 0x65, 0x3e, 0xe8, 0xb2, 0x23, 0xa9, 0x5e, 0x91, 0xec,
+ 0xd2, 0xe0, 0x40, 0xcd, 0x69, 0x6a, 0x53, 0xdb, 0x61, 0xb8, 0xe1, 0x5a, 0x15, 0xde, 0xee, 0xcd,
+ 0x83, 0xa7, 0xfd, 0x92, 0x92, 0x2b, 0xcb, 0x5d, 0xca, 0x84, 0xb7, 0x92, 0xdc, 0xeb, 0xa0, 0xc0,
+ 0xa1, 0x64, 0x33, 0x8c, 0x5e, 0xa6, 0xc9, 0x9c, 0x09, 0xf4, 0x41, 0x95, 0x0b, 0x04, 0x1f, 0x54,
+ 0x01, 0x10, 0x74, 0x5d, 0xf3, 0x77, 0x73, 0x1a, 0x3b, 0x4e, 0xb0, 0xae, 0x53, 0xca, 0x0e, 0x15,
+ 0xea, 0x3a, 0x94, 0x06, 0xb3, 0x81, 0x71, 0xab, 0x3e, 0x28, 0xf1, 0x30, 0x64, 0x06, 0x7c, 0x55,
+ 0x62, 0xb3, 0x17, 0x0b, 0x56, 0x14, 0xeb, 0x30, 0x5d, 0xa4, 0x02, 0x5b, 0x51, 0x1c, 0x1b, 0x35,
+ 0x12, 0x5a, 0x51, 0xda, 0x28, 0x55, 0xbd, 0x3a, 0x47, 0x18, 0x27, 0xe1, 0xea, 0x35, 0x4c, 0xbf,
+ 0xea, 0x19, 0xb6, 0xf5, 0x5c, 0x35, 0x37, 0x21, 0x23, 0x2e, 0xd4, 0x66, 0x19, 0x89, 0x6d, 0xf9,
+ 0xa2, 0x31, 0x04, 0x43, 0xb3, 0x0e, 0xa5, 0x00, 0x9f, 0x17, 0xd4, 0x9c, 0x7e, 0xf4, 0x5b, 0x14,
+ 0x2c, 0x2e, 0xe3, 0x7c, 0x86, 0x6e, 0x4e, 0xa5, 0xc1, 0x16, 0x19, 0xda, 0x9c, 0x92, 0x1a, 0xe0,
+ 0xa9, 0xbd, 0xff, 0x26, 0x2f, 0x32, 0x14, 0xcc, 0x2b, 0xb3, 0xfe, 0x8b, 0xbc, 0x0f, 0x7a, 0x90,
+ 0xf0, 0xa9, 0xbd, 0x06, 0xcc, 0xb9, 0x7b, 0xe3, 0xf4, 0x83, 0x80, 0x29, 0x1f, 0x0d, 0x6d, 0x84,
+ 0x69, 0x15, 0x10, 0xd4, 0xce, 0xd9, 0xe2, 0xe7, 0x6c, 0x85, 0x05, 0xb5, 0x7b, 0x48, 0xf8, 0x39,
+ 0x5b, 0x85, 0x82, 0xba, 0x8d, 0x82, 0x3c, 0xd3, 0xdd, 0x07, 0xad, 0x07, 0xf4, 0xdd, 0xad, 0xcf,
+ 0x46, 0x27, 0x07, 0x46, 0xce, 0x6e, 0x7a, 0xe5, 0x3d, 0xa6, 0x40, 0x0a, 0xba, 0x9b, 0x5e, 0xe1,
+ 0x4f, 0x29, 0x36, 0x7b, 0xb1, 0xf0, 0x46, 0x40, 0x2c, 0xd8, 0x6b, 0xfd, 0xa8, 0x1e, 0x29, 0xae,
+ 0x94, 0xb7, 0x9e, 0xd5, 0xdf, 0xef, 0x06, 0xed, 0xfd, 0xdb, 0xe3, 0x92, 0xcf, 0x58, 0x55, 0xa9,
+ 0x6f, 0xad, 0xfa, 0x17, 0x9c, 0x94, 0x6c, 0x08, 0xbe, 0xb4, 0x7a, 0x37, 0x0c, 0x39, 0x1f, 0x48,
+ 0x6c, 0x44, 0xf6, 0xbb, 0x4d, 0xeb, 0xa8, 0x66, 0xfb, 0x93, 0x4d, 0x1b, 0x9d, 0x9c, 0x1d, 0x5e,
+ 0x4a, 0xea, 0x7e, 0xa8, 0xe9, 0x3e, 0xaa, 0x8e, 0x7d, 0xa3, 0xe9, 0x41, 0x0f, 0x52, 0xb9, 0xfa,
+ 0x2c, 0x7a, 0xf3, 0x80, 0xcf, 0x27, 0x2c, 0x4f, 0x06, 0xdf, 0xf3, 0x6f, 0xf0, 0xf2, 0xf9, 0xb0,
+ 0xfe, 0xb3, 0x31, 0x7a, 0x83, 0x12, 0xdb, 0x3b, 0x88, 0xbb, 0xec, 0x6c, 0x39, 0x9f, 0x88, 0x58,
+ 0x80, 0x3b, 0x88, 0xf2, 0xef, 0xc3, 0x5a, 0x40, 0xdc, 0x41, 0xf4, 0x00, 0x60, 0x6f, 0x5a, 0x32,
+ 0x86, 0xda, 0xab, 0x05, 0x41, 0x7b, 0x0a, 0xb0, 0x59, 0x84, 0xb1, 0x57, 0x27, 0xea, 0xf0, 0xce,
+ 0xa0, 0xd5, 0x91, 0x52, 0x22, 0x8b, 0x68, 0x53, 0x36, 0xb8, 0x9b, 0xea, 0xcb, 0xef, 0xe6, 0x2c,
+ 0x17, 0x8b, 0xb8, 0x5c, 0x81, 0xe0, 0x56, 0xb5, 0x74, 0x00, 0x22, 0xb8, 0x51, 0xd0, 0x8e, 0x5a,
+ 0xdd, 0xcc, 0xb3, 0xcb, 0x7d, 0x5e, 0xf2, 0xa5, 0x48, 0x73, 0x06, 0xbf, 0x9d, 0x62, 0x1a, 0xd4,
+ 0x65, 0x88, 0x51, 0x4b, 0xb1, 0x36, 0xcb, 0x95, 0x44, 0x73, 0x9d, 0x51, 0x7e, 0x6c, 0xbe, 0x12,
+ 0xbc, 0x84, 0x8f, 0x33, 0x1b, 0x2b, 0x10, 0x22, 0xb2, 0x5c, 0x12, 0x06, 0x7d, 0x7f, 0x9c, 0xe6,
+ 0x73, 0xb4, 0xef, 0x8f, 0xdd, 0xef, 0x17, 0xdf, 0xa2, 0x01, 0x3b, 0xa0, 0x9a, 0x46, 0x6b, 0x06,
+ 0x80, 0x7a, 0x69, 0x18, 0x6d, 0x74, 0x97, 0x20, 0x06, 0x14, 0x4e, 0x02, 0x57, 0x5f, 0x14, 0x2c,
+ 0x67, 0x89, 0xbe, 0xb4, 0x87, 0xb9, 0xf2, 0x88, 0xa0, 0x2b, 0x48, 0xda, 0xb9, 0x48, 0xca, 0x4f,
+ 0x96, 0xf9, 0x71, 0xc9, 0xcf, 0xd3, 0x8c, 0x95, 0x60, 0x2e, 0x6a, 0xd4, 0x1d, 0x39, 0x31, 0x17,
+ 0x61, 0x9c, 0xbd, 0xfd, 0x21, 0xa5, 0xde, 0x2f, 0x26, 0x4c, 0xcb, 0x78, 0x06, 0x6f, 0x7f, 0x34,
+ 0x36, 0xda, 0x18, 0x71, 0x32, 0x18, 0xc0, 0x9d, 0x44, 0xa7, 0x71, 0x9d, 0xaf, 0x64, 0x7c, 0xa8,
+ 0x97, 0x56, 0xe5, 0x57, 0x7d, 0x2b, 0x90, 0xe8, 0x28, 0x73, 0x18, 0x49, 0x24, 0x3a, 0x61, 0x0d,
+ 0xbb, 0x94, 0x48, 0xee, 0x48, 0xdd, 0x6a, 0x02, 0x4b, 0x49, 0x63, 0x43, 0x0b, 0x89, 0xa5, 0xa4,
+ 0x05, 0x81, 0x09, 0x49, 0x0f, 0x83, 0x39, 0x3a, 0x21, 0x19, 0x69, 0x70, 0x42, 0x72, 0x29, 0x3b,
+ 0x51, 0x8c, 0xf3, 0x54, 0xa4, 0x71, 0x36, 0x61, 0xe2, 0x38, 0x2e, 0xe3, 0x05, 0x13, 0xac, 0x84,
+ 0x13, 0x85, 0x42, 0x86, 0x1e, 0x43, 0x4c, 0x14, 0x14, 0xab, 0x1c, 0xfe, 0x6e, 0xf4, 0x76, 0xbd,
+ 0xee, 0xb3, 0x5c, 0xfd, 0xd6, 0xd3, 0x73, 0xf9, 0x23, 0x71, 0x83, 0x77, 0x8c, 0x8d, 0x89, 0x28,
+ 0x59, 0xbc, 0xd0, 0xb6, 0xdf, 0x32, 0x7f, 0x97, 0xe0, 0xe3, 0xb5, 0x3a, 0x9e, 0x8f, 0xb8, 0x48,
+ 0xcf, 0xeb, 0x6d, 0xb6, 0x7a, 0x81, 0x09, 0xc4, 0xb3, 0x2b, 0x1e, 0x06, 0x3e, 0x7a, 0x82, 0x71,
+ 0x76, 0x9e, 0x76, 0xa5, 0x27, 0xac, 0xc8, 0xe0, 0x3c, 0xed, 0x69, 0x4b, 0x80, 0x98, 0xa7, 0x51,
+ 0xd0, 0x0e, 0x4e, 0x57, 0x3c, 0x65, 0xe1, 0xca, 0x4c, 0x59, 0xbf, 0xca, 0x4c, 0xbd, 0x77, 0x42,
+ 0xb2, 0xe8, 0xed, 0x43, 0xb6, 0x38, 0x63, 0x65, 0x75, 0x91, 0x16, 0xd4, 0x97, 0x87, 0x2d, 0xd1,
+ 0xf9, 0xe5, 0x61, 0x02, 0xb5, 0x2b, 0x81, 0x05, 0xc6, 0xd5, 0x51, 0xbc, 0x60, 0xf2, 0x13, 0x2e,
+ 0x60, 0x25, 0x70, 0x8c, 0x38, 0x10, 0xb1, 0x12, 0x90, 0xb0, 0xf3, 0x7a, 0x99, 0x65, 0x4e, 0xd8,
+ 0xbc, 0x8e, 0xb0, 0xf2, 0x38, 0x5e, 0x2d, 0x58, 0x2e, 0x94, 0x49, 0x70, 0x26, 0xef, 0x98, 0xc4,
+ 0x79, 0xe2, 0x4c, 0xbe, 0x8f, 0x9e, 0x33, 0x35, 0x79, 0x0d, 0x7f, 0xcc, 0x4b, 0xd1, 0xfc, 0x92,
+ 0xdb, 0x69, 0x99, 0x81, 0xa9, 0xc9, 0x6f, 0x54, 0x8f, 0x24, 0xa6, 0xa6, 0xb0, 0x86, 0xf3, 0xab,
+ 0x1d, 0x5e, 0x19, 0x5e, 0xb0, 0xd2, 0xc4, 0xc9, 0xf3, 0x45, 0x9c, 0x66, 0x2a, 0x1a, 0xbe, 0x1f,
+ 0xb0, 0x4d, 0xe8, 0x10, 0xbf, 0xda, 0xd1, 0x57, 0xd7, 0xf9, 0x9d, 0x93, 0x70, 0x09, 0xc1, 0x23,
+ 0x82, 0x0e, 0xfb, 0xc4, 0x23, 0x82, 0x6e, 0x2d, 0xbb, 0x73, 0xb7, 0xac, 0xe4, 0x56, 0x92, 0xd8,
+ 0xe1, 0x09, 0x3c, 0x2f, 0x74, 0x6c, 0x02, 0x90, 0xd8, 0xb9, 0x07, 0x15, 0x6c, 0x6a, 0x60, 0xb1,
+ 0xbd, 0x34, 0x8f, 0xb3, 0xf4, 0xc7, 0x30, 0xad, 0x77, 0xec, 0x68, 0x82, 0x48, 0x0d, 0x70, 0x12,
+ 0x73, 0xb5, 0xcf, 0xc4, 0x34, 0xad, 0xa7, 0xfe, 0xfb, 0x81, 0x76, 0x93, 0x44, 0xb7, 0x2b, 0x87,
+ 0x74, 0xbe, 0x32, 0x0c, 0x9b, 0x75, 0x54, 0x14, 0x93, 0x7a, 0x55, 0x3d, 0x61, 0x33, 0x96, 0x16,
+ 0x62, 0xf0, 0x51, 0xb8, 0xad, 0x00, 0x4e, 0x5c, 0xb4, 0xe8, 0xa1, 0xe6, 0x3c, 0xbe, 0xaf, 0xe7,
+ 0x92, 0x49, 0xf3, 0x13, 0xa7, 0xa7, 0x15, 0x2b, 0x55, 0xa2, 0xb1, 0xcf, 0x04, 0x18, 0x9d, 0x0e,
+ 0x37, 0x74, 0xc0, 0xba, 0xa2, 0xc4, 0xe8, 0x0c, 0x6b, 0xd8, 0xc3, 0x3e, 0x87, 0x53, 0x5f, 0x8d,
+ 0x97, 0xd7, 0x1d, 0x1f, 0x91, 0xc6, 0x1c, 0x8a, 0x38, 0xec, 0xa3, 0x69, 0x9b, 0xad, 0xb5, 0xdd,
+ 0x8e, 0xf2, 0xd5, 0x18, 0x5e, 0x99, 0x40, 0x2c, 0x49, 0x8c, 0xc8, 0xd6, 0x02, 0xb8, 0x73, 0x18,
+ 0x5e, 0xf2, 0x38, 0x99, 0xc5, 0x95, 0x38, 0x8e, 0x57, 0x19, 0x8f, 0x13, 0xb9, 0xae, 0xc3, 0xc3,
+ 0x70, 0xcd, 0x0c, 0x5d, 0x88, 0x3a, 0x0c, 0xa7, 0x60, 0x37, 0x3b, 0x93, 0xbf, 0xdc, 0xaa, 0xae,
+ 0x92, 0xc2, 0xec, 0x4c, 0x96, 0x17, 0x5e, 0x23, 0xbd, 0x1b, 0x86, 0xec, 0x2b, 0x70, 0x8d, 0x48,
+ 0xa6, 0x21, 0xb7, 0x30, 0x1d, 0x2f, 0x01, 0x79, 0x3f, 0x40, 0xd8, 0x0f, 0xa0, 0x34, 0x7f, 0xd7,
+ 0x3f, 0xd6, 0x25, 0xd4, 0xb7, 0xd8, 0x1f, 0x61, 0xba, 0x2e, 0xe4, 0xdd, 0x50, 0xdb, 0xea, 0x49,
+ 0xdb, 0x34, 0x73, 0xe7, 0x22, 0x16, 0xa3, 0x24, 0x39, 0x64, 0x15, 0xf2, 0x3e, 0x7b, 0x2d, 0x1c,
+ 0x5a, 0x29, 0x91, 0x66, 0xb6, 0x29, 0x1b, 0xe8, 0xb5, 0xec, 0x79, 0x92, 0x0a, 0x25, 0xd3, 0x17,
+ 0xb4, 0x1f, 0xb5, 0x0d, 0xb4, 0x29, 0xa2, 0x56, 0x34, 0x6d, 0xe7, 0xf2, 0x9a, 0x99, 0xf2, 0xf9,
+ 0x3c, 0x63, 0x0a, 0x3a, 0x61, 0x71, 0xf3, 0x29, 0xca, 0xed, 0xb6, 0x2d, 0x14, 0x24, 0xe6, 0xf2,
+ 0xa0, 0x82, 0x4d, 0x23, 0x6b, 0xac, 0x79, 0x24, 0xa5, 0x1b, 0x76, 0xa3, 0x6d, 0xc6, 0x03, 0x88,
+ 0x34, 0x12, 0x05, 0xed, 0x6b, 0x77, 0xb5, 0x78, 0x9f, 0xe9, 0x96, 0x80, 0xdf, 0xba, 0x92, 0xca,
+ 0x8e, 0x98, 0x78, 0xed, 0x0e, 0xc1, 0xec, 0x3e, 0x01, 0x78, 0x78, 0xb6, 0x1a, 0x27, 0x70, 0x9f,
+ 0x00, 0xf5, 0x25, 0x43, 0xec, 0x13, 0x28, 0xd6, 0xef, 0x3a, 0x73, 0xee, 0x75, 0x10, 0x57, 0xb6,
+ 0x72, 0x48, 0xd7, 0xa1, 0x60, 0xa8, 0xeb, 0x28, 0x05, 0xbf, 0x49, 0xdd, 0xa3, 0x35, 0xa4, 0x49,
+ 0xb1, 0x73, 0xb5, 0xf5, 0x2e, 0xcc, 0xe6, 0xfe, 0xb5, 0xf0, 0x84, 0xc5, 0x89, 0xa9, 0x18, 0xa2,
+ 0xeb, 0xca, 0x89, 0xdc, 0x1f, 0xe3, 0x94, 0x93, 0x3f, 0x88, 0x06, 0x4d, 0x35, 0x4a, 0xd7, 0xcd,
+ 0x2d, 0xac, 0x88, 0x35, 0x41, 0x4c, 0x54, 0x3e, 0xe1, 0x24, 0x6e, 0x5e, 0x17, 0x4d, 0xb9, 0x72,
+ 0xa0, 0x5e, 0x0b, 0xad, 0x40, 0xe2, 0xe6, 0x37, 0x7b, 0x8b, 0x26, 0x12, 0xb7, 0x6e, 0x2d, 0xe7,
+ 0xb3, 0x3f, 0xa0, 0xcb, 0xf6, 0x4a, 0xbe, 0x80, 0x65, 0xfa, 0x34, 0xd8, 0x3d, 0x88, 0x06, 0xf1,
+ 0xd9, 0x9f, 0x7e, 0x9a, 0x76, 0x0d, 0x32, 0x67, 0x07, 0xf2, 0x7a, 0x1a, 0xfe, 0x7b, 0x23, 0x8d,
+ 0x90, 0x58, 0x83, 0x5a, 0x90, 0xf3, 0x23, 0xa5, 0xe3, 0x97, 0x65, 0x2a, 0xd2, 0x7c, 0x3e, 0xe5,
+ 0x3c, 0x83, 0x47, 0x96, 0xa3, 0xf1, 0xd0, 0x95, 0x52, 0x3f, 0x52, 0xda, 0xa2, 0xec, 0x12, 0x37,
+ 0x1a, 0x8f, 0x96, 0x82, 0x9f, 0xa7, 0x59, 0x06, 0x22, 0x67, 0x34, 0x1e, 0x6a, 0x09, 0x11, 0x39,
+ 0x3e, 0xe1, 0xfc, 0xb4, 0xe6, 0x58, 0x9e, 0xfe, 0xab, 0x13, 0xd0, 0x3b, 0x50, 0xc7, 0x11, 0x52,
+ 0x3f, 0xad, 0x09, 0x21, 0xe7, 0xa7, 0x42, 0xc7, 0xd8, 0x8f, 0xa6, 0x6c, 0x42, 0x75, 0x04, 0xa2,
+ 0x7e, 0x2a, 0x94, 0x82, 0x1b, 0x9f, 0xcf, 0xde, 0xff, 0x9f, 0xaf, 0x6e, 0xac, 0xfd, 0xf4, 0xab,
+ 0x1b, 0x6b, 0xff, 0xfb, 0xd5, 0x8d, 0xb5, 0x9f, 0x7c, 0x7d, 0xe3, 0x8d, 0x9f, 0x7e, 0x7d, 0xe3,
+ 0x8d, 0x9f, 0x7d, 0x7d, 0xe3, 0x8d, 0x2f, 0xdf, 0x54, 0xbf, 0x9f, 0x7f, 0xf6, 0x0b, 0xf2, 0x57,
+ 0xf0, 0x9f, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0x71, 0xe6, 0xb7, 0x63, 0x7f, 0x00,
+ 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -511,6 +510,7 @@ type ClientCommandsClient interface {
ObjectUndo(ctx context.Context, in *pb.RpcObjectUndoRequest, opts ...grpc.CallOption) (*pb.RpcObjectUndoResponse, error)
ObjectRedo(ctx context.Context, in *pb.RpcObjectRedoRequest, opts ...grpc.CallOption) (*pb.RpcObjectRedoResponse, error)
ObjectListExport(ctx context.Context, in *pb.RpcObjectListExportRequest, opts ...grpc.CallOption) (*pb.RpcObjectListExportResponse, error)
+ ObjectExport(ctx context.Context, in *pb.RpcObjectExportRequest, opts ...grpc.CallOption) (*pb.RpcObjectExportResponse, error)
ObjectBookmarkFetch(ctx context.Context, in *pb.RpcObjectBookmarkFetchRequest, opts ...grpc.CallOption) (*pb.RpcObjectBookmarkFetchResponse, error)
ObjectToBookmark(ctx context.Context, in *pb.RpcObjectToBookmarkRequest, opts ...grpc.CallOption) (*pb.RpcObjectToBookmarkResponse, error)
ObjectImport(ctx context.Context, in *pb.RpcObjectImportRequest, opts ...grpc.CallOption) (*pb.RpcObjectImportResponse, error)
@@ -755,8 +755,6 @@ type ClientCommandsClient interface {
AIAutofill(ctx context.Context, in *pb.RpcAIAutofillRequest, opts ...grpc.CallOption) (*pb.RpcAIAutofillResponse, error)
AIListSummary(ctx context.Context, in *pb.RpcAIListSummaryRequest, opts ...grpc.CallOption) (*pb.RpcAIListSummaryResponse, error)
AIObjectCreateFromUrl(ctx context.Context, in *pb.RpcAIObjectCreateFromUrlRequest, opts ...grpc.CallOption) (*pb.RpcAIObjectCreateFromUrlResponse, error)
- // Push
- PushNotificationRegisterToken(ctx context.Context, in *pb.RpcPushNotificationRegisterTokenRequest, opts ...grpc.CallOption) (*pb.RpcPushNotificationRegisterTokenResponse, error)
}
type clientCommandsClient struct {
@@ -1622,6 +1620,15 @@ func (c *clientCommandsClient) ObjectListExport(ctx context.Context, in *pb.RpcO
return out, nil
}
+func (c *clientCommandsClient) ObjectExport(ctx context.Context, in *pb.RpcObjectExportRequest, opts ...grpc.CallOption) (*pb.RpcObjectExportResponse, error) {
+ out := new(pb.RpcObjectExportResponse)
+ err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectExport", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *clientCommandsClient) ObjectBookmarkFetch(ctx context.Context, in *pb.RpcObjectBookmarkFetchRequest, opts ...grpc.CallOption) (*pb.RpcObjectBookmarkFetchResponse, error) {
out := new(pb.RpcObjectBookmarkFetchResponse)
err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectBookmarkFetch", in, out, opts...)
@@ -3409,15 +3416,6 @@ func (c *clientCommandsClient) AIObjectCreateFromUrl(ctx context.Context, in *pb
return out, nil
}
-func (c *clientCommandsClient) PushNotificationRegisterToken(ctx context.Context, in *pb.RpcPushNotificationRegisterTokenRequest, opts ...grpc.CallOption) (*pb.RpcPushNotificationRegisterTokenResponse, error) {
- out := new(pb.RpcPushNotificationRegisterTokenResponse)
- err := c.cc.Invoke(ctx, "/anytype.ClientCommands/PushNotificationRegisterToken", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
// ClientCommandsServer is the server API for ClientCommands service.
type ClientCommandsServer interface {
AppGetVersion(context.Context, *pb.RpcAppGetVersionRequest) *pb.RpcAppGetVersionResponse
@@ -3531,6 +3529,7 @@ type ClientCommandsServer interface {
ObjectUndo(context.Context, *pb.RpcObjectUndoRequest) *pb.RpcObjectUndoResponse
ObjectRedo(context.Context, *pb.RpcObjectRedoRequest) *pb.RpcObjectRedoResponse
ObjectListExport(context.Context, *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse
+ ObjectExport(context.Context, *pb.RpcObjectExportRequest) *pb.RpcObjectExportResponse
ObjectBookmarkFetch(context.Context, *pb.RpcObjectBookmarkFetchRequest) *pb.RpcObjectBookmarkFetchResponse
ObjectToBookmark(context.Context, *pb.RpcObjectToBookmarkRequest) *pb.RpcObjectToBookmarkResponse
ObjectImport(context.Context, *pb.RpcObjectImportRequest) *pb.RpcObjectImportResponse
@@ -3775,8 +3774,6 @@ type ClientCommandsServer interface {
AIAutofill(context.Context, *pb.RpcAIAutofillRequest) *pb.RpcAIAutofillResponse
AIListSummary(context.Context, *pb.RpcAIListSummaryRequest) *pb.RpcAIListSummaryResponse
AIObjectCreateFromUrl(context.Context, *pb.RpcAIObjectCreateFromUrlRequest) *pb.RpcAIObjectCreateFromUrlResponse
- // Push
- PushNotificationRegisterToken(context.Context, *pb.RpcPushNotificationRegisterTokenRequest) *pb.RpcPushNotificationRegisterTokenResponse
}
// UnimplementedClientCommandsServer can be embedded to have forward compatible implementations.
@@ -4068,6 +4065,9 @@ func (*UnimplementedClientCommandsServer) ObjectRedo(ctx context.Context, req *p
func (*UnimplementedClientCommandsServer) ObjectListExport(ctx context.Context, req *pb.RpcObjectListExportRequest) *pb.RpcObjectListExportResponse {
return nil
}
+func (*UnimplementedClientCommandsServer) ObjectExport(ctx context.Context, req *pb.RpcObjectExportRequest) *pb.RpcObjectExportResponse {
+ return nil
+}
func (*UnimplementedClientCommandsServer) ObjectBookmarkFetch(ctx context.Context, req *pb.RpcObjectBookmarkFetchRequest) *pb.RpcObjectBookmarkFetchResponse {
return nil
}
@@ -4656,9 +4656,6 @@ func (*UnimplementedClientCommandsServer) AIListSummary(ctx context.Context, req
func (*UnimplementedClientCommandsServer) AIObjectCreateFromUrl(ctx context.Context, req *pb.RpcAIObjectCreateFromUrlRequest) *pb.RpcAIObjectCreateFromUrlResponse {
return nil
}
-func (*UnimplementedClientCommandsServer) PushNotificationRegisterToken(ctx context.Context, req *pb.RpcPushNotificationRegisterTokenRequest) *pb.RpcPushNotificationRegisterTokenResponse {
- return nil
-}
func RegisterClientCommandsServer(s *grpc.Server, srv ClientCommandsServer) {
s.RegisterService(&_ClientCommands_serviceDesc, srv)
@@ -6374,6 +6371,24 @@ func _ClientCommands_ObjectListExport_Handler(srv interface{}, ctx context.Conte
return interceptor(ctx, in, info, handler)
}
+func _ClientCommands_ObjectExport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(pb.RpcObjectExportRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ClientCommandsServer).ObjectExport(ctx, in), nil
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/anytype.ClientCommands/ObjectExport",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ClientCommandsServer).ObjectExport(ctx, req.(*pb.RpcObjectExportRequest)), nil
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _ClientCommands_ObjectBookmarkFetch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(pb.RpcObjectBookmarkFetchRequest)
if err := dec(in); err != nil {
@@ -9906,24 +9921,6 @@ func _ClientCommands_AIObjectCreateFromUrl_Handler(srv interface{}, ctx context.
return interceptor(ctx, in, info, handler)
}
-func _ClientCommands_PushNotificationRegisterToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(pb.RpcPushNotificationRegisterTokenRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(ClientCommandsServer).PushNotificationRegisterToken(ctx, in), nil
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/anytype.ClientCommands/PushNotificationRegisterToken",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(ClientCommandsServer).PushNotificationRegisterToken(ctx, req.(*pb.RpcPushNotificationRegisterTokenRequest)), nil
- }
- return interceptor(ctx, in, info, handler)
-}
-
var _ClientCommands_serviceDesc = grpc.ServiceDesc{
ServiceName: "anytype.ClientCommands",
HandlerType: (*ClientCommandsServer)(nil),
@@ -10308,6 +10305,10 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{
MethodName: "ObjectListExport",
Handler: _ClientCommands_ObjectListExport_Handler,
},
+ {
+ MethodName: "ObjectExport",
+ Handler: _ClientCommands_ObjectExport_Handler,
+ },
{
MethodName: "ObjectBookmarkFetch",
Handler: _ClientCommands_ObjectBookmarkFetch_Handler,
@@ -11088,10 +11089,6 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{
MethodName: "AIObjectCreateFromUrl",
Handler: _ClientCommands_AIObjectCreateFromUrl_Handler,
},
- {
- MethodName: "PushNotificationRegisterToken",
- Handler: _ClientCommands_PushNotificationRegisterToken_Handler,
- },
},
Streams: []grpc.StreamDesc{
{
diff --git a/pkg/lib/bundle/relation.gen.go b/pkg/lib/bundle/relation.gen.go
index 999d31147..b7995fd27 100644
--- a/pkg/lib/bundle/relation.gen.go
+++ b/pkg/lib/bundle/relation.gen.go
@@ -9,7 +9,7 @@ import (
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
)
-const RelationChecksum = "e8392d6bf8efab6b707d68bc3922e4284a18a68370828e3ec6b18e0267b84bea"
+const RelationChecksum = "a23583f8faef1cbfcd05ca1d2761538e67bbdd1336d1a467a0d657b5f986b313"
const (
RelationKeyTag domain.RelationKey = "tag"
RelationKeyCamera domain.RelationKey = "camera"
@@ -158,6 +158,7 @@ const (
RelationKeyDefaultViewType domain.RelationKey = "defaultViewType"
RelationKeyDefaultTypeId domain.RelationKey = "defaultTypeId"
RelationKeyAutoWidgetTargets domain.RelationKey = "autoWidgetTargets"
+ RelationKeyAutoWidgetDisabled domain.RelationKey = "autoWidgetDisabled"
RelationKeyPluralName domain.RelationKey = "pluralName"
)
@@ -282,6 +283,19 @@ var (
Revision: 1,
Scope: model.Relation_type,
},
+ RelationKeyAutoWidgetDisabled: {
+
+ DataSource: model.Relation_details,
+ Description: "",
+ Format: model.RelationFormat_checkbox,
+ Hidden: true,
+ Id: "_brautoWidgetDisabled",
+ Key: "autoWidgetDisabled",
+ Name: "Auto Widget disabled",
+ ReadOnly: false,
+ ReadOnlyRelation: true,
+ Scope: model.Relation_type,
+ },
RelationKeyAutoWidgetTargets: {
DataSource: model.Relation_details,
diff --git a/pkg/lib/bundle/relations.json b/pkg/lib/bundle/relations.json
index 3e3bc2a44..75c3c2160 100644
--- a/pkg/lib/bundle/relations.json
+++ b/pkg/lib/bundle/relations.json
@@ -1517,6 +1517,15 @@
"readonly": false,
"source": "details"
},
+ {
+ "format": "checkbox",
+ "hidden": true,
+ "key": "autoWidgetDisabled",
+ "maxCount": 0,
+ "name": "Auto Widget disabled",
+ "readonly": false,
+ "source": "details"
+ },
{
"description": "Name of Object type in plural form",
"format": "longtext",
diff --git a/pkg/lib/bundle/types.gen.go b/pkg/lib/bundle/types.gen.go
index df36c8b8e..e5bf897e8 100644
--- a/pkg/lib/bundle/types.gen.go
+++ b/pkg/lib/bundle/types.gen.go
@@ -9,7 +9,7 @@ import (
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
)
-const TypeChecksum = "91c804ca7dd4df74fafbdaff99e50fa2ffcc6cb0fb073887a90bdf1b4a3d98d5"
+const TypeChecksum = "f2672b9f52915f228e335b78ed94ce1b6c7b195ceb1cba9a44b25a870a3b2ac0"
const (
TypePrefix = "_ot"
)
@@ -426,7 +426,7 @@ var (
Name: "Task",
PluralName: "Tasks",
Readonly: true,
- RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyAssignee), MustGetRelationLink(RelationKeyDone), MustGetRelationLink(RelationKeyDueDate), MustGetRelationLink(RelationKeyLinkedProjects), MustGetRelationLink(RelationKeyPriority), MustGetRelationLink(RelationKeyStatus), MustGetRelationLink(RelationKeyTasks)},
+ RelationLinks: []*model.RelationLink{MustGetRelationLink(RelationKeyTag), MustGetRelationLink(RelationKeyAssignee), MustGetRelationLink(RelationKeyDone), MustGetRelationLink(RelationKeyDueDate), MustGetRelationLink(RelationKeyLinkedProjects), MustGetRelationLink(RelationKeyStatus)},
Revision: 2,
Types: []model.SmartBlockType{model.SmartBlockType_Page},
Url: TypePrefix + "task",
diff --git a/pkg/lib/bundle/types.json b/pkg/lib/bundle/types.json
index 96cabd17d..9d9bccac6 100644
--- a/pkg/lib/bundle/types.json
+++ b/pkg/lib/bundle/types.json
@@ -107,9 +107,7 @@
"done",
"dueDate",
"linkedProjects",
- "priority",
- "status",
- "tasks"
+ "status"
],
"description": "A piece of work to be done or undertaken",
"revision": 2
diff --git a/pkg/lib/core/tmp_dir.go b/pkg/lib/core/tmp_dir.go
index 9a07eb6d2..fa7e22a24 100644
--- a/pkg/lib/core/tmp_dir.go
+++ b/pkg/lib/core/tmp_dir.go
@@ -4,6 +4,7 @@ import (
"os"
"path/filepath"
"sync"
+ "time"
"github.com/anyproto/any-sync/app"
@@ -54,8 +55,36 @@ func (s *TempDirService) TempDir() string {
s.tempDir = os.TempDir()
} else {
s.tempDir = path
+ go s.cleanUp()
}
})
return s.tempDir
}
+
+func (s *TempDirService) cleanUp() {
+ cutoff := time.Now().Add(-72 * time.Hour)
+ recursiveCleanup(s.tempDir, cutoff)
+}
+
+func recursiveCleanup(path string, cutoff time.Time) {
+ entries, err := os.ReadDir(path)
+ if err != nil {
+ log.Warnf("tmp cleanup readdir: %v", err)
+ }
+ for _, entry := range entries {
+ fullEntryPath := filepath.Join(path, entry.Name())
+ info, err := entry.Info()
+ if err != nil {
+ log.Warnf("tmp cleanup entry: %v", err)
+ }
+ if entry.IsDir() {
+ recursiveCleanup(fullEntryPath, cutoff)
+ } else if info.ModTime().IsZero() || info.ModTime().Before(cutoff) {
+ err = os.RemoveAll(fullEntryPath)
+ if err != nil {
+ log.Warnf("tmp cleanup delete: %v", err)
+ }
+ }
+ }
+}
diff --git a/pkg/lib/core/tmp_dir_test.go b/pkg/lib/core/tmp_dir_test.go
new file mode 100644
index 000000000..99c98e202
--- /dev/null
+++ b/pkg/lib/core/tmp_dir_test.go
@@ -0,0 +1,50 @@
+package core
+
+import (
+ "os"
+ "path/filepath"
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/require"
+)
+
+func TestTempDirService(t *testing.T) {
+ t.Run("cleanup", func(t *testing.T) {
+ // given
+ s := NewTempDirService()
+ s.tempDir = t.TempDir()
+
+ oldFile := filepath.Join(s.tempDir, "old.txt")
+ require.NoError(t, os.WriteFile(oldFile, []byte("old"), 0600))
+ oldTime := time.Now().Add(-100 * time.Hour)
+ require.NoError(t, os.Chtimes(oldFile, oldTime, oldTime))
+
+ newFile := filepath.Join(s.tempDir, "new.txt")
+ require.NoError(t, os.WriteFile(newFile, []byte("new"), 0600))
+
+ nestedDir := filepath.Join(s.tempDir, "nested")
+ require.NoError(t, os.MkdirAll(nestedDir, 0755))
+ nestedOldFile := filepath.Join(nestedDir, "nested_old.txt")
+ require.NoError(t, os.WriteFile(nestedOldFile, []byte("nested old"), 0600))
+ require.NoError(t, os.Chtimes(nestedOldFile, oldTime, oldTime))
+ nestedNewFile := filepath.Join(nestedDir, "nested_new.txt")
+ require.NoError(t, os.WriteFile(nestedNewFile, []byte("nested new"), 0600))
+
+ // when
+ s.cleanUp()
+
+ // then
+ _, err := os.Stat(oldFile)
+ require.True(t, os.IsNotExist(err), "old file should be deleted")
+
+ _, err = os.Stat(newFile)
+ require.NoError(t, err, "new file should remain")
+
+ _, err = os.Stat(nestedOldFile)
+ require.True(t, os.IsNotExist(err), "nested old file should be deleted")
+
+ _, err = os.Stat(nestedNewFile)
+ require.NoError(t, err, "nested new file should remain")
+ })
+}
diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go
index 92ea248bc..52b2e6ffa 100644
--- a/pkg/lib/localstore/ftsearch/ftsearch.go
+++ b/pkg/lib/localstore/ftsearch/ftsearch.go
@@ -25,6 +25,7 @@ import (
"unicode"
"github.com/anyproto/any-sync/app"
+ "github.com/anyproto/any-sync/app/debugstat"
tantivy "github.com/anyproto/tantivy-go"
"github.com/valyala/fastjson"
@@ -102,6 +103,19 @@ type ftSearch struct {
lang tantivy.Language
}
+func (f *ftSearch) ProvideStat() any {
+ count, _ := f.DocCount()
+ return count
+}
+
+func (f *ftSearch) StatId() string {
+ return "doc_count"
+}
+
+func (f *ftSearch) StatType() string {
+ return CName
+}
+
func TantivyNew() FTSearch {
return new(ftSearch)
}
@@ -138,6 +152,10 @@ func (f *ftSearch) DeleteObject(objectId string) error {
func (f *ftSearch) Init(a *app.App) error {
repoPath := app.MustComponent[wallet.Wallet](a).RepoPath()
+ statService, _ := app.GetComponent[debugstat.StatService](a)
+ if statService != nil {
+ statService.AddProvider(f)
+ }
f.lang = validateLanguage(app.MustComponent[wallet.Wallet](a).FtsPrimaryLang())
f.rootPath = filepath.Join(repoPath, ftsDir2)
f.blevePath = filepath.Join(repoPath, ftsDir)
diff --git a/pkg/lib/localstore/objectstore/service.go b/pkg/lib/localstore/objectstore/service.go
index fdd5393da..13be262e2 100644
--- a/pkg/lib/localstore/objectstore/service.go
+++ b/pkg/lib/localstore/objectstore/service.go
@@ -11,6 +11,7 @@ import (
anystore "github.com/anyproto/any-store"
"github.com/anyproto/any-store/anyenc"
"github.com/anyproto/any-sync/app"
+ "github.com/anyproto/any-sync/app/debugstat"
"github.com/anyproto/any-sync/coordinator/coordinatorproto"
"golang.org/x/exp/maps"
@@ -124,6 +125,19 @@ type dsObjectStore struct {
componentCtxCancel context.CancelFunc
}
+func (s *dsObjectStore) ProvideStat() any {
+ count, _ := s.ListIdsCrossSpace()
+ return len(count)
+}
+
+func (s *dsObjectStore) StatId() string {
+ return "ds_count"
+}
+
+func (s *dsObjectStore) StatType() string {
+ return CName
+}
+
func (s *dsObjectStore) IterateSpaceIndex(f func(store spaceindex.Store) error) error {
s.Lock()
spaceIndexes := make([]spaceindex.Store, 0, len(s.spaceIndexes))
@@ -169,6 +183,10 @@ func (s *dsObjectStore) Init(a *app.App) (err error) {
s.setDefaultConfig()
s.oldStore = app.MustComponent[oldstore.Service](a)
s.techSpaceIdProvider = app.MustComponent[TechSpaceIdProvider](a)
+ statService, _ := app.GetComponent[debugstat.StatService](a)
+ if statService != nil {
+ statService.AddProvider(s)
+ }
return nil
}
diff --git a/pkg/lib/mill/image_resize.go b/pkg/lib/mill/image_resize.go
index e49fd09e4..a14933dda 100644
--- a/pkg/lib/mill/image_resize.go
+++ b/pkg/lib/mill/image_resize.go
@@ -42,6 +42,14 @@ const (
TIFF Format = "tiff"
)
+func IsImageExt(ext string) bool {
+ switch strings.ToLower(strings.TrimPrefix(ext, ".")) {
+ case "jpg", "jpeg", "png", "gif", "ico", "webp", "heic", "heif", "bmp", "tiff", "psd":
+ return true
+ }
+ return false
+}
+
func IsImage(mime string) bool {
parts := strings.SplitN(mime, "/", 2)
if len(parts) == 1 {
diff --git a/pkg/lib/pb/model/models.pb.go b/pkg/lib/pb/model/models.pb.go
index aafcc2e38..546fd6ea9 100644
--- a/pkg/lib/pb/model/models.pb.go
+++ b/pkg/lib/pb/model/models.pb.go
@@ -5166,9 +5166,10 @@ func (m *BlockContentTableRow) GetIsHeader() bool {
}
type BlockContentWidget struct {
- Layout BlockContentWidgetLayout `protobuf:"varint,1,opt,name=layout,proto3,enum=anytype.model.BlockContentWidgetLayout" json:"layout,omitempty"`
- Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
- ViewId string `protobuf:"bytes,3,opt,name=viewId,proto3" json:"viewId,omitempty"`
+ Layout BlockContentWidgetLayout `protobuf:"varint,1,opt,name=layout,proto3,enum=anytype.model.BlockContentWidgetLayout" json:"layout,omitempty"`
+ Limit int32 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
+ ViewId string `protobuf:"bytes,3,opt,name=viewId,proto3" json:"viewId,omitempty"`
+ AutoAdded bool `protobuf:"varint,4,opt,name=autoAdded,proto3" json:"autoAdded,omitempty"`
}
func (m *BlockContentWidget) Reset() { *m = BlockContentWidget{} }
@@ -5225,6 +5226,13 @@ func (m *BlockContentWidget) GetViewId() string {
return ""
}
+func (m *BlockContentWidget) GetAutoAdded() bool {
+ if m != nil {
+ return m.AutoAdded
+ }
+ return false
+}
+
type BlockContentChat struct {
}
@@ -9821,584 +9829,584 @@ func init() {
}
var fileDescriptor_98a910b73321e591 = []byte{
- // 9218 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0xbd, 0x5d, 0x6c, 0x23, 0xd9,
- 0x95, 0x18, 0x2c, 0xfe, 0x93, 0x87, 0xa2, 0x74, 0x75, 0xfb, 0x8f, 0xa6, 0xdb, 0xfd, 0xb5, 0xe9,
- 0xf1, 0x4c, 0xbb, 0x3d, 0x56, 0xcf, 0xf4, 0xcc, 0x78, 0xc6, 0x63, 0xcf, 0xd8, 0x94, 0x44, 0xb5,
- 0x38, 0xad, 0x3f, 0x17, 0xd9, 0xdd, 0x9e, 0xc1, 0xee, 0xa7, 0x94, 0x58, 0x57, 0x64, 0x59, 0xc5,
- 0x2a, 0xba, 0xea, 0x52, 0x2d, 0x19, 0x49, 0xe0, 0xfc, 0xed, 0x66, 0xdf, 0x9c, 0x20, 0x9b, 0x64,
- 0x11, 0x04, 0x6b, 0x3f, 0x04, 0x08, 0xb2, 0x1b, 0xe4, 0xc9, 0x48, 0x36, 0xc9, 0x02, 0xd9, 0x05,
- 0x02, 0x04, 0xc8, 0x8b, 0x93, 0xa7, 0x3c, 0x04, 0x48, 0x30, 0x06, 0xf2, 0x12, 0x24, 0x8b, 0x0d,
- 0x10, 0xc0, 0x08, 0xf2, 0x10, 0x9c, 0x73, 0x6f, 0xfd, 0x91, 0x94, 0x9a, 0x3d, 0xbb, 0x1b, 0xe4,
- 0x49, 0xbc, 0xa7, 0xce, 0x39, 0x75, 0x7f, 0xce, 0x3d, 0xf7, 0xfc, 0xdd, 0x12, 0xbc, 0x32, 0x3e,
- 0x1d, 0x3c, 0x70, 0xec, 0xe3, 0x07, 0xe3, 0xe3, 0x07, 0x23, 0xcf, 0x12, 0xce, 0x83, 0xb1, 0xef,
- 0x49, 0x2f, 0x50, 0x8d, 0x60, 0x9d, 0x5a, 0xbc, 0x66, 0xba, 0x17, 0xf2, 0x62, 0x2c, 0xd6, 0x09,
- 0xda, 0xb8, 0x3d, 0xf0, 0xbc, 0x81, 0x23, 0x14, 0xea, 0xf1, 0xe4, 0xe4, 0x41, 0x20, 0xfd, 0x49,
- 0x5f, 0x2a, 0xe4, 0xe6, 0xcf, 0xf3, 0x70, 0xb3, 0x3b, 0x32, 0x7d, 0xb9, 0xe1, 0x78, 0xfd, 0xd3,
- 0xae, 0x6b, 0x8e, 0x83, 0xa1, 0x27, 0x37, 0xcc, 0x40, 0xf0, 0xd7, 0xa1, 0x78, 0x8c, 0xc0, 0xa0,
- 0x9e, 0xb9, 0x9b, 0xbb, 0x57, 0x7d, 0x78, 0x7d, 0x3d, 0xc5, 0x78, 0x9d, 0x28, 0x0c, 0x8d, 0xc3,
- 0xdf, 0x84, 0x92, 0x25, 0xa4, 0x69, 0x3b, 0x41, 0x3d, 0x7b, 0x37, 0x73, 0xaf, 0xfa, 0xf0, 0xd6,
- 0xba, 0x7a, 0xf1, 0x7a, 0xf8, 0xe2, 0xf5, 0x2e, 0xbd, 0xd8, 0x08, 0xf1, 0xf8, 0xbb, 0x50, 0x3e,
- 0xb1, 0x1d, 0xf1, 0x58, 0x5c, 0x04, 0xf5, 0xdc, 0x95, 0x34, 0x1b, 0xd9, 0x7a, 0xc6, 0x88, 0x90,
- 0xf9, 0x26, 0xac, 0x88, 0x73, 0xe9, 0x9b, 0x86, 0x70, 0x4c, 0x69, 0x7b, 0x6e, 0x50, 0xcf, 0x53,
- 0x0f, 0x6f, 0x4d, 0xf5, 0x30, 0x7c, 0x4e, 0xe4, 0x53, 0x24, 0xfc, 0x2e, 0x54, 0xbd, 0xe3, 0xef,
- 0x8b, 0xbe, 0xec, 0x5d, 0x8c, 0x45, 0x50, 0x2f, 0xdc, 0xcd, 0xdd, 0xab, 0x18, 0x49, 0x10, 0xff,
- 0x06, 0x54, 0xfb, 0x9e, 0xe3, 0x88, 0xbe, 0x7a, 0x47, 0xf1, 0xea, 0x61, 0x25, 0x71, 0xf9, 0xdb,
- 0x70, 0xc3, 0x17, 0x23, 0xef, 0x4c, 0x58, 0x9b, 0x11, 0x94, 0xc6, 0x59, 0xa6, 0xd7, 0xcc, 0x7f,
- 0xc8, 0x5b, 0x50, 0xf3, 0x75, 0xff, 0x76, 0x6d, 0xf7, 0x34, 0xa8, 0x97, 0x68, 0x58, 0x9f, 0xbf,
- 0x64, 0x58, 0x88, 0x63, 0xa4, 0x29, 0x38, 0x83, 0xdc, 0xa9, 0xb8, 0xa8, 0x57, 0xee, 0x66, 0xee,
- 0x55, 0x0c, 0xfc, 0xc9, 0xdf, 0x87, 0xba, 0xe7, 0xdb, 0x03, 0xdb, 0x35, 0x9d, 0x4d, 0x5f, 0x98,
- 0x52, 0x58, 0x3d, 0x7b, 0x24, 0x02, 0x69, 0x8e, 0xc6, 0x75, 0xb8, 0x9b, 0xb9, 0x97, 0x33, 0x2e,
- 0x7d, 0xce, 0xdf, 0x52, 0x2b, 0xd4, 0x71, 0x4f, 0xbc, 0x7a, 0x55, 0x0f, 0x3f, 0xdd, 0x97, 0x6d,
- 0xfd, 0xd8, 0x88, 0x10, 0x9b, 0xbf, 0xcc, 0x42, 0xb1, 0x2b, 0x4c, 0xbf, 0x3f, 0x6c, 0xfc, 0x7a,
- 0x06, 0x8a, 0x86, 0x08, 0x26, 0x8e, 0xe4, 0x0d, 0x28, 0xab, 0xb9, 0xed, 0x58, 0xf5, 0x0c, 0xf5,
- 0x2e, 0x6a, 0x7f, 0x16, 0xd9, 0x59, 0x87, 0xfc, 0x48, 0x48, 0xb3, 0x9e, 0xa3, 0x19, 0x6a, 0x4c,
- 0xf5, 0x4a, 0xbd, 0x7e, 0x7d, 0x4f, 0x48, 0xd3, 0x20, 0xbc, 0xc6, 0x2f, 0x32, 0x90, 0xc7, 0x26,
- 0xbf, 0x0d, 0x95, 0xa1, 0x3d, 0x18, 0x3a, 0xf6, 0x60, 0x28, 0x75, 0x47, 0x62, 0x00, 0xff, 0x10,
- 0x56, 0xa3, 0x86, 0x61, 0xba, 0x03, 0x81, 0x3d, 0x9a, 0x27, 0xfc, 0xf4, 0xd0, 0x98, 0x46, 0xe6,
- 0x75, 0x28, 0xd1, 0x7e, 0xe8, 0x58, 0x24, 0xd1, 0x15, 0x23, 0x6c, 0xa2, 0xb8, 0x85, 0x2b, 0xf5,
- 0x58, 0x5c, 0xd4, 0xf3, 0xf4, 0x34, 0x09, 0xe2, 0x2d, 0x58, 0x0d, 0x9b, 0x5b, 0x7a, 0x36, 0x0a,
- 0x57, 0xcf, 0xc6, 0x34, 0x7e, 0xf3, 0xd3, 0x5d, 0x28, 0xd0, 0xb6, 0xe4, 0x2b, 0x90, 0xb5, 0xc3,
- 0x89, 0xce, 0xda, 0x16, 0x7f, 0x00, 0xc5, 0x13, 0x5b, 0x38, 0xd6, 0x0b, 0x67, 0x58, 0xa3, 0xf1,
- 0x36, 0x2c, 0xfb, 0x22, 0x90, 0xbe, 0xad, 0xa5, 0x5f, 0x6d, 0xd0, 0x2f, 0xce, 0xd3, 0x01, 0xeb,
- 0x46, 0x02, 0xd1, 0x48, 0x91, 0xe1, 0xb0, 0xfb, 0x43, 0xdb, 0xb1, 0x7c, 0xe1, 0x76, 0x2c, 0xb5,
- 0x4f, 0x2b, 0x46, 0x12, 0xc4, 0xef, 0xc1, 0xea, 0xb1, 0xd9, 0x3f, 0x1d, 0xf8, 0xde, 0xc4, 0xc5,
- 0x0d, 0xe1, 0xf9, 0x34, 0xec, 0x8a, 0x31, 0x0d, 0xe6, 0x6f, 0x40, 0xc1, 0x74, 0xec, 0x81, 0x4b,
- 0x3b, 0x71, 0x65, 0x66, 0xd1, 0x55, 0x5f, 0x5a, 0x88, 0x61, 0x28, 0x44, 0xbe, 0x03, 0xb5, 0x33,
- 0xe1, 0x4b, 0xbb, 0x6f, 0x3a, 0x04, 0xaf, 0x97, 0x88, 0xb2, 0x39, 0x97, 0xf2, 0x69, 0x12, 0xd3,
- 0x48, 0x13, 0xf2, 0x0e, 0x40, 0x80, 0x6a, 0x92, 0x96, 0x53, 0xef, 0x85, 0xd7, 0xe6, 0xb2, 0xd9,
- 0xf4, 0x5c, 0x29, 0x5c, 0xb9, 0xde, 0x8d, 0xd0, 0x77, 0x96, 0x8c, 0x04, 0x31, 0x7f, 0x17, 0xf2,
- 0x52, 0x9c, 0xcb, 0xfa, 0xca, 0x15, 0x33, 0x1a, 0x32, 0xe9, 0x89, 0x73, 0xb9, 0xb3, 0x64, 0x10,
- 0x01, 0x12, 0xe2, 0x26, 0xab, 0xaf, 0x2e, 0x40, 0x88, 0xfb, 0x12, 0x09, 0x91, 0x80, 0x7f, 0x00,
- 0x45, 0xc7, 0xbc, 0xf0, 0x26, 0xb2, 0xce, 0x88, 0xf4, 0x4b, 0x57, 0x92, 0xee, 0x12, 0xea, 0xce,
- 0x92, 0xa1, 0x89, 0xf8, 0xdb, 0x90, 0xb3, 0xec, 0xb3, 0xfa, 0x1a, 0xd1, 0xde, 0xbd, 0x92, 0x76,
- 0xcb, 0x3e, 0xdb, 0x59, 0x32, 0x10, 0x9d, 0x6f, 0x42, 0xf9, 0xd8, 0xf3, 0x4e, 0x47, 0xa6, 0x7f,
- 0x5a, 0xe7, 0x44, 0xfa, 0xe5, 0x2b, 0x49, 0x37, 0x34, 0xf2, 0xce, 0x92, 0x11, 0x11, 0xe2, 0x90,
- 0xed, 0xbe, 0xe7, 0xd6, 0xaf, 0x2d, 0x30, 0xe4, 0x4e, 0xdf, 0x73, 0x71, 0xc8, 0x48, 0x80, 0x84,
- 0x8e, 0xed, 0x9e, 0xd6, 0xaf, 0x2f, 0x40, 0x88, 0x9a, 0x13, 0x09, 0x91, 0x00, 0xbb, 0x6d, 0x99,
- 0xd2, 0x3c, 0xb3, 0xc5, 0xf3, 0xfa, 0x8d, 0x05, 0xba, 0xbd, 0xa5, 0x91, 0xb1, 0xdb, 0x21, 0x21,
- 0x32, 0x09, 0xb7, 0x66, 0xfd, 0xe6, 0x02, 0x4c, 0x42, 0x8d, 0x8e, 0x4c, 0x42, 0x42, 0xfe, 0xff,
- 0xc3, 0xda, 0x89, 0x30, 0xe5, 0xc4, 0x17, 0x56, 0x7c, 0xd0, 0xdd, 0x22, 0x6e, 0xeb, 0x57, 0xaf,
- 0xfd, 0x34, 0xd5, 0xce, 0x92, 0x31, 0xcb, 0x8a, 0xbf, 0x0f, 0x05, 0xc7, 0x94, 0xe2, 0xbc, 0x5e,
- 0x27, 0x9e, 0xcd, 0x17, 0x08, 0x85, 0x14, 0xe7, 0x3b, 0x4b, 0x86, 0x22, 0xe1, 0xdf, 0x83, 0x55,
- 0x69, 0x1e, 0x3b, 0xe2, 0xe0, 0x44, 0x23, 0x04, 0xf5, 0xcf, 0x11, 0x97, 0xd7, 0xaf, 0x16, 0xe7,
- 0x34, 0xcd, 0xce, 0x92, 0x31, 0xcd, 0x06, 0x7b, 0x45, 0xa0, 0x7a, 0x63, 0x81, 0x5e, 0x11, 0x3f,
- 0xec, 0x15, 0x91, 0xf0, 0x5d, 0xa8, 0xd2, 0x8f, 0x4d, 0xcf, 0x99, 0x8c, 0xdc, 0xfa, 0xe7, 0x89,
- 0xc3, 0xbd, 0x17, 0x73, 0x50, 0xf8, 0x3b, 0x4b, 0x46, 0x92, 0x1c, 0x17, 0x91, 0x9a, 0x86, 0xf7,
- 0xbc, 0x7e, 0x7b, 0x81, 0x45, 0xec, 0x69, 0x64, 0x5c, 0xc4, 0x90, 0x10, 0xb7, 0xde, 0x73, 0xdb,
- 0x1a, 0x08, 0x59, 0xff, 0xc2, 0x02, 0x5b, 0xef, 0x19, 0xa1, 0xe2, 0xd6, 0x53, 0x44, 0x28, 0xc6,
- 0xfd, 0xa1, 0x29, 0xeb, 0x77, 0x16, 0x10, 0xe3, 0xcd, 0xa1, 0x49, 0xba, 0x02, 0x09, 0x1a, 0x3f,
- 0x84, 0xe5, 0xa4, 0x56, 0xe6, 0x1c, 0xf2, 0xbe, 0x30, 0xd5, 0x89, 0x50, 0x36, 0xe8, 0x37, 0xc2,
- 0x84, 0x65, 0x4b, 0x3a, 0x11, 0xca, 0x06, 0xfd, 0xe6, 0x37, 0xa1, 0xa8, 0x6c, 0x13, 0x52, 0xf8,
- 0x65, 0x43, 0xb7, 0x10, 0xd7, 0xf2, 0xcd, 0x01, 0x9d, 0x5b, 0x65, 0x83, 0x7e, 0x23, 0xae, 0xe5,
- 0x7b, 0xe3, 0x03, 0x97, 0x14, 0x76, 0xd9, 0xd0, 0xad, 0xc6, 0xbf, 0xfe, 0x00, 0x4a, 0xba, 0x53,
- 0x8d, 0xbf, 0x9f, 0x81, 0xa2, 0x52, 0x28, 0xfc, 0xdb, 0x50, 0x08, 0xe4, 0x85, 0x23, 0xa8, 0x0f,
- 0x2b, 0x0f, 0xbf, 0xb2, 0x80, 0x12, 0x5a, 0xef, 0x22, 0x81, 0xa1, 0xe8, 0x9a, 0x06, 0x14, 0xa8,
- 0xcd, 0x4b, 0x90, 0x33, 0xbc, 0xe7, 0x6c, 0x89, 0x03, 0x14, 0xd5, 0x62, 0xb1, 0x0c, 0x02, 0xb7,
- 0xec, 0x33, 0x96, 0x45, 0xe0, 0x8e, 0x30, 0x2d, 0xe1, 0xb3, 0x1c, 0xaf, 0x41, 0x25, 0x5c, 0x96,
- 0x80, 0xe5, 0x39, 0x83, 0xe5, 0xc4, 0x82, 0x07, 0xac, 0xd0, 0xf8, 0x1f, 0x79, 0xc8, 0xe3, 0xfe,
- 0xe7, 0xaf, 0x40, 0x4d, 0x9a, 0xfe, 0x40, 0x28, 0x43, 0x38, 0x32, 0x52, 0xd2, 0x40, 0xfe, 0x41,
- 0x38, 0x86, 0x2c, 0x8d, 0xe1, 0xb5, 0x17, 0xea, 0x95, 0xd4, 0x08, 0x12, 0xa7, 0x70, 0x6e, 0xb1,
- 0x53, 0x78, 0x1b, 0xca, 0xa8, 0xce, 0xba, 0xf6, 0x0f, 0x05, 0x4d, 0xfd, 0xca, 0xc3, 0xfb, 0x2f,
- 0x7e, 0x65, 0x47, 0x53, 0x18, 0x11, 0x2d, 0xef, 0x40, 0xa5, 0x6f, 0xfa, 0x16, 0x75, 0x86, 0x56,
- 0x6b, 0xe5, 0xe1, 0x57, 0x5f, 0xcc, 0x68, 0x33, 0x24, 0x31, 0x62, 0x6a, 0x7e, 0x00, 0x55, 0x4b,
- 0x04, 0x7d, 0xdf, 0x1e, 0x93, 0x7a, 0x53, 0x67, 0xf1, 0xd7, 0x5e, 0xcc, 0x6c, 0x2b, 0x26, 0x32,
- 0x92, 0x1c, 0xd0, 0x22, 0xf3, 0x23, 0xfd, 0x56, 0x22, 0x03, 0x21, 0x06, 0x34, 0xdf, 0x85, 0x72,
- 0x38, 0x1e, 0xbe, 0x0c, 0x65, 0xfc, 0xbb, 0xef, 0xb9, 0x82, 0x2d, 0xe1, 0xda, 0x62, 0xab, 0x3b,
- 0x32, 0x1d, 0x87, 0x65, 0xf8, 0x0a, 0x00, 0x36, 0xf7, 0x84, 0x65, 0x4f, 0x46, 0x2c, 0xdb, 0xfc,
- 0x66, 0x28, 0x2d, 0x65, 0xc8, 0x1f, 0x9a, 0x03, 0xa4, 0x58, 0x86, 0x72, 0xa8, 0xae, 0x59, 0x06,
- 0xe9, 0xb7, 0xcc, 0x60, 0x78, 0xec, 0x99, 0xbe, 0xc5, 0xb2, 0xbc, 0x0a, 0xa5, 0x96, 0xdf, 0x1f,
- 0xda, 0x67, 0x82, 0xe5, 0x9a, 0x0f, 0xa0, 0x9a, 0xe8, 0x2f, 0xb2, 0xd0, 0x2f, 0xad, 0x40, 0xa1,
- 0x65, 0x59, 0xc2, 0x62, 0x19, 0x24, 0xd0, 0x03, 0x64, 0xd9, 0xe6, 0x57, 0xa1, 0x12, 0xcd, 0x16,
- 0xa2, 0xe3, 0xc1, 0xcd, 0x96, 0xf0, 0x17, 0x82, 0x59, 0x06, 0xa5, 0xb2, 0xe3, 0x3a, 0xb6, 0x2b,
- 0x58, 0xb6, 0xf1, 0xe7, 0x48, 0x54, 0xf9, 0xb7, 0xd2, 0x1b, 0xe2, 0xd5, 0x17, 0x9d, 0xac, 0xe9,
- 0xdd, 0xf0, 0xf9, 0xc4, 0xf8, 0x76, 0x6d, 0xea, 0x5c, 0x19, 0xf2, 0x5b, 0x9e, 0x0c, 0x58, 0xa6,
- 0xf1, 0x5f, 0xb3, 0x50, 0x0e, 0x0f, 0x54, 0xf4, 0x09, 0x26, 0xbe, 0xa3, 0x05, 0x1a, 0x7f, 0xf2,
- 0xeb, 0x50, 0x90, 0xb6, 0xd4, 0x62, 0x5c, 0x31, 0x54, 0x03, 0x6d, 0xb5, 0xe4, 0xca, 0x2a, 0x03,
- 0x76, 0x7a, 0xa9, 0xec, 0x91, 0x39, 0x10, 0x3b, 0x66, 0x30, 0xd4, 0x26, 0x6c, 0x0c, 0x40, 0xfa,
- 0x13, 0xf3, 0x0c, 0x65, 0x8e, 0x9e, 0x2b, 0x2b, 0x2e, 0x09, 0xe2, 0x6f, 0x41, 0x1e, 0x07, 0xa8,
- 0x85, 0xe6, 0xff, 0x9b, 0x1a, 0x30, 0x8a, 0xc9, 0xa1, 0x2f, 0x70, 0x79, 0xd6, 0xd1, 0x03, 0x33,
- 0x08, 0x99, 0xbf, 0x0a, 0x2b, 0x6a, 0x13, 0x1e, 0x84, 0xfe, 0x43, 0x89, 0x38, 0x4f, 0x41, 0x79,
- 0x0b, 0xa7, 0xd3, 0x94, 0xa2, 0x5e, 0x5e, 0x40, 0xbe, 0xc3, 0xc9, 0x59, 0xef, 0x22, 0x89, 0xa1,
- 0x28, 0x9b, 0xef, 0xe0, 0x9c, 0x9a, 0x52, 0xe0, 0x32, 0xb7, 0x47, 0x63, 0x79, 0xa1, 0x84, 0x66,
- 0x5b, 0xc8, 0xfe, 0xd0, 0x76, 0x07, 0x2c, 0xa3, 0xa6, 0x18, 0x17, 0x91, 0x50, 0x7c, 0xdf, 0xf3,
- 0x59, 0xae, 0xd1, 0x80, 0x3c, 0xca, 0x28, 0x2a, 0x49, 0xd7, 0x1c, 0x09, 0x3d, 0xd3, 0xf4, 0xbb,
- 0x71, 0x0d, 0xd6, 0x66, 0xce, 0xe3, 0xc6, 0xef, 0x15, 0x95, 0x84, 0x20, 0x05, 0xd9, 0x82, 0x9a,
- 0x82, 0xcc, 0xbc, 0x97, 0xd2, 0x31, 0xc8, 0x25, 0xad, 0x63, 0x3e, 0x80, 0x02, 0x0e, 0x2c, 0x54,
- 0x31, 0x0b, 0x90, 0xef, 0x21, 0xba, 0xa1, 0xa8, 0xd0, 0x83, 0xe9, 0x0f, 0x45, 0xff, 0x54, 0x58,
- 0x5a, 0xd7, 0x87, 0x4d, 0x14, 0x9a, 0x7e, 0xc2, 0x3c, 0x57, 0x0d, 0x12, 0x89, 0xbe, 0xe7, 0xb6,
- 0x47, 0xde, 0xf7, 0x6d, 0x5a, 0x57, 0x14, 0x89, 0x10, 0x10, 0x3e, 0xed, 0xa0, 0x8c, 0xe8, 0x65,
- 0x8b, 0x01, 0x8d, 0x36, 0x14, 0xe8, 0xdd, 0xb8, 0x13, 0x54, 0x9f, 0x55, 0xa4, 0xe1, 0xd5, 0xc5,
- 0xfa, 0xac, 0xbb, 0xdc, 0xf8, 0xdd, 0x2c, 0xe4, 0xb1, 0xcd, 0xef, 0x43, 0xc1, 0x47, 0x3f, 0x8c,
- 0xa6, 0xf3, 0x32, 0x9f, 0x4d, 0xa1, 0xf0, 0x6f, 0x6b, 0x51, 0xcc, 0x2e, 0x20, 0x2c, 0xd1, 0x1b,
- 0x93, 0x62, 0x79, 0x1d, 0x0a, 0x63, 0xd3, 0x37, 0x47, 0x7a, 0x9f, 0xa8, 0x46, 0xf3, 0x27, 0x19,
- 0xc8, 0x23, 0x12, 0x5f, 0x83, 0x5a, 0x57, 0xfa, 0xf6, 0xa9, 0x90, 0x43, 0xdf, 0x9b, 0x0c, 0x86,
- 0x4a, 0x92, 0x1e, 0x8b, 0x0b, 0xa5, 0x6f, 0x94, 0x42, 0x90, 0xa6, 0x63, 0xf7, 0x59, 0x16, 0xa5,
- 0x6a, 0xc3, 0x73, 0x2c, 0x96, 0xe3, 0xab, 0x50, 0x7d, 0xe2, 0x5a, 0xc2, 0x0f, 0xfa, 0x9e, 0x2f,
- 0x2c, 0x96, 0xd7, 0xbb, 0xfb, 0x94, 0x15, 0xe8, 0x2c, 0x13, 0xe7, 0x92, 0x7c, 0x21, 0x56, 0xe4,
- 0xd7, 0x60, 0x75, 0x23, 0xed, 0x20, 0xb1, 0x12, 0xea, 0xa4, 0x3d, 0xe1, 0xa2, 0x90, 0xb1, 0xb2,
- 0x12, 0x62, 0xef, 0xfb, 0x36, 0xab, 0xe0, 0xcb, 0xd4, 0x3e, 0x61, 0xd0, 0xfc, 0x97, 0x99, 0x50,
- 0x73, 0xd4, 0xa0, 0x72, 0x68, 0xfa, 0xe6, 0xc0, 0x37, 0xc7, 0xd8, 0xbf, 0x2a, 0x94, 0xd4, 0xc1,
- 0xf9, 0xa6, 0xd2, 0x6e, 0xaa, 0xf1, 0x50, 0xe9, 0x46, 0xd5, 0x78, 0x8b, 0xe5, 0xe2, 0xc6, 0xdb,
- 0x2c, 0x8f, 0xef, 0xf8, 0xee, 0xc4, 0x93, 0x82, 0x15, 0x48, 0xd7, 0x79, 0x96, 0x60, 0x45, 0x04,
- 0xf6, 0x50, 0xa3, 0xb0, 0x12, 0x8e, 0x79, 0x13, 0xe5, 0xe7, 0xd8, 0x3b, 0x67, 0x65, 0xec, 0x06,
- 0x4e, 0xa3, 0xb0, 0x58, 0x05, 0x9f, 0xec, 0x4f, 0x46, 0xc7, 0x02, 0x87, 0x09, 0xf8, 0xa4, 0xe7,
- 0x0d, 0x06, 0x8e, 0x60, 0x55, 0x9c, 0x83, 0x84, 0xf2, 0x65, 0xcb, 0xa4, 0x69, 0x4d, 0xc7, 0xf1,
- 0x26, 0x92, 0xd5, 0x1a, 0xbf, 0xcc, 0x41, 0x1e, 0xbd, 0x1b, 0xdc, 0x3b, 0x43, 0xd4, 0x33, 0x7a,
- 0xef, 0xe0, 0xef, 0x68, 0x07, 0x66, 0xe3, 0x1d, 0xc8, 0xdf, 0xd7, 0x2b, 0x9d, 0x5b, 0x40, 0xcb,
- 0x22, 0xe3, 0xe4, 0x22, 0x73, 0xc8, 0x8f, 0xec, 0x91, 0xd0, 0xba, 0x8e, 0x7e, 0x23, 0x2c, 0xc0,
- 0xf3, 0xb8, 0x40, 0xc1, 0x13, 0xfa, 0x8d, 0xbb, 0xc6, 0xc4, 0x63, 0xa1, 0x25, 0x69, 0x0f, 0xe4,
- 0x8c, 0xb0, 0x39, 0x47, 0x7b, 0x55, 0xe6, 0x6a, 0xaf, 0x0f, 0x42, 0xed, 0x55, 0x5a, 0x60, 0xd7,
- 0x53, 0x37, 0x93, 0x9a, 0x2b, 0x56, 0x1a, 0xe5, 0xc5, 0xc9, 0x13, 0x87, 0xc9, 0x96, 0x96, 0xda,
- 0xf8, 0xa0, 0x2b, 0xab, 0x59, 0x66, 0x19, 0x5c, 0x4d, 0xda, 0xae, 0x4a, 0xe7, 0x3d, 0xb5, 0x2d,
- 0xe1, 0xb1, 0x1c, 0x1d, 0x84, 0x13, 0xcb, 0xf6, 0x58, 0x1e, 0x2d, 0xaf, 0xc3, 0xad, 0x6d, 0x56,
- 0x68, 0xbe, 0x9a, 0x38, 0x92, 0x5a, 0x13, 0xe9, 0x29, 0x36, 0x24, 0xbe, 0x19, 0x25, 0x8d, 0xc7,
- 0xc2, 0x62, 0xd9, 0xe6, 0xd7, 0xe7, 0xa8, 0xd9, 0x1a, 0x54, 0x9e, 0x8c, 0x1d, 0xcf, 0xb4, 0xae,
- 0xd0, 0xb3, 0xcb, 0x00, 0xb1, 0x57, 0xdd, 0xf8, 0x65, 0x33, 0x3e, 0xce, 0xd1, 0x16, 0x0d, 0xbc,
- 0x89, 0xdf, 0x17, 0xa4, 0x42, 0x2a, 0x86, 0x6e, 0xf1, 0xef, 0x40, 0x01, 0x9f, 0x87, 0x61, 0x9c,
- 0xfb, 0x0b, 0xf9, 0x72, 0xeb, 0x4f, 0x6d, 0xf1, 0xdc, 0x50, 0x84, 0xfc, 0x0e, 0x80, 0xd9, 0x97,
- 0xf6, 0x99, 0x40, 0xa0, 0xde, 0xec, 0x09, 0x08, 0x7f, 0x27, 0x69, 0xbe, 0x5c, 0x1d, 0x87, 0x4c,
- 0xd8, 0x35, 0xdc, 0x80, 0x2a, 0x6e, 0xdd, 0xf1, 0x81, 0x8f, 0xbb, 0xbd, 0xbe, 0x4c, 0x84, 0x6f,
- 0x2c, 0xd6, 0xbd, 0x47, 0x11, 0xa1, 0x91, 0x64, 0xc2, 0x9f, 0xc0, 0xb2, 0x8a, 0xa9, 0x69, 0xa6,
- 0x35, 0x62, 0xfa, 0xe6, 0x62, 0x4c, 0x0f, 0x62, 0x4a, 0x23, 0xc5, 0x66, 0x36, 0x2c, 0x59, 0x78,
- 0xe9, 0xb0, 0xe4, 0xab, 0xb0, 0xd2, 0x4b, 0xef, 0x02, 0x75, 0x54, 0x4c, 0x41, 0x79, 0x13, 0x96,
- 0xed, 0x20, 0x8e, 0x8a, 0x52, 0x8c, 0xa4, 0x6c, 0xa4, 0x60, 0x8d, 0x7f, 0x57, 0x84, 0x3c, 0xcd,
- 0xfc, 0x74, 0x8c, 0x6b, 0x33, 0xa5, 0xd2, 0x1f, 0x2c, 0xbe, 0xd4, 0x53, 0x3b, 0x9e, 0x34, 0x48,
- 0x2e, 0xa1, 0x41, 0xbe, 0x03, 0x85, 0xc0, 0xf3, 0x65, 0xb8, 0xbc, 0x0b, 0x0a, 0x51, 0xd7, 0xf3,
- 0xa5, 0xa1, 0x08, 0xf9, 0x36, 0x94, 0x4e, 0x6c, 0x47, 0xe2, 0xa2, 0xa8, 0xc9, 0x7b, 0x7d, 0x31,
- 0x1e, 0xdb, 0x44, 0x64, 0x84, 0xc4, 0x7c, 0x37, 0x29, 0x6c, 0x45, 0xe2, 0xb4, 0xbe, 0x18, 0xa7,
- 0x79, 0x32, 0x78, 0x1f, 0x58, 0xdf, 0x3b, 0x13, 0xbe, 0x91, 0x08, 0x4c, 0xaa, 0x43, 0x7a, 0x06,
- 0xce, 0x1b, 0x50, 0x1e, 0xda, 0x96, 0x40, 0x3b, 0x87, 0x74, 0x4c, 0xd9, 0x88, 0xda, 0xfc, 0x31,
- 0x94, 0xc9, 0x3f, 0x40, 0xad, 0x58, 0x79, 0xe9, 0xc9, 0x57, 0xae, 0x4a, 0xc8, 0x00, 0x5f, 0x44,
- 0x2f, 0xdf, 0xb6, 0x25, 0xc5, 0xa7, 0xcb, 0x46, 0xd4, 0xc6, 0x0e, 0x93, 0xbc, 0x27, 0x3b, 0x5c,
- 0x55, 0x1d, 0x9e, 0x86, 0xf3, 0xb7, 0xe1, 0x06, 0xc1, 0xa6, 0x0e, 0x49, 0xdc, 0x6a, 0xc8, 0x74,
- 0xfe, 0x43, 0x34, 0x58, 0xc6, 0xe6, 0x40, 0xec, 0xda, 0x23, 0x5b, 0xd6, 0x6b, 0x77, 0x33, 0xf7,
- 0x0a, 0x46, 0x0c, 0xe0, 0xaf, 0xc3, 0x9a, 0x25, 0x4e, 0xcc, 0x89, 0x23, 0x7b, 0x62, 0x34, 0x76,
- 0x4c, 0x29, 0x3a, 0x16, 0xc9, 0x68, 0xc5, 0x98, 0x7d, 0xc0, 0xdf, 0x80, 0x6b, 0x1a, 0x78, 0x10,
- 0x65, 0x15, 0x3a, 0x16, 0x85, 0xef, 0x2a, 0xc6, 0xbc, 0x47, 0xcd, 0x3d, 0xad, 0x86, 0xf1, 0x00,
- 0x45, 0x3f, 0x35, 0x54, 0xa0, 0x81, 0x54, 0x27, 0xf2, 0x23, 0xd3, 0x71, 0x84, 0x7f, 0xa1, 0x9c,
- 0xdc, 0xc7, 0xa6, 0x7b, 0x6c, 0xba, 0x2c, 0x47, 0x67, 0xac, 0xe9, 0x08, 0xd7, 0x32, 0x7d, 0x75,
- 0x22, 0x3f, 0xa2, 0x03, 0xbd, 0xd0, 0xbc, 0x07, 0x79, 0x9a, 0xd2, 0x0a, 0x14, 0x94, 0x97, 0x44,
- 0x1e, 0xb3, 0xf6, 0x90, 0x48, 0x23, 0xef, 0xe2, 0xf6, 0x63, 0xd9, 0xc6, 0x3f, 0x28, 0x42, 0x39,
- 0x9c, 0xbc, 0x30, 0x87, 0x90, 0x89, 0x73, 0x08, 0x68, 0xc6, 0x05, 0x4f, 0xed, 0xc0, 0x3e, 0xd6,
- 0x66, 0x69, 0xd9, 0x88, 0x01, 0x68, 0x09, 0x3d, 0xb7, 0x2d, 0x39, 0xa4, 0x3d, 0x53, 0x30, 0x54,
- 0x83, 0xdf, 0x83, 0x55, 0x0b, 0xe7, 0xc1, 0xed, 0x3b, 0x13, 0x4b, 0xf4, 0xf0, 0x14, 0x55, 0x61,
- 0x82, 0x69, 0x30, 0xff, 0x18, 0x40, 0xda, 0x23, 0xb1, 0xed, 0xf9, 0x23, 0x53, 0x6a, 0xdf, 0xe0,
- 0x1b, 0x2f, 0x27, 0xd5, 0xeb, 0xbd, 0x88, 0x81, 0x91, 0x60, 0x86, 0xac, 0xf1, 0x6d, 0x9a, 0x75,
- 0xe9, 0x33, 0xb1, 0xde, 0x8a, 0x18, 0x18, 0x09, 0x66, 0xbc, 0x07, 0xa5, 0x13, 0xcf, 0x1f, 0x4d,
- 0x1c, 0x53, 0x9f, 0xb9, 0xef, 0xbf, 0x24, 0xdf, 0x6d, 0x45, 0x4d, 0xba, 0x27, 0x64, 0x15, 0xc7,
- 0xb8, 0x2b, 0x0b, 0xc6, 0xb8, 0x9b, 0xbf, 0x02, 0x10, 0xf7, 0x90, 0xdf, 0x04, 0xbe, 0xe7, 0xb9,
- 0x72, 0xd8, 0x3a, 0x3e, 0xf6, 0x37, 0xc4, 0x89, 0xe7, 0x8b, 0x2d, 0x13, 0x8f, 0xd7, 0x1b, 0xb0,
- 0x16, 0xc1, 0x5b, 0x27, 0x52, 0xf8, 0x08, 0x26, 0x11, 0xe8, 0x0e, 0x3d, 0x5f, 0x2a, 0x1b, 0x8f,
- 0x7e, 0x3e, 0xe9, 0xb2, 0x1c, 0x1e, 0xe9, 0x9d, 0xee, 0x01, 0xcb, 0x37, 0xef, 0x01, 0xc4, 0x53,
- 0x4b, 0xbe, 0x10, 0xfd, 0x7a, 0xf3, 0xa1, 0xf6, 0x8c, 0xa8, 0xf5, 0xf0, 0x6d, 0x96, 0x69, 0x7e,
- 0x9a, 0x81, 0x6a, 0x62, 0x48, 0x69, 0x9f, 0x79, 0xd3, 0x9b, 0xb8, 0x52, 0x39, 0xe9, 0xf4, 0xf3,
- 0xa9, 0xe9, 0x4c, 0xf0, 0x70, 0x5f, 0x83, 0x1a, 0xb5, 0xb7, 0xec, 0x40, 0xda, 0x6e, 0x5f, 0xb2,
- 0x5c, 0x84, 0xa2, 0x0c, 0x83, 0x7c, 0x84, 0xb2, 0xef, 0x69, 0x50, 0x81, 0x33, 0x58, 0x3e, 0x14,
- 0x7e, 0x5f, 0x84, 0x48, 0x64, 0x0c, 0x6b, 0x48, 0x84, 0xa6, 0x8c, 0x61, 0x53, 0x0e, 0xbb, 0x93,
- 0x11, 0x2b, 0xa3, 0x51, 0x89, 0x8d, 0xd6, 0x99, 0xf0, 0xd1, 0x96, 0xa9, 0xe0, 0x7b, 0x10, 0x80,
- 0xbb, 0xc1, 0x74, 0x19, 0x84, 0xd8, 0x7b, 0xb6, 0xcb, 0xaa, 0x51, 0xc3, 0x3c, 0x67, 0xcb, 0xd8,
- 0x7f, 0x72, 0x1d, 0x58, 0xad, 0xf1, 0x5f, 0x72, 0x90, 0x47, 0xbd, 0x8e, 0xbe, 0x6e, 0x52, 0x09,
- 0xa9, 0xbd, 0x92, 0x04, 0x7d, 0xb6, 0xd3, 0x08, 0x79, 0x27, 0x4f, 0xa3, 0xf7, 0xa0, 0xda, 0x9f,
- 0x04, 0xd2, 0x1b, 0xd1, 0x51, 0xac, 0xb3, 0x5d, 0x37, 0x67, 0xa2, 0x46, 0x34, 0x9d, 0x46, 0x12,
- 0x95, 0xbf, 0x03, 0xc5, 0x13, 0x25, 0xf5, 0x2a, 0x6e, 0xf4, 0x85, 0x4b, 0x4e, 0x6b, 0x2d, 0xd9,
- 0x1a, 0x19, 0xc7, 0x65, 0xcf, 0xec, 0xd8, 0x24, 0x48, 0x9f, 0xba, 0xc5, 0xe8, 0xd4, 0xfd, 0x15,
- 0x58, 0x11, 0x38, 0xe1, 0x87, 0x8e, 0xd9, 0x17, 0x23, 0xe1, 0x86, 0xdb, 0xec, 0xed, 0x97, 0x18,
- 0x31, 0xad, 0x18, 0x0d, 0x7b, 0x8a, 0x17, 0x6a, 0x1e, 0xd7, 0xc3, 0xc3, 0x3f, 0x74, 0xec, 0xcb,
- 0x46, 0x0c, 0x68, 0x7e, 0x59, 0xeb, 0xcb, 0x12, 0xe4, 0x5a, 0x41, 0x5f, 0x47, 0x40, 0x44, 0xd0,
- 0x57, 0xee, 0xd5, 0x26, 0x4d, 0x07, 0xcb, 0x36, 0xdf, 0x84, 0x4a, 0xf4, 0x06, 0x14, 0x9e, 0x7d,
- 0x4f, 0x76, 0xc7, 0xa2, 0x6f, 0x9f, 0xd8, 0xc2, 0x52, 0xf2, 0xd9, 0x95, 0xa6, 0x2f, 0x55, 0x10,
- 0xb1, 0xed, 0x5a, 0x2c, 0xdb, 0xf8, 0x9d, 0x32, 0x14, 0xd5, 0xe1, 0xab, 0x07, 0x5c, 0x89, 0x06,
- 0xfc, 0x5d, 0x28, 0x7b, 0x63, 0xe1, 0x9b, 0xd2, 0xf3, 0x75, 0xe4, 0xe6, 0x9d, 0x97, 0x39, 0xcc,
- 0xd7, 0x0f, 0x34, 0xb1, 0x11, 0xb1, 0x99, 0x96, 0xa6, 0xec, 0xac, 0x34, 0xdd, 0x07, 0x16, 0x9e,
- 0xdb, 0x87, 0x3e, 0xd2, 0xc9, 0x0b, 0xed, 0x87, 0xcf, 0xc0, 0x79, 0x0f, 0x2a, 0x7d, 0xcf, 0xb5,
- 0xec, 0x28, 0x8a, 0xb3, 0xf2, 0xf0, 0xeb, 0x2f, 0xd5, 0xc3, 0xcd, 0x90, 0xda, 0x88, 0x19, 0xf1,
- 0xd7, 0xa1, 0x70, 0x86, 0x62, 0x46, 0xf2, 0x74, 0xb9, 0x10, 0x2a, 0x24, 0xfe, 0x09, 0x54, 0x7f,
- 0x30, 0xb1, 0xfb, 0xa7, 0x07, 0xc9, 0x28, 0xe1, 0x7b, 0x2f, 0xd5, 0x8b, 0xef, 0xc6, 0xf4, 0x46,
- 0x92, 0x59, 0x42, 0xb4, 0x4b, 0x7f, 0x02, 0xd1, 0x2e, 0xcf, 0x8a, 0xb6, 0x01, 0x35, 0x57, 0x04,
- 0x52, 0x58, 0xdb, 0xda, 0x56, 0x83, 0xcf, 0x60, 0xab, 0xa5, 0x59, 0x34, 0xbf, 0x04, 0xe5, 0x70,
- 0xc1, 0x79, 0x11, 0xb2, 0xfb, 0xe8, 0x14, 0x15, 0x21, 0x7b, 0xe0, 0x2b, 0x69, 0x6b, 0xa1, 0xb4,
- 0x35, 0xff, 0x28, 0x03, 0x95, 0x68, 0xd2, 0xd3, 0x9a, 0xb3, 0xfd, 0x83, 0x89, 0xe9, 0xb0, 0x0c,
- 0xb9, 0xcb, 0x9e, 0x54, 0x2d, 0x52, 0xd6, 0x8f, 0x28, 0x59, 0xef, 0xb3, 0x1c, 0x99, 0x08, 0x22,
- 0x08, 0x58, 0x9e, 0x73, 0x58, 0xd1, 0xe0, 0x03, 0x5f, 0xa1, 0x16, 0x50, 0xf1, 0xe1, 0xd3, 0x10,
- 0x50, 0x54, 0x16, 0xc5, 0xa9, 0x50, 0x0a, 0x72, 0xdf, 0x93, 0xd4, 0x28, 0x63, 0xa7, 0x3a, 0x2e,
- 0xab, 0xe0, 0x3b, 0xf7, 0x3d, 0xd9, 0x41, 0x95, 0x18, 0xb9, 0x67, 0xd5, 0xf0, 0xf5, 0xd4, 0x22,
- 0x8d, 0xd8, 0x72, 0x9c, 0x8e, 0xcb, 0x6a, 0xfa, 0x81, 0x6a, 0xad, 0x20, 0xc7, 0xf6, 0xb9, 0xd9,
- 0x47, 0xf2, 0x55, 0xd4, 0xb0, 0x48, 0xa3, 0xdb, 0x0c, 0xb7, 0x64, 0xfb, 0xdc, 0x0e, 0x64, 0xc0,
- 0xd6, 0x9a, 0xff, 0x36, 0x03, 0xd5, 0xc4, 0x02, 0xa3, 0xfb, 0x47, 0x88, 0x78, 0x94, 0x29, 0x6f,
- 0xf0, 0x63, 0x9c, 0x46, 0xdf, 0x0a, 0x8f, 0xa9, 0x9e, 0x87, 0x3f, 0xb3, 0xf8, 0xbe, 0x9e, 0x37,
- 0xf2, 0x7c, 0xdf, 0x7b, 0xae, 0x4c, 0x9f, 0x5d, 0x33, 0x90, 0xcf, 0x84, 0x38, 0x65, 0x79, 0x1c,
- 0xea, 0xe6, 0xc4, 0xf7, 0x85, 0xab, 0x00, 0x05, 0xea, 0x9c, 0x38, 0x57, 0xad, 0x22, 0x32, 0x45,
- 0x64, 0x3a, 0x07, 0x59, 0x09, 0x15, 0x81, 0xc6, 0x56, 0x90, 0x32, 0x22, 0x20, 0xba, 0x6a, 0x56,
- 0xf0, 0x50, 0x51, 0x11, 0x8a, 0x83, 0x93, 0x2d, 0xf3, 0x22, 0x68, 0x0d, 0x3c, 0x06, 0xd3, 0xc0,
- 0x7d, 0xef, 0x39, 0xab, 0x36, 0x26, 0x00, 0xb1, 0x4f, 0x86, 0xbe, 0x28, 0x0a, 0x44, 0x94, 0x43,
- 0xd0, 0x2d, 0x7e, 0x00, 0x80, 0xbf, 0x08, 0x33, 0x74, 0x48, 0x5f, 0xc2, 0x50, 0x26, 0x3a, 0x23,
- 0xc1, 0xa2, 0xf1, 0x17, 0xa0, 0x12, 0x3d, 0xe0, 0x75, 0x28, 0x91, 0x49, 0x1b, 0xbd, 0x36, 0x6c,
- 0xa2, 0x7d, 0x66, 0xbb, 0x96, 0x38, 0x27, 0xbd, 0x52, 0x30, 0x54, 0x03, 0x7b, 0x39, 0xb4, 0x2d,
- 0x4b, 0xb8, 0x61, 0xa6, 0x47, 0xb5, 0xe6, 0xe5, 0xe3, 0xf3, 0x73, 0xf3, 0xf1, 0x8d, 0x5f, 0x85,
- 0x6a, 0xc2, 0x69, 0xbc, 0x74, 0xd8, 0x89, 0x8e, 0x65, 0xd3, 0x1d, 0xbb, 0x0d, 0x95, 0xb0, 0x06,
- 0x24, 0xa0, 0xb3, 0xad, 0x62, 0xc4, 0x80, 0xc6, 0x3f, 0xcd, 0xa2, 0x25, 0x8b, 0x43, 0x9b, 0x76,
- 0xf4, 0xb6, 0xa1, 0x18, 0x48, 0x53, 0x4e, 0xc2, 0x62, 0x86, 0x05, 0x37, 0x68, 0x97, 0x68, 0x76,
- 0x96, 0x0c, 0x4d, 0xcd, 0x3f, 0x80, 0x9c, 0x34, 0x07, 0x3a, 0x50, 0xfa, 0x95, 0xc5, 0x98, 0xf4,
- 0xcc, 0xc1, 0xce, 0x92, 0x81, 0x74, 0x7c, 0x17, 0xca, 0x7d, 0x1d, 0xdb, 0xd2, 0x4a, 0x71, 0x41,
- 0x5f, 0x2c, 0x8c, 0x88, 0xed, 0x2c, 0x19, 0x11, 0x07, 0xfe, 0x1d, 0xc8, 0xa3, 0x75, 0xa9, 0x6b,
- 0x3e, 0x16, 0xf4, 0x31, 0x71, 0xbb, 0xec, 0x2c, 0x19, 0x44, 0xb9, 0x51, 0x82, 0x02, 0xe9, 0xe0,
- 0x46, 0x1d, 0x8a, 0x6a, 0xac, 0xd3, 0x33, 0xd7, 0xb8, 0x05, 0xb9, 0x9e, 0x39, 0x40, 0x0b, 0xdf,
- 0xb6, 0x02, 0x1d, 0x2a, 0xc1, 0x9f, 0x8d, 0x57, 0xe2, 0x38, 0x5d, 0x32, 0x04, 0x9c, 0x49, 0x85,
- 0x80, 0x1b, 0x45, 0xc8, 0xe3, 0x1b, 0x1b, 0xb7, 0xaf, 0xf2, 0x16, 0x1a, 0xff, 0x28, 0x87, 0x8e,
- 0x85, 0x14, 0xe7, 0x73, 0xc3, 0xdb, 0x1f, 0x41, 0x65, 0xec, 0x7b, 0x7d, 0x11, 0x04, 0x9e, 0xaf,
- 0x8d, 0xa3, 0xd7, 0x5f, 0x9c, 0x7a, 0x5e, 0x3f, 0x0c, 0x69, 0x8c, 0x98, 0xbc, 0xf9, 0xaf, 0xb2,
- 0x50, 0x89, 0x1e, 0x28, 0x7f, 0x46, 0x8a, 0x73, 0x15, 0xca, 0xdc, 0x13, 0xfe, 0xc8, 0xb4, 0x2d,
- 0xa5, 0x3d, 0x36, 0x87, 0x66, 0x68, 0xe4, 0x7e, 0xec, 0x4d, 0xe4, 0xe4, 0x58, 0xa8, 0x10, 0xd6,
- 0x53, 0x7b, 0x24, 0x3c, 0x96, 0xa7, 0xe4, 0x11, 0x0a, 0x76, 0xdf, 0xf1, 0x26, 0x16, 0x2b, 0x60,
- 0xfb, 0x11, 0x1d, 0x6f, 0x7b, 0xe6, 0x38, 0x50, 0x3a, 0x73, 0xcf, 0xf6, 0x3d, 0x56, 0x42, 0xa2,
- 0x6d, 0x7b, 0x30, 0x32, 0x59, 0x19, 0x99, 0xf5, 0x9e, 0xdb, 0x12, 0x95, 0x70, 0x05, 0xcd, 0xd4,
- 0x83, 0xb1, 0x70, 0xbb, 0xd2, 0x17, 0x42, 0xee, 0x99, 0x63, 0x15, 0xd3, 0x34, 0x84, 0x65, 0xd9,
- 0x52, 0xe9, 0xcf, 0x6d, 0xb3, 0x2f, 0x8e, 0x3d, 0xef, 0x94, 0x2d, 0xa3, 0xa2, 0xe9, 0xb8, 0x81,
- 0x34, 0x07, 0xbe, 0x39, 0x52, 0x3a, 0xb4, 0x27, 0x1c, 0x41, 0xad, 0x15, 0x7a, 0xb7, 0x2d, 0x87,
- 0x93, 0xe3, 0x47, 0xe8, 0xf7, 0xad, 0xaa, 0x3c, 0x93, 0x25, 0xc6, 0x02, 0x75, 0xe8, 0x32, 0x94,
- 0x37, 0x6c, 0xc7, 0x3e, 0xb6, 0x1d, 0x9b, 0xad, 0x21, 0x6a, 0xfb, 0xbc, 0x6f, 0x3a, 0xb6, 0xe5,
- 0x9b, 0xcf, 0x19, 0xc7, 0xce, 0x3d, 0xf6, 0xbd, 0x53, 0x9b, 0x5d, 0x43, 0x44, 0x72, 0x03, 0xcf,
- 0xec, 0x1f, 0xb2, 0xeb, 0x94, 0x2b, 0x3b, 0x15, 0xb2, 0x3f, 0x3c, 0x31, 0x8f, 0xd9, 0x8d, 0x38,
- 0xa4, 0x77, 0xb3, 0xb1, 0x06, 0xab, 0x53, 0x59, 0xf9, 0x46, 0x49, 0x7b, 0x9f, 0x8d, 0x1a, 0x54,
- 0x13, 0xe9, 0xd2, 0xc6, 0xab, 0x50, 0x0e, 0x93, 0xa9, 0xe8, 0xa5, 0xdb, 0x81, 0x0a, 0x03, 0x6b,
- 0x21, 0x89, 0xda, 0x8d, 0xdf, 0xcf, 0x40, 0x51, 0x65, 0xb2, 0xf9, 0x46, 0x54, 0x79, 0x92, 0x59,
- 0x20, 0x7b, 0xa9, 0x88, 0x74, 0xee, 0x37, 0x2a, 0x3f, 0xb9, 0x0e, 0x05, 0x87, 0xdc, 0x71, 0xad,
- 0xbe, 0xa8, 0x91, 0xd0, 0x36, 0xb9, 0xa4, 0xb6, 0x69, 0xb6, 0xa2, 0x7c, 0x73, 0x18, 0x7a, 0x24,
- 0xab, 0xb0, 0xe7, 0x0b, 0xa1, 0xc2, 0x8a, 0xe4, 0x4d, 0x67, 0xe9, 0xac, 0xf0, 0x46, 0x63, 0xb3,
- 0x2f, 0x09, 0x40, 0xa7, 0x28, 0x2a, 0x53, 0x96, 0x47, 0x29, 0xdf, 0x1c, 0x9a, 0xb2, 0x79, 0x02,
- 0xe5, 0x43, 0x2f, 0x98, 0x3e, 0x93, 0x4b, 0x90, 0xeb, 0x79, 0x63, 0x65, 0x61, 0x6e, 0x78, 0x92,
- 0x2c, 0x4c, 0x75, 0x04, 0x9f, 0x48, 0x25, 0x54, 0x86, 0x3d, 0x18, 0x4a, 0xe5, 0x89, 0x77, 0x5c,
- 0x57, 0xf8, 0xac, 0x80, 0x6b, 0x68, 0x88, 0x31, 0x5a, 0xb5, 0xac, 0x88, 0xab, 0x46, 0xf0, 0x6d,
- 0xdb, 0x0f, 0x24, 0x2b, 0x35, 0x3b, 0x78, 0x9a, 0xda, 0x03, 0x3a, 0x04, 0xe9, 0x07, 0xb1, 0x5a,
- 0xc2, 0x2e, 0x52, 0x73, 0x53, 0xb8, 0x28, 0x63, 0xe4, 0x3d, 0x29, 0xd7, 0x8f, 0x5e, 0x90, 0xc5,
- 0x13, 0x8c, 0xda, 0x1f, 0x4d, 0x02, 0x69, 0x9f, 0x5c, 0xb0, 0x5c, 0xf3, 0x19, 0xd4, 0x52, 0x65,
- 0x4c, 0xfc, 0x3a, 0xb0, 0x14, 0x00, 0xbb, 0xbe, 0xc4, 0x6f, 0xc1, 0xb5, 0x14, 0x74, 0xcf, 0xb6,
- 0x2c, 0x8a, 0xf5, 0x4e, 0x3f, 0x08, 0x07, 0xb8, 0x51, 0x81, 0x52, 0x5f, 0xad, 0x52, 0xf3, 0x10,
- 0x6a, 0xb4, 0x6c, 0x7b, 0x42, 0x9a, 0x07, 0xae, 0x73, 0xf1, 0x27, 0xae, 0x35, 0x6b, 0x7e, 0x55,
- 0x3b, 0x58, 0xa8, 0x2f, 0x4e, 0x7c, 0x6f, 0x44, 0xbc, 0x0a, 0x06, 0xfd, 0x46, 0xee, 0xd2, 0xd3,
- 0x6b, 0x9f, 0x95, 0x5e, 0xf3, 0x97, 0x15, 0x28, 0xb5, 0xfa, 0x7d, 0x74, 0x09, 0x67, 0xde, 0xfc,
- 0x0e, 0x14, 0xfb, 0x9e, 0x7b, 0x62, 0x0f, 0xb4, 0x3e, 0x9e, 0xb6, 0x0c, 0x35, 0x1d, 0x0a, 0xdc,
- 0x89, 0x3d, 0x30, 0x34, 0x32, 0x92, 0xe9, 0xf3, 0xa4, 0x70, 0x25, 0x99, 0x52, 0xaa, 0xd1, 0xf1,
- 0xf1, 0x00, 0xf2, 0xb6, 0x7b, 0xe2, 0xe9, 0xc2, 0xd0, 0xcf, 0x5f, 0x42, 0x44, 0xd5, 0x91, 0x84,
- 0xd8, 0xf8, 0x4f, 0x19, 0x28, 0xaa, 0x57, 0xf3, 0x57, 0x61, 0x45, 0xb8, 0xb8, 0x99, 0x42, 0x55,
- 0xae, 0x77, 0xd1, 0x14, 0x14, 0x8d, 0x56, 0x0d, 0x11, 0xc7, 0x93, 0x81, 0x8e, 0xbd, 0x24, 0x41,
- 0xfc, 0x3d, 0xb8, 0xa5, 0x9a, 0x87, 0xbe, 0xf0, 0x85, 0x23, 0xcc, 0x40, 0x6c, 0x0e, 0x4d, 0xd7,
- 0x15, 0x8e, 0x3e, 0xd8, 0x2f, 0x7b, 0xcc, 0x9b, 0xb0, 0xac, 0x1e, 0x75, 0xc7, 0x66, 0x5f, 0x04,
- 0x3a, 0xdf, 0x97, 0x82, 0xf1, 0xaf, 0x41, 0x81, 0xea, 0x66, 0xeb, 0xd6, 0xd5, 0x4b, 0xa9, 0xb0,
- 0x1a, 0x5e, 0x74, 0xf2, 0xb4, 0x00, 0xd4, 0x34, 0xa1, 0xd3, 0xa5, 0x77, 0xff, 0x17, 0xaf, 0x9c,
- 0x57, 0xf2, 0xff, 0x12, 0x44, 0xd8, 0x3f, 0x4b, 0x38, 0x82, 0x0a, 0x1c, 0xf1, 0x64, 0xcc, 0x52,
- 0x66, 0x25, 0x05, 0x6b, 0xfc, 0xc7, 0x3c, 0xe4, 0x71, 0x86, 0x11, 0x79, 0xe8, 0x8d, 0x44, 0x14,
- 0x5f, 0x56, 0xa6, 0x46, 0x0a, 0x86, 0xa6, 0x8d, 0xa9, 0x52, 0xfc, 0x11, 0x9a, 0x52, 0x1e, 0xd3,
- 0x60, 0xc4, 0x1c, 0xfb, 0xde, 0x89, 0xed, 0xc4, 0x98, 0xda, 0x08, 0x9a, 0x02, 0xf3, 0xaf, 0xc3,
- 0xcd, 0x91, 0xe9, 0x9f, 0x0a, 0x49, 0xbb, 0xfb, 0x99, 0xe7, 0x9f, 0x06, 0x38, 0x73, 0x1d, 0x4b,
- 0x07, 0x26, 0x2f, 0x79, 0xca, 0x5f, 0x87, 0xb5, 0xe7, 0x61, 0x33, 0x7a, 0x87, 0x0a, 0x0d, 0xce,
- 0x3e, 0x40, 0x75, 0x6b, 0x89, 0x33, 0x9b, 0xf8, 0x96, 0x55, 0xf5, 0x6c, 0xd8, 0x46, 0x51, 0x32,
- 0xd5, 0x44, 0x76, 0xf5, 0x9b, 0x75, 0x86, 0x29, 0x0d, 0x45, 0x6b, 0x4b, 0x55, 0x15, 0x05, 0x1d,
- 0x8b, 0x22, 0xab, 0x15, 0x23, 0x06, 0xa0, 0xa0, 0xd1, 0x2b, 0x9f, 0x2a, 0xa5, 0x5a, 0x53, 0x2e,
- 0x68, 0x02, 0x84, 0x18, 0x52, 0xf4, 0x87, 0xe1, 0x4b, 0x54, 0xd8, 0x33, 0x09, 0xe2, 0x77, 0x00,
- 0x06, 0xa6, 0x14, 0xcf, 0xcd, 0x8b, 0x27, 0xbe, 0x53, 0x17, 0x2a, 0x55, 0x12, 0x43, 0xd0, 0x89,
- 0x75, 0xbc, 0xbe, 0xe9, 0x74, 0xa5, 0xe7, 0x9b, 0x03, 0x71, 0x68, 0xca, 0x61, 0x7d, 0xa0, 0x9c,
- 0xd8, 0x69, 0x38, 0x8e, 0x58, 0xda, 0x23, 0xf1, 0x89, 0xe7, 0x8a, 0xfa, 0x50, 0x8d, 0x38, 0x6c,
- 0x63, 0x4f, 0x4c, 0xd7, 0x74, 0x2e, 0xa4, 0xdd, 0xc7, 0xb1, 0xd8, 0xaa, 0x27, 0x09, 0x10, 0x85,
- 0x0d, 0x84, 0xc4, 0x79, 0xec, 0x58, 0xf5, 0xef, 0xab, 0xb1, 0x46, 0x00, 0x5c, 0x5d, 0x21, 0x87,
- 0xc2, 0x17, 0x93, 0x51, 0xcb, 0xb2, 0x7c, 0x11, 0x04, 0xf5, 0x53, 0xb5, 0xba, 0x53, 0xe0, 0xc6,
- 0x37, 0x29, 0x91, 0x35, 0x6c, 0xbe, 0x05, 0xb5, 0x5d, 0xec, 0x61, 0x6b, 0x6c, 0x77, 0xfb, 0xde,
- 0x58, 0xa0, 0x42, 0xa7, 0x90, 0x30, 0x05, 0x10, 0xaa, 0x50, 0xfa, 0x28, 0xf0, 0xdc, 0xd6, 0x61,
- 0x47, 0x1d, 0x31, 0xdb, 0x13, 0xc7, 0x61, 0xd9, 0xe6, 0x01, 0x40, 0x2c, 0xd9, 0x78, 0x5c, 0xb4,
- 0x28, 0x6b, 0xc4, 0x96, 0x54, 0xb8, 0xca, 0xb5, 0x6c, 0x77, 0xb0, 0xa5, 0x85, 0x99, 0x65, 0x10,
- 0x48, 0x61, 0x08, 0x61, 0x45, 0x40, 0x32, 0x58, 0xa8, 0x25, 0x2c, 0x96, 0x6b, 0xfe, 0xef, 0x0c,
- 0x54, 0x13, 0x45, 0x12, 0x7f, 0x8a, 0x85, 0x1d, 0x78, 0x9c, 0xa3, 0x41, 0x80, 0xeb, 0xa6, 0x04,
- 0x3d, 0x6a, 0xe3, 0xaa, 0xea, 0x1a, 0x0e, 0x7c, 0xaa, 0x82, 0x0e, 0x09, 0xc8, 0x67, 0x2a, 0xea,
- 0x68, 0x3e, 0xd4, 0x91, 0x9b, 0x2a, 0x94, 0x9e, 0xb8, 0xa7, 0xae, 0xf7, 0xdc, 0x55, 0xe7, 0x34,
- 0x55, 0xea, 0xa4, 0x72, 0x8e, 0x61, 0x31, 0x4d, 0xae, 0xf9, 0x2f, 0xf2, 0x53, 0x45, 0x6d, 0x6d,
- 0x28, 0x2a, 0x77, 0x81, 0x2c, 0xd9, 0xd9, 0x2a, 0xa4, 0x24, 0xb2, 0xce, 0x6f, 0x25, 0x40, 0x86,
- 0x26, 0x46, 0x3b, 0x3e, 0x2a, 0xf9, 0xcc, 0xce, 0xcd, 0xc3, 0xa5, 0x18, 0x85, 0xba, 0x39, 0x55,
- 0xf5, 0x1c, 0x71, 0x68, 0xfc, 0xb5, 0x0c, 0x5c, 0x9f, 0x87, 0x92, 0xac, 0x0d, 0xcf, 0xa4, 0x6b,
- 0xc3, 0xbb, 0x53, 0xb5, 0xd6, 0x59, 0x1a, 0xcd, 0x83, 0x97, 0xec, 0x44, 0xba, 0xf2, 0xba, 0xf9,
- 0x7b, 0x19, 0x58, 0x9b, 0x19, 0x73, 0xc2, 0x8e, 0x01, 0x28, 0x2a, 0xc9, 0x52, 0xa5, 0x50, 0x51,
- 0x71, 0x8a, 0x4a, 0x2e, 0xd0, 0x09, 0x1f, 0xa8, 0x6c, 0xbf, 0xae, 0x2e, 0x57, 0x66, 0x32, 0xae,
- 0x1a, 0x1e, 0x20, 0x03, 0xa1, 0x02, 0xb1, 0xca, 0xd8, 0xd2, 0x90, 0xa2, 0x32, 0x65, 0x55, 0x06,
- 0x84, 0x95, 0xa8, 0xc4, 0x6a, 0x32, 0x76, 0xec, 0x3e, 0x36, 0xcb, 0xbc, 0x01, 0x37, 0xd5, 0x15,
- 0x03, 0xed, 0x36, 0x9e, 0xf4, 0x86, 0x36, 0x6d, 0x0e, 0x56, 0xc1, 0xf7, 0x1c, 0x4e, 0x8e, 0x1d,
- 0x3b, 0x18, 0x32, 0x68, 0x1a, 0x70, 0x6d, 0xce, 0x00, 0xa9, 0xcb, 0x4f, 0x75, 0xf7, 0x57, 0x00,
- 0xb6, 0x9e, 0x86, 0x9d, 0x66, 0x19, 0xce, 0x61, 0x65, 0xeb, 0x69, 0x92, 0xbb, 0xde, 0x3c, 0x4f,
- 0x51, 0x7b, 0x05, 0x2c, 0xd7, 0xfc, 0xb5, 0x4c, 0x58, 0x03, 0xd1, 0xf8, 0xf3, 0x50, 0x53, 0x1d,
- 0x3e, 0x34, 0x2f, 0x1c, 0xcf, 0xb4, 0x78, 0x1b, 0x56, 0x82, 0xe8, 0x12, 0x4c, 0xe2, 0xc0, 0x9a,
- 0x36, 0x04, 0xba, 0x29, 0x24, 0x63, 0x8a, 0x28, 0x74, 0x85, 0xb2, 0x71, 0xe2, 0x84, 0x93, 0x53,
- 0x67, 0xd2, 0x96, 0x5b, 0x26, 0x37, 0xcd, 0x6c, 0x7e, 0x0d, 0xd6, 0xba, 0xb1, 0x72, 0x57, 0x36,
- 0x33, 0x0a, 0x87, 0x3a, 0x19, 0xb6, 0x42, 0xe1, 0xd0, 0xcd, 0xe6, 0x3f, 0x2e, 0x01, 0xc4, 0x49,
- 0xa2, 0x39, 0x7b, 0x7e, 0x5e, 0xcd, 0xc3, 0x4c, 0xca, 0x36, 0xf7, 0xd2, 0x29, 0xdb, 0xf7, 0x22,
- 0xd3, 0x5d, 0x05, 0x90, 0xa7, 0x0b, 0xbf, 0xe3, 0x3e, 0x4d, 0x1b, 0xec, 0xa9, 0x92, 0xa0, 0xc2,
- 0x74, 0x49, 0xd0, 0xdd, 0xd9, 0xfa, 0xc1, 0x29, 0x65, 0x14, 0x47, 0x26, 0x4a, 0xa9, 0xc8, 0x44,
- 0x03, 0xca, 0xbe, 0x30, 0x2d, 0xcf, 0x75, 0x2e, 0xc2, 0xcc, 0x60, 0xd8, 0xe6, 0x6f, 0x41, 0x41,
- 0xd2, 0x3d, 0x9e, 0x32, 0xed, 0x9d, 0x17, 0x2c, 0x9c, 0xc2, 0x45, 0xcd, 0x66, 0x07, 0xba, 0xe8,
- 0x4f, 0x9d, 0x9a, 0x65, 0x23, 0x01, 0xe1, 0xeb, 0xc0, 0x6d, 0x74, 0xd3, 0x1c, 0x47, 0x58, 0x1b,
- 0x17, 0x5b, 0x2a, 0x61, 0x47, 0xe7, 0x7a, 0xd9, 0x98, 0xf3, 0x24, 0x5c, 0xff, 0xe5, 0x78, 0xfd,
- 0xa9, 0xcb, 0x67, 0x76, 0x80, 0x23, 0xad, 0x91, 0xf9, 0x12, 0xb5, 0xd1, 0x72, 0x08, 0x37, 0xac,
- 0x9a, 0x4b, 0x92, 0xde, 0x38, 0xeb, 0x7d, 0xc9, 0xd3, 0x70, 0x7a, 0x55, 0x68, 0x66, 0x95, 0x98,
- 0xc6, 0x00, 0xd2, 0xe4, 0x7d, 0xcf, 0xdd, 0x47, 0x89, 0x60, 0x5a, 0x93, 0xeb, 0x36, 0x8e, 0x77,
- 0xec, 0x4c, 0x7c, 0xd3, 0xa1, 0xa7, 0x6b, 0x4a, 0x93, 0xc7, 0x90, 0xe6, 0x1f, 0x66, 0x23, 0xe7,
- 0xa9, 0x02, 0x85, 0x63, 0x33, 0xb0, 0xfb, 0xea, 0x74, 0xd3, 0x46, 0x8f, 0x3a, 0xdd, 0xa4, 0x67,
- 0x79, 0x2c, 0x8b, 0x7e, 0x50, 0x20, 0x74, 0xc2, 0x26, 0xbe, 0x35, 0xc5, 0xf2, 0xa8, 0x02, 0x42,
- 0x49, 0x52, 0x55, 0x41, 0x44, 0x4a, 0xe1, 0x37, 0x2b, 0xaa, 0xb7, 0x24, 0x47, 0x9a, 0x8e, 0x18,
- 0x56, 0x46, 0x1c, 0xd7, 0x93, 0x42, 0x05, 0x1f, 0x49, 0xee, 0x19, 0x20, 0x9b, 0xf0, 0x1a, 0x00,
- 0xab, 0xa2, 0x63, 0x12, 0x32, 0x55, 0x11, 0xc3, 0x80, 0xdc, 0xb6, 0x65, 0xdc, 0xf7, 0xe9, 0x07,
- 0xac, 0x86, 0x3d, 0x8a, 0x2f, 0x63, 0xb1, 0x15, 0xe4, 0x6a, 0x52, 0xad, 0xca, 0x2a, 0xfe, 0x3c,
- 0xa3, 0x0a, 0x16, 0x86, 0x6f, 0xb5, 0x50, 0x2f, 0xad, 0x61, 0xcf, 0x22, 0x43, 0x87, 0x71, 0xf4,
- 0xbb, 0xc6, 0x26, 0x3a, 0x41, 0xf6, 0xd8, 0x74, 0x25, 0xbb, 0x86, 0x43, 0x1d, 0x5b, 0x27, 0xec,
- 0x3a, 0x92, 0xf4, 0x87, 0xa6, 0x64, 0x37, 0x10, 0x07, 0x7f, 0x6d, 0x09, 0x1f, 0x25, 0x85, 0xdd,
- 0x44, 0x1c, 0x69, 0x0e, 0xd8, 0xad, 0xe6, 0x6f, 0xc6, 0x15, 0xcf, 0x6f, 0x44, 0xee, 0xc9, 0x22,
- 0xdb, 0x07, 0x1d, 0x98, 0x79, 0x7b, 0xb9, 0x0d, 0x6b, 0xbe, 0xf8, 0xc1, 0xc4, 0x4e, 0xdd, 0x03,
- 0xc8, 0x5d, 0x5d, 0x68, 0x32, 0x4b, 0xd1, 0x3c, 0x83, 0xb5, 0xb0, 0xf1, 0xcc, 0x96, 0x43, 0x8a,
- 0x14, 0xf1, 0xb7, 0x12, 0x17, 0x15, 0x32, 0x73, 0x2f, 0x78, 0x45, 0x2c, 0xe3, 0x8b, 0x09, 0x51,
- 0x26, 0x20, 0xbb, 0x40, 0x26, 0xa0, 0xf9, 0xbf, 0x92, 0xa9, 0x65, 0xe5, 0xb0, 0x59, 0x91, 0xc3,
- 0x36, 0x9b, 0x6a, 0x8e, 0x83, 0xfb, 0xd9, 0x97, 0x09, 0xee, 0xcf, 0x2b, 0xdb, 0x78, 0x1f, 0xfd,
- 0x07, 0xda, 0x99, 0x4f, 0x17, 0x48, 0x5c, 0xa4, 0x70, 0xf9, 0x06, 0x25, 0x8e, 0xcd, 0xae, 0xaa,
- 0x29, 0x2a, 0xcc, 0xbd, 0x36, 0x94, 0xcc, 0x10, 0x6b, 0x4c, 0x23, 0x41, 0x95, 0xd0, 0x63, 0xc5,
- 0x79, 0x7a, 0x0c, 0x7d, 0x67, 0xad, 0xe1, 0xa2, 0xb6, 0xca, 0xf3, 0xa8, 0xdf, 0x21, 0x7b, 0xda,
- 0xe3, 0x65, 0x63, 0x06, 0x8e, 0xc6, 0xde, 0x68, 0xe2, 0x48, 0x5b, 0xa7, 0x32, 0x54, 0x63, 0xfa,
- 0x5e, 0x63, 0x65, 0xf6, 0x5e, 0xe3, 0x87, 0x00, 0x81, 0xc0, 0xdd, 0xb1, 0x65, 0xf7, 0xa5, 0xae,
- 0x3c, 0xba, 0x73, 0xd9, 0xd8, 0x74, 0x02, 0x26, 0x41, 0x81, 0xfd, 0x1f, 0x99, 0xe7, 0x94, 0x94,
- 0xd5, 0x25, 0x12, 0x51, 0x7b, 0x5a, 0xbb, 0xaf, 0xcc, 0x6a, 0xf7, 0xb7, 0xa0, 0x10, 0xa0, 0x09,
- 0x4d, 0x57, 0x73, 0x2e, 0x5f, 0xdf, 0x75, 0xb2, 0xb3, 0x0d, 0x85, 0x4b, 0x21, 0x49, 0xd4, 0x7f,
- 0x9e, 0x4f, 0x97, 0x72, 0x2a, 0x46, 0xd8, 0x4c, 0x69, 0xd8, 0x9b, 0x69, 0x0d, 0xdb, 0xb0, 0xa0,
- 0xa8, 0xd3, 0x0b, 0xd3, 0x81, 0x82, 0x30, 0x30, 0x99, 0x4d, 0x04, 0x26, 0xa3, 0xfa, 0xd6, 0x5c,
- 0xb2, 0xbe, 0x75, 0xea, 0xde, 0x5e, 0x61, 0xe6, 0xde, 0x5e, 0xf3, 0x13, 0x28, 0x28, 0x9f, 0x00,
- 0x42, 0x73, 0x54, 0x99, 0xb2, 0x38, 0x28, 0x96, 0xe1, 0xd7, 0x81, 0x05, 0x82, 0x6c, 0x1d, 0xd1,
- 0x35, 0x47, 0x82, 0x94, 0x64, 0x96, 0xd7, 0xe1, 0xba, 0xc2, 0x0d, 0xd2, 0x4f, 0xc8, 0xe0, 0x72,
- 0xec, 0x63, 0xdf, 0xf4, 0x2f, 0x58, 0xbe, 0xf9, 0x21, 0x25, 0xf7, 0x43, 0x81, 0xaa, 0x46, 0xf7,
- 0x24, 0x95, 0x5a, 0xb6, 0xb4, 0xf6, 0xa1, 0xda, 0x10, 0xed, 0xed, 0xa9, 0x8a, 0x39, 0x72, 0xa7,
- 0x28, 0x1e, 0xb4, 0x9c, 0x3c, 0xe3, 0xff, 0xd4, 0xf6, 0x5b, 0x73, 0x23, 0x61, 0x31, 0xa6, 0x4b,
- 0xe0, 0x32, 0x8b, 0x96, 0xc0, 0x35, 0x1f, 0xc3, 0xaa, 0x91, 0xd6, 0xe9, 0xfc, 0x3d, 0x28, 0x79,
- 0xe3, 0x24, 0x9f, 0x17, 0xc9, 0x65, 0x88, 0xde, 0xfc, 0x59, 0x06, 0x96, 0x3b, 0xae, 0x14, 0xbe,
- 0x6b, 0x3a, 0xdb, 0x8e, 0x39, 0xe0, 0xef, 0x86, 0x5a, 0x6a, 0x7e, 0xec, 0x21, 0x89, 0x9b, 0x56,
- 0x58, 0x8e, 0x0e, 0xa3, 0xf3, 0x1b, 0xb0, 0x26, 0x2c, 0x5b, 0x7a, 0xbe, 0xb2, 0x93, 0xc3, 0x4a,
- 0xc5, 0xeb, 0xc0, 0x14, 0xb8, 0x4b, 0x5b, 0xa2, 0xa7, 0x96, 0xb9, 0x0e, 0xd7, 0x53, 0xd0, 0xd0,
- 0x08, 0xce, 0xf2, 0xdb, 0x50, 0x8f, 0x4f, 0xa3, 0x2d, 0xcf, 0x95, 0x1d, 0xd7, 0x12, 0xe7, 0x64,
- 0x64, 0xb1, 0x5c, 0xf3, 0x37, 0x22, 0xf3, 0xee, 0xa9, 0xae, 0x63, 0xf4, 0x3d, 0x2f, 0xbe, 0x24,
- 0xab, 0x5b, 0x89, 0xcb, 0xd8, 0xd9, 0x05, 0x2e, 0x63, 0x7f, 0x18, 0x5f, 0xa8, 0x55, 0x07, 0xc5,
- 0x2b, 0x73, 0x4f, 0x1f, 0x2a, 0xbf, 0xd2, 0xd6, 0x7d, 0x57, 0x24, 0x6e, 0xd7, 0xbe, 0xa9, 0x5d,
- 0xba, 0xfc, 0x22, 0x56, 0xb0, 0xaa, 0x54, 0x78, 0x67, 0xfa, 0x16, 0xc7, 0x62, 0x65, 0x90, 0x33,
- 0x86, 0x2a, 0xbc, 0xb4, 0xa1, 0xfa, 0xed, 0x29, 0xef, 0xa9, 0x3c, 0x37, 0x1c, 0x77, 0xc5, 0x1d,
- 0xd5, 0x6f, 0x43, 0x69, 0x68, 0x07, 0xd2, 0xf3, 0xd5, 0xbd, 0xe9, 0xd9, 0x7b, 0x5e, 0x89, 0xd9,
- 0xda, 0x51, 0x88, 0x54, 0xb3, 0x16, 0x52, 0xf1, 0xef, 0xc1, 0x1a, 0x4d, 0xfc, 0x61, 0x6c, 0x35,
- 0x04, 0xf5, 0xea, 0xdc, 0x5a, 0xc1, 0x04, 0xab, 0x8d, 0x29, 0x12, 0x63, 0x96, 0x49, 0x63, 0x00,
- 0x10, 0xaf, 0xcf, 0x8c, 0x16, 0xfb, 0x0c, 0xf7, 0xa6, 0x6f, 0x42, 0x31, 0x98, 0x1c, 0xc7, 0xf9,
- 0x36, 0xdd, 0x6a, 0x9c, 0x43, 0x63, 0xc6, 0x3a, 0x38, 0x14, 0xbe, 0xea, 0xee, 0x95, 0x97, 0xb7,
- 0x3f, 0x4c, 0x2e, 0xbc, 0x12, 0xce, 0xbb, 0x97, 0xac, 0x5e, 0xc4, 0x39, 0x21, 0x01, 0x8d, 0x77,
- 0xa0, 0x9a, 0x98, 0x54, 0xd4, 0xcc, 0x13, 0xd7, 0xf2, 0xc2, 0x10, 0x30, 0xfe, 0x56, 0x97, 0xd7,
- 0xac, 0x30, 0x08, 0x4c, 0xbf, 0x1b, 0x06, 0xb0, 0xe9, 0x09, 0xbc, 0xc2, 0xc3, 0x7e, 0x05, 0x6a,
- 0x09, 0x93, 0x2e, 0x0a, 0x0f, 0xa6, 0x81, 0xcd, 0x33, 0xf8, 0x7c, 0x82, 0xdd, 0xa1, 0xf0, 0x47,
- 0x76, 0x80, 0x07, 0x89, 0x72, 0x16, 0xc9, 0xb4, 0xb6, 0x84, 0x2b, 0x6d, 0x19, 0x6a, 0xd0, 0xa8,
- 0xcd, 0xbf, 0x09, 0x85, 0xb1, 0xf0, 0x47, 0x81, 0xd6, 0xa2, 0xd3, 0x12, 0x34, 0x97, 0x6d, 0x60,
- 0x28, 0x9a, 0xe6, 0x3f, 0xcc, 0x40, 0x79, 0x4f, 0x48, 0x13, 0x6d, 0x07, 0xbe, 0x37, 0xf5, 0x96,
- 0xd9, 0x1c, 0x71, 0x88, 0xba, 0xae, 0xdd, 0xd7, 0xf5, 0x8e, 0xc6, 0xd7, 0xed, 0x9d, 0xa5, 0xb8,
- 0x63, 0x8d, 0x0d, 0x28, 0x69, 0x70, 0xe3, 0x5d, 0x58, 0x9d, 0xc2, 0xa4, 0x79, 0x51, 0xb6, 0x7d,
- 0xf7, 0x62, 0x14, 0x16, 0x32, 0x2d, 0x1b, 0x69, 0xe0, 0x46, 0x05, 0x4a, 0x63, 0x45, 0xd0, 0xfc,
- 0xc3, 0x1b, 0x54, 0x3e, 0x63, 0x9f, 0xa0, 0x4f, 0x3f, 0xef, 0x64, 0xbd, 0x03, 0x40, 0x47, 0xb3,
- 0x2a, 0xb2, 0x50, 0x21, 0xdb, 0x04, 0x84, 0xbf, 0x1f, 0xc5, 0xda, 0xf3, 0x73, 0x8d, 0xaa, 0x24,
- 0xf3, 0xe9, 0x80, 0x7b, 0x1d, 0x4a, 0x76, 0x40, 0x71, 0x38, 0x5d, 0x98, 0x14, 0x36, 0xf9, 0xb7,
- 0xa0, 0x68, 0x8f, 0xc6, 0x9e, 0x2f, 0x75, 0x30, 0xfe, 0x4a, 0xae, 0x1d, 0xc2, 0xdc, 0x59, 0x32,
- 0x34, 0x0d, 0x52, 0x8b, 0x73, 0xa2, 0x2e, 0xbf, 0x98, 0xba, 0x7d, 0x1e, 0x52, 0x2b, 0x1a, 0xfe,
- 0x5d, 0xa8, 0x0d, 0x54, 0x5d, 0xa6, 0x62, 0xac, 0x95, 0xc8, 0x57, 0xae, 0x62, 0xf2, 0x28, 0x49,
- 0xb0, 0xb3, 0x64, 0xa4, 0x39, 0x20, 0x4b, 0x34, 0xe0, 0x45, 0x20, 0x7b, 0xde, 0x47, 0x9e, 0xed,
- 0x92, 0xbb, 0xfb, 0x02, 0x96, 0x46, 0x92, 0x00, 0x59, 0xa6, 0x38, 0xf0, 0xaf, 0xa3, 0xc5, 0x13,
- 0x48, 0x7d, 0x75, 0xfd, 0xee, 0x55, 0x9c, 0x7a, 0x22, 0xd0, 0x97, 0xce, 0x03, 0xc9, 0xcf, 0xa1,
- 0x91, 0xd8, 0x24, 0xfa, 0x25, 0xad, 0xf1, 0xd8, 0xf7, 0xd0, 0x67, 0xae, 0x11, 0xb7, 0xaf, 0x5f,
- 0xc5, 0xed, 0xf0, 0x52, 0xea, 0x9d, 0x25, 0xe3, 0x0a, 0xde, 0xbc, 0x87, 0x9e, 0x9d, 0x1e, 0xc2,
- 0xae, 0x30, 0xcf, 0xc2, 0x8b, 0xef, 0xf7, 0x17, 0x9a, 0x05, 0xa2, 0xd8, 0x59, 0x32, 0xa6, 0x78,
- 0xf0, 0x5f, 0x85, 0xb5, 0xd4, 0x3b, 0xe9, 0xae, 0xab, 0xba, 0x16, 0xff, 0xb5, 0x85, 0x87, 0x81,
- 0x44, 0x3b, 0x4b, 0xc6, 0x2c, 0x27, 0x3e, 0x81, 0xcf, 0xcd, 0x0e, 0x69, 0x4b, 0xf4, 0x1d, 0xdb,
- 0x15, 0xfa, 0x06, 0xfd, 0x3b, 0x2f, 0x37, 0x5b, 0x9a, 0x78, 0x67, 0xc9, 0xb8, 0x9c, 0x33, 0xff,
- 0x8b, 0x70, 0x7b, 0x3c, 0x57, 0xc5, 0x28, 0xd5, 0xa5, 0x2f, 0xe0, 0xbf, 0xb7, 0xe0, 0x9b, 0x67,
- 0xe8, 0x77, 0x96, 0x8c, 0x2b, 0xf9, 0xa3, 0xed, 0x4c, 0x1e, 0xb4, 0x2e, 0x1f, 0x57, 0x0d, 0x7e,
- 0x1b, 0x2a, 0x66, 0xdf, 0xd9, 0x11, 0xa6, 0x15, 0xe5, 0x0b, 0x62, 0x40, 0xe3, 0xbf, 0x65, 0xa0,
- 0xa8, 0xe5, 0xfd, 0x76, 0x54, 0x13, 0x10, 0xa9, 0xee, 0x18, 0xc0, 0x3f, 0x80, 0x8a, 0xf0, 0x7d,
- 0xcf, 0xdf, 0xf4, 0xac, 0xb0, 0x9c, 0x72, 0x3a, 0xca, 0xac, 0xf8, 0xac, 0xb7, 0x43, 0x34, 0x23,
- 0xa6, 0xe0, 0xef, 0x03, 0xa8, 0x7d, 0xde, 0x8b, 0x6f, 0x01, 0x35, 0xe6, 0xd3, 0xab, 0x14, 0x54,
- 0x8c, 0x1d, 0x87, 0xe5, 0xc2, 0xfc, 0x4f, 0xd8, 0x8c, 0x1c, 0xce, 0x42, 0xc2, 0xe1, 0xbc, 0xad,
- 0xe3, 0x08, 0x14, 0x5e, 0xd1, 0x77, 0xe1, 0x22, 0x40, 0xe3, 0x0f, 0x32, 0x50, 0x54, 0xca, 0x83,
- 0xb7, 0x67, 0x47, 0xf4, 0xda, 0x8b, 0x75, 0xce, 0xfa, 0xf4, 0xc8, 0xbe, 0x05, 0xa0, 0x74, 0x50,
- 0x62, 0x64, 0xb7, 0xa7, 0xf8, 0x68, 0xd2, 0xb0, 0x80, 0x39, 0xc6, 0x6f, 0x3e, 0x54, 0xf7, 0xb5,
- 0x28, 0x24, 0xfc, 0x64, 0x77, 0x97, 0x2d, 0xf1, 0x35, 0xa8, 0x3d, 0xd9, 0x7f, 0xbc, 0x7f, 0xf0,
- 0x6c, 0xff, 0xa8, 0x6d, 0x18, 0x07, 0x86, 0x8a, 0x0c, 0x6f, 0xb4, 0xb6, 0x8e, 0x3a, 0xfb, 0x87,
- 0x4f, 0x7a, 0x2c, 0xdb, 0xf8, 0x67, 0x19, 0xa8, 0xa5, 0x74, 0xd7, 0x9f, 0xed, 0xd2, 0x25, 0xa6,
- 0x3f, 0x37, 0x7f, 0xfa, 0xf3, 0x97, 0x4d, 0x7f, 0x61, 0x7a, 0xfa, 0x7f, 0x27, 0x03, 0xb5, 0x94,
- 0x8e, 0x4c, 0x72, 0xcf, 0xa4, 0xb9, 0x27, 0x4f, 0xfa, 0xec, 0xd4, 0x49, 0xdf, 0x84, 0xe5, 0xf0,
- 0xf7, 0x7e, 0x1c, 0x71, 0x48, 0xc1, 0x92, 0x38, 0x74, 0x61, 0x22, 0x9f, 0xc6, 0xa1, 0x4b, 0x13,
- 0x57, 0xf7, 0x96, 0x2e, 0x88, 0x06, 0x74, 0x7f, 0xbe, 0x71, 0xb9, 0x06, 0xbd, 0x62, 0x08, 0x8f,
- 0xa0, 0x3a, 0x8e, 0xb7, 0xe9, 0xcb, 0x99, 0x25, 0x49, 0xca, 0x17, 0xf4, 0xf3, 0x77, 0x33, 0xb0,
- 0x92, 0xd6, 0xb9, 0xff, 0x4f, 0x4f, 0xeb, 0x3f, 0xc9, 0xc0, 0xda, 0x8c, 0x26, 0xbf, 0xd2, 0xb0,
- 0x9b, 0xee, 0x57, 0x76, 0x81, 0x7e, 0xe5, 0xe6, 0xf4, 0xeb, 0x72, 0x4d, 0x72, 0x75, 0x8f, 0xbb,
- 0xf0, 0xb9, 0x4b, 0xcf, 0x84, 0x2b, 0xa6, 0x3a, 0xc5, 0x34, 0x37, 0xcd, 0xf4, 0xb7, 0x33, 0x70,
- 0xfb, 0x2a, 0x7d, 0xff, 0x7f, 0x5d, 0xae, 0xa6, 0x7b, 0xd8, 0x7c, 0x37, 0x2a, 0x24, 0xa8, 0x42,
- 0x49, 0x7f, 0x97, 0x4a, 0x97, 0x6a, 0x0f, 0xbd, 0xe7, 0xae, 0x8a, 0x44, 0x1b, 0xc2, 0xd4, 0x37,
- 0xf7, 0x0d, 0x31, 0x76, 0x6c, 0xca, 0x91, 0xde, 0x02, 0x68, 0x91, 0x5f, 0x17, 0x5e, 0xa4, 0xd9,
- 0xdc, 0x3d, 0xe8, 0xb6, 0xd9, 0x52, 0xd2, 0x88, 0xfd, 0x24, 0x54, 0xc4, 0xcd, 0x43, 0x28, 0xc6,
- 0x57, 0x1b, 0xf6, 0x4c, 0xff, 0xd4, 0x52, 0x99, 0xc8, 0x65, 0x28, 0x1f, 0x6a, 0x17, 0x4a, 0xbd,
- 0xea, 0xa3, 0xee, 0xc1, 0xbe, 0x0a, 0x7a, 0x6f, 0x1d, 0xf4, 0xd4, 0x05, 0x89, 0xee, 0xd3, 0x47,
- 0x2a, 0x25, 0xf6, 0xc8, 0x68, 0x1d, 0xee, 0x1c, 0x11, 0x46, 0xa1, 0xf9, 0x5b, 0xf9, 0xf0, 0x54,
- 0x6b, 0x1a, 0x3a, 0xc7, 0x09, 0x50, 0x44, 0x6d, 0xee, 0x69, 0xc6, 0xd1, 0x6b, 0xa8, 0xa8, 0xb7,
- 0x7d, 0xae, 0xe2, 0x10, 0x2c, 0xcb, 0x8b, 0x90, 0x3d, 0x3c, 0x56, 0x95, 0x48, 0x3b, 0x72, 0xe4,
- 0xa8, 0x9b, 0x95, 0xbd, 0x73, 0xc9, 0x0a, 0xf8, 0x63, 0x33, 0x38, 0x63, 0xc5, 0xe6, 0x3f, 0xcf,
- 0x41, 0x25, 0x52, 0x95, 0x2f, 0xa3, 0xba, 0x39, 0x87, 0x95, 0xce, 0x7e, 0xaf, 0x6d, 0xec, 0xb7,
- 0x76, 0x35, 0x4a, 0x8e, 0x5f, 0x83, 0xd5, 0xed, 0xce, 0x6e, 0xfb, 0x68, 0xf7, 0xa0, 0xb5, 0xa5,
- 0x81, 0x65, 0x7e, 0x13, 0x78, 0x67, 0xef, 0xf0, 0xc0, 0xe8, 0x1d, 0x75, 0xba, 0x47, 0x9b, 0xad,
- 0xfd, 0xcd, 0xf6, 0x6e, 0x7b, 0x8b, 0x15, 0xf9, 0x2b, 0x70, 0x77, 0xff, 0xa0, 0xd7, 0x39, 0xd8,
- 0x3f, 0xda, 0x3f, 0x38, 0x3a, 0xd8, 0xf8, 0xa8, 0xbd, 0xd9, 0xeb, 0x1e, 0x75, 0xf6, 0x8f, 0x90,
- 0xeb, 0x23, 0xa3, 0x85, 0x4f, 0x58, 0x81, 0xdf, 0x85, 0xdb, 0x1a, 0xab, 0xdb, 0x36, 0x9e, 0xb6,
- 0x0d, 0x64, 0xf2, 0x64, 0xbf, 0xf5, 0xb4, 0xd5, 0xd9, 0x6d, 0x6d, 0xec, 0xb6, 0xd9, 0x32, 0xbf,
- 0x03, 0x0d, 0x8d, 0x61, 0xb4, 0x7a, 0xed, 0xa3, 0xdd, 0xce, 0x5e, 0xa7, 0x77, 0xd4, 0xfe, 0xde,
- 0x66, 0xbb, 0xbd, 0xd5, 0xde, 0x62, 0x35, 0xfe, 0x15, 0xf8, 0x32, 0x75, 0x4a, 0x77, 0x22, 0xfd,
- 0xb2, 0x4f, 0x3a, 0x87, 0x47, 0x2d, 0x63, 0x73, 0xa7, 0xf3, 0xb4, 0xcd, 0x56, 0xf8, 0x6b, 0xf0,
- 0xa5, 0xcb, 0x51, 0xb7, 0x3a, 0x46, 0x7b, 0xb3, 0x77, 0x60, 0x7c, 0xcc, 0xd6, 0xf8, 0x17, 0xe0,
- 0x73, 0x3b, 0xbd, 0xbd, 0xdd, 0xa3, 0x67, 0xc6, 0xc1, 0xfe, 0xa3, 0x23, 0xfa, 0xd9, 0xed, 0x19,
- 0x4f, 0x36, 0x7b, 0x4f, 0x8c, 0x36, 0x03, 0xde, 0x80, 0x9b, 0x87, 0x1b, 0x47, 0xfb, 0x07, 0xbd,
- 0xa3, 0xd6, 0xfe, 0xc7, 0x1b, 0xbb, 0x07, 0x9b, 0x8f, 0x8f, 0xb6, 0x0f, 0x8c, 0xbd, 0x56, 0x8f,
- 0x55, 0xf9, 0x57, 0xe1, 0xb5, 0xcd, 0xee, 0x53, 0xdd, 0xcd, 0x83, 0xed, 0x23, 0xe3, 0xe0, 0x59,
- 0xf7, 0xe8, 0xc0, 0x38, 0x32, 0xda, 0xbb, 0x34, 0xe6, 0x6e, 0xdc, 0xf7, 0x12, 0xbf, 0x0d, 0xf5,
- 0xce, 0x7e, 0xf7, 0xc9, 0xf6, 0x76, 0x67, 0xb3, 0xd3, 0xde, 0xef, 0x1d, 0x1d, 0xb6, 0x8d, 0xbd,
- 0x4e, 0xb7, 0x8b, 0x68, 0xac, 0xd2, 0xfc, 0x0e, 0x14, 0x3b, 0xee, 0x99, 0x2d, 0x69, 0x7f, 0x69,
- 0x61, 0xd4, 0x1e, 0x57, 0xd8, 0xa4, 0x6d, 0x61, 0x0f, 0x5c, 0xfa, 0x62, 0x00, 0xed, 0xae, 0x65,
- 0x23, 0x06, 0x34, 0xff, 0x20, 0x07, 0x35, 0xc5, 0x22, 0xf4, 0xe0, 0xee, 0xc1, 0xaa, 0x0e, 0x85,
- 0x76, 0xd2, 0x2a, 0x6c, 0x1a, 0x4c, 0x9f, 0xe2, 0x52, 0xa0, 0x84, 0x22, 0x4b, 0x82, 0xf8, 0x4d,
- 0x28, 0x9a, 0x7d, 0x07, 0xdd, 0x40, 0x95, 0xaf, 0xd4, 0xad, 0xcf, 0xaa, 0xbb, 0x50, 0x2f, 0x2a,
- 0xc4, 0xbe, 0xe7, 0x6e, 0x46, 0x97, 0x46, 0x52, 0x30, 0xfe, 0x09, 0xdc, 0x8a, 0xda, 0x6d, 0xb7,
- 0xef, 0x5f, 0x8c, 0xa3, 0x6f, 0xe5, 0x95, 0xe6, 0x06, 0x13, 0xb6, 0x6d, 0x47, 0xa4, 0x10, 0x8d,
- 0xcb, 0x18, 0xf0, 0x47, 0x00, 0x36, 0x4d, 0x16, 0xd9, 0x47, 0xf3, 0x6f, 0x46, 0xa7, 0x66, 0x53,
- 0xb7, 0xb4, 0x19, 0x18, 0xfd, 0xc6, 0x03, 0x62, 0x80, 0x7a, 0xf7, 0xb1, 0xfe, 0xb4, 0xde, 0xb2,
- 0x11, 0xb5, 0x9b, 0x0f, 0x00, 0x62, 0x2a, 0xce, 0x60, 0x19, 0x6d, 0x8b, 0x56, 0xb0, 0x27, 0x46,
- 0xc7, 0xc2, 0x57, 0x55, 0x7c, 0x0a, 0xf2, 0x08, 0x29, 0x58, 0xa6, 0xf9, 0x47, 0x99, 0x84, 0x1f,
- 0xae, 0xfc, 0xec, 0x2b, 0x4f, 0xa0, 0x79, 0x39, 0x21, 0xf4, 0x84, 0xf5, 0xa4, 0x6a, 0xc3, 0x48,
- 0x37, 0xf9, 0x21, 0x70, 0x7b, 0x76, 0x2a, 0xf3, 0x0b, 0x4e, 0xe5, 0x1c, 0xda, 0xe9, 0x90, 0x7e,
- 0x61, 0x36, 0xa4, 0x7f, 0x07, 0x60, 0xe0, 0x78, 0xc7, 0x3a, 0xaf, 0x58, 0xd4, 0x75, 0x3f, 0x11,
- 0xa4, 0xe9, 0x40, 0x39, 0xfc, 0x4e, 0x20, 0xca, 0x18, 0x7d, 0x29, 0x30, 0x0a, 0x70, 0xaa, 0x16,
- 0xdf, 0x81, 0x15, 0x91, 0xee, 0x73, 0x76, 0xc1, 0x3e, 0x4f, 0xd1, 0x35, 0xbf, 0x01, 0x6b, 0x33,
- 0x48, 0x38, 0x89, 0x63, 0x53, 0x46, 0x1f, 0x0b, 0xc0, 0xdf, 0xb3, 0xe9, 0xfa, 0xe6, 0xbf, 0xcf,
- 0xc2, 0xf2, 0x9e, 0xe9, 0xda, 0x27, 0x22, 0x90, 0x61, 0x6f, 0x83, 0xfe, 0x50, 0x8c, 0xcc, 0xb0,
- 0xb7, 0xaa, 0xa5, 0xa3, 0x1e, 0xd9, 0x64, 0x3e, 0x61, 0x26, 0xfd, 0x84, 0xbb, 0x69, 0x22, 0x87,
- 0x51, 0xfd, 0xbc, 0x6e, 0xe1, 0xda, 0x39, 0x76, 0x5f, 0xb8, 0x41, 0xb8, 0x63, 0xc2, 0x66, 0x5c,
- 0xbd, 0x53, 0xbc, 0xa2, 0x7a, 0xa7, 0x34, 0x3b, 0xff, 0x77, 0xa1, 0x1a, 0xf4, 0x7d, 0x21, 0xdc,
- 0x60, 0xe8, 0xc9, 0xf0, 0x1b, 0x93, 0x49, 0x10, 0x95, 0xd2, 0x79, 0xcf, 0x5d, 0x94, 0xf1, 0x5d,
- 0xdb, 0x3d, 0xd5, 0x15, 0x62, 0x29, 0x18, 0xca, 0x20, 0xc5, 0x7c, 0xec, 0x1f, 0x0a, 0x8a, 0x37,
- 0x14, 0x8c, 0xa8, 0x4d, 0x51, 0x1d, 0x53, 0x8a, 0x81, 0xe7, 0xdb, 0x42, 0x85, 0x36, 0x2b, 0x46,
- 0x02, 0x82, 0xb4, 0x8e, 0xe9, 0x0e, 0x26, 0xe6, 0x40, 0xe8, 0xf4, 0x77, 0xd4, 0x6e, 0xfe, 0xf7,
- 0x02, 0x80, 0xda, 0x0d, 0xc1, 0xd0, 0x1e, 0x53, 0xea, 0xc5, 0xd6, 0x55, 0xc3, 0x35, 0x83, 0x7e,
- 0xf3, 0xf7, 0x52, 0x05, 0xfd, 0xb3, 0xc9, 0xd2, 0x98, 0x7c, 0x3a, 0x24, 0x84, 0x93, 0x63, 0x4a,
- 0xa1, 0x0b, 0xa7, 0x68, 0xfe, 0xf3, 0x46, 0x12, 0x44, 0xa5, 0x73, 0xa6, 0x14, 0x6d, 0xd7, 0x52,
- 0x21, 0xa7, 0xbc, 0x11, 0xb5, 0xe9, 0x4a, 0x50, 0xd0, 0x9a, 0x48, 0xcf, 0x10, 0xae, 0x78, 0x1e,
- 0xdd, 0x76, 0x8b, 0x41, 0x7c, 0x0f, 0x6a, 0x63, 0xf3, 0x62, 0x24, 0x5c, 0xb9, 0x27, 0xe4, 0xd0,
- 0xb3, 0x74, 0x95, 0xd3, 0x6b, 0x97, 0x77, 0xf0, 0x30, 0x89, 0x6e, 0xa4, 0xa9, 0x51, 0x26, 0xdc,
- 0x80, 0x76, 0x89, 0x5a, 0x46, 0xdd, 0xe2, 0x1b, 0x00, 0xea, 0x57, 0x42, 0x53, 0xcd, 0x44, 0xa1,
- 0xcc, 0x91, 0x08, 0x84, 0x7f, 0x66, 0x2b, 0xed, 0xaa, 0x94, 0x54, 0x4c, 0x85, 0xba, 0x78, 0x12,
- 0x08, 0xbf, 0x3d, 0x32, 0x6d, 0x47, 0x2f, 0x70, 0x0c, 0xe0, 0x6f, 0xc3, 0x8d, 0x60, 0x72, 0x8c,
- 0x32, 0x73, 0x2c, 0x7a, 0xde, 0xbe, 0x78, 0x1e, 0x38, 0x42, 0x4a, 0xe1, 0xeb, 0x4a, 0x8a, 0xf9,
- 0x0f, 0x9b, 0x83, 0xc8, 0x0c, 0xa3, 0xef, 0x99, 0xe0, 0xaf, 0xb8, 0x5c, 0x2b, 0x02, 0xe9, 0x5a,
- 0x36, 0x96, 0x41, 0xf5, 0xa7, 0x40, 0xba, 0xd4, 0x2d, 0xcb, 0xbf, 0x0c, 0x5f, 0x4c, 0x21, 0x19,
- 0x2a, 0x31, 0x1d, 0x6c, 0xdb, 0xae, 0xe9, 0xd8, 0x3f, 0x54, 0x65, 0x02, 0xb9, 0xe6, 0x18, 0x6a,
- 0xa9, 0x89, 0xa3, 0xeb, 0x99, 0xf4, 0x4b, 0xd7, 0xfb, 0x30, 0x58, 0x56, 0xed, 0xae, 0xf4, 0x6d,
- 0xca, 0xb8, 0x44, 0x90, 0x4d, 0xdc, 0xe7, 0x1e, 0xcb, 0xf2, 0xeb, 0xc0, 0x14, 0xa4, 0xe3, 0x9a,
- 0xe3, 0x71, 0x6b, 0x3c, 0x76, 0x04, 0xcb, 0xd1, 0xd5, 0xd7, 0x18, 0xaa, 0xca, 0xfa, 0x59, 0xbe,
- 0xf9, 0x3d, 0xb8, 0x45, 0x33, 0xf3, 0x54, 0xf8, 0x91, 0xa3, 0xad, 0xc7, 0x7a, 0x03, 0xd6, 0xd4,
- 0xaf, 0x7d, 0x4f, 0xaa, 0xc7, 0x64, 0x7c, 0x72, 0x58, 0x51, 0x60, 0xb4, 0xbd, 0xba, 0x82, 0x2e,
- 0xb4, 0x46, 0xb0, 0x08, 0x2f, 0xdb, 0xfc, 0x59, 0x11, 0x78, 0x2c, 0x10, 0x3d, 0x5b, 0xf8, 0x5b,
- 0xa6, 0x34, 0x13, 0x91, 0xd2, 0xda, 0xa5, 0xb9, 0xfe, 0x17, 0x57, 0xea, 0xdd, 0x84, 0xa2, 0x1d,
- 0xa0, 0x6b, 0xa8, 0xcb, 0x75, 0x75, 0x8b, 0xef, 0x02, 0x8c, 0x85, 0x6f, 0x7b, 0x16, 0x49, 0x50,
- 0x61, 0xee, 0xbd, 0x8a, 0xd9, 0x4e, 0xad, 0x1f, 0x46, 0x34, 0x46, 0x82, 0x1e, 0xfb, 0xa1, 0x5a,
- 0x2a, 0x73, 0x5e, 0xa4, 0x4e, 0x27, 0x41, 0xfc, 0x0d, 0xb8, 0x36, 0xf6, 0xed, 0xbe, 0x50, 0xcb,
- 0xf1, 0x24, 0xb0, 0x36, 0xe9, 0x2b, 0x80, 0x25, 0xc2, 0x9c, 0xf7, 0x08, 0x25, 0xd0, 0x74, 0xc9,
- 0x61, 0x0a, 0x28, 0x57, 0xac, 0xaf, 0x80, 0xab, 0x82, 0xd6, 0x9a, 0x31, 0xff, 0x21, 0xbf, 0x0f,
- 0x4c, 0x3f, 0xd8, 0xb3, 0xdd, 0x5d, 0xe1, 0x0e, 0xe4, 0x90, 0x84, 0xbb, 0x66, 0xcc, 0xc0, 0x49,
- 0x83, 0xa9, 0x6f, 0x2d, 0xa9, 0x3c, 0x52, 0xc5, 0x88, 0xda, 0xea, 0xb3, 0x02, 0x8e, 0xe7, 0x77,
- 0xa5, 0xaf, 0x2b, 0x73, 0xa3, 0x36, 0xda, 0x50, 0x01, 0xf5, 0xf5, 0xd0, 0xf7, 0xac, 0x09, 0x65,
- 0x39, 0x94, 0x12, 0x9b, 0x06, 0xc7, 0x98, 0x7b, 0xa6, 0xab, 0xcb, 0x25, 0x6b, 0x49, 0xcc, 0x08,
- 0x4c, 0x3e, 0xa1, 0x17, 0xc4, 0x0c, 0x57, 0xb5, 0x4f, 0x98, 0x80, 0x69, 0x9c, 0x98, 0x15, 0x8b,
- 0x70, 0x62, 0x3e, 0x34, 0x7e, 0xcb, 0xf7, 0x6c, 0x2b, 0xe6, 0xa5, 0x2a, 0x77, 0x66, 0xe0, 0x09,
- 0xdc, 0x98, 0x27, 0x4f, 0xe1, 0x46, 0xf0, 0xe6, 0x8f, 0x33, 0x00, 0xf1, 0xe2, 0xa3, 0xc8, 0xc7,
- 0xad, 0x78, 0x8b, 0xdf, 0x82, 0x6b, 0x49, 0xb0, 0xa3, 0x4b, 0x5e, 0x49, 0xee, 0xe3, 0x07, 0x5b,
- 0xe6, 0x45, 0xc0, 0xb2, 0xfa, 0x12, 0xb6, 0x86, 0x3d, 0x13, 0x82, 0xea, 0x07, 0xaf, 0x03, 0x8b,
- 0x81, 0x74, 0xb3, 0x2e, 0x60, 0xf9, 0x34, 0xea, 0xc7, 0xc2, 0xf4, 0x03, 0x56, 0x68, 0xee, 0x40,
- 0x51, 0x25, 0xbb, 0xe6, 0xa4, 0xa9, 0x5f, 0xae, 0xe6, 0xe4, 0xaf, 0x67, 0x00, 0xb6, 0x54, 0x7d,
- 0x34, 0x9e, 0xe2, 0x73, 0xb2, 0xff, 0xf3, 0x2c, 0x2a, 0xd3, 0xb2, 0xa8, 0xce, 0x3c, 0x17, 0x7d,
- 0xc1, 0x07, 0x9b, 0x28, 0x39, 0x66, 0x58, 0x23, 0xa6, 0xf6, 0x5c, 0xd4, 0x56, 0x07, 0xc8, 0xa6,
- 0xe7, 0xba, 0xa2, 0x8f, 0xc7, 0x4f, 0x74, 0x80, 0x44, 0xa0, 0xe6, 0x8f, 0xb2, 0x50, 0xd9, 0x1c,
- 0x9a, 0x52, 0x7d, 0xf0, 0xe6, 0x3b, 0x50, 0x1e, 0x89, 0x20, 0x30, 0x07, 0x22, 0xd0, 0xc9, 0x9d,
- 0xe9, 0xcc, 0x6c, 0x84, 0xbb, 0xfe, 0xc4, 0xf5, 0x85, 0x69, 0xa9, 0xaf, 0xfc, 0x44, 0x54, 0x8a,
- 0x83, 0x2b, 0x23, 0xe7, 0xfb, 0x25, 0x38, 0xb8, 0xd1, 0x27, 0x79, 0xad, 0xe3, 0xf8, 0x1b, 0xd0,
- 0x6a, 0xb4, 0x49, 0x50, 0x63, 0x0f, 0xaa, 0x09, 0x52, 0xfe, 0x0a, 0xd4, 0x3c, 0xc7, 0x12, 0x81,
- 0xba, 0xe7, 0x17, 0x7f, 0x1a, 0x31, 0x05, 0xa4, 0x12, 0x0d, 0xdc, 0xb9, 0xc2, 0xd7, 0x79, 0xba,
- 0xb0, 0xd9, 0xfc, 0x9f, 0x25, 0xa8, 0x62, 0xa7, 0xf6, 0xd4, 0x18, 0x66, 0x96, 0xa3, 0x0e, 0x25,
- 0x4f, 0x73, 0xd6, 0x17, 0x04, 0xbd, 0x04, 0x4f, 0x5d, 0xf6, 0x91, 0x4b, 0x97, 0x7d, 0xdc, 0x86,
- 0x8a, 0x4a, 0x2a, 0x59, 0x2d, 0xa5, 0x09, 0x73, 0x46, 0x0c, 0x40, 0x73, 0x65, 0xe4, 0x59, 0xa4,
- 0x8f, 0x5b, 0x2a, 0x1f, 0x93, 0x33, 0x12, 0x90, 0xe4, 0xe7, 0x9a, 0xaa, 0xe9, 0xcf, 0x35, 0x51,
- 0xfd, 0xcd, 0xd8, 0xb9, 0xe8, 0x79, 0xba, 0xb7, 0x1d, 0x2b, 0xbe, 0x67, 0x9d, 0x86, 0xf3, 0x4d,
- 0x28, 0xe9, 0x65, 0xd1, 0x59, 0xa7, 0xaf, 0xcc, 0x59, 0x09, 0x8d, 0xbe, 0xae, 0xff, 0xea, 0xab,
- 0x4e, 0x46, 0x48, 0xc9, 0x1f, 0x41, 0xd5, 0x94, 0xd2, 0xec, 0x0f, 0x47, 0x5a, 0x7f, 0xe6, 0xe6,
- 0x24, 0xa0, 0x93, 0x8c, 0x5a, 0x11, 0xb6, 0x91, 0xa4, 0xe4, 0x1b, 0x50, 0xf1, 0x85, 0x99, 0xca,
- 0x81, 0xbf, 0x72, 0x05, 0x1b, 0x23, 0xc4, 0x35, 0x62, 0xb2, 0xe8, 0x2b, 0xa1, 0x10, 0x7f, 0x25,
- 0xb4, 0xf1, 0xd3, 0x0c, 0xac, 0xa4, 0x3b, 0xff, 0x67, 0xf1, 0xd5, 0xba, 0x6f, 0xc5, 0x5f, 0xad,
- 0xfb, 0x0c, 0x5f, 0x80, 0xfb, 0xed, 0x0c, 0x40, 0x3c, 0x2f, 0x78, 0x46, 0xaa, 0xaf, 0x6b, 0x85,
- 0x56, 0xbb, 0x6a, 0xf1, 0x9d, 0xd4, 0x27, 0x19, 0xde, 0x5e, 0x68, 0x92, 0x13, 0x3f, 0x13, 0xe5,
- 0xeb, 0x0f, 0x60, 0x25, 0x0d, 0xa7, 0xb2, 0xff, 0xce, 0x6e, 0x5b, 0xc5, 0xa8, 0x3a, 0x7b, 0xad,
- 0x47, 0x6d, 0x7d, 0xdd, 0xac, 0xb3, 0xff, 0x98, 0x65, 0x1b, 0x7f, 0x9c, 0x81, 0x4a, 0x34, 0xe5,
- 0xfc, 0xbb, 0xc9, 0xb5, 0x52, 0x85, 0x2e, 0x6f, 0x2d, 0xb2, 0x56, 0xf1, 0xaf, 0xb6, 0x2b, 0xfd,
- 0x8b, 0xc4, 0xd2, 0x35, 0x3c, 0x58, 0x49, 0x3f, 0x9c, 0xa3, 0x44, 0x1f, 0xa5, 0x95, 0xe8, 0x9b,
- 0x0b, 0xbd, 0x32, 0x74, 0x55, 0x77, 0xed, 0x40, 0x6a, 0xfd, 0xfa, 0x7e, 0xf6, 0xbd, 0x4c, 0xe3,
- 0x2e, 0x2c, 0x27, 0x1f, 0xcd, 0xde, 0x29, 0xbd, 0xff, 0xc7, 0x39, 0x58, 0x49, 0xd7, 0x8a, 0xd0,
- 0x0d, 0x36, 0x55, 0xa7, 0x74, 0xe0, 0x58, 0x89, 0x8a, 0x7f, 0x86, 0x6e, 0xb2, 0x76, 0x86, 0x09,
- 0xb0, 0x46, 0x51, 0x30, 0x6f, 0x24, 0xd8, 0xdd, 0xe4, 0x97, 0x39, 0xdf, 0xe0, 0x10, 0xde, 0x2d,
- 0x64, 0x63, 0x5e, 0xd1, 0xdf, 0x28, 0xfb, 0x51, 0x96, 0xd7, 0x12, 0x75, 0xe7, 0x3f, 0x41, 0x4b,
- 0x70, 0x75, 0x63, 0xe2, 0x5a, 0x8e, 0xb0, 0x22, 0xe8, 0x4f, 0x93, 0xd0, 0xa8, 0x70, 0xfc, 0x47,
- 0x79, 0xbe, 0x02, 0x95, 0xee, 0xe4, 0x58, 0x17, 0x8d, 0xff, 0xa5, 0x3c, 0xbf, 0x09, 0x6b, 0x1a,
- 0x2b, 0xae, 0xd1, 0x64, 0x7f, 0x19, 0xcf, 0xac, 0x95, 0x96, 0x9a, 0x2f, 0xdd, 0x51, 0xf6, 0x57,
- 0xf2, 0xd8, 0x05, 0xba, 0xb2, 0xfe, 0x57, 0x89, 0x4f, 0x74, 0xc1, 0x87, 0xfd, 0x5a, 0x9e, 0xaf,
- 0x02, 0x74, 0x7b, 0xd1, 0x8b, 0x7e, 0x23, 0xcf, 0xab, 0x50, 0xec, 0xf6, 0x88, 0xdb, 0x8f, 0xf3,
- 0xfc, 0x06, 0xb0, 0xf8, 0xa9, 0xae, 0x5c, 0xfd, 0x1b, 0xaa, 0x33, 0x51, 0x29, 0xea, 0xdf, 0xcc,
- 0xe3, 0xb8, 0xc2, 0x59, 0x66, 0x7f, 0x2b, 0xcf, 0x19, 0x54, 0x13, 0xb1, 0x55, 0xf6, 0xb7, 0xf3,
- 0x9c, 0x43, 0x6d, 0xcf, 0x0e, 0x02, 0xdb, 0x1d, 0xe8, 0x11, 0xfc, 0x3a, 0xbd, 0x79, 0x3b, 0xba,
- 0xa3, 0xc4, 0x7e, 0x33, 0xcf, 0x6f, 0x01, 0x4f, 0xe6, 0x93, 0xf4, 0x83, 0xbf, 0x43, 0xd4, 0xea,
- 0x9c, 0x0c, 0x34, 0xec, 0xef, 0x12, 0x35, 0x4a, 0x82, 0x06, 0xfc, 0x16, 0x4d, 0xc8, 0x66, 0x5c,
- 0xeb, 0xaa, 0xe1, 0x3f, 0x21, 0xe2, 0x70, 0x31, 0x15, 0xec, 0xa7, 0xf9, 0xfb, 0x3f, 0xa3, 0x7c,
- 0x40, 0xb2, 0x64, 0x8c, 0x2f, 0x43, 0xd9, 0xf1, 0xdc, 0x81, 0x54, 0x5f, 0x44, 0xad, 0x41, 0x25,
- 0x18, 0x7a, 0xbe, 0xa4, 0x26, 0x5d, 0xa2, 0x74, 0xe9, 0x3a, 0xbd, 0xba, 0x76, 0xa0, 0xbc, 0x3a,
- 0x15, 0x5f, 0x95, 0xe6, 0x80, 0x55, 0xa3, 0x2a, 0xdd, 0x7c, 0x54, 0x49, 0x4c, 0xd7, 0xfa, 0xc3,
- 0x6b, 0xd3, 0xac, 0x88, 0xa8, 0x13, 0xdf, 0x51, 0x15, 0xc5, 0x02, 0x2d, 0x7a, 0xf5, 0xe9, 0xc3,
- 0xf1, 0x10, 0x1d, 0x87, 0x8a, 0x82, 0x7a, 0xdf, 0xb7, 0xd5, 0x85, 0x5c, 0x5d, 0xa0, 0x67, 0x61,
- 0x3f, 0xa2, 0x1a, 0x14, 0x26, 0xee, 0xff, 0xbd, 0x0c, 0x2c, 0x87, 0x97, 0xd9, 0xed, 0x81, 0xed,
- 0xaa, 0x9a, 0xe4, 0xf0, 0x3b, 0xb3, 0x7d, 0xc7, 0x1e, 0x87, 0xdf, 0x6d, 0x5c, 0x85, 0xaa, 0xe5,
- 0x9b, 0x83, 0x96, 0x6b, 0x6d, 0xf9, 0xde, 0x58, 0x75, 0x5b, 0x65, 0x0c, 0x55, 0x2d, 0xf4, 0x73,
- 0x71, 0x8c, 0xe8, 0x63, 0xe1, 0xb3, 0x3c, 0x15, 0xff, 0x0d, 0x4d, 0xdf, 0x76, 0x07, 0xed, 0x73,
- 0x29, 0xdc, 0x40, 0xd5, 0x44, 0x57, 0xa1, 0x34, 0x09, 0x44, 0xdf, 0x0c, 0x04, 0x2b, 0x62, 0xe3,
- 0x78, 0x62, 0x3b, 0xd2, 0x76, 0xd5, 0xe7, 0x12, 0xa3, 0xa2, 0xe7, 0x32, 0x8e, 0xcc, 0x1c, 0xdb,
- 0xac, 0x72, 0xff, 0xf7, 0x33, 0x50, 0x25, 0xb1, 0x88, 0x63, 0xe2, 0xb1, 0x8d, 0x56, 0x85, 0xd2,
- 0x6e, 0xf4, 0xdd, 0xbc, 0x22, 0x64, 0x0f, 0x4e, 0x55, 0x4c, 0x5c, 0x8b, 0x85, 0xba, 0x93, 0xaa,
- 0x3e, 0xa1, 0x97, 0xe7, 0x9f, 0x83, 0x1b, 0x86, 0x18, 0x79, 0x52, 0x3c, 0x33, 0x6d, 0x99, 0xbc,
- 0x7f, 0x54, 0x40, 0x77, 0x4e, 0x3d, 0x0a, 0x2f, 0x1c, 0x15, 0xc9, 0x9d, 0xc3, 0xd7, 0x86, 0x90,
- 0x12, 0x8e, 0x9e, 0x20, 0xda, 0xbf, 0x2b, 0x47, 0x28, 0x1f, 0x79, 0xb6, 0x8b, 0x6f, 0xa3, 0x9b,
- 0xd0, 0x04, 0xa1, 0xe4, 0x0a, 0x82, 0xe0, 0xfe, 0x3e, 0xdc, 0x9c, 0x9f, 0x12, 0x50, 0x77, 0xa4,
- 0xe9, 0x63, 0xcd, 0x74, 0x23, 0xe5, 0x99, 0x6f, 0xab, 0xab, 0xae, 0x15, 0x28, 0x1c, 0x3c, 0x77,
- 0x49, 0x2c, 0xd6, 0xa0, 0xb6, 0xef, 0x25, 0x68, 0x58, 0xee, 0x7e, 0x3f, 0x95, 0xc5, 0x89, 0x27,
- 0x25, 0xec, 0xc4, 0x52, 0xe2, 0xb6, 0x55, 0x46, 0xe5, 0x07, 0xe8, 0xff, 0x6d, 0xa8, 0xef, 0x47,
- 0xe8, 0xec, 0x89, 0xa5, 0xbe, 0x1f, 0x11, 0x75, 0x33, 0xaf, 0x3e, 0xa4, 0xe5, 0xf6, 0x85, 0x23,
- 0x2c, 0x56, 0xb8, 0xff, 0x1e, 0xac, 0xea, 0xa1, 0xf6, 0x45, 0x10, 0x84, 0xb7, 0x95, 0x0e, 0x7d,
- 0xfb, 0x4c, 0x7d, 0xa3, 0x62, 0x19, 0xca, 0x87, 0xc2, 0x0f, 0x3c, 0x97, 0xbe, 0xcf, 0x01, 0x50,
- 0xec, 0x0e, 0x4d, 0x1f, 0xdf, 0x71, 0xff, 0x6b, 0x7a, 0x92, 0x9e, 0x9c, 0x87, 0x47, 0x03, 0xee,
- 0x1f, 0xfd, 0x79, 0x1a, 0x53, 0x9a, 0x1a, 0x5d, 0xfa, 0xc2, 0x1c, 0xb1, 0xec, 0xfd, 0x4d, 0xa8,
- 0xd0, 0x65, 0xa7, 0xc7, 0xb6, 0x6b, 0xe1, 0xc0, 0x37, 0x74, 0xe1, 0x3d, 0x7d, 0x37, 0xe9, 0x8c,
- 0xa6, 0xa3, 0xac, 0xbe, 0x30, 0xcb, 0xb2, 0xfc, 0x26, 0xf0, 0xd6, 0x44, 0x7a, 0x23, 0x93, 0x2e,
- 0xe9, 0x3a, 0x17, 0xea, 0x6b, 0xc4, 0xb9, 0xfb, 0xdf, 0x06, 0xae, 0x62, 0x6c, 0x96, 0x38, 0xb7,
- 0xdd, 0x41, 0x74, 0xff, 0x1f, 0xe8, 0x63, 0x1e, 0x96, 0x38, 0x0f, 0x6f, 0xaa, 0x85, 0x8d, 0xf0,
- 0x93, 0x22, 0xdb, 0xde, 0xc4, 0xc5, 0x4e, 0x3f, 0x85, 0xeb, 0x4a, 0xc4, 0x70, 0x14, 0x74, 0x03,
- 0xf4, 0x52, 0xc7, 0x5f, 0xdd, 0x54, 0x93, 0x93, 0x20, 0xc2, 0x65, 0x19, 0xec, 0x58, 0xe4, 0x34,
- 0xc7, 0xf0, 0xec, 0xfd, 0x26, 0x5c, 0x9b, 0x13, 0xb9, 0x20, 0xa5, 0xae, 0xfc, 0x37, 0xb6, 0x74,
- 0xff, 0x43, 0x58, 0x53, 0x6a, 0x68, 0x5f, 0xdd, 0xd1, 0x0b, 0xa7, 0xed, 0x59, 0x67, 0xbb, 0xa3,
- 0x66, 0x7a, 0xb3, 0xbd, 0xbb, 0xfb, 0x64, 0xb7, 0x65, 0xb0, 0x0c, 0xc9, 0xc3, 0x41, 0xef, 0x68,
- 0xf3, 0x60, 0x7f, 0xbf, 0xbd, 0xd9, 0x6b, 0x6f, 0xb1, 0xec, 0xc6, 0xfd, 0x7f, 0xf3, 0xe9, 0x9d,
- 0xcc, 0xcf, 0x3f, 0xbd, 0x93, 0xf9, 0xcf, 0x9f, 0xde, 0xc9, 0xfc, 0xf8, 0x17, 0x77, 0x96, 0x7e,
- 0xfe, 0x8b, 0x3b, 0x4b, 0xff, 0xe1, 0x17, 0x77, 0x96, 0x3e, 0x61, 0xd3, 0xff, 0x32, 0xe7, 0xb8,
- 0x48, 0x2e, 0xc3, 0x5b, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x42, 0x2e, 0x22, 0x4d, 0x67,
- 0x00, 0x00,
+ // 9225 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7d, 0x5b, 0x6c, 0x23, 0xd9,
+ 0x95, 0x98, 0xf8, 0x26, 0x0f, 0x45, 0xe9, 0xea, 0xf6, 0x8b, 0xa6, 0xdb, 0x9d, 0x36, 0x3d, 0x9e,
+ 0x69, 0xb7, 0xc7, 0xea, 0x99, 0x9e, 0x19, 0xcf, 0x78, 0xec, 0x19, 0x9b, 0x92, 0xa8, 0x16, 0xa7,
+ 0xf5, 0x72, 0x91, 0xdd, 0xed, 0x19, 0xec, 0x46, 0x29, 0xb1, 0xae, 0xc8, 0xb2, 0x8a, 0x55, 0x74,
+ 0xd5, 0xa5, 0x5a, 0x32, 0x92, 0xc0, 0x79, 0xed, 0x66, 0xff, 0x9c, 0x20, 0x9b, 0x64, 0x11, 0x04,
+ 0x6b, 0x7f, 0x04, 0x08, 0xb2, 0x1b, 0xe4, 0xcb, 0x48, 0x36, 0x0f, 0x20, 0xbb, 0x5f, 0x01, 0xf2,
+ 0xe3, 0xe4, 0x2b, 0x40, 0x02, 0x24, 0xf0, 0x00, 0xf9, 0x09, 0x92, 0xc5, 0x06, 0x08, 0x60, 0x04,
+ 0xf9, 0x08, 0xce, 0xb9, 0xb7, 0x5e, 0x24, 0xa5, 0x66, 0xcf, 0xee, 0x06, 0xf9, 0x12, 0xef, 0xa9,
+ 0x73, 0x4e, 0xdd, 0xc7, 0xb9, 0xe7, 0x9e, 0xd7, 0x2d, 0xc1, 0x2b, 0xe3, 0xd3, 0xc1, 0x03, 0xc7,
+ 0x3e, 0x7e, 0x30, 0x3e, 0x7e, 0x30, 0xf2, 0x2c, 0xe1, 0x3c, 0x18, 0xfb, 0x9e, 0xf4, 0x02, 0xd5,
+ 0x08, 0xd6, 0xa9, 0xc5, 0x6b, 0xa6, 0x7b, 0x21, 0x2f, 0xc6, 0x62, 0x9d, 0xa0, 0x8d, 0xdb, 0x03,
+ 0xcf, 0x1b, 0x38, 0x42, 0xa1, 0x1e, 0x4f, 0x4e, 0x1e, 0x04, 0xd2, 0x9f, 0xf4, 0xa5, 0x42, 0x6e,
+ 0xfe, 0x3c, 0x0f, 0x37, 0xbb, 0x23, 0xd3, 0x97, 0x1b, 0x8e, 0xd7, 0x3f, 0xed, 0xba, 0xe6, 0x38,
+ 0x18, 0x7a, 0x72, 0xc3, 0x0c, 0x04, 0x7f, 0x1d, 0x8a, 0xc7, 0x08, 0x0c, 0xea, 0x99, 0xbb, 0xb9,
+ 0x7b, 0xd5, 0x87, 0xd7, 0xd7, 0x53, 0x8c, 0xd7, 0x89, 0xc2, 0xd0, 0x38, 0xfc, 0x4d, 0x28, 0x59,
+ 0x42, 0x9a, 0xb6, 0x13, 0xd4, 0xb3, 0x77, 0x33, 0xf7, 0xaa, 0x0f, 0x6f, 0xad, 0xab, 0x17, 0xaf,
+ 0x87, 0x2f, 0x5e, 0xef, 0xd2, 0x8b, 0x8d, 0x10, 0x8f, 0xbf, 0x0b, 0xe5, 0x13, 0xdb, 0x11, 0x8f,
+ 0xc5, 0x45, 0x50, 0xcf, 0x5d, 0x49, 0xb3, 0x91, 0xad, 0x67, 0x8c, 0x08, 0x99, 0x6f, 0xc2, 0x8a,
+ 0x38, 0x97, 0xbe, 0x69, 0x08, 0xc7, 0x94, 0xb6, 0xe7, 0x06, 0xf5, 0x3c, 0xf5, 0xf0, 0xd6, 0x54,
+ 0x0f, 0xc3, 0xe7, 0x44, 0x3e, 0x45, 0xc2, 0xef, 0x42, 0xd5, 0x3b, 0xfe, 0xbe, 0xe8, 0xcb, 0xde,
+ 0xc5, 0x58, 0x04, 0xf5, 0xc2, 0xdd, 0xdc, 0xbd, 0x8a, 0x91, 0x04, 0xf1, 0x6f, 0x40, 0xb5, 0xef,
+ 0x39, 0x8e, 0xe8, 0xab, 0x77, 0x14, 0xaf, 0x1e, 0x56, 0x12, 0x97, 0xbf, 0x0d, 0x37, 0x7c, 0x31,
+ 0xf2, 0xce, 0x84, 0xb5, 0x19, 0x41, 0x69, 0x9c, 0x65, 0x7a, 0xcd, 0xfc, 0x87, 0xbc, 0x05, 0x35,
+ 0x5f, 0xf7, 0x6f, 0xd7, 0x76, 0x4f, 0x83, 0x7a, 0x89, 0x86, 0xf5, 0xf9, 0x4b, 0x86, 0x85, 0x38,
+ 0x46, 0x9a, 0x82, 0x33, 0xc8, 0x9d, 0x8a, 0x8b, 0x7a, 0xe5, 0x6e, 0xe6, 0x5e, 0xc5, 0xc0, 0x9f,
+ 0xfc, 0x7d, 0xa8, 0x7b, 0xbe, 0x3d, 0xb0, 0x5d, 0xd3, 0xd9, 0xf4, 0x85, 0x29, 0x85, 0xd5, 0xb3,
+ 0x47, 0x22, 0x90, 0xe6, 0x68, 0x5c, 0x87, 0xbb, 0x99, 0x7b, 0x39, 0xe3, 0xd2, 0xe7, 0xfc, 0x2d,
+ 0xb5, 0x42, 0x1d, 0xf7, 0xc4, 0xab, 0x57, 0xf5, 0xf0, 0xd3, 0x7d, 0xd9, 0xd6, 0x8f, 0x8d, 0x08,
+ 0xb1, 0xf9, 0xcb, 0x2c, 0x14, 0xbb, 0xc2, 0xf4, 0xfb, 0xc3, 0xc6, 0xaf, 0x67, 0xa0, 0x68, 0x88,
+ 0x60, 0xe2, 0x48, 0xde, 0x80, 0xb2, 0x9a, 0xdb, 0x8e, 0x55, 0xcf, 0x50, 0xef, 0xa2, 0xf6, 0x67,
+ 0x91, 0x9d, 0x75, 0xc8, 0x8f, 0x84, 0x34, 0xeb, 0x39, 0x9a, 0xa1, 0xc6, 0x54, 0xaf, 0xd4, 0xeb,
+ 0xd7, 0xf7, 0x84, 0x34, 0x0d, 0xc2, 0x6b, 0x7c, 0x9a, 0x81, 0x3c, 0x36, 0xf9, 0x6d, 0xa8, 0x0c,
+ 0xed, 0xc1, 0xd0, 0xb1, 0x07, 0x43, 0xa9, 0x3b, 0x12, 0x03, 0xf8, 0x87, 0xb0, 0x1a, 0x35, 0x0c,
+ 0xd3, 0x1d, 0x08, 0xec, 0xd1, 0x3c, 0xe1, 0xa7, 0x87, 0xc6, 0x34, 0x32, 0xaf, 0x43, 0x89, 0xf6,
+ 0x43, 0xc7, 0x22, 0x89, 0xae, 0x18, 0x61, 0x13, 0xc5, 0x2d, 0x5c, 0xa9, 0xc7, 0xe2, 0xa2, 0x9e,
+ 0xa7, 0xa7, 0x49, 0x10, 0x6f, 0xc1, 0x6a, 0xd8, 0xdc, 0xd2, 0xb3, 0x51, 0xb8, 0x7a, 0x36, 0xa6,
+ 0xf1, 0x9b, 0x3f, 0xda, 0x83, 0x02, 0x6d, 0x4b, 0xbe, 0x02, 0x59, 0x3b, 0x9c, 0xe8, 0xac, 0x6d,
+ 0xf1, 0x07, 0x50, 0x3c, 0xb1, 0x85, 0x63, 0xbd, 0x70, 0x86, 0x35, 0x1a, 0x6f, 0xc3, 0xb2, 0x2f,
+ 0x02, 0xe9, 0xdb, 0x5a, 0xfa, 0xd5, 0x06, 0xfd, 0xe2, 0x3c, 0x1d, 0xb0, 0x6e, 0x24, 0x10, 0x8d,
+ 0x14, 0x19, 0x0e, 0xbb, 0x3f, 0xb4, 0x1d, 0xcb, 0x17, 0x6e, 0xc7, 0x52, 0xfb, 0xb4, 0x62, 0x24,
+ 0x41, 0xfc, 0x1e, 0xac, 0x1e, 0x9b, 0xfd, 0xd3, 0x81, 0xef, 0x4d, 0x5c, 0xdc, 0x10, 0x9e, 0x4f,
+ 0xc3, 0xae, 0x18, 0xd3, 0x60, 0xfe, 0x06, 0x14, 0x4c, 0xc7, 0x1e, 0xb8, 0xb4, 0x13, 0x57, 0x66,
+ 0x16, 0x5d, 0xf5, 0xa5, 0x85, 0x18, 0x86, 0x42, 0xe4, 0x3b, 0x50, 0x3b, 0x13, 0xbe, 0xb4, 0xfb,
+ 0xa6, 0x43, 0xf0, 0x7a, 0x89, 0x28, 0x9b, 0x73, 0x29, 0x9f, 0x26, 0x31, 0x8d, 0x34, 0x21, 0xef,
+ 0x00, 0x04, 0xa8, 0x26, 0x69, 0x39, 0xf5, 0x5e, 0x78, 0x6d, 0x2e, 0x9b, 0x4d, 0xcf, 0x95, 0xc2,
+ 0x95, 0xeb, 0xdd, 0x08, 0x7d, 0x67, 0xc9, 0x48, 0x10, 0xf3, 0x77, 0x21, 0x2f, 0xc5, 0xb9, 0xac,
+ 0xaf, 0x5c, 0x31, 0xa3, 0x21, 0x93, 0x9e, 0x38, 0x97, 0x3b, 0x4b, 0x06, 0x11, 0x20, 0x21, 0x6e,
+ 0xb2, 0xfa, 0xea, 0x02, 0x84, 0xb8, 0x2f, 0x91, 0x10, 0x09, 0xf8, 0x07, 0x50, 0x74, 0xcc, 0x0b,
+ 0x6f, 0x22, 0xeb, 0x8c, 0x48, 0xbf, 0x74, 0x25, 0xe9, 0x2e, 0xa1, 0xee, 0x2c, 0x19, 0x9a, 0x88,
+ 0xbf, 0x0d, 0x39, 0xcb, 0x3e, 0xab, 0xaf, 0x11, 0xed, 0xdd, 0x2b, 0x69, 0xb7, 0xec, 0xb3, 0x9d,
+ 0x25, 0x03, 0xd1, 0xf9, 0x26, 0x94, 0x8f, 0x3d, 0xef, 0x74, 0x64, 0xfa, 0xa7, 0x75, 0x4e, 0xa4,
+ 0x5f, 0xbe, 0x92, 0x74, 0x43, 0x23, 0xef, 0x2c, 0x19, 0x11, 0x21, 0x0e, 0xd9, 0xee, 0x7b, 0x6e,
+ 0xfd, 0xda, 0x02, 0x43, 0xee, 0xf4, 0x3d, 0x17, 0x87, 0x8c, 0x04, 0x48, 0xe8, 0xd8, 0xee, 0x69,
+ 0xfd, 0xfa, 0x02, 0x84, 0xa8, 0x39, 0x91, 0x10, 0x09, 0xb0, 0xdb, 0x96, 0x29, 0xcd, 0x33, 0x5b,
+ 0x3c, 0xaf, 0xdf, 0x58, 0xa0, 0xdb, 0x5b, 0x1a, 0x19, 0xbb, 0x1d, 0x12, 0x22, 0x93, 0x70, 0x6b,
+ 0xd6, 0x6f, 0x2e, 0xc0, 0x24, 0xd4, 0xe8, 0xc8, 0x24, 0x24, 0xe4, 0x7f, 0x16, 0xd6, 0x4e, 0x84,
+ 0x29, 0x27, 0xbe, 0xb0, 0xe2, 0x83, 0xee, 0x16, 0x71, 0x5b, 0xbf, 0x7a, 0xed, 0xa7, 0xa9, 0x76,
+ 0x96, 0x8c, 0x59, 0x56, 0xfc, 0x7d, 0x28, 0x38, 0xa6, 0x14, 0xe7, 0xf5, 0x3a, 0xf1, 0x6c, 0xbe,
+ 0x40, 0x28, 0xa4, 0x38, 0xdf, 0x59, 0x32, 0x14, 0x09, 0xff, 0x1e, 0xac, 0x4a, 0xf3, 0xd8, 0x11,
+ 0x07, 0x27, 0x1a, 0x21, 0xa8, 0x7f, 0x8e, 0xb8, 0xbc, 0x7e, 0xb5, 0x38, 0xa7, 0x69, 0x76, 0x96,
+ 0x8c, 0x69, 0x36, 0xd8, 0x2b, 0x02, 0xd5, 0x1b, 0x0b, 0xf4, 0x8a, 0xf8, 0x61, 0xaf, 0x88, 0x84,
+ 0xef, 0x42, 0x95, 0x7e, 0x6c, 0x7a, 0xce, 0x64, 0xe4, 0xd6, 0x3f, 0x4f, 0x1c, 0xee, 0xbd, 0x98,
+ 0x83, 0xc2, 0xdf, 0x59, 0x32, 0x92, 0xe4, 0xb8, 0x88, 0xd4, 0x34, 0xbc, 0xe7, 0xf5, 0xdb, 0x0b,
+ 0x2c, 0x62, 0x4f, 0x23, 0xe3, 0x22, 0x86, 0x84, 0xb8, 0xf5, 0x9e, 0xdb, 0xd6, 0x40, 0xc8, 0xfa,
+ 0x17, 0x16, 0xd8, 0x7a, 0xcf, 0x08, 0x15, 0xb7, 0x9e, 0x22, 0x42, 0x31, 0xee, 0x0f, 0x4d, 0x59,
+ 0xbf, 0xb3, 0x80, 0x18, 0x6f, 0x0e, 0x4d, 0xd2, 0x15, 0x48, 0xd0, 0xf8, 0x21, 0x2c, 0x27, 0xb5,
+ 0x32, 0xe7, 0x90, 0xf7, 0x85, 0xa9, 0x4e, 0x84, 0xb2, 0x41, 0xbf, 0x11, 0x26, 0x2c, 0x5b, 0xd2,
+ 0x89, 0x50, 0x36, 0xe8, 0x37, 0xbf, 0x09, 0x45, 0x65, 0x9b, 0x90, 0xc2, 0x2f, 0x1b, 0xba, 0x85,
+ 0xb8, 0x96, 0x6f, 0x0e, 0xe8, 0xdc, 0x2a, 0x1b, 0xf4, 0x1b, 0x71, 0x2d, 0xdf, 0x1b, 0x1f, 0xb8,
+ 0xa4, 0xb0, 0xcb, 0x86, 0x6e, 0x35, 0x3e, 0xfd, 0x00, 0x4a, 0xba, 0x53, 0x8d, 0xbf, 0x9f, 0x81,
+ 0xa2, 0x52, 0x28, 0xfc, 0xdb, 0x50, 0x08, 0xe4, 0x85, 0x23, 0xa8, 0x0f, 0x2b, 0x0f, 0xbf, 0xb2,
+ 0x80, 0x12, 0x5a, 0xef, 0x22, 0x81, 0xa1, 0xe8, 0x9a, 0x06, 0x14, 0xa8, 0xcd, 0x4b, 0x90, 0x33,
+ 0xbc, 0xe7, 0x6c, 0x89, 0x03, 0x14, 0xd5, 0x62, 0xb1, 0x0c, 0x02, 0xb7, 0xec, 0x33, 0x96, 0x45,
+ 0xe0, 0x8e, 0x30, 0x2d, 0xe1, 0xb3, 0x1c, 0xaf, 0x41, 0x25, 0x5c, 0x96, 0x80, 0xe5, 0x39, 0x83,
+ 0xe5, 0xc4, 0x82, 0x07, 0xac, 0xd0, 0xf8, 0x9f, 0x79, 0xc8, 0xe3, 0xfe, 0xe7, 0xaf, 0x40, 0x4d,
+ 0x9a, 0xfe, 0x40, 0x28, 0x43, 0x38, 0x32, 0x52, 0xd2, 0x40, 0xfe, 0x41, 0x38, 0x86, 0x2c, 0x8d,
+ 0xe1, 0xb5, 0x17, 0xea, 0x95, 0xd4, 0x08, 0x12, 0xa7, 0x70, 0x6e, 0xb1, 0x53, 0x78, 0x1b, 0xca,
+ 0xa8, 0xce, 0xba, 0xf6, 0x0f, 0x05, 0x4d, 0xfd, 0xca, 0xc3, 0xfb, 0x2f, 0x7e, 0x65, 0x47, 0x53,
+ 0x18, 0x11, 0x2d, 0xef, 0x40, 0xa5, 0x6f, 0xfa, 0x16, 0x75, 0x86, 0x56, 0x6b, 0xe5, 0xe1, 0x57,
+ 0x5f, 0xcc, 0x68, 0x33, 0x24, 0x31, 0x62, 0x6a, 0x7e, 0x00, 0x55, 0x4b, 0x04, 0x7d, 0xdf, 0x1e,
+ 0x93, 0x7a, 0x53, 0x67, 0xf1, 0xd7, 0x5e, 0xcc, 0x6c, 0x2b, 0x26, 0x32, 0x92, 0x1c, 0xd0, 0x22,
+ 0xf3, 0x23, 0xfd, 0x56, 0x22, 0x03, 0x21, 0x06, 0x34, 0xdf, 0x85, 0x72, 0x38, 0x1e, 0xbe, 0x0c,
+ 0x65, 0xfc, 0xbb, 0xef, 0xb9, 0x82, 0x2d, 0xe1, 0xda, 0x62, 0xab, 0x3b, 0x32, 0x1d, 0x87, 0x65,
+ 0xf8, 0x0a, 0x00, 0x36, 0xf7, 0x84, 0x65, 0x4f, 0x46, 0x2c, 0xdb, 0xfc, 0x66, 0x28, 0x2d, 0x65,
+ 0xc8, 0x1f, 0x9a, 0x03, 0xa4, 0x58, 0x86, 0x72, 0xa8, 0xae, 0x59, 0x06, 0xe9, 0xb7, 0xcc, 0x60,
+ 0x78, 0xec, 0x99, 0xbe, 0xc5, 0xb2, 0xbc, 0x0a, 0xa5, 0x96, 0xdf, 0x1f, 0xda, 0x67, 0x82, 0xe5,
+ 0x9a, 0x0f, 0xa0, 0x9a, 0xe8, 0x2f, 0xb2, 0xd0, 0x2f, 0xad, 0x40, 0xa1, 0x65, 0x59, 0xc2, 0x62,
+ 0x19, 0x24, 0xd0, 0x03, 0x64, 0xd9, 0xe6, 0x57, 0xa1, 0x12, 0xcd, 0x16, 0xa2, 0xe3, 0xc1, 0xcd,
+ 0x96, 0xf0, 0x17, 0x82, 0x59, 0x06, 0xa5, 0xb2, 0xe3, 0x3a, 0xb6, 0x2b, 0x58, 0xb6, 0xf1, 0xe7,
+ 0x48, 0x54, 0xf9, 0xb7, 0xd2, 0x1b, 0xe2, 0xd5, 0x17, 0x9d, 0xac, 0xe9, 0xdd, 0xf0, 0xf9, 0xc4,
+ 0xf8, 0x76, 0x6d, 0xea, 0x5c, 0x19, 0xf2, 0x5b, 0x9e, 0x0c, 0x58, 0xa6, 0xf1, 0xdf, 0xb2, 0x50,
+ 0x0e, 0x0f, 0x54, 0xf4, 0x09, 0x26, 0xbe, 0xa3, 0x05, 0x1a, 0x7f, 0xf2, 0xeb, 0x50, 0x90, 0xb6,
+ 0xd4, 0x62, 0x5c, 0x31, 0x54, 0x03, 0x6d, 0xb5, 0xe4, 0xca, 0x2a, 0x03, 0x76, 0x7a, 0xa9, 0xec,
+ 0x91, 0x39, 0x10, 0x3b, 0x66, 0x30, 0xd4, 0x26, 0x6c, 0x0c, 0x40, 0xfa, 0x13, 0xf3, 0x0c, 0x65,
+ 0x8e, 0x9e, 0x2b, 0x2b, 0x2e, 0x09, 0xe2, 0x6f, 0x41, 0x1e, 0x07, 0xa8, 0x85, 0xe6, 0xcf, 0x4c,
+ 0x0d, 0x18, 0xc5, 0xe4, 0xd0, 0x17, 0xb8, 0x3c, 0xeb, 0xe8, 0x81, 0x19, 0x84, 0xcc, 0x5f, 0x85,
+ 0x15, 0xb5, 0x09, 0x0f, 0x42, 0xff, 0xa1, 0x44, 0x9c, 0xa7, 0xa0, 0xbc, 0x85, 0xd3, 0x69, 0x4a,
+ 0x51, 0x2f, 0x2f, 0x20, 0xdf, 0xe1, 0xe4, 0xac, 0x77, 0x91, 0xc4, 0x50, 0x94, 0xcd, 0x77, 0x70,
+ 0x4e, 0x4d, 0x29, 0x70, 0x99, 0xdb, 0xa3, 0xb1, 0xbc, 0x50, 0x42, 0xb3, 0x2d, 0x64, 0x7f, 0x68,
+ 0xbb, 0x03, 0x96, 0x51, 0x53, 0x8c, 0x8b, 0x48, 0x28, 0xbe, 0xef, 0xf9, 0x2c, 0xd7, 0x68, 0x40,
+ 0x1e, 0x65, 0x14, 0x95, 0xa4, 0x6b, 0x8e, 0x84, 0x9e, 0x69, 0xfa, 0xdd, 0xb8, 0x06, 0x6b, 0x33,
+ 0xe7, 0x71, 0xe3, 0xf7, 0x8a, 0x4a, 0x42, 0x90, 0x82, 0x6c, 0x41, 0x4d, 0x41, 0x66, 0xde, 0x4b,
+ 0xe9, 0x18, 0xe4, 0x92, 0xd6, 0x31, 0x1f, 0x40, 0x01, 0x07, 0x16, 0xaa, 0x98, 0x05, 0xc8, 0xf7,
+ 0x10, 0xdd, 0x50, 0x54, 0xe8, 0xc1, 0xf4, 0x87, 0xa2, 0x7f, 0x2a, 0x2c, 0xad, 0xeb, 0xc3, 0x26,
+ 0x0a, 0x4d, 0x3f, 0x61, 0x9e, 0xab, 0x06, 0x89, 0x44, 0xdf, 0x73, 0xdb, 0x23, 0xef, 0xfb, 0x36,
+ 0xad, 0x2b, 0x8a, 0x44, 0x08, 0x08, 0x9f, 0x76, 0x50, 0x46, 0xf4, 0xb2, 0xc5, 0x80, 0x46, 0x1b,
+ 0x0a, 0xf4, 0x6e, 0xdc, 0x09, 0xaa, 0xcf, 0x2a, 0xd2, 0xf0, 0xea, 0x62, 0x7d, 0xd6, 0x5d, 0x6e,
+ 0xfc, 0x6e, 0x16, 0xf2, 0xd8, 0xe6, 0xf7, 0xa1, 0xe0, 0xa3, 0x1f, 0x46, 0xd3, 0x79, 0x99, 0xcf,
+ 0xa6, 0x50, 0xf8, 0xb7, 0xb5, 0x28, 0x66, 0x17, 0x10, 0x96, 0xe8, 0x8d, 0x49, 0xb1, 0xbc, 0x0e,
+ 0x85, 0xb1, 0xe9, 0x9b, 0x23, 0xbd, 0x4f, 0x54, 0xa3, 0xf9, 0x93, 0x0c, 0xe4, 0x11, 0x89, 0xaf,
+ 0x41, 0xad, 0x2b, 0x7d, 0xfb, 0x54, 0xc8, 0xa1, 0xef, 0x4d, 0x06, 0x43, 0x25, 0x49, 0x8f, 0xc5,
+ 0x85, 0xd2, 0x37, 0x4a, 0x21, 0x48, 0xd3, 0xb1, 0xfb, 0x2c, 0x8b, 0x52, 0xb5, 0xe1, 0x39, 0x16,
+ 0xcb, 0xf1, 0x55, 0xa8, 0x3e, 0x71, 0x2d, 0xe1, 0x07, 0x7d, 0xcf, 0x17, 0x16, 0xcb, 0xeb, 0xdd,
+ 0x7d, 0xca, 0x0a, 0x74, 0x96, 0x89, 0x73, 0x49, 0xbe, 0x10, 0x2b, 0xf2, 0x6b, 0xb0, 0xba, 0x91,
+ 0x76, 0x90, 0x58, 0x09, 0x75, 0xd2, 0x9e, 0x70, 0x51, 0xc8, 0x58, 0x59, 0x09, 0xb1, 0xf7, 0x7d,
+ 0x9b, 0x55, 0xf0, 0x65, 0x6a, 0x9f, 0x30, 0x68, 0xfe, 0xcb, 0x4c, 0xa8, 0x39, 0x6a, 0x50, 0x39,
+ 0x34, 0x7d, 0x73, 0xe0, 0x9b, 0x63, 0xec, 0x5f, 0x15, 0x4a, 0xea, 0xe0, 0x7c, 0x53, 0x69, 0x37,
+ 0xd5, 0x78, 0xa8, 0x74, 0xa3, 0x6a, 0xbc, 0xc5, 0x72, 0x71, 0xe3, 0x6d, 0x96, 0xc7, 0x77, 0x7c,
+ 0x77, 0xe2, 0x49, 0xc1, 0x0a, 0xa4, 0xeb, 0x3c, 0x4b, 0xb0, 0x22, 0x02, 0x7b, 0xa8, 0x51, 0x58,
+ 0x09, 0xc7, 0xbc, 0x89, 0xf2, 0x73, 0xec, 0x9d, 0xb3, 0x32, 0x76, 0x03, 0xa7, 0x51, 0x58, 0xac,
+ 0x82, 0x4f, 0xf6, 0x27, 0xa3, 0x63, 0x81, 0xc3, 0x04, 0x7c, 0xd2, 0xf3, 0x06, 0x03, 0x47, 0xb0,
+ 0x2a, 0xce, 0x41, 0x42, 0xf9, 0xb2, 0x65, 0xd2, 0xb4, 0xa6, 0xe3, 0x78, 0x13, 0xc9, 0x6a, 0x8d,
+ 0x5f, 0xe6, 0x20, 0x8f, 0xde, 0x0d, 0xee, 0x9d, 0x21, 0xea, 0x19, 0xbd, 0x77, 0xf0, 0x77, 0xb4,
+ 0x03, 0xb3, 0xf1, 0x0e, 0xe4, 0xef, 0xeb, 0x95, 0xce, 0x2d, 0xa0, 0x65, 0x91, 0x71, 0x72, 0x91,
+ 0x39, 0xe4, 0x47, 0xf6, 0x48, 0x68, 0x5d, 0x47, 0xbf, 0x11, 0x16, 0xe0, 0x79, 0x5c, 0xa0, 0xe0,
+ 0x09, 0xfd, 0xc6, 0x5d, 0x63, 0xe2, 0xb1, 0xd0, 0x92, 0xb4, 0x07, 0x72, 0x46, 0xd8, 0x9c, 0xa3,
+ 0xbd, 0x2a, 0x73, 0xb5, 0xd7, 0x07, 0xa1, 0xf6, 0x2a, 0x2d, 0xb0, 0xeb, 0xa9, 0x9b, 0x49, 0xcd,
+ 0x15, 0x2b, 0x8d, 0xf2, 0xe2, 0xe4, 0x89, 0xc3, 0x64, 0x4b, 0x4b, 0x6d, 0x7c, 0xd0, 0x95, 0xd5,
+ 0x2c, 0xb3, 0x0c, 0xae, 0x26, 0x6d, 0x57, 0xa5, 0xf3, 0x9e, 0xda, 0x96, 0xf0, 0x58, 0x8e, 0x0e,
+ 0xc2, 0x89, 0x65, 0x7b, 0x2c, 0x8f, 0x96, 0xd7, 0xe1, 0xd6, 0x36, 0x2b, 0x34, 0x5f, 0x4d, 0x1c,
+ 0x49, 0xad, 0x89, 0xf4, 0x14, 0x1b, 0x12, 0xdf, 0x8c, 0x92, 0xc6, 0x63, 0x61, 0xb1, 0x6c, 0xf3,
+ 0xeb, 0x73, 0xd4, 0x6c, 0x0d, 0x2a, 0x4f, 0xc6, 0x8e, 0x67, 0x5a, 0x57, 0xe8, 0xd9, 0x65, 0x80,
+ 0xd8, 0xab, 0x6e, 0xfc, 0xb2, 0x19, 0x1f, 0xe7, 0x68, 0x8b, 0x06, 0xde, 0xc4, 0xef, 0x0b, 0x52,
+ 0x21, 0x15, 0x43, 0xb7, 0xf8, 0x77, 0xa0, 0x80, 0xcf, 0xc3, 0x30, 0xce, 0xfd, 0x85, 0x7c, 0xb9,
+ 0xf5, 0xa7, 0xb6, 0x78, 0x6e, 0x28, 0x42, 0x7e, 0x07, 0xc0, 0xec, 0x4b, 0xfb, 0x4c, 0x20, 0x50,
+ 0x6f, 0xf6, 0x04, 0x84, 0xbf, 0x93, 0x34, 0x5f, 0xae, 0x8e, 0x43, 0x26, 0xec, 0x1a, 0x6e, 0x40,
+ 0x15, 0xb7, 0xee, 0xf8, 0xc0, 0xc7, 0xdd, 0x5e, 0x5f, 0x26, 0xc2, 0x37, 0x16, 0xeb, 0xde, 0xa3,
+ 0x88, 0xd0, 0x48, 0x32, 0xe1, 0x4f, 0x60, 0x59, 0xc5, 0xd4, 0x34, 0xd3, 0x1a, 0x31, 0x7d, 0x73,
+ 0x31, 0xa6, 0x07, 0x31, 0xa5, 0x91, 0x62, 0x33, 0x1b, 0x96, 0x2c, 0xbc, 0x74, 0x58, 0xf2, 0x55,
+ 0x58, 0xe9, 0xa5, 0x77, 0x81, 0x3a, 0x2a, 0xa6, 0xa0, 0xbc, 0x09, 0xcb, 0x76, 0x10, 0x47, 0x45,
+ 0x29, 0x46, 0x52, 0x36, 0x52, 0xb0, 0xc6, 0xbf, 0x2b, 0x42, 0x9e, 0x66, 0x7e, 0x3a, 0xc6, 0xb5,
+ 0x99, 0x52, 0xe9, 0x0f, 0x16, 0x5f, 0xea, 0xa9, 0x1d, 0x4f, 0x1a, 0x24, 0x97, 0xd0, 0x20, 0xdf,
+ 0x81, 0x42, 0xe0, 0xf9, 0x32, 0x5c, 0xde, 0x05, 0x85, 0xa8, 0xeb, 0xf9, 0xd2, 0x50, 0x84, 0x7c,
+ 0x1b, 0x4a, 0x27, 0xb6, 0x23, 0x71, 0x51, 0xd4, 0xe4, 0xbd, 0xbe, 0x18, 0x8f, 0x6d, 0x22, 0x32,
+ 0x42, 0x62, 0xbe, 0x9b, 0x14, 0xb6, 0x22, 0x71, 0x5a, 0x5f, 0x8c, 0xd3, 0x3c, 0x19, 0xbc, 0x0f,
+ 0xac, 0xef, 0x9d, 0x09, 0xdf, 0x48, 0x04, 0x26, 0xd5, 0x21, 0x3d, 0x03, 0xe7, 0x0d, 0x28, 0x0f,
+ 0x6d, 0x4b, 0xa0, 0x9d, 0x43, 0x3a, 0xa6, 0x6c, 0x44, 0x6d, 0xfe, 0x18, 0xca, 0xe4, 0x1f, 0xa0,
+ 0x56, 0xac, 0xbc, 0xf4, 0xe4, 0x2b, 0x57, 0x25, 0x64, 0x80, 0x2f, 0xa2, 0x97, 0x6f, 0xdb, 0x92,
+ 0xe2, 0xd3, 0x65, 0x23, 0x6a, 0x63, 0x87, 0x49, 0xde, 0x93, 0x1d, 0xae, 0xaa, 0x0e, 0x4f, 0xc3,
+ 0xf9, 0xdb, 0x70, 0x83, 0x60, 0x53, 0x87, 0x24, 0x6e, 0x35, 0x64, 0x3a, 0xff, 0x21, 0x1a, 0x2c,
+ 0x63, 0x73, 0x20, 0x76, 0xed, 0x91, 0x2d, 0xeb, 0xb5, 0xbb, 0x99, 0x7b, 0x05, 0x23, 0x06, 0xf0,
+ 0xd7, 0x61, 0xcd, 0x12, 0x27, 0xe6, 0xc4, 0x91, 0x3d, 0x31, 0x1a, 0x3b, 0xa6, 0x14, 0x1d, 0x8b,
+ 0x64, 0xb4, 0x62, 0xcc, 0x3e, 0xe0, 0x6f, 0xc0, 0x35, 0x0d, 0x3c, 0x88, 0xb2, 0x0a, 0x1d, 0x8b,
+ 0xc2, 0x77, 0x15, 0x63, 0xde, 0xa3, 0xe6, 0x9e, 0x56, 0xc3, 0x78, 0x80, 0xa2, 0x9f, 0x1a, 0x2a,
+ 0xd0, 0x40, 0xaa, 0x13, 0xf9, 0x91, 0xe9, 0x38, 0xc2, 0xbf, 0x50, 0x4e, 0xee, 0x63, 0xd3, 0x3d,
+ 0x36, 0x5d, 0x96, 0xa3, 0x33, 0xd6, 0x74, 0x84, 0x6b, 0x99, 0xbe, 0x3a, 0x91, 0x1f, 0xd1, 0x81,
+ 0x5e, 0x68, 0xde, 0x83, 0x3c, 0x4d, 0x69, 0x05, 0x0a, 0xca, 0x4b, 0x22, 0x8f, 0x59, 0x7b, 0x48,
+ 0xa4, 0x91, 0x77, 0x71, 0xfb, 0xb1, 0x6c, 0xe3, 0x1f, 0x14, 0xa1, 0x1c, 0x4e, 0x5e, 0x98, 0x43,
+ 0xc8, 0xc4, 0x39, 0x04, 0x34, 0xe3, 0x82, 0xa7, 0x76, 0x60, 0x1f, 0x6b, 0xb3, 0xb4, 0x6c, 0xc4,
+ 0x00, 0xb4, 0x84, 0x9e, 0xdb, 0x96, 0x1c, 0xd2, 0x9e, 0x29, 0x18, 0xaa, 0xc1, 0xef, 0xc1, 0xaa,
+ 0x85, 0xf3, 0xe0, 0xf6, 0x9d, 0x89, 0x25, 0x7a, 0x78, 0x8a, 0xaa, 0x30, 0xc1, 0x34, 0x98, 0x7f,
+ 0x0c, 0x20, 0xed, 0x91, 0xd8, 0xf6, 0xfc, 0x91, 0x29, 0xb5, 0x6f, 0xf0, 0x8d, 0x97, 0x93, 0xea,
+ 0xf5, 0x5e, 0xc4, 0xc0, 0x48, 0x30, 0x43, 0xd6, 0xf8, 0x36, 0xcd, 0xba, 0xf4, 0x99, 0x58, 0x6f,
+ 0x45, 0x0c, 0x8c, 0x04, 0x33, 0xde, 0x83, 0xd2, 0x89, 0xe7, 0x8f, 0x26, 0x8e, 0xa9, 0xcf, 0xdc,
+ 0xf7, 0x5f, 0x92, 0xef, 0xb6, 0xa2, 0x26, 0xdd, 0x13, 0xb2, 0x8a, 0x63, 0xdc, 0x95, 0x05, 0x63,
+ 0xdc, 0xcd, 0x5f, 0x01, 0x88, 0x7b, 0xc8, 0x6f, 0x02, 0xdf, 0xf3, 0x5c, 0x39, 0x6c, 0x1d, 0x1f,
+ 0xfb, 0x1b, 0xe2, 0xc4, 0xf3, 0xc5, 0x96, 0x89, 0xc7, 0xeb, 0x0d, 0x58, 0x8b, 0xe0, 0xad, 0x13,
+ 0x29, 0x7c, 0x04, 0x93, 0x08, 0x74, 0x87, 0x9e, 0x2f, 0x95, 0x8d, 0x47, 0x3f, 0x9f, 0x74, 0x59,
+ 0x0e, 0x8f, 0xf4, 0x4e, 0xf7, 0x80, 0xe5, 0x9b, 0xf7, 0x00, 0xe2, 0xa9, 0x25, 0x5f, 0x88, 0x7e,
+ 0xbd, 0xf9, 0x50, 0x7b, 0x46, 0xd4, 0x7a, 0xf8, 0x36, 0xcb, 0x34, 0x7f, 0x91, 0x81, 0x6a, 0x62,
+ 0x48, 0x69, 0x9f, 0x79, 0xd3, 0x9b, 0xb8, 0x52, 0x39, 0xe9, 0xf4, 0xf3, 0xa9, 0xe9, 0x4c, 0xf0,
+ 0x70, 0x5f, 0x83, 0x1a, 0xb5, 0xb7, 0xec, 0x40, 0xda, 0x6e, 0x5f, 0xb2, 0x5c, 0x84, 0xa2, 0x0c,
+ 0x83, 0x7c, 0x84, 0xb2, 0xef, 0x69, 0x50, 0x81, 0x33, 0x58, 0x3e, 0x14, 0x7e, 0x5f, 0x84, 0x48,
+ 0x64, 0x0c, 0x6b, 0x48, 0x84, 0xa6, 0x8c, 0x61, 0x53, 0x0e, 0xbb, 0x93, 0x11, 0x2b, 0xa3, 0x51,
+ 0x89, 0x8d, 0xd6, 0x99, 0xf0, 0xd1, 0x96, 0xa9, 0xe0, 0x7b, 0x10, 0x80, 0xbb, 0xc1, 0x74, 0x19,
+ 0x84, 0xd8, 0x7b, 0xb6, 0xcb, 0xaa, 0x51, 0xc3, 0x3c, 0x67, 0xcb, 0xd8, 0x7f, 0x72, 0x1d, 0x58,
+ 0xad, 0xf1, 0x5f, 0x73, 0x90, 0x47, 0xbd, 0x8e, 0xbe, 0x6e, 0x52, 0x09, 0xa9, 0xbd, 0x92, 0x04,
+ 0x7d, 0xb6, 0xd3, 0x08, 0x79, 0x27, 0x4f, 0xa3, 0xf7, 0xa0, 0xda, 0x9f, 0x04, 0xd2, 0x1b, 0xd1,
+ 0x51, 0xac, 0xb3, 0x5d, 0x37, 0x67, 0xa2, 0x46, 0x34, 0x9d, 0x46, 0x12, 0x95, 0xbf, 0x03, 0xc5,
+ 0x13, 0x25, 0xf5, 0x2a, 0x6e, 0xf4, 0x85, 0x4b, 0x4e, 0x6b, 0x2d, 0xd9, 0x1a, 0x19, 0xc7, 0x65,
+ 0xcf, 0xec, 0xd8, 0x24, 0x48, 0x9f, 0xba, 0xc5, 0xe8, 0xd4, 0xfd, 0x15, 0x58, 0x11, 0x38, 0xe1,
+ 0x87, 0x8e, 0xd9, 0x17, 0x23, 0xe1, 0x86, 0xdb, 0xec, 0xed, 0x97, 0x18, 0x31, 0xad, 0x18, 0x0d,
+ 0x7b, 0x8a, 0x17, 0x6a, 0x1e, 0xd7, 0xc3, 0xc3, 0x3f, 0x74, 0xec, 0xcb, 0x46, 0x0c, 0x68, 0x7e,
+ 0x59, 0xeb, 0xcb, 0x12, 0xe4, 0x5a, 0x41, 0x5f, 0x47, 0x40, 0x44, 0xd0, 0x57, 0xee, 0xd5, 0x26,
+ 0x4d, 0x07, 0xcb, 0x36, 0xdf, 0x84, 0x4a, 0xf4, 0x06, 0x14, 0x9e, 0x7d, 0x4f, 0x76, 0xc7, 0xa2,
+ 0x6f, 0x9f, 0xd8, 0xc2, 0x52, 0xf2, 0xd9, 0x95, 0xa6, 0x2f, 0x55, 0x10, 0xb1, 0xed, 0x5a, 0x2c,
+ 0xdb, 0xf8, 0x9d, 0x32, 0x14, 0xd5, 0xe1, 0xab, 0x07, 0x5c, 0x89, 0x06, 0xfc, 0x5d, 0x28, 0x7b,
+ 0x63, 0xe1, 0x9b, 0xd2, 0xf3, 0x75, 0xe4, 0xe6, 0x9d, 0x97, 0x39, 0xcc, 0xd7, 0x0f, 0x34, 0xb1,
+ 0x11, 0xb1, 0x99, 0x96, 0xa6, 0xec, 0xac, 0x34, 0xdd, 0x07, 0x16, 0x9e, 0xdb, 0x87, 0x3e, 0xd2,
+ 0xc9, 0x0b, 0xed, 0x87, 0xcf, 0xc0, 0x79, 0x0f, 0x2a, 0x7d, 0xcf, 0xb5, 0xec, 0x28, 0x8a, 0xb3,
+ 0xf2, 0xf0, 0xeb, 0x2f, 0xd5, 0xc3, 0xcd, 0x90, 0xda, 0x88, 0x19, 0xf1, 0xd7, 0xa1, 0x70, 0x86,
+ 0x62, 0x46, 0xf2, 0x74, 0xb9, 0x10, 0x2a, 0x24, 0xfe, 0x09, 0x54, 0x7f, 0x30, 0xb1, 0xfb, 0xa7,
+ 0x07, 0xc9, 0x28, 0xe1, 0x7b, 0x2f, 0xd5, 0x8b, 0xef, 0xc6, 0xf4, 0x46, 0x92, 0x59, 0x42, 0xb4,
+ 0x4b, 0x7f, 0x0c, 0xd1, 0x2e, 0xcf, 0x8a, 0xb6, 0x01, 0x35, 0x57, 0x04, 0x52, 0x58, 0xdb, 0xda,
+ 0x56, 0x83, 0xcf, 0x60, 0xab, 0xa5, 0x59, 0x34, 0xbf, 0x04, 0xe5, 0x70, 0xc1, 0x79, 0x11, 0xb2,
+ 0xfb, 0xe8, 0x14, 0x15, 0x21, 0x7b, 0xe0, 0x2b, 0x69, 0x6b, 0xa1, 0xb4, 0x35, 0xff, 0x30, 0x03,
+ 0x95, 0x68, 0xd2, 0xd3, 0x9a, 0xb3, 0xfd, 0x83, 0x89, 0xe9, 0xb0, 0x0c, 0xb9, 0xcb, 0x9e, 0x54,
+ 0x2d, 0x52, 0xd6, 0x8f, 0x28, 0x59, 0xef, 0xb3, 0x1c, 0x99, 0x08, 0x22, 0x08, 0x58, 0x9e, 0x73,
+ 0x58, 0xd1, 0xe0, 0x03, 0x5f, 0xa1, 0x16, 0x50, 0xf1, 0xe1, 0xd3, 0x10, 0x50, 0x54, 0x16, 0xc5,
+ 0xa9, 0x50, 0x0a, 0x72, 0xdf, 0x93, 0xd4, 0x28, 0x63, 0xa7, 0x3a, 0x2e, 0xab, 0xe0, 0x3b, 0xf7,
+ 0x3d, 0xd9, 0x41, 0x95, 0x18, 0xb9, 0x67, 0xd5, 0xf0, 0xf5, 0xd4, 0x22, 0x8d, 0xd8, 0x72, 0x9c,
+ 0x8e, 0xcb, 0x6a, 0xfa, 0x81, 0x6a, 0xad, 0x20, 0xc7, 0xf6, 0xb9, 0xd9, 0x47, 0xf2, 0x55, 0xd4,
+ 0xb0, 0x48, 0xa3, 0xdb, 0x0c, 0xb7, 0x64, 0xfb, 0xdc, 0x0e, 0x64, 0xc0, 0xd6, 0x9a, 0xff, 0x36,
+ 0x03, 0xd5, 0xc4, 0x02, 0xa3, 0xfb, 0x47, 0x88, 0x78, 0x94, 0x29, 0x6f, 0xf0, 0x63, 0x9c, 0x46,
+ 0xdf, 0x0a, 0x8f, 0xa9, 0x9e, 0x87, 0x3f, 0xb3, 0xf8, 0xbe, 0x9e, 0x37, 0xf2, 0x7c, 0xdf, 0x7b,
+ 0xae, 0x4c, 0x9f, 0x5d, 0x33, 0x90, 0xcf, 0x84, 0x38, 0x65, 0x79, 0x1c, 0xea, 0xe6, 0xc4, 0xf7,
+ 0x85, 0xab, 0x00, 0x05, 0xea, 0x9c, 0x38, 0x57, 0xad, 0x22, 0x32, 0x45, 0x64, 0x3a, 0x07, 0x59,
+ 0x09, 0x15, 0x81, 0xc6, 0x56, 0x90, 0x32, 0x22, 0x20, 0xba, 0x6a, 0x56, 0xf0, 0x50, 0x51, 0x11,
+ 0x8a, 0x83, 0x93, 0x2d, 0xf3, 0x22, 0x68, 0x0d, 0x3c, 0x06, 0xd3, 0xc0, 0x7d, 0xef, 0x39, 0xab,
+ 0x36, 0x26, 0x00, 0xb1, 0x4f, 0x86, 0xbe, 0x28, 0x0a, 0x44, 0x94, 0x43, 0xd0, 0x2d, 0x7e, 0x00,
+ 0x80, 0xbf, 0x08, 0x33, 0x74, 0x48, 0x5f, 0xc2, 0x50, 0x26, 0x3a, 0x23, 0xc1, 0xa2, 0xf1, 0x17,
+ 0xa0, 0x12, 0x3d, 0xe0, 0x75, 0x28, 0x91, 0x49, 0x1b, 0xbd, 0x36, 0x6c, 0xa2, 0x7d, 0x66, 0xbb,
+ 0x96, 0x38, 0x27, 0xbd, 0x52, 0x30, 0x54, 0x03, 0x7b, 0x39, 0xb4, 0x2d, 0x4b, 0xb8, 0x61, 0xa6,
+ 0x47, 0xb5, 0xe6, 0xe5, 0xe3, 0xf3, 0x73, 0xf3, 0xf1, 0x8d, 0x5f, 0x85, 0x6a, 0xc2, 0x69, 0xbc,
+ 0x74, 0xd8, 0x89, 0x8e, 0x65, 0xd3, 0x1d, 0xbb, 0x0d, 0x95, 0xb0, 0x06, 0x24, 0xa0, 0xb3, 0xad,
+ 0x62, 0xc4, 0x80, 0xc6, 0x3f, 0xcd, 0xa2, 0x25, 0x8b, 0x43, 0x9b, 0x76, 0xf4, 0xb6, 0xa1, 0x18,
+ 0x48, 0x53, 0x4e, 0xc2, 0x62, 0x86, 0x05, 0x37, 0x68, 0x97, 0x68, 0x76, 0x96, 0x0c, 0x4d, 0xcd,
+ 0x3f, 0x80, 0x9c, 0x34, 0x07, 0x3a, 0x50, 0xfa, 0x95, 0xc5, 0x98, 0xf4, 0xcc, 0xc1, 0xce, 0x92,
+ 0x81, 0x74, 0x7c, 0x17, 0xca, 0x7d, 0x1d, 0xdb, 0xd2, 0x4a, 0x71, 0x41, 0x5f, 0x2c, 0x8c, 0x88,
+ 0xed, 0x2c, 0x19, 0x11, 0x07, 0xfe, 0x1d, 0xc8, 0xa3, 0x75, 0xa9, 0x6b, 0x3e, 0x16, 0xf4, 0x31,
+ 0x71, 0xbb, 0xec, 0x2c, 0x19, 0x44, 0xb9, 0x51, 0x82, 0x02, 0xe9, 0xe0, 0x46, 0x1d, 0x8a, 0x6a,
+ 0xac, 0xd3, 0x33, 0xd7, 0xb8, 0x05, 0xb9, 0x9e, 0x39, 0x40, 0x0b, 0xdf, 0xb6, 0x02, 0x1d, 0x2a,
+ 0xc1, 0x9f, 0x8d, 0x57, 0xe2, 0x38, 0x5d, 0x32, 0x04, 0x9c, 0x49, 0x85, 0x80, 0x1b, 0x45, 0xc8,
+ 0xe3, 0x1b, 0x1b, 0xb7, 0xaf, 0xf2, 0x16, 0x1a, 0xff, 0x28, 0x87, 0x8e, 0x85, 0x14, 0xe7, 0x73,
+ 0xc3, 0xdb, 0x1f, 0x41, 0x65, 0xec, 0x7b, 0x7d, 0x11, 0x04, 0x9e, 0xaf, 0x8d, 0xa3, 0xd7, 0x5f,
+ 0x9c, 0x7a, 0x5e, 0x3f, 0x0c, 0x69, 0x8c, 0x98, 0xbc, 0xf9, 0xaf, 0xb3, 0x50, 0x89, 0x1e, 0x28,
+ 0x7f, 0x46, 0x8a, 0x73, 0x15, 0xca, 0xdc, 0x13, 0xfe, 0xc8, 0xb4, 0x2d, 0xa5, 0x3d, 0x36, 0x87,
+ 0x66, 0x68, 0xe4, 0x7e, 0xec, 0x4d, 0xe4, 0xe4, 0x58, 0xa8, 0x10, 0xd6, 0x53, 0x7b, 0x24, 0x3c,
+ 0x96, 0xa7, 0xe4, 0x11, 0x0a, 0x76, 0xdf, 0xf1, 0x26, 0x16, 0x2b, 0x60, 0xfb, 0x11, 0x1d, 0x6f,
+ 0x7b, 0xe6, 0x38, 0x50, 0x3a, 0x73, 0xcf, 0xf6, 0x3d, 0x56, 0x42, 0xa2, 0x6d, 0x7b, 0x30, 0x32,
+ 0x59, 0x19, 0x99, 0xf5, 0x9e, 0xdb, 0x12, 0x95, 0x70, 0x05, 0xcd, 0xd4, 0x83, 0xb1, 0x70, 0xbb,
+ 0xd2, 0x17, 0x42, 0xee, 0x99, 0x63, 0x15, 0xd3, 0x34, 0x84, 0x65, 0xd9, 0x52, 0xe9, 0xcf, 0x6d,
+ 0xb3, 0x2f, 0x8e, 0x3d, 0xef, 0x94, 0x2d, 0xa3, 0xa2, 0xe9, 0xb8, 0x81, 0x34, 0x07, 0xbe, 0x39,
+ 0x52, 0x3a, 0xb4, 0x27, 0x1c, 0x41, 0xad, 0x15, 0x7a, 0xb7, 0x2d, 0x87, 0x93, 0xe3, 0x47, 0xe8,
+ 0xf7, 0xad, 0xaa, 0x3c, 0x93, 0x25, 0xc6, 0x02, 0x75, 0xe8, 0x32, 0x94, 0x37, 0x6c, 0xc7, 0x3e,
+ 0xb6, 0x1d, 0x9b, 0xad, 0x21, 0x6a, 0xfb, 0xbc, 0x6f, 0x3a, 0xb6, 0xe5, 0x9b, 0xcf, 0x19, 0xc7,
+ 0xce, 0x3d, 0xf6, 0xbd, 0x53, 0x9b, 0x5d, 0x43, 0x44, 0x72, 0x03, 0xcf, 0xec, 0x1f, 0xb2, 0xeb,
+ 0x94, 0x2b, 0x3b, 0x15, 0xb2, 0x3f, 0x3c, 0x31, 0x8f, 0xd9, 0x8d, 0x38, 0xa4, 0x77, 0xb3, 0xb1,
+ 0x06, 0xab, 0x53, 0x59, 0xf9, 0x46, 0x49, 0x7b, 0x9f, 0x8d, 0x1a, 0x54, 0x13, 0xe9, 0xd2, 0xc6,
+ 0xab, 0x50, 0x0e, 0x93, 0xa9, 0xe8, 0xa5, 0xdb, 0x81, 0x0a, 0x03, 0x6b, 0x21, 0x89, 0xda, 0x8d,
+ 0xff, 0x98, 0x81, 0xa2, 0xca, 0x64, 0xf3, 0x8d, 0xa8, 0xf2, 0x24, 0xb3, 0x40, 0xf6, 0x52, 0x11,
+ 0xe9, 0xdc, 0x6f, 0x54, 0x7e, 0x72, 0x1d, 0x0a, 0x0e, 0xb9, 0xe3, 0x5a, 0x7d, 0x51, 0x23, 0xa1,
+ 0x6d, 0x72, 0x29, 0x6d, 0x73, 0x1b, 0x2a, 0xe6, 0x44, 0x7a, 0x94, 0xa4, 0xd3, 0x19, 0x8c, 0x18,
+ 0xd0, 0x6c, 0x45, 0xd9, 0xe8, 0x30, 0x30, 0x49, 0x36, 0x63, 0xcf, 0x17, 0x42, 0x05, 0x1d, 0xc9,
+ 0xd7, 0xce, 0xd2, 0x49, 0xe2, 0x8d, 0xc6, 0x66, 0x5f, 0x12, 0x80, 0xce, 0x58, 0x54, 0xb5, 0x2c,
+ 0x8f, 0x7b, 0x60, 0x73, 0x68, 0xca, 0xe6, 0x09, 0x94, 0x0f, 0xbd, 0x60, 0xfa, 0xc4, 0x2e, 0x41,
+ 0xae, 0xe7, 0x8d, 0x95, 0xfd, 0xb9, 0xe1, 0x49, 0xb2, 0x3f, 0xd5, 0x01, 0x7d, 0x22, 0x95, 0xc8,
+ 0x19, 0xf6, 0x60, 0x28, 0x95, 0x9f, 0xde, 0x71, 0x5d, 0xe1, 0xb3, 0x02, 0xae, 0xb0, 0x21, 0xc6,
+ 0x68, 0xf3, 0xb2, 0x22, 0xae, 0x29, 0xc1, 0xb7, 0x6d, 0x3f, 0x90, 0xac, 0xd4, 0xec, 0xe0, 0x59,
+ 0x6b, 0x0f, 0xe8, 0x88, 0xa4, 0x1f, 0xc4, 0x6a, 0x09, 0xbb, 0x48, 0xcd, 0x4d, 0xe1, 0xa2, 0x04,
+ 0x92, 0x6f, 0xa5, 0x1c, 0x43, 0x7a, 0x41, 0x16, 0xcf, 0x37, 0x6a, 0x7f, 0x34, 0x09, 0xa4, 0x7d,
+ 0x72, 0xc1, 0x72, 0xcd, 0x67, 0x50, 0x4b, 0x15, 0x39, 0xf1, 0xeb, 0xc0, 0x52, 0x00, 0xec, 0xfa,
+ 0x12, 0xbf, 0x05, 0xd7, 0x52, 0xd0, 0x3d, 0xdb, 0xb2, 0x28, 0x12, 0x3c, 0xfd, 0x20, 0x1c, 0xe0,
+ 0x46, 0x05, 0x4a, 0x7d, 0xb5, 0x86, 0xcd, 0x43, 0xa8, 0xd1, 0xa2, 0xee, 0x09, 0x69, 0x1e, 0xb8,
+ 0xce, 0xc5, 0x1f, 0xbb, 0x12, 0xad, 0xf9, 0x55, 0xed, 0x7e, 0xa1, 0x36, 0x39, 0xf1, 0xbd, 0x11,
+ 0xf1, 0x2a, 0x18, 0xf4, 0x1b, 0xb9, 0x4b, 0x4f, 0x4b, 0x46, 0x56, 0x7a, 0xcd, 0x5f, 0x56, 0xa0,
+ 0xd4, 0xea, 0xf7, 0xd1, 0x61, 0x9c, 0x79, 0xf3, 0x3b, 0x50, 0xec, 0x7b, 0xee, 0x89, 0x3d, 0xd0,
+ 0xda, 0x7a, 0xda, 0x6e, 0xd4, 0x74, 0x28, 0x8e, 0x27, 0xf6, 0xc0, 0xd0, 0xc8, 0x48, 0xa6, 0x4f,
+ 0x9b, 0xc2, 0x95, 0x64, 0x4a, 0xe5, 0x46, 0x87, 0xcb, 0x03, 0xc8, 0xdb, 0xee, 0x89, 0xa7, 0xcb,
+ 0x46, 0x3f, 0x7f, 0x09, 0x11, 0xd5, 0x4e, 0x12, 0x62, 0xe3, 0x3f, 0x67, 0xa0, 0xa8, 0x5e, 0xcd,
+ 0x5f, 0x85, 0x15, 0xe1, 0xe2, 0x56, 0x0b, 0x15, 0xbd, 0xde, 0x63, 0x53, 0x50, 0x34, 0x69, 0x35,
+ 0x44, 0x1c, 0x4f, 0x06, 0x3a, 0x32, 0x93, 0x04, 0xf1, 0xf7, 0xe0, 0x96, 0x6a, 0x1e, 0xfa, 0xc2,
+ 0x17, 0x8e, 0x30, 0x03, 0xb1, 0x39, 0x34, 0x5d, 0x57, 0x38, 0xfa, 0xd8, 0xbf, 0xec, 0x31, 0x6f,
+ 0xc2, 0xb2, 0x7a, 0xd4, 0x1d, 0x9b, 0x7d, 0x11, 0xe8, 0xbd, 0x94, 0x82, 0xf1, 0xaf, 0x41, 0x81,
+ 0xaa, 0x6a, 0xeb, 0xd6, 0xd5, 0x4b, 0xa9, 0xb0, 0x1a, 0x5e, 0x74, 0x2e, 0xb5, 0x00, 0xd4, 0x34,
+ 0xa1, 0x4b, 0xa6, 0x75, 0xc3, 0x17, 0xaf, 0x9c, 0x57, 0xf2, 0x0e, 0x13, 0x44, 0xd8, 0x3f, 0x4b,
+ 0x38, 0x82, 0xca, 0x1f, 0xf1, 0xdc, 0xcc, 0x52, 0xde, 0x25, 0x05, 0x6b, 0xfc, 0xa7, 0x3c, 0xe4,
+ 0x71, 0x86, 0x11, 0x79, 0xe8, 0x8d, 0x44, 0x14, 0x7d, 0x56, 0x86, 0x48, 0x0a, 0x86, 0x86, 0x8f,
+ 0xa9, 0x0a, 0x00, 0x22, 0x34, 0xa5, 0x5a, 0xa6, 0xc1, 0x88, 0x39, 0xf6, 0xbd, 0x13, 0xdb, 0x89,
+ 0x31, 0xb5, 0x89, 0x34, 0x05, 0xe6, 0x5f, 0x87, 0x9b, 0x23, 0xd3, 0x3f, 0x15, 0x92, 0x76, 0xf7,
+ 0x33, 0xcf, 0x3f, 0x0d, 0x70, 0xe6, 0x3a, 0x96, 0x0e, 0x5b, 0x5e, 0xf2, 0x94, 0xbf, 0x0e, 0x6b,
+ 0xcf, 0xc3, 0x66, 0xf4, 0x0e, 0x15, 0x38, 0x9c, 0x7d, 0x80, 0xca, 0xd8, 0x12, 0x67, 0x36, 0xf1,
+ 0x2d, 0xab, 0xda, 0xda, 0xb0, 0x8d, 0xa2, 0x64, 0xaa, 0x89, 0xec, 0xea, 0x37, 0xeb, 0xfc, 0x53,
+ 0x1a, 0x8a, 0x7a, 0x53, 0xd5, 0x1c, 0x05, 0x1d, 0x8b, 0xe2, 0xae, 0x15, 0x23, 0x06, 0xa0, 0xa0,
+ 0xd1, 0x2b, 0x9f, 0x2a, 0x95, 0x5b, 0x53, 0x0e, 0x6a, 0x02, 0x84, 0x18, 0x52, 0xf4, 0x87, 0xe1,
+ 0x4b, 0x54, 0x50, 0x34, 0x09, 0xe2, 0x77, 0x00, 0x06, 0xa6, 0x14, 0xcf, 0xcd, 0x8b, 0x27, 0xbe,
+ 0x53, 0x17, 0x2a, 0x91, 0x12, 0x43, 0xd0, 0xc5, 0x75, 0xbc, 0xbe, 0xe9, 0x74, 0xa5, 0xe7, 0x9b,
+ 0x03, 0x71, 0x68, 0xca, 0x61, 0x7d, 0xa0, 0x5c, 0xdc, 0x69, 0x38, 0x8e, 0x58, 0xda, 0x23, 0xf1,
+ 0x89, 0xe7, 0x8a, 0xfa, 0x50, 0x8d, 0x38, 0x6c, 0x63, 0x4f, 0x4c, 0xd7, 0x74, 0x2e, 0xa4, 0xdd,
+ 0xc7, 0xb1, 0xd8, 0xaa, 0x27, 0x09, 0x10, 0x05, 0x15, 0x84, 0xc4, 0x79, 0xec, 0x58, 0xf5, 0xef,
+ 0xab, 0xb1, 0x46, 0x00, 0x5c, 0x5d, 0x21, 0x87, 0xc2, 0x17, 0x93, 0x51, 0xcb, 0xb2, 0x7c, 0x11,
+ 0x04, 0xf5, 0x53, 0xb5, 0xba, 0x53, 0xe0, 0xc6, 0x37, 0x29, 0xcd, 0x35, 0x6c, 0xbe, 0x05, 0xb5,
+ 0x5d, 0xec, 0x61, 0x6b, 0x6c, 0x77, 0xfb, 0xde, 0x58, 0xa0, 0x42, 0xa7, 0x80, 0x31, 0x85, 0x17,
+ 0xaa, 0x50, 0xfa, 0x28, 0xf0, 0xdc, 0xd6, 0x61, 0x47, 0x1d, 0x31, 0xdb, 0x13, 0xc7, 0x61, 0xd9,
+ 0xe6, 0x01, 0x40, 0x2c, 0xd9, 0x78, 0x5c, 0xb4, 0x28, 0xa7, 0xc4, 0x96, 0x54, 0x30, 0xcb, 0xb5,
+ 0x6c, 0x77, 0xb0, 0xa5, 0x85, 0x99, 0x65, 0x10, 0x48, 0x41, 0x0a, 0x61, 0x45, 0x40, 0x32, 0x67,
+ 0xa8, 0x25, 0x2c, 0x96, 0x6b, 0xfe, 0x9f, 0x0c, 0x54, 0x13, 0x25, 0x14, 0x7f, 0x82, 0x65, 0x1f,
+ 0x78, 0xd8, 0xa3, 0xb9, 0x80, 0xeb, 0xa6, 0x04, 0x3d, 0x6a, 0xe3, 0xaa, 0xea, 0x0a, 0x0f, 0x7c,
+ 0xaa, 0x42, 0x12, 0x09, 0xc8, 0x67, 0x2a, 0xf9, 0x68, 0x3e, 0xd4, 0x71, 0x9d, 0x2a, 0x94, 0x9e,
+ 0xb8, 0xa7, 0xae, 0xf7, 0xdc, 0x55, 0xe7, 0x34, 0xd5, 0xf1, 0xa4, 0x32, 0x92, 0x61, 0xa9, 0x4d,
+ 0xae, 0xf9, 0x2f, 0xf2, 0x53, 0x25, 0x6f, 0x6d, 0x28, 0x2a, 0x67, 0x82, 0xec, 0xdc, 0xd9, 0x1a,
+ 0xa5, 0x24, 0xb2, 0xce, 0x7e, 0x25, 0x40, 0x86, 0x26, 0x46, 0x2b, 0x3f, 0x2a, 0x08, 0xcd, 0xce,
+ 0xcd, 0xd2, 0xa5, 0x18, 0x85, 0xba, 0x39, 0x55, 0x13, 0x1d, 0x71, 0x68, 0xfc, 0xb5, 0x0c, 0x5c,
+ 0x9f, 0x87, 0x92, 0xac, 0x1c, 0xcf, 0xa4, 0x2b, 0xc7, 0xbb, 0x53, 0x95, 0xd8, 0x59, 0x1a, 0xcd,
+ 0x83, 0x97, 0xec, 0x44, 0xba, 0x2e, 0xbb, 0xf9, 0x7b, 0x19, 0x58, 0x9b, 0x19, 0x73, 0xc2, 0x8e,
+ 0x01, 0x28, 0x2a, 0xc9, 0x52, 0x85, 0x52, 0x51, 0xe9, 0x8a, 0x4a, 0x3d, 0xd0, 0x09, 0x1f, 0xa8,
+ 0x5a, 0x00, 0x5d, 0x7b, 0xae, 0x8c, 0x68, 0x5c, 0x35, 0x3c, 0x40, 0x06, 0x42, 0x85, 0x69, 0x95,
+ 0xb1, 0xa5, 0x21, 0x45, 0x65, 0xe8, 0xaa, 0xfc, 0x08, 0x2b, 0x51, 0x01, 0xd6, 0x64, 0xec, 0xd8,
+ 0x7d, 0x6c, 0x96, 0x79, 0x03, 0x6e, 0xaa, 0x0b, 0x08, 0xda, 0xa9, 0x3c, 0xe9, 0x0d, 0x6d, 0xda,
+ 0x1c, 0xac, 0x82, 0xef, 0x39, 0x9c, 0x1c, 0x3b, 0x76, 0x30, 0x64, 0xd0, 0x34, 0xe0, 0xda, 0x9c,
+ 0x01, 0x52, 0x97, 0x9f, 0xea, 0xee, 0xaf, 0x00, 0x6c, 0x3d, 0x0d, 0x3b, 0xcd, 0x32, 0x9c, 0xc3,
+ 0xca, 0xd6, 0xd3, 0x24, 0x77, 0xbd, 0x79, 0x9e, 0xa2, 0xf6, 0x0a, 0x58, 0xae, 0xf9, 0x6b, 0x99,
+ 0xb0, 0x42, 0xa2, 0xf1, 0xe7, 0xa1, 0xa6, 0x3a, 0x7c, 0x68, 0x5e, 0x38, 0x9e, 0x69, 0xf1, 0x36,
+ 0xac, 0x04, 0xd1, 0x15, 0x99, 0xc4, 0x81, 0x35, 0x6d, 0x08, 0x74, 0x53, 0x48, 0xc6, 0x14, 0x51,
+ 0xe8, 0x28, 0x65, 0xe3, 0xb4, 0x0a, 0x27, 0x97, 0xcf, 0xa4, 0x2d, 0xb7, 0x4c, 0x4e, 0x9c, 0xd9,
+ 0xfc, 0x1a, 0xac, 0x75, 0x63, 0xe5, 0xae, 0x2c, 0x6a, 0x14, 0x0e, 0x75, 0x32, 0x6c, 0x85, 0xc2,
+ 0xa1, 0x9b, 0xcd, 0x7f, 0x5c, 0x02, 0x88, 0x53, 0x48, 0x73, 0xf6, 0xfc, 0xbc, 0x8a, 0x88, 0x99,
+ 0x84, 0x6e, 0xee, 0xa5, 0x13, 0xba, 0xef, 0x45, 0x86, 0xbd, 0x0a, 0x2f, 0x4f, 0x97, 0x85, 0xc7,
+ 0x7d, 0x9a, 0x36, 0xe7, 0x53, 0x05, 0x43, 0x85, 0xe9, 0x82, 0xa1, 0xbb, 0xb3, 0xd5, 0x85, 0x53,
+ 0xca, 0x28, 0x8e, 0x5b, 0x94, 0x52, 0x71, 0x8b, 0x06, 0x94, 0x7d, 0x61, 0x5a, 0x9e, 0xeb, 0x5c,
+ 0x84, 0x79, 0xc3, 0xb0, 0xcd, 0xdf, 0x82, 0x82, 0xa4, 0x5b, 0x3e, 0x65, 0xda, 0x3b, 0x2f, 0x58,
+ 0x38, 0x85, 0x8b, 0x9a, 0xcd, 0x0e, 0x74, 0x49, 0xa0, 0x3a, 0x35, 0xcb, 0x46, 0x02, 0xc2, 0xd7,
+ 0x81, 0xdb, 0xe8, 0xc4, 0x39, 0x8e, 0xb0, 0x36, 0x2e, 0xb6, 0x54, 0x3a, 0x8f, 0xce, 0xf5, 0xb2,
+ 0x31, 0xe7, 0x49, 0xb8, 0xfe, 0xcb, 0xf1, 0xfa, 0x53, 0x97, 0xcf, 0xec, 0x00, 0x47, 0x5a, 0x23,
+ 0xf3, 0x25, 0x6a, 0xa3, 0xe5, 0x10, 0x6e, 0x58, 0x35, 0x97, 0x24, 0xbd, 0x71, 0x4e, 0xfc, 0x92,
+ 0xa7, 0xe1, 0xf4, 0xaa, 0xc0, 0xcd, 0x2a, 0x31, 0x8d, 0x01, 0xa4, 0xc9, 0xfb, 0x9e, 0xbb, 0x8f,
+ 0x12, 0xc1, 0xb4, 0x26, 0xd7, 0x6d, 0x1c, 0xef, 0xd8, 0x99, 0xf8, 0xa6, 0x43, 0x4f, 0xd7, 0x94,
+ 0x26, 0x8f, 0x21, 0xcd, 0x3f, 0xc8, 0x46, 0xce, 0x53, 0x05, 0x0a, 0xc7, 0x66, 0x60, 0xf7, 0xd5,
+ 0xe9, 0xa6, 0x8d, 0x1e, 0x75, 0xba, 0x49, 0xcf, 0xf2, 0x58, 0x16, 0xfd, 0xa0, 0x40, 0xe8, 0x74,
+ 0x4e, 0x7c, 0xa7, 0x8a, 0xe5, 0x51, 0x05, 0x84, 0x92, 0xa4, 0x6a, 0x86, 0x88, 0x94, 0x82, 0x73,
+ 0x56, 0x54, 0x8d, 0x49, 0x6e, 0x36, 0x1d, 0x31, 0xac, 0x8c, 0x38, 0xae, 0x27, 0x85, 0x0a, 0x4d,
+ 0x92, 0xdc, 0x33, 0x40, 0x36, 0xe1, 0x25, 0x01, 0x56, 0x45, 0xc7, 0x24, 0x64, 0xaa, 0xe2, 0x89,
+ 0x01, 0xb9, 0x6d, 0xcb, 0xb8, 0xef, 0xd3, 0x0f, 0x58, 0x0d, 0x7b, 0x14, 0x5f, 0xd5, 0x62, 0x2b,
+ 0xc8, 0xd5, 0xa4, 0x4a, 0x96, 0x55, 0xfc, 0x79, 0x46, 0xf5, 0x2d, 0x0c, 0xdf, 0x6a, 0xa1, 0x5e,
+ 0x5a, 0xc3, 0x9e, 0x45, 0x86, 0x0e, 0xe3, 0xe8, 0x77, 0x8d, 0x4d, 0x74, 0x82, 0xec, 0xb1, 0xe9,
+ 0x4a, 0x76, 0x0d, 0x87, 0x3a, 0xb6, 0x4e, 0xd8, 0x75, 0x24, 0xe9, 0x0f, 0x4d, 0xc9, 0x6e, 0x20,
+ 0x0e, 0xfe, 0xda, 0x12, 0x3e, 0x4a, 0x0a, 0xbb, 0x89, 0x38, 0xd2, 0x1c, 0xb0, 0x5b, 0xcd, 0xdf,
+ 0x8c, 0xeb, 0xa1, 0xdf, 0x88, 0xdc, 0x93, 0x45, 0xb6, 0x0f, 0x3a, 0x30, 0xf3, 0xf6, 0x72, 0x1b,
+ 0xd6, 0x7c, 0xf1, 0x83, 0x89, 0x9d, 0xba, 0x25, 0x90, 0xbb, 0xba, 0x0c, 0x65, 0x96, 0xa2, 0x79,
+ 0x06, 0x6b, 0x61, 0xe3, 0x99, 0x2d, 0x87, 0x14, 0x47, 0xe2, 0x6f, 0x25, 0xae, 0x31, 0x64, 0xe6,
+ 0x5e, 0xff, 0x8a, 0x58, 0xc6, 0xd7, 0x16, 0xa2, 0x3c, 0x41, 0x76, 0x81, 0x3c, 0x41, 0xf3, 0x7f,
+ 0x27, 0x13, 0xcf, 0xca, 0x61, 0xb3, 0x22, 0x87, 0x6d, 0x36, 0x11, 0x1d, 0x87, 0xfe, 0xb3, 0x2f,
+ 0x13, 0xfa, 0x9f, 0x57, 0xd4, 0xf1, 0x3e, 0xfa, 0x0f, 0xb4, 0x33, 0x9f, 0x2e, 0x90, 0xd6, 0x48,
+ 0xe1, 0xf2, 0x0d, 0x4a, 0x2b, 0x9b, 0x5d, 0x55, 0x71, 0x54, 0x98, 0x7b, 0xa9, 0x28, 0x99, 0x3f,
+ 0xd6, 0x98, 0x46, 0x82, 0x2a, 0xa1, 0xc7, 0x8a, 0xf3, 0xf4, 0x18, 0xfa, 0xce, 0x5a, 0xc3, 0x45,
+ 0x6d, 0x95, 0x05, 0x52, 0xbf, 0x43, 0xf6, 0xb4, 0xc7, 0xcb, 0xc6, 0x0c, 0x1c, 0x8d, 0xbd, 0xd1,
+ 0xc4, 0x91, 0xb6, 0x4e, 0x74, 0xa8, 0xc6, 0xf4, 0xad, 0xc7, 0xca, 0xec, 0xad, 0xc7, 0x0f, 0x01,
+ 0x02, 0x81, 0xbb, 0x63, 0xcb, 0xee, 0x4b, 0x5d, 0x97, 0x74, 0xe7, 0xb2, 0xb1, 0xe9, 0xf4, 0x4c,
+ 0x82, 0x02, 0xfb, 0x3f, 0x32, 0xcf, 0x29, 0x65, 0xab, 0x0b, 0x28, 0xa2, 0xf6, 0xb4, 0x76, 0x5f,
+ 0x99, 0xd5, 0xee, 0x6f, 0x41, 0x21, 0x40, 0x13, 0x9a, 0x2e, 0xee, 0x5c, 0xbe, 0xbe, 0xeb, 0x64,
+ 0x67, 0x1b, 0x0a, 0x97, 0x02, 0x96, 0xa8, 0xff, 0x3c, 0x9f, 0xae, 0xec, 0x54, 0x8c, 0xb0, 0x99,
+ 0xd2, 0xb0, 0x37, 0xd3, 0x1a, 0xb6, 0x61, 0x41, 0x51, 0x27, 0x1f, 0xa6, 0x03, 0x05, 0x61, 0xd8,
+ 0x32, 0x9b, 0x08, 0x5b, 0x46, 0xd5, 0xaf, 0xb9, 0x64, 0xf5, 0xeb, 0xd4, 0xad, 0xbe, 0xc2, 0xcc,
+ 0xad, 0xbe, 0xe6, 0x27, 0x50, 0x50, 0x3e, 0x01, 0x84, 0xe6, 0xa8, 0x32, 0x65, 0x71, 0x50, 0x2c,
+ 0xc3, 0xaf, 0x03, 0x0b, 0x04, 0xd9, 0x3a, 0xa2, 0x6b, 0x8e, 0x04, 0x29, 0xc9, 0x2c, 0xaf, 0xc3,
+ 0x75, 0x85, 0x1b, 0xa4, 0x9f, 0x90, 0xc1, 0xe5, 0xd8, 0xc7, 0xbe, 0xe9, 0x5f, 0xb0, 0x7c, 0xf3,
+ 0x43, 0x4a, 0xfd, 0x87, 0x02, 0x55, 0x8d, 0x6e, 0x51, 0x2a, 0xb5, 0x6c, 0x69, 0xed, 0x43, 0x95,
+ 0x23, 0xda, 0xdb, 0x53, 0xf5, 0x74, 0xe4, 0x4e, 0x51, 0x3c, 0x68, 0x39, 0x79, 0xc6, 0xff, 0x89,
+ 0xed, 0xb7, 0xe6, 0x46, 0xc2, 0x62, 0x4c, 0x17, 0xc8, 0x65, 0x16, 0x2d, 0x90, 0x6b, 0x3e, 0x86,
+ 0x55, 0x23, 0xad, 0xd3, 0xf9, 0x7b, 0x50, 0xf2, 0xc6, 0x49, 0x3e, 0x2f, 0x92, 0xcb, 0x10, 0xbd,
+ 0xf9, 0xb3, 0x0c, 0x2c, 0x77, 0x5c, 0x29, 0x7c, 0xd7, 0x74, 0xb6, 0x1d, 0x73, 0xc0, 0xdf, 0x0d,
+ 0xb5, 0xd4, 0xfc, 0xd8, 0x43, 0x12, 0x37, 0xad, 0xb0, 0x1c, 0x1d, 0x64, 0xe7, 0x37, 0x60, 0x4d,
+ 0x58, 0xb6, 0xf4, 0x7c, 0x65, 0x27, 0x87, 0x75, 0x8c, 0xd7, 0x81, 0x29, 0x70, 0x97, 0xb6, 0x44,
+ 0x4f, 0x2d, 0x73, 0x1d, 0xae, 0xa7, 0xa0, 0xa1, 0x11, 0x9c, 0xe5, 0xb7, 0xa1, 0x1e, 0x9f, 0x46,
+ 0x5b, 0x9e, 0x2b, 0x3b, 0xae, 0x25, 0xce, 0xc9, 0xc8, 0x62, 0xb9, 0xe6, 0x6f, 0x44, 0xe6, 0xdd,
+ 0x53, 0x5d, 0xe5, 0xe8, 0x7b, 0x5e, 0x7c, 0x85, 0x56, 0xb7, 0x12, 0x57, 0xb5, 0xb3, 0x0b, 0x5c,
+ 0xd5, 0xfe, 0x30, 0xbe, 0x6e, 0xab, 0x0e, 0x8a, 0x57, 0xe6, 0x9e, 0x3e, 0x54, 0x9c, 0xa5, 0xad,
+ 0xfb, 0xae, 0x48, 0xdc, 0xbd, 0x7d, 0x53, 0xbb, 0x74, 0xf9, 0x45, 0xac, 0x60, 0x55, 0xc7, 0xf0,
+ 0xce, 0xf4, 0x1d, 0x8f, 0xc5, 0x8a, 0x24, 0x67, 0x0c, 0x55, 0x78, 0x69, 0x43, 0xf5, 0xdb, 0x53,
+ 0xde, 0x53, 0x79, 0x6e, 0x38, 0xee, 0x8a, 0x1b, 0xac, 0xdf, 0x86, 0xd2, 0xd0, 0x0e, 0xa4, 0xe7,
+ 0xab, 0x5b, 0xd5, 0xb3, 0xb7, 0xc0, 0x12, 0xb3, 0xb5, 0xa3, 0x10, 0xa9, 0xa2, 0x2d, 0xa4, 0xe2,
+ 0xdf, 0x83, 0x35, 0x9a, 0xf8, 0xc3, 0xd8, 0x6a, 0x08, 0xea, 0xd5, 0xb9, 0x95, 0x84, 0x09, 0x56,
+ 0x1b, 0x53, 0x24, 0xc6, 0x2c, 0x93, 0xc6, 0x00, 0x20, 0x5e, 0x9f, 0x19, 0x2d, 0xf6, 0x19, 0x6e,
+ 0x55, 0xdf, 0x84, 0x62, 0x30, 0x39, 0x8e, 0xb3, 0x71, 0xba, 0xd5, 0x38, 0x87, 0xc6, 0x8c, 0x75,
+ 0x70, 0x28, 0x7c, 0xd5, 0xdd, 0x2b, 0xaf, 0x76, 0x7f, 0x98, 0x5c, 0x78, 0x25, 0x9c, 0x77, 0x2f,
+ 0x59, 0xbd, 0x88, 0x73, 0x42, 0x02, 0x1a, 0xef, 0x40, 0x35, 0x31, 0xa9, 0xa8, 0x99, 0x27, 0xae,
+ 0xe5, 0x85, 0x21, 0x60, 0xfc, 0xad, 0xae, 0xb6, 0x59, 0x61, 0x10, 0x98, 0x7e, 0x37, 0x0c, 0x60,
+ 0xd3, 0x13, 0x78, 0x85, 0x87, 0xfd, 0x0a, 0xd4, 0x12, 0x26, 0x5d, 0x14, 0x1e, 0x4c, 0x03, 0x9b,
+ 0x67, 0xf0, 0xf9, 0x04, 0xbb, 0x43, 0xe1, 0x8f, 0xec, 0x00, 0x0f, 0x12, 0xe5, 0x2c, 0x92, 0x69,
+ 0x6d, 0x09, 0x57, 0xda, 0x32, 0xd4, 0xa0, 0x51, 0x9b, 0x7f, 0x13, 0x0a, 0x63, 0xe1, 0x8f, 0x02,
+ 0xad, 0x45, 0xa7, 0x25, 0x68, 0x2e, 0xdb, 0xc0, 0x50, 0x34, 0xcd, 0x7f, 0x98, 0x81, 0xf2, 0x9e,
+ 0x90, 0x26, 0xda, 0x0e, 0x7c, 0x6f, 0xea, 0x2d, 0xb3, 0x19, 0xe4, 0x10, 0x75, 0x5d, 0xbb, 0xaf,
+ 0xeb, 0x1d, 0x8d, 0xaf, 0xdb, 0x3b, 0x4b, 0x71, 0xc7, 0x1a, 0x1b, 0x50, 0xd2, 0xe0, 0xc6, 0xbb,
+ 0xb0, 0x3a, 0x85, 0x49, 0xf3, 0xa2, 0x6c, 0xfb, 0xee, 0xc5, 0x28, 0x2c, 0x73, 0x5a, 0x36, 0xd2,
+ 0xc0, 0x8d, 0x0a, 0x94, 0xc6, 0x8a, 0xa0, 0xf9, 0x07, 0x37, 0xa8, 0xb8, 0xc6, 0x3e, 0x41, 0x9f,
+ 0x7e, 0xde, 0xc9, 0x7a, 0x07, 0x80, 0x8e, 0x66, 0x55, 0x82, 0xa1, 0x42, 0xb6, 0x09, 0x08, 0x7f,
+ 0x3f, 0x8a, 0xb5, 0xe7, 0xe7, 0x1a, 0x55, 0x49, 0xe6, 0xd3, 0x01, 0xf7, 0x3a, 0x94, 0xec, 0x80,
+ 0xe2, 0x70, 0xba, 0x6c, 0x29, 0x6c, 0xf2, 0x6f, 0x41, 0xd1, 0x1e, 0x8d, 0x3d, 0x5f, 0xea, 0x60,
+ 0xfc, 0x95, 0x5c, 0x3b, 0x84, 0xb9, 0xb3, 0x64, 0x68, 0x1a, 0xa4, 0x16, 0xe7, 0x44, 0x5d, 0x7e,
+ 0x31, 0x75, 0xfb, 0x3c, 0xa4, 0x56, 0x34, 0xfc, 0xbb, 0x50, 0x1b, 0xa8, 0xaa, 0x4d, 0xc5, 0x58,
+ 0x2b, 0x91, 0xaf, 0x5c, 0xc5, 0xe4, 0x51, 0x92, 0x60, 0x67, 0xc9, 0x48, 0x73, 0x40, 0x96, 0x68,
+ 0xc0, 0x8b, 0x40, 0xf6, 0xbc, 0x8f, 0x3c, 0xdb, 0x25, 0x77, 0xf7, 0x05, 0x2c, 0x8d, 0x24, 0x01,
+ 0xb2, 0x4c, 0x71, 0xe0, 0x5f, 0x47, 0x8b, 0x27, 0x90, 0xfa, 0x62, 0xfb, 0xdd, 0xab, 0x38, 0xf5,
+ 0x44, 0xa0, 0xaf, 0xa4, 0x07, 0x92, 0x9f, 0x43, 0x23, 0xb1, 0x49, 0xf4, 0x4b, 0x5a, 0xe3, 0xb1,
+ 0xef, 0xa1, 0xcf, 0x5c, 0x23, 0x6e, 0x5f, 0xbf, 0x8a, 0xdb, 0xe1, 0xa5, 0xd4, 0x3b, 0x4b, 0xc6,
+ 0x15, 0xbc, 0x79, 0x0f, 0x3d, 0x3b, 0x3d, 0x84, 0x5d, 0x61, 0x9e, 0x85, 0xd7, 0xe2, 0xef, 0x2f,
+ 0x34, 0x0b, 0x44, 0xb1, 0xb3, 0x64, 0x4c, 0xf1, 0xe0, 0xbf, 0x0a, 0x6b, 0xa9, 0x77, 0xd2, 0x4d,
+ 0x58, 0x75, 0x69, 0xfe, 0x6b, 0x0b, 0x0f, 0x03, 0x89, 0x76, 0x96, 0x8c, 0x59, 0x4e, 0x7c, 0x02,
+ 0x9f, 0x9b, 0x1d, 0xd2, 0x96, 0xe8, 0x3b, 0xb6, 0x2b, 0xf4, 0xfd, 0xfa, 0x77, 0x5e, 0x6e, 0xb6,
+ 0x34, 0xf1, 0xce, 0x92, 0x71, 0x39, 0x67, 0xfe, 0x17, 0xe1, 0xf6, 0x78, 0xae, 0x8a, 0x51, 0xaa,
+ 0x4b, 0x5f, 0xcf, 0x7f, 0x6f, 0xc1, 0x37, 0xcf, 0xd0, 0xef, 0x2c, 0x19, 0x57, 0xf2, 0x47, 0xdb,
+ 0x99, 0x3c, 0x68, 0x5d, 0x5c, 0xae, 0x1a, 0x94, 0xa9, 0xed, 0x3b, 0x3b, 0xc2, 0xb4, 0xa2, 0x7c,
+ 0x41, 0x0c, 0x68, 0xfc, 0xf7, 0x0c, 0x14, 0xb5, 0xbc, 0xdf, 0x8e, 0x2a, 0x06, 0x22, 0xd5, 0x1d,
+ 0x03, 0xf8, 0x07, 0x50, 0x11, 0xbe, 0xef, 0xf9, 0x9b, 0x9e, 0x15, 0x16, 0x5b, 0x4e, 0x47, 0x99,
+ 0x15, 0x9f, 0xf5, 0x76, 0x88, 0x66, 0xc4, 0x14, 0xfc, 0x7d, 0x00, 0xb5, 0xcf, 0x7b, 0xf1, 0x1d,
+ 0xa1, 0xc6, 0x7c, 0x7a, 0x95, 0x82, 0x8a, 0xb1, 0xe3, 0xb0, 0x5c, 0x98, 0xff, 0x09, 0x9b, 0x91,
+ 0xc3, 0x59, 0x48, 0x38, 0x9c, 0xb7, 0x75, 0x1c, 0x81, 0xc2, 0x2b, 0xfa, 0xa6, 0x5c, 0x04, 0x68,
+ 0xfc, 0x7e, 0x06, 0x8a, 0x4a, 0x79, 0xf0, 0xf6, 0xec, 0x88, 0x5e, 0x7b, 0xb1, 0xce, 0x59, 0x9f,
+ 0x1e, 0xd9, 0xb7, 0x00, 0x94, 0x0e, 0x4a, 0x8c, 0xec, 0xf6, 0x14, 0x1f, 0x4d, 0x1a, 0x96, 0x37,
+ 0xc7, 0xf8, 0xcd, 0x87, 0xea, 0x36, 0x17, 0x85, 0x84, 0x9f, 0xec, 0xee, 0xb2, 0x25, 0xbe, 0x06,
+ 0xb5, 0x27, 0xfb, 0x8f, 0xf7, 0x0f, 0x9e, 0xed, 0x1f, 0xb5, 0x0d, 0xe3, 0xc0, 0x50, 0x91, 0xe1,
+ 0x8d, 0xd6, 0xd6, 0x51, 0x67, 0xff, 0xf0, 0x49, 0x8f, 0x65, 0x1b, 0xff, 0x2c, 0x03, 0xb5, 0x94,
+ 0xee, 0xfa, 0xd3, 0x5d, 0xba, 0xc4, 0xf4, 0xe7, 0xe6, 0x4f, 0x7f, 0xfe, 0xb2, 0xe9, 0x2f, 0x4c,
+ 0x4f, 0xff, 0xef, 0x64, 0xa0, 0x96, 0xd2, 0x91, 0x49, 0xee, 0x99, 0x34, 0xf7, 0xe4, 0x49, 0x9f,
+ 0x9d, 0x3a, 0xe9, 0x9b, 0xb0, 0x1c, 0xfe, 0xde, 0x8f, 0x23, 0x0e, 0x29, 0x58, 0x12, 0x87, 0xae,
+ 0x53, 0xe4, 0xd3, 0x38, 0x74, 0xa5, 0xe2, 0xea, 0xde, 0xd2, 0xf5, 0xd1, 0x80, 0x6e, 0xd7, 0x37,
+ 0x2e, 0xd7, 0xa0, 0x57, 0x0c, 0xe1, 0x11, 0x54, 0xc7, 0xf1, 0x36, 0x7d, 0x39, 0xb3, 0x24, 0x49,
+ 0xf9, 0x82, 0x7e, 0xfe, 0x6e, 0x06, 0x56, 0xd2, 0x3a, 0xf7, 0xff, 0xeb, 0x69, 0xfd, 0x27, 0x19,
+ 0x58, 0x9b, 0xd1, 0xe4, 0x57, 0x1a, 0x76, 0xd3, 0xfd, 0xca, 0x2e, 0xd0, 0xaf, 0xdc, 0x9c, 0x7e,
+ 0x5d, 0xae, 0x49, 0xae, 0xee, 0x71, 0x17, 0x3e, 0x77, 0xe9, 0x99, 0x70, 0xc5, 0x54, 0xa7, 0x98,
+ 0xe6, 0xa6, 0x99, 0xfe, 0x76, 0x06, 0x6e, 0x5f, 0xa5, 0xef, 0xff, 0x9f, 0xcb, 0xd5, 0x74, 0x0f,
+ 0x9b, 0xef, 0x46, 0x85, 0x04, 0x55, 0x28, 0xe9, 0xaf, 0x56, 0xe9, 0x42, 0xee, 0xa1, 0xf7, 0xdc,
+ 0x55, 0x91, 0x68, 0x43, 0x98, 0xfa, 0x5e, 0xbf, 0x21, 0xc6, 0x8e, 0x4d, 0x39, 0xd2, 0x5b, 0x00,
+ 0x2d, 0xf2, 0xeb, 0xc2, 0x6b, 0x36, 0x9b, 0xbb, 0x07, 0xdd, 0x36, 0x5b, 0x4a, 0x1a, 0xb1, 0x9f,
+ 0x84, 0x8a, 0xb8, 0x79, 0x08, 0xc5, 0xf8, 0xe2, 0xc3, 0x9e, 0xe9, 0x9f, 0x5a, 0x2a, 0x13, 0xb9,
+ 0x0c, 0xe5, 0x43, 0xed, 0x42, 0xa9, 0x57, 0x7d, 0xd4, 0x3d, 0xd8, 0x57, 0x41, 0xef, 0xad, 0x83,
+ 0x9e, 0xba, 0x3e, 0xd1, 0x7d, 0xfa, 0x48, 0xa5, 0xc4, 0x1e, 0x19, 0xad, 0xc3, 0x9d, 0x23, 0xc2,
+ 0x28, 0x34, 0x7f, 0x2b, 0x1f, 0x9e, 0x6a, 0x4d, 0x43, 0xe7, 0x38, 0x01, 0x8a, 0xa8, 0xcd, 0x3d,
+ 0xcd, 0x38, 0x7a, 0x0d, 0x95, 0xfc, 0xb6, 0xcf, 0x55, 0x1c, 0x82, 0x65, 0x79, 0x11, 0xb2, 0x87,
+ 0xc7, 0xaa, 0x12, 0x69, 0x47, 0x8e, 0x1c, 0x75, 0xef, 0xb2, 0x77, 0x2e, 0x59, 0x01, 0x7f, 0x6c,
+ 0x06, 0x67, 0xac, 0xd8, 0xfc, 0xe7, 0x39, 0xa8, 0x44, 0xaa, 0xf2, 0x65, 0x54, 0x37, 0xe7, 0xb0,
+ 0xd2, 0xd9, 0xef, 0xb5, 0x8d, 0xfd, 0xd6, 0xae, 0x46, 0xc9, 0xf1, 0x6b, 0xb0, 0xba, 0xdd, 0xd9,
+ 0x6d, 0x1f, 0xed, 0x1e, 0xb4, 0xb6, 0x34, 0xb0, 0xcc, 0x6f, 0x02, 0xef, 0xec, 0x1d, 0x1e, 0x18,
+ 0xbd, 0xa3, 0x4e, 0xf7, 0x68, 0xb3, 0xb5, 0xbf, 0xd9, 0xde, 0x6d, 0x6f, 0xb1, 0x22, 0x7f, 0x05,
+ 0xee, 0xee, 0x1f, 0xf4, 0x3a, 0x07, 0xfb, 0x47, 0xfb, 0x07, 0x47, 0x07, 0x1b, 0x1f, 0xb5, 0x37,
+ 0x7b, 0xdd, 0xa3, 0xce, 0xfe, 0x11, 0x72, 0x7d, 0x64, 0xb4, 0xf0, 0x09, 0x2b, 0xf0, 0xbb, 0x70,
+ 0x5b, 0x63, 0x75, 0xdb, 0xc6, 0xd3, 0xb6, 0x81, 0x4c, 0x9e, 0xec, 0xb7, 0x9e, 0xb6, 0x3a, 0xbb,
+ 0xad, 0x8d, 0xdd, 0x36, 0x5b, 0xe6, 0x77, 0xa0, 0xa1, 0x31, 0x8c, 0x56, 0xaf, 0x7d, 0xb4, 0xdb,
+ 0xd9, 0xeb, 0xf4, 0x8e, 0xda, 0xdf, 0xdb, 0x6c, 0xb7, 0xb7, 0xda, 0x5b, 0xac, 0xc6, 0xbf, 0x02,
+ 0x5f, 0xa6, 0x4e, 0xe9, 0x4e, 0xa4, 0x5f, 0xf6, 0x49, 0xe7, 0xf0, 0xa8, 0x65, 0x6c, 0xee, 0x74,
+ 0x9e, 0xb6, 0xd9, 0x0a, 0x7f, 0x0d, 0xbe, 0x74, 0x39, 0xea, 0x56, 0xc7, 0x68, 0x6f, 0xf6, 0x0e,
+ 0x8c, 0x8f, 0xd9, 0x1a, 0xff, 0x02, 0x7c, 0x6e, 0xa7, 0xb7, 0xb7, 0x7b, 0xf4, 0xcc, 0x38, 0xd8,
+ 0x7f, 0x74, 0x44, 0x3f, 0xbb, 0x3d, 0xe3, 0xc9, 0x66, 0xef, 0x89, 0xd1, 0x66, 0xc0, 0x1b, 0x70,
+ 0xf3, 0x70, 0xe3, 0x68, 0xff, 0xa0, 0x77, 0xd4, 0xda, 0xff, 0x78, 0x63, 0xf7, 0x60, 0xf3, 0xf1,
+ 0xd1, 0xf6, 0x81, 0xb1, 0xd7, 0xea, 0xb1, 0x2a, 0xff, 0x2a, 0xbc, 0xb6, 0xd9, 0x7d, 0xaa, 0xbb,
+ 0x79, 0xb0, 0x7d, 0x64, 0x1c, 0x3c, 0xeb, 0x1e, 0x1d, 0x18, 0x47, 0x46, 0x7b, 0x97, 0xc6, 0xdc,
+ 0x8d, 0xfb, 0x5e, 0xe2, 0xb7, 0xa1, 0xde, 0xd9, 0xef, 0x3e, 0xd9, 0xde, 0xee, 0x6c, 0x76, 0xda,
+ 0xfb, 0xbd, 0xa3, 0xc3, 0xb6, 0xb1, 0xd7, 0xe9, 0x76, 0x11, 0x8d, 0x55, 0x9a, 0xdf, 0x81, 0x62,
+ 0xc7, 0x3d, 0xb3, 0x25, 0xed, 0x2f, 0x2d, 0x8c, 0xda, 0xe3, 0x0a, 0x9b, 0xb4, 0x2d, 0xec, 0x81,
+ 0x4b, 0xdf, 0x13, 0xa0, 0xdd, 0xb5, 0x6c, 0xc4, 0x80, 0xe6, 0xef, 0xe7, 0xa0, 0xa6, 0x58, 0x84,
+ 0x1e, 0xdc, 0x3d, 0x58, 0xd5, 0xa1, 0xd0, 0x4e, 0x5a, 0x85, 0x4d, 0x83, 0xe9, 0x43, 0x5d, 0x0a,
+ 0x94, 0x50, 0x64, 0x49, 0x10, 0xbf, 0x09, 0x45, 0xb3, 0xef, 0xa0, 0x1b, 0xa8, 0xf2, 0x95, 0xba,
+ 0xf5, 0x59, 0x75, 0x17, 0xea, 0x45, 0x85, 0xd8, 0xf7, 0xdc, 0xcd, 0xe8, 0x4a, 0x49, 0x0a, 0xc6,
+ 0x3f, 0x81, 0x5b, 0x51, 0xbb, 0xed, 0xf6, 0xfd, 0x8b, 0x71, 0xf4, 0x25, 0xbd, 0xd2, 0xdc, 0x60,
+ 0xc2, 0xb6, 0xed, 0x88, 0x14, 0xa2, 0x71, 0x19, 0x03, 0xfe, 0x08, 0xc0, 0xa6, 0xc9, 0x22, 0xfb,
+ 0x68, 0xfe, 0xbd, 0xe9, 0xd4, 0x6c, 0xea, 0x96, 0x36, 0x03, 0xa3, 0xdf, 0x78, 0x40, 0x0c, 0x50,
+ 0xef, 0x3e, 0xd6, 0x1f, 0xde, 0x5b, 0x36, 0xa2, 0x76, 0xf3, 0x01, 0x40, 0x4c, 0xc5, 0x19, 0x2c,
+ 0xa3, 0x6d, 0xd1, 0x0a, 0xf6, 0xc4, 0xe8, 0x58, 0xf8, 0xaa, 0x8a, 0x4f, 0x41, 0x1e, 0x21, 0x05,
+ 0xcb, 0x34, 0xff, 0x30, 0x93, 0xf0, 0xc3, 0x95, 0x9f, 0x7d, 0xe5, 0x09, 0x34, 0x2f, 0x27, 0x84,
+ 0x9e, 0xb0, 0x9e, 0x54, 0x6d, 0x18, 0xe9, 0x26, 0x3f, 0x04, 0x6e, 0xcf, 0x4e, 0x65, 0x7e, 0xc1,
+ 0xa9, 0x9c, 0x43, 0x3b, 0x1d, 0xd2, 0x2f, 0xcc, 0x86, 0xf4, 0xef, 0x00, 0x0c, 0x1c, 0xef, 0x58,
+ 0xe7, 0x15, 0x8b, 0xba, 0xee, 0x27, 0x82, 0x34, 0x1d, 0x28, 0x87, 0x5f, 0x11, 0x44, 0x19, 0xa3,
+ 0xef, 0x08, 0x46, 0x01, 0x4e, 0xd5, 0xe2, 0x3b, 0xb0, 0x22, 0xd2, 0x7d, 0xce, 0x2e, 0xd8, 0xe7,
+ 0x29, 0xba, 0xe6, 0x37, 0x60, 0x6d, 0x06, 0x09, 0x27, 0x71, 0x6c, 0xca, 0xe8, 0x53, 0x02, 0xf8,
+ 0x7b, 0x36, 0x5d, 0xdf, 0xfc, 0xf7, 0x59, 0x58, 0xde, 0x33, 0x5d, 0xfb, 0x44, 0x04, 0x32, 0xec,
+ 0x6d, 0xd0, 0x1f, 0x8a, 0x91, 0x19, 0xf6, 0x56, 0xb5, 0x74, 0xd4, 0x23, 0x9b, 0xcc, 0x27, 0xcc,
+ 0xa4, 0x9f, 0x70, 0x37, 0x4d, 0xe4, 0x30, 0xaa, 0xae, 0xd7, 0x2d, 0x5c, 0x3b, 0xc7, 0xee, 0x0b,
+ 0x37, 0x08, 0x77, 0x4c, 0xd8, 0x8c, 0xab, 0x77, 0x8a, 0x57, 0x54, 0xef, 0x94, 0x66, 0xe7, 0xff,
+ 0x2e, 0x54, 0x83, 0xbe, 0x2f, 0x84, 0x1b, 0x0c, 0x3d, 0x19, 0x7e, 0x81, 0x32, 0x09, 0xa2, 0x52,
+ 0x3a, 0xef, 0xb9, 0x8b, 0x32, 0xbe, 0x6b, 0xbb, 0xa7, 0xba, 0x42, 0x2c, 0x05, 0x43, 0x19, 0xa4,
+ 0x98, 0x8f, 0xfd, 0x43, 0x41, 0xf1, 0x86, 0x82, 0x11, 0xb5, 0x29, 0xaa, 0x63, 0x4a, 0x31, 0xf0,
+ 0x7c, 0x5b, 0xa8, 0xd0, 0x66, 0xc5, 0x48, 0x40, 0x90, 0xd6, 0x31, 0xdd, 0xc1, 0xc4, 0x1c, 0x08,
+ 0x9d, 0xfe, 0x8e, 0xda, 0xcd, 0xff, 0x51, 0x00, 0x50, 0xbb, 0x21, 0x18, 0xda, 0x63, 0x4a, 0xbd,
+ 0xd8, 0xba, 0xa6, 0xb8, 0x66, 0xd0, 0x6f, 0xfe, 0x5e, 0xaa, 0xdc, 0x7f, 0x36, 0x59, 0x1a, 0x93,
+ 0x4f, 0x87, 0x84, 0x70, 0x72, 0x4c, 0x29, 0x74, 0xe1, 0x14, 0xcd, 0x7f, 0xde, 0x48, 0x82, 0xa8,
+ 0x74, 0xce, 0x94, 0xa2, 0xed, 0x5a, 0x2a, 0xe4, 0x94, 0x37, 0xa2, 0x36, 0x5d, 0x18, 0x0a, 0x5a,
+ 0x13, 0xe9, 0x19, 0xc2, 0x15, 0xcf, 0xa3, 0xbb, 0x70, 0x31, 0x88, 0xef, 0x41, 0x6d, 0x6c, 0x5e,
+ 0x8c, 0x84, 0x2b, 0xf7, 0x84, 0x1c, 0x7a, 0x96, 0xae, 0x72, 0x7a, 0xed, 0xf2, 0x0e, 0x1e, 0x26,
+ 0xd1, 0x8d, 0x34, 0x35, 0xca, 0x84, 0x1b, 0xd0, 0x2e, 0x51, 0xcb, 0xa8, 0x5b, 0x7c, 0x03, 0x40,
+ 0xfd, 0x4a, 0x68, 0xaa, 0x99, 0x28, 0x94, 0x39, 0x12, 0x81, 0xf0, 0xcf, 0x6c, 0xa5, 0x5d, 0x95,
+ 0x92, 0x8a, 0xa9, 0x50, 0x17, 0x4f, 0x02, 0xe1, 0xb7, 0x47, 0xa6, 0xed, 0xe8, 0x05, 0x8e, 0x01,
+ 0xfc, 0x6d, 0xb8, 0x11, 0x4c, 0x8e, 0x51, 0x66, 0x8e, 0x45, 0xcf, 0xdb, 0x17, 0xcf, 0x03, 0x47,
+ 0x48, 0x29, 0x7c, 0x5d, 0x49, 0x31, 0xff, 0x61, 0x73, 0x10, 0x99, 0x61, 0xf4, 0xb5, 0x13, 0xfc,
+ 0x15, 0x97, 0x6b, 0x45, 0x20, 0x5d, 0xcb, 0xc6, 0x32, 0xa8, 0xfe, 0x14, 0x48, 0x97, 0xba, 0x65,
+ 0xf9, 0x97, 0xe1, 0x8b, 0x29, 0x24, 0x43, 0x25, 0xa6, 0x83, 0x6d, 0xdb, 0x35, 0x1d, 0xfb, 0x87,
+ 0xaa, 0x4c, 0x20, 0xd7, 0x1c, 0x43, 0x2d, 0x35, 0x71, 0x74, 0x79, 0x93, 0x7e, 0xe9, 0x7a, 0x1f,
+ 0x06, 0xcb, 0xaa, 0xdd, 0x95, 0xbe, 0x4d, 0x19, 0x97, 0x08, 0xb2, 0x89, 0xfb, 0xdc, 0x63, 0x59,
+ 0x7e, 0x1d, 0x98, 0x82, 0x74, 0x5c, 0x73, 0x3c, 0x6e, 0x8d, 0xc7, 0x8e, 0x60, 0x39, 0xba, 0x18,
+ 0x1b, 0x43, 0x55, 0xd1, 0x3f, 0xcb, 0x37, 0xbf, 0x07, 0xb7, 0x68, 0x66, 0x9e, 0x0a, 0x3f, 0x72,
+ 0xb4, 0xf5, 0x58, 0x6f, 0xc0, 0x9a, 0xfa, 0xb5, 0xef, 0x49, 0xf5, 0x98, 0x8c, 0x4f, 0x0e, 0x2b,
+ 0x0a, 0x8c, 0xb6, 0x57, 0x57, 0xd0, 0x75, 0xd7, 0x08, 0x16, 0xe1, 0x65, 0x9b, 0x3f, 0x2b, 0x02,
+ 0x8f, 0x05, 0xa2, 0x67, 0x0b, 0x7f, 0xcb, 0x94, 0x66, 0x22, 0x52, 0x5a, 0xbb, 0x34, 0xd7, 0xff,
+ 0xe2, 0x4a, 0xbd, 0x9b, 0x50, 0xb4, 0x03, 0x74, 0x0d, 0x75, 0xb9, 0xae, 0x6e, 0xf1, 0x5d, 0x80,
+ 0xb1, 0xf0, 0x6d, 0xcf, 0x22, 0x09, 0x2a, 0xcc, 0xbd, 0x75, 0x31, 0xdb, 0xa9, 0xf5, 0xc3, 0x88,
+ 0xc6, 0x48, 0xd0, 0x63, 0x3f, 0x54, 0x4b, 0x65, 0xce, 0x8b, 0xd4, 0xe9, 0x24, 0x88, 0xbf, 0x01,
+ 0xd7, 0xc6, 0xbe, 0xdd, 0x17, 0x6a, 0x39, 0x9e, 0x04, 0xd6, 0x26, 0x7d, 0x23, 0xb0, 0x44, 0x98,
+ 0xf3, 0x1e, 0xa1, 0x04, 0x9a, 0x2e, 0x39, 0x4c, 0x01, 0xe5, 0x8a, 0xf5, 0x05, 0x71, 0x55, 0xd0,
+ 0x5a, 0x33, 0xe6, 0x3f, 0xe4, 0xf7, 0x81, 0xe9, 0x07, 0x7b, 0xb6, 0xbb, 0x2b, 0xdc, 0x81, 0x1c,
+ 0x92, 0x70, 0xd7, 0x8c, 0x19, 0x38, 0x69, 0x30, 0xf5, 0x25, 0x26, 0x95, 0x47, 0xaa, 0x18, 0x51,
+ 0x5b, 0x7d, 0x74, 0xc0, 0xf1, 0xfc, 0xae, 0xf4, 0x75, 0x65, 0x6e, 0xd4, 0x46, 0x1b, 0x2a, 0xa0,
+ 0xbe, 0x1e, 0xfa, 0x9e, 0x35, 0xa1, 0x2c, 0x87, 0x52, 0x62, 0xd3, 0xe0, 0x18, 0x73, 0xcf, 0x74,
+ 0x75, 0xb9, 0x64, 0x2d, 0x89, 0x19, 0x81, 0xc9, 0x27, 0xf4, 0x82, 0x98, 0xe1, 0xaa, 0xf6, 0x09,
+ 0x13, 0x30, 0x8d, 0x13, 0xb3, 0x62, 0x11, 0x4e, 0xcc, 0x87, 0xc6, 0x6f, 0xf9, 0x9e, 0x6d, 0xc5,
+ 0xbc, 0x54, 0xe5, 0xce, 0x0c, 0x3c, 0x81, 0x1b, 0xf3, 0xe4, 0x29, 0xdc, 0x08, 0xde, 0xfc, 0x71,
+ 0x06, 0x20, 0x5e, 0x7c, 0x14, 0xf9, 0xb8, 0x15, 0x6f, 0xf1, 0x5b, 0x70, 0x2d, 0x09, 0x76, 0x74,
+ 0xc9, 0x2b, 0xc9, 0x7d, 0xfc, 0x60, 0xcb, 0xbc, 0x08, 0x58, 0x56, 0x5f, 0xd1, 0xd6, 0xb0, 0x67,
+ 0x42, 0x50, 0xfd, 0xe0, 0x75, 0x60, 0x31, 0x90, 0xee, 0xdd, 0x05, 0x2c, 0x9f, 0x46, 0xfd, 0x58,
+ 0x98, 0x7e, 0xc0, 0x0a, 0xcd, 0x1d, 0x28, 0xaa, 0x64, 0xd7, 0x9c, 0x34, 0xf5, 0xcb, 0xd5, 0x9c,
+ 0xfc, 0xf5, 0x0c, 0xc0, 0x96, 0xaa, 0x8f, 0xc6, 0x53, 0x7c, 0x4e, 0xf6, 0x7f, 0x9e, 0x45, 0x65,
+ 0x5a, 0x16, 0xd5, 0x99, 0xe7, 0xa2, 0xef, 0xfb, 0x60, 0x13, 0x25, 0xc7, 0x0c, 0x6b, 0xc4, 0xd4,
+ 0x9e, 0x8b, 0xda, 0xea, 0x00, 0xd9, 0xf4, 0x5c, 0x57, 0xf4, 0xf1, 0xf8, 0x89, 0x0e, 0x90, 0x08,
+ 0xd4, 0xfc, 0x51, 0x16, 0x2a, 0x9b, 0x43, 0x53, 0xaa, 0xcf, 0xe1, 0x7c, 0x07, 0xca, 0x23, 0x11,
+ 0x04, 0xe6, 0x40, 0x04, 0x3a, 0xb9, 0x33, 0x9d, 0x99, 0x8d, 0x70, 0xd7, 0x9f, 0xb8, 0xbe, 0x30,
+ 0x2d, 0xf5, 0x0d, 0xa0, 0x88, 0x4a, 0x71, 0x70, 0x65, 0xe4, 0x7c, 0xbf, 0x04, 0x07, 0x37, 0xfa,
+ 0x60, 0xaf, 0x75, 0x1c, 0x7f, 0x21, 0x5a, 0x8d, 0x36, 0x09, 0x6a, 0xec, 0x41, 0x35, 0x41, 0xca,
+ 0x5f, 0x81, 0x9a, 0xe7, 0x58, 0x22, 0x50, 0xb7, 0x00, 0xe3, 0x0f, 0x27, 0xa6, 0x80, 0x54, 0xa2,
+ 0x81, 0x3b, 0x57, 0xf8, 0x3a, 0x4f, 0x17, 0x36, 0x9b, 0xff, 0xab, 0x04, 0x55, 0xec, 0xd4, 0x9e,
+ 0x1a, 0xc3, 0xcc, 0x72, 0xd4, 0xa1, 0xe4, 0x69, 0xce, 0xfa, 0xfa, 0xa0, 0x97, 0xe0, 0xa9, 0xcb,
+ 0x3e, 0x72, 0xe9, 0xb2, 0x8f, 0xdb, 0x50, 0x51, 0x49, 0x25, 0xab, 0xa5, 0x34, 0x61, 0xce, 0x88,
+ 0x01, 0x68, 0xae, 0x8c, 0x3c, 0x8b, 0xf4, 0x71, 0x4b, 0xe5, 0x63, 0x72, 0x46, 0x02, 0x92, 0xfc,
+ 0x98, 0x53, 0x35, 0xfd, 0x31, 0x27, 0xaa, 0xbf, 0x19, 0x3b, 0x17, 0x3d, 0x4f, 0xf7, 0xb6, 0x63,
+ 0xc5, 0xb7, 0xb0, 0xd3, 0x70, 0xbe, 0x09, 0x25, 0xbd, 0x2c, 0x3a, 0xeb, 0xf4, 0x95, 0x39, 0x2b,
+ 0xa1, 0xd1, 0xd7, 0xf5, 0x5f, 0x7d, 0x11, 0xca, 0x08, 0x29, 0xf9, 0x23, 0xa8, 0x9a, 0x52, 0x9a,
+ 0xfd, 0xe1, 0x48, 0xeb, 0xcf, 0xdc, 0x9c, 0x04, 0x74, 0x92, 0x51, 0x2b, 0xc2, 0x36, 0x92, 0x94,
+ 0x7c, 0x03, 0x2a, 0xbe, 0x30, 0x53, 0x39, 0xf0, 0x57, 0xae, 0x60, 0x63, 0x84, 0xb8, 0x46, 0x4c,
+ 0x16, 0x7d, 0x43, 0x14, 0xe2, 0x6f, 0x88, 0x36, 0x7e, 0x9a, 0x81, 0x95, 0x74, 0xe7, 0xff, 0x34,
+ 0xbe, 0x69, 0xf7, 0xad, 0xf8, 0x9b, 0x76, 0x9f, 0xe1, 0xfb, 0x70, 0xbf, 0x9d, 0x01, 0x88, 0xe7,
+ 0x05, 0xcf, 0x48, 0xf5, 0xed, 0xad, 0xd0, 0x6a, 0x57, 0x2d, 0xbe, 0x93, 0xfa, 0x60, 0xc3, 0xdb,
+ 0x0b, 0x4d, 0x72, 0xe2, 0x67, 0xa2, 0x7c, 0xfd, 0x01, 0xac, 0xa4, 0xe1, 0x54, 0xf6, 0xdf, 0xd9,
+ 0x6d, 0xab, 0x18, 0x55, 0x67, 0xaf, 0xf5, 0xa8, 0xad, 0xaf, 0x9b, 0x75, 0xf6, 0x1f, 0xb3, 0x6c,
+ 0xe3, 0x8f, 0x32, 0x50, 0x89, 0xa6, 0x9c, 0x7f, 0x37, 0xb9, 0x56, 0xaa, 0xd0, 0xe5, 0xad, 0x45,
+ 0xd6, 0x2a, 0xfe, 0xd5, 0x76, 0xa5, 0x7f, 0x91, 0x58, 0xba, 0x86, 0x07, 0x2b, 0xe9, 0x87, 0x73,
+ 0x94, 0xe8, 0xa3, 0xb4, 0x12, 0x7d, 0x73, 0xa1, 0x57, 0x86, 0xae, 0xea, 0xae, 0x1d, 0x48, 0xad,
+ 0x5f, 0xdf, 0xcf, 0xbe, 0x97, 0x69, 0xdc, 0x85, 0xe5, 0xe4, 0xa3, 0xd9, 0x1b, 0xa7, 0xf7, 0xff,
+ 0x28, 0x07, 0x2b, 0xe9, 0x5a, 0x11, 0xba, 0xc1, 0xa6, 0xea, 0x94, 0x0e, 0x1c, 0x2b, 0x51, 0xf1,
+ 0xcf, 0xd0, 0x4d, 0xd6, 0xce, 0x30, 0x01, 0xd6, 0x28, 0x0a, 0xe6, 0x8d, 0x04, 0xbb, 0x9b, 0xfc,
+ 0x6e, 0xe7, 0x1b, 0x1c, 0xc2, 0x9b, 0x87, 0x6c, 0xcc, 0x2b, 0xfa, 0x0b, 0x66, 0x3f, 0xca, 0xf2,
+ 0x5a, 0xa2, 0xee, 0xfc, 0x27, 0x68, 0x09, 0xae, 0x6e, 0x4c, 0x5c, 0xcb, 0x11, 0x56, 0x04, 0xfd,
+ 0x69, 0x12, 0x1a, 0x15, 0x8e, 0xff, 0x28, 0xcf, 0x57, 0xa0, 0xd2, 0x9d, 0x1c, 0xeb, 0xa2, 0xf1,
+ 0xbf, 0x94, 0xe7, 0x37, 0x61, 0x4d, 0x63, 0xc5, 0x35, 0x9a, 0xec, 0x2f, 0xe3, 0x99, 0xb5, 0xd2,
+ 0x52, 0xf3, 0xa5, 0x3b, 0xca, 0xfe, 0x4a, 0x1e, 0xbb, 0x40, 0x17, 0xda, 0xff, 0x2a, 0xf1, 0x89,
+ 0x2e, 0xf8, 0xb0, 0x5f, 0xcb, 0xf3, 0x55, 0x80, 0x6e, 0x2f, 0x7a, 0xd1, 0x6f, 0xe4, 0x79, 0x15,
+ 0x8a, 0xdd, 0x1e, 0x71, 0xfb, 0x71, 0x9e, 0xdf, 0x00, 0x16, 0x3f, 0xd5, 0x95, 0xab, 0x7f, 0x43,
+ 0x75, 0x26, 0x2a, 0x45, 0xfd, 0x9b, 0x79, 0x1c, 0x57, 0x38, 0xcb, 0xec, 0x6f, 0xe5, 0x39, 0x83,
+ 0x6a, 0x22, 0xb6, 0xca, 0xfe, 0x76, 0x9e, 0x73, 0xa8, 0xed, 0xd9, 0x41, 0x60, 0xbb, 0x03, 0x3d,
+ 0x82, 0x5f, 0xa7, 0x37, 0x6f, 0x47, 0x77, 0x94, 0xd8, 0x6f, 0xe6, 0xf9, 0x2d, 0xe0, 0xc9, 0x7c,
+ 0x92, 0x7e, 0xf0, 0x77, 0x88, 0x5a, 0x9d, 0x93, 0x81, 0x86, 0xfd, 0x5d, 0xa2, 0x46, 0x49, 0xd0,
+ 0x80, 0xdf, 0xa2, 0x09, 0xd9, 0x8c, 0x6b, 0x5d, 0x35, 0xfc, 0x27, 0x44, 0x1c, 0x2e, 0xa6, 0x82,
+ 0xfd, 0x34, 0x7f, 0xff, 0x67, 0x94, 0x0f, 0x48, 0x96, 0x8c, 0xf1, 0x65, 0x28, 0x3b, 0x9e, 0x3b,
+ 0x90, 0xea, 0x7b, 0xa9, 0x35, 0xa8, 0x04, 0x43, 0xcf, 0x97, 0xd4, 0xa4, 0x4b, 0x94, 0x2e, 0x5d,
+ 0xb6, 0x57, 0xd7, 0x0e, 0x94, 0x57, 0xa7, 0xe2, 0xab, 0xd2, 0x1c, 0xb0, 0x6a, 0x54, 0xa5, 0x9b,
+ 0x8f, 0x2a, 0x89, 0xe9, 0xd2, 0x7f, 0x78, 0xa9, 0x9a, 0x15, 0x11, 0x75, 0xe2, 0x3b, 0xaa, 0xa2,
+ 0x58, 0xa0, 0x45, 0xaf, 0x3e, 0x8c, 0x38, 0x1e, 0xa2, 0xe3, 0x50, 0x51, 0x50, 0xef, 0xfb, 0xb6,
+ 0xba, 0xae, 0xab, 0x0b, 0xf4, 0x2c, 0xec, 0x47, 0x54, 0x83, 0xc2, 0xc4, 0xfd, 0xbf, 0x97, 0x81,
+ 0xe5, 0xf0, 0xaa, 0xbb, 0x3d, 0xb0, 0x5d, 0x55, 0x93, 0x1c, 0x7e, 0x85, 0xb6, 0xef, 0xd8, 0xe3,
+ 0xf0, 0xab, 0x8e, 0xab, 0x50, 0xb5, 0x7c, 0x73, 0xd0, 0x72, 0xad, 0x2d, 0xdf, 0x1b, 0xab, 0x6e,
+ 0xab, 0x8c, 0xa1, 0xaa, 0x85, 0x7e, 0x2e, 0x8e, 0x11, 0x7d, 0x2c, 0x7c, 0x96, 0xa7, 0xe2, 0xbf,
+ 0xa1, 0xe9, 0xdb, 0xee, 0xa0, 0x7d, 0x2e, 0x85, 0x1b, 0xa8, 0x9a, 0xe8, 0x2a, 0x94, 0x26, 0x81,
+ 0xe8, 0x9b, 0x81, 0x60, 0x45, 0x6c, 0x1c, 0x4f, 0x6c, 0x47, 0xda, 0xae, 0xfa, 0x98, 0x62, 0x54,
+ 0xf4, 0x5c, 0xc6, 0x91, 0x99, 0x63, 0x9b, 0x55, 0xee, 0xff, 0xab, 0x0c, 0x54, 0x49, 0x2c, 0xe2,
+ 0x98, 0x78, 0x6c, 0xa3, 0x55, 0xa1, 0xb4, 0x1b, 0x7d, 0x55, 0xaf, 0x08, 0xd9, 0x83, 0x53, 0x15,
+ 0x13, 0xd7, 0x62, 0xa1, 0xee, 0xa4, 0xaa, 0x0f, 0xec, 0xe5, 0xf9, 0xe7, 0xe0, 0x86, 0x21, 0x46,
+ 0x9e, 0x14, 0xcf, 0x4c, 0x5b, 0x26, 0xef, 0x1f, 0x15, 0xd0, 0x9d, 0x53, 0x8f, 0xc2, 0x0b, 0x47,
+ 0x45, 0x72, 0xe7, 0xf0, 0xb5, 0x21, 0xa4, 0x84, 0xa3, 0x27, 0x88, 0xf6, 0xef, 0xca, 0x11, 0xca,
+ 0x47, 0x9e, 0xed, 0xe2, 0xdb, 0xe8, 0x9e, 0x34, 0x41, 0x28, 0xb9, 0x82, 0x20, 0xb8, 0xbf, 0x0f,
+ 0x37, 0xe7, 0xa7, 0x04, 0xd4, 0x0d, 0x6a, 0xfa, 0x94, 0x33, 0xdd, 0x48, 0x79, 0xe6, 0xdb, 0xea,
+ 0xaa, 0x6b, 0x05, 0x0a, 0x07, 0xcf, 0x5d, 0x12, 0x8b, 0x35, 0xa8, 0xed, 0x7b, 0x09, 0x1a, 0x96,
+ 0xbb, 0xdf, 0x4f, 0x65, 0x71, 0xe2, 0x49, 0x09, 0x3b, 0xb1, 0x94, 0xb8, 0x6d, 0x95, 0x51, 0xf9,
+ 0x01, 0xfa, 0x6f, 0x1c, 0xea, 0xeb, 0x12, 0x3a, 0x7b, 0x62, 0xa9, 0xaf, 0x4b, 0x44, 0xdd, 0xcc,
+ 0xab, 0xcf, 0x6c, 0xb9, 0x7d, 0xe1, 0x08, 0x8b, 0x15, 0xee, 0xbf, 0x07, 0xab, 0x7a, 0xa8, 0x7d,
+ 0x11, 0x04, 0xe1, 0x6d, 0xa5, 0x43, 0xdf, 0x3e, 0x53, 0x5f, 0xb0, 0x58, 0x86, 0xf2, 0xa1, 0xf0,
+ 0x03, 0xcf, 0xa5, 0xaf, 0x77, 0x00, 0x14, 0xbb, 0x43, 0xd3, 0xc7, 0x77, 0xdc, 0xff, 0x9a, 0x9e,
+ 0xa4, 0x27, 0xe7, 0xe1, 0xd1, 0x80, 0xfb, 0x47, 0x7f, 0xbc, 0xc6, 0x94, 0xa6, 0x46, 0x97, 0xbe,
+ 0x30, 0x47, 0x2c, 0x7b, 0x7f, 0x13, 0x2a, 0x74, 0xd9, 0xe9, 0xb1, 0xed, 0x5a, 0x38, 0xf0, 0x0d,
+ 0x5d, 0x78, 0x4f, 0x5f, 0x55, 0x3a, 0xa3, 0xe9, 0x28, 0xab, 0xef, 0xcf, 0xb2, 0x2c, 0xbf, 0x09,
+ 0xbc, 0x35, 0x91, 0xde, 0xc8, 0xa4, 0x4b, 0xba, 0xce, 0x85, 0xfa, 0x56, 0x71, 0xee, 0xfe, 0xb7,
+ 0x81, 0xab, 0x18, 0x9b, 0x25, 0xce, 0x6d, 0x77, 0x10, 0x7d, 0x1d, 0x00, 0xe8, 0x53, 0x1f, 0x96,
+ 0x38, 0x0f, 0x6f, 0xaa, 0x85, 0x8d, 0xf0, 0x83, 0x23, 0xdb, 0xde, 0xc4, 0xc5, 0x4e, 0x3f, 0x85,
+ 0xeb, 0x4a, 0xc4, 0x70, 0x14, 0x74, 0x03, 0xf4, 0x52, 0xc7, 0x5f, 0xdd, 0x54, 0x93, 0x93, 0x20,
+ 0xc2, 0x65, 0x19, 0xec, 0x58, 0xe4, 0x34, 0xc7, 0xf0, 0xec, 0xfd, 0x26, 0x5c, 0x9b, 0x13, 0xb9,
+ 0x20, 0xa5, 0xae, 0xfc, 0x37, 0xb6, 0x74, 0xff, 0x43, 0x58, 0x53, 0x6a, 0x68, 0x5f, 0xdd, 0xd1,
+ 0x0b, 0xa7, 0xed, 0x59, 0x67, 0xbb, 0xa3, 0x66, 0x7a, 0xb3, 0xbd, 0xbb, 0xfb, 0x64, 0xb7, 0x65,
+ 0xb0, 0x0c, 0xc9, 0xc3, 0x41, 0xef, 0x68, 0xf3, 0x60, 0x7f, 0xbf, 0xbd, 0xd9, 0x6b, 0x6f, 0xb1,
+ 0xec, 0xc6, 0xfd, 0x7f, 0xf3, 0x8b, 0x3b, 0x99, 0x9f, 0xff, 0xe2, 0x4e, 0xe6, 0xbf, 0xfc, 0xe2,
+ 0x4e, 0xe6, 0xc7, 0x9f, 0xde, 0x59, 0xfa, 0xf9, 0xa7, 0x77, 0x96, 0xfe, 0xc3, 0xa7, 0x77, 0x96,
+ 0x3e, 0x61, 0xd3, 0xff, 0x50, 0xe7, 0xb8, 0x48, 0x2e, 0xc3, 0x5b, 0xff, 0x37, 0x00, 0x00, 0xff,
+ 0xff, 0xd3, 0x7d, 0x59, 0x78, 0x6b, 0x67, 0x00, 0x00,
}
func (m *SmartBlockSnapshotBase) Marshal() (dAtA []byte, err error) {
@@ -12911,6 +12919,16 @@ func (m *BlockContentWidget) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.AutoAdded {
+ i--
+ if m.AutoAdded {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x20
+ }
if len(m.ViewId) > 0 {
i -= len(m.ViewId)
copy(dAtA[i:], m.ViewId)
@@ -17754,6 +17772,9 @@ func (m *BlockContentWidget) Size() (n int) {
if l > 0 {
n += 1 + l + sovModels(uint64(l))
}
+ if m.AutoAdded {
+ n += 2
+ }
return n
}
@@ -25917,6 +25938,26 @@ func (m *BlockContentWidget) Unmarshal(dAtA []byte) error {
}
m.ViewId = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AutoAdded", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowModels
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AutoAdded = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipModels(dAtA[iNdEx:])
diff --git a/pkg/lib/pb/model/protos/models.proto b/pkg/lib/pb/model/protos/models.proto
index 38577c2bf..407078ed8 100644
--- a/pkg/lib/pb/model/protos/models.proto
+++ b/pkg/lib/pb/model/protos/models.proto
@@ -593,6 +593,7 @@ message Block {
Layout layout = 1;
int32 limit = 2;
string viewId = 3;
+ bool autoAdded = 4;
enum Layout {
Link = 0;
diff --git a/util/builtinobjects/builtinobjects.go b/util/builtinobjects/builtinobjects.go
index da7661a8f..c366295fe 100644
--- a/util/builtinobjects/builtinobjects.go
+++ b/util/builtinobjects/builtinobjects.go
@@ -405,7 +405,7 @@ func (b *builtinObjects) createWidgets(ctx session.Context, spaceId string, useC
}
if err = cache.DoStateCtx(b.objectGetter, ctx, widgetObjectID, func(s *state.State, w widget.Widget) error {
for _, targetId := range widgetTargetsToCreate {
- if err := w.AddAutoWidget(s, targetId, "", addr.ObjectTypeAllViewId, model.BlockContentWidget_View); err != nil {
+ if err := w.AddAutoWidget(s, targetId, "", addr.ObjectTypeAllViewId, model.BlockContentWidget_View, ""); err != nil {
log.Errorf("failed to create widget block for type '%s': %v", targetId, err)
}
}