diff --git a/.gitignore b/.gitignore index acd597c81..8d887c76c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ package-lock.json .vscode /vendor/ *_mock.go +*gomock_reflect* lib-server/service.pb.go dist/cli grpc-web diff --git a/clientlibrary/service/service.pb.go b/clientlibrary/service/service.pb.go index 4c0e150b8..a4fe097ff 100644 --- a/clientlibrary/service/service.pb.go +++ b/clientlibrary/service/service.pb.go @@ -25,208 +25,208 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 3214 bytes of a gzipped FileDescriptorProto + // 3203 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9c, 0xdf, 0x6f, 0x1d, 0x47, 0x15, 0xc7, 0x7b, 0x5f, 0x28, 0x6c, 0x69, 0x81, 0x2d, 0x94, 0x12, 0x5a, 0x27, 0x4d, 0x1b, 0xff, 0x88, 0xe3, 0xeb, 0x34, 0x81, 0x22, 0x78, 0x41, 0x37, 0x76, 0x9c, 0x58, 0x8d, 0x93, 0xe0, 0xeb, 0x34, 0x52, 0x25, 0x24, 0xd6, 0xbb, 0x93, 0x7b, 0x17, 0xef, 0xdd, 0x59, 0x76, 0xe7, 0x5e, 0xc7, - 0x20, 0x90, 0x10, 0x08, 0x44, 0x85, 0x04, 0x12, 0x8f, 0xfc, 0x11, 0xfc, 0x1b, 0x3c, 0xf6, 0x91, - 0x47, 0xd4, 0xfe, 0x23, 0x68, 0x77, 0xce, 0xcc, 0xec, 0x9c, 0x9d, 0x33, 0xbb, 0xe6, 0xa9, 0x70, - 0xcf, 0xe7, 0x9c, 0xef, 0xfc, 0x9e, 0x33, 0x33, 0x1b, 0x07, 0x57, 0x8b, 0xd3, 0xdd, 0xa2, 0xe4, - 0x82, 0x57, 0xbb, 0x15, 0x2b, 0x57, 0x69, 0xcc, 0xd4, 0x7f, 0xc7, 0xcd, 0xcf, 0xe1, 0xab, 0x51, - 0x7e, 0x21, 0x2e, 0x0a, 0x76, 0xe5, 0x6d, 0x43, 0xc6, 0x7c, 0xb1, 0x88, 0xf2, 0xa4, 0x92, 0xc8, - 0x95, 0xb7, 0x8c, 0x85, 0xad, 0x58, 0x2e, 0xe0, 0xf7, 0x3b, 0xff, 0xfa, 0x6c, 0x14, 0xbc, 0xb1, - 0x97, 0xa5, 0x2c, 0x17, 0x7b, 0xe0, 0x11, 0x7e, 0x1a, 0xbc, 0x3e, 0x29, 0x8a, 0x07, 0x4c, 0x7c, - 0xc2, 0xca, 0x2a, 0xe5, 0x79, 0xf8, 0xfe, 0x18, 0x04, 0xc6, 0xc7, 0x45, 0x3c, 0x9e, 0x14, 0xc5, - 0xd8, 0x18, 0xc7, 0xc7, 0xec, 0x57, 0x4b, 0x56, 0x89, 0x2b, 0x1f, 0xf8, 0xa1, 0xaa, 0xe0, 0x79, - 0xc5, 0xc2, 0x17, 0xc1, 0xb7, 0x26, 0x45, 0x31, 0x65, 0x62, 0x9f, 0xd5, 0x15, 0x98, 0x8a, 0x48, - 0xb0, 0x70, 0xa3, 0xe3, 0x6a, 0x03, 0x5a, 0x63, 0xb3, 0x1f, 0x04, 0x9d, 0x93, 0xe0, 0xb5, 0x5a, - 0x67, 0xbe, 0x14, 0x09, 0x3f, 0xcf, 0xc3, 0xf7, 0xba, 0x8e, 0x60, 0xd2, 0xb1, 0xaf, 0xfb, 0x10, - 0x88, 0xfa, 0x3c, 0xf8, 0xfa, 0xf3, 0x28, 0xcb, 0x98, 0xd8, 0x2b, 0x59, 0x5d, 0x70, 0xdb, 0x47, - 0x9a, 0xc6, 0xd2, 0xa6, 0xe3, 0xbe, 0xef, 0x65, 0x20, 0xf0, 0xa7, 0xc1, 0xeb, 0xd2, 0x72, 0xcc, - 0x62, 0xbe, 0x62, 0x65, 0xe8, 0xf4, 0x02, 0x23, 0xd1, 0xe4, 0x1d, 0x08, 0xc7, 0xde, 0xe3, 0xf9, - 0x8a, 0x95, 0xc2, 0x1d, 0x1b, 0x8c, 0xfe, 0xd8, 0x06, 0x82, 0xd8, 0x59, 0xf0, 0x66, 0xbb, 0x41, - 0xa6, 0xac, 0x6a, 0x06, 0xcc, 0x16, 0x5d, 0x67, 0x40, 0xb4, 0xce, 0xcd, 0x21, 0x28, 0xa8, 0xa5, - 0x41, 0x08, 0x6a, 0x19, 0xaf, 0xb4, 0xd8, 0xa6, 0x33, 0x42, 0x8b, 0xd0, 0x5a, 0x5b, 0x03, 0x48, - 0x90, 0xfa, 0x45, 0xf0, 0x8d, 0xe7, 0xbc, 0x3c, 0xab, 0x8a, 0x28, 0x66, 0xd0, 0xd9, 0x37, 0x6c, - 0x6f, 0x65, 0xc5, 0xfd, 0xbd, 0xde, 0x87, 0x39, 0x14, 0xa6, 0x2c, 0x63, 0xb1, 0x20, 0x15, 0xa4, - 0xb9, 0x57, 0x41, 0x63, 0xad, 0xce, 0x51, 0xc6, 0x07, 0x4c, 0xec, 0x2d, 0xcb, 0x92, 0xe5, 0x02, - 0x77, 0x8e, 0x76, 0x37, 0x08, 0xd5, 0x39, 0x6e, 0xd4, 0x51, 0x9f, 0x07, 0x4c, 0x4c, 0xb2, 0x8c, - 0xac, 0x8f, 0x34, 0xf7, 0xd6, 0x47, 0x63, 0xa0, 0xf0, 0xbb, 0xe0, 0x7b, 0xad, 0x16, 0x13, 0x87, - 0xd5, 0xc3, 0x74, 0x36, 0xcf, 0xd2, 0xd9, 0x5c, 0xb0, 0x24, 0xdc, 0x25, 0x1b, 0xc5, 0x06, 0xb5, - 0xea, 0xed, 0xe1, 0x0e, 0x8e, 0x1a, 0xde, 0x7f, 0x59, 0xf0, 0x92, 0xee, 0x31, 0x69, 0xee, 0xad, - 0xa1, 0xc6, 0x40, 0xe1, 0xe7, 0xc1, 0x1b, 0x93, 0x38, 0xe6, 0xcb, 0x5c, 0xaf, 0x03, 0x68, 0x55, - 0x95, 0xc6, 0xce, 0x42, 0x70, 0xa3, 0x87, 0x32, 0x2b, 0x01, 0xd8, 0x60, 0x48, 0xbf, 0xef, 0xf4, - 0x43, 0x03, 0xfa, 0x03, 0x3f, 0xd4, 0x89, 0xbd, 0xcf, 0x32, 0x46, 0xc6, 0x96, 0xc6, 0x9e, 0xd8, - 0x1a, 0xea, 0xc4, 0x86, 0x89, 0xe2, 0x8e, 0x8d, 0xa6, 0xc9, 0x07, 0x7e, 0xa8, 0xb5, 0x51, 0x40, - 0x6c, 0xc1, 0x0b, 0xbc, 0x51, 0x28, 0x27, 0xc1, 0x0b, 0x6a, 0xa3, 0xb0, 0x91, 0x4e, 0xd4, 0x23, - 0xbe, 0x62, 0x44, 0xd4, 0xda, 0xd4, 0x13, 0x15, 0x10, 0x33, 0xa1, 0x55, 0xff, 0xf1, 0xfc, 0x45, - 0x3a, 0x7b, 0x56, 0x24, 0x75, 0x2f, 0x6e, 0xb9, 0x3b, 0xa8, 0x85, 0x10, 0x13, 0x9a, 0x40, 0x41, - 0xed, 0x67, 0x41, 0xf0, 0xe4, 0xf4, 0x97, 0x2c, 0x16, 0x4f, 0x0a, 0x96, 0x87, 0xd7, 0x2c, 0x4f, - 0x69, 0x18, 0xd7, 0x16, 0x1d, 0xfb, 0x3d, 0x0f, 0x61, 0x9a, 0x45, 0xfe, 0xde, 0x2c, 0xba, 0xa1, - 0xd3, 0xa3, 0x31, 0x11, 0xcd, 0x82, 0x10, 0x5c, 0xd0, 0xe9, 0x9c, 0x9f, 0xbb, 0x0b, 0x5a, 0x5b, - 0xfc, 0x05, 0x05, 0xc2, 0x6c, 0xf4, 0x50, 0x50, 0xd7, 0x46, 0xaf, 0x8a, 0xe1, 0xdb, 0xe8, 0x31, - 0x03, 0x81, 0x79, 0xf0, 0xed, 0x76, 0xe0, 0x7b, 0x9c, 0x9f, 0x2d, 0xa2, 0xf2, 0x2c, 0xbc, 0x49, - 0x3b, 0x2b, 0x46, 0x0b, 0x6d, 0x0f, 0x62, 0xcd, 0xa2, 0xd5, 0x16, 0x9c, 0x32, 0xbc, 0x68, 0x59, - 0xfe, 0x53, 0x46, 0x2d, 0x5a, 0x0e, 0x0c, 0x77, 0xea, 0x83, 0x32, 0x2a, 0xe6, 0xee, 0x4e, 0x6d, - 0x4c, 0xfe, 0x4e, 0x55, 0x08, 0xee, 0x81, 0x29, 0x8b, 0xca, 0x78, 0xee, 0xee, 0x01, 0x69, 0xf3, - 0xf7, 0x80, 0x66, 0x20, 0x70, 0x19, 0x7c, 0xa7, 0x1d, 0x78, 0xba, 0x3c, 0xad, 0xe2, 0x32, 0x3d, - 0x65, 0xe1, 0x36, 0xed, 0xad, 0x21, 0x2d, 0x75, 0x6b, 0x18, 0x0c, 0x9a, 0x7f, 0x1e, 0x05, 0xef, - 0x48, 0xe6, 0x98, 0x65, 0x91, 0x48, 0x79, 0x2e, 0xd1, 0xfd, 0xb4, 0x12, 0x69, 0x1e, 0x8b, 0xf0, - 0x8e, 0x2b, 0x9c, 0x9b, 0xd5, 0x45, 0xb8, 0x7b, 0x29, 0x1f, 0x93, 0x42, 0x41, 0xed, 0x55, 0x29, - 0x0f, 0x93, 0x0a, 0xa5, 0x50, 0xaa, 0x36, 0x2d, 0x82, 0x48, 0xa1, 0xdc, 0x24, 0x48, 0xbd, 0x0c, - 0xbe, 0xdb, 0x6e, 0xe8, 0x67, 0x79, 0xa5, 0x9b, 0x7a, 0x87, 0x6e, 0xbd, 0x16, 0xa6, 0x45, 0xc7, - 0x43, 0x71, 0x50, 0x8e, 0x83, 0x6f, 0x2a, 0x65, 0xb1, 0xcf, 0x44, 0x94, 0x66, 0x55, 0xb8, 0xee, - 0x8e, 0xa1, 0xec, 0x5a, 0x6b, 0xa3, 0x97, 0xc3, 0x13, 0x6b, 0x7f, 0x59, 0x64, 0x69, 0xdc, 0xcd, - 0x10, 0xc1, 0x57, 0x9b, 0xfd, 0x13, 0xab, 0x8d, 0x99, 0xe5, 0x5e, 0x57, 0x43, 0xfe, 0x8f, 0x93, - 0x8b, 0x02, 0x2f, 0xf7, 0xa6, 0x84, 0x06, 0x21, 0x96, 0x7b, 0x02, 0xc5, 0xf5, 0x99, 0x32, 0xf1, - 0x28, 0xba, 0xe0, 0x4b, 0x62, 0xa1, 0xd0, 0x66, 0x7f, 0x7d, 0xda, 0x18, 0x28, 0x2c, 0x83, 0xb7, - 0xb4, 0xc2, 0x61, 0x2e, 0x58, 0x99, 0x47, 0xd9, 0x41, 0x16, 0xcd, 0xaa, 0x90, 0x98, 0x4d, 0x36, - 0xa5, 0xf5, 0x76, 0x06, 0xd2, 0x8e, 0x66, 0x3c, 0xac, 0x0e, 0xa2, 0x15, 0x2f, 0x53, 0x41, 0x37, - 0xa3, 0x41, 0x7a, 0x9b, 0xd1, 0x42, 0x9d, 0x6a, 0x93, 0x32, 0x9e, 0xa7, 0x2b, 0x96, 0x78, 0xd4, - 0x14, 0x32, 0x40, 0xad, 0x85, 0x62, 0xb5, 0x47, 0x69, 0xd5, 0x1a, 0x88, 0x4e, 0x35, 0x0b, 0xf1, - 0xab, 0x61, 0x14, 0xcf, 0xab, 0xc6, 0x2e, 0xd3, 0xbc, 0x75, 0xd2, 0xdf, 0xce, 0xf4, 0x36, 0x7a, - 0x39, 0xbc, 0x6c, 0xd4, 0x46, 0xbb, 0x11, 0x77, 0xa8, 0x18, 0xee, 0x86, 0x1c, 0x0f, 0xc5, 0x49, - 0x65, 0x3d, 0x58, 0xfc, 0xca, 0x9d, 0x01, 0x33, 0x1e, 0x8a, 0xe3, 0x6e, 0x9c, 0x14, 0x45, 0x76, - 0x71, 0xc2, 0x16, 0x45, 0x46, 0x76, 0xa3, 0x85, 0xf8, 0xbb, 0x11, 0xa3, 0x78, 0xc3, 0x3e, 0xe1, - 0x75, 0x3a, 0xe0, 0xdc, 0xb0, 0x1b, 0x93, 0x7f, 0xc3, 0x56, 0x08, 0xde, 0x57, 0x27, 0x49, 0xf2, - 0x3c, 0x15, 0x73, 0xf9, 0x7f, 0x0e, 0x13, 0xf7, 0xbe, 0x8a, 0x20, 0xff, 0xbe, 0xda, 0x85, 0xcd, - 0x6d, 0x92, 0xca, 0xfc, 0xa2, 0x92, 0xdd, 0xbb, 0x78, 0x94, 0xe6, 0x67, 0xa1, 0x7b, 0x05, 0x37, - 0x00, 0x71, 0x9b, 0xe4, 0x04, 0x71, 0xdd, 0xea, 0x74, 0xf6, 0x5e, 0xc9, 0xa2, 0x24, 0x2e, 0x97, - 0x8b, 0xd3, 0xca, 0x5d, 0x37, 0x04, 0xf9, 0xeb, 0xd6, 0x85, 0x71, 0xa6, 0x38, 0x65, 0xa2, 0x2d, - 0x49, 0x2d, 0x0f, 0x2e, 0xc5, 0xed, 0x41, 0x2c, 0x4e, 0xa3, 0x9f, 0xe5, 0x09, 0x77, 0xa7, 0xd1, - 0xb5, 0xc5, 0x9f, 0x46, 0x03, 0x81, 0x43, 0x1e, 0x33, 0x2a, 0x64, 0x6d, 0xf1, 0x87, 0x04, 0x02, - 0x37, 0xcb, 0xe1, 0xa2, 0x3e, 0x3b, 0x1f, 0x45, 0xe5, 0x59, 0x73, 0xc3, 0xe7, 0x6c, 0x16, 0x9b, - 0xf1, 0x37, 0x4b, 0x87, 0x75, 0x2d, 0x7a, 0x70, 0xec, 0x27, 0x17, 0x3d, 0x74, 0xee, 0xdf, 0xe8, - 0xe5, 0xf0, 0x02, 0xa0, 0x12, 0xf8, 0x03, 0x26, 0xe2, 0xb9, 0x7b, 0x01, 0xb0, 0x10, 0xff, 0x02, - 0x80, 0x51, 0x5c, 0xa5, 0x13, 0xae, 0x0f, 0x20, 0xeb, 0xee, 0x29, 0xde, 0x39, 0x7c, 0x6c, 0xf4, - 0x72, 0x38, 0x81, 0x97, 0x0d, 0xeb, 0x4e, 0xe0, 0xa5, 0xcd, 0x9f, 0xc0, 0x6b, 0x06, 0x97, 0x5e, - 0x1a, 0xea, 0xe6, 0x74, 0x97, 0xde, 0xd8, 0xfd, 0xa5, 0xb7, 0x38, 0xf7, 0x39, 0x4d, 0xa5, 0xd5, - 0xbe, 0x73, 0x9a, 0x62, 0x86, 0x9c, 0xd3, 0x5a, 0x2c, 0x08, 0xfe, 0x7e, 0x14, 0x5c, 0x71, 0x29, - 0x3e, 0x29, 0x1a, 0xdd, 0xdb, 0xfd, 0xb1, 0x24, 0xa9, 0xd5, 0x3f, 0xbc, 0x84, 0x07, 0x94, 0xe1, - 0x37, 0xc1, 0xdb, 0xca, 0x54, 0xb7, 0xc6, 0x31, 0x5b, 0xf0, 0x15, 0x83, 0x02, 0xd8, 0x5b, 0x9a, - 0x2e, 0x3f, 0xe6, 0xb4, 0xfc, 0xee, 0x60, 0xde, 0xe4, 0x9f, 0x76, 0xb9, 0x2a, 0x94, 0x7f, 0xea, - 0x18, 0x60, 0x26, 0xf2, 0x4f, 0x07, 0x86, 0x77, 0x0b, 0x85, 0x4c, 0x92, 0xc4, 0xb9, 0x5b, 0xe8, - 0x10, 0x93, 0x24, 0xf1, 0xee, 0x16, 0x08, 0xc4, 0x63, 0x47, 0x99, 0x21, 0x55, 0xba, 0xe9, 0x8b, - 0x80, 0xd2, 0xa5, 0xed, 0x41, 0xac, 0xb9, 0x18, 0xed, 0x54, 0xec, 0x80, 0x45, 0x62, 0x59, 0x76, - 0x2e, 0x46, 0xbb, 0xe5, 0x56, 0x20, 0x71, 0x31, 0xea, 0x75, 0x20, 0x8f, 0xb7, 0xb2, 0x8b, 0x75, - 0x19, 0xee, 0xf8, 0x42, 0xda, 0xac, 0xf7, 0x78, 0x4b, 0xfb, 0x40, 0x49, 0xfe, 0x38, 0x0a, 0xbe, - 0x6f, 0xa3, 0xf5, 0x80, 0x9b, 0xac, 0xa2, 0x34, 0x8b, 0x4e, 0x33, 0x16, 0x7e, 0xe8, 0x0b, 0x6a, - 0xa1, 0xba, 0x1c, 0x77, 0x2e, 0xe3, 0x82, 0x4f, 0x3a, 0x72, 0xbe, 0xb5, 0x0e, 0x6f, 0xb7, 0xe8, - 0x59, 0xe9, 0x38, 0xbf, 0xed, 0x0c, 0xa4, 0x41, 0xf6, 0x5c, 0xc9, 0xd6, 0x3f, 0xb7, 0x1b, 0xc0, - 0x99, 0xbf, 0x82, 0x6f, 0xab, 0x26, 0xde, 0xfc, 0xd5, 0x89, 0x83, 0xb0, 0x50, 0xf9, 0x51, 0x5b, - 0xb8, 0x9e, 0x5d, 0xb7, 0x7a, 0x03, 0xb5, 0xa7, 0xd8, 0xce, 0x40, 0x1a, 0x54, 0x7f, 0x1b, 0xbc, - 0xdd, 0x55, 0x95, 0x23, 0xc3, 0x39, 0xea, 0xed, 0x50, 0x12, 0xf4, 0x8e, 0x7a, 0xc2, 0xc1, 0x5c, - 0xa5, 0x3c, 0x4c, 0x2b, 0xc1, 0xcb, 0x8b, 0xe9, 0x9c, 0x9f, 0xab, 0xb7, 0x52, 0x7b, 0x99, 0x00, - 0x60, 0xdc, 0x22, 0x88, 0xab, 0x14, 0x37, 0xd9, 0x91, 0x32, 0x6f, 0xaa, 0x15, 0x21, 0xd5, 0x22, - 0x7a, 0xa4, 0x6c, 0xd2, 0x2c, 0x92, 0xaa, 0x56, 0xe6, 0x01, 0x78, 0xc3, 0x5d, 0xd4, 0xee, 0x23, - 0xf0, 0x66, 0x3f, 0x68, 0x0e, 0x21, 0x07, 0x69, 0xc6, 0x9e, 0xbc, 0x78, 0x91, 0xf1, 0x28, 0x41, - 0x87, 0x90, 0xda, 0x32, 0x06, 0x13, 0x71, 0x08, 0x41, 0x88, 0xd9, 0x44, 0x6a, 0x43, 0x3d, 0x3a, - 0x55, 0xe4, 0x1b, 0x5d, 0xb7, 0x96, 0x99, 0xd8, 0x44, 0x1c, 0x98, 0x49, 0x69, 0x6b, 0xe3, 0xb3, - 0xa2, 0x09, 0x7e, 0xad, 0xeb, 0x25, 0x2d, 0x44, 0x4a, 0x6b, 0x13, 0x26, 0x53, 0xaa, 0x7f, 0xdf, - 0xe7, 0xe7, 0x79, 0x13, 0xd4, 0x51, 0x51, 0x65, 0x23, 0x32, 0x25, 0xcc, 0x40, 0xe0, 0x8f, 0x83, - 0xaf, 0x36, 0x81, 0x4b, 0x5e, 0x84, 0x6b, 0x0e, 0x87, 0xb2, 0xf5, 0xaa, 0x71, 0x95, 0xb4, 0x9b, - 0x33, 0xd0, 0xe3, 0x68, 0x95, 0xce, 0xf4, 0xa2, 0x22, 0xe7, 0x08, 0x3e, 0x03, 0x19, 0x66, 0xdc, - 0x82, 0x88, 0x33, 0x10, 0x09, 0x83, 0xe6, 0x3f, 0x46, 0xc1, 0x35, 0xc3, 0x3c, 0x50, 0x17, 0x57, - 0x87, 0xf9, 0x0b, 0x5e, 0x1f, 0x08, 0xeb, 0x43, 0x5a, 0x15, 0x7e, 0x44, 0x85, 0x74, 0xf3, 0xba, - 0x28, 0x3f, 0xba, 0xb4, 0x9f, 0x49, 0x93, 0xd4, 0xa1, 0x5a, 0xae, 0xc5, 0x07, 0x25, 0x5f, 0x48, - 0x0f, 0x94, 0x26, 0xe9, 0xb3, 0x37, 0xe6, 0x88, 0x34, 0xc9, 0xc7, 0xb7, 0xf6, 0x5a, 0x4a, 0xbd, - 0xd9, 0x61, 0xee, 0x0c, 0x8b, 0x68, 0xed, 0x33, 0x77, 0x2f, 0xe5, 0x63, 0x5e, 0xe5, 0x74, 0x41, - 0x32, 0x9e, 0xe3, 0x17, 0x3f, 0x13, 0xa5, 0x36, 0x12, 0xaf, 0x72, 0x1d, 0xc8, 0xac, 0x42, 0xca, - 0x24, 0x8f, 0x4a, 0x93, 0x2c, 0x43, 0xab, 0x90, 0x76, 0xd5, 0x00, 0xb1, 0x0a, 0x39, 0x41, 0xd0, - 0x39, 0x0e, 0x5e, 0xab, 0x3b, 0xf7, 0x69, 0xc9, 0x56, 0x29, 0xc3, 0x6f, 0x47, 0x2d, 0x0b, 0x31, - 0x9d, 0x6d, 0xc2, 0x3c, 0xe2, 0x3e, 0xcb, 0xab, 0x22, 0x8b, 0xaa, 0x39, 0xbc, 0x5d, 0xd8, 0x75, - 0x56, 0x46, 0xfc, 0x7a, 0x71, 0xa3, 0x87, 0x32, 0xc7, 0x1f, 0x65, 0xd3, 0x2b, 0xc6, 0xba, 0xdb, - 0xb5, 0xb3, 0x6a, 0x6c, 0xf4, 0x72, 0x66, 0x75, 0xbe, 0x97, 0xf1, 0xf8, 0x0c, 0x96, 0x39, 0xbb, - 0xd6, 0x8d, 0x05, 0xaf, 0x73, 0xd7, 0x7d, 0x88, 0x59, 0xe8, 0x1a, 0xc3, 0x31, 0x2b, 0xb2, 0x28, - 0xc6, 0xaf, 0x6a, 0xd2, 0x07, 0x6c, 0xc4, 0x42, 0x87, 0x19, 0x54, 0x5c, 0x78, 0xad, 0x73, 0x15, - 0x17, 0x3d, 0xd6, 0x5d, 0xf7, 0x21, 0x66, 0xa9, 0x6f, 0x0c, 0xd3, 0x22, 0x4b, 0x05, 0x1a, 0x1b, - 0xd2, 0xa3, 0xb1, 0x10, 0x63, 0xc3, 0x26, 0x50, 0xc8, 0x23, 0x56, 0xce, 0x98, 0x33, 0x64, 0x63, - 0xf1, 0x86, 0x54, 0x04, 0x84, 0x7c, 0x1c, 0x7c, 0x4d, 0xd6, 0x9d, 0x17, 0x17, 0xe1, 0x55, 0x57, - 0xb5, 0x78, 0x71, 0xa1, 0x03, 0x5e, 0xa3, 0x01, 0x54, 0xc4, 0xa7, 0x51, 0x25, 0xdc, 0x45, 0x6c, - 0x2c, 0xde, 0x22, 0x2a, 0xc2, 0xec, 0x43, 0xb2, 0x88, 0x4b, 0x81, 0xf6, 0x21, 0x28, 0x40, 0xeb, - 0x31, 0xe1, 0x2a, 0x69, 0x37, 0xd3, 0x4b, 0xf6, 0x0a, 0x13, 0x07, 0x29, 0xcb, 0x92, 0x0a, 0x4d, - 0x2f, 0x68, 0x77, 0x65, 0x25, 0xa6, 0x57, 0x97, 0x42, 0x43, 0x09, 0x6e, 0x7a, 0x5c, 0xb5, 0x43, - 0x97, 0x3c, 0xd7, 0x7d, 0x88, 0xc9, 0x4b, 0x1a, 0x43, 0xeb, 0xe2, 0xdc, 0x55, 0x1e, 0xc7, 0xbd, - 0xf9, 0x7a, 0x1f, 0x06, 0x0a, 0x9f, 0x8d, 0x82, 0x77, 0xb5, 0xc4, 0x11, 0x5f, 0xb1, 0x13, 0x7e, - 0xff, 0x65, 0xf3, 0xfc, 0x37, 0x83, 0xad, 0xe9, 0x2e, 0x11, 0xc9, 0x05, 0x6b, 0xf9, 0x1f, 0x5c, - 0xce, 0xc9, 0xec, 0x90, 0xa8, 0x2c, 0x8f, 0xd9, 0xb9, 0x73, 0x87, 0xc4, 0x11, 0x35, 0x47, 0xec, - 0x90, 0x3e, 0xde, 0x9c, 0x86, 0xb5, 0x38, 0x7c, 0xb0, 0x76, 0xc2, 0x55, 0xb2, 0x42, 0x45, 0xc3, - 0x20, 0x71, 0x2e, 0xf0, 0x3a, 0x98, 0x64, 0x5d, 0xeb, 0x9b, 0x41, 0xba, 0x49, 0xc4, 0xe9, 0x0e, - 0xd4, 0xad, 0x01, 0xa4, 0x43, 0xca, 0xbc, 0xfe, 0x50, 0x52, 0xdd, 0xc7, 0x9f, 0xad, 0x01, 0x64, - 0xeb, 0x64, 0xdd, 0xae, 0xd6, 0xbd, 0x28, 0x3e, 0x9b, 0x95, 0x7c, 0x99, 0x27, 0x7b, 0x3c, 0xe3, - 0x25, 0x3a, 0x59, 0x5b, 0xa5, 0x46, 0x28, 0x71, 0xb2, 0xee, 0x71, 0x31, 0x89, 0x41, 0xbb, 0x14, - 0x93, 0x2c, 0x9d, 0xe1, 0xe3, 0x89, 0x15, 0xa8, 0x01, 0x88, 0xc4, 0xc0, 0x09, 0x3a, 0x06, 0x91, - 0x3c, 0xbe, 0x88, 0x34, 0x8e, 0x32, 0xa9, 0xb7, 0x4b, 0x87, 0xb1, 0xc0, 0xde, 0x41, 0xe4, 0x70, - 0x70, 0xd4, 0xf3, 0x64, 0x59, 0xe6, 0x87, 0xb9, 0xe0, 0x64, 0x3d, 0x15, 0xd0, 0x5b, 0xcf, 0x16, - 0x68, 0xb2, 0x89, 0xc6, 0x7c, 0xc2, 0x5e, 0xd6, 0xa5, 0xa9, 0xff, 0x13, 0x3a, 0x96, 0x9c, 0xfa, - 0xf7, 0x31, 0xd8, 0x89, 0x6c, 0xc2, 0xc5, 0xa1, 0xca, 0x80, 0x88, 0x1c, 0x30, 0x1e, 0x6f, 0x7b, - 0x98, 0x6c, 0xf6, 0x83, 0x6e, 0x9d, 0xa9, 0xb8, 0xc8, 0x98, 0x4f, 0xa7, 0x01, 0x86, 0xe8, 0x28, - 0xd0, 0xdc, 0xd6, 0x5b, 0xf5, 0x99, 0xb3, 0xf8, 0xac, 0xf3, 0xc6, 0x6b, 0x17, 0x54, 0x22, 0xc4, - 0x6d, 0x3d, 0x81, 0xba, 0xbb, 0xe8, 0x30, 0xe6, 0xb9, 0xaf, 0x8b, 0x6a, 0xfb, 0x90, 0x2e, 0x02, - 0xce, 0x9c, 0xee, 0xb4, 0x15, 0x46, 0xa6, 0xec, 0xa6, 0x6d, 0x22, 0x42, 0x1b, 0x22, 0x4e, 0x77, - 0x24, 0x6c, 0xee, 0x49, 0xb1, 0xe6, 0x51, 0xf7, 0x5b, 0xa8, 0x4e, 0x94, 0x23, 0xfa, 0x5b, 0x28, - 0x8a, 0xa5, 0x2b, 0x29, 0xc7, 0x48, 0x4f, 0x14, 0x7b, 0x9c, 0xdc, 0x1a, 0x06, 0x9b, 0x47, 0x65, - 0x4b, 0x73, 0x2f, 0x63, 0x51, 0x29, 0x55, 0x77, 0x3c, 0x81, 0x0c, 0x46, 0x5c, 0xca, 0x79, 0x70, - 0xb4, 0x84, 0x59, 0xca, 0x7b, 0x3c, 0x17, 0x2c, 0x17, 0xae, 0x25, 0xcc, 0x0e, 0x06, 0xa0, 0x6f, - 0x09, 0xa3, 0x1c, 0xd0, 0xb8, 0x3d, 0x48, 0x33, 0x36, 0x65, 0xe2, 0x71, 0xb4, 0x60, 0xae, 0x71, - 0xdb, 0x5c, 0x35, 0x80, 0xdd, 0x37, 0x6e, 0x11, 0x87, 0xa6, 0xfc, 0xe1, 0x22, 0x9a, 0x69, 0x15, - 0x87, 0x77, 0x63, 0xef, 0xc8, 0x6c, 0xf6, 0x83, 0x48, 0xe7, 0x93, 0x34, 0x61, 0xdc, 0xa3, 0xd3, - 0xd8, 0x87, 0xe8, 0x60, 0x10, 0x65, 0x4e, 0x75, 0x6d, 0xe5, 0x79, 0x64, 0x92, 0x27, 0x70, 0x0a, - 0x1b, 0x13, 0x8d, 0x82, 0x38, 0x5f, 0xe6, 0x44, 0xf0, 0x68, 0x7e, 0xa8, 0x2b, 0x34, 0xdf, 0xfc, - 0xd0, 0x37, 0x64, 0x43, 0xe6, 0x87, 0x0b, 0x06, 0xcd, 0x5f, 0xc3, 0xfc, 0xd8, 0x8f, 0x44, 0x54, - 0x9f, 0xa3, 0x3f, 0x49, 0xd9, 0x39, 0x1c, 0xe3, 0x1c, 0xf5, 0x55, 0xd4, 0xb8, 0xc6, 0xf0, 0x99, - 0x6e, 0x77, 0x30, 0xef, 0xd1, 0x86, 0xec, 0xbc, 0x57, 0x1b, 0xa5, 0xe9, 0xbb, 0x83, 0x79, 0x8f, - 0x36, 0x7c, 0xcf, 0xdb, 0xab, 0x8d, 0x3e, 0xea, 0xdd, 0x1d, 0xcc, 0x83, 0xf6, 0x1f, 0x46, 0xc1, - 0x95, 0x8e, 0x78, 0x9d, 0x03, 0xc5, 0x22, 0x5d, 0x31, 0x57, 0x2a, 0x67, 0xc7, 0xd3, 0xa8, 0x2f, - 0x95, 0xa3, 0x5d, 0xa0, 0x14, 0x7f, 0x19, 0x05, 0xef, 0xb8, 0x4a, 0xf1, 0x94, 0x57, 0x69, 0xf3, - 0xe4, 0x78, 0x77, 0x40, 0x50, 0x05, 0xfb, 0x0e, 0x2c, 0x3e, 0x27, 0xf3, 0x60, 0x63, 0xa1, 0xf5, - 0x38, 0xe5, 0xcb, 0x32, 0xc6, 0x0f, 0x36, 0x76, 0x3c, 0x4d, 0x11, 0x2f, 0x18, 0x34, 0x6d, 0x5e, - 0x30, 0x2c, 0xa6, 0xfd, 0x74, 0xe2, 0xeb, 0x55, 0xe7, 0xeb, 0xc9, 0xed, 0xe1, 0x0e, 0x20, 0xff, - 0x27, 0x95, 0xd3, 0x63, 0x7d, 0x98, 0x04, 0x77, 0x86, 0x44, 0x44, 0x13, 0xe1, 0xee, 0xa5, 0x7c, - 0xa0, 0x20, 0xff, 0x1c, 0x05, 0xd7, 0x9d, 0x05, 0xb1, 0x5f, 0xef, 0x7e, 0x3c, 0x24, 0xb6, 0xfb, - 0x15, 0xef, 0x27, 0xff, 0x8f, 0x2b, 0x94, 0xee, 0xaf, 0xea, 0x68, 0xad, 0x3c, 0x1e, 0x94, 0x7c, - 0x59, 0x3c, 0x29, 0x13, 0x56, 0xc2, 0x8c, 0xf5, 0x0d, 0x3a, 0x03, 0xe3, 0x79, 0xfb, 0xc3, 0x4b, - 0x7a, 0x41, 0x71, 0xfe, 0x36, 0x0a, 0xd6, 0x2c, 0x18, 0x3e, 0x4d, 0x6a, 0x95, 0xc7, 0x17, 0xb9, - 0x45, 0xe3, 0x02, 0x7d, 0x74, 0x59, 0x37, 0x9c, 0xa1, 0xd6, 0xed, 0x06, 0x8b, 0xb7, 0x2b, 0x43, - 0x6d, 0x9a, 0x15, 0x2d, 0xda, 0x1b, 0xbd, 0x9c, 0x4b, 0xe4, 0xfe, 0xcb, 0x22, 0xca, 0x13, 0x5a, - 0x44, 0xda, 0xfb, 0x45, 0x34, 0x87, 0x33, 0xfb, 0xda, 0x7a, 0xcc, 0xd5, 0x4e, 0xb4, 0x45, 0xf9, - 0x6b, 0xc4, 0x9b, 0xd9, 0x77, 0x50, 0x42, 0x0d, 0xa6, 0x9d, 0x4f, 0x0d, 0xcd, 0xb6, 0x9b, 0x43, - 0x50, 0xb4, 0xc6, 0x69, 0x35, 0x7d, 0x61, 0x70, 0xcb, 0x17, 0xa5, 0x73, 0x69, 0xb0, 0x33, 0x90, - 0x26, 0x64, 0xa7, 0x4c, 0x3c, 0x64, 0x51, 0xc2, 0x4a, 0xaf, 0xac, 0xa6, 0x06, 0xc9, 0xb6, 0x69, - 0x97, 0xec, 0x1e, 0xcf, 0x96, 0x8b, 0x1c, 0x3a, 0x93, 0x94, 0x6d, 0x53, 0xfd, 0xb2, 0x88, 0xc6, - 0x67, 0x1a, 0x23, 0xdb, 0xfc, 0x0b, 0xa0, 0x9b, 0xfe, 0x30, 0xd6, 0x3f, 0x05, 0xda, 0x1e, 0xc4, - 0xd2, 0xf5, 0x84, 0x61, 0xd4, 0x53, 0x4f, 0x34, 0x92, 0x76, 0x06, 0xd2, 0xf8, 0x70, 0xd1, 0x92, - 0xd5, 0xe3, 0x69, 0xb7, 0x27, 0x56, 0x67, 0x48, 0xdd, 0x1e, 0xee, 0x80, 0x8f, 0x72, 0x30, 0xaa, - 0xea, 0xa5, 0xfb, 0x20, 0xcd, 0xb2, 0x70, 0xdb, 0x33, 0x4c, 0x14, 0xe4, 0x3d, 0xca, 0x39, 0x60, - 0x62, 0x24, 0xab, 0xa3, 0x4f, 0x1e, 0xf6, 0xc5, 0x69, 0xa8, 0x41, 0x23, 0xb9, 0x4d, 0xa3, 0x23, - 0x41, 0xab, 0xa9, 0x75, 0x6d, 0xc7, 0xfe, 0x86, 0xeb, 0x54, 0x78, 0x77, 0x30, 0x8f, 0x6e, 0xdb, - 0x1b, 0x6a, 0xca, 0x4b, 0xe1, 0xba, 0x6d, 0x97, 0x21, 0xa6, 0xed, 0x4b, 0xf1, 0x1b, 0x3d, 0x54, - 0xe7, 0x9a, 0x2d, 0x87, 0xc7, 0x1b, 0xf3, 0xa1, 0xaf, 0x6b, 0x18, 0x35, 0x9f, 0xe5, 0x62, 0xd0, - 0x37, 0x8c, 0x28, 0x87, 0xd6, 0x57, 0x77, 0x9a, 0x53, 0x37, 0x81, 0x45, 0xc1, 0xa2, 0x32, 0xca, - 0x63, 0x16, 0x52, 0x01, 0x3b, 0x24, 0xf1, 0xd5, 0x9d, 0xdf, 0x03, 0x5d, 0xe2, 0xda, 0x9f, 0x7e, - 0x3a, 0x8e, 0x8c, 0xfa, 0x1b, 0x4b, 0xfb, 0xcb, 0xcf, 0xad, 0x01, 0x24, 0xbe, 0xc4, 0x55, 0x80, - 0x3e, 0x0a, 0x4a, 0xd1, 0x0f, 0x3d, 0xa1, 0x6c, 0xd4, 0x97, 0xf9, 0xd3, 0x2e, 0x68, 0xdf, 0x33, - 0xff, 0x58, 0x49, 0x7c, 0xcc, 0x2e, 0x5c, 0xfb, 0x9e, 0x4e, 0xcd, 0x24, 0xe2, 0xdb, 0xf7, 0xba, - 0x28, 0x4a, 0x1c, 0xda, 0xc9, 0xf5, 0xba, 0xc7, 0xbf, 0x9d, 0x53, 0x6f, 0xf4, 0x72, 0x68, 0xdd, - 0xdf, 0x4f, 0x57, 0xd6, 0xc9, 0xd9, 0x51, 0xd0, 0xfd, 0x74, 0xe5, 0x3e, 0x38, 0x6f, 0x0f, 0x62, - 0xf1, 0x05, 0x71, 0x24, 0xd8, 0x4b, 0x75, 0x73, 0xeb, 0x28, 0x6e, 0x63, 0xef, 0x5c, 0xdd, 0x6e, - 0xf6, 0x83, 0xe6, 0x95, 0xff, 0x69, 0xc9, 0x63, 0x56, 0x55, 0x7b, 0xf5, 0xb0, 0xcd, 0xd0, 0x2b, - 0x3f, 0xd8, 0xc6, 0xd2, 0x48, 0xbc, 0xf2, 0x77, 0x20, 0x88, 0xfd, 0x30, 0x78, 0xf5, 0x11, 0x9f, - 0x4d, 0x59, 0x9e, 0x84, 0xef, 0xda, 0xef, 0xea, 0x7c, 0x36, 0xae, 0x7f, 0xd6, 0xf1, 0xd6, 0x28, - 0xb3, 0x79, 0x04, 0xdd, 0x67, 0xa7, 0xcb, 0xd9, 0xf4, 0x22, 0x8f, 0xd1, 0x23, 0x68, 0xf3, 0xfb, - 0xb8, 0x36, 0x10, 0x8f, 0xa0, 0x16, 0x60, 0x5e, 0x01, 0x9b, 0x9f, 0x4f, 0xe6, 0x25, 0xeb, 0xbc, - 0x7f, 0x4b, 0x07, 0x69, 0x22, 0x5e, 0x01, 0x11, 0x82, 0x4a, 0x79, 0x52, 0x32, 0xe6, 0x2c, 0x65, - 0x6d, 0xf0, 0x96, 0x12, 0x00, 0xb3, 0x09, 0x36, 0x3f, 0xcb, 0xd7, 0xc6, 0x47, 0x3c, 0x8e, 0xb2, - 0x4a, 0xf0, 0x12, 0xdf, 0xd7, 0x48, 0x57, 0x0c, 0x11, 0x9b, 0x20, 0x09, 0xa3, 0x3a, 0x3c, 0x4d, - 0xf3, 0x99, 0xb3, 0x0e, 0xb5, 0xc1, 0x5b, 0x07, 0x00, 0xcc, 0xc4, 0x39, 0x62, 0xa2, 0x4c, 0xe3, - 0xaa, 0x3e, 0x98, 0x47, 0x65, 0xb4, 0x60, 0x82, 0x95, 0xf8, 0x9f, 0x39, 0x00, 0x32, 0xb6, 0x18, - 0x62, 0xe2, 0x50, 0x2c, 0x08, 0xfe, 0x34, 0x78, 0xb3, 0x9e, 0x51, 0x2c, 0x87, 0xbf, 0xf9, 0x70, - 0xbf, 0xf9, 0x73, 0x28, 0xe1, 0x5b, 0x3a, 0xc6, 0x54, 0x94, 0x2c, 0x5a, 0xa8, 0xd8, 0x6f, 0xe8, - 0xdf, 0x1b, 0xf0, 0xf6, 0xe8, 0xde, 0x7b, 0xff, 0xfe, 0x62, 0x6d, 0xf4, 0xf9, 0x17, 0x6b, 0xa3, - 0xff, 0x7e, 0xb1, 0x36, 0xfa, 0xfb, 0x97, 0x6b, 0xaf, 0x7c, 0xfe, 0xe5, 0xda, 0x2b, 0xff, 0xf9, - 0x72, 0xed, 0x95, 0x4f, 0x5f, 0x85, 0x3f, 0xcb, 0x72, 0xfa, 0x95, 0xe6, 0x8f, 0xab, 0xdc, 0xfd, - 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0xa5, 0xc1, 0xd7, 0xba, 0x45, 0x00, 0x00, + 0x20, 0x90, 0x10, 0x08, 0x44, 0x85, 0x04, 0x12, 0x4f, 0x88, 0x7f, 0x88, 0xc7, 0x3e, 0xf2, 0x88, + 0xda, 0x7f, 0x04, 0xed, 0xce, 0x99, 0x99, 0x9d, 0xb3, 0x73, 0x66, 0xd7, 0x3c, 0x15, 0xee, 0xf9, + 0x9c, 0xf3, 0x9d, 0xdf, 0x73, 0x66, 0x66, 0xe3, 0xe0, 0x6a, 0x71, 0xba, 0x5b, 0x94, 0x5c, 0xf0, + 0x6a, 0xb7, 0x62, 0xe5, 0x2a, 0x8d, 0x99, 0xfa, 0xef, 0xb8, 0xf9, 0x39, 0x7c, 0x35, 0xca, 0x2f, + 0xc4, 0x45, 0xc1, 0xae, 0xbc, 0x6d, 0xc8, 0x98, 0x2f, 0x16, 0x51, 0x9e, 0x54, 0x12, 0xb9, 0xf2, + 0x96, 0xb1, 0xb0, 0x15, 0xcb, 0x05, 0xfc, 0x7e, 0xe7, 0x9f, 0x9f, 0x8d, 0x82, 0x37, 0xf6, 0xb2, + 0x94, 0xe5, 0x62, 0x0f, 0x3c, 0xc2, 0x4f, 0x83, 0xd7, 0x27, 0x45, 0xf1, 0x80, 0x89, 0x4f, 0x58, + 0x59, 0xa5, 0x3c, 0x0f, 0xdf, 0x1f, 0x83, 0xc0, 0xf8, 0xb8, 0x88, 0xc7, 0x93, 0xa2, 0x18, 0x1b, + 0xe3, 0xf8, 0x98, 0xfd, 0x6a, 0xc9, 0x2a, 0x71, 0xe5, 0x03, 0x3f, 0x54, 0x15, 0x3c, 0xaf, 0x58, + 0xf8, 0x22, 0xf8, 0xd6, 0xa4, 0x28, 0xa6, 0x4c, 0xec, 0xb3, 0xba, 0x02, 0x53, 0x11, 0x09, 0x16, + 0x6e, 0x74, 0x5c, 0x6d, 0x40, 0x6b, 0x6c, 0xf6, 0x83, 0xa0, 0x73, 0x12, 0xbc, 0x56, 0xeb, 0xcc, + 0x97, 0x22, 0xe1, 0xe7, 0x79, 0xf8, 0x5e, 0xd7, 0x11, 0x4c, 0x3a, 0xf6, 0x75, 0x1f, 0x02, 0x51, + 0x9f, 0x07, 0x5f, 0x7f, 0x1e, 0x65, 0x19, 0x13, 0x7b, 0x25, 0xab, 0x0b, 0x6e, 0xfb, 0x48, 0xd3, + 0x58, 0xda, 0x74, 0xdc, 0xf7, 0xbd, 0x0c, 0x04, 0xfe, 0x34, 0x78, 0x5d, 0x5a, 0x8e, 0x59, 0xcc, + 0x57, 0xac, 0x0c, 0x9d, 0x5e, 0x60, 0x24, 0x9a, 0xbc, 0x03, 0xe1, 0xd8, 0x7b, 0x3c, 0x5f, 0xb1, + 0x52, 0xb8, 0x63, 0x83, 0xd1, 0x1f, 0xdb, 0x40, 0x10, 0x3b, 0x0b, 0xde, 0x6c, 0x37, 0xc8, 0x94, + 0x55, 0xcd, 0x80, 0xd9, 0xa2, 0xeb, 0x0c, 0x88, 0xd6, 0xb9, 0x39, 0x04, 0x05, 0xb5, 0x34, 0x08, + 0x41, 0x2d, 0xe3, 0x95, 0x16, 0xdb, 0x74, 0x46, 0x68, 0x11, 0x5a, 0x6b, 0x6b, 0x00, 0x09, 0x52, + 0xbf, 0x08, 0xbe, 0xf1, 0x9c, 0x97, 0x67, 0x55, 0x11, 0xc5, 0x0c, 0x3a, 0xfb, 0x86, 0xed, 0xad, + 0xac, 0xb8, 0xbf, 0xd7, 0xfb, 0x30, 0x87, 0xc2, 0x94, 0x65, 0x2c, 0x16, 0xa4, 0x82, 0x34, 0xf7, + 0x2a, 0x68, 0xac, 0xd5, 0x39, 0xca, 0xf8, 0x80, 0x89, 0xbd, 0x65, 0x59, 0xb2, 0x5c, 0xe0, 0xce, + 0xd1, 0xee, 0x06, 0xa1, 0x3a, 0xc7, 0x8d, 0x3a, 0xea, 0xf3, 0x80, 0x89, 0x49, 0x96, 0x91, 0xf5, + 0x91, 0xe6, 0xde, 0xfa, 0x68, 0x0c, 0x14, 0x7e, 0x17, 0x7c, 0xaf, 0xd5, 0x62, 0xe2, 0xb0, 0x7a, + 0x98, 0xce, 0xe6, 0x59, 0x3a, 0x9b, 0x0b, 0x96, 0x84, 0xbb, 0x64, 0xa3, 0xd8, 0xa0, 0x56, 0xbd, + 0x3d, 0xdc, 0xc1, 0x51, 0xc3, 0xfb, 0x2f, 0x0b, 0x5e, 0xd2, 0x3d, 0x26, 0xcd, 0xbd, 0x35, 0xd4, + 0x18, 0x28, 0xfc, 0x3c, 0x78, 0x63, 0x12, 0xc7, 0x7c, 0x99, 0xeb, 0x75, 0x00, 0xad, 0xaa, 0xd2, + 0xd8, 0x59, 0x08, 0x6e, 0xf4, 0x50, 0x66, 0x25, 0x00, 0x1b, 0x0c, 0xe9, 0xf7, 0x9d, 0x7e, 0x68, + 0x40, 0x7f, 0xe0, 0x87, 0x3a, 0xb1, 0xf7, 0x59, 0xc6, 0xc8, 0xd8, 0xd2, 0xd8, 0x13, 0x5b, 0x43, + 0x9d, 0xd8, 0x30, 0x51, 0xdc, 0xb1, 0xd1, 0x34, 0xf9, 0xc0, 0x0f, 0xb5, 0x36, 0x0a, 0x88, 0x2d, + 0x78, 0x81, 0x37, 0x0a, 0xe5, 0x24, 0x78, 0x41, 0x6d, 0x14, 0x36, 0xd2, 0x89, 0x7a, 0xc4, 0x57, + 0x8c, 0x88, 0x5a, 0x9b, 0x7a, 0xa2, 0x02, 0x62, 0x26, 0xb4, 0xea, 0x3f, 0x9e, 0xbf, 0x48, 0x67, + 0xcf, 0x8a, 0xa4, 0xee, 0xc5, 0x2d, 0x77, 0x07, 0xb5, 0x10, 0x62, 0x42, 0x13, 0x28, 0xa8, 0xfd, + 0x2c, 0x08, 0x9e, 0x9c, 0xfe, 0x92, 0xc5, 0xe2, 0x49, 0xc1, 0xf2, 0xf0, 0x9a, 0xe5, 0x29, 0x0d, + 0xe3, 0xda, 0xa2, 0x63, 0xbf, 0xe7, 0x21, 0x4c, 0xb3, 0xc8, 0xdf, 0x9b, 0x45, 0x37, 0x74, 0x7a, + 0x34, 0x26, 0xa2, 0x59, 0x10, 0x82, 0x0b, 0x3a, 0x9d, 0xf3, 0x73, 0x77, 0x41, 0x6b, 0x8b, 0xbf, + 0xa0, 0x40, 0x98, 0x8d, 0x1e, 0x0a, 0xea, 0xda, 0xe8, 0x55, 0x31, 0x7c, 0x1b, 0x3d, 0x66, 0x20, + 0x30, 0x0f, 0xbe, 0xdd, 0x0e, 0x7c, 0x8f, 0xf3, 0xb3, 0x45, 0x54, 0x9e, 0x85, 0x37, 0x69, 0x67, + 0xc5, 0x68, 0xa1, 0xed, 0x41, 0xac, 0x59, 0xb4, 0xda, 0x82, 0x53, 0x86, 0x17, 0x2d, 0xcb, 0x7f, + 0xca, 0xa8, 0x45, 0xcb, 0x81, 0xe1, 0x4e, 0x7d, 0x50, 0x46, 0xc5, 0xdc, 0xdd, 0xa9, 0x8d, 0xc9, + 0xdf, 0xa9, 0x0a, 0xc1, 0x3d, 0x30, 0x65, 0x51, 0x19, 0xcf, 0xdd, 0x3d, 0x20, 0x6d, 0xfe, 0x1e, + 0xd0, 0x0c, 0x04, 0x2e, 0x83, 0xef, 0xb4, 0x03, 0x4f, 0x97, 0xa7, 0x55, 0x5c, 0xa6, 0xa7, 0x2c, + 0xdc, 0xa6, 0xbd, 0x35, 0xa4, 0xa5, 0x6e, 0x0d, 0x83, 0x4d, 0xe2, 0x02, 0x9a, 0xca, 0x76, 0x98, + 0x54, 0x28, 0x71, 0x51, 0x31, 0x5a, 0x04, 0x91, 0xb8, 0xb8, 0x49, 0x5c, 0xbd, 0x07, 0x25, 0x5f, + 0x16, 0x55, 0x4f, 0xf5, 0x10, 0xe4, 0xaf, 0x5e, 0x17, 0x06, 0xcd, 0x97, 0xc1, 0x77, 0xdb, 0x4d, + 0xfa, 0x2c, 0xaf, 0xb4, 0xea, 0x0e, 0xdd, 0x4e, 0x2d, 0x4c, 0xeb, 0x8e, 0x87, 0xe2, 0xa0, 0x1c, + 0x07, 0xdf, 0x54, 0xca, 0x62, 0x9f, 0x89, 0x28, 0xcd, 0xaa, 0x70, 0xdd, 0x1d, 0x43, 0xd9, 0xb5, + 0xd6, 0x46, 0x2f, 0x87, 0xa7, 0xd0, 0xfe, 0xb2, 0xc8, 0xd2, 0xb8, 0x9b, 0x0b, 0x82, 0xaf, 0x36, + 0xfb, 0xa7, 0x50, 0x1b, 0x33, 0x0b, 0xbb, 0xae, 0x86, 0xfc, 0x1f, 0x27, 0x17, 0x05, 0x5e, 0xd8, + 0x4d, 0x09, 0x0d, 0x42, 0x2c, 0xec, 0x04, 0x8a, 0xeb, 0x33, 0x65, 0xe2, 0x51, 0x74, 0xc1, 0x97, + 0xc4, 0x92, 0xa0, 0xcd, 0xfe, 0xfa, 0xb4, 0x31, 0x50, 0x58, 0x06, 0x6f, 0x69, 0x85, 0xc3, 0x5c, + 0xb0, 0x32, 0x8f, 0xb2, 0x83, 0x2c, 0x9a, 0x55, 0x21, 0x31, 0x6f, 0x6c, 0x4a, 0xeb, 0xed, 0x0c, + 0xa4, 0x1d, 0xcd, 0x78, 0x58, 0x1d, 0x44, 0x2b, 0x5e, 0xa6, 0x82, 0x6e, 0x46, 0x83, 0xf4, 0x36, + 0xa3, 0x85, 0x3a, 0xd5, 0x26, 0x65, 0x3c, 0x4f, 0x57, 0x2c, 0xf1, 0xa8, 0x29, 0x64, 0x80, 0x5a, + 0x0b, 0xc5, 0x6a, 0x8f, 0xd2, 0xaa, 0x35, 0x10, 0x9d, 0x6a, 0x16, 0xe2, 0x57, 0xc3, 0x28, 0x9e, + 0x57, 0x8d, 0x5d, 0x26, 0x74, 0xeb, 0xa4, 0xbf, 0x9d, 0xd3, 0x6d, 0xf4, 0x72, 0x78, 0xd9, 0xa8, + 0x8d, 0x76, 0x23, 0xee, 0x50, 0x31, 0xdc, 0x0d, 0x39, 0x1e, 0x8a, 0x93, 0xca, 0x7a, 0xb0, 0xf8, + 0x95, 0x3b, 0x03, 0x66, 0x3c, 0x14, 0xc7, 0xdd, 0x38, 0x29, 0x8a, 0xec, 0xe2, 0x84, 0x2d, 0x8a, + 0x8c, 0xec, 0x46, 0x0b, 0xf1, 0x77, 0x23, 0x46, 0xf1, 0xd6, 0x7c, 0xc2, 0xeb, 0x8d, 0xdf, 0xb9, + 0x35, 0x37, 0x26, 0xff, 0xd6, 0xac, 0x10, 0xbc, 0xc5, 0x4c, 0x92, 0xe4, 0x79, 0x2a, 0xe6, 0xf2, + 0xff, 0x1c, 0x26, 0xee, 0x2d, 0x06, 0x41, 0xfe, 0x2d, 0xa6, 0x0b, 0x9b, 0x7b, 0x23, 0x95, 0xe3, + 0x45, 0x25, 0xbb, 0x77, 0xf1, 0x28, 0xcd, 0xcf, 0x42, 0xf7, 0x0a, 0x6e, 0x00, 0xe2, 0xde, 0xc8, + 0x09, 0xe2, 0xba, 0xd5, 0x89, 0xeb, 0xbd, 0x92, 0x45, 0x49, 0x5c, 0x2e, 0x17, 0xa7, 0x95, 0xbb, + 0x6e, 0x08, 0xf2, 0xd7, 0xad, 0x0b, 0xe3, 0x9c, 0x70, 0xca, 0x44, 0x5b, 0x92, 0x5a, 0x1e, 0x5c, + 0x8a, 0xdb, 0x83, 0x58, 0x9c, 0x30, 0x3f, 0xcb, 0x13, 0xee, 0x4e, 0x98, 0x6b, 0x8b, 0x3f, 0x61, + 0x06, 0x02, 0x87, 0x3c, 0x66, 0x54, 0xc8, 0xda, 0xe2, 0x0f, 0x09, 0x04, 0x6e, 0x96, 0xc3, 0x45, + 0x7d, 0x4a, 0x3e, 0x8a, 0xca, 0xb3, 0xe6, 0x2e, 0xcf, 0xd9, 0x2c, 0x36, 0xe3, 0x6f, 0x96, 0x0e, + 0xeb, 0x5a, 0xf4, 0xe0, 0x80, 0x4f, 0x2e, 0x7a, 0xe8, 0x84, 0xbf, 0xd1, 0xcb, 0xe1, 0x05, 0x40, + 0xa5, 0xea, 0x07, 0x4c, 0xc4, 0x73, 0xf7, 0x02, 0x60, 0x21, 0xfe, 0x05, 0x00, 0xa3, 0xb8, 0x4a, + 0x27, 0x5c, 0x1f, 0x35, 0xd6, 0xdd, 0x53, 0xbc, 0x73, 0xcc, 0xd8, 0xe8, 0xe5, 0x70, 0xaa, 0x2e, + 0x1b, 0xd6, 0x9d, 0xaa, 0x4b, 0x9b, 0x3f, 0x55, 0xd7, 0x0c, 0x2e, 0xbd, 0x34, 0xd4, 0xcd, 0xe9, + 0x2e, 0xbd, 0xb1, 0xfb, 0x4b, 0x6f, 0x71, 0xee, 0x13, 0xd9, 0x31, 0xcb, 0x22, 0x91, 0xf2, 0xdc, + 0x77, 0x22, 0x53, 0xcc, 0x90, 0x13, 0x59, 0x8b, 0x05, 0xc1, 0xdf, 0x8f, 0x82, 0x2b, 0x2e, 0xc5, + 0x27, 0x45, 0xa3, 0x7b, 0xbb, 0x3f, 0x96, 0x24, 0xb5, 0xfa, 0x87, 0x97, 0xf0, 0x80, 0x32, 0xfc, + 0x26, 0x78, 0x5b, 0x99, 0xea, 0xd6, 0x38, 0x66, 0x0b, 0xbe, 0x62, 0x50, 0x00, 0x7b, 0x4b, 0xd3, + 0xe5, 0xc7, 0x9c, 0x96, 0xdf, 0x1d, 0xcc, 0x9b, 0xfc, 0xd3, 0x2e, 0x57, 0x85, 0xf2, 0x4f, 0x1d, + 0x03, 0xcc, 0x44, 0xfe, 0xe9, 0xc0, 0xf0, 0x6e, 0xa1, 0x90, 0x49, 0x92, 0x38, 0x77, 0x0b, 0x1d, + 0x62, 0x92, 0x24, 0xde, 0xdd, 0x02, 0x81, 0x78, 0xec, 0x28, 0x33, 0xa4, 0x4a, 0x37, 0x7d, 0x11, + 0x50, 0xba, 0xb4, 0x3d, 0x88, 0x35, 0x57, 0xa0, 0x9d, 0x8a, 0x1d, 0xb0, 0x48, 0x2c, 0xcb, 0xce, + 0x15, 0x68, 0xb7, 0xdc, 0x0a, 0x24, 0xae, 0x40, 0xbd, 0x0e, 0xa0, 0xff, 0xe7, 0x51, 0xf0, 0x8e, + 0xcd, 0xc9, 0x2e, 0xd6, 0x65, 0xb8, 0xe3, 0x0b, 0x69, 0xb3, 0xba, 0x18, 0x77, 0x2f, 0xe5, 0x03, + 0x25, 0xf9, 0xe3, 0x28, 0xf8, 0xbe, 0x8d, 0xd6, 0x03, 0x6e, 0xb2, 0x8a, 0xd2, 0x2c, 0x3a, 0xcd, + 0x58, 0xf8, 0xa1, 0x2f, 0xa8, 0x85, 0xea, 0x72, 0xdc, 0xb9, 0x8c, 0x0b, 0x3e, 0xe9, 0xc8, 0xf9, + 0xd6, 0x3a, 0xbc, 0xdd, 0xa2, 0x67, 0xa5, 0xe3, 0xfc, 0xb6, 0x33, 0x90, 0x06, 0xd9, 0x73, 0x25, + 0x5b, 0xff, 0xdc, 0x6e, 0x00, 0x67, 0xfe, 0x0a, 0xbe, 0xad, 0x9a, 0x78, 0xf3, 0x57, 0x27, 0x0e, + 0xc2, 0x42, 0xe5, 0x47, 0x6d, 0xe1, 0x7a, 0x76, 0xdd, 0xea, 0x0d, 0xd4, 0x9e, 0x62, 0x3b, 0x03, + 0x69, 0x50, 0xfd, 0x6d, 0xf0, 0x76, 0x57, 0x55, 0x8e, 0x0c, 0xe7, 0xa8, 0xb7, 0x43, 0x49, 0xd0, + 0x3b, 0xea, 0x09, 0x07, 0x73, 0x7d, 0xf3, 0x30, 0xad, 0x04, 0x2f, 0x2f, 0xa6, 0x73, 0x7e, 0xae, + 0x5e, 0x45, 0xed, 0x65, 0x02, 0x80, 0x71, 0x8b, 0x20, 0xae, 0x6f, 0xdc, 0x64, 0x47, 0xca, 0xbc, + 0x9e, 0x56, 0x84, 0x54, 0x8b, 0xe8, 0x91, 0xb2, 0x49, 0xb3, 0x48, 0xaa, 0x5a, 0x99, 0xa7, 0xde, + 0x0d, 0x77, 0x51, 0xbb, 0xcf, 0xbd, 0x9b, 0xfd, 0xa0, 0x39, 0x84, 0x1c, 0xa4, 0x19, 0x7b, 0xf2, + 0xe2, 0x45, 0xc6, 0xa3, 0x04, 0x1d, 0x42, 0x6a, 0xcb, 0x18, 0x4c, 0xc4, 0x21, 0x04, 0x21, 0x66, + 0x13, 0xa9, 0x0d, 0xf5, 0xe8, 0x54, 0x91, 0x6f, 0x74, 0xdd, 0x5a, 0x66, 0x62, 0x13, 0x71, 0x60, + 0x26, 0xa5, 0xad, 0x8d, 0xcf, 0x8a, 0x26, 0xf8, 0xb5, 0xae, 0x97, 0xb4, 0x10, 0x29, 0xad, 0x4d, + 0x98, 0x4c, 0xa9, 0xfe, 0x7d, 0x9f, 0x9f, 0xe7, 0x4d, 0x50, 0x47, 0x45, 0x95, 0x8d, 0xc8, 0x94, + 0x30, 0x03, 0x81, 0x3f, 0x0e, 0xbe, 0xda, 0x04, 0x2e, 0x79, 0x11, 0xae, 0x39, 0x1c, 0xca, 0xd6, + 0xfb, 0xc5, 0x55, 0xd2, 0x6e, 0xce, 0x40, 0x8f, 0xa3, 0x55, 0x3a, 0xd3, 0x8b, 0x8a, 0x9c, 0x23, + 0xf8, 0x0c, 0x64, 0x98, 0x71, 0x0b, 0x22, 0xce, 0x40, 0x24, 0x0c, 0x9a, 0xff, 0x18, 0x05, 0xd7, + 0x0c, 0xf3, 0x40, 0x5d, 0x5c, 0x1d, 0xe6, 0x2f, 0x78, 0x7d, 0x20, 0xac, 0x0f, 0x69, 0x55, 0xf8, + 0x11, 0x15, 0xd2, 0xcd, 0xeb, 0xa2, 0xfc, 0xe8, 0xd2, 0x7e, 0x26, 0x4d, 0x52, 0x87, 0x6a, 0xb9, + 0x16, 0x1f, 0x94, 0x7c, 0x21, 0x3d, 0x50, 0x9a, 0xa4, 0xcf, 0xde, 0x98, 0x23, 0xd2, 0x24, 0x1f, + 0xdf, 0xda, 0x6b, 0x29, 0xf5, 0x66, 0x87, 0xb9, 0x33, 0x2c, 0xa2, 0xb5, 0xcf, 0xdc, 0xbd, 0x94, + 0x8f, 0x79, 0x7f, 0xd3, 0x05, 0xc9, 0x78, 0x8e, 0xdf, 0xf6, 0x4c, 0x94, 0xda, 0x48, 0xbc, 0xbf, + 0x75, 0x20, 0xb3, 0x0a, 0x29, 0x93, 0x3c, 0x2a, 0x4d, 0xb2, 0x0c, 0xad, 0x42, 0xda, 0x55, 0x03, + 0xc4, 0x2a, 0xe4, 0x04, 0x41, 0xe7, 0x38, 0x78, 0xad, 0xee, 0xdc, 0xa7, 0x25, 0x5b, 0xa5, 0x0c, + 0xbf, 0x12, 0xb5, 0x2c, 0xc4, 0x74, 0xb6, 0x09, 0xf3, 0x5c, 0xfb, 0x2c, 0xaf, 0x8a, 0x2c, 0xaa, + 0xe6, 0xf0, 0x4a, 0x61, 0xd7, 0x59, 0x19, 0xf1, 0x3b, 0xc5, 0x8d, 0x1e, 0xca, 0x1c, 0x7f, 0x94, + 0x4d, 0xaf, 0x18, 0xeb, 0x6e, 0xd7, 0xce, 0xaa, 0xb1, 0xd1, 0xcb, 0x99, 0xd5, 0xf9, 0x5e, 0xc6, + 0xe3, 0x33, 0x58, 0xe6, 0xec, 0x5a, 0x37, 0x16, 0xbc, 0xce, 0x5d, 0xf7, 0x21, 0x66, 0xa1, 0x6b, + 0x0c, 0xc7, 0xac, 0xc8, 0xa2, 0x18, 0xbf, 0x9f, 0x49, 0x1f, 0xb0, 0x11, 0x0b, 0x1d, 0x66, 0x50, + 0x71, 0xe1, 0x5d, 0xce, 0x55, 0x5c, 0xf4, 0x2c, 0x77, 0xdd, 0x87, 0x98, 0xa5, 0xbe, 0x31, 0x4c, + 0x8b, 0x2c, 0x15, 0x68, 0x6c, 0x48, 0x8f, 0xc6, 0x42, 0x8c, 0x0d, 0x9b, 0x40, 0x21, 0x8f, 0x58, + 0x39, 0x63, 0xce, 0x90, 0x8d, 0xc5, 0x1b, 0x52, 0x11, 0x10, 0xf2, 0x71, 0xf0, 0x35, 0x59, 0x77, + 0x5e, 0x5c, 0x84, 0x57, 0x5d, 0xd5, 0xe2, 0xc5, 0x85, 0x0e, 0x78, 0x8d, 0x06, 0x50, 0x11, 0x9f, + 0x46, 0x95, 0x70, 0x17, 0xb1, 0xb1, 0x78, 0x8b, 0xa8, 0x08, 0xb3, 0x0f, 0xc9, 0x22, 0x2e, 0x05, + 0xda, 0x87, 0xa0, 0x00, 0xad, 0xc7, 0x84, 0xab, 0xa4, 0xdd, 0x4c, 0x2f, 0xd9, 0x2b, 0x4c, 0x1c, + 0xa4, 0x2c, 0x4b, 0x2a, 0x34, 0xbd, 0xa0, 0xdd, 0x95, 0x95, 0x98, 0x5e, 0x5d, 0x0a, 0x0d, 0x25, + 0xb8, 0xe9, 0x71, 0xd5, 0x0e, 0x5d, 0xf2, 0x5c, 0xf7, 0x21, 0x26, 0x2f, 0x69, 0x0c, 0xad, 0x8b, + 0x73, 0x57, 0x79, 0x1c, 0xf7, 0xe6, 0xeb, 0x7d, 0x18, 0x28, 0x7c, 0x36, 0x0a, 0xde, 0xd5, 0x12, + 0x47, 0x7c, 0xc5, 0x4e, 0xf8, 0xfd, 0x97, 0x69, 0x25, 0xd2, 0x7c, 0x06, 0x5b, 0xd3, 0x5d, 0x22, + 0x92, 0x0b, 0xd6, 0xf2, 0x3f, 0xb8, 0x9c, 0x93, 0xd9, 0x21, 0x51, 0x59, 0x1e, 0xb3, 0x73, 0xe7, + 0x0e, 0x89, 0x23, 0x6a, 0x8e, 0xd8, 0x21, 0x7d, 0xbc, 0x39, 0x0d, 0x6b, 0x71, 0xf8, 0x34, 0xed, + 0x84, 0xab, 0x64, 0x85, 0x8a, 0x86, 0x41, 0xe2, 0x5c, 0xe0, 0x75, 0x30, 0xc9, 0xba, 0xd6, 0x37, + 0x83, 0x74, 0x93, 0x88, 0xd3, 0x1d, 0xa8, 0x5b, 0x03, 0x48, 0x87, 0x94, 0x79, 0xfd, 0xa1, 0xa4, + 0xba, 0x8f, 0x3f, 0x5b, 0x03, 0xc8, 0xd6, 0xc9, 0xba, 0x5d, 0xad, 0x7b, 0x51, 0x7c, 0x36, 0x2b, + 0xf9, 0x32, 0x4f, 0xf6, 0x78, 0xc6, 0x4b, 0x74, 0xb2, 0xb6, 0x4a, 0x8d, 0x50, 0xe2, 0x64, 0xdd, + 0xe3, 0x62, 0x12, 0x83, 0x76, 0x29, 0x26, 0x59, 0x3a, 0xc3, 0xc7, 0x13, 0x2b, 0x50, 0x03, 0x10, + 0x89, 0x81, 0x13, 0x74, 0x0c, 0x22, 0x79, 0x7c, 0x11, 0x69, 0x1c, 0x65, 0x52, 0x6f, 0x97, 0x0e, + 0x63, 0x81, 0xbd, 0x83, 0xc8, 0xe1, 0xe0, 0xa8, 0xe7, 0xc9, 0xb2, 0xcc, 0x0f, 0x73, 0xc1, 0xc9, + 0x7a, 0x2a, 0xa0, 0xb7, 0x9e, 0x2d, 0xd0, 0x64, 0x13, 0x8d, 0xf9, 0x84, 0xbd, 0xac, 0x4b, 0x53, + 0xff, 0x27, 0x74, 0x2c, 0x39, 0xf5, 0xef, 0x63, 0xb0, 0x13, 0xd9, 0x84, 0x8b, 0x43, 0x95, 0x01, + 0x11, 0x39, 0x60, 0x3c, 0xde, 0xf6, 0x30, 0xd9, 0xec, 0x07, 0xdd, 0x3a, 0x53, 0x71, 0x91, 0x31, + 0x9f, 0x4e, 0x03, 0x0c, 0xd1, 0x51, 0xa0, 0xb9, 0xad, 0xb7, 0xea, 0x33, 0x67, 0xf1, 0x59, 0xe7, + 0x8d, 0xd7, 0x2e, 0xa8, 0x44, 0x88, 0xdb, 0x7a, 0x02, 0x75, 0x77, 0xd1, 0x61, 0xcc, 0x73, 0x5f, + 0x17, 0xd5, 0xf6, 0x21, 0x5d, 0x04, 0x9c, 0x39, 0xdd, 0x69, 0x2b, 0x8c, 0x4c, 0xd9, 0x4d, 0xdb, + 0x44, 0x84, 0x36, 0x44, 0x9c, 0xee, 0x48, 0xd8, 0xdc, 0x93, 0x62, 0xcd, 0xa3, 0xee, 0x57, 0x4f, + 0x9d, 0x28, 0x47, 0xf4, 0x57, 0x4f, 0x14, 0x4b, 0x57, 0x52, 0x8e, 0x91, 0x9e, 0x28, 0xf6, 0x38, + 0xb9, 0x35, 0x0c, 0x36, 0x8f, 0xca, 0x96, 0xe6, 0x5e, 0xc6, 0xa2, 0x52, 0xaa, 0xee, 0x78, 0x02, + 0x19, 0x8c, 0xb8, 0x94, 0xf3, 0xe0, 0x68, 0x09, 0xb3, 0x94, 0xf7, 0x78, 0x2e, 0x58, 0x2e, 0x5c, + 0x4b, 0x98, 0x1d, 0x0c, 0x40, 0xdf, 0x12, 0x46, 0x39, 0xa0, 0x71, 0x7b, 0x90, 0x66, 0x6c, 0xca, + 0xc4, 0xe3, 0x68, 0xc1, 0x5c, 0xe3, 0xb6, 0xb9, 0x6a, 0x00, 0xbb, 0x6f, 0xdc, 0x22, 0x0e, 0x4d, + 0xf9, 0xc3, 0x45, 0x34, 0xd3, 0x2a, 0x0e, 0xef, 0xc6, 0xde, 0x91, 0xd9, 0xec, 0x07, 0x91, 0xce, + 0x27, 0x69, 0xc2, 0xb8, 0x47, 0xa7, 0xb1, 0x0f, 0xd1, 0xc1, 0x20, 0xca, 0x9c, 0xea, 0xda, 0xca, + 0xf3, 0xc8, 0x24, 0x4f, 0xe0, 0x14, 0x36, 0x26, 0x1a, 0x05, 0x71, 0xbe, 0xcc, 0x89, 0xe0, 0xd1, + 0xfc, 0x50, 0x57, 0x68, 0xbe, 0xf9, 0xa1, 0x6f, 0xc8, 0x86, 0xcc, 0x0f, 0x17, 0x0c, 0x9a, 0xbf, + 0x86, 0xf9, 0xb1, 0x1f, 0x89, 0xa8, 0x3e, 0x47, 0x7f, 0x92, 0xb2, 0x73, 0x38, 0xc6, 0x39, 0xea, + 0xab, 0xa8, 0x71, 0x8d, 0xe1, 0x33, 0xdd, 0xee, 0x60, 0xde, 0xa3, 0x0d, 0xd9, 0x79, 0xaf, 0x36, + 0x4a, 0xd3, 0x77, 0x07, 0xf3, 0x1e, 0x6d, 0xf8, 0x72, 0xb7, 0x57, 0x1b, 0x7d, 0xbe, 0xbb, 0x3b, + 0x98, 0x07, 0xed, 0x3f, 0x8c, 0x82, 0x2b, 0x1d, 0xf1, 0x3a, 0x07, 0x8a, 0x45, 0xba, 0x62, 0xae, + 0x54, 0xce, 0x8e, 0xa7, 0x51, 0x5f, 0x2a, 0x47, 0xbb, 0x40, 0x29, 0xfe, 0x32, 0x0a, 0xde, 0x71, + 0x95, 0xe2, 0x29, 0xaf, 0xd2, 0xe6, 0xc9, 0xf1, 0xee, 0x80, 0xa0, 0x0a, 0xf6, 0x1d, 0x58, 0x7c, + 0x4e, 0xe6, 0xc1, 0xc6, 0x42, 0xeb, 0x71, 0xca, 0x97, 0x65, 0x8c, 0x1f, 0x6c, 0xec, 0x78, 0x9a, + 0x22, 0x5e, 0x30, 0x68, 0xda, 0xbc, 0x60, 0x58, 0x4c, 0xfb, 0xe9, 0xc4, 0xd7, 0xab, 0xce, 0xd7, + 0x93, 0xdb, 0xc3, 0x1d, 0x40, 0xfe, 0x4f, 0x2a, 0xa7, 0xc7, 0xfa, 0x30, 0x09, 0xee, 0x0c, 0x89, + 0x88, 0x26, 0xc2, 0xdd, 0x4b, 0xf9, 0x40, 0x41, 0xfe, 0x35, 0x0a, 0xae, 0x3b, 0x0b, 0x62, 0xbf, + 0xde, 0xfd, 0x78, 0x48, 0x6c, 0xf7, 0x2b, 0xde, 0x4f, 0xfe, 0x1f, 0x57, 0x28, 0xdd, 0x5f, 0xd5, + 0xd1, 0x5a, 0x79, 0x34, 0x9f, 0xbc, 0x3e, 0x29, 0x13, 0x56, 0xc2, 0x8c, 0xf5, 0x0d, 0x3a, 0x03, + 0xe3, 0x79, 0xfb, 0xc3, 0x4b, 0x7a, 0x41, 0x71, 0xfe, 0x36, 0x0a, 0xd6, 0x2c, 0x18, 0x3e, 0x4d, + 0x6a, 0x95, 0xc7, 0x17, 0xb9, 0x45, 0xe3, 0x02, 0x7d, 0x74, 0x59, 0x37, 0x9c, 0xa1, 0xd6, 0xed, + 0x06, 0x8b, 0xb7, 0x2b, 0x43, 0x6d, 0x9a, 0x15, 0x2d, 0xda, 0x1b, 0xbd, 0x9c, 0x4b, 0xe4, 0xfe, + 0xcb, 0x22, 0xca, 0x13, 0x5a, 0x44, 0xda, 0xfb, 0x45, 0x34, 0x87, 0x33, 0xfb, 0xda, 0x7a, 0xcc, + 0xd5, 0x4e, 0xb4, 0x45, 0xf9, 0x6b, 0xc4, 0x9b, 0xd9, 0x77, 0x50, 0x42, 0x0d, 0xa6, 0x9d, 0x4f, + 0x0d, 0xcd, 0xb6, 0x9b, 0x43, 0x50, 0xb4, 0xc6, 0x69, 0x35, 0x7d, 0x61, 0x70, 0xcb, 0x17, 0xa5, + 0x73, 0x69, 0xb0, 0x33, 0x90, 0x26, 0x64, 0xa7, 0x4c, 0x3c, 0x64, 0x51, 0xc2, 0x4a, 0xaf, 0xac, + 0xa6, 0x06, 0xc9, 0xb6, 0x69, 0x97, 0xec, 0x1e, 0xcf, 0x96, 0x8b, 0x1c, 0x3a, 0x93, 0x94, 0x6d, + 0x53, 0xfd, 0xb2, 0x88, 0xc6, 0x67, 0x1a, 0x23, 0xdb, 0xfc, 0x5b, 0x9f, 0x9b, 0xfe, 0x30, 0xd6, + 0x3f, 0xfa, 0xd9, 0x1e, 0xc4, 0xd2, 0xf5, 0x84, 0x61, 0xd4, 0x53, 0x4f, 0x34, 0x92, 0x76, 0x06, + 0xd2, 0xf8, 0x70, 0xd1, 0x92, 0xd5, 0xe3, 0x69, 0xb7, 0x27, 0x56, 0x67, 0x48, 0xdd, 0x1e, 0xee, + 0x80, 0x8f, 0x72, 0x30, 0xaa, 0xea, 0xa5, 0xfb, 0x20, 0xcd, 0xb2, 0x70, 0xdb, 0x33, 0x4c, 0x14, + 0xe4, 0x3d, 0xca, 0x39, 0x60, 0x62, 0x24, 0xab, 0xa3, 0x4f, 0x1e, 0xf6, 0xc5, 0x69, 0xa8, 0x41, + 0x23, 0xb9, 0x4d, 0xa3, 0x23, 0x41, 0xab, 0xa9, 0x75, 0x6d, 0xc7, 0xfe, 0x86, 0xeb, 0x54, 0x78, + 0x77, 0x30, 0x8f, 0x6e, 0xdb, 0x1b, 0x6a, 0xca, 0x4b, 0xe1, 0xba, 0x6d, 0x97, 0x21, 0xa6, 0xed, + 0x4b, 0xf1, 0x1b, 0x3d, 0x54, 0xe7, 0x9a, 0x2d, 0x87, 0xc7, 0x1b, 0xf3, 0xa1, 0xaf, 0x6b, 0x18, + 0x35, 0x9f, 0xe5, 0x62, 0xd0, 0x37, 0x8c, 0x28, 0x87, 0xd6, 0x57, 0x77, 0x9a, 0x53, 0x37, 0x81, + 0x45, 0xc1, 0xa2, 0x32, 0xca, 0x63, 0x16, 0x52, 0x01, 0x3b, 0x24, 0xf1, 0xd5, 0x9d, 0xdf, 0x03, + 0x5d, 0xe2, 0xda, 0x9f, 0x7e, 0x3a, 0x8e, 0x8c, 0xfa, 0x1b, 0x4b, 0xfb, 0xcb, 0xcf, 0xad, 0x01, + 0x24, 0xbe, 0xc4, 0x55, 0x80, 0x3e, 0x0a, 0x4a, 0xd1, 0x0f, 0x3d, 0xa1, 0x6c, 0xd4, 0x97, 0xf9, + 0xd3, 0x2e, 0x68, 0xdf, 0x53, 0x89, 0xd7, 0x94, 0x89, 0x8f, 0xd9, 0x85, 0x6b, 0xdf, 0xd3, 0xa9, + 0x99, 0x44, 0x7c, 0xfb, 0x5e, 0x17, 0x45, 0x89, 0x43, 0x3b, 0xb9, 0x5e, 0xf7, 0xf8, 0xb7, 0x73, + 0xea, 0x8d, 0x5e, 0x0e, 0xad, 0xfb, 0xfb, 0xe9, 0xca, 0x3a, 0x39, 0x3b, 0x0a, 0xba, 0x9f, 0xae, + 0xdc, 0x07, 0xe7, 0xed, 0x41, 0x2c, 0xbe, 0x20, 0x8e, 0x04, 0x7b, 0xa9, 0x6e, 0x6e, 0x1d, 0xc5, + 0x6d, 0xec, 0x9d, 0xab, 0xdb, 0xcd, 0x7e, 0xd0, 0xbc, 0xf2, 0x3f, 0x2d, 0x79, 0xcc, 0xaa, 0x6a, + 0xaf, 0x1e, 0xb6, 0x19, 0x7a, 0xe5, 0x07, 0xdb, 0x58, 0x1a, 0x89, 0x57, 0xfe, 0x0e, 0x04, 0xb1, + 0x1f, 0x06, 0xaf, 0x3e, 0xe2, 0xb3, 0x29, 0xcb, 0x93, 0xf0, 0x5d, 0xfb, 0x5d, 0x9d, 0xcf, 0xc6, + 0xf5, 0xcf, 0x3a, 0xde, 0x1a, 0x65, 0x36, 0x8f, 0xa0, 0xfb, 0xec, 0x74, 0x39, 0x9b, 0x5e, 0xe4, + 0x31, 0x7a, 0x04, 0x6d, 0x7e, 0x1f, 0xd7, 0x06, 0xe2, 0x11, 0xd4, 0x02, 0xcc, 0x2b, 0x60, 0xf3, + 0xf3, 0xc9, 0xbc, 0x64, 0x9d, 0xf7, 0x6f, 0xe9, 0x20, 0x4d, 0xc4, 0x2b, 0x20, 0x42, 0x50, 0x29, + 0x4f, 0x4a, 0xc6, 0x9c, 0xa5, 0xac, 0x0d, 0xde, 0x52, 0x02, 0x60, 0x36, 0xc1, 0xe6, 0x67, 0xf9, + 0xda, 0xf8, 0x88, 0xc7, 0x51, 0x56, 0x09, 0x5e, 0xe2, 0xfb, 0x1a, 0xe9, 0x8a, 0x21, 0x62, 0x13, + 0x24, 0x61, 0x54, 0x87, 0xa7, 0x69, 0x3e, 0x73, 0xd6, 0xa1, 0x36, 0x78, 0xeb, 0x00, 0x80, 0x99, + 0x38, 0x47, 0x4c, 0x94, 0x69, 0x5c, 0xd5, 0x07, 0xf3, 0xa8, 0x8c, 0x16, 0x4c, 0xb0, 0x12, 0xff, + 0x33, 0x07, 0x40, 0xc6, 0x16, 0x43, 0x4c, 0x1c, 0x8a, 0x05, 0xc1, 0x9f, 0x06, 0x6f, 0xd6, 0x33, + 0x8a, 0xe5, 0xf0, 0xd7, 0x1d, 0xee, 0x37, 0x7f, 0xf8, 0x24, 0x7c, 0x4b, 0xc7, 0x98, 0x8a, 0x92, + 0x45, 0x0b, 0x15, 0xfb, 0x0d, 0xfd, 0x7b, 0x03, 0xde, 0x1e, 0xdd, 0x7b, 0xef, 0xdf, 0x5f, 0xac, + 0x8d, 0x3e, 0xff, 0x62, 0x6d, 0xf4, 0xdf, 0x2f, 0xd6, 0x46, 0x7f, 0xff, 0x72, 0xed, 0x95, 0xcf, + 0xbf, 0x5c, 0x7b, 0xe5, 0x3f, 0x5f, 0xae, 0xbd, 0xf2, 0xe9, 0xab, 0xf0, 0x07, 0x58, 0x4e, 0xbf, + 0xd2, 0xfc, 0x19, 0x95, 0xbb, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x50, 0x37, 0x70, 0xe5, 0xa4, + 0x45, 0x00, 0x00, } // This is a compile-time assertion to ensure that this generated file @@ -276,8 +276,8 @@ type ClientCommandsHandler interface { ObjectGraph(context.Context, *pb.RpcObjectGraphRequest) *pb.RpcObjectGraphResponse ObjectSearch(context.Context, *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse ObjectSearchSubscribe(context.Context, *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse - ObjectRelationSearchDistinct(context.Context, *pb.RpcObjectRelationSearchDistinctRequest) *pb.RpcObjectRelationSearchDistinctResponse ObjectSubscribeIds(context.Context, *pb.RpcObjectSubscribeIdsRequest) *pb.RpcObjectSubscribeIdsResponse + ObjectGroupsSubscribe(context.Context, *pb.RpcObjectGroupsSubscribeRequest) *pb.RpcObjectGroupsSubscribeResponse ObjectSearchUnsubscribe(context.Context, *pb.RpcObjectSearchUnsubscribeRequest) *pb.RpcObjectSearchUnsubscribeResponse ObjectSetDetails(context.Context, *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse ObjectDuplicate(context.Context, *pb.RpcObjectDuplicateRequest) *pb.RpcObjectDuplicateResponse @@ -1042,26 +1042,6 @@ func ObjectSearchSubscribe(b []byte) (resp []byte) { return resp } -func ObjectRelationSearchDistinct(b []byte) (resp []byte) { - defer func() { - if PanicHandler != nil { - if r := recover(); r != nil { - resp, _ = (&pb.RpcObjectRelationSearchDistinctResponse{Error: &pb.RpcObjectRelationSearchDistinctResponseError{Code: pb.RpcObjectRelationSearchDistinctResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() - PanicHandler(r) - } - } - }() - - in := new(pb.RpcObjectRelationSearchDistinctRequest) - if err := in.Unmarshal(b); err != nil { - resp, _ = (&pb.RpcObjectRelationSearchDistinctResponse{Error: &pb.RpcObjectRelationSearchDistinctResponseError{Code: pb.RpcObjectRelationSearchDistinctResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() - return resp - } - - resp, _ = clientCommandsHandler.ObjectRelationSearchDistinct(context.Background(), in).Marshal() - return resp -} - func ObjectSubscribeIds(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -1082,6 +1062,26 @@ func ObjectSubscribeIds(b []byte) (resp []byte) { return resp } +func ObjectGroupsSubscribe(b []byte) (resp []byte) { + defer func() { + if PanicHandler != nil { + if r := recover(); r != nil { + resp, _ = (&pb.RpcObjectGroupsSubscribeResponse{Error: &pb.RpcObjectGroupsSubscribeResponseError{Code: pb.RpcObjectGroupsSubscribeResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal() + PanicHandler(r) + } + } + }() + + in := new(pb.RpcObjectGroupsSubscribeRequest) + if err := in.Unmarshal(b); err != nil { + resp, _ = (&pb.RpcObjectGroupsSubscribeResponse{Error: &pb.RpcObjectGroupsSubscribeResponseError{Code: pb.RpcObjectGroupsSubscribeResponseError_BAD_INPUT, Description: err.Error()}}).Marshal() + return resp + } + + resp, _ = clientCommandsHandler.ObjectGroupsSubscribe(context.Background(), in).Marshal() + return resp +} + func ObjectSearchUnsubscribe(b []byte) (resp []byte) { defer func() { if PanicHandler != nil { @@ -3788,10 +3788,10 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) { cd = ObjectSearch(data) case "ObjectSearchSubscribe": cd = ObjectSearchSubscribe(data) - case "ObjectRelationSearchDistinct": - cd = ObjectRelationSearchDistinct(data) case "ObjectSubscribeIds": cd = ObjectSubscribeIds(data) + case "ObjectGroupsSubscribe": + cd = ObjectGroupsSubscribe(data) case "ObjectSearchUnsubscribe": cd = ObjectSearchUnsubscribe(data) case "ObjectSetDetails": diff --git a/core/anytype/bootstrap.go b/core/anytype/bootstrap.go index 34431c2be..4ef1b9f1d 100644 --- a/core/anytype/bootstrap.go +++ b/core/anytype/bootstrap.go @@ -2,6 +2,7 @@ package anytype import ( "context" + "github.com/anytypeio/go-anytype-middleware/core/kanban" "os" "github.com/anytypeio/go-anytype-middleware/core/account" @@ -134,6 +135,7 @@ func Bootstrap(a *app.App, components ...app.Component) { Register(bookmark.New()). Register(session.New()). Register(importer.New()). - Register(decorator.New()) + Register(decorator.New()). + Register(kanban.New()) return } diff --git a/core/block/editor/state/event.go b/core/block/editor/state/event.go index 8469e1f7b..a33603952 100644 --- a/core/block/editor/state/event.go +++ b/core/block/editor/state/event.go @@ -247,18 +247,22 @@ func (s *State) applyEvent(ev *pb.EventMessage) (err error) { return } case *pb.EventMessageValueOfBlockDataViewObjectOrderUpdate: - if err = apply(o.BlockDataViewObjectOrderUpdate.Id, func(b simple.Block) error { - if f, ok := b.(dataview.Block); ok { - - for _, order := range b.Model().GetDataview().ObjectOrders { - if order.ViewId == o.BlockDataViewObjectOrderUpdate.ViewId && order.GroupId == o.BlockDataViewObjectOrderUpdate.GroupId { - changes := o.BlockDataViewObjectOrderUpdate.GetSliceChanges() - changedIds := slice.ApplyChanges(order.ObjectIds, pbtypes.EventsToSliceChange(changes)) - order.ObjectIds = changedIds + event := o.BlockDataViewObjectOrderUpdate + if err = apply(event.Id, func(b simple.Block) error { + if dvBlock, ok := b.(dataview.Block); ok { + var existOrder []string + for _, order := range dvBlock.Model().GetDataview().ObjectOrders { + if order.ViewId == event.ViewId && order.GroupId == event.GroupId { + existOrder = order.ObjectIds } } - f.SetViewObjectOrder(b.Model().GetDataview().ObjectOrders) + changes := o.BlockDataViewObjectOrderUpdate.GetSliceChanges() + changedIds := slice.ApplyChanges(existOrder, pbtypes.EventsToSliceChange(changes)) + + dvBlock.SetViewObjectOrder([]*model.BlockContentDataviewObjectOrder{ + {ViewId: event.ViewId, GroupId: event.GroupId, ObjectIds: changedIds}, + }) return nil } diff --git a/core/kanban/group.go b/core/kanban/group.go new file mode 100644 index 000000000..2dfef4f4f --- /dev/null +++ b/core/kanban/group.go @@ -0,0 +1,27 @@ +package kanban + + +type GroupSlice []Group + +func(gs GroupSlice) Len() int { + return len(gs) +} + +func (gs GroupSlice) Less(i, j int) bool { + return len(gs[i].Id) > len(gs[j].Id) +} + +func (gs GroupSlice) Swap(i, j int) { + gs[i], gs[j] = gs[j], gs[i] +} + + +type Group struct { + Id string + Data GroupData +} + + +type GroupData struct { + Ids []string +} diff --git a/core/kanban/group_checkbox.go b/core/kanban/group_checkbox.go new file mode 100644 index 000000000..0876866ed --- /dev/null +++ b/core/kanban/group_checkbox.go @@ -0,0 +1,37 @@ +package kanban + +import ( + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/model" +) + +type GroupCheckBox struct { +} + +func (gCh *GroupCheckBox) InitGroups(f *database.Filters) error { + return nil +} + +func (gCh *GroupCheckBox) MakeGroups() (GroupSlice, error) { + return []Group{{Id: "true"}, {Id: "false"}}, nil +} + +func (gCh *GroupCheckBox) MakeDataViewGroups() ([]*model.BlockContentDataviewGroup, error) { + var result []*model.BlockContentDataviewGroup + + result = []*model.BlockContentDataviewGroup{{ + Id: "true", + Value: &model.BlockContentDataviewGroupValueOfCheckbox{ + Checkbox: &model.BlockContentDataviewCheckbox{ + Checked: true, + }}, + }, { + Id: "false", + Value: &model.BlockContentDataviewGroupValueOfCheckbox{ + Checkbox: &model.BlockContentDataviewCheckbox{ + Checked: false, + }}, + }} + + return result, nil +} diff --git a/core/kanban/group_status.go b/core/kanban/group_status.go new file mode 100644 index 000000000..1679a1542 --- /dev/null +++ b/core/kanban/group_status.go @@ -0,0 +1,76 @@ +package kanban + +import ( + "github.com/anytypeio/go-anytype-middleware/pkg/lib/bundle" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/localstore/objectstore" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/model" + "sort" +) + +type GroupStatus struct { + store objectstore.ObjectStore + Options []*model.RelationOption +} + +func (gs *GroupStatus) InitGroups(f *database.Filters) error { + options, err := gs.store.GetAggregatedOptions(bundle.RelationKeyStatus.String()) + if err != nil { + return err + } + + gs.Options = options + + return nil +} + +func (gs *GroupStatus) MakeGroups() (GroupSlice, error) { + var groups GroupSlice + + uniqMap := make(map[string]bool) + + for _, rel := range gs.Options { + if !uniqMap[rel.Text] { + uniqMap[rel.Text] = true + groups = append(groups, Group{ + Id: rel.Id, + Data: GroupData{Ids: []string{rel.Id}}, + }) + } + } + + return groups, nil +} + +func (gs *GroupStatus) MakeDataViewGroups() ([]*model.BlockContentDataviewGroup, error) { + var result []*model.BlockContentDataviewGroup + + groups, err := gs.MakeGroups() + if err != nil { + return nil, err + } + + for _, g := range groups { + if len(g.Data.Ids) < 1 { + continue + } + result = append(result, &model.BlockContentDataviewGroup{ + Id: g.Id, + Value: &model.BlockContentDataviewGroupValueOfStatus{ + Status: &model.BlockContentDataviewStatus{ + Id: g.Data.Ids[0], + }}, + }) + } + + sort.Slice(groups[:], func(i, j int) bool { + return groups[i].Id < groups[j].Id + }) + + result = append([]*model.BlockContentDataviewGroup{{ + Id: "empty", + Value: &model.BlockContentDataviewGroupValueOfStatus{Status: &model.BlockContentDataviewStatus{}}, + }}, result...) + + return result, nil +} diff --git a/core/kanban/group_tag.go b/core/kanban/group_tag.go new file mode 100644 index 000000000..5b0cc64a8 --- /dev/null +++ b/core/kanban/group_tag.go @@ -0,0 +1,95 @@ +package kanban + +import ( + "crypto/md5" + "encoding/hex" + "fmt" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/bundle" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database/filter" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/localstore/objectstore" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/model" + "github.com/anytypeio/go-anytype-middleware/util/pbtypes" + "github.com/ipfs/go-datastore/query" + "sort" + "strings" +) + +type GroupTag struct { + store objectstore.ObjectStore + Records []database.Record +} + +func (t *GroupTag) InitGroups(f *database.Filters) error { + filterTag := filter.Not{Filter: filter.Empty{Key: string(bundle.RelationKeyTag)}} + if f == nil { + f = &database.Filters{FilterObj: filterTag} + } else { + f.FilterObj = filter.AndFilters{f.FilterObj, filterTag} + } + + records, err := t.store.QueryRaw(query.Query{ + Filters: []query.Filter{f}, + }) + if err != nil { + return fmt.Errorf("init kanban by tag, objectStore query error: %v", err) + } + + t.Records = records + + return nil +} + +func (t *GroupTag) MakeGroups() (GroupSlice, error) { + var groups GroupSlice + + uniqMap := make(map[string]bool) + + for _, v := range t.Records { + if tags := pbtypes.GetStringList(v.Details, bundle.RelationKeyTag.String()); len(tags) > 0 { + sort.Strings(tags) + hash := strings.Join(tags, "") + if !uniqMap[hash] { + uniqMap[hash] = true + groups = append(groups, Group{ + Id: hash, + Data: GroupData{Ids: tags}, + }) + } + } + } + + return groups, nil +} + +func (t *GroupTag) MakeDataViewGroups() ([]*model.BlockContentDataviewGroup, error) { + var result []*model.BlockContentDataviewGroup + + groups, err := t.MakeGroups() + if err != nil { + return nil, err + } + + sort.Sort(groups) + + for _, g := range groups { + hash := md5.Sum([]byte(g.Id)) + result = append(result, &model.BlockContentDataviewGroup{ + Id: hex.EncodeToString(hash[:]), + Value: &model.BlockContentDataviewGroupValueOfTag{ + Tag: &model.BlockContentDataviewTag{ + Ids: g.Data.Ids, + }}, + }) + } + + result = append([]*model.BlockContentDataviewGroup{{ + Id: "empty", + Value: &model.BlockContentDataviewGroupValueOfTag{ + Tag: &model.BlockContentDataviewTag{ + Ids: make([]string, 0), + }}, + }}, result...) + + return result, nil +} diff --git a/core/kanban/service.go b/core/kanban/service.go new file mode 100644 index 000000000..e9c2a0260 --- /dev/null +++ b/core/kanban/service.go @@ -0,0 +1,73 @@ +package kanban + +import ( + "errors" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/localstore/objectstore" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/model" +) +import "github.com/anytypeio/go-anytype-middleware/app" + +const ( + CName = "kanban" +) + +func New() Service{ + return &service{groupColumns: make(map[model.RelationFormat]Grouper)} +} + +type Grouper interface { + InitGroups(f *database.Filters) error + MakeGroups() (GroupSlice, error) + MakeDataViewGroups() ([]*model.BlockContentDataviewGroup, error) +} + +type Service interface { + Grouper(key string) (Grouper, error) + + app.Component +} + +type service struct { + objectStore objectstore.ObjectStore + groupColumns map[model.RelationFormat]Grouper +} + +func (s *service) Init(a *app.App) (err error) { + s.objectStore = a.MustComponent(objectstore.CName).(objectstore.ObjectStore) + + s.groupColumns[model.RelationFormat_status] = &GroupStatus{store: s.objectStore} + s.groupColumns[model.RelationFormat_tag] = &GroupTag{store: s.objectStore} + s.groupColumns[model.RelationFormat_checkbox] = &GroupCheckBox{} + + return nil +} + +func (s *service) Name() (name string) { + return CName +} + +func (s *service) Grouper(key string) (Grouper, error) { + rel, err := s.objectStore.GetRelation(key) + if err != nil { + return nil, err + } + + grouper, ok := s.groupColumns[rel.Format] + if !ok { + return nil, errors.New("unsupported relation format") + } + + return grouper, nil +} + + +func GroupsToStrSlice(groups []*model.BlockContentDataviewGroup) []string { + res := make([]string, len(groups)) + + for i, g := range groups { + res[i] = g.Id + } + + return res +} \ No newline at end of file diff --git a/core/kanban/service_test.go b/core/kanban/service_test.go new file mode 100644 index 000000000..820e337a3 --- /dev/null +++ b/core/kanban/service_test.go @@ -0,0 +1,87 @@ +package kanban + +import ( + "context" + "github.com/anytypeio/go-anytype-middleware/app/testapp" + "github.com/anytypeio/go-anytype-middleware/core/anytype/config" + "github.com/anytypeio/go-anytype-middleware/core/wallet" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/core/smartblock" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database/filter" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/datastore/clientds" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/localstore/ftsearch" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/localstore/objectstore" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/logging" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/threads" + "github.com/anytypeio/go-anytype-middleware/util/pbtypes" + "github.com/gogo/protobuf/types" + "github.com/stretchr/testify/require" + "github.com/textileio/go-threads/core/thread" + "io/ioutil" + "os" + "testing" +) + +func getId() string { + thrdId, err := threads.ThreadCreateID(thread.AccessControlled, smartblock.SmartBlockTypePage) + if err != nil { + panic(err) + } + + return thrdId.String() +} + +func Test_GrouperTags(t *testing.T) { + tmpDir, _ := ioutil.TempDir("", "") + defer os.RemoveAll(tmpDir) + + logging.ApplyLevelsFromEnv() + app := testapp.New() + defer app.Close() + ds := objectstore.New() + kanbanSrv := New() + err := app.With(&config.DefaultConfig). + With(wallet.NewWithRepoPathAndKeys(tmpDir, nil, nil)). + With(clientds.New()). + With(ftsearch.New()). + With(ds). + With(kanbanSrv). + Start(context.Background()) + require.NoError(t, err) + + id1 := getId() + id2 := getId() + id3 := getId() + require.NoError(t, ds.CreateObject(id1, &types.Struct{ + Fields: map[string]*types.Value{ + "name": pbtypes.String("one"), + "type": pbtypes.StringList([]string{"_ota1"}), + }, + }, nil, "s1")) + + require.NoError(t, ds.CreateObject(id2, &types.Struct{Fields: map[string]*types.Value{ + "name": pbtypes.String("two"), + "type": pbtypes.StringList([]string{"_ota2"}), + "tag": pbtypes.StringList([]string{"tag1"}), + }}, nil, "s2")) + require.NoError(t, ds.CreateObject(id3, &types.Struct{Fields: map[string]*types.Value{ + "name": pbtypes.String("three"), + "type": pbtypes.StringList([]string{"_ota2"}), + "tag": pbtypes.StringList([]string{"tag1", "tag2", "tag3"}), + }}, nil, "s3")) + + grouper, err := kanbanSrv.Grouper("tag") + require.NoError(t, err) + err = grouper.InitGroups(nil) + require.NoError(t, err) + groups, err := grouper.MakeDataViewGroups() + require.NoError(t, err) + require.Len(t, groups, 3) + + f := &database.Filters{FilterObj: filter.Eq{Key: "name", Cond: 1, Value: pbtypes.String("three")}} + err = grouper.InitGroups(f) + require.NoError(t, err) + groups, err = grouper.MakeDataViewGroups() + require.NoError(t, err) + require.Len(t, groups, 2) // because results should always contain an option with empty tags set +} \ No newline at end of file diff --git a/core/object.go b/core/object.go index 648892eca..afe768859 100644 --- a/core/object.go +++ b/core/object.go @@ -280,11 +280,11 @@ func (mw *Middleware) ObjectSearchSubscribe(cctx context.Context, req *pb.RpcObj return resp } -func (mw *Middleware) ObjectRelationSearchDistinct(_ context.Context, req *pb.RpcObjectRelationSearchDistinctRequest) *pb.RpcObjectRelationSearchDistinctResponse { - errResponse := func(err error) *pb.RpcObjectRelationSearchDistinctResponse { - r := &pb.RpcObjectRelationSearchDistinctResponse{ - Error: &pb.RpcObjectRelationSearchDistinctResponseError{ - Code: pb.RpcObjectRelationSearchDistinctResponseError_UNKNOWN_ERROR, +func (mw *Middleware) ObjectGroupsSubscribe(_ context.Context, req *pb.RpcObjectGroupsSubscribeRequest) *pb.RpcObjectGroupsSubscribeResponse { + errResponse := func(err error) *pb.RpcObjectGroupsSubscribeResponse { + r := &pb.RpcObjectGroupsSubscribeResponse{ + Error: &pb.RpcObjectGroupsSubscribeResponseError{ + Code: pb.RpcObjectGroupsSubscribeResponseError_UNKNOWN_ERROR, }, } if err != nil { @@ -300,15 +300,14 @@ func (mw *Middleware) ObjectRelationSearchDistinct(_ context.Context, req *pb.Rp return errResponse(errors.New("app must be started")) } - store := mw.app.MustComponent(objectstore.CName).(objectstore.ObjectStore) - groups, err := store.RelationSearchDistinct(req.RelationKey, req.Filters) + subService := mw.app.MustComponent(subscription.CName).(subscription.Service) + + resp, err := subService.SubscribeGroups(*req) if err != nil { return errResponse(err) } - return &pb.RpcObjectRelationSearchDistinctResponse{Error: &pb.RpcObjectRelationSearchDistinctResponseError{ - Code: pb.RpcObjectRelationSearchDistinctResponseError_NULL, - }, Groups: groups} + return resp } func (mw *Middleware) ObjectSubscribeIds(_ context.Context, req *pb.RpcObjectSubscribeIdsRequest) *pb.RpcObjectSubscribeIdsResponse { diff --git a/core/subscription/context.go b/core/subscription/context.go index ef353699d..76919be7c 100644 --- a/core/subscription/context.go +++ b/core/subscription/context.go @@ -3,6 +3,7 @@ package subscription import ( "github.com/anytypeio/go-anytype-middleware/core/block/editor/state" "github.com/anytypeio/go-anytype-middleware/pb" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/model" "github.com/anytypeio/go-anytype-middleware/util/pbtypes" "github.com/anytypeio/go-anytype-middleware/util/slice" "github.com/gogo/protobuf/types" @@ -34,6 +35,12 @@ type opCounter struct { nextCount int } +type opGroup struct { + subId string + group *model.BlockContentDataviewGroup + remove bool +} + type opCtx struct { // subIds for remove remove []opRemove @@ -41,6 +48,7 @@ type opCtx struct { position []opPosition counters []opCounter entries []*entry + groups []opGroup keysBuf []struct { id string @@ -123,6 +131,18 @@ func (ctx *opCtx) apply() (event *pb.Event) { } } + for _, opGroup := range ctx.groups { + subMsgs = append(subMsgs, &pb.EventMessage{ + Value: &pb.EventMessageValueOfSubscriptionGroups{ + SubscriptionGroups: &pb.EventObjectSubscriptionGroups{ + SubId: opGroup.subId, + Group: opGroup.group, + Remove: opGroup.remove, + }, + }, + }) + } + return &pb.Event{ Messages: append(eventMsgs, subMsgs...), } @@ -208,4 +228,5 @@ func (ctx *opCtx) reset() { ctx.counters = ctx.counters[:0] ctx.keysBuf = ctx.keysBuf[:0] ctx.entries = ctx.entries[:0] + ctx.groups = ctx.groups[:0] } diff --git a/core/subscription/group.go b/core/subscription/group.go new file mode 100644 index 000000000..c6c28a58b --- /dev/null +++ b/core/subscription/group.go @@ -0,0 +1,124 @@ +package subscription + +import ( + "github.com/anytypeio/go-anytype-middleware/core/kanban" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/model" + "github.com/anytypeio/go-anytype-middleware/util/pbtypes" + "github.com/anytypeio/go-anytype-middleware/util/slice" + "github.com/gogo/protobuf/types" +) + +func (s *service) newGroupSub(id string, relKey string, groups []*model.BlockContentDataviewGroup) *groupSub { + sub := &groupSub{ + id: id, + relKey: relKey, + cache: s.cache, + set: make(map[string]struct{}), + groups: groups, + } + return sub +} + +type groupSub struct { + id string + relKey string + + cache *cache + + set map[string]struct{} + + groups []*model.BlockContentDataviewGroup +} + +func (gs *groupSub) init(entries []*entry) (err error) { + for _, e := range entries { + e = gs.cache.GetOrSet(e) + e.SetSub(gs.id, true) + gs.set[e.id] = struct{}{} + } + return +} + +func (gs *groupSub) counters() (prev, next int) { + return 0, 0 +} + +func (gs *groupSub) onChange(ctx *opCtx) { + checkGroups := false + for _, ctxEntry := range ctx.entries { + if _, inSet := gs.set[ctxEntry.id]; inSet { + cacheEntry := gs.cache.Get(ctxEntry.id) + if !checkGroups && cacheEntry != nil { + oldList := pbtypes.GetStringList(cacheEntry.data, gs.relKey) + newList := pbtypes.GetStringList(ctxEntry.data, gs.relKey) + checkGroups = !slice.UnsortedEquals(oldList, newList) + } + if cacheEntry == nil || len(pbtypes.GetStringList(ctxEntry.data, gs.relKey)) == 0 { // if tags became nil + gs.cache.RemoveSubId(ctxEntry.id, gs.id) + delete(gs.set, ctxEntry.id) + } + } else if len(pbtypes.GetStringList(ctxEntry.data, gs.relKey)) > 0 { // if not in cache but has been added new tags + gs.cache.Set(ctxEntry) + gs.set[ctxEntry.id] = struct{}{} + checkGroups = true + } + } + + if checkGroups { + var records []database.Record + for id := range gs.set { + if e := ctx.getEntry(id); e != nil { + records = append(records, database.Record{Details: e.data}) + }else { + records = append(records, database.Record{Details: gs.cache.Get(id).data}) + } + } + + tag := kanban.GroupTag{Records: records} + + newGroups, err := tag.MakeDataViewGroups() + if err != nil { + log.Errorf("fail to make groups for kanban: %s", err) + } + + oldIds := kanban.GroupsToStrSlice(gs.groups) + newIds := kanban.GroupsToStrSlice(newGroups) + + removedIds, addedIds := slice.DifferenceRemovedAdded(oldIds, newIds) + + if len(removedIds) > 0 || len(addedIds) > 0 { + for _, removedGroup := range removedIds { + for _, g := range gs.groups { + if removedGroup == g.Id { + ctx.groups = append(ctx.groups, opGroup{subId: gs.id, group: g, remove: true}) + } + } + } + + for _, addGroupId := range addedIds { + for _, g := range newGroups { + if addGroupId == g.Id { + ctx.groups = append(ctx.groups, opGroup{subId: gs.id, group: g}) + } + } + } + gs.groups = newGroups + } + } +} + +func (gs *groupSub) getActiveRecords() (res []*types.Struct) { + return +} + +func (gs *groupSub) hasDep() bool { + return false +} + +func (gs *groupSub) close() { + for id := range gs.set { + gs.cache.RemoveSubId(id, gs.id) + } + return +} diff --git a/core/subscription/group_test.go b/core/subscription/group_test.go new file mode 100644 index 000000000..12d7d0758 --- /dev/null +++ b/core/subscription/group_test.go @@ -0,0 +1,94 @@ +package subscription + +import ( + "github.com/anytypeio/go-anytype-middleware/core/kanban" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/bundle" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/database" + "github.com/anytypeio/go-anytype-middleware/pkg/lib/pb/model" + "github.com/anytypeio/go-anytype-middleware/util/pbtypes" + "github.com/gogo/protobuf/types" + "testing" + + "github.com/stretchr/testify/require" +) + +func genTagEntries() []*entry { + return []*entry{ + {id: "id_one", data: &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyTag.String(): pbtypes.StringList([]string{"tag_1"}), + }}}, + {id: "id_two", data: &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyTag.String(): pbtypes.StringList([]string{"tag_2"}), + }}}, + {id: "id_three", data: &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyTag.String(): pbtypes.StringList([]string{"tag_1", "tag_2", "tag_3"}), + }}}, + } +} + +func tagEntriesToGroups(entries []*entry) []*model.BlockContentDataviewGroup { + recs := make([]database.Record, len(entries)) + for _, e := range entries { + recs = append(recs, database.Record{Details: e.data}) + } + tags := kanban.GroupTag{Records: recs} + groups, err := tags.MakeDataViewGroups() + if err != nil { + panic(err) + } + + return groups +} + +func TestGroupTag(t *testing.T) { + entries := genTagEntries() + groups := tagEntriesToGroups(entries) + + t.Run("change existing groups", func(t *testing.T) { + entries := genTagEntries() + sub := groupSub{relKey: bundle.RelationKeyTag.String(), groups: groups, set: make(map[string]struct{}), cache: newCache()} + + require.NoError(t, sub.init(entries)) + + ctx := &opCtx{c: sub.cache} + ctx.entries = append(ctx.entries, &entry{ + id: "id_three", data: &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyTag.String(): pbtypes.StringList([]string{"tag_1", "tag_2"}), + }}}) + sub.onChange(ctx) + + assertCtxGroup(t, ctx, 1, 1) + }) + + t.Run("add new group", func(t *testing.T) { + entries := genTagEntries() + sub := groupSub{relKey: bundle.RelationKeyTag.String(), groups: groups, set: make(map[string]struct{}), cache: newCache()} + + require.NoError(t, sub.init(entries)) + + ctx := &opCtx{c: sub.cache} + ctx.entries = append(ctx.entries, &entry{ + id: "id_four", data: &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyTag.String(): pbtypes.StringList([]string{"tag_4"}), + }}}) + sub.onChange(ctx) + + assertCtxGroup(t, ctx, 1, 0) + }) + + t.Run("remove existing group", func(t *testing.T) { + entries := genTagEntries() + sub := groupSub{relKey: bundle.RelationKeyTag.String(), groups: groups, set: make(map[string]struct{}), cache: newCache()} + + require.NoError(t, sub.init(entries)) + + ctx := &opCtx{c: sub.cache} + ctx.entries = append(ctx.entries, &entry{ + id: "id_one", data: &types.Struct{Fields: map[string]*types.Value{ + bundle.RelationKeyTag.String(): pbtypes.StringList([]string{}), + }}}) + sub.onChange(ctx) + + assertCtxGroup(t, ctx, 0, 1) + }) +} diff --git a/core/subscription/service.go b/core/subscription/service.go index 9fef9c485..b7c0c64c8 100644 --- a/core/subscription/service.go +++ b/core/subscription/service.go @@ -3,6 +3,7 @@ package subscription import ( "context" "fmt" + "github.com/anytypeio/go-anytype-middleware/core/kanban" "sync" "time" @@ -38,6 +39,7 @@ type Service interface { Search(req pb.RpcObjectSearchSubscribeRequest) (resp *pb.RpcObjectSearchSubscribeResponse, err error) SubscribeIdsReq(req pb.RpcObjectSubscribeIdsRequest) (resp *pb.RpcObjectSubscribeIdsResponse, err error) SubscribeIds(subId string, ids []string) (records []*types.Struct, err error) + SubscribeGroups(req pb.RpcObjectGroupsSubscribeRequest) (*pb.RpcObjectGroupsSubscribeResponse, error) Unsubscribe(subIds ...string) (err error) UnsubscribeAll() (err error) @@ -60,6 +62,7 @@ type service struct { recBatch *mb.MB objectStore objectstore.ObjectStore + kanban kanban.Service sendEvent func(e *pb.Event) m sync.Mutex @@ -71,6 +74,7 @@ func (s *service) Init(a *app.App) (err error) { s.ds = newDependencyService(s) s.subscriptions = make(map[string]subscription) s.objectStore = a.MustComponent(objectstore.CName).(objectstore.ObjectStore) + s.kanban = a.MustComponent(kanban.CName).(kanban.Service) s.recBatch = mb.New(0) s.sendEvent = a.MustComponent(event.CName).(event.Sender).Send s.ctxBuf = &opCtx{c: s.cache} @@ -214,6 +218,76 @@ func (s *service) SubscribeIdsReq(req pb.RpcObjectSubscribeIdsRequest) (resp *pb }, nil } +func (s *service) SubscribeGroups(req pb.RpcObjectGroupsSubscribeRequest) (*pb.RpcObjectGroupsSubscribeResponse, error) { + subId := "" + + s.m.Lock() + defer s.m.Unlock() + + q := database.Query{ + Filters: req.Filters, + } + + f, err := database.NewFilters(q, nil, time.Now().Location()) + if err != nil { + return nil, err + } + + if len(req.Source) > 0 { + sourceFilter, err := s.filtersFromSource(req.Source) + if err != nil { + return nil, fmt.Errorf("can't make filter from source: %v", err) + } + f.FilterObj = filter.AndFilters{f.FilterObj, sourceFilter} + } + + grouper, err := s.kanban.Grouper(req.RelationKey) + if err != nil { + return nil, err + } + + if err := grouper.InitGroups(f); err != nil { + return nil, err + } + + dataViewGroups, err := grouper.MakeDataViewGroups() + if err != nil { + return nil, err + } + + if tagGrouper, ok := grouper.(*kanban.GroupTag); ok { + groups, err := tagGrouper.MakeDataViewGroups() + if err != nil { + return nil, err + } + + subId = req.SubId + if subId == "" { + subId = bson.NewObjectId().Hex() + } + sub := s.newGroupSub(subId, req.RelationKey, groups) + + entries := make([]*entry, 0, len(tagGrouper.Records)) + for _, r := range tagGrouper.Records { + entries = append(entries, &entry{ + id: pbtypes.GetString(r.Details, "id"), + data: r.Details, + }) + } + + if err := sub.init(entries); err != nil { + return nil, err + } + s.subscriptions[sub.id] = sub + } + + return &pb.RpcObjectGroupsSubscribeResponse{ + Error: &pb.RpcObjectGroupsSubscribeResponseError{}, + Groups: dataViewGroups, + SubId: subId, + }, nil +} + func (s *service) SubscribeIds(subId string, ids []string) (records []*types.Struct, err error) { return } diff --git a/core/subscription/service_test.go b/core/subscription/service_test.go index 1d0407316..e8d41baa8 100644 --- a/core/subscription/service_test.go +++ b/core/subscription/service_test.go @@ -305,6 +305,7 @@ func newFixture(t *testing.T) *fixture { ctrl := gomock.NewController(t) a := testapp.New() testMock.RegisterMockObjectStore(ctrl, a) + testMock.RegisterMockKanban(ctrl, a) fx := &fixture{ Service: New(), a: a, @@ -316,6 +317,7 @@ func newFixture(t *testing.T) *fixture { }} a.Register(fx.Service) a.Register(fx.sender) + fx.store.EXPECT().SubscribeForAll(gomock.Any()) require.NoError(t, a.Start(context.Background())) return fx diff --git a/core/subscription/testutils_test.go b/core/subscription/testutils_test.go index cf4030a20..32d289c9b 100644 --- a/core/subscription/testutils_test.go +++ b/core/subscription/testutils_test.go @@ -100,3 +100,21 @@ func assertCtxEmpty(t *testing.T, ctx *opCtx) { assert.Len(t, ctx.change, 0, "change not empty") assert.Len(t, ctx.position, 0, "position not empty") } + +func assertCtxGroup(t *testing.T, ctx *opCtx, added, removed int) { + foundAdded := 0 + for _, g := range ctx.groups { + if !g.remove { + foundAdded++ + } + } + assert.Equal(t, foundAdded, added) + + foundRemoved := 0 + for _, g := range ctx.groups { + if g.remove { + foundRemoved++ + } + } + assert.Equal(t, foundRemoved, removed) +} diff --git a/docs/proto.md b/docs/proto.md index 971a92029..571d62168 100644 --- a/docs/proto.md +++ b/docs/proto.md @@ -528,6 +528,10 @@ - [Rpc.Object.Graph.Request](#anytype-Rpc-Object-Graph-Request) - [Rpc.Object.Graph.Response](#anytype-Rpc-Object-Graph-Response) - [Rpc.Object.Graph.Response.Error](#anytype-Rpc-Object-Graph-Response-Error) + - [Rpc.Object.GroupsSubscribe](#anytype-Rpc-Object-GroupsSubscribe) + - [Rpc.Object.GroupsSubscribe.Request](#anytype-Rpc-Object-GroupsSubscribe-Request) + - [Rpc.Object.GroupsSubscribe.Response](#anytype-Rpc-Object-GroupsSubscribe-Response) + - [Rpc.Object.GroupsSubscribe.Response.Error](#anytype-Rpc-Object-GroupsSubscribe-Response-Error) - [Rpc.Object.Import](#anytype-Rpc-Object-Import) - [Rpc.Object.Import.Request](#anytype-Rpc-Object-Import-Request) - [Rpc.Object.Import.Request.BookmarksParams](#anytype-Rpc-Object-Import-Request-BookmarksParams) @@ -576,10 +580,6 @@ - [Rpc.Object.Redo.Request](#anytype-Rpc-Object-Redo-Request) - [Rpc.Object.Redo.Response](#anytype-Rpc-Object-Redo-Response) - [Rpc.Object.Redo.Response.Error](#anytype-Rpc-Object-Redo-Response-Error) - - [Rpc.Object.RelationSearchDistinct](#anytype-Rpc-Object-RelationSearchDistinct) - - [Rpc.Object.RelationSearchDistinct.Request](#anytype-Rpc-Object-RelationSearchDistinct-Request) - - [Rpc.Object.RelationSearchDistinct.Response](#anytype-Rpc-Object-RelationSearchDistinct-Response) - - [Rpc.Object.RelationSearchDistinct.Response.Error](#anytype-Rpc-Object-RelationSearchDistinct-Response-Error) - [Rpc.Object.Search](#anytype-Rpc-Object-Search) - [Rpc.Object.Search.Request](#anytype-Rpc-Object-Search-Request) - [Rpc.Object.Search.Response](#anytype-Rpc-Object-Search-Response) @@ -890,6 +890,7 @@ - [Rpc.Object.Duplicate.Response.Error.Code](#anytype-Rpc-Object-Duplicate-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) - [Rpc.Object.Import.Request.Mode](#anytype-Rpc-Object-Import-Request-Mode) - [Rpc.Object.Import.Request.Type](#anytype-Rpc-Object-Import-Request-Type) - [Rpc.Object.Import.Response.Error.Code](#anytype-Rpc-Object-Import-Response-Error-Code) @@ -905,7 +906,6 @@ - [Rpc.Object.Open.Response.Error.Code](#anytype-Rpc-Object-Open-Response-Error-Code) - [Rpc.Object.OpenBreadcrumbs.Response.Error.Code](#anytype-Rpc-Object-OpenBreadcrumbs-Response-Error-Code) - [Rpc.Object.Redo.Response.Error.Code](#anytype-Rpc-Object-Redo-Response-Error-Code) - - [Rpc.Object.RelationSearchDistinct.Response.Error.Code](#anytype-Rpc-Object-RelationSearchDistinct-Response-Error-Code) - [Rpc.Object.Search.Response.Error.Code](#anytype-Rpc-Object-Search-Response-Error-Code) - [Rpc.Object.SearchSubscribe.Response.Error.Code](#anytype-Rpc-Object-SearchSubscribe-Response-Error-Code) - [Rpc.Object.SearchUnsubscribe.Response.Error.Code](#anytype-Rpc-Object-SearchUnsubscribe-Response-Error-Code) @@ -1079,6 +1079,7 @@ - [Event.Object.Subscription](#anytype-Event-Object-Subscription) - [Event.Object.Subscription.Add](#anytype-Event-Object-Subscription-Add) - [Event.Object.Subscription.Counters](#anytype-Event-Object-Subscription-Counters) + - [Event.Object.Subscription.Groups](#anytype-Event-Object-Subscription-Groups) - [Event.Object.Subscription.Position](#anytype-Event-Object-Subscription-Position) - [Event.Object.Subscription.Remove](#anytype-Event-Object-Subscription-Remove) - [Event.Ping](#anytype-Event-Ping) @@ -1268,8 +1269,8 @@ | ObjectGraph | [Rpc.Object.Graph.Request](#anytype-Rpc-Object-Graph-Request) | [Rpc.Object.Graph.Response](#anytype-Rpc-Object-Graph-Response) | | | ObjectSearch | [Rpc.Object.Search.Request](#anytype-Rpc-Object-Search-Request) | [Rpc.Object.Search.Response](#anytype-Rpc-Object-Search-Response) | | | ObjectSearchSubscribe | [Rpc.Object.SearchSubscribe.Request](#anytype-Rpc-Object-SearchSubscribe-Request) | [Rpc.Object.SearchSubscribe.Response](#anytype-Rpc-Object-SearchSubscribe-Response) | | -| ObjectRelationSearchDistinct | [Rpc.Object.RelationSearchDistinct.Request](#anytype-Rpc-Object-RelationSearchDistinct-Request) | [Rpc.Object.RelationSearchDistinct.Response](#anytype-Rpc-Object-RelationSearchDistinct-Response) | | | ObjectSubscribeIds | [Rpc.Object.SubscribeIds.Request](#anytype-Rpc-Object-SubscribeIds-Request) | [Rpc.Object.SubscribeIds.Response](#anytype-Rpc-Object-SubscribeIds-Response) | | +| ObjectGroupsSubscribe | [Rpc.Object.GroupsSubscribe.Request](#anytype-Rpc-Object-GroupsSubscribe-Request) | [Rpc.Object.GroupsSubscribe.Response](#anytype-Rpc-Object-GroupsSubscribe-Response) | | | ObjectSearchUnsubscribe | [Rpc.Object.SearchUnsubscribe.Request](#anytype-Rpc-Object-SearchUnsubscribe-Request) | [Rpc.Object.SearchUnsubscribe.Response](#anytype-Rpc-Object-SearchUnsubscribe-Response) | | | ObjectSetDetails | [Rpc.Object.SetDetails.Request](#anytype-Rpc-Object-SetDetails-Request) | [Rpc.Object.SetDetails.Response](#anytype-Rpc-Object-SetDetails-Response) | | | ObjectDuplicate | [Rpc.Object.Duplicate.Request](#anytype-Rpc-Object-Duplicate-Request) | [Rpc.Object.Duplicate.Response](#anytype-Rpc-Object-Duplicate-Response) | | @@ -9060,6 +9061,67 @@ Get the info for page alongside with info for all inbound and outbound links fro + + +### Rpc.Object.GroupsSubscribe + + + + + + + + + +### Rpc.Object.GroupsSubscribe.Request + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| subId | [string](#string) | | | +| relationKey | [string](#string) | | | +| filters | [model.Block.Content.Dataview.Filter](#anytype-model-Block-Content-Dataview-Filter) | repeated | | +| source | [string](#string) | repeated | | + + + + + + + + +### Rpc.Object.GroupsSubscribe.Response + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| error | [Rpc.Object.GroupsSubscribe.Response.Error](#anytype-Rpc-Object-GroupsSubscribe-Response-Error) | | | +| groups | [model.Block.Content.Dataview.Group](#anytype-model-Block-Content-Dataview-Group) | repeated | | +| subId | [string](#string) | | | + + + + + + + + +### Rpc.Object.GroupsSubscribe.Response.Error + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| code | [Rpc.Object.GroupsSubscribe.Response.Error.Code](#anytype-Rpc-Object-GroupsSubscribe-Response-Error-Code) | | | +| description | [string](#string) | | | + + + + + + ### Rpc.Object.Import @@ -9763,64 +9825,6 @@ Deletes the object, keys from the local store and unsubscribe from remote change - - -### Rpc.Object.RelationSearchDistinct - - - - - - - - - -### Rpc.Object.RelationSearchDistinct.Request - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| relationKey | [string](#string) | | | -| filters | [model.Block.Content.Dataview.Filter](#anytype-model-Block-Content-Dataview-Filter) | repeated | | - - - - - - - - -### Rpc.Object.RelationSearchDistinct.Response - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| error | [Rpc.Object.RelationSearchDistinct.Response.Error](#anytype-Rpc-Object-RelationSearchDistinct-Response-Error) | | | -| groups | [model.Block.Content.Dataview.Group](#anytype-model-Block-Content-Dataview-Group) | repeated | | - - - - - - - - -### Rpc.Object.RelationSearchDistinct.Response.Error - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| code | [Rpc.Object.RelationSearchDistinct.Response.Error.Code](#anytype-Rpc-Object-RelationSearchDistinct-Response-Error-Code) | | | -| description | [string](#string) | | | - - - - - - ### Rpc.Object.Search @@ -14165,6 +14169,19 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er + + +### Rpc.Object.GroupsSubscribe.Response.Error.Code + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NULL | 0 | | +| UNKNOWN_ERROR | 1 | | +| BAD_INPUT | 2 | | + + + ### Rpc.Object.Import.Request.Mode @@ -14364,19 +14381,6 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er - - -### Rpc.Object.RelationSearchDistinct.Response.Error.Code - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| NULL | 0 | | -| UNKNOWN_ERROR | 1 | | -| BAD_INPUT | 2 | | - - - ### Rpc.Object.Search.Response.Error.Code @@ -16733,6 +16737,7 @@ Precondition: user A opened a block | subscriptionRemove | [Event.Object.Subscription.Remove](#anytype-Event-Object-Subscription-Remove) | | | | subscriptionPosition | [Event.Object.Subscription.Position](#anytype-Event-Object-Subscription-Position) | | | | subscriptionCounters | [Event.Object.Subscription.Counters](#anytype-Event-Object-Subscription-Counters) | | | +| subscriptionGroups | [Event.Object.Subscription.Groups](#anytype-Event-Object-Subscription-Groups) | | | | blockAdd | [Event.Block.Add](#anytype-Event-Block-Add) | | | | blockDelete | [Event.Block.Delete](#anytype-Event-Block-Delete) | | | | filesUpload | [Event.Block.FilesUpload](#anytype-Event-Block-FilesUpload) | | | @@ -16981,6 +16986,23 @@ Adds new document to subscriptions + + +### Event.Object.Subscription.Groups + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| subId | [string](#string) | | | +| group | [model.Block.Content.Dataview.Group](#anytype-model-Block-Content-Dataview-Group) | | | +| remove | [bool](#bool) | | | + + + + + + ### Event.Object.Subscription.Position diff --git a/pb/commands.pb.go b/pb/commands.pb.go index b547009a7..e29829417 100644 --- a/pb/commands.pb.go +++ b/pb/commands.pb.go @@ -1488,31 +1488,31 @@ func (RpcObjectSearchSubscribeResponseErrorCode) EnumDescriptor() ([]byte, []int return fileDescriptor_8261c968b2e6f45c, []int{0, 4, 19, 1, 0, 0} } -type RpcObjectRelationSearchDistinctResponseErrorCode int32 +type RpcObjectGroupsSubscribeResponseErrorCode int32 const ( - RpcObjectRelationSearchDistinctResponseError_NULL RpcObjectRelationSearchDistinctResponseErrorCode = 0 - RpcObjectRelationSearchDistinctResponseError_UNKNOWN_ERROR RpcObjectRelationSearchDistinctResponseErrorCode = 1 - RpcObjectRelationSearchDistinctResponseError_BAD_INPUT RpcObjectRelationSearchDistinctResponseErrorCode = 2 + RpcObjectGroupsSubscribeResponseError_NULL RpcObjectGroupsSubscribeResponseErrorCode = 0 + RpcObjectGroupsSubscribeResponseError_UNKNOWN_ERROR RpcObjectGroupsSubscribeResponseErrorCode = 1 + RpcObjectGroupsSubscribeResponseError_BAD_INPUT RpcObjectGroupsSubscribeResponseErrorCode = 2 ) -var RpcObjectRelationSearchDistinctResponseErrorCode_name = map[int32]string{ +var RpcObjectGroupsSubscribeResponseErrorCode_name = map[int32]string{ 0: "NULL", 1: "UNKNOWN_ERROR", 2: "BAD_INPUT", } -var RpcObjectRelationSearchDistinctResponseErrorCode_value = map[string]int32{ +var RpcObjectGroupsSubscribeResponseErrorCode_value = map[string]int32{ "NULL": 0, "UNKNOWN_ERROR": 1, "BAD_INPUT": 2, } -func (x RpcObjectRelationSearchDistinctResponseErrorCode) String() string { - return proto.EnumName(RpcObjectRelationSearchDistinctResponseErrorCode_name, int32(x)) +func (x RpcObjectGroupsSubscribeResponseErrorCode) String() string { + return proto.EnumName(RpcObjectGroupsSubscribeResponseErrorCode_name, int32(x)) } -func (RpcObjectRelationSearchDistinctResponseErrorCode) EnumDescriptor() ([]byte, []int) { +func (RpcObjectGroupsSubscribeResponseErrorCode) EnumDescriptor() ([]byte, []int) { return fileDescriptor_8261c968b2e6f45c, []int{0, 4, 20, 1, 0, 0} } @@ -13897,21 +13897,21 @@ func (m *RpcObjectSearchSubscribeResponseError) GetDescription() string { return "" } -type RpcObjectRelationSearchDistinct struct { +type RpcObjectGroupsSubscribe struct { } -func (m *RpcObjectRelationSearchDistinct) Reset() { *m = RpcObjectRelationSearchDistinct{} } -func (m *RpcObjectRelationSearchDistinct) String() string { return proto.CompactTextString(m) } -func (*RpcObjectRelationSearchDistinct) ProtoMessage() {} -func (*RpcObjectRelationSearchDistinct) Descriptor() ([]byte, []int) { +func (m *RpcObjectGroupsSubscribe) Reset() { *m = RpcObjectGroupsSubscribe{} } +func (m *RpcObjectGroupsSubscribe) String() string { return proto.CompactTextString(m) } +func (*RpcObjectGroupsSubscribe) ProtoMessage() {} +func (*RpcObjectGroupsSubscribe) Descriptor() ([]byte, []int) { return fileDescriptor_8261c968b2e6f45c, []int{0, 4, 20} } -func (m *RpcObjectRelationSearchDistinct) XXX_Unmarshal(b []byte) error { +func (m *RpcObjectGroupsSubscribe) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RpcObjectRelationSearchDistinct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *RpcObjectGroupsSubscribe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RpcObjectRelationSearchDistinct.Marshal(b, m, deterministic) + return xxx_messageInfo_RpcObjectGroupsSubscribe.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -13921,37 +13921,37 @@ func (m *RpcObjectRelationSearchDistinct) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *RpcObjectRelationSearchDistinct) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcObjectRelationSearchDistinct.Merge(m, src) +func (m *RpcObjectGroupsSubscribe) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectGroupsSubscribe.Merge(m, src) } -func (m *RpcObjectRelationSearchDistinct) XXX_Size() int { +func (m *RpcObjectGroupsSubscribe) XXX_Size() int { return m.Size() } -func (m *RpcObjectRelationSearchDistinct) XXX_DiscardUnknown() { - xxx_messageInfo_RpcObjectRelationSearchDistinct.DiscardUnknown(m) +func (m *RpcObjectGroupsSubscribe) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectGroupsSubscribe.DiscardUnknown(m) } -var xxx_messageInfo_RpcObjectRelationSearchDistinct proto.InternalMessageInfo +var xxx_messageInfo_RpcObjectGroupsSubscribe proto.InternalMessageInfo -type RpcObjectRelationSearchDistinctRequest struct { - RelationKey string `protobuf:"bytes,1,opt,name=relationKey,proto3" json:"relationKey,omitempty"` - Filters []*model.BlockContentDataviewFilter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` +type RpcObjectGroupsSubscribeRequest struct { + SubId string `protobuf:"bytes,1,opt,name=subId,proto3" json:"subId,omitempty"` + RelationKey string `protobuf:"bytes,2,opt,name=relationKey,proto3" json:"relationKey,omitempty"` + Filters []*model.BlockContentDataviewFilter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"` + Source []string `protobuf:"bytes,4,rep,name=source,proto3" json:"source,omitempty"` } -func (m *RpcObjectRelationSearchDistinctRequest) Reset() { - *m = RpcObjectRelationSearchDistinctRequest{} -} -func (m *RpcObjectRelationSearchDistinctRequest) String() string { return proto.CompactTextString(m) } -func (*RpcObjectRelationSearchDistinctRequest) ProtoMessage() {} -func (*RpcObjectRelationSearchDistinctRequest) Descriptor() ([]byte, []int) { +func (m *RpcObjectGroupsSubscribeRequest) Reset() { *m = RpcObjectGroupsSubscribeRequest{} } +func (m *RpcObjectGroupsSubscribeRequest) String() string { return proto.CompactTextString(m) } +func (*RpcObjectGroupsSubscribeRequest) ProtoMessage() {} +func (*RpcObjectGroupsSubscribeRequest) Descriptor() ([]byte, []int) { return fileDescriptor_8261c968b2e6f45c, []int{0, 4, 20, 0} } -func (m *RpcObjectRelationSearchDistinctRequest) XXX_Unmarshal(b []byte) error { +func (m *RpcObjectGroupsSubscribeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RpcObjectRelationSearchDistinctRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *RpcObjectGroupsSubscribeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RpcObjectRelationSearchDistinctRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_RpcObjectGroupsSubscribeRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -13961,51 +13961,64 @@ func (m *RpcObjectRelationSearchDistinctRequest) XXX_Marshal(b []byte, determini return b[:n], nil } } -func (m *RpcObjectRelationSearchDistinctRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcObjectRelationSearchDistinctRequest.Merge(m, src) +func (m *RpcObjectGroupsSubscribeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectGroupsSubscribeRequest.Merge(m, src) } -func (m *RpcObjectRelationSearchDistinctRequest) XXX_Size() int { +func (m *RpcObjectGroupsSubscribeRequest) XXX_Size() int { return m.Size() } -func (m *RpcObjectRelationSearchDistinctRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RpcObjectRelationSearchDistinctRequest.DiscardUnknown(m) +func (m *RpcObjectGroupsSubscribeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectGroupsSubscribeRequest.DiscardUnknown(m) } -var xxx_messageInfo_RpcObjectRelationSearchDistinctRequest proto.InternalMessageInfo +var xxx_messageInfo_RpcObjectGroupsSubscribeRequest proto.InternalMessageInfo -func (m *RpcObjectRelationSearchDistinctRequest) GetRelationKey() string { +func (m *RpcObjectGroupsSubscribeRequest) GetSubId() string { + if m != nil { + return m.SubId + } + return "" +} + +func (m *RpcObjectGroupsSubscribeRequest) GetRelationKey() string { if m != nil { return m.RelationKey } return "" } -func (m *RpcObjectRelationSearchDistinctRequest) GetFilters() []*model.BlockContentDataviewFilter { +func (m *RpcObjectGroupsSubscribeRequest) GetFilters() []*model.BlockContentDataviewFilter { if m != nil { return m.Filters } return nil } -type RpcObjectRelationSearchDistinctResponse struct { - Error *RpcObjectRelationSearchDistinctResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` - Groups []*model.BlockContentDataviewGroup `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"` +func (m *RpcObjectGroupsSubscribeRequest) GetSource() []string { + if m != nil { + return m.Source + } + return nil } -func (m *RpcObjectRelationSearchDistinctResponse) Reset() { - *m = RpcObjectRelationSearchDistinctResponse{} +type RpcObjectGroupsSubscribeResponse struct { + Error *RpcObjectGroupsSubscribeResponseError `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + Groups []*model.BlockContentDataviewGroup `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"` + SubId string `protobuf:"bytes,3,opt,name=subId,proto3" json:"subId,omitempty"` } -func (m *RpcObjectRelationSearchDistinctResponse) String() string { return proto.CompactTextString(m) } -func (*RpcObjectRelationSearchDistinctResponse) ProtoMessage() {} -func (*RpcObjectRelationSearchDistinctResponse) Descriptor() ([]byte, []int) { + +func (m *RpcObjectGroupsSubscribeResponse) Reset() { *m = RpcObjectGroupsSubscribeResponse{} } +func (m *RpcObjectGroupsSubscribeResponse) String() string { return proto.CompactTextString(m) } +func (*RpcObjectGroupsSubscribeResponse) ProtoMessage() {} +func (*RpcObjectGroupsSubscribeResponse) Descriptor() ([]byte, []int) { return fileDescriptor_8261c968b2e6f45c, []int{0, 4, 20, 1} } -func (m *RpcObjectRelationSearchDistinctResponse) XXX_Unmarshal(b []byte) error { +func (m *RpcObjectGroupsSubscribeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RpcObjectRelationSearchDistinctResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *RpcObjectGroupsSubscribeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RpcObjectRelationSearchDistinctResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_RpcObjectGroupsSubscribeResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -14015,53 +14028,56 @@ func (m *RpcObjectRelationSearchDistinctResponse) XXX_Marshal(b []byte, determin return b[:n], nil } } -func (m *RpcObjectRelationSearchDistinctResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcObjectRelationSearchDistinctResponse.Merge(m, src) +func (m *RpcObjectGroupsSubscribeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectGroupsSubscribeResponse.Merge(m, src) } -func (m *RpcObjectRelationSearchDistinctResponse) XXX_Size() int { +func (m *RpcObjectGroupsSubscribeResponse) XXX_Size() int { return m.Size() } -func (m *RpcObjectRelationSearchDistinctResponse) XXX_DiscardUnknown() { - xxx_messageInfo_RpcObjectRelationSearchDistinctResponse.DiscardUnknown(m) +func (m *RpcObjectGroupsSubscribeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectGroupsSubscribeResponse.DiscardUnknown(m) } -var xxx_messageInfo_RpcObjectRelationSearchDistinctResponse proto.InternalMessageInfo +var xxx_messageInfo_RpcObjectGroupsSubscribeResponse proto.InternalMessageInfo -func (m *RpcObjectRelationSearchDistinctResponse) GetError() *RpcObjectRelationSearchDistinctResponseError { +func (m *RpcObjectGroupsSubscribeResponse) GetError() *RpcObjectGroupsSubscribeResponseError { if m != nil { return m.Error } return nil } -func (m *RpcObjectRelationSearchDistinctResponse) GetGroups() []*model.BlockContentDataviewGroup { +func (m *RpcObjectGroupsSubscribeResponse) GetGroups() []*model.BlockContentDataviewGroup { if m != nil { return m.Groups } return nil } -type RpcObjectRelationSearchDistinctResponseError struct { - Code RpcObjectRelationSearchDistinctResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectRelationSearchDistinctResponseErrorCode" json:"code,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` +func (m *RpcObjectGroupsSubscribeResponse) GetSubId() string { + if m != nil { + return m.SubId + } + return "" } -func (m *RpcObjectRelationSearchDistinctResponseError) Reset() { - *m = RpcObjectRelationSearchDistinctResponseError{} +type RpcObjectGroupsSubscribeResponseError struct { + Code RpcObjectGroupsSubscribeResponseErrorCode `protobuf:"varint,1,opt,name=code,proto3,enum=anytype.RpcObjectGroupsSubscribeResponseErrorCode" json:"code,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } -func (m *RpcObjectRelationSearchDistinctResponseError) String() string { - return proto.CompactTextString(m) -} -func (*RpcObjectRelationSearchDistinctResponseError) ProtoMessage() {} -func (*RpcObjectRelationSearchDistinctResponseError) Descriptor() ([]byte, []int) { + +func (m *RpcObjectGroupsSubscribeResponseError) Reset() { *m = RpcObjectGroupsSubscribeResponseError{} } +func (m *RpcObjectGroupsSubscribeResponseError) String() string { return proto.CompactTextString(m) } +func (*RpcObjectGroupsSubscribeResponseError) ProtoMessage() {} +func (*RpcObjectGroupsSubscribeResponseError) Descriptor() ([]byte, []int) { return fileDescriptor_8261c968b2e6f45c, []int{0, 4, 20, 1, 0} } -func (m *RpcObjectRelationSearchDistinctResponseError) XXX_Unmarshal(b []byte) error { +func (m *RpcObjectGroupsSubscribeResponseError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RpcObjectRelationSearchDistinctResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *RpcObjectGroupsSubscribeResponseError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RpcObjectRelationSearchDistinctResponseError.Marshal(b, m, deterministic) + return xxx_messageInfo_RpcObjectGroupsSubscribeResponseError.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -14071,26 +14087,26 @@ func (m *RpcObjectRelationSearchDistinctResponseError) XXX_Marshal(b []byte, det return b[:n], nil } } -func (m *RpcObjectRelationSearchDistinctResponseError) XXX_Merge(src proto.Message) { - xxx_messageInfo_RpcObjectRelationSearchDistinctResponseError.Merge(m, src) +func (m *RpcObjectGroupsSubscribeResponseError) XXX_Merge(src proto.Message) { + xxx_messageInfo_RpcObjectGroupsSubscribeResponseError.Merge(m, src) } -func (m *RpcObjectRelationSearchDistinctResponseError) XXX_Size() int { +func (m *RpcObjectGroupsSubscribeResponseError) XXX_Size() int { return m.Size() } -func (m *RpcObjectRelationSearchDistinctResponseError) XXX_DiscardUnknown() { - xxx_messageInfo_RpcObjectRelationSearchDistinctResponseError.DiscardUnknown(m) +func (m *RpcObjectGroupsSubscribeResponseError) XXX_DiscardUnknown() { + xxx_messageInfo_RpcObjectGroupsSubscribeResponseError.DiscardUnknown(m) } -var xxx_messageInfo_RpcObjectRelationSearchDistinctResponseError proto.InternalMessageInfo +var xxx_messageInfo_RpcObjectGroupsSubscribeResponseError proto.InternalMessageInfo -func (m *RpcObjectRelationSearchDistinctResponseError) GetCode() RpcObjectRelationSearchDistinctResponseErrorCode { +func (m *RpcObjectGroupsSubscribeResponseError) GetCode() RpcObjectGroupsSubscribeResponseErrorCode { if m != nil { return m.Code } - return RpcObjectRelationSearchDistinctResponseError_NULL + return RpcObjectGroupsSubscribeResponseError_NULL } -func (m *RpcObjectRelationSearchDistinctResponseError) GetDescription() string { +func (m *RpcObjectGroupsSubscribeResponseError) GetDescription() string { if m != nil { return m.Description } @@ -42211,7 +42227,7 @@ func init() { proto.RegisterEnum("anytype.RpcObjectGraphEdgeType", RpcObjectGraphEdgeType_name, RpcObjectGraphEdgeType_value) proto.RegisterEnum("anytype.RpcObjectGraphResponseErrorCode", RpcObjectGraphResponseErrorCode_name, RpcObjectGraphResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectSearchSubscribeResponseErrorCode", RpcObjectSearchSubscribeResponseErrorCode_name, RpcObjectSearchSubscribeResponseErrorCode_value) - proto.RegisterEnum("anytype.RpcObjectRelationSearchDistinctResponseErrorCode", RpcObjectRelationSearchDistinctResponseErrorCode_name, RpcObjectRelationSearchDistinctResponseErrorCode_value) + proto.RegisterEnum("anytype.RpcObjectGroupsSubscribeResponseErrorCode", RpcObjectGroupsSubscribeResponseErrorCode_name, RpcObjectGroupsSubscribeResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectSubscribeIdsResponseErrorCode", RpcObjectSubscribeIdsResponseErrorCode_name, RpcObjectSubscribeIdsResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectSearchUnsubscribeResponseErrorCode", RpcObjectSearchUnsubscribeResponseErrorCode_name, RpcObjectSearchUnsubscribeResponseErrorCode_value) proto.RegisterEnum("anytype.RpcObjectSetLayoutResponseErrorCode", RpcObjectSetLayoutResponseErrorCode_name, RpcObjectSetLayoutResponseErrorCode_value) @@ -42522,10 +42538,10 @@ func init() { proto.RegisterType((*RpcObjectSearchSubscribeRequest)(nil), "anytype.Rpc.Object.SearchSubscribe.Request") proto.RegisterType((*RpcObjectSearchSubscribeResponse)(nil), "anytype.Rpc.Object.SearchSubscribe.Response") proto.RegisterType((*RpcObjectSearchSubscribeResponseError)(nil), "anytype.Rpc.Object.SearchSubscribe.Response.Error") - proto.RegisterType((*RpcObjectRelationSearchDistinct)(nil), "anytype.Rpc.Object.RelationSearchDistinct") - proto.RegisterType((*RpcObjectRelationSearchDistinctRequest)(nil), "anytype.Rpc.Object.RelationSearchDistinct.Request") - proto.RegisterType((*RpcObjectRelationSearchDistinctResponse)(nil), "anytype.Rpc.Object.RelationSearchDistinct.Response") - proto.RegisterType((*RpcObjectRelationSearchDistinctResponseError)(nil), "anytype.Rpc.Object.RelationSearchDistinct.Response.Error") + proto.RegisterType((*RpcObjectGroupsSubscribe)(nil), "anytype.Rpc.Object.GroupsSubscribe") + proto.RegisterType((*RpcObjectGroupsSubscribeRequest)(nil), "anytype.Rpc.Object.GroupsSubscribe.Request") + proto.RegisterType((*RpcObjectGroupsSubscribeResponse)(nil), "anytype.Rpc.Object.GroupsSubscribe.Response") + proto.RegisterType((*RpcObjectGroupsSubscribeResponseError)(nil), "anytype.Rpc.Object.GroupsSubscribe.Response.Error") proto.RegisterType((*RpcObjectSubscribeIds)(nil), "anytype.Rpc.Object.SubscribeIds") proto.RegisterType((*RpcObjectSubscribeIdsRequest)(nil), "anytype.Rpc.Object.SubscribeIds.Request") proto.RegisterType((*RpcObjectSubscribeIdsResponse)(nil), "anytype.Rpc.Object.SubscribeIds.Response") @@ -43089,738 +43105,738 @@ func init() { func init() { proto.RegisterFile("pb/protos/commands.proto", fileDescriptor_8261c968b2e6f45c) } var fileDescriptor_8261c968b2e6f45c = []byte{ - // 11685 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x78, 0x2c, 0x47, - 0x79, 0x27, 0x7c, 0x66, 0x7a, 0x2e, 0xd2, 0xab, 0x23, 0x9d, 0x76, 0x73, 0x38, 0x16, 0x65, 0xfb, - 0x60, 0xe4, 0x0b, 0xe6, 0xd8, 0x96, 0xed, 0x63, 0x2e, 0x3e, 0xbe, 0x8f, 0x66, 0x46, 0xd2, 0xd8, - 0xd2, 0x8c, 0xd2, 0x33, 0x3a, 0x27, 0xce, 0xf7, 0x65, 0xb5, 0xad, 0x99, 0x92, 0xd4, 0xd6, 0xa8, - 0x7b, 0xe8, 0xe9, 0xd1, 0x39, 0xe2, 0x79, 0x76, 0x13, 0x27, 0x18, 0x9b, 0xf0, 0x00, 0x81, 0x90, - 0x05, 0x87, 0x05, 0x83, 0xb9, 0x43, 0x08, 0x31, 0xd7, 0x25, 0x0b, 0xce, 0x12, 0x20, 0x0f, 0xe1, - 0x49, 0x30, 0xe1, 0x9e, 0x2c, 0x10, 0x30, 0x59, 0x96, 0xec, 0xc2, 0xf2, 0x90, 0x67, 0x77, 0x59, - 0x96, 0x64, 0xd9, 0xa7, 0xaa, 0xfa, 0x56, 0xa3, 0xe9, 0x9e, 0xee, 0xd1, 0xf4, 0xc8, 0xd9, 0xfc, - 0x35, 0x53, 0xd5, 0x75, 0x79, 0xeb, 0xfd, 0xbd, 0xf5, 0x56, 0xd5, 0x5b, 0x6f, 0x55, 0xc1, 0x74, - 0x6b, 0xfd, 0x86, 0x96, 0xa1, 0x9b, 0x7a, 0xfb, 0x86, 0xba, 0xbe, 0xb3, 0xa3, 0x68, 0x8d, 0xf6, - 0x2c, 0x0d, 0x4b, 0x59, 0x45, 0xdb, 0x33, 0xf7, 0x5a, 0x18, 0x5d, 0xd9, 0xda, 0xde, 0xbc, 0xa1, - 0xa9, 0xae, 0xdf, 0xd0, 0x5a, 0xbf, 0x61, 0x47, 0x6f, 0xe0, 0xa6, 0x9d, 0x81, 0x06, 0xac, 0xe4, - 0xe8, 0x1a, 0xbf, 0x54, 0x4d, 0xbd, 0xae, 0x34, 0xdb, 0xa6, 0x6e, 0x60, 0x2b, 0xe5, 0x09, 0xb7, - 0x4a, 0xbc, 0x8b, 0x35, 0xd3, 0x2e, 0xe1, 0xd2, 0x4d, 0x5d, 0xdf, 0x6c, 0x62, 0xf6, 0x6d, 0xbd, - 0xb3, 0x71, 0x43, 0xdb, 0x34, 0x3a, 0x75, 0xd3, 0xfa, 0x7a, 0x79, 0xf7, 0xd7, 0x06, 0x6e, 0xd7, - 0x0d, 0xb5, 0x65, 0xea, 0x06, 0x4b, 0x31, 0xf3, 0xc1, 0xef, 0xa6, 0x40, 0x90, 0x5b, 0x75, 0xf4, - 0x85, 0x31, 0x10, 0x72, 0xad, 0x16, 0xfa, 0x49, 0x12, 0x60, 0x01, 0x9b, 0x67, 0xb1, 0xd1, 0x56, - 0x75, 0x0d, 0x8d, 0x43, 0x56, 0xc6, 0x2f, 0xee, 0xe0, 0xb6, 0x89, 0xbe, 0x9e, 0x84, 0x31, 0x19, - 0xb7, 0x5b, 0xba, 0xd6, 0xc6, 0xd2, 0xdd, 0x90, 0xc6, 0x86, 0xa1, 0x1b, 0xd3, 0x89, 0xcb, 0x13, - 0xd7, 0x4c, 0x9c, 0x3e, 0x35, 0x6b, 0x35, 0x7c, 0x56, 0x6e, 0xd5, 0x67, 0x73, 0xad, 0xd6, 0xac, - 0x5b, 0xc6, 0xac, 0x9d, 0x69, 0xb6, 0x48, 0x72, 0xc8, 0x2c, 0xa3, 0x34, 0x0d, 0xd9, 0x5d, 0x96, - 0x60, 0x3a, 0x79, 0x79, 0xe2, 0x9a, 0x71, 0xd9, 0x0e, 0x92, 0x2f, 0x0d, 0x6c, 0x2a, 0x6a, 0xb3, - 0x3d, 0x2d, 0xb0, 0x2f, 0x56, 0x10, 0x7d, 0x25, 0x01, 0x69, 0x5a, 0x88, 0x94, 0x87, 0x54, 0x5d, - 0x6f, 0x60, 0x5a, 0xfd, 0xd4, 0xe9, 0x1b, 0xc2, 0x57, 0x3f, 0x9b, 0xd7, 0x1b, 0x58, 0xa6, 0x99, - 0xa5, 0xcb, 0x61, 0xc2, 0x66, 0x88, 0x4b, 0x86, 0x37, 0x6a, 0xa6, 0x01, 0x29, 0x92, 0x5e, 0x1a, - 0x83, 0x54, 0x79, 0x75, 0x69, 0x49, 0x3c, 0x22, 0x5d, 0x04, 0x93, 0xab, 0xe5, 0x7b, 0xcb, 0x95, - 0x73, 0xe5, 0xb5, 0xa2, 0x2c, 0x57, 0x64, 0x31, 0x21, 0x4d, 0xc2, 0xf8, 0x5c, 0xae, 0xb0, 0x56, - 0x2a, 0xaf, 0xac, 0xd6, 0xc4, 0xa4, 0x74, 0x1c, 0xc4, 0xb3, 0x45, 0xb9, 0x5a, 0xaa, 0x94, 0xd7, - 0x4a, 0xd5, 0xb5, 0xe2, 0xf2, 0x4a, 0xed, 0x3e, 0x51, 0x20, 0x89, 0xca, 0x95, 0xda, 0xda, 0x7c, - 0x65, 0xb5, 0x5c, 0x10, 0xb1, 0x34, 0x01, 0xd9, 0x5a, 0x69, 0xb9, 0x58, 0x59, 0xad, 0x89, 0x1b, - 0xe8, 0xc3, 0x02, 0x4c, 0x55, 0xb1, 0x59, 0xc0, 0xbb, 0x6a, 0x1d, 0x57, 0x4d, 0xc5, 0xc4, 0xe8, - 0xd5, 0x09, 0x87, 0xf1, 0xd2, 0x2a, 0x21, 0xd3, 0xf9, 0x64, 0x35, 0xf9, 0xe6, 0x7d, 0x4d, 0xe6, - 0x4b, 0x98, 0xb5, 0x72, 0xcf, 0x7a, 0xe2, 0x64, 0x6f, 0x39, 0x33, 0xd7, 0xc3, 0x84, 0xe7, 0x9b, - 0x34, 0x05, 0x30, 0x97, 0xcb, 0xdf, 0xbb, 0x20, 0x53, 0x0a, 0x8f, 0x90, 0xf0, 0x7c, 0x45, 0x2e, - 0x5a, 0xe1, 0x04, 0x7a, 0xb5, 0x17, 0xfe, 0x02, 0x0f, 0xff, 0x6c, 0x7f, 0x62, 0x7a, 0x88, 0x00, - 0xfa, 0x84, 0x03, 0xe7, 0x02, 0x07, 0xe7, 0xcd, 0xd1, 0x8a, 0x8b, 0x06, 0xe9, 0xe2, 0x60, 0x90, - 0x96, 0x2b, 0x85, 0xe2, 0x1a, 0x41, 0xb0, 0x5a, 0xcb, 0xc9, 0xb5, 0x62, 0x41, 0xc4, 0xe8, 0x8d, - 0x49, 0x18, 0xab, 0x6e, 0x75, 0xcc, 0x86, 0x7e, 0x9e, 0xeb, 0x28, 0xbf, 0xe9, 0xe5, 0xd4, 0x9d, - 0x3c, 0xa7, 0xae, 0xd9, 0xdf, 0x34, 0xab, 0x04, 0x1f, 0x1e, 0x7d, 0xd4, 0xe1, 0x51, 0x8e, 0xe3, - 0xd1, 0xf5, 0x61, 0x0b, 0x3a, 0x2c, 0xee, 0x7c, 0x75, 0x12, 0x32, 0xe7, 0x94, 0x66, 0x13, 0x9b, - 0xe8, 0x6f, 0x93, 0x90, 0xc9, 0x1b, 0x98, 0xc8, 0xf5, 0xb5, 0xae, 0x58, 0x23, 0x18, 0x33, 0x74, - 0xdd, 0x5c, 0x51, 0xcc, 0x2d, 0xda, 0xa6, 0x71, 0xd9, 0x09, 0xdf, 0x9a, 0x7a, 0xf8, 0xfb, 0x42, - 0x02, 0xfd, 0xbe, 0x97, 0x91, 0x77, 0xf1, 0x8c, 0x7c, 0x1e, 0xd7, 0x7e, 0x56, 0xd1, 0x2c, 0xab, - 0xc4, 0x47, 0xe1, 0x20, 0x18, 0xdb, 0xd1, 0xf0, 0x8e, 0xae, 0xa9, 0x75, 0xab, 0xe5, 0x4e, 0x18, - 0xfd, 0x89, 0xc3, 0xe5, 0x39, 0x8e, 0xcb, 0xb3, 0xa1, 0x6b, 0x89, 0xc6, 0xe6, 0xea, 0x00, 0x6c, - 0x7e, 0x36, 0x5c, 0x32, 0x9f, 0x2b, 0x2d, 0x15, 0x0b, 0x6b, 0xb5, 0xca, 0x5a, 0x5e, 0x2e, 0xe6, - 0x6a, 0xc5, 0xb5, 0xa5, 0x4a, 0x3e, 0xb7, 0xb4, 0x26, 0x17, 0x57, 0x2a, 0x22, 0x46, 0xff, 0x39, - 0x49, 0x98, 0x5b, 0xd7, 0x77, 0xb1, 0x81, 0x16, 0x42, 0xf1, 0x39, 0x88, 0x27, 0x16, 0x06, 0xaf, - 0x0d, 0xad, 0xf5, 0x2d, 0xee, 0x58, 0x14, 0xf8, 0x88, 0xf3, 0xa7, 0x43, 0x69, 0xf0, 0xc0, 0xa2, - 0x9e, 0x06, 0x9c, 0xfe, 0xef, 0x49, 0xc8, 0xe6, 0x75, 0x6d, 0x17, 0x1b, 0x26, 0xba, 0x8b, 0xe3, - 0xb4, 0xc3, 0xcd, 0x04, 0xcf, 0x4d, 0x32, 0xa8, 0x61, 0xcd, 0x34, 0xf4, 0xd6, 0x9e, 0x3d, 0xdc, - 0x59, 0x41, 0xf4, 0xae, 0xa8, 0x1c, 0xb6, 0x6a, 0xf6, 0x1f, 0x57, 0x7b, 0x57, 0xc4, 0x91, 0x27, - 0x74, 0x75, 0x80, 0xc7, 0xa2, 0xe0, 0xd2, 0x9b, 0x80, 0x68, 0xb8, 0x9c, 0x8e, 0x8e, 0x0b, 0xfa, - 0x52, 0x12, 0x26, 0x59, 0xe7, 0xab, 0xe2, 0x36, 0x9d, 0x9e, 0x5c, 0x1b, 0x8a, 0xf9, 0x96, 0x28, - 0xff, 0x8e, 0x97, 0xd1, 0xf3, 0x3c, 0xa3, 0x6f, 0xf4, 0xef, 0xe8, 0x56, 0x5d, 0x3e, 0xec, 0x3e, - 0x0e, 0x69, 0x53, 0xdf, 0xc6, 0x76, 0x1b, 0x59, 0x00, 0xbd, 0xdb, 0x61, 0x67, 0x89, 0x63, 0xe7, - 0x0b, 0xa2, 0x56, 0x13, 0x3f, 0x53, 0xdf, 0x9f, 0x84, 0xa3, 0xf9, 0xa6, 0xde, 0x76, 0x78, 0xfa, - 0x6c, 0x97, 0xa7, 0x4e, 0xe3, 0x12, 0xde, 0xc6, 0xfd, 0x3c, 0xe1, 0xe1, 0x63, 0x91, 0xe7, 0x63, - 0x6f, 0x79, 0xf1, 0x14, 0xef, 0xa3, 0x17, 0xde, 0xe5, 0x30, 0x6c, 0x91, 0x63, 0xd8, 0xf3, 0x23, - 0x96, 0x17, 0x3f, 0xbf, 0x3e, 0xfa, 0x1c, 0xc8, 0xe6, 0xea, 0x75, 0xbd, 0xa3, 0x99, 0xe8, 0x6f, - 0x12, 0x90, 0xc9, 0xeb, 0xda, 0x86, 0xba, 0x29, 0x5d, 0x0d, 0x53, 0x58, 0x53, 0xd6, 0x9b, 0xb8, - 0xa0, 0x98, 0xca, 0xae, 0x8a, 0xcf, 0xd3, 0x06, 0x8c, 0xc9, 0x5d, 0xb1, 0x84, 0x28, 0x2b, 0x06, - 0xaf, 0x77, 0x36, 0x29, 0x51, 0x63, 0xb2, 0x37, 0x4a, 0xba, 0x05, 0x2e, 0x66, 0xc1, 0x15, 0x03, - 0x1b, 0xb8, 0x89, 0x95, 0x36, 0xce, 0x6f, 0x29, 0x9a, 0x86, 0x9b, 0xb4, 0xd7, 0x8e, 0xc9, 0x7e, - 0x9f, 0xa5, 0x19, 0x38, 0xca, 0x3e, 0x55, 0x5b, 0x4a, 0x1d, 0xb7, 0xa7, 0x53, 0x34, 0x39, 0x17, - 0x27, 0x5d, 0x0f, 0x69, 0x7c, 0xc1, 0x34, 0x94, 0xe9, 0x06, 0xc5, 0xeb, 0xe2, 0x59, 0xb6, 0x44, - 0x98, 0xb5, 0x97, 0x08, 0xb3, 0x55, 0xba, 0x80, 0x90, 0x59, 0x2a, 0xf4, 0xe9, 0x8c, 0x33, 0x74, - 0xbf, 0xd5, 0x33, 0x25, 0x95, 0x20, 0xa5, 0x29, 0x3b, 0xd8, 0x92, 0x0b, 0xfa, 0x5f, 0x3a, 0x05, - 0xc7, 0x94, 0x5d, 0xc5, 0x54, 0x8c, 0x25, 0xb2, 0x78, 0xa1, 0xc3, 0x0d, 0x65, 0xf9, 0xe2, 0x11, - 0xb9, 0xfb, 0x83, 0x74, 0x29, 0x8c, 0xd3, 0xd5, 0x0d, 0x4d, 0xc5, 0x74, 0x91, 0x1b, 0x21, 0x5d, - 0x03, 0xc7, 0x94, 0x66, 0x6b, 0x4b, 0x29, 0x69, 0xbb, 0xaa, 0x89, 0x09, 0x42, 0xd3, 0xc7, 0x69, - 0x9a, 0xee, 0x68, 0xd6, 0xb1, 0xe7, 0xc6, 0x20, 0xc3, 0x2a, 0x40, 0xaf, 0x4b, 0x87, 0x5e, 0xa3, - 0x30, 0x08, 0x83, 0xa7, 0x0c, 0x37, 0x42, 0x56, 0x61, 0xe9, 0x68, 0x53, 0x26, 0x4e, 0x9f, 0x70, - 0xca, 0xa0, 0xcb, 0x35, 0xbb, 0x14, 0xd9, 0x4e, 0x26, 0xdd, 0x0c, 0x99, 0x3a, 0x15, 0x08, 0xda, - 0xaa, 0x89, 0xd3, 0x97, 0xf4, 0xae, 0x94, 0x26, 0x91, 0xad, 0xa4, 0xe8, 0xdb, 0x42, 0xa8, 0x65, - 0x4d, 0x10, 0xc5, 0xd1, 0xe4, 0xfe, 0x47, 0xc9, 0x01, 0x46, 0xc5, 0xeb, 0xe0, 0x9a, 0x5c, 0x3e, - 0x5f, 0x59, 0x2d, 0xd7, 0xac, 0x31, 0xb1, 0xb0, 0x36, 0xb7, 0x5a, 0x5b, 0x73, 0x47, 0x4a, 0x3a, - 0xf7, 0x5b, 0x23, 0x53, 0x41, 0x91, 0x48, 0xc3, 0xd5, 0x7d, 0x52, 0x17, 0x6b, 0x6b, 0xe5, 0xdc, - 0x72, 0x51, 0xdc, 0x08, 0x51, 0x72, 0xb1, 0xb6, 0x96, 0x3b, 0x9b, 0xab, 0xe5, 0x64, 0x71, 0x93, - 0x1f, 0x9d, 0xab, 0xb5, 0xca, 0xca, 0x9a, 0xbc, 0x5a, 0x2e, 0x97, 0xca, 0x0b, 0xac, 0x6a, 0x32, - 0xa9, 0x39, 0xe1, 0x26, 0x38, 0x27, 0x97, 0x6a, 0xc5, 0xb5, 0x7c, 0xa5, 0x3c, 0x5f, 0x5a, 0x10, - 0xd5, 0x7e, 0x43, 0xfb, 0xfd, 0xd2, 0x71, 0x38, 0xc6, 0x1a, 0x7d, 0x96, 0xe5, 0x2b, 0x14, 0xc5, - 0x97, 0x66, 0xa5, 0x29, 0x18, 0x2f, 0x17, 0x6b, 0x16, 0x67, 0x1e, 0xcc, 0x4a, 0x97, 0xc0, 0x09, - 0x12, 0xce, 0x57, 0xca, 0xe5, 0x62, 0xbe, 0x46, 0x96, 0x7a, 0x72, 0x71, 0x7e, 0xb5, 0x5a, 0x2c, - 0x88, 0x2f, 0xcb, 0x4a, 0x22, 0x4c, 0x90, 0x8f, 0x95, 0xf9, 0xf9, 0xa5, 0x52, 0xb9, 0x28, 0x3e, - 0x94, 0x45, 0xef, 0x48, 0xb9, 0x33, 0x33, 0xcf, 0x42, 0xe1, 0x55, 0x29, 0x8f, 0xb4, 0xe6, 0x78, - 0x69, 0xbd, 0xb6, 0x27, 0xf6, 0xc1, 0x93, 0xab, 0x27, 0x1c, 0x39, 0x2a, 0x70, 0x72, 0x74, 0x63, - 0x84, 0xb2, 0xa2, 0x09, 0xd2, 0x9f, 0x0f, 0x22, 0x48, 0xcf, 0x84, 0x8b, 0xca, 0x95, 0x35, 0x0b, - 0xf1, 0xaa, 0xb3, 0x24, 0xbe, 0x1c, 0x2e, 0x2d, 0x17, 0x19, 0x30, 0x72, 0x31, 0x5f, 0x39, 0x5b, - 0x94, 0xd7, 0xce, 0xe5, 0x96, 0x96, 0x8a, 0xb5, 0xb5, 0xf9, 0x92, 0x5c, 0xad, 0x89, 0x1b, 0xfd, - 0xc0, 0xdb, 0x94, 0xae, 0x80, 0x67, 0xbb, 0xe1, 0xb5, 0xe2, 0x2f, 0x97, 0xaa, 0xb5, 0x2a, 0x15, - 0xa5, 0x7c, 0x45, 0x96, 0x57, 0x57, 0xc8, 0xc2, 0x64, 0x4b, 0x3a, 0x01, 0x92, 0x5b, 0x8a, 0xbc, - 0x5a, 0x66, 0x62, 0xa3, 0x92, 0xfa, 0xad, 0xfa, 0xec, 0xea, 0xc9, 0x82, 0x66, 0xa5, 0x28, 0xcf, - 0x57, 0xe4, 0xe5, 0x62, 0x41, 0xbc, 0xbf, 0x9f, 0xe4, 0x6d, 0x4b, 0x57, 0xc3, 0x4c, 0xae, 0x5c, - 0xa9, 0x2d, 0x16, 0xe5, 0xb5, 0x5c, 0xf9, 0xbe, 0xda, 0x7d, 0x2b, 0xc5, 0xb5, 0x15, 0xb9, 0x92, - 0x2f, 0x56, 0xab, 0x6b, 0xa5, 0xaa, 0x9d, 0x58, 0x6c, 0x12, 0x12, 0x6c, 0x81, 0x2f, 0x55, 0xd7, - 0x0a, 0xc5, 0xa5, 0x22, 0x21, 0x6d, 0x07, 0xbd, 0x52, 0x80, 0x4c, 0x01, 0x37, 0xb1, 0x89, 0xd1, - 0x73, 0x5c, 0x65, 0x7b, 0x02, 0x32, 0x06, 0x26, 0x13, 0x2e, 0x6b, 0x48, 0xb1, 0x42, 0xe8, 0x6f, - 0x92, 0x51, 0x95, 0x1d, 0x2b, 0xdb, 0x47, 0xd9, 0xbd, 0x00, 0x32, 0x6d, 0x53, 0x31, 0x3b, 0x6d, - 0x4b, 0xd7, 0x5d, 0xd6, 0x5b, 0xd7, 0xcd, 0x56, 0x69, 0x22, 0xd9, 0x4a, 0x8c, 0xfe, 0x2a, 0x11, - 0x45, 0x79, 0xf5, 0xa4, 0x20, 0x9a, 0xcc, 0xa9, 0x03, 0x88, 0xdc, 0x49, 0x40, 0x1e, 0x86, 0xe7, - 0x96, 0xe4, 0x62, 0xae, 0x70, 0x9f, 0xc3, 0x78, 0x4c, 0x44, 0xd2, 0xfb, 0x3d, 0x5f, 0x2b, 0x9d, - 0x2d, 0x8a, 0x1b, 0xe8, 0xd3, 0x69, 0xc8, 0x54, 0x71, 0x13, 0xd7, 0x4d, 0x74, 0x9b, 0x8b, 0xc7, - 0x14, 0x24, 0xd5, 0x86, 0x35, 0xf4, 0x25, 0xd5, 0x06, 0xb7, 0xc0, 0x4a, 0xf6, 0x5c, 0xc8, 0xfe, - 0x3c, 0x15, 0x15, 0x29, 0x56, 0xeb, 0xe1, 0x0e, 0x4b, 0x9f, 0x8d, 0x34, 0x2c, 0xf5, 0xa4, 0x38, - 0x1a, 0xb2, 0x5f, 0x49, 0xc6, 0xb0, 0x58, 0x0b, 0xa3, 0x14, 0x36, 0x7c, 0x94, 0x42, 0xd7, 0x60, - 0x33, 0x5f, 0x2a, 0x17, 0xd6, 0x1c, 0x39, 0x29, 0xcf, 0x57, 0xc4, 0x2d, 0x69, 0x16, 0x4e, 0x79, - 0x4a, 0x27, 0x1a, 0xc3, 0xaa, 0x21, 0x57, 0x2e, 0xac, 0x2d, 0x97, 0x8b, 0xcb, 0x95, 0x72, 0x29, - 0xcf, 0x4c, 0x23, 0xc5, 0x1a, 0xd3, 0x32, 0x5d, 0x3a, 0xa4, 0x5a, 0xcc, 0xc9, 0xf9, 0x45, 0xaa, - 0x6e, 0x0a, 0x45, 0xf1, 0x7e, 0xe9, 0xb9, 0x70, 0x85, 0x87, 0x14, 0x4b, 0x15, 0xad, 0xc8, 0xc5, - 0x42, 0x71, 0xbe, 0x54, 0x26, 0x43, 0xe3, 0x52, 0x25, 0x7f, 0x6f, 0x35, 0xbc, 0xb6, 0x41, 0xff, - 0x3b, 0x09, 0xa9, 0xaa, 0xa9, 0xb7, 0xd0, 0xf3, 0x5c, 0x19, 0x3e, 0x09, 0x60, 0xe0, 0x1d, 0x7d, - 0x97, 0x4e, 0x4c, 0x2d, 0xbd, 0xe2, 0x89, 0x41, 0x7f, 0x1a, 0xde, 0x86, 0xe5, 0xa8, 0x05, 0xbd, - 0xe5, 0x33, 0x2e, 0xfd, 0x2c, 0x9c, 0x0d, 0xcb, 0xbf, 0xa0, 0x68, 0x62, 0xf4, 0x5b, 0x89, 0x01, - 0xc4, 0x08, 0xc1, 0x09, 0x8f, 0x06, 0x20, 0x78, 0xd9, 0x0c, 0xc4, 0xd2, 0xc5, 0xf0, 0x8c, 0x2e, - 0xcc, 0x28, 0x54, 0x1b, 0xd2, 0x73, 0xe0, 0x32, 0x2f, 0x54, 0xcb, 0x95, 0xb3, 0x45, 0x47, 0x3e, - 0x0a, 0xb9, 0x5a, 0x4e, 0xdc, 0x44, 0x5f, 0x16, 0x20, 0xb5, 0xac, 0xef, 0x62, 0x74, 0x85, 0xcb, - 0xfc, 0x69, 0xc8, 0x6a, 0xf8, 0xbc, 0xc7, 0x20, 0x63, 0x07, 0xd1, 0x3b, 0x84, 0xa8, 0x6c, 0x27, - 0x65, 0xfb, 0xb0, 0xfd, 0x1b, 0xc9, 0x28, 0x6c, 0xef, 0x51, 0x50, 0x34, 0xb6, 0xff, 0xdd, 0x20, - 0x6c, 0xf7, 0x61, 0x2d, 0x96, 0x66, 0xe0, 0xa4, 0xfb, 0xa1, 0x54, 0x28, 0x96, 0x6b, 0xa5, 0xf9, - 0xfb, 0x5c, 0xe6, 0x96, 0xe4, 0x50, 0xec, 0xef, 0xa7, 0x1d, 0x82, 0x27, 0x8b, 0xd3, 0x70, 0xdc, - 0xfd, 0xb6, 0xc0, 0xe6, 0x7b, 0xe4, 0xcb, 0xfd, 0xe8, 0xb5, 0x69, 0x38, 0xca, 0xb4, 0xe5, 0x6a, - 0xab, 0x41, 0x16, 0x47, 0x57, 0x71, 0x86, 0x08, 0x53, 0xdd, 0xc1, 0xbf, 0xa2, 0x6b, 0xf6, 0xfa, - 0xc8, 0x09, 0xa3, 0x2f, 0x86, 0x36, 0x41, 0xf0, 0x3a, 0x99, 0xd5, 0xe2, 0x83, 0xf3, 0xcf, 0x43, - 0x19, 0x1b, 0x42, 0x14, 0x18, 0x0d, 0xef, 0x97, 0x0e, 0xbb, 0x9b, 0xf9, 0x43, 0xb1, 0xe1, 0x0b, - 0xc5, 0xe6, 0xcc, 0x43, 0x49, 0x18, 0xaf, 0xa9, 0x3b, 0xf8, 0x25, 0xba, 0x86, 0xdb, 0x52, 0x16, - 0x84, 0x85, 0xe5, 0x9a, 0x78, 0x84, 0xfc, 0x29, 0xe6, 0x6b, 0x62, 0x82, 0xfe, 0x29, 0x92, 0xaa, - 0xc9, 0x9f, 0x5c, 0x4d, 0x14, 0xc8, 0x9f, 0xe5, 0x62, 0x4d, 0x4c, 0x91, 0x3f, 0xe5, 0x62, 0x4d, - 0x4c, 0x93, 0x3f, 0x2b, 0x4b, 0x35, 0x31, 0x43, 0xfe, 0x94, 0xaa, 0x35, 0x31, 0x4b, 0xfe, 0xcc, - 0x55, 0x6b, 0xe2, 0x18, 0xf9, 0x73, 0xb6, 0x5a, 0x13, 0xc7, 0xc9, 0x9f, 0x7c, 0xad, 0x26, 0x02, - 0xf9, 0x73, 0x4f, 0xb5, 0x26, 0x4e, 0x90, 0x3f, 0xb9, 0x7c, 0x4d, 0x3c, 0x4a, 0xff, 0x14, 0x6b, - 0xe2, 0x24, 0xf9, 0x53, 0xad, 0xd6, 0xc4, 0x29, 0x5a, 0x72, 0xb5, 0x26, 0x1e, 0xa3, 0x75, 0x95, - 0x6a, 0xa2, 0x48, 0xfe, 0x2c, 0x56, 0x6b, 0xe2, 0x45, 0x34, 0x71, 0xb5, 0x26, 0x4a, 0xb4, 0xd2, - 0x6a, 0x4d, 0x7c, 0x06, 0x4d, 0x53, 0xad, 0x89, 0xc7, 0x69, 0x15, 0xd5, 0x9a, 0xf8, 0x4c, 0x4a, - 0x46, 0xb1, 0x26, 0x9e, 0xa0, 0x69, 0xe4, 0x9a, 0x78, 0x31, 0xfd, 0x54, 0xae, 0x89, 0xd3, 0x94, - 0xb0, 0x62, 0x4d, 0x7c, 0x16, 0xfd, 0x23, 0xd7, 0x44, 0x44, 0x3f, 0xe5, 0x6a, 0xe2, 0x25, 0xe8, - 0x32, 0x18, 0x5f, 0xc0, 0x26, 0xc3, 0x17, 0x89, 0x20, 0x2c, 0x60, 0xd3, 0xbb, 0xda, 0xf8, 0xee, - 0x31, 0x18, 0x3f, 0xa7, 0x1b, 0xdb, 0xed, 0x96, 0x52, 0xc7, 0xe8, 0xe3, 0x6c, 0x9f, 0x2f, 0xdf, - 0x31, 0x0c, 0xac, 0x71, 0xe9, 0x1e, 0x0d, 0x6f, 0x26, 0xb3, 0x4b, 0x9b, 0x75, 0x4b, 0xf2, 0x99, - 0xb2, 0x5c, 0x0e, 0x13, 0xe7, 0xed, 0xd4, 0xa5, 0x86, 0x2d, 0x4e, 0x9e, 0xa8, 0xb0, 0x26, 0xb3, - 0xfe, 0x55, 0xc6, 0x6f, 0x02, 0xfa, 0x40, 0x12, 0x32, 0x0b, 0xd8, 0xcc, 0x35, 0x9b, 0x5e, 0xbe, - 0x3d, 0xe2, 0xe5, 0xdb, 0x1c, 0xcf, 0xb7, 0xeb, 0xfc, 0x1b, 0x91, 0x6b, 0x36, 0x7d, 0x78, 0x36, - 0x03, 0x47, 0x3d, 0x0c, 0x22, 0xd3, 0x72, 0xe1, 0x9a, 0x71, 0x99, 0x8b, 0x43, 0x6f, 0x77, 0xb8, - 0x56, 0xe4, 0xb8, 0x76, 0x53, 0x94, 0x0a, 0xe3, 0xe7, 0xd8, 0xa7, 0xdc, 0x1d, 0xa0, 0xcb, 0x02, - 0xad, 0x48, 0xe8, 0xf5, 0x03, 0x70, 0x31, 0xd0, 0x86, 0xd3, 0x5f, 0xf2, 0xa2, 0xf2, 0x70, 0x08, - 0x06, 0x98, 0x41, 0x78, 0xf8, 0x5f, 0x93, 0x20, 0x56, 0xb1, 0x59, 0x6a, 0x2f, 0xaa, 0x9b, 0x5b, - 0x4d, 0x75, 0x73, 0xcb, 0xc4, 0x0d, 0x74, 0x2f, 0x37, 0xee, 0xe8, 0xeb, 0xf7, 0xe3, 0xba, 0x59, - 0xb2, 0x17, 0x27, 0x4e, 0x58, 0xba, 0x12, 0x26, 0x55, 0x6f, 0x3e, 0xcb, 0xee, 0xc8, 0x47, 0xa2, - 0x97, 0x7b, 0x79, 0xbf, 0xc4, 0xf3, 0xfe, 0x85, 0x3e, 0xcc, 0xe8, 0xa6, 0xc8, 0x67, 0x8c, 0xfa, - 0x03, 0x87, 0xc7, 0x15, 0x8e, 0xc7, 0xb7, 0x0d, 0x56, 0xec, 0x48, 0xcc, 0xe2, 0xf6, 0xd2, 0xcf, - 0xb3, 0xc9, 0xd0, 0x25, 0x4c, 0x89, 0xfd, 0xc2, 0xf4, 0x3f, 0x12, 0xd1, 0xe5, 0x37, 0x68, 0xb1, - 0x17, 0x59, 0x3a, 0x87, 0xb0, 0x0e, 0x1b, 0x84, 0x5f, 0xbf, 0x29, 0x40, 0xa6, 0x78, 0xa1, 0xa5, - 0xf3, 0x3b, 0x62, 0x12, 0xa4, 0x5a, 0xee, 0x34, 0x97, 0xfe, 0x0f, 0xd1, 0x21, 0x3f, 0x36, 0x80, - 0x0e, 0x60, 0x75, 0xfb, 0xe8, 0x00, 0x9b, 0x8c, 0xa4, 0x87, 0x8c, 0xeb, 0x20, 0x4d, 0x3d, 0x69, - 0xac, 0x15, 0xb1, 0xbb, 0x84, 0xb6, 0x8b, 0x28, 0x92, 0xaf, 0x32, 0x4b, 0x14, 0x19, 0x85, 0x9e, - 0xe4, 0xc4, 0x8f, 0xc2, 0x9b, 0x5f, 0x93, 0x80, 0x4c, 0x85, 0xf6, 0x7a, 0xf4, 0xf2, 0x14, 0xa4, - 0x2a, 0x2d, 0xac, 0xa1, 0xf7, 0x7b, 0x0c, 0xf7, 0x97, 0xc2, 0x78, 0x5d, 0xd7, 0x4c, 0x7c, 0xc1, - 0xd5, 0x12, 0x6e, 0x04, 0xa7, 0x42, 0x92, 0x5d, 0x2a, 0x64, 0x1a, 0xb2, 0xa6, 0xc1, 0x20, 0xb3, - 0xbc, 0x72, 0xac, 0xa0, 0x54, 0x86, 0x19, 0x55, 0xab, 0x37, 0x3b, 0x0d, 0x2c, 0xe3, 0xa6, 0x42, - 0x68, 0x6f, 0xe7, 0xda, 0x05, 0xdc, 0xc2, 0x5a, 0x03, 0x6b, 0x26, 0xa3, 0xc6, 0xde, 0x8c, 0x08, - 0x91, 0x92, 0x9f, 0x24, 0xdf, 0xc1, 0xc3, 0xff, 0x5c, 0x8e, 0xdf, 0x2c, 0xc7, 0x2c, 0x69, 0xa5, - 0x0f, 0xf2, 0x67, 0x00, 0x58, 0x0b, 0xce, 0xaa, 0xf8, 0xbc, 0x65, 0x2d, 0x79, 0x56, 0x97, 0xb5, - 0xa4, 0xe2, 0x24, 0x90, 0x3d, 0x89, 0xd1, 0x9f, 0x39, 0x90, 0xdf, 0xcd, 0x41, 0x7e, 0x5d, 0x48, - 0x12, 0xa2, 0xa1, 0xfd, 0xff, 0x0f, 0x30, 0x99, 0xe6, 0x7c, 0x8a, 0x04, 0xe9, 0x59, 0xf0, 0x4c, - 0xdb, 0x0e, 0x50, 0x2e, 0x16, 0x0b, 0xd5, 0xb5, 0xd5, 0x95, 0x05, 0x39, 0x57, 0x28, 0x8a, 0x80, - 0x3e, 0x91, 0x84, 0x34, 0xdd, 0x35, 0x43, 0xf9, 0x21, 0xc8, 0x02, 0xfa, 0x51, 0x22, 0xec, 0x32, - 0xd5, 0x62, 0x0f, 0xad, 0xdb, 0x47, 0xc1, 0xbd, 0x25, 0x94, 0x75, 0x20, 0xa0, 0xa0, 0xf8, 0xbb, - 0x15, 0xe9, 0x4a, 0xd5, 0x2d, 0xfd, 0xfc, 0xff, 0xfb, 0x5d, 0x89, 0xb4, 0xf2, 0x90, 0xbb, 0x52, - 0x0f, 0x12, 0x9e, 0x4e, 0x5d, 0xe9, 0x91, 0x94, 0x33, 0x95, 0x7d, 0xd4, 0x23, 0x0d, 0x37, 0xb9, - 0x4e, 0x8b, 0x89, 0xe0, 0x9d, 0x55, 0x3b, 0x9d, 0x94, 0x83, 0x49, 0x55, 0x33, 0xb1, 0xa1, 0x29, - 0xcd, 0xf9, 0xa6, 0xb2, 0xc9, 0x26, 0xf8, 0x5e, 0xdb, 0x2c, 0xe3, 0x69, 0xc9, 0x93, 0x46, 0xe6, - 0x73, 0x48, 0x27, 0x01, 0x4c, 0xbc, 0xd3, 0x6a, 0x2a, 0xa6, 0x2b, 0x4c, 0x9e, 0x18, 0xf4, 0xc3, - 0xd0, 0x1e, 0x54, 0x76, 0xff, 0xea, 0xe3, 0x41, 0xe5, 0xc8, 0xb4, 0xd0, 0x25, 0xd3, 0xce, 0x70, - 0x9a, 0x0a, 0x31, 0x9c, 0x7a, 0xb9, 0x95, 0x0e, 0xc7, 0x2d, 0xf4, 0xd6, 0x50, 0x2e, 0x5a, 0x41, - 0xcd, 0x88, 0x5f, 0x4f, 0x3c, 0x2a, 0xc0, 0x14, 0xab, 0x7a, 0x4e, 0xd7, 0xb7, 0x77, 0x14, 0x63, - 0x1b, 0xdd, 0x7e, 0x10, 0x11, 0x41, 0x5f, 0xf0, 0xe2, 0xb7, 0xc0, 0xe3, 0x77, 0x93, 0x7f, 0xc3, - 0xed, 0xda, 0x43, 0xe0, 0xd8, 0xad, 0x9b, 0x6e, 0xe2, 0x9d, 0x6f, 0xc3, 0x10, 0xf9, 0x1e, 0x07, - 0x99, 0x7b, 0x38, 0x64, 0x5e, 0x18, 0x99, 0xc0, 0xf8, 0x11, 0x7a, 0xdc, 0x41, 0xc8, 0x56, 0x9b, - 0x07, 0x44, 0xe8, 0x3b, 0x83, 0x21, 0x64, 0xd7, 0x3e, 0x00, 0x42, 0x22, 0x08, 0xdb, 0x78, 0xcf, - 0xea, 0x80, 0xe4, 0xaf, 0x97, 0xec, 0x54, 0x7c, 0x98, 0xf9, 0x90, 0x3c, 0x12, 0xcc, 0x8e, 0xf3, - 0x24, 0x54, 0x5a, 0x43, 0x40, 0xee, 0xaf, 0xbd, 0xc8, 0x2d, 0xf3, 0xc8, 0xbd, 0xa8, 0x3f, 0x1b, - 0x18, 0x0d, 0xa3, 0xe9, 0x61, 0x1f, 0x70, 0xd0, 0x5a, 0xe1, 0xd0, 0xba, 0x7d, 0x40, 0x32, 0xe3, - 0xc7, 0xec, 0xeb, 0x29, 0x18, 0xb7, 0xfd, 0xda, 0x4c, 0xf4, 0xb1, 0x04, 0xb7, 0x9b, 0xdd, 0xd6, - 0x3b, 0x46, 0x9d, 0xb4, 0x41, 0xb8, 0x66, 0x5c, 0xb6, 0x42, 0x5e, 0xb6, 0x24, 0x43, 0x0e, 0xa0, - 0x7d, 0x46, 0xbf, 0xfd, 0x03, 0x6c, 0x2a, 0xea, 0x00, 0x8b, 0x5e, 0x2d, 0x84, 0x5d, 0x8a, 0x72, - 0xdc, 0xaf, 0x62, 0xf3, 0xe9, 0x38, 0x86, 0x7e, 0x2a, 0xd4, 0x2a, 0xb6, 0x4f, 0x4b, 0xa2, 0x09, - 0x4f, 0x65, 0x80, 0xc9, 0xd8, 0x25, 0x70, 0xb1, 0x9d, 0xa2, 0x32, 0x77, 0x4f, 0x31, 0x5f, 0x5b, - 0xa3, 0x33, 0xb1, 0x55, 0x79, 0x49, 0x14, 0xd0, 0x83, 0x29, 0x10, 0x19, 0x69, 0x8c, 0xce, 0xda, - 0x5e, 0x0b, 0xa3, 0x5f, 0x3b, 0xe4, 0x89, 0x18, 0xfa, 0xb1, 0x57, 0x99, 0x94, 0x78, 0x39, 0xb9, - 0xd9, 0x9f, 0xbb, 0x6e, 0x13, 0x7c, 0xc4, 0x65, 0x80, 0x5e, 0x11, 0x20, 0x61, 0xe8, 0x73, 0x8e, - 0x00, 0x2c, 0x71, 0x02, 0x70, 0xcb, 0x00, 0x24, 0x1e, 0xb2, 0x1c, 0x7c, 0x3e, 0x09, 0x93, 0xf6, - 0x34, 0x62, 0x1e, 0x9b, 0xf5, 0x2d, 0x74, 0x26, 0xec, 0xda, 0x4c, 0x04, 0xa1, 0x63, 0x34, 0x2d, - 0x2a, 0xc9, 0x5f, 0xf4, 0x8f, 0x89, 0xb0, 0x7b, 0x1e, 0x16, 0x6f, 0xb8, 0x9a, 0x7d, 0x16, 0xb6, - 0xe1, 0x76, 0x34, 0x42, 0x14, 0x18, 0xbf, 0xba, 0xfe, 0x56, 0x12, 0xa0, 0xa6, 0x3b, 0x93, 0xd6, - 0x03, 0x70, 0x92, 0x73, 0xb2, 0xce, 0xf3, 0x9c, 0xec, 0xb9, 0xa2, 0x77, 0xab, 0x8d, 0x3e, 0x96, - 0xa2, 0x77, 0x38, 0x2c, 0x9e, 0xe7, 0x58, 0x7c, 0x3a, 0x52, 0x4d, 0xf1, 0xf3, 0xf7, 0x13, 0x49, - 0x18, 0x2f, 0x74, 0x5a, 0x4d, 0xb5, 0x4e, 0xd6, 0x8d, 0xcf, 0x0d, 0xc9, 0x5e, 0xf4, 0x60, 0x32, - 0xe2, 0xe8, 0xe3, 0xd4, 0xe1, 0xc3, 0x4b, 0xe6, 0xba, 0x94, 0xb4, 0x5d, 0x97, 0x42, 0x9a, 0x35, - 0xfb, 0x14, 0x3e, 0x02, 0xf1, 0x14, 0xe0, 0x58, 0xa5, 0x85, 0xb5, 0x39, 0x03, 0x2b, 0x8d, 0xba, - 0xd1, 0xd9, 0x59, 0x6f, 0xa3, 0x5c, 0x58, 0x19, 0xf5, 0x58, 0x5b, 0x92, 0x9c, 0xb5, 0x05, 0xbd, - 0xcc, 0x3b, 0xb8, 0x2f, 0xf2, 0xec, 0x3d, 0xed, 0x67, 0xe5, 0xf3, 0xd0, 0x30, 0xc0, 0xe4, 0x2f, - 0x92, 0xd5, 0xb9, 0xcb, 0xe4, 0x92, 0x8a, 0x62, 0x72, 0x79, 0xaf, 0x83, 0xec, 0xbd, 0x1c, 0xb2, - 0x2f, 0x8a, 0xde, 0xae, 0x91, 0x6c, 0x1e, 0x4c, 0x55, 0xb1, 0xe9, 0x03, 0xef, 0x95, 0x30, 0xb9, - 0xee, 0x7e, 0x71, 0x20, 0xe6, 0x23, 0x89, 0x2a, 0x52, 0x9d, 0x4d, 0x52, 0xf2, 0x17, 0xbd, 0x3f, - 0xea, 0xd2, 0x8c, 0x27, 0xc1, 0x07, 0x5d, 0x07, 0xc1, 0x64, 0x98, 0x7d, 0x83, 0x48, 0xeb, 0xac, - 0xc0, 0xfa, 0xe3, 0x47, 0xe1, 0x7d, 0x02, 0x4c, 0x95, 0x76, 0x5a, 0xba, 0x61, 0x2e, 0x2b, 0xc6, - 0x36, 0x3d, 0xd5, 0xb8, 0x10, 0xb6, 0x93, 0x9d, 0x04, 0x50, 0x69, 0x56, 0x8f, 0x17, 0xa4, 0x27, - 0x06, 0x3d, 0x19, 0x15, 0x0b, 0x9e, 0x10, 0xff, 0xbd, 0x5d, 0x43, 0xd7, 0xcd, 0x25, 0x55, 0xdb, - 0x76, 0x37, 0xc8, 0xbd, 0x51, 0x11, 0x77, 0x79, 0x22, 0xa1, 0x15, 0x48, 0x61, 0xfc, 0x68, 0x7d, - 0x26, 0x09, 0x13, 0xd5, 0x2d, 0xc5, 0xc0, 0x73, 0x7b, 0xa4, 0xb1, 0x5d, 0x1e, 0x48, 0x7e, 0x3b, - 0xc1, 0xe8, 0x95, 0x5e, 0x20, 0x24, 0x48, 0x35, 0x55, 0x6d, 0xdb, 0xde, 0x9e, 0x23, 0xff, 0xdd, - 0xa3, 0xbd, 0xc9, 0x1e, 0x47, 0x7b, 0x1d, 0x13, 0xad, 0x53, 0xaf, 0xcf, 0xdc, 0xe7, 0x9d, 0xa1, - 0x8e, 0xf6, 0xf6, 0x2d, 0x2e, 0x7e, 0x36, 0x7e, 0x2d, 0x09, 0xc7, 0x72, 0x8d, 0xc6, 0x39, 0xd5, - 0xdc, 0xaa, 0xd8, 0x3c, 0xba, 0x2b, 0xdc, 0xa6, 0xfa, 0x34, 0x64, 0x5b, 0xca, 0x5e, 0x53, 0x57, - 0x9c, 0x81, 0xc5, 0x0a, 0xa2, 0x07, 0x92, 0x11, 0x07, 0x96, 0x2e, 0x0a, 0x7c, 0x98, 0x1a, 0x49, - 0xa7, 0x07, 0x17, 0x19, 0x3f, 0x63, 0xff, 0x22, 0x05, 0x99, 0x2a, 0x56, 0x8c, 0xfa, 0x16, 0x7a, - 0x53, 0xd2, 0x65, 0xe8, 0x3c, 0x64, 0x37, 0xd4, 0xa6, 0x89, 0x8d, 0x36, 0x5d, 0xff, 0x7b, 0xe7, - 0x31, 0x6c, 0x3c, 0x9b, 0x6b, 0xea, 0xf5, 0xed, 0xd9, 0x3c, 0xd1, 0x2c, 0x9a, 0x39, 0x6b, 0x9f, - 0x9b, 0x9a, 0x9d, 0xa7, 0x99, 0x64, 0x3b, 0xb3, 0x74, 0x37, 0xa4, 0xdb, 0xba, 0x61, 0xda, 0x6b, - 0xb5, 0x53, 0xe1, 0x4a, 0xa9, 0xea, 0x86, 0x29, 0xb3, 0x8c, 0x04, 0xda, 0x8d, 0x4e, 0xb3, 0x59, - 0xc3, 0x17, 0x4c, 0x7b, 0x9d, 0x64, 0x87, 0xa5, 0x13, 0x90, 0xd1, 0x37, 0x36, 0xda, 0x98, 0x2d, - 0xc5, 0xd3, 0xb2, 0x15, 0x92, 0x8e, 0x43, 0xba, 0xa9, 0xee, 0xa8, 0x26, 0x5d, 0x71, 0xa7, 0x65, - 0x16, 0x90, 0x4e, 0x81, 0xa8, 0x3b, 0xab, 0x24, 0x46, 0xe8, 0x74, 0x86, 0xea, 0xa2, 0x7d, 0xf1, - 0xa4, 0xcb, 0x6d, 0xe3, 0xbd, 0xf6, 0x74, 0x96, 0x7e, 0xa7, 0xff, 0xd1, 0x63, 0x51, 0xad, 0xf4, - 0x8c, 0xaf, 0xfe, 0x4b, 0x46, 0x03, 0xd7, 0x75, 0xa3, 0x61, 0xf3, 0xc6, 0x7f, 0xc9, 0x68, 0xa5, - 0x8b, 0x66, 0x5b, 0xef, 0x59, 0x79, 0xfc, 0xf2, 0xf4, 0x58, 0x06, 0xd2, 0x0b, 0x86, 0xd2, 0xda, - 0x42, 0xef, 0x4a, 0x0c, 0x5f, 0x9c, 0x1c, 0x60, 0x93, 0xfd, 0x80, 0x15, 0xfa, 0x00, 0x9b, 0xf2, - 0x00, 0xfb, 0x48, 0x12, 0x52, 0xc5, 0xc6, 0x26, 0xe6, 0x8c, 0x5e, 0x09, 0x8f, 0xd1, 0xeb, 0x04, - 0x64, 0x4c, 0xc5, 0xd8, 0xc4, 0xa6, 0xc5, 0x25, 0x2b, 0xe4, 0x78, 0x46, 0x09, 0x9e, 0xf3, 0x75, - 0x2f, 0x82, 0x14, 0x69, 0x17, 0x95, 0xc8, 0xa9, 0xd3, 0x57, 0xf4, 0x82, 0x86, 0xf2, 0x67, 0x96, - 0xd4, 0x38, 0x4b, 0x28, 0x93, 0x69, 0x86, 0x6e, 0x3c, 0xd2, 0xfb, 0xf0, 0x20, 0x63, 0xbb, 0x5a, - 0xd7, 0xb5, 0xd2, 0x8e, 0xb2, 0x89, 0xa7, 0x33, 0x6c, 0x6c, 0x77, 0x22, 0xec, 0xaf, 0xc5, 0x1d, - 0xfd, 0x7e, 0x75, 0x3a, 0xeb, 0x7e, 0xa5, 0x11, 0xa4, 0x09, 0x5b, 0x6a, 0xa3, 0x81, 0xb5, 0xe9, - 0x31, 0x76, 0x3a, 0x85, 0x85, 0x66, 0x4e, 0x42, 0x8a, 0xd0, 0x40, 0x30, 0x26, 0x8a, 0x5d, 0x3c, - 0x22, 0x1d, 0x25, 0x52, 0xce, 0xac, 0x92, 0x62, 0x02, 0x7d, 0x29, 0x19, 0x71, 0x0f, 0x99, 0x35, - 0xae, 0xb7, 0xcc, 0x5f, 0x0f, 0x69, 0x4d, 0x6f, 0xe0, 0xbe, 0x12, 0xcf, 0x52, 0x49, 0xcf, 0x87, - 0x34, 0x6e, 0x6c, 0xe2, 0x36, 0x05, 0x73, 0xe2, 0xf4, 0xc9, 0x60, 0x5e, 0xca, 0x2c, 0x71, 0xb4, - 0x8d, 0xea, 0x5e, 0xd4, 0xc6, 0xdf, 0x49, 0xfe, 0x57, 0x06, 0x8e, 0xb1, 0xfe, 0x59, 0xed, 0xac, - 0x93, 0xa2, 0xd6, 0x31, 0x7a, 0x8d, 0xc0, 0x1d, 0xe8, 0x6d, 0x77, 0xd6, 0x9d, 0xb1, 0x8c, 0x05, - 0xbc, 0x9d, 0x28, 0x39, 0x14, 0x9d, 0x2c, 0x0c, 0xaa, 0x93, 0x39, 0xfd, 0x2a, 0xd8, 0xdd, 0xd0, - 0xd5, 0xc6, 0x19, 0x1a, 0x6d, 0x6b, 0xe3, 0x1e, 0xba, 0x94, 0x0c, 0xca, 0xca, 0x86, 0x89, 0x8d, - 0x52, 0x83, 0xca, 0xe3, 0xb8, 0x6c, 0x07, 0x89, 0xbe, 0x5f, 0xc7, 0x1b, 0xba, 0x41, 0x16, 0x82, - 0xe3, 0x4c, 0xdf, 0xdb, 0x61, 0x4f, 0xff, 0x04, 0xce, 0x28, 0x7d, 0x0d, 0x1c, 0x53, 0x37, 0x35, - 0xdd, 0xc0, 0x8e, 0x67, 0xcf, 0xf4, 0x51, 0x76, 0x12, 0xb5, 0x2b, 0x5a, 0xba, 0x0e, 0x2e, 0xd2, - 0xf4, 0x02, 0x6e, 0x59, 0x7c, 0x67, 0xa8, 0x4e, 0xd2, 0x1e, 0xb1, 0xff, 0x03, 0xfa, 0x62, 0xd4, - 0x95, 0x67, 0x17, 0xa8, 0x43, 0x53, 0xfd, 0xd2, 0x6d, 0x70, 0xb4, 0x61, 0x79, 0x0d, 0xd4, 0x55, - 0xa7, 0x47, 0xf8, 0xe6, 0xe3, 0x12, 0xbb, 0xe2, 0x94, 0xf2, 0x8a, 0xd3, 0x02, 0x8c, 0x51, 0x57, - 0x73, 0x22, 0x4f, 0xe9, 0xae, 0xc3, 0x8c, 0x74, 0xba, 0xed, 0x34, 0xca, 0xc3, 0x92, 0xd9, 0xbc, - 0x95, 0x45, 0x76, 0x32, 0x47, 0x9b, 0xef, 0x04, 0x73, 0x28, 0xfe, 0xae, 0xf7, 0xb7, 0x02, 0x9c, - 0xb0, 0xd5, 0x1b, 0xa3, 0xa5, 0xa0, 0xb6, 0x4d, 0x55, 0xab, 0x9b, 0xa8, 0xcd, 0x39, 0x10, 0x1a, - 0x56, 0xa2, 0x7b, 0xf1, 0x9e, 0xed, 0x40, 0xe8, 0x89, 0x1a, 0x56, 0x67, 0x44, 0x5f, 0xf1, 0xea, - 0xd7, 0x0a, 0x2f, 0x62, 0x67, 0x7a, 0x31, 0xb0, 0x37, 0xf1, 0x3e, 0x92, 0x96, 0x87, 0xcc, 0xa6, - 0xa1, 0x77, 0x5a, 0x36, 0x91, 0xd7, 0x86, 0x23, 0x72, 0x81, 0xe4, 0x91, 0xad, 0xac, 0xe8, 0x71, - 0x07, 0x5f, 0x99, 0xc3, 0xf7, 0xce, 0x81, 0xc9, 0x1b, 0x81, 0xa9, 0x22, 0x05, 0x47, 0x1d, 0x21, - 0x2b, 0x35, 0xda, 0x48, 0xef, 0xa7, 0x5d, 0xf7, 0x19, 0x26, 0x1c, 0xbd, 0x25, 0x78, 0xf4, 0x56, - 0x0f, 0x4d, 0x33, 0xd1, 0x53, 0xd3, 0xa0, 0x07, 0x84, 0xb0, 0xd7, 0x2f, 0xf0, 0xdd, 0x8c, 0x92, - 0xfb, 0x74, 0x56, 0x1c, 0x21, 0x2f, 0x81, 0xe8, 0xdf, 0xaa, 0xf8, 0xa5, 0xe0, 0x89, 0x24, 0x5c, - 0xc4, 0x04, 0x71, 0x55, 0x6b, 0x3b, 0x23, 0x2d, 0x7f, 0x66, 0x97, 0xb6, 0xa9, 0xed, 0xec, 0x72, - 0xd2, 0x10, 0x6f, 0xd1, 0xbd, 0x87, 0x07, 0xef, 0xf9, 0xfe, 0x6a, 0xcd, 0x53, 0x8b, 0xcf, 0xda, - 0xf0, 0xf7, 0x1d, 0xde, 0x2d, 0x73, 0xbc, 0x3b, 0x33, 0x48, 0xa1, 0xf1, 0x33, 0xf0, 0x75, 0x02, - 0x8c, 0x57, 0xb1, 0xb9, 0xa4, 0xec, 0xe9, 0x1d, 0x13, 0x29, 0x61, 0xcd, 0x4c, 0xb7, 0x40, 0xa6, - 0x49, 0xb3, 0xd0, 0x99, 0xf1, 0xd4, 0xe9, 0xcb, 0x7b, 0x1a, 0x43, 0xe9, 0x66, 0x15, 0x2b, 0x5a, - 0xb6, 0xd2, 0xa3, 0xb7, 0x45, 0x35, 0xa5, 0x3b, 0xd4, 0x0d, 0xc5, 0x0e, 0x18, 0xc9, 0xd0, 0xee, - 0x57, 0x75, 0xfc, 0xb0, 0xbc, 0x4c, 0x80, 0x49, 0xea, 0x7a, 0x3f, 0xaf, 0xec, 0xea, 0x86, 0x6a, - 0xe2, 0x68, 0x16, 0x40, 0x27, 0x9b, 0x75, 0xbe, 0xc0, 0x13, 0x83, 0xde, 0x97, 0x8c, 0xb8, 0xc5, - 0xc6, 0xd1, 0x31, 0x14, 0x10, 0x22, 0x6d, 0xc8, 0x05, 0x55, 0x3f, 0x42, 0x20, 0x72, 0x46, 0x7d, - 0x4b, 0xdd, 0xc5, 0x8d, 0x88, 0x40, 0xd8, 0xd9, 0x5c, 0x20, 0x9c, 0x82, 0x06, 0x03, 0xc2, 0xce, - 0x7e, 0x48, 0x40, 0xf8, 0x54, 0x1f, 0x3f, 0x10, 0xef, 0x61, 0x40, 0x78, 0x7c, 0x0d, 0x96, 0xc3, - 0x02, 0x71, 0x25, 0x4c, 0xba, 0x56, 0x82, 0x55, 0xa3, 0x69, 0xad, 0xe6, 0xf9, 0x48, 0xf4, 0xb9, - 0x01, 0xe0, 0xe8, 0xeb, 0x36, 0x10, 0x0d, 0x8e, 0xcf, 0x46, 0x84, 0xe3, 0xe9, 0xea, 0x12, 0xf0, - 0xa4, 0xc0, 0x4e, 0x48, 0x71, 0x9e, 0x19, 0xf7, 0x87, 0x85, 0x6b, 0x9f, 0x17, 0x48, 0x36, 0xb2, - 0x17, 0xc8, 0x17, 0xa2, 0x7a, 0x81, 0x74, 0x53, 0x3b, 0x14, 0x38, 0x23, 0x39, 0x79, 0xf4, 0xa1, - 0xe0, 0x90, 0x11, 0xfd, 0x81, 0x00, 0x40, 0xef, 0xfe, 0x64, 0xfe, 0x4b, 0x8b, 0x90, 0x61, 0x7f, - 0x6d, 0x27, 0xc8, 0x84, 0xeb, 0x04, 0x79, 0x1d, 0xa4, 0x77, 0x95, 0x66, 0x07, 0x3b, 0x3c, 0xea, - 0x9e, 0x88, 0x9e, 0x25, 0x5f, 0x65, 0x96, 0x08, 0x6d, 0x85, 0x95, 0x8a, 0xbb, 0xbc, 0x0e, 0x38, - 0x44, 0x1e, 0xae, 0xf2, 0xe1, 0xa2, 0x45, 0xe3, 0x2c, 0xfb, 0x75, 0x7d, 0xae, 0xde, 0x11, 0xd5, - 0x21, 0xc2, 0x53, 0xd6, 0x30, 0xa4, 0x21, 0x92, 0x8b, 0x84, 0x6f, 0xdd, 0xf1, 0x2b, 0xda, 0x2f, - 0x24, 0x21, 0x5d, 0xd3, 0xab, 0x98, 0x3b, 0x3f, 0x16, 0x8c, 0x8d, 0x6b, 0xb5, 0x49, 0x7a, 0xad, - 0x36, 0x11, 0x2e, 0x60, 0x75, 0x3c, 0x43, 0xfc, 0x1d, 0xf6, 0xc8, 0x52, 0x05, 0xbb, 0x5b, 0xf9, - 0x2c, 0x10, 0xcd, 0x16, 0xd8, 0xab, 0xf8, 0xf8, 0x19, 0x7a, 0x06, 0x8e, 0xad, 0x6a, 0x0d, 0x5d, - 0xc6, 0x0d, 0xdd, 0xb2, 0xad, 0x90, 0x85, 0x67, 0x47, 0x6b, 0xe8, 0x94, 0xd6, 0xb4, 0x4c, 0xff, - 0x93, 0x38, 0x03, 0x37, 0x74, 0xcb, 0xf0, 0x4d, 0xff, 0xa3, 0x37, 0x0b, 0x90, 0x22, 0x79, 0xc3, - 0x7b, 0xaa, 0xfc, 0x30, 0xea, 0x41, 0x13, 0x52, 0xfc, 0x30, 0xe4, 0x5b, 0xba, 0xcb, 0x63, 0x6d, - 0x62, 0x9b, 0xbc, 0x57, 0xf8, 0xd5, 0xe7, 0x61, 0x85, 0xc7, 0xca, 0xf4, 0x78, 0x94, 0xc3, 0x29, - 0x3d, 0xc8, 0x8e, 0x86, 0x64, 0x61, 0x00, 0x15, 0x29, 0xc2, 0xd1, 0x7c, 0xae, 0x4c, 0x6f, 0x4b, - 0x58, 0xae, 0x9c, 0x2d, 0x8a, 0x02, 0x05, 0x88, 0xb4, 0x26, 0x46, 0x80, 0x48, 0xf1, 0xff, 0x04, - 0x01, 0xea, 0x41, 0xf6, 0x61, 0x00, 0xf4, 0xf9, 0x24, 0x4c, 0x2e, 0xa9, 0x6d, 0xd3, 0xcf, 0xe9, - 0xcb, 0xde, 0x44, 0xb6, 0xed, 0x03, 0x6e, 0x04, 0x7f, 0xd1, 0x76, 0x98, 0x09, 0x21, 0x57, 0x8f, - 0x0f, 0x64, 0xfb, 0xbd, 0x63, 0x22, 0xcd, 0xc1, 0x83, 0xaa, 0x18, 0x8d, 0x77, 0x22, 0xa5, 0x80, - 0x5d, 0x8d, 0x16, 0x9a, 0x93, 0x91, 0x87, 0x5e, 0xb7, 0x92, 0xd1, 0x0f, 0xbd, 0xbe, 0x75, 0x8f, - 0xc0, 0x74, 0x9d, 0x84, 0x8b, 0x48, 0xf5, 0x41, 0x0b, 0x4e, 0x7f, 0x36, 0xf7, 0x5d, 0x70, 0x46, - 0xb6, 0x79, 0xed, 0xa3, 0x65, 0x18, 0x36, 0xaf, 0x7e, 0x85, 0x8e, 0x98, 0xcd, 0x3e, 0x06, 0x96, - 0x7e, 0x6c, 0x0e, 0x30, 0xb0, 0x0c, 0xce, 0xe6, 0x60, 0x23, 0xcb, 0x80, 0x6c, 0x3e, 0x34, 0xd3, - 0xc9, 0x37, 0x92, 0x30, 0x99, 0x6b, 0xb5, 0x9a, 0x7b, 0x35, 0xeb, 0x24, 0x48, 0x24, 0xd3, 0x89, - 0xe7, 0x40, 0x49, 0x72, 0xdf, 0x71, 0xca, 0xc8, 0x6e, 0xe2, 0x1c, 0x1d, 0xc3, 0x70, 0x13, 0x0f, - 0x2a, 0x30, 0x7e, 0xd6, 0xbe, 0x32, 0xcd, 0x14, 0xb1, 0x75, 0xd1, 0xc3, 0xd7, 0x12, 0xc1, 0x37, - 0x3d, 0x70, 0xf2, 0x9c, 0xec, 0x96, 0xe7, 0x3b, 0x20, 0xb3, 0xa1, 0x1b, 0x3b, 0x8a, 0x6d, 0xcb, - 0xbd, 0xca, 0x4f, 0x9c, 0xac, 0xbb, 0x14, 0xe6, 0x69, 0x62, 0xd9, 0xca, 0x44, 0x46, 0xb4, 0x97, - 0xa8, 0x2d, 0xeb, 0x2c, 0x34, 0xf9, 0x4b, 0x2f, 0x39, 0x61, 0x47, 0xa2, 0xcb, 0xb8, 0x6d, 0xe2, - 0x06, 0xdd, 0x7c, 0x1c, 0x93, 0xf9, 0x48, 0x69, 0x06, 0x8e, 0x5a, 0x11, 0xf3, 0x6a, 0x13, 0xb7, - 0xe9, 0x96, 0xf2, 0x98, 0xcc, 0xc5, 0xa1, 0x2f, 0x0f, 0x32, 0x70, 0x44, 0xbe, 0x81, 0x62, 0x1a, - 0xb2, 0xed, 0x4e, 0xbd, 0x8e, 0x71, 0xc3, 0xf2, 0x32, 0xb2, 0x83, 0x11, 0xbd, 0x16, 0x23, 0x0f, - 0x33, 0x87, 0x73, 0x39, 0xc5, 0xcc, 0x0a, 0x64, 0x18, 0x86, 0xd2, 0x51, 0x18, 0xb3, 0xfd, 0x26, - 0x99, 0x5f, 0xc8, 0x8a, 0xb5, 0x48, 0x17, 0x13, 0xa4, 0xc4, 0x7b, 0xaa, 0x95, 0x32, 0xbb, 0xb0, - 0xab, 0x50, 0xb1, 0x2e, 0xec, 0xaa, 0x9e, 0x5d, 0x10, 0x53, 0xd2, 0x14, 0xc0, 0x82, 0x9c, 0x5b, - 0x59, 0x5c, 0xa3, 0x29, 0xd2, 0xe8, 0xc9, 0x2c, 0x64, 0x98, 0x1b, 0x26, 0x7a, 0x22, 0xed, 0x7d, - 0x30, 0xe5, 0xa8, 0xa6, 0x13, 0x32, 0x57, 0x14, 0x43, 0xd9, 0x69, 0x07, 0xed, 0x8d, 0xb1, 0xdc, - 0xce, 0x63, 0x29, 0x65, 0x4f, 0xb6, 0xc5, 0x23, 0x32, 0x57, 0x8c, 0xf4, 0x2f, 0xe0, 0xd8, 0xba, - 0x75, 0x80, 0xa0, 0x6d, 0x95, 0x9c, 0xf4, 0xdf, 0xb1, 0xef, 0x2a, 0x79, 0x8e, 0xcf, 0xb9, 0x78, - 0x44, 0xee, 0x2e, 0x4c, 0x2a, 0xc1, 0x78, 0x5b, 0x53, 0x5a, 0xed, 0x2d, 0xdd, 0x71, 0xa1, 0xb8, - 0x36, 0x44, 0xc9, 0x55, 0x2b, 0x8f, 0xec, 0xe6, 0x96, 0x9e, 0x0f, 0xcf, 0xec, 0xd0, 0x1b, 0xde, - 0x8a, 0x17, 0xe8, 0x46, 0xe9, 0x26, 0x7f, 0x75, 0x40, 0xef, 0x8f, 0xd2, 0x6d, 0x96, 0x87, 0x51, - 0x9a, 0x8a, 0xcf, 0x73, 0x43, 0xd4, 0xed, 0xf1, 0x32, 0xba, 0x0d, 0x52, 0x3b, 0x44, 0xf6, 0x32, - 0xa1, 0x33, 0x2f, 0x53, 0x81, 0x23, 0x99, 0xd0, 0x0c, 0x1c, 0xf5, 0xb2, 0xbe, 0x97, 0x36, 0x41, - 0x57, 0xc0, 0xb1, 0x2e, 0x26, 0xda, 0xc7, 0x4f, 0x12, 0xee, 0xf1, 0x93, 0x5f, 0x85, 0x31, 0x9b, - 0x1f, 0xfb, 0xee, 0x69, 0xcd, 0xc1, 0x98, 0xcd, 0x21, 0x0b, 0xb8, 0xab, 0xba, 0x6c, 0x7b, 0xd5, - 0x1d, 0xc5, 0x30, 0xe9, 0xd6, 0xb5, 0x5d, 0xc8, 0x9c, 0xd2, 0xc6, 0xb2, 0x93, 0x6d, 0xe6, 0x7a, - 0x48, 0x11, 0xaa, 0x25, 0x09, 0xa6, 0x72, 0x4b, 0x4b, 0x6b, 0x15, 0x7a, 0x47, 0xf0, 0x62, 0xa9, - 0xbc, 0xc0, 0x3a, 0x40, 0x69, 0xa1, 0x5c, 0x91, 0x8b, 0x4c, 0xfe, 0xab, 0x62, 0x62, 0xe6, 0x72, - 0xcb, 0x07, 0x0a, 0x20, 0xc3, 0x9a, 0xc7, 0xa4, 0xbd, 0x78, 0x81, 0x19, 0xdc, 0x44, 0x7a, 0x75, - 0x79, 0x8b, 0xb6, 0x85, 0x37, 0x5a, 0x84, 0x71, 0x02, 0x74, 0xb8, 0xd9, 0x6b, 0x50, 0xf9, 0x48, - 0x14, 0x8f, 0xbe, 0x9e, 0x25, 0x45, 0xd3, 0x07, 0xf3, 0xfb, 0xf4, 0x81, 0x04, 0x53, 0xa5, 0x72, - 0xad, 0x28, 0x97, 0x73, 0x4b, 0x8e, 0x42, 0xd8, 0xa7, 0x23, 0x92, 0xbc, 0x8e, 0x10, 0xd0, 0xb7, - 0x05, 0x00, 0x46, 0x0e, 0x51, 0x54, 0xde, 0xeb, 0xd5, 0xbe, 0x16, 0x55, 0x27, 0xbb, 0xc5, 0xf8, - 0xe8, 0xe4, 0x12, 0x8c, 0x19, 0xd6, 0x07, 0xcb, 0xb6, 0xd7, 0xaf, 0x1c, 0xf6, 0xd7, 0x2e, 0x4d, - 0x76, 0xb2, 0xa3, 0x8f, 0x47, 0x51, 0xc1, 0xbe, 0x84, 0x1d, 0x0e, 0xcb, 0x9b, 0xb6, 0xd7, 0xbf, - 0x67, 0x66, 0xc3, 0xf4, 0x40, 0xb8, 0x36, 0xf0, 0x99, 0x3d, 0x2a, 0x61, 0x46, 0xda, 0x2f, 0xfe, - 0xe8, 0x33, 0xc7, 0x60, 0x8a, 0x95, 0xe1, 0x1c, 0xc0, 0xff, 0x87, 0x24, 0x08, 0xb9, 0x06, 0x77, - 0x97, 0x59, 0xf0, 0x34, 0x6d, 0x06, 0x8e, 0x7a, 0x3c, 0x66, 0x9c, 0x8b, 0xf1, 0xbc, 0x71, 0xfc, - 0xab, 0x2a, 0x81, 0xcf, 0x55, 0xf1, 0xd4, 0xcc, 0xe6, 0x1a, 0xc3, 0xd9, 0xe3, 0x8a, 0xe2, 0x01, - 0x1f, 0x50, 0x79, 0xfc, 0x93, 0xba, 0x07, 0xdd, 0x4b, 0xc7, 0x87, 0x8a, 0x40, 0xd4, 0xe3, 0x37, - 0x0e, 0x13, 0xc2, 0xad, 0xc0, 0x87, 0x7e, 0xa0, 0x23, 0xb8, 0xfe, 0xf8, 0x71, 0xf8, 0x85, 0x65, - 0x32, 0xca, 0xed, 0x2a, 0x6a, 0x53, 0x59, 0x6f, 0x46, 0x38, 0x27, 0xf8, 0x19, 0x2f, 0xab, 0xcb, - 0x3c, 0xab, 0x6f, 0x09, 0x6a, 0x2a, 0x57, 0x9f, 0xef, 0xbd, 0xf0, 0xe3, 0x36, 0xae, 0xae, 0x77, - 0x10, 0x3f, 0x6e, 0xda, 0xe5, 0xc9, 0x6e, 0x4a, 0xf4, 0x87, 0x0e, 0xeb, 0x7f, 0x89, 0x63, 0xfd, - 0x1d, 0x83, 0xd2, 0x13, 0x3f, 0x02, 0xaf, 0x12, 0x60, 0x22, 0xd7, 0x68, 0xcc, 0x63, 0xc5, 0xec, - 0x18, 0xb8, 0x81, 0x8a, 0x61, 0xbb, 0xc3, 0xa5, 0xdd, 0x2c, 0x1a, 0xf7, 0x72, 0xe2, 0x63, 0xa1, - 0xaf, 0x55, 0xdc, 0xaf, 0x0d, 0x6c, 0x5a, 0x86, 0xa2, 0x92, 0xc2, 0x5d, 0xc2, 0x18, 0x9a, 0x88, - 0xf8, 0x01, 0x79, 0xbd, 0x00, 0x53, 0x32, 0xbd, 0x94, 0x7c, 0xd8, 0x98, 0x7c, 0x32, 0xa2, 0x77, - 0xa4, 0xe7, 0xf2, 0x13, 0x2f, 0x39, 0x43, 0x81, 0x25, 0x8a, 0x1b, 0x64, 0x38, 0x3a, 0xe2, 0x47, - 0xe6, 0x47, 0x00, 0xe0, 0xf1, 0x89, 0xf8, 0x36, 0xb8, 0xbe, 0xfd, 0xe8, 0x0b, 0x02, 0x1b, 0xcf, - 0xab, 0xdc, 0x11, 0x4e, 0xde, 0x15, 0x22, 0xd1, 0xc3, 0x15, 0x22, 0xd4, 0xa8, 0xf2, 0x93, 0x88, - 0x5b, 0xec, 0x96, 0x97, 0x42, 0xdf, 0xc1, 0x7d, 0x40, 0x2d, 0xf7, 0x54, 0x84, 0xbd, 0xf6, 0x7e, - 0xa4, 0xc4, 0xff, 0x0c, 0x46, 0xd0, 0x5e, 0xbb, 0x34, 0x0d, 0xc7, 0xe5, 0x62, 0xae, 0x50, 0x29, - 0x2f, 0xdd, 0xe7, 0xfd, 0x2a, 0xa6, 0xd0, 0x5b, 0x04, 0xc8, 0x30, 0x79, 0x8b, 0x07, 0xd3, 0xff, - 0x10, 0x51, 0x41, 0xf2, 0x8c, 0x64, 0x94, 0xf9, 0xac, 0x83, 0xfe, 0x53, 0x04, 0x95, 0x17, 0xa2, - 0xd8, 0xa7, 0x2d, 0x44, 0xdf, 0x12, 0x20, 0x45, 0x57, 0x4c, 0x9d, 0xa8, 0x00, 0x15, 0xe0, 0x32, - 0xa5, 0xd5, 0xc2, 0x5a, 0xc3, 0xb9, 0x47, 0x70, 0xde, 0xd0, 0x77, 0x2a, 0xe6, 0x16, 0x36, 0x48, - 0x92, 0xb6, 0x65, 0x69, 0x0e, 0x4e, 0x84, 0xbe, 0x15, 0xd1, 0xf8, 0xcc, 0xf3, 0x3a, 0x60, 0x91, - 0x76, 0x66, 0x7f, 0xbf, 0xbc, 0xc4, 0xa7, 0x5f, 0x2e, 0xa9, 0xda, 0xb6, 0xb7, 0x6f, 0xfe, 0x59, - 0x04, 0xbb, 0x75, 0x5f, 0x7a, 0x0e, 0xd9, 0x11, 0xe6, 0x81, 0x8c, 0x47, 0xc1, 0xbe, 0x5c, 0x00, - 0x91, 0x90, 0xc8, 0x44, 0xd4, 0xba, 0x0c, 0xab, 0xc2, 0xef, 0x23, 0xd0, 0x48, 0xef, 0x3e, 0x82, - 0x1d, 0x21, 0x5d, 0x0d, 0x53, 0xf5, 0x2d, 0x5c, 0xdf, 0x2e, 0x69, 0xb6, 0x51, 0x88, 0x21, 0xdc, - 0x15, 0xcb, 0x7b, 0xcc, 0xde, 0xcb, 0x43, 0xca, 0xdb, 0xa6, 0x39, 0xbe, 0x79, 0x89, 0xf2, 0xe9, - 0x94, 0x2e, 0x30, 0x65, 0x0e, 0x98, 0x5b, 0x07, 0x2a, 0x35, 0x1a, 0x32, 0xe5, 0xc1, 0x1e, 0x2d, - 0xa8, 0xac, 0xd0, 0x57, 0xbe, 0x56, 0xab, 0xc5, 0xc2, 0xda, 0x9c, 0xdd, 0xf9, 0xaa, 0xa2, 0x80, - 0x7e, 0x90, 0x84, 0x2c, 0x23, 0xab, 0xdd, 0x75, 0x51, 0x74, 0xf0, 0x39, 0x0f, 0xf4, 0x81, 0xd0, - 0x0e, 0xc9, 0x0e, 0x23, 0xac, 0x7a, 0x7c, 0x7a, 0xca, 0x2d, 0x90, 0x65, 0x20, 0xdb, 0x66, 0xc9, - 0x93, 0x3e, 0xfd, 0xc4, 0x2a, 0x46, 0xb6, 0x93, 0x87, 0x74, 0x4e, 0xee, 0x43, 0x46, 0xfc, 0x73, - 0x8e, 0x77, 0x4e, 0x40, 0x76, 0x51, 0x6d, 0x9b, 0xba, 0xb1, 0x87, 0xde, 0x91, 0x80, 0xac, 0xf5, - 0xc0, 0xf7, 0x3e, 0x3b, 0xdf, 0xe5, 0x30, 0xd1, 0x32, 0xf0, 0xae, 0xaa, 0x77, 0xda, 0x9e, 0x5b, - 0x01, 0x3c, 0x51, 0x12, 0x82, 0x31, 0xa5, 0x63, 0x6e, 0xe9, 0x86, 0x7b, 0x45, 0x92, 0x1d, 0x96, - 0x4e, 0x02, 0xb0, 0xff, 0x65, 0x65, 0x07, 0x5b, 0xe7, 0x13, 0x3c, 0x31, 0x92, 0x04, 0x29, 0x53, - 0xdd, 0xc1, 0xd6, 0x09, 0x35, 0xfa, 0x5f, 0x9a, 0x86, 0x2c, 0x3d, 0xd2, 0x52, 0x6a, 0x58, 0x27, - 0xd4, 0xec, 0x20, 0x7a, 0xb7, 0x00, 0x13, 0xee, 0x5b, 0xe4, 0x6d, 0xaf, 0xa7, 0x7b, 0x9f, 0xfb, - 0xda, 0x9b, 0x4a, 0xdb, 0xce, 0xe6, 0xec, 0x45, 0xf1, 0x91, 0xee, 0x69, 0x39, 0xc1, 0x73, 0x68, - 0x15, 0x7d, 0x24, 0x19, 0xf6, 0x7c, 0x88, 0xc5, 0x4c, 0xcf, 0x63, 0xe9, 0xfe, 0xb2, 0x35, 0x66, - 0xbd, 0xce, 0x6e, 0x2b, 0xe1, 0x4b, 0x7b, 0x96, 0x64, 0x15, 0x23, 0x3b, 0xa9, 0x43, 0x9e, 0xe9, - 0xe8, 0x4f, 0x49, 0xfc, 0xe2, 0xf5, 0x53, 0x01, 0x26, 0xaa, 0x5b, 0xfa, 0x79, 0xfb, 0xe9, 0xfb, - 0x5f, 0x0d, 0x07, 0xd5, 0xa5, 0x30, 0xbe, 0xdb, 0x05, 0x93, 0x1b, 0xe1, 0x7f, 0xd5, 0x2f, 0x7a, - 0x58, 0x88, 0x0a, 0x93, 0x87, 0xb8, 0xa1, 0x5f, 0xd1, 0x2b, 0xbd, 0xd0, 0x7d, 0x8e, 0x9f, 0x59, - 0x56, 0x82, 0x01, 0xf6, 0x3e, 0xd6, 0x6f, 0x37, 0x30, 0xc5, 0x37, 0x30, 0x1a, 0xf2, 0xfe, 0x8d, - 0x1b, 0xc1, 0x55, 0x05, 0x49, 0xea, 0x65, 0x6a, 0x03, 0x9f, 0x1f, 0x02, 0xf0, 0xe8, 0x67, 0x89, - 0xb0, 0xf6, 0x47, 0x87, 0x03, 0x0e, 0x05, 0x07, 0xba, 0x53, 0xa3, 0x6f, 0x71, 0xf1, 0xf3, 0xf3, - 0x37, 0x2e, 0x82, 0xd4, 0xbc, 0xda, 0xc4, 0x64, 0xfd, 0x9e, 0xad, 0x6c, 0x6c, 0xd0, 0x3b, 0x31, - 0x8a, 0xfe, 0x0f, 0xe8, 0x9d, 0x02, 0xd1, 0xde, 0xa3, 0xd5, 0xcd, 0x15, 0x55, 0xd3, 0x1c, 0x37, - 0x92, 0x7d, 0xf1, 0xbc, 0xa9, 0x2b, 0xd0, 0xb7, 0x93, 0x50, 0x30, 0x6b, 0xd5, 0xee, 0xd3, 0x5f, - 0xae, 0x86, 0xa9, 0xf5, 0x3d, 0x13, 0xb7, 0xad, 0x54, 0x56, 0xb5, 0x29, 0xb9, 0x2b, 0x16, 0x3d, - 0x19, 0xca, 0xdb, 0x33, 0xa0, 0xc2, 0x68, 0x3c, 0x57, 0x86, 0xf4, 0x08, 0xff, 0x26, 0x7d, 0x5e, - 0xab, 0xb4, 0xc4, 0x62, 0xef, 0x2b, 0xd6, 0xd6, 0x56, 0x4a, 0xe5, 0x72, 0xb1, 0x20, 0x6e, 0xa1, - 0x4f, 0x08, 0x30, 0x41, 0xe6, 0x55, 0x36, 0x3a, 0x15, 0xee, 0x75, 0x32, 0x5d, 0x6b, 0xee, 0xb9, - 0x73, 0x47, 0x3b, 0x18, 0x09, 0xa7, 0xff, 0x18, 0x7a, 0x7a, 0x43, 0xd9, 0xe6, 0xa1, 0xc5, 0x1f, - 0xab, 0x0d, 0xb5, 0xd9, 0x8d, 0x55, 0x5a, 0xee, 0x8a, 0xed, 0x81, 0xa9, 0xd0, 0x13, 0xd3, 0x3f, - 0x0a, 0x35, 0xe9, 0xe9, 0x43, 0x5c, 0x34, 0x5c, 0x17, 0x87, 0x85, 0x2b, 0xfa, 0xb1, 0x00, 0x99, - 0xd5, 0x16, 0x45, 0xee, 0x29, 0x8f, 0x13, 0xc6, 0xbe, 0xfd, 0x50, 0xa2, 0xa4, 0x9a, 0xfc, 0x73, - 0xcc, 0xb2, 0x1b, 0x21, 0xdd, 0x6a, 0x6d, 0xf4, 0x30, 0x07, 0x8c, 0xab, 0x03, 0xcf, 0xf0, 0x52, - 0x4e, 0x78, 0xf6, 0x7b, 0xaf, 0x83, 0x8b, 0x1a, 0x6a, 0x5b, 0x59, 0x6f, 0xe2, 0xa2, 0x56, 0x37, - 0xf6, 0x58, 0xa3, 0xd9, 0xf6, 0xf2, 0xfe, 0x0f, 0xd2, 0x1d, 0x90, 0x6e, 0x9b, 0x7b, 0xcd, 0xfd, - 0x7b, 0xcb, 0xbe, 0x55, 0x55, 0x49, 0x72, 0x99, 0xe5, 0x42, 0xbf, 0x48, 0x84, 0xf5, 0x5e, 0xa5, - 0x79, 0x19, 0x6b, 0xfc, 0x5d, 0x31, 0xb6, 0x94, 0xb6, 0xe3, 0x8a, 0x41, 0xfe, 0xa3, 0x47, 0x43, - 0xb9, 0x98, 0xfa, 0x97, 0x1d, 0xbf, 0x4e, 0xfd, 0x66, 0x12, 0xc6, 0x0a, 0xfa, 0x79, 0x8d, 0x62, - 0x7e, 0x13, 0xe7, 0x77, 0x43, 0x5b, 0x93, 0x70, 0x5b, 0xd3, 0xcb, 0xd9, 0x04, 0xfd, 0xdb, 0xd0, - 0xdb, 0xcb, 0xb4, 0x95, 0x76, 0x55, 0x3e, 0x3c, 0x0c, 0x14, 0x2b, 0x8f, 0xe9, 0x3f, 0x68, 0xf3, - 0x39, 0xa8, 0x9e, 0x68, 0xfc, 0xcc, 0x1d, 0xf8, 0xc2, 0x7f, 0xf4, 0xa4, 0x00, 0xa9, 0x82, 0xa1, - 0xb7, 0xd0, 0x1f, 0x24, 0x22, 0xec, 0x81, 0x35, 0x0c, 0xbd, 0x55, 0xa3, 0x37, 0xb6, 0x38, 0x53, - 0x00, 0x2e, 0x4e, 0x3a, 0x03, 0x63, 0x2d, 0xbd, 0xad, 0x9a, 0xf6, 0xb4, 0x6a, 0x6a, 0xdf, 0xab, - 0xba, 0x4c, 0xf2, 0x57, 0xac, 0x44, 0xb2, 0x93, 0x9c, 0xe8, 0x31, 0xca, 0x51, 0xc2, 0x26, 0xc2, - 0x55, 0xfb, 0x66, 0x99, 0xae, 0x58, 0xf4, 0xbb, 0x5e, 0x60, 0x6f, 0xe3, 0x81, 0xbd, 0xaa, 0x07, - 0xc3, 0x0d, 0xbf, 0x67, 0x3a, 0x23, 0x5a, 0xad, 0xdf, 0xe4, 0x80, 0x7c, 0x27, 0x07, 0xf2, 0xa9, - 0x50, 0x75, 0xc6, 0xdf, 0x61, 0x7e, 0x98, 0x05, 0x28, 0x2b, 0xbb, 0xea, 0x26, 0xb3, 0x99, 0x7c, - 0xdd, 0x1e, 0xf0, 0x2c, 0xeb, 0xc6, 0xab, 0x3c, 0x38, 0x9f, 0x81, 0xac, 0x05, 0xab, 0xd5, 0x86, - 0x67, 0x73, 0x6d, 0x70, 0x4b, 0x61, 0x1a, 0xea, 0x82, 0x29, 0xdb, 0xe9, 0xb9, 0x4b, 0xa4, 0x92, - 0x5d, 0x97, 0x48, 0xf5, 0x5c, 0x9e, 0xf9, 0x5d, 0x2d, 0x85, 0x3e, 0x1a, 0xfa, 0xce, 0x30, 0x0f, - 0x3d, 0x9e, 0x16, 0xf9, 0x80, 0x7a, 0x33, 0x64, 0x75, 0xc7, 0xcc, 0x23, 0xf8, 0xae, 0x07, 0x4a, - 0xda, 0x86, 0x2e, 0xdb, 0x29, 0x43, 0x5e, 0xbc, 0x11, 0x8a, 0x8e, 0xf8, 0x81, 0xfe, 0xa2, 0x00, - 0x27, 0x16, 0xec, 0x43, 0x89, 0xa4, 0x1d, 0xe7, 0x54, 0x73, 0x6b, 0x49, 0xd5, 0xb6, 0xdb, 0xe8, - 0x5f, 0x86, 0x9b, 0xc9, 0x7b, 0xf0, 0x4f, 0x46, 0xc3, 0x9f, 0xf7, 0x14, 0xac, 0xf2, 0xa8, 0xdd, - 0xe1, 0x57, 0x4a, 0x6f, 0x6a, 0x7d, 0x00, 0xbc, 0x15, 0x32, 0x8c, 0x50, 0xab, 0x5b, 0xce, 0xf8, - 0xe2, 0xe7, 0x94, 0x24, 0x5b, 0x39, 0x3c, 0x5e, 0x40, 0x67, 0x39, 0x1c, 0xe7, 0x0e, 0x44, 0x59, - 0xfc, 0x9e, 0x82, 0x37, 0x41, 0xd6, 0xe2, 0xb4, 0x34, 0xe5, 0xed, 0xc5, 0xe2, 0x11, 0x09, 0x20, - 0xb3, 0xac, 0xef, 0xe2, 0x9a, 0x2e, 0x26, 0xc8, 0x7f, 0x42, 0x5f, 0x4d, 0x17, 0x93, 0xe8, 0xbf, - 0x00, 0x8c, 0x39, 0x0e, 0xbf, 0x5f, 0x4d, 0xda, 0x77, 0x84, 0x53, 0x33, 0x35, 0x63, 0x46, 0xe8, - 0xdd, 0xf4, 0xd7, 0x87, 0x36, 0x7c, 0x3a, 0x8e, 0xb8, 0xdd, 0x95, 0x85, 0xbc, 0x7e, 0xf7, 0xfd, - 0xa1, 0x0c, 0xa1, 0x61, 0x6b, 0x89, 0xbf, 0xab, 0x7d, 0x2f, 0x69, 0xbf, 0xc4, 0xe0, 0x12, 0x41, - 0xf7, 0xff, 0xf8, 0x97, 0xa5, 0xdd, 0x0d, 0x06, 0x8b, 0xb9, 0x9e, 0x18, 0xfe, 0x79, 0xd1, 0xc0, - 0x9d, 0x57, 0xdf, 0x76, 0x07, 0x1c, 0x7c, 0xee, 0xe6, 0x70, 0xb8, 0xbd, 0xd5, 0x28, 0x35, 0xc5, - 0xcf, 0xe5, 0x0f, 0xb3, 0xc7, 0xba, 0xb4, 0x08, 0x0e, 0x20, 0xdc, 0x85, 0x93, 0x81, 0x0f, 0xcc, - 0xbb, 0x4d, 0x25, 0x35, 0x84, 0xe4, 0xe2, 0x63, 0xa1, 0xde, 0xf8, 0x0f, 0x2c, 0x3a, 0x7e, 0xb6, - 0xfd, 0x20, 0x09, 0xe3, 0xcc, 0xb3, 0x39, 0xd7, 0x6c, 0x76, 0x3d, 0x33, 0xba, 0xcf, 0x99, 0xf4, - 0xdf, 0x87, 0x76, 0x0f, 0x73, 0x5a, 0xe5, 0x94, 0x1d, 0xdb, 0x23, 0x83, 0xe1, 0x0c, 0x3c, 0x7d, - 0x09, 0x1a, 0xc9, 0xa5, 0xa9, 0x13, 0x44, 0xf3, 0xae, 0x18, 0x78, 0x57, 0xc5, 0xe7, 0xd1, 0x25, - 0x01, 0x4b, 0x50, 0xf4, 0x9e, 0xd0, 0x27, 0x0f, 0x3d, 0x45, 0xfa, 0xf0, 0xf8, 0x76, 0x98, 0x68, - 0xba, 0x89, 0xac, 0x11, 0x11, 0x75, 0x8d, 0x88, 0x9e, 0x62, 0x64, 0x6f, 0xf2, 0x90, 0xab, 0x3c, - 0x7f, 0x2a, 0xe2, 0x67, 0xec, 0xf7, 0x33, 0x30, 0xb6, 0xaa, 0xb5, 0x5b, 0x4d, 0xb2, 0x28, 0xfd, - 0x07, 0xc1, 0xb9, 0x41, 0xf5, 0x05, 0xdc, 0x25, 0x53, 0x2f, 0xee, 0x60, 0xc3, 0xde, 0x53, 0x62, - 0x81, 0xde, 0xf7, 0x57, 0xa2, 0x3f, 0xf2, 0xda, 0x98, 0x73, 0x3c, 0xeb, 0x79, 0xd7, 0x72, 0xbb, - 0xd2, 0xe0, 0xab, 0x45, 0x4b, 0x30, 0xd6, 0x52, 0xeb, 0x66, 0xc7, 0x70, 0x6e, 0x5a, 0xbc, 0x3e, - 0x5c, 0x29, 0x2b, 0x2c, 0x97, 0xec, 0x64, 0x47, 0x0a, 0x64, 0xad, 0xc8, 0x7d, 0xe6, 0xc0, 0x7d, - 0x8f, 0x0a, 0x90, 0x39, 0xb3, 0x62, 0x98, 0x6a, 0xdb, 0xbe, 0xa8, 0xd5, 0x0a, 0x11, 0xa5, 0xc8, - 0xfe, 0xad, 0x1a, 0x4d, 0xcb, 0xfc, 0xec, 0x46, 0xa0, 0x4f, 0x38, 0x70, 0x17, 0x38, 0xb8, 0x6f, - 0x8c, 0xd0, 0xf2, 0x68, 0x90, 0xdf, 0x3b, 0xd8, 0x0b, 0xf8, 0x32, 0x7d, 0x95, 0xbe, 0xb4, 0x5c, - 0xaa, 0xad, 0x15, 0x7f, 0x39, 0x5f, 0x2c, 0x16, 0x8a, 0x05, 0xb1, 0x41, 0xdf, 0x27, 0x72, 0x56, - 0xfc, 0xfc, 0x48, 0x60, 0x71, 0xd1, 0x1d, 0x09, 0x9c, 0x08, 0xf4, 0xf6, 0xd0, 0x6e, 0xd2, 0x4e, - 0xc3, 0xfb, 0xac, 0xf5, 0x7b, 0xd9, 0x4b, 0x9e, 0x08, 0xe5, 0xef, 0xdc, 0xaf, 0x86, 0x43, 0x64, - 0xee, 0x77, 0x57, 0x21, 0x4d, 0x97, 0xde, 0xe8, 0x83, 0xf4, 0x7a, 0xcc, 0x56, 0x53, 0xa9, 0x63, - 0xb4, 0x13, 0xe1, 0x4d, 0x81, 0x75, 0x92, 0xdb, 0x7d, 0x53, 0xc0, 0x0a, 0x4a, 0xa7, 0x20, 0x4d, - 0xff, 0x5a, 0x1a, 0xff, 0x78, 0xaf, 0xe5, 0xbe, 0xcc, 0x92, 0xf0, 0x8e, 0x81, 0x81, 0x36, 0x19, - 0x66, 0x25, 0xb0, 0xc8, 0xf4, 0xc1, 0xc9, 0x9f, 0xa6, 0x68, 0xa3, 0x50, 0xb8, 0xcb, 0x80, 0x83, - 0x28, 0x8a, 0x5f, 0x4f, 0xfe, 0x75, 0x0a, 0xd2, 0xd5, 0x56, 0x53, 0x35, 0xd1, 0xef, 0x25, 0x87, - 0x82, 0x99, 0xa1, 0x68, 0x9b, 0xd8, 0x07, 0x33, 0x99, 0x7c, 0x93, 0x59, 0x12, 0xd7, 0x90, 0x99, - 0x0a, 0x61, 0xc8, 0xac, 0xe1, 0x0b, 0x26, 0x67, 0xc8, 0x94, 0xce, 0x58, 0xa7, 0x64, 0xd2, 0x3d, - 0x8e, 0xbc, 0xb1, 0xbc, 0xb4, 0x59, 0x3d, 0xce, 0xc8, 0xcc, 0xdc, 0x64, 0x9d, 0x3d, 0x01, 0xc8, - 0xcc, 0x55, 0x6a, 0xb5, 0xca, 0xb2, 0x78, 0x44, 0xca, 0x82, 0x50, 0xab, 0xac, 0x88, 0x09, 0x69, - 0x1c, 0xd2, 0xa5, 0x72, 0xb9, 0x28, 0x8b, 0x49, 0xf2, 0xb7, 0x56, 0xaa, 0x2d, 0x15, 0x45, 0x01, - 0x7d, 0x28, 0xf4, 0xd0, 0xcb, 0xd7, 0x1d, 0xa7, 0x78, 0x85, 0x1b, 0x84, 0xfd, 0xe9, 0x89, 0x5f, - 0xb8, 0xfe, 0x8d, 0x00, 0xe9, 0x65, 0x6c, 0x6c, 0x62, 0xf4, 0xe2, 0x08, 0xb6, 0xc0, 0x0d, 0xd5, - 0x68, 0xb3, 0xb3, 0x43, 0xae, 0x2d, 0xd0, 0x1b, 0x27, 0x5d, 0x09, 0x93, 0x6d, 0x5c, 0xd7, 0xb5, - 0x86, 0x9d, 0xc8, 0xba, 0x0e, 0x8a, 0x8b, 0x44, 0x8f, 0x44, 0x84, 0x8c, 0x12, 0x3a, 0x14, 0x83, - 0x5e, 0x14, 0x60, 0x7a, 0xd5, 0x1a, 0x3f, 0x30, 0xff, 0x53, 0x20, 0x99, 0x5a, 0x7b, 0xe8, 0x91, - 0xd0, 0x46, 0xda, 0xeb, 0x20, 0x43, 0xc5, 0xd4, 0x9e, 0xaf, 0xf4, 0xd6, 0xc7, 0x56, 0x1a, 0x69, - 0x0e, 0x2e, 0x6a, 0xd3, 0xe7, 0xd3, 0x71, 0x83, 0x74, 0x5d, 0xb9, 0xaf, 0x52, 0xd8, 0x9f, 0x1c, - 0xfd, 0xa5, 0x17, 0xc0, 0xdb, 0x79, 0x00, 0xaf, 0xee, 0xc1, 0x4a, 0xd2, 0x20, 0xff, 0x87, 0x64, - 0x48, 0x33, 0xaa, 0x4d, 0xdd, 0x31, 0x2e, 0xda, 0x61, 0xf2, 0x6d, 0xcb, 0xdc, 0x69, 0xd2, 0x6f, - 0x96, 0x0b, 0x8b, 0x1d, 0x96, 0x66, 0x21, 0xab, 0x68, 0x7b, 0xf4, 0x53, 0x2a, 0xa0, 0xd5, 0x76, - 0x22, 0xf4, 0x66, 0x07, 0xf9, 0xbb, 0x38, 0xe4, 0xaf, 0x0d, 0x47, 0x6e, 0xfc, 0xc0, 0xff, 0x7d, - 0x06, 0xd2, 0x2b, 0x4a, 0xdb, 0xc4, 0xe8, 0xdb, 0x42, 0x58, 0xe4, 0xaf, 0x86, 0xa9, 0x0d, 0xbd, - 0xde, 0x69, 0xe3, 0x06, 0xdf, 0x29, 0xbb, 0x62, 0x87, 0x81, 0xb9, 0x74, 0x0a, 0x44, 0x3b, 0xd2, - 0x2a, 0xd6, 0xb6, 0xd6, 0xef, 0x8b, 0xa7, 0xa7, 0x94, 0xdb, 0x2b, 0x8a, 0x61, 0x56, 0x36, 0x68, - 0x9c, 0x73, 0x4a, 0xd9, 0x1b, 0xc9, 0x41, 0x9f, 0x09, 0x80, 0x3e, 0xeb, 0x0f, 0xfd, 0x58, 0x08, - 0xe8, 0xa5, 0x1c, 0x8c, 0x6d, 0xa8, 0x4d, 0x4c, 0x33, 0x8c, 0xf7, 0xb8, 0xdf, 0xca, 0xda, 0x9e, - 0x20, 0xbc, 0x77, 0xc6, 0xa4, 0x79, 0xb5, 0x89, 0x65, 0x27, 0x1b, 0x5a, 0x62, 0x9b, 0xfd, 0xce, - 0x9d, 0xf5, 0x09, 0xcf, 0x9d, 0xf5, 0x12, 0xa4, 0x1a, 0x8a, 0xa9, 0x50, 0xd6, 0x1f, 0x95, 0xe9, - 0x7f, 0x7e, 0xef, 0x48, 0xe8, 0xde, 0x3b, 0x7a, 0x48, 0x88, 0xa6, 0xff, 0x6c, 0xd2, 0x7c, 0xfa, - 0xcf, 0xba, 0x0d, 0x07, 0xf3, 0x02, 0x73, 0xc2, 0x04, 0x86, 0xba, 0x62, 0x60, 0x73, 0xc5, 0xbb, - 0x3d, 0x93, 0x96, 0xf9, 0x48, 0xba, 0xe3, 0xdd, 0xae, 0x2a, 0x3b, 0x98, 0x56, 0x96, 0x27, 0xdf, - 0xac, 0x3d, 0xce, 0x7d, 0xf1, 0xae, 0xb6, 0x4d, 0x0f, 0x5b, 0xdb, 0xf6, 0x6a, 0x63, 0xfc, 0x9d, - 0xee, 0xad, 0x29, 0x10, 0xf2, 0x1d, 0xf3, 0x69, 0xad, 0x6c, 0xff, 0x31, 0xf4, 0xe6, 0x97, 0xa5, - 0xbd, 0x3a, 0xe6, 0xe1, 0xea, 0xda, 0x88, 0x52, 0x12, 0x6e, 0x93, 0xcd, 0xaf, 0x6d, 0x23, 0x39, - 0xa0, 0x63, 0xfb, 0x21, 0xe8, 0x07, 0x9f, 0x87, 0x23, 0xa6, 0x8c, 0x3c, 0x8a, 0xc1, 0x09, 0xdb, - 0x46, 0x81, 0x94, 0x6b, 0x57, 0x7a, 0x63, 0x68, 0x4f, 0x20, 0xc6, 0x9f, 0x40, 0xa7, 0x80, 0x68, - 0x53, 0xa5, 0x70, 0xb7, 0xbf, 0x05, 0x54, 0x1b, 0x3f, 0x32, 0x3f, 0xf6, 0x5a, 0x0f, 0x72, 0x07, - 0xc6, 0x86, 0x37, 0xdb, 0x07, 0x5a, 0x98, 0x59, 0xb3, 0xfb, 0x18, 0x15, 0xa2, 0xf1, 0x3b, 0x9c, - 0xfd, 0x39, 0xb0, 0xe2, 0x11, 0x1c, 0x89, 0x12, 0x20, 0xc3, 0xf6, 0x0f, 0xd0, 0x7b, 0x43, 0xab, - 0x4c, 0xa2, 0x76, 0x78, 0x07, 0x02, 0x27, 0x1c, 0xc5, 0x94, 0xc0, 0x39, 0x1a, 0xa4, 0x22, 0x39, - 0x1a, 0xf0, 0xfe, 0xc2, 0x21, 0xfa, 0x51, 0xcf, 0xb7, 0xf5, 0x87, 0xbd, 0x4a, 0x8c, 0xd2, 0xc3, - 0x0e, 0xe9, 0xb1, 0xff, 0x9f, 0xf2, 0xb7, 0x92, 0xe5, 0x23, 0x40, 0xee, 0x37, 0x2b, 0x89, 0x70, - 0x4b, 0x39, 0x6b, 0xfa, 0x90, 0x2f, 0x2c, 0x0b, 0x77, 0x10, 0xa0, 0x4f, 0xd5, 0xf1, 0x73, 0xfe, - 0x6d, 0xec, 0xf2, 0xf8, 0x79, 0x15, 0x37, 0x1b, 0x6d, 0x64, 0x1c, 0x7c, 0xe0, 0xb9, 0x01, 0x32, - 0x1b, 0xb4, 0xb0, 0x7e, 0x2f, 0xb2, 0x5b, 0xc9, 0xd0, 0x5b, 0x93, 0x61, 0x0d, 0xeb, 0x96, 0x21, - 0xc3, 0xa6, 0x76, 0x28, 0x30, 0xbd, 0x2d, 0x94, 0x61, 0x3b, 0xb8, 0xe6, 0xf8, 0x51, 0xfa, 0x80, - 0x00, 0x47, 0xad, 0xdb, 0xc0, 0x72, 0x4d, 0x75, 0x53, 0xf3, 0x1e, 0x4d, 0x1b, 0xb8, 0x87, 0x48, - 0x37, 0x42, 0x5a, 0x21, 0xa5, 0x59, 0xee, 0x54, 0xa8, 0xa7, 0x96, 0xa3, 0xf5, 0xc9, 0x2c, 0x61, - 0x84, 0x9b, 0x20, 0x5c, 0xc1, 0xb6, 0x69, 0x1e, 0xe1, 0x4d, 0x10, 0x7d, 0x2b, 0x8f, 0x1f, 0xb1, - 0xef, 0x08, 0x70, 0xdc, 0x22, 0xe0, 0x2c, 0x36, 0x4c, 0xb5, 0xae, 0x34, 0x19, 0x72, 0xaf, 0x4c, - 0x0c, 0x03, 0xba, 0x45, 0x98, 0xdc, 0xf5, 0x16, 0x6b, 0x41, 0x38, 0xd3, 0x13, 0x42, 0x8e, 0x00, - 0x99, 0xcf, 0x18, 0xe1, 0x44, 0x3d, 0xc7, 0x55, 0xae, 0xcc, 0x11, 0x9e, 0xa8, 0x0f, 0x4d, 0x44, - 0xfc, 0x10, 0xff, 0x6e, 0x8a, 0x5d, 0x32, 0xe1, 0xaa, 0xcf, 0xaf, 0x87, 0xc6, 0x76, 0x15, 0x26, - 0x28, 0x96, 0x2c, 0xa3, 0xb5, 0xc6, 0x0b, 0x10, 0x62, 0x47, 0xef, 0x58, 0x37, 0x60, 0x39, 0x79, - 0x65, 0x6f, 0x39, 0xe8, 0x1c, 0x80, 0xfb, 0xc9, 0xab, 0xa4, 0x13, 0x7e, 0x4a, 0x3a, 0x19, 0x4e, - 0x49, 0xbf, 0x27, 0xf4, 0x41, 0xa8, 0xde, 0x64, 0x1f, 0x5c, 0x3c, 0xc2, 0x1d, 0x81, 0xe9, 0x5f, - 0x7b, 0xfc, 0x72, 0xf1, 0xe6, 0x54, 0xf7, 0x7d, 0xb5, 0x9f, 0x19, 0xca, 0x1c, 0xd6, 0xab, 0x0f, - 0x84, 0x2e, 0x7d, 0x30, 0xf8, 0x9c, 0x55, 0xba, 0x06, 0x8e, 0xb1, 0x2a, 0xf2, 0x0e, 0x59, 0xec, - 0x59, 0xc3, 0xee, 0x68, 0xf4, 0xd9, 0x01, 0x84, 0xa0, 0xdf, 0x65, 0xba, 0x41, 0x4a, 0x2e, 0xda, - 0x34, 0x37, 0xaa, 0x80, 0x1c, 0xde, 0x1d, 0xbc, 0x3f, 0x48, 0xb1, 0xd9, 0xee, 0x2a, 0xbd, 0x39, - 0x0e, 0xfd, 0x55, 0x6a, 0x18, 0x23, 0xc2, 0xdd, 0x90, 0x32, 0xed, 0xe7, 0x57, 0x7b, 0x2f, 0x23, - 0xdd, 0x2a, 0xdd, 0x3b, 0xe7, 0xf0, 0x05, 0x73, 0xf1, 0x88, 0x4c, 0x73, 0x4a, 0xa7, 0xe0, 0xd8, - 0xba, 0x52, 0xdf, 0xde, 0x34, 0xf4, 0x8e, 0xd6, 0xc8, 0xeb, 0x4d, 0xdd, 0x60, 0x26, 0x02, 0x7a, - 0xbf, 0x1e, 0xff, 0x41, 0x3a, 0x6d, 0x4f, 0x1d, 0xd2, 0xfd, 0xa6, 0x0e, 0x8b, 0x47, 0xac, 0xc9, - 0x83, 0x74, 0x93, 0xa3, 0x74, 0x32, 0x81, 0x4a, 0x67, 0xf1, 0x88, 0xad, 0x76, 0xa4, 0x02, 0x8c, - 0x35, 0xd4, 0x5d, 0xba, 0xeb, 0x47, 0xcd, 0xb3, 0xfd, 0x0e, 0x56, 0x14, 0xd4, 0x5d, 0xb6, 0x47, - 0xb8, 0x78, 0x44, 0x76, 0x72, 0x4a, 0x0b, 0x30, 0x4e, 0x2d, 0xac, 0xb4, 0x98, 0xb1, 0x48, 0x87, - 0x26, 0x16, 0x8f, 0xc8, 0x6e, 0x5e, 0x32, 0xfb, 0x48, 0x51, 0x77, 0xe4, 0xbb, 0xec, 0x9d, 0xcb, - 0x44, 0xa4, 0x9d, 0x4b, 0xc2, 0x0b, 0xb6, 0x77, 0x79, 0x02, 0xd2, 0x75, 0xca, 0xe1, 0xa4, 0xc5, - 0x61, 0x16, 0x94, 0x6e, 0x87, 0xd4, 0x8e, 0x62, 0xd8, 0xcb, 0xd4, 0xab, 0xfb, 0x97, 0xbb, 0xac, - 0x18, 0xdb, 0x04, 0x41, 0x92, 0x6b, 0x2e, 0x0b, 0x69, 0xca, 0x38, 0xe7, 0x0f, 0x7a, 0xd2, 0x9a, - 0x86, 0xe4, 0x75, 0x8d, 0x0c, 0xfb, 0x35, 0xdd, 0xf6, 0xd9, 0xae, 0x0f, 0x43, 0xe6, 0x78, 0xff, - 0x44, 0x61, 0x9f, 0x7f, 0xe2, 0x5f, 0x0e, 0x30, 0xb7, 0xe8, 0xa6, 0xd4, 0x7f, 0x71, 0xdc, 0xe4, - 0x9e, 0x2a, 0xb7, 0x83, 0x11, 0xb5, 0x46, 0xd4, 0x59, 0x47, 0x1f, 0xf2, 0x46, 0xf0, 0xb2, 0x7c, - 0x0a, 0xa6, 0x09, 0x21, 0xcc, 0x73, 0x97, 0xbf, 0x76, 0x12, 0xfd, 0xf9, 0x50, 0x26, 0x97, 0x3d, - 0x46, 0x04, 0xa1, 0xe7, 0x88, 0xb0, 0xef, 0xdc, 0x46, 0xaa, 0xcf, 0xb9, 0x8d, 0x74, 0x34, 0x73, - 0xca, 0x1f, 0x7b, 0xe5, 0x67, 0x85, 0x97, 0x9f, 0x5b, 0x7d, 0x00, 0xea, 0xc5, 0x97, 0xa1, 0x4c, - 0x40, 0x3e, 0xe8, 0x48, 0x4a, 0x95, 0x93, 0x94, 0xbb, 0x06, 0x27, 0x24, 0x7e, 0x69, 0xf9, 0x64, - 0x0a, 0x9e, 0xe1, 0x12, 0x53, 0xc6, 0xe7, 0x2d, 0x41, 0xf9, 0xea, 0x50, 0x04, 0xe5, 0x26, 0xf7, - 0x41, 0x97, 0x3e, 0x8b, 0x7d, 0x3b, 0x5d, 0xdc, 0x12, 0xf3, 0x17, 0xa1, 0xfd, 0xcd, 0xbb, 0x81, - 0x72, 0x78, 0xe3, 0x23, 0x2c, 0x27, 0x20, 0xc3, 0x34, 0x8c, 0xfd, 0xbc, 0x34, 0x0b, 0x45, 0x54, - 0x37, 0xe1, 0xbc, 0xd4, 0xc3, 0xd2, 0x36, 0x02, 0xf9, 0xb1, 0x0c, 0x0f, 0xb5, 0x8e, 0xa1, 0x95, - 0x34, 0x53, 0x47, 0xbf, 0x31, 0x14, 0xc1, 0x71, 0x3c, 0x7f, 0x84, 0x41, 0x3c, 0x7f, 0x06, 0x32, - 0x43, 0xd8, 0x2d, 0x38, 0x14, 0x33, 0x84, 0x4f, 0xe5, 0xf1, 0xe3, 0xf7, 0xb8, 0x00, 0x27, 0xac, - 0xd5, 0xd0, 0x1c, 0x3f, 0x85, 0x43, 0xf7, 0x0d, 0x03, 0xc8, 0xe3, 0xf6, 0x3c, 0x86, 0x0d, 0x10, - 0x2c, 0xc0, 0x7b, 0x84, 0x07, 0xde, 0xa1, 0xc8, 0xad, 0xd7, 0xba, 0x28, 0x1c, 0x0a, 0x52, 0xe1, - 0xae, 0x4e, 0x8c, 0x40, 0x46, 0xfc, 0x98, 0xbd, 0x46, 0x80, 0x8c, 0x75, 0x2b, 0xfc, 0x6a, 0x2c, - 0xdb, 0xc5, 0xfc, 0x7d, 0x39, 0x21, 0xb6, 0x29, 0x22, 0x5f, 0xc7, 0x1e, 0xdf, 0x06, 0xc5, 0xe1, - 0xdc, 0xb7, 0x8e, 0x1e, 0x11, 0x2c, 0xcb, 0xca, 0x92, 0x62, 0xe2, 0x0b, 0xe8, 0xb7, 0x04, 0xc8, - 0x56, 0xb1, 0x49, 0x34, 0x53, 0x78, 0x8c, 0xfc, 0x6d, 0xe6, 0x92, 0x67, 0xed, 0x36, 0xce, 0x56, - 0x63, 0x51, 0x75, 0x1c, 0xa5, 0x6b, 0xd6, 0xa2, 0x69, 0xd4, 0x3a, 0x2e, 0xa8, 0xf2, 0x11, 0x9c, - 0x4e, 0xbd, 0x12, 0xc6, 0x29, 0x19, 0x14, 0x8e, 0xcf, 0x79, 0xa0, 0x79, 0x5d, 0x22, 0x16, 0x6c, - 0xc8, 0xf0, 0x45, 0xaf, 0x4e, 0xa7, 0xb3, 0x97, 0x89, 0x30, 0xc3, 0x17, 0x59, 0xa6, 0xb5, 0x65, - 0x96, 0x2b, 0xc2, 0x5b, 0x3a, 0x4e, 0xb3, 0x86, 0x8a, 0x6c, 0xb8, 0x47, 0x0e, 0xfa, 0xd5, 0x3d, - 0x82, 0x27, 0x32, 0x04, 0x18, 0xab, 0x92, 0xe5, 0x06, 0x19, 0x53, 0xce, 0x1d, 0x1c, 0xca, 0xde, - 0x83, 0x55, 0xc4, 0x8e, 0x66, 0x73, 0x64, 0x78, 0x43, 0x54, 0x84, 0x8e, 0x16, 0x54, 0x79, 0xfc, - 0x78, 0x7c, 0x88, 0xe1, 0x41, 0x65, 0x19, 0xbd, 0x53, 0x00, 0x61, 0x01, 0x9b, 0x43, 0xf2, 0xf3, - 0x0f, 0xeb, 0x33, 0xce, 0x0f, 0x5d, 0x81, 0x47, 0xbb, 0x39, 0x86, 0x51, 0x9a, 0x67, 0x17, 0xf0, - 0x70, 0x3a, 0x50, 0xb8, 0x33, 0xdd, 0xa1, 0x08, 0x88, 0x1f, 0xb5, 0x8f, 0x31, 0xd4, 0x98, 0x05, - 0xeb, 0xd7, 0x87, 0xa0, 0x11, 0x47, 0x3b, 0x79, 0xb7, 0x19, 0x48, 0xcb, 0x38, 0xac, 0xfe, 0xd6, - 0xab, 0xf2, 0x91, 0x78, 0x84, 0x01, 0xe9, 0xec, 0x5b, 0xb8, 0xbe, 0x8d, 0x1b, 0xe8, 0xff, 0x3b, - 0x38, 0x74, 0xd3, 0x90, 0xad, 0xb3, 0xd2, 0x28, 0x78, 0x63, 0xb2, 0x1d, 0x8c, 0xf0, 0x92, 0x35, - 0xaf, 0x88, 0x58, 0xf6, 0x11, 0xbe, 0x64, 0x1d, 0xa2, 0xfa, 0xf8, 0x91, 0xf9, 0x43, 0x36, 0xc9, - 0x28, 0xd5, 0x75, 0x0d, 0xfd, 0xab, 0x83, 0xc3, 0x72, 0x29, 0x8c, 0xab, 0x75, 0x5d, 0x2b, 0xed, - 0x28, 0x9b, 0xb6, 0x19, 0xd5, 0x8d, 0xb0, 0xbf, 0x16, 0x77, 0xf4, 0xfb, 0x55, 0x6b, 0x6b, 0xc6, - 0x8d, 0x18, 0x74, 0x32, 0x41, 0x48, 0x3f, 0xac, 0xc9, 0x44, 0x8f, 0xba, 0xe3, 0x87, 0xec, 0xb3, - 0xae, 0x0b, 0x05, 0x53, 0x85, 0x4f, 0x0b, 0x4b, 0xc6, 0x20, 0xc3, 0x99, 0xb7, 0x15, 0x87, 0x32, - 0x9c, 0x05, 0x10, 0x10, 0x3f, 0x8e, 0x6f, 0x74, 0x71, 0x8c, 0xdd, 0x8e, 0x71, 0x00, 0x74, 0x86, - 0x37, 0x3d, 0x1c, 0x10, 0x9d, 0xc3, 0x99, 0x22, 0x3e, 0x61, 0x5d, 0x0d, 0x64, 0xcd, 0x78, 0xd0, - 0xaf, 0x0d, 0x03, 0x9c, 0x5b, 0x07, 0xd9, 0x14, 0x63, 0x5b, 0x62, 0x11, 0x5e, 0x4e, 0xd9, 0xc7, - 0x41, 0x52, 0xca, 0x50, 0x10, 0x0c, 0xf7, 0x72, 0x4a, 0x98, 0xfa, 0xe3, 0x07, 0xf0, 0x15, 0x02, - 0x4c, 0xd1, 0x7d, 0xae, 0x26, 0x56, 0x0c, 0xa6, 0x28, 0x87, 0xe2, 0x8d, 0xf9, 0xa1, 0xd0, 0x97, - 0x9a, 0xf3, 0x7c, 0x70, 0xe9, 0x18, 0x0a, 0x14, 0xe1, 0xde, 0xdf, 0x0c, 0x49, 0xc2, 0x48, 0x4c, - 0x81, 0xa2, 0x43, 0x82, 0x25, 0xe2, 0xc3, 0xc1, 0x23, 0xa2, 0xdb, 0x17, 0xcf, 0x0c, 0xbb, 0xb3, - 0x8d, 0xd8, 0xed, 0x2b, 0x0c, 0x11, 0x23, 0xb8, 0x3a, 0xfb, 0x46, 0xcb, 0x14, 0x58, 0xa3, 0x0f, - 0x0b, 0x3d, 0x9a, 0x72, 0x5c, 0xd5, 0xbf, 0x34, 0x14, 0x37, 0x9f, 0x03, 0xdc, 0x73, 0x27, 0x41, - 0xca, 0xd0, 0xcf, 0x33, 0xb3, 0xd4, 0xa4, 0x4c, 0xff, 0xd3, 0x29, 0xbf, 0xde, 0xec, 0xec, 0x68, - 0x6d, 0x3a, 0x77, 0x9c, 0x94, 0xed, 0xa0, 0x74, 0x25, 0x4c, 0x9e, 0x57, 0xcd, 0xad, 0x45, 0xac, - 0x34, 0xb0, 0x21, 0xeb, 0xe7, 0xad, 0xe7, 0x3b, 0xf9, 0x48, 0x7e, 0x0f, 0x36, 0xc4, 0xfc, 0x92, - 0xbe, 0x36, 0x34, 0x12, 0xbf, 0xf6, 0x28, 0x33, 0x4f, 0x7f, 0xaa, 0xe2, 0x17, 0x98, 0x8f, 0x0b, - 0x30, 0x2e, 0xeb, 0xe7, 0x2d, 0x21, 0xf9, 0xd7, 0x87, 0x2b, 0x23, 0x91, 0x17, 0x7a, 0xec, 0xf5, - 0x28, 0x9b, 0xfc, 0x91, 0x2f, 0xf4, 0x02, 0xab, 0x1f, 0x89, 0x7b, 0xfc, 0x51, 0x59, 0x3f, 0x5f, - 0xc5, 0x26, 0xeb, 0x11, 0x68, 0x6d, 0x48, 0x9e, 0x7c, 0x6a, 0x9b, 0x15, 0x68, 0xad, 0xc3, 0x9d, - 0x30, 0x7a, 0x3c, 0xf4, 0xa3, 0x3c, 0x3c, 0x83, 0x1c, 0x12, 0x87, 0x02, 0xd1, 0xfb, 0x42, 0xbd, - 0xc5, 0x13, 0x8e, 0x82, 0xf8, 0x51, 0x7a, 0xa9, 0x00, 0x13, 0xb2, 0x7e, 0x9e, 0x0c, 0x0d, 0xf3, - 0x6a, 0xb3, 0x39, 0x9c, 0x11, 0x32, 0xea, 0xe4, 0xdf, 0x66, 0x83, 0x4d, 0xc5, 0xc8, 0x27, 0xff, - 0x7d, 0x08, 0x88, 0x1f, 0x86, 0x87, 0x58, 0x67, 0xb1, 0x47, 0x68, 0x6d, 0x38, 0x38, 0x0c, 0xda, - 0x21, 0x1c, 0x32, 0x0e, 0xad, 0x43, 0xf8, 0x51, 0x30, 0x92, 0x9d, 0x93, 0xa9, 0x3c, 0x1d, 0xe6, - 0x87, 0xdb, 0x27, 0x3e, 0x12, 0xcd, 0xbd, 0xc6, 0x1a, 0x76, 0x39, 0x42, 0x86, 0x82, 0x46, 0x04, - 0x37, 0x9a, 0x10, 0x34, 0xc4, 0x8f, 0xc7, 0x9f, 0x08, 0x70, 0x94, 0x91, 0xf0, 0x34, 0x99, 0x05, - 0x0c, 0xd4, 0xa9, 0xbc, 0x2d, 0x38, 0x9c, 0x4e, 0x15, 0x40, 0x41, 0xfc, 0x20, 0xfe, 0x9f, 0x24, - 0x9d, 0xc7, 0x0d, 0x70, 0x46, 0xd1, 0x0f, 0xc1, 0x81, 0x27, 0x63, 0x43, 0x3c, 0xa7, 0x38, 0xc8, - 0x64, 0xec, 0x90, 0xce, 0x2a, 0x3e, 0xe4, 0xf4, 0xa2, 0x61, 0x62, 0x70, 0x80, 0xae, 0x30, 0x44, - 0x18, 0x06, 0xec, 0x0a, 0x87, 0x84, 0xc4, 0x77, 0x05, 0x00, 0x46, 0xc0, 0xb2, 0xbe, 0x8b, 0xd1, - 0x63, 0x43, 0x59, 0xf8, 0x76, 0xbb, 0x86, 0x0a, 0x7d, 0x5c, 0x43, 0x23, 0x9e, 0xcd, 0x8e, 0x6a, - 0x09, 0xf4, 0x70, 0x79, 0xd9, 0xf7, 0x51, 0xc4, 0x18, 0x2d, 0x81, 0xc1, 0xf5, 0xc7, 0x8f, 0xf1, - 0xb7, 0xd8, 0x6c, 0xce, 0x3d, 0xc5, 0xf4, 0x86, 0xa1, 0xa0, 0xec, 0x59, 0xfd, 0x0b, 0xfc, 0xea, - 0xff, 0x00, 0xd8, 0x0e, 0x3a, 0x47, 0xec, 0x77, 0x3a, 0x29, 0xfe, 0x39, 0xe2, 0xe1, 0x9d, 0x42, - 0xfa, 0xf5, 0x14, 0x1c, 0xb3, 0x94, 0xc8, 0x3f, 0x05, 0x88, 0x23, 0x9e, 0x25, 0xe1, 0x94, 0x64, - 0x1f, 0x94, 0x87, 0x65, 0x90, 0x8a, 0x62, 0xca, 0x0c, 0x41, 0xde, 0x48, 0xac, 0x1b, 0x99, 0xe2, - 0x85, 0x96, 0xa2, 0x35, 0xc2, 0x5f, 0xcf, 0xd7, 0x07, 0x78, 0xdb, 0xd6, 0x28, 0xf0, 0xb6, 0xc6, - 0x1e, 0x96, 0xc9, 0xc8, 0x3b, 0xd7, 0x94, 0x65, 0x8c, 0xdc, 0x91, 0xef, 0x5c, 0xfb, 0xd7, 0x1d, - 0x3f, 0x4a, 0x1f, 0x11, 0x20, 0x55, 0xd5, 0x0d, 0x13, 0x3d, 0x1c, 0xa5, 0x77, 0x32, 0xce, 0xbb, - 0x20, 0xd9, 0x61, 0x29, 0xcf, 0x3d, 0x54, 0x74, 0x43, 0xf0, 0x79, 0x3a, 0xc5, 0x54, 0xe8, 0xe5, - 0xcd, 0xa4, 0x7e, 0xcf, 0x8b, 0x45, 0x51, 0x2f, 0x6d, 0x60, 0xfc, 0xab, 0xfa, 0x3b, 0x11, 0xc7, - 0x76, 0x69, 0x83, 0x6f, 0xcd, 0x23, 0xb0, 0xfb, 0x4e, 0x58, 0x7e, 0xa9, 0xf4, 0xfd, 0xb6, 0x87, - 0x99, 0xcb, 0x48, 0x59, 0xd9, 0xc1, 0x43, 0x72, 0x19, 0xa6, 0x37, 0xc4, 0x09, 0xee, 0x0d, 0x71, - 0x51, 0x3b, 0x14, 0x3b, 0xe5, 0xc8, 0x48, 0x1a, 0x75, 0x87, 0x0a, 0xa8, 0x3b, 0x7e, 0x60, 0xbe, - 0x41, 0x46, 0x3e, 0xba, 0x86, 0xcc, 0x69, 0x0d, 0xeb, 0xca, 0xad, 0xbf, 0x3f, 0xec, 0xbd, 0x9b, - 0x7d, 0x97, 0x72, 0xf1, 0x97, 0xfb, 0xa5, 0xbb, 0xdf, 0x1b, 0x9b, 0x63, 0x17, 0x7c, 0xd1, 0x93, - 0x97, 0x99, 0x48, 0x6f, 0x8e, 0x39, 0xf9, 0xd0, 0x93, 0xd1, 0xcc, 0x39, 0xb4, 0x88, 0x2e, 0xc6, - 0xc5, 0x3c, 0xa4, 0x46, 0x30, 0xf4, 0x84, 0xa0, 0xee, 0x9f, 0x87, 0x97, 0xd1, 0xfe, 0x27, 0xdf, - 0x22, 0x9a, 0xb2, 0x9d, 0x87, 0xfa, 0x0e, 0xcb, 0xcb, 0xa8, 0x1f, 0x01, 0xf1, 0xe3, 0xf8, 0x64, - 0xda, 0xda, 0xe4, 0xa5, 0x2e, 0x78, 0xe8, 0x9b, 0xc9, 0xd8, 0x95, 0x77, 0xf8, 0x47, 0x4e, 0x5d, - 0xba, 0x82, 0xb5, 0x77, 0x14, 0x47, 0xd7, 0xa0, 0xe2, 0x46, 0x60, 0x4e, 0x48, 0x52, 0x17, 0xe5, - 0x73, 0x6a, 0xc3, 0xdc, 0x1a, 0x92, 0xa3, 0xff, 0x79, 0x52, 0x96, 0xfd, 0x5a, 0x18, 0x0d, 0xa0, - 0x9f, 0x27, 0x22, 0x5d, 0x5f, 0xe1, 0xb0, 0x84, 0x92, 0xe5, 0xc3, 0xe2, 0x08, 0x97, 0x4e, 0x04, - 0x96, 0x37, 0x42, 0x89, 0x3e, 0xab, 0x36, 0xb0, 0xfe, 0x34, 0x94, 0x68, 0x4a, 0xd7, 0xf0, 0x24, - 0x3a, 0xa8, 0xb8, 0x7f, 0xa6, 0x12, 0xed, 0xb0, 0x64, 0x48, 0x12, 0x1d, 0x58, 0xde, 0x08, 0x6e, - 0xb2, 0x06, 0x6b, 0x7e, 0xbd, 0xa4, 0x6a, 0xdb, 0xe8, 0xf3, 0x69, 0xfb, 0x9d, 0xb2, 0x73, 0xaa, - 0xb9, 0x65, 0x1d, 0x73, 0xff, 0x6c, 0xe8, 0x17, 0x0d, 0x06, 0x38, 0xca, 0x7e, 0x12, 0xc0, 0xb4, - 0xde, 0x0f, 0x72, 0xee, 0xcc, 0xf1, 0xc4, 0x48, 0x39, 0x98, 0x54, 0x35, 0x13, 0x1b, 0x9a, 0xd2, - 0x9c, 0x6f, 0x2a, 0x9b, 0xed, 0xe9, 0x2c, 0x3d, 0x9a, 0x79, 0x49, 0xd7, 0xe0, 0x5d, 0xf2, 0xa4, - 0x91, 0xf9, 0x1c, 0xa1, 0xe7, 0x9a, 0x11, 0xaf, 0xfc, 0xb9, 0x21, 0xe4, 0x4d, 0x2c, 0xce, 0xf5, - 0x4f, 0x3f, 0x8a, 0x66, 0x7c, 0x21, 0x80, 0xcc, 0x76, 0x83, 0x11, 0x79, 0xa6, 0xe8, 0x6d, 0xbc, - 0xd0, 0xd5, 0x78, 0x67, 0xea, 0x91, 0x1a, 0xb2, 0x61, 0x26, 0x0c, 0xe9, 0x23, 0x38, 0xf9, 0x91, - 0x86, 0x8b, 0xec, 0xeb, 0xeb, 0x5a, 0x2d, 0xac, 0x18, 0x8a, 0x56, 0xc7, 0x11, 0xa4, 0x39, 0x68, - 0x2e, 0x39, 0x0f, 0x63, 0x6a, 0x5d, 0xd7, 0xaa, 0xea, 0x4b, 0xec, 0x87, 0x37, 0x4e, 0x05, 0x4e, - 0x27, 0x29, 0x47, 0x4a, 0x56, 0x0e, 0xd9, 0xc9, 0x2b, 0x95, 0x60, 0xbc, 0xae, 0x18, 0x8d, 0xaa, - 0xe7, 0x29, 0xe2, 0x6b, 0xfb, 0x17, 0x94, 0xb7, 0xb3, 0xc8, 0x6e, 0x6e, 0xa9, 0xc2, 0x33, 0x31, - 0xd3, 0x75, 0xfa, 0xd7, 0xb7, 0xb0, 0x82, 0x9b, 0x89, 0xe3, 0x39, 0xe1, 0x8e, 0x81, 0x9b, 0xf4, - 0x9d, 0x43, 0xd6, 0xed, 0xc6, 0x65, 0x37, 0x02, 0x7d, 0xdc, 0x2b, 0xcd, 0xcb, 0xbc, 0x34, 0xbf, - 0xc8, 0x47, 0x24, 0xf6, 0xa1, 0x31, 0x94, 0x39, 0xf1, 0x07, 0x1c, 0xc1, 0x5c, 0xe1, 0x04, 0xf3, - 0xf6, 0x01, 0xa9, 0x88, 0x5f, 0x32, 0x3f, 0x98, 0x81, 0x49, 0x76, 0x98, 0xdc, 0x62, 0x27, 0x7a, - 0x05, 0x7d, 0x5a, 0xcb, 0xbc, 0x17, 0xef, 0xa1, 0xea, 0xc1, 0x07, 0x3a, 0x11, 0x84, 0x6d, 0xbc, - 0x67, 0xf5, 0x77, 0xf2, 0x37, 0xea, 0x1e, 0xa9, 0x4d, 0xd7, 0x2c, 0xa3, 0x69, 0xd4, 0x7b, 0xa4, - 0xc1, 0xd5, 0xc7, 0x8f, 0xcf, 0x6b, 0x05, 0x10, 0x72, 0x8d, 0x46, 0xf8, 0xfb, 0x9d, 0xfc, 0xa1, - 0xb8, 0x1c, 0x26, 0xec, 0x3e, 0x73, 0xaf, 0x03, 0x89, 0x37, 0x2a, 0xaa, 0xc1, 0xc9, 0xe1, 0x4d, - 0xae, 0x31, 0x72, 0x0b, 0x6e, 0x40, 0xdd, 0xf1, 0x83, 0xf2, 0x86, 0xac, 0xd5, 0x69, 0xe6, 0x74, - 0x7d, 0x9b, 0x1e, 0x4b, 0x78, 0x58, 0x80, 0xf4, 0x3c, 0x36, 0xeb, 0x5b, 0x43, 0xea, 0x33, 0x1d, - 0xa3, 0x69, 0xf7, 0x99, 0x7d, 0xef, 0x04, 0xf6, 0x9f, 0x18, 0xda, 0x64, 0xcd, 0x52, 0x92, 0x46, - 0x7d, 0x5d, 0x63, 0x60, 0xed, 0xf1, 0x83, 0xf3, 0x73, 0x01, 0xa6, 0x1c, 0xb3, 0x11, 0xc3, 0xe4, - 0xb7, 0x9f, 0x76, 0xc6, 0x40, 0xf4, 0xd5, 0x68, 0x57, 0xaa, 0x38, 0x3c, 0xe5, 0x5b, 0x16, 0xb3, - 0xb5, 0x2e, 0xc2, 0x65, 0x2b, 0xe1, 0x08, 0x1c, 0xc1, 0xb2, 0x58, 0x80, 0x31, 0x4a, 0x50, 0x41, - 0xdd, 0xa5, 0x6e, 0x5a, 0x9c, 0xf5, 0xee, 0x81, 0xa1, 0x58, 0xef, 0x6e, 0xe7, 0xad, 0x77, 0x21, - 0xaf, 0x30, 0xb4, 0x8d, 0x77, 0x11, 0xfd, 0x16, 0x48, 0xfe, 0xa1, 0xdb, 0xee, 0x22, 0xf8, 0x2d, - 0xf4, 0xa9, 0x7f, 0x04, 0x0f, 0xaa, 0x9e, 0xb2, 0x94, 0xad, 0xbd, 0x79, 0x85, 0x1e, 0x90, 0x20, - 0x75, 0x96, 0xfc, 0xf9, 0xa6, 0xfb, 0xac, 0xc0, 0x03, 0x43, 0x38, 0x08, 0x7f, 0x27, 0xa4, 0xe8, - 0xd3, 0xa9, 0xa9, 0xae, 0x2b, 0x37, 0x03, 0x77, 0xd2, 0x08, 0x21, 0x32, 0xcd, 0x17, 0xf5, 0xb2, - 0x32, 0xae, 0x88, 0xd9, 0xe1, 0xb9, 0xe1, 0x49, 0x27, 0x20, 0x43, 0xca, 0x75, 0x96, 0x59, 0x56, - 0x28, 0x8a, 0xf1, 0x3d, 0x04, 0x6d, 0xf1, 0x23, 0xff, 0x4d, 0xfa, 0x82, 0x0a, 0xbd, 0x53, 0xf5, - 0x91, 0x21, 0xc0, 0xeb, 0xc3, 0x96, 0x03, 0xc3, 0xfe, 0x91, 0x83, 0xc0, 0xee, 0x5c, 0xe0, 0x3a, - 0x52, 0x27, 0xda, 0x10, 0x34, 0x8c, 0xe4, 0xe4, 0x6f, 0xc6, 0x72, 0xfc, 0xbb, 0x6f, 0x98, 0xe8, - 0xa6, 0x38, 0xa1, 0x3f, 0x10, 0x3a, 0x43, 0x74, 0x08, 0x1c, 0x18, 0x9d, 0x43, 0x72, 0x09, 0xfc, - 0x53, 0x01, 0x26, 0xaa, 0xee, 0x73, 0x5f, 0xe1, 0x5f, 0x28, 0x88, 0x0c, 0x11, 0x19, 0x6b, 0xb9, - 0xfb, 0x21, 0x27, 0x07, 0xbf, 0x32, 0x94, 0x67, 0x9d, 0x87, 0xfe, 0x51, 0x5f, 0x19, 0x1a, 0x96, - 0x90, 0xf8, 0x81, 0xfc, 0x32, 0x7b, 0x11, 0x24, 0x57, 0x37, 0xd5, 0x5d, 0x8c, 0x1e, 0x8a, 0x51, - 0x91, 0x9e, 0x80, 0x8c, 0xbe, 0xb1, 0xd1, 0xb6, 0xde, 0x81, 0x9b, 0x94, 0xad, 0x90, 0xfb, 0x00, - 0x37, 0x03, 0xd7, 0x7a, 0x80, 0x3b, 0xe2, 0xa5, 0x82, 0xfb, 0x18, 0xca, 0x1a, 0x34, 0xea, 0x4b, - 0x05, 0xc3, 0x91, 0x31, 0x82, 0x6b, 0x83, 0x81, 0x70, 0xcf, 0x32, 0xd9, 0xbc, 0xd3, 0x32, 0x12, - 0xe0, 0x83, 0x63, 0x3b, 0x03, 0x47, 0x3d, 0x16, 0x01, 0xfb, 0x62, 0x7a, 0x2e, 0x2e, 0xea, 0x59, - 0x63, 0x87, 0x65, 0x43, 0xb7, 0x17, 0x44, 0xb0, 0x03, 0x87, 0x21, 0x62, 0x24, 0xef, 0xbe, 0xd8, - 0x43, 0xde, 0x88, 0xb0, 0xfa, 0xa4, 0x17, 0xab, 0x0a, 0x8f, 0xd5, 0x99, 0x30, 0x6c, 0x0a, 0x37, - 0x04, 0x86, 0x5a, 0x4e, 0x3e, 0xee, 0xc0, 0x25, 0x73, 0x70, 0xdd, 0x39, 0x30, 0x1d, 0xf1, 0x23, - 0xf6, 0x69, 0x81, 0x3d, 0xfe, 0x90, 0xdb, 0x55, 0xd4, 0x26, 0x3d, 0x20, 0x3e, 0x84, 0x07, 0xe3, - 0xfe, 0x9b, 0x17, 0x94, 0xb3, 0x3c, 0x28, 0x77, 0x87, 0x61, 0x06, 0x47, 0x91, 0x0f, 0x36, 0x2f, - 0xf0, 0xda, 0xcc, 0xd9, 0x2d, 0xa2, 0x17, 0x77, 0xdf, 0xc4, 0x66, 0x7d, 0xf7, 0x1a, 0xd3, 0xbf, - 0xe4, 0x80, 0x74, 0x1f, 0x07, 0x52, 0xf1, 0xa0, 0x74, 0x45, 0xc3, 0x6a, 0x69, 0x80, 0x17, 0xed, - 0xa7, 0xe1, 0x78, 0xb9, 0x52, 0x5b, 0xcb, 0xad, 0x15, 0x72, 0xb5, 0xdc, 0xd9, 0x52, 0xf1, 0xdc, - 0xda, 0xdc, 0x52, 0x25, 0x7f, 0xaf, 0x28, 0xa0, 0xdf, 0x63, 0x63, 0x60, 0x55, 0xef, 0x18, 0xf5, - 0x61, 0xcd, 0x36, 0xdb, 0xb4, 0x30, 0xab, 0xd3, 0x59, 0xa1, 0xa8, 0x8e, 0xeb, 0xae, 0x3f, 0xa6, - 0x4d, 0x5c, 0xbf, 0x8e, 0x96, 0x1a, 0xb2, 0xe3, 0x7a, 0x5f, 0x0a, 0xe2, 0xef, 0x62, 0x3f, 0x11, - 0x00, 0x16, 0x0c, 0xbd, 0xd3, 0xaa, 0x18, 0x0d, 0x6c, 0xa0, 0xa7, 0xdc, 0x55, 0xdf, 0xef, 0x0c, - 0x61, 0xb2, 0xb2, 0x02, 0xb0, 0xe9, 0x14, 0x6e, 0xe9, 0xa9, 0x1b, 0xc3, 0xad, 0xf1, 0x5c, 0xa2, - 0x64, 0x4f, 0x19, 0xe8, 0x53, 0x5e, 0x8c, 0x7f, 0x89, 0xc7, 0x38, 0x68, 0xe4, 0x71, 0x8b, 0x1b, - 0xe6, 0xaa, 0xef, 0x43, 0x0e, 0xd6, 0x35, 0x0e, 0xeb, 0xbb, 0x0f, 0x40, 0x49, 0xfc, 0x98, 0xff, - 0x4c, 0x80, 0x09, 0xb6, 0x17, 0xcb, 0x78, 0xfa, 0x77, 0x2e, 0xe8, 0x6f, 0x18, 0x02, 0xe8, 0xab, - 0x70, 0x54, 0x77, 0x4b, 0x67, 0x23, 0xa3, 0xd7, 0xba, 0x16, 0x08, 0xbb, 0x87, 0x2e, 0x99, 0x2b, - 0x06, 0x7d, 0xda, 0x8b, 0xbc, 0xcc, 0x23, 0x7f, 0x7b, 0x00, 0xbf, 0x3d, 0x25, 0x0e, 0x13, 0xfa, - 0x0f, 0x3b, 0xd0, 0xaf, 0x72, 0xd0, 0xe7, 0x0e, 0x42, 0x4a, 0xfc, 0xd8, 0x3f, 0xe8, 0x18, 0xe8, - 0x9d, 0xed, 0x93, 0x58, 0x36, 0x4d, 0xde, 0x34, 0xe0, 0x02, 0x83, 0xa7, 0xcd, 0x07, 0xa9, 0x29, - 0x48, 0xaa, 0x36, 0x0d, 0x49, 0xb5, 0x31, 0xd0, 0x12, 0x22, 0xb0, 0xa2, 0xf8, 0x71, 0x78, 0xfb, - 0xb3, 0x20, 0x5d, 0xc0, 0xeb, 0x9d, 0x4d, 0xf4, 0x1e, 0x01, 0xb2, 0x4d, 0x7d, 0xb3, 0xa4, 0x6d, - 0xe8, 0x56, 0xc3, 0x12, 0x76, 0xc3, 0x24, 0x09, 0x52, 0x5b, 0x58, 0xb1, 0x9b, 0x4a, 0xff, 0x4b, - 0x57, 0xc3, 0x14, 0xf9, 0xb5, 0x9f, 0x93, 0x75, 0x6e, 0x9f, 0xec, 0x8a, 0x25, 0x13, 0x54, 0x53, - 0x37, 0x95, 0xa6, 0x8c, 0xeb, 0xba, 0xd1, 0x60, 0xa7, 0x45, 0xd2, 0x32, 0x17, 0x47, 0xf0, 0xa6, - 0x61, 0xea, 0xbf, 0x90, 0xa6, 0x09, 0xdc, 0x08, 0xe9, 0x4a, 0x98, 0xdc, 0x50, 0x8d, 0xb6, 0xc9, - 0x52, 0xd7, 0x98, 0x83, 0x4b, 0x5a, 0xe6, 0x23, 0xe9, 0x7b, 0xf6, 0x6e, 0xc4, 0x59, 0x6c, 0xd0, - 0xc7, 0x85, 0xd2, 0x72, 0x57, 0x2c, 0xa1, 0xa7, 0xa9, 0x78, 0x0a, 0x1b, 0x63, 0xf4, 0x78, 0xe3, - 0x48, 0x8d, 0x6e, 0x98, 0x14, 0x35, 0xce, 0x6a, 0xe4, 0x22, 0x49, 0x8d, 0x24, 0x62, 0xa5, 0xd3, - 0x6c, 0x56, 0x71, 0x3d, 0xb7, 0xa9, 0x4f, 0x03, 0xab, 0x91, 0x8f, 0x95, 0x10, 0x8c, 0x75, 0x5a, - 0x55, 0x53, 0x31, 0x3b, 0xed, 0xe9, 0x09, 0xb6, 0x9f, 0x64, 0x87, 0xa5, 0x93, 0x00, 0x0d, 0xfd, - 0xbc, 0x66, 0x7d, 0x3d, 0xca, 0xfc, 0x8d, 0xdc, 0x18, 0xb2, 0x6c, 0x66, 0x22, 0x3b, 0xc9, 0xee, - 0xb0, 0x63, 0xfe, 0x5c, 0x5f, 0x11, 0x00, 0xcc, 0x2d, 0x03, 0x2b, 0x8d, 0x9e, 0x70, 0xbd, 0x10, - 0x4e, 0x34, 0xf5, 0xcd, 0xf6, 0x39, 0xd5, 0xdc, 0x72, 0x81, 0x58, 0xb4, 0x01, 0x4c, 0xcb, 0x3e, - 0x5f, 0xa5, 0xbb, 0xe1, 0x12, 0xfb, 0xcb, 0xb9, 0x2d, 0xbd, 0x89, 0x6b, 0x06, 0xc6, 0x5d, 0xf8, - 0xa6, 0xe5, 0xa0, 0x24, 0xd2, 0x2c, 0xa4, 0xc8, 0x67, 0xeb, 0xa9, 0x6f, 0xc4, 0xc9, 0x3d, 0x15, - 0xb3, 0x59, 0x4b, 0xc4, 0x64, 0x9a, 0x4e, 0xba, 0x05, 0x2e, 0xd6, 0xcf, 0x6b, 0x4b, 0xfa, 0xe6, - 0xa2, 0xd2, 0xce, 0x2b, 0x1b, 0x58, 0xc6, 0xec, 0xd8, 0x94, 0x6e, 0x58, 0xcf, 0xfe, 0xfb, 0x7d, - 0x96, 0x66, 0x41, 0xaa, 0x2b, 0x1b, 0x78, 0x89, 0x07, 0x80, 0x49, 0x46, 0x8f, 0x2f, 0x04, 0x76, - 0x12, 0xbb, 0x6a, 0x03, 0x91, 0x65, 0x07, 0x51, 0xbd, 0x71, 0x04, 0x50, 0x12, 0x2e, 0xb8, 0x80, - 0x8c, 0xd1, 0x54, 0x5d, 0xb1, 0xfb, 0x44, 0x7a, 0xbc, 0x9f, 0x48, 0x43, 0xb7, 0x48, 0x3b, 0xb0, - 0x4e, 0x78, 0x61, 0xfd, 0x7a, 0x1a, 0x52, 0xd5, 0x3d, 0xad, 0x8e, 0xde, 0xe6, 0x19, 0xfe, 0x4e, - 0xc3, 0x71, 0x83, 0x95, 0x59, 0x33, 0x94, 0x5d, 0x6c, 0xb4, 0xf1, 0x12, 0xb5, 0xa3, 0x24, 0x68, - 0x99, 0x3d, 0xbf, 0x11, 0xf9, 0x6d, 0x6f, 0xab, 0xad, 0xe2, 0x4e, 0xcb, 0xdc, 0x5b, 0x22, 0x78, - 0x24, 0xd9, 0x2d, 0x50, 0x5c, 0xa4, 0x74, 0x27, 0x20, 0xd3, 0xd8, 0xab, 0xe9, 0x36, 0x7e, 0x32, - 0xde, 0xd1, 0x4d, 0x6c, 0x37, 0x8a, 0xf5, 0xe6, 0x80, 0x14, 0xe8, 0xdd, 0x29, 0x8f, 0x6e, 0xbd, - 0x9d, 0xd7, 0xad, 0x57, 0xf7, 0x80, 0x9e, 0x34, 0xcd, 0x47, 0x93, 0xbe, 0x08, 0xb2, 0x4c, 0x9e, - 0xed, 0x55, 0xca, 0x65, 0x3d, 0xf2, 0xbb, 0x12, 0x2f, 0xdb, 0xa9, 0x49, 0xdf, 0x6a, 0xe0, 0x5d, - 0xb5, 0x8e, 0x5d, 0x7f, 0x32, 0x3b, 0xec, 0xc0, 0x54, 0xb3, 0x4a, 0xf6, 0x6a, 0x1e, 0x2b, 0x8e, - 0xf2, 0x80, 0xfd, 0x25, 0x22, 0xad, 0x77, 0x4c, 0x22, 0x62, 0x25, 0xad, 0x42, 0xa5, 0xce, 0x52, - 0x45, 0x01, 0x29, 0xa4, 0x39, 0xb8, 0x94, 0xff, 0xba, 0xc8, 0xeb, 0x44, 0x26, 0x90, 0x81, 0x69, - 0xf6, 0x89, 0x53, 0xb6, 0x9f, 0x38, 0x8d, 0x75, 0x89, 0x13, 0x7a, 0xb3, 0x33, 0xf0, 0xdc, 0xc5, - 0x0d, 0x3c, 0xd7, 0x86, 0x43, 0x61, 0x24, 0xd7, 0x65, 0x65, 0x18, 0xcb, 0xd1, 0x2b, 0x3c, 0xb2, - 0x8d, 0x60, 0xcc, 0x02, 0xd5, 0x56, 0x5f, 0x4e, 0x78, 0x44, 0x32, 0xfc, 0x96, 0xd0, 0xaf, 0x66, - 0x30, 0xee, 0xb1, 0x46, 0xf8, 0x48, 0xf1, 0x4d, 0x90, 0x52, 0xb5, 0x0d, 0xdd, 0x9a, 0xb8, 0xf5, - 0x11, 0x61, 0x9a, 0x34, 0xe4, 0x33, 0x19, 0x01, 0x75, 0xc7, 0x8f, 0xdd, 0xab, 0x05, 0x48, 0x11, - 0x35, 0xef, 0xbd, 0xf7, 0x13, 0xc1, 0x18, 0x9b, 0x14, 0xbb, 0xc0, 0xd9, 0xe1, 0x9e, 0x6f, 0x87, - 0xcc, 0xc0, 0xd1, 0x8e, 0xa6, 0x68, 0xba, 0xb6, 0xb7, 0xa3, 0xbe, 0xc4, 0x99, 0x2a, 0x70, 0x71, - 0x84, 0xfa, 0x4d, 0xac, 0x61, 0x43, 0x31, 0x71, 0x75, 0x77, 0x93, 0xf6, 0xd6, 0x31, 0xd9, 0x1b, - 0x85, 0x1e, 0x4c, 0x46, 0x53, 0x38, 0x84, 0x6a, 0xff, 0x27, 0x2a, 0x37, 0xd4, 0x26, 0xa6, 0xfe, - 0xed, 0x96, 0x8f, 0x87, 0x1d, 0x8e, 0xd4, 0x9b, 0x7a, 0x54, 0x31, 0x12, 0x44, 0x44, 0xf6, 0x66, - 0xca, 0x92, 0x5e, 0x57, 0x9a, 0x6d, 0x53, 0x37, 0x30, 0x7a, 0x81, 0x8b, 0x8e, 0x8d, 0x40, 0xc2, - 0x83, 0xc0, 0x09, 0xc8, 0x34, 0xf4, 0xba, 0xeb, 0xc9, 0x60, 0x85, 0xf8, 0xe5, 0x4c, 0xe0, 0x31, - 0x22, 0xd6, 0xe0, 0xee, 0x7a, 0x63, 0x7b, 0x40, 0x26, 0xdc, 0xd1, 0xa2, 0x50, 0x44, 0x8d, 0xe0, - 0x5e, 0x85, 0x24, 0xa4, 0x56, 0x54, 0x6d, 0xd3, 0xbb, 0x88, 0x39, 0x0e, 0x69, 0x55, 0x6b, 0xe0, - 0x0b, 0xd6, 0x48, 0xcd, 0x02, 0x64, 0x38, 0xd7, 0x3a, 0x3b, 0xeb, 0xd8, 0xa8, 0x6c, 0xd0, 0xe6, - 0xb6, 0x6b, 0x7a, 0x15, 0x6b, 0xf6, 0xcc, 0xac, 0xe7, 0x37, 0xf4, 0x8b, 0x44, 0x34, 0xb9, 0x27, - 0x94, 0xf8, 0xe0, 0xe2, 0x10, 0x95, 0xf4, 0x10, 0x15, 0x49, 0xe2, 0x7b, 0x14, 0x1e, 0x3f, 0x7f, - 0x3f, 0x9f, 0x84, 0xec, 0x32, 0x36, 0x0d, 0xb5, 0xde, 0x46, 0x4f, 0x24, 0x61, 0xb2, 0x8a, 0xcd, - 0x15, 0xc5, 0x50, 0x76, 0xb0, 0x49, 0x96, 0xe4, 0xd7, 0x72, 0x8a, 0xa9, 0xd5, 0x54, 0xcc, 0x0d, - 0xdd, 0xd8, 0xb1, 0x15, 0x93, 0x1d, 0xbe, 0x35, 0xf5, 0xf0, 0xf7, 0x85, 0x04, 0xcf, 0xcc, 0x40, - 0xd7, 0x1b, 0xab, 0xc2, 0x59, 0xae, 0x32, 0x9f, 0x13, 0x16, 0xe1, 0x9c, 0x69, 0xc2, 0x94, 0x18, - 0x3f, 0x33, 0xff, 0x58, 0x00, 0x61, 0x49, 0xdf, 0x44, 0x1f, 0x13, 0x20, 0x45, 0xe5, 0xeb, 0xbd, - 0x9e, 0x21, 0x79, 0x1a, 0xb2, 0x3b, 0xb8, 0xdd, 0x56, 0x36, 0xb1, 0xfd, 0xbe, 0xb4, 0x15, 0x94, - 0xce, 0x40, 0xba, 0x89, 0x77, 0x71, 0x93, 0x92, 0x31, 0x75, 0xfa, 0x0a, 0xae, 0x65, 0x4b, 0xfa, - 0xe6, 0x2c, 0x29, 0xcb, 0x79, 0x85, 0x76, 0x89, 0x24, 0x95, 0x59, 0x8e, 0x99, 0x7b, 0x20, 0x4d, - 0xc3, 0xd2, 0x38, 0xa4, 0x0b, 0xc5, 0xb9, 0xd5, 0x05, 0xf1, 0x08, 0xf9, 0x6b, 0xd3, 0x37, 0x0e, - 0xe9, 0xf9, 0x5c, 0x2d, 0xb7, 0x24, 0x26, 0x49, 0x3b, 0x4a, 0xe5, 0xf9, 0x8a, 0x28, 0x90, 0xc8, - 0x95, 0x5c, 0xb9, 0x94, 0x17, 0x53, 0xd2, 0x04, 0x64, 0xcf, 0xe5, 0xe4, 0x72, 0xa9, 0xbc, 0x20, - 0xa6, 0xd1, 0x03, 0x5e, 0x85, 0x75, 0x2b, 0x8f, 0xdf, 0x95, 0x7e, 0x34, 0xf5, 0x82, 0xec, 0xdf, - 0x39, 0x90, 0xdd, 0xc1, 0x41, 0xf6, 0xbc, 0x30, 0x85, 0x44, 0x43, 0xa9, 0x3c, 0x80, 0x21, 0x7b, - 0x12, 0xc6, 0xcb, 0x95, 0xda, 0xda, 0x7c, 0x65, 0xb5, 0x5c, 0x10, 0x31, 0xe1, 0x41, 0xad, 0xb4, - 0x5c, 0xac, 0xac, 0xd6, 0xc4, 0x0d, 0xf4, 0xb6, 0x24, 0x64, 0x57, 0x0c, 0xbd, 0x8e, 0xdb, 0x6d, - 0xf4, 0xfa, 0x24, 0x64, 0xf2, 0x8a, 0x56, 0xc7, 0x4d, 0xf4, 0x2c, 0x17, 0xc6, 0xae, 0x25, 0x21, - 0xfa, 0x89, 0x57, 0xea, 0xef, 0xe6, 0xb9, 0xc6, 0xbf, 0x2b, 0x6c, 0x95, 0x3b, 0xcb, 0xca, 0xf4, - 0xe1, 0xdd, 0x63, 0x0e, 0xef, 0xf2, 0x1c, 0xef, 0x6e, 0x08, 0x5f, 0x54, 0xfc, 0x72, 0xfe, 0xd3, - 0x04, 0x1c, 0x5f, 0x20, 0xd3, 0x07, 0xb5, 0xce, 0x88, 0xb7, 0xdb, 0x7f, 0x07, 0xdf, 0xfe, 0xe7, - 0x72, 0x44, 0xf7, 0xca, 0xc1, 0x37, 0xfe, 0x51, 0xa7, 0xf1, 0x77, 0x73, 0x8d, 0xbf, 0x2e, 0x64, - 0x39, 0xb1, 0xb7, 0x7c, 0x26, 0x0b, 0x69, 0x3a, 0x45, 0x9e, 0xb9, 0x0a, 0x26, 0xab, 0xa6, 0x81, - 0x95, 0x1d, 0xcf, 0xa0, 0x64, 0xea, 0xdb, 0x58, 0xb3, 0x44, 0x83, 0x05, 0x6e, 0x3d, 0x03, 0x59, - 0x4d, 0x5f, 0x53, 0x3a, 0xe6, 0x96, 0xf4, 0xec, 0x7d, 0xc7, 0x86, 0x96, 0x59, 0xff, 0xaf, 0xb4, - 0xd8, 0x2e, 0xd2, 0x77, 0x6f, 0xa7, 0x13, 0xb3, 0x8c, 0xa6, 0xe7, 0x3a, 0xe6, 0xd6, 0xdc, 0xa5, - 0x9f, 0x7b, 0xea, 0x64, 0xe2, 0x8b, 0x4f, 0x9d, 0x4c, 0x7c, 0xe7, 0xa9, 0x93, 0x89, 0xdf, 0xfe, - 0xde, 0xc9, 0x23, 0x5f, 0xfc, 0xde, 0xc9, 0x23, 0xdf, 0xf8, 0xde, 0xc9, 0x23, 0xbf, 0x92, 0x6c, - 0xad, 0xaf, 0x67, 0x68, 0x29, 0x37, 0xff, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x27, 0x7f, 0x27, - 0x80, 0x12, 0x32, 0x01, 0x00, + // 11695 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x94, 0x24, 0x47, + 0x75, 0x27, 0x3c, 0x55, 0x59, 0x8f, 0xee, 0xdb, 0xd3, 0x3d, 0xa9, 0xf4, 0x30, 0x6a, 0x42, 0xd2, + 0x20, 0xb7, 0x1e, 0xc8, 0x23, 0xa9, 0x25, 0x8d, 0x78, 0x68, 0xf4, 0xae, 0xae, 0xaa, 0xee, 0x2e, + 0xa9, 0xbb, 0xaa, 0x9d, 0x55, 0x3d, 0x63, 0xf9, 0xfb, 0xbc, 0xbd, 0xd9, 0x55, 0xd1, 0xdd, 0xa9, + 0xa9, 0xae, 0x2c, 0x67, 0x65, 0xf7, 0x4c, 0x73, 0xce, 0xae, 0x2d, 0xdb, 0x42, 0xc2, 0x1c, 0xc0, + 0x60, 0xbc, 0x20, 0xb3, 0x20, 0x10, 0x6f, 0x30, 0xc6, 0xbc, 0x17, 0x2f, 0xc8, 0x8b, 0x01, 0x1f, + 0xcc, 0xb1, 0x11, 0xe6, 0x6d, 0x2f, 0x60, 0x10, 0x5e, 0x16, 0xef, 0xc2, 0x72, 0xf0, 0xd9, 0x5d, + 0x2f, 0x8b, 0xbd, 0xec, 0x89, 0x47, 0x3e, 0xa2, 0xba, 0x32, 0x2b, 0xb3, 0xba, 0xb2, 0x5a, 0x5e, + 0xff, 0x55, 0x15, 0x91, 0xf1, 0xb8, 0x71, 0x7f, 0x37, 0x6e, 0x44, 0xdc, 0xb8, 0x11, 0x01, 0xd3, + 0xed, 0xf5, 0x9b, 0xda, 0xa6, 0x61, 0x19, 0x9d, 0x9b, 0xea, 0xc6, 0xf6, 0xb6, 0xd6, 0x6a, 0x74, + 0x66, 0x69, 0x58, 0xc9, 0x6a, 0xad, 0x3d, 0x6b, 0xaf, 0x8d, 0xd1, 0xd5, 0xed, 0xf3, 0x9b, 0x37, + 0x35, 0xf5, 0xf5, 0x9b, 0xda, 0xeb, 0x37, 0x6d, 0x1b, 0x0d, 0xdc, 0xb4, 0x33, 0xd0, 0x00, 0x4f, + 0x8e, 0xae, 0xf3, 0x4b, 0xd5, 0x34, 0xea, 0x5a, 0xb3, 0x63, 0x19, 0x26, 0xe6, 0x29, 0x4f, 0xb8, + 0x55, 0xe2, 0x5d, 0xdc, 0xb2, 0xec, 0x12, 0x2e, 0xdf, 0x34, 0x8c, 0xcd, 0x26, 0x66, 0xdf, 0xd6, + 0x77, 0x36, 0x6e, 0xea, 0x58, 0xe6, 0x4e, 0xdd, 0xe2, 0x5f, 0xaf, 0xec, 0xfe, 0xda, 0xc0, 0x9d, + 0xba, 0xa9, 0xb7, 0x2d, 0xc3, 0x64, 0x29, 0x66, 0x9e, 0xfe, 0x76, 0x0a, 0x24, 0xb5, 0x5d, 0x47, + 0x9f, 0x1b, 0x03, 0x29, 0xd7, 0x6e, 0xa3, 0x1f, 0x25, 0x01, 0x16, 0xb0, 0x75, 0x16, 0x9b, 0x1d, + 0xdd, 0x68, 0xa1, 0x71, 0xc8, 0xaa, 0xf8, 0x97, 0x77, 0x70, 0xc7, 0x42, 0x5f, 0x4d, 0xc2, 0x98, + 0x8a, 0x3b, 0x6d, 0xa3, 0xd5, 0xc1, 0xca, 0xbd, 0x90, 0xc6, 0xa6, 0x69, 0x98, 0xd3, 0x89, 0x2b, + 0x13, 0xd7, 0x4d, 0x9c, 0x3e, 0x35, 0xcb, 0x1b, 0x3e, 0xab, 0xb6, 0xeb, 0xb3, 0xb9, 0x76, 0x7b, + 0xd6, 0x2d, 0x63, 0xd6, 0xce, 0x34, 0x5b, 0x24, 0x39, 0x54, 0x96, 0x51, 0x99, 0x86, 0xec, 0x2e, + 0x4b, 0x30, 0x9d, 0xbc, 0x32, 0x71, 0xdd, 0xb8, 0x6a, 0x07, 0xc9, 0x97, 0x06, 0xb6, 0x34, 0xbd, + 0xd9, 0x99, 0x96, 0xd8, 0x17, 0x1e, 0x44, 0x5f, 0x4a, 0x40, 0x9a, 0x16, 0xa2, 0xe4, 0x21, 0x55, + 0x37, 0x1a, 0x98, 0x56, 0x3f, 0x75, 0xfa, 0xa6, 0xf0, 0xd5, 0xcf, 0xe6, 0x8d, 0x06, 0x56, 0x69, + 0x66, 0xe5, 0x4a, 0x98, 0xb0, 0x19, 0xe2, 0x92, 0xe1, 0x8d, 0x9a, 0x69, 0x40, 0x8a, 0xa4, 0x57, + 0xc6, 0x20, 0x55, 0x5e, 0x5d, 0x5a, 0x92, 0x8f, 0x28, 0x97, 0xc0, 0xe4, 0x6a, 0xf9, 0xfe, 0x72, + 0xe5, 0x5c, 0x79, 0xad, 0xa8, 0xaa, 0x15, 0x55, 0x4e, 0x28, 0x93, 0x30, 0x3e, 0x97, 0x2b, 0xac, + 0x95, 0xca, 0x2b, 0xab, 0x35, 0x39, 0xa9, 0x1c, 0x07, 0xf9, 0x6c, 0x51, 0xad, 0x96, 0x2a, 0xe5, + 0xb5, 0x52, 0x75, 0xad, 0xb8, 0xbc, 0x52, 0x7b, 0x40, 0x96, 0x48, 0xa2, 0x72, 0xa5, 0xb6, 0x36, + 0x5f, 0x59, 0x2d, 0x17, 0x64, 0xac, 0x4c, 0x40, 0xb6, 0x56, 0x5a, 0x2e, 0x56, 0x56, 0x6b, 0xf2, + 0x06, 0xfa, 0xa0, 0x04, 0x53, 0x55, 0x6c, 0x15, 0xf0, 0xae, 0x5e, 0xc7, 0x55, 0x4b, 0xb3, 0x30, + 0x7a, 0x45, 0xc2, 0x61, 0xbc, 0xb2, 0x4a, 0xc8, 0x74, 0x3e, 0xf1, 0x26, 0xdf, 0xba, 0xaf, 0xc9, + 0x62, 0x09, 0xb3, 0x3c, 0xf7, 0xac, 0x27, 0x4e, 0xf5, 0x96, 0x33, 0x73, 0x23, 0x4c, 0x78, 0xbe, + 0x29, 0x53, 0x00, 0x73, 0xb9, 0xfc, 0xfd, 0x0b, 0x2a, 0xa5, 0xf0, 0x08, 0x09, 0xcf, 0x57, 0xd4, + 0x22, 0x0f, 0x27, 0xd0, 0x2b, 0xbc, 0xf0, 0x17, 0x44, 0xf8, 0x67, 0xfb, 0x13, 0xd3, 0x43, 0x04, + 0xd0, 0xc7, 0x1c, 0x38, 0x17, 0x04, 0x38, 0x6f, 0x8d, 0x56, 0x5c, 0x34, 0x48, 0x17, 0x07, 0x83, + 0xb4, 0x5c, 0x29, 0x14, 0xd7, 0x08, 0x82, 0xd5, 0x5a, 0x4e, 0xad, 0x15, 0x0b, 0x32, 0x46, 0xaf, + 0x4b, 0xc2, 0x58, 0x75, 0x6b, 0xc7, 0x6a, 0x18, 0x17, 0x84, 0x8e, 0xf2, 0xeb, 0x5e, 0x4e, 0xdd, + 0x2d, 0x72, 0xea, 0xba, 0xfd, 0x4d, 0xe3, 0x25, 0xf8, 0xf0, 0xe8, 0xc3, 0x0e, 0x8f, 0x72, 0x02, + 0x8f, 0x6e, 0x0c, 0x5b, 0xd0, 0x61, 0x71, 0xe7, 0xcb, 0x93, 0x90, 0x39, 0xa7, 0x35, 0x9b, 0xd8, + 0x42, 0x7f, 0x93, 0x84, 0x4c, 0xde, 0xc4, 0x44, 0xae, 0xaf, 0x77, 0xc5, 0x1a, 0xc1, 0x98, 0x69, + 0x18, 0xd6, 0x8a, 0x66, 0x6d, 0xd1, 0x36, 0x8d, 0xab, 0x4e, 0xf8, 0xf6, 0xd4, 0xa3, 0xdf, 0x95, + 0x12, 0xe8, 0xf7, 0xbc, 0x8c, 0xbc, 0x47, 0x64, 0xe4, 0xcf, 0x09, 0xed, 0x67, 0x15, 0xcd, 0xb2, + 0x4a, 0x7c, 0x14, 0x0e, 0x82, 0xb1, 0xed, 0x16, 0xde, 0x36, 0x5a, 0x7a, 0x9d, 0xb7, 0xdc, 0x09, + 0xa3, 0x3f, 0x76, 0xb8, 0x3c, 0x27, 0x70, 0x79, 0x36, 0x74, 0x2d, 0xd1, 0xd8, 0x5c, 0x1d, 0x80, + 0xcd, 0xcf, 0x81, 0xcb, 0xe6, 0x73, 0xa5, 0xa5, 0x62, 0x61, 0xad, 0x56, 0x59, 0xcb, 0xab, 0xc5, + 0x5c, 0xad, 0xb8, 0xb6, 0x54, 0xc9, 0xe7, 0x96, 0xd6, 0xd4, 0xe2, 0x4a, 0x45, 0xc6, 0xe8, 0x3f, + 0x27, 0x09, 0x73, 0xeb, 0xc6, 0x2e, 0x36, 0xd1, 0x42, 0x28, 0x3e, 0x07, 0xf1, 0x84, 0x63, 0xf0, + 0xaa, 0xd0, 0x5a, 0x9f, 0x73, 0x87, 0x53, 0xe0, 0x23, 0xce, 0x9f, 0x0c, 0xa5, 0xc1, 0x03, 0x8b, + 0x7a, 0x06, 0x70, 0xfa, 0xbf, 0x27, 0x21, 0x9b, 0x37, 0x5a, 0xbb, 0xd8, 0xb4, 0xd0, 0x3d, 0x02, + 0xa7, 0x1d, 0x6e, 0x26, 0x44, 0x6e, 0x92, 0x41, 0x0d, 0xb7, 0x2c, 0xd3, 0x68, 0xef, 0xd9, 0xc3, + 0x1d, 0x0f, 0xa2, 0xb7, 0x47, 0xe5, 0x30, 0xaf, 0xd9, 0x7f, 0x5c, 0xed, 0x5d, 0x91, 0x40, 0x9e, + 0xd4, 0xd5, 0x01, 0x9e, 0x88, 0x82, 0x4b, 0x6f, 0x02, 0xa2, 0xe1, 0x72, 0x3a, 0x3a, 0x2e, 0xe8, + 0x0b, 0x49, 0x98, 0x64, 0x9d, 0xaf, 0x8a, 0x3b, 0x74, 0x7a, 0x72, 0x7d, 0x28, 0xe6, 0x73, 0x51, + 0xfe, 0x6d, 0x2f, 0xa3, 0xe7, 0x45, 0x46, 0xdf, 0xec, 0xdf, 0xd1, 0x79, 0x5d, 0x3e, 0xec, 0x3e, + 0x0e, 0x69, 0xcb, 0x38, 0x8f, 0xed, 0x36, 0xb2, 0x00, 0x7a, 0x87, 0xc3, 0xce, 0x92, 0xc0, 0xce, + 0xe7, 0x47, 0xad, 0x26, 0x7e, 0xa6, 0xbe, 0x27, 0x09, 0x47, 0xf3, 0x4d, 0xa3, 0xe3, 0xf0, 0xf4, + 0x39, 0x2e, 0x4f, 0x9d, 0xc6, 0x25, 0xbc, 0x8d, 0xfb, 0x49, 0xc2, 0xc3, 0xc7, 0xa2, 0xc8, 0xc7, + 0xde, 0xf2, 0xe2, 0x29, 0xde, 0x47, 0x2f, 0xbc, 0xdd, 0x61, 0xd8, 0xa2, 0xc0, 0xb0, 0xe7, 0x45, + 0x2c, 0x2f, 0x7e, 0x7e, 0x7d, 0xf8, 0x67, 0x21, 0x9b, 0xab, 0xd7, 0x8d, 0x9d, 0x96, 0x85, 0xfe, + 0x3a, 0x01, 0x99, 0xbc, 0xd1, 0xda, 0xd0, 0x37, 0x95, 0x6b, 0x61, 0x0a, 0xb7, 0xb4, 0xf5, 0x26, + 0x2e, 0x68, 0x96, 0xb6, 0xab, 0xe3, 0x0b, 0xb4, 0x01, 0x63, 0x6a, 0x57, 0x2c, 0x21, 0x8a, 0xc7, + 0xe0, 0xf5, 0x9d, 0x4d, 0x4a, 0xd4, 0x98, 0xea, 0x8d, 0x52, 0x6e, 0x83, 0x4b, 0x59, 0x70, 0xc5, + 0xc4, 0x26, 0x6e, 0x62, 0xad, 0x83, 0xf3, 0x5b, 0x5a, 0xab, 0x85, 0x9b, 0xb4, 0xd7, 0x8e, 0xa9, + 0x7e, 0x9f, 0x95, 0x19, 0x38, 0xca, 0x3e, 0x55, 0xdb, 0x5a, 0x1d, 0x77, 0xa6, 0x53, 0x34, 0xb9, + 0x10, 0xa7, 0xdc, 0x08, 0x69, 0x7c, 0xd1, 0x32, 0xb5, 0xe9, 0x06, 0xc5, 0xeb, 0xd2, 0x59, 0xb6, + 0x44, 0x98, 0xb5, 0x97, 0x08, 0xb3, 0x55, 0xba, 0x80, 0x50, 0x59, 0x2a, 0xf4, 0xc9, 0x8c, 0x33, + 0x74, 0xbf, 0xc9, 0x33, 0x25, 0x55, 0x20, 0xd5, 0xd2, 0xb6, 0x31, 0x97, 0x0b, 0xfa, 0x5f, 0x39, + 0x05, 0xc7, 0xb4, 0x5d, 0xcd, 0xd2, 0xcc, 0x25, 0xb2, 0x78, 0xa1, 0xc3, 0x0d, 0x65, 0xf9, 0xe2, + 0x11, 0xb5, 0xfb, 0x83, 0x72, 0x39, 0x8c, 0xd3, 0xd5, 0x0d, 0x4d, 0xc5, 0x74, 0x91, 0x1b, 0xa1, + 0x5c, 0x07, 0xc7, 0xb4, 0x66, 0x7b, 0x4b, 0x2b, 0xb5, 0x76, 0x75, 0x0b, 0x13, 0x84, 0xa6, 0x8f, + 0xd3, 0x34, 0xdd, 0xd1, 0xac, 0x63, 0xcf, 0x8d, 0x41, 0x86, 0x55, 0x80, 0x5e, 0x9d, 0x0e, 0xbd, + 0x46, 0x61, 0x10, 0x06, 0x4f, 0x19, 0x6e, 0x86, 0xac, 0xc6, 0xd2, 0xd1, 0xa6, 0x4c, 0x9c, 0x3e, + 0xe1, 0x94, 0x41, 0x97, 0x6b, 0x76, 0x29, 0xaa, 0x9d, 0x4c, 0xb9, 0x15, 0x32, 0x75, 0x2a, 0x10, + 0xb4, 0x55, 0x13, 0xa7, 0x2f, 0xeb, 0x5d, 0x29, 0x4d, 0xa2, 0xf2, 0xa4, 0xe8, 0x9b, 0x52, 0xa8, + 0x65, 0x4d, 0x10, 0xc5, 0xd1, 0xe4, 0xfe, 0x07, 0xc9, 0x01, 0x46, 0xc5, 0x1b, 0xe0, 0xba, 0x5c, + 0x3e, 0x5f, 0x59, 0x2d, 0xd7, 0xf8, 0x98, 0x58, 0x58, 0x9b, 0x5b, 0xad, 0xad, 0xb9, 0x23, 0x25, + 0x9d, 0xfb, 0xad, 0x91, 0xa9, 0xa0, 0x4c, 0xa4, 0xe1, 0xda, 0x3e, 0xa9, 0x8b, 0xb5, 0xb5, 0x72, + 0x6e, 0xb9, 0x28, 0x6f, 0x84, 0x28, 0xb9, 0x58, 0x5b, 0xcb, 0x9d, 0xcd, 0xd5, 0x72, 0xaa, 0xbc, + 0x29, 0x8e, 0xce, 0xd5, 0x5a, 0x65, 0x65, 0x4d, 0x5d, 0x2d, 0x97, 0x4b, 0xe5, 0x05, 0x56, 0x35, + 0x99, 0xd4, 0x9c, 0x70, 0x13, 0x9c, 0x53, 0x4b, 0xb5, 0xe2, 0x5a, 0xbe, 0x52, 0x9e, 0x2f, 0x2d, + 0xc8, 0x7a, 0xbf, 0xa1, 0xfd, 0x41, 0xe5, 0x38, 0x1c, 0x63, 0x8d, 0x3e, 0xcb, 0xf2, 0x15, 0x8a, + 0xf2, 0x6f, 0x64, 0x95, 0x29, 0x18, 0x2f, 0x17, 0x6b, 0x9c, 0x33, 0x0f, 0x67, 0x95, 0xcb, 0xe0, + 0x04, 0x09, 0xe7, 0x2b, 0xe5, 0x72, 0x31, 0x5f, 0x23, 0x4b, 0x3d, 0xb5, 0x38, 0xbf, 0x5a, 0x2d, + 0x16, 0xe4, 0x17, 0x67, 0x15, 0x19, 0x26, 0xc8, 0xc7, 0xca, 0xfc, 0xfc, 0x52, 0xa9, 0x5c, 0x94, + 0x1f, 0xc9, 0xa2, 0xb7, 0xa6, 0xdc, 0x99, 0x99, 0x67, 0xa1, 0xf0, 0xf2, 0x94, 0x47, 0x5a, 0x73, + 0xa2, 0xb4, 0x5e, 0xdf, 0x13, 0xfb, 0xe0, 0xc9, 0xd5, 0x93, 0x8e, 0x1c, 0x15, 0x04, 0x39, 0xba, + 0x39, 0x42, 0x59, 0xd1, 0x04, 0xe9, 0xcf, 0x06, 0x11, 0xa4, 0x67, 0xc1, 0x25, 0xe5, 0xca, 0x1a, + 0x47, 0xbc, 0xea, 0x2c, 0x89, 0xaf, 0x84, 0xcb, 0xcb, 0x45, 0x06, 0x8c, 0x5a, 0xcc, 0x57, 0xce, + 0x16, 0xd5, 0xb5, 0x73, 0xb9, 0xa5, 0xa5, 0x62, 0x6d, 0x6d, 0xbe, 0xa4, 0x56, 0x6b, 0xf2, 0x46, + 0x3f, 0xf0, 0x36, 0x95, 0xab, 0xe0, 0x39, 0x6e, 0x78, 0xad, 0xf8, 0x0b, 0xa5, 0x6a, 0xad, 0x4a, + 0x45, 0x29, 0x5f, 0x51, 0xd5, 0xd5, 0x15, 0xb2, 0x30, 0xd9, 0x52, 0x4e, 0x80, 0xe2, 0x96, 0xa2, + 0xae, 0x96, 0x99, 0xd8, 0xe8, 0xa4, 0x7e, 0x5e, 0x9f, 0x5d, 0x3d, 0x59, 0xd0, 0xac, 0x14, 0xd5, + 0xf9, 0x8a, 0xba, 0x5c, 0x2c, 0xc8, 0x0f, 0xf6, 0x93, 0xbc, 0xf3, 0xca, 0xb5, 0x30, 0x93, 0x2b, + 0x57, 0x6a, 0x8b, 0x45, 0x75, 0x2d, 0x57, 0x7e, 0xa0, 0xf6, 0xc0, 0x4a, 0x71, 0x6d, 0x45, 0xad, + 0xe4, 0x8b, 0xd5, 0xea, 0x5a, 0xa9, 0x6a, 0x27, 0x96, 0x9b, 0x84, 0x04, 0x5b, 0xe0, 0x4b, 0xd5, + 0xb5, 0x42, 0x71, 0xa9, 0x48, 0x48, 0xdb, 0x46, 0x2f, 0x93, 0x20, 0x53, 0xc0, 0x4d, 0x6c, 0x61, + 0xf4, 0xb3, 0xae, 0xb2, 0x3d, 0x01, 0x19, 0x13, 0x93, 0x09, 0x17, 0x1f, 0x52, 0x78, 0x08, 0xfd, + 0x75, 0x32, 0xaa, 0xb2, 0x63, 0x65, 0xfb, 0x28, 0xbb, 0xe7, 0x43, 0xa6, 0x63, 0x69, 0xd6, 0x4e, + 0x87, 0xeb, 0xba, 0x2b, 0x7a, 0xeb, 0xba, 0xd9, 0x2a, 0x4d, 0xa4, 0xf2, 0xc4, 0xe8, 0x2f, 0x13, + 0x51, 0x94, 0x57, 0x4f, 0x0a, 0xa2, 0xc9, 0x9c, 0x3e, 0x80, 0xc8, 0x9d, 0x04, 0xe4, 0x61, 0x78, + 0x6e, 0x49, 0x2d, 0xe6, 0x0a, 0x0f, 0x38, 0x8c, 0xc7, 0x44, 0x24, 0xbd, 0xdf, 0xf3, 0xb5, 0xd2, + 0xd9, 0xa2, 0xbc, 0x81, 0x3e, 0x99, 0x86, 0x4c, 0x15, 0x37, 0x71, 0xdd, 0x42, 0x77, 0xb8, 0x78, + 0x4c, 0x41, 0x52, 0x6f, 0xf0, 0xa1, 0x2f, 0xa9, 0x37, 0x84, 0x05, 0x56, 0xb2, 0xe7, 0x42, 0xf6, + 0x27, 0xa9, 0xa8, 0x48, 0xb1, 0x5a, 0x0f, 0x77, 0x58, 0xfa, 0x74, 0xa4, 0x61, 0xa9, 0x27, 0xc5, + 0xd1, 0x90, 0xfd, 0x52, 0x32, 0x86, 0xc5, 0x5a, 0x18, 0xa5, 0xb0, 0xe1, 0xa3, 0x14, 0xba, 0x06, + 0x9b, 0xf9, 0x52, 0xb9, 0xb0, 0xe6, 0xc8, 0x49, 0x79, 0xbe, 0x22, 0x6f, 0x29, 0xb3, 0x70, 0xca, + 0x53, 0x3a, 0xd1, 0x18, 0xbc, 0x86, 0x5c, 0xb9, 0xb0, 0xb6, 0x5c, 0x2e, 0x2e, 0x57, 0xca, 0xa5, + 0x3c, 0x33, 0x8d, 0x14, 0x6b, 0x4c, 0xcb, 0x74, 0xe9, 0x90, 0x6a, 0x31, 0xa7, 0xe6, 0x17, 0xa9, + 0xba, 0x29, 0x14, 0xe5, 0x07, 0x95, 0xe7, 0xc2, 0x55, 0x1e, 0x52, 0xb8, 0x2a, 0x5a, 0x51, 0x8b, + 0x85, 0xe2, 0x7c, 0xa9, 0x4c, 0x86, 0xc6, 0xa5, 0x4a, 0xfe, 0xfe, 0x6a, 0x78, 0x6d, 0x83, 0xfe, + 0x77, 0x12, 0x52, 0x55, 0xcb, 0x68, 0xa3, 0x9f, 0x73, 0x65, 0xf8, 0x24, 0x80, 0x89, 0xb7, 0x8d, + 0x5d, 0x3a, 0x31, 0xe5, 0x7a, 0xc5, 0x13, 0x83, 0xfe, 0x24, 0xbc, 0x0d, 0xcb, 0x51, 0x0b, 0x46, + 0xdb, 0x67, 0x5c, 0xfa, 0x71, 0x38, 0x1b, 0x96, 0x7f, 0x41, 0xd1, 0xc4, 0xe8, 0x37, 0x13, 0x03, + 0x88, 0x11, 0x82, 0x13, 0x1e, 0x0d, 0x40, 0xf0, 0xb2, 0x19, 0x88, 0x95, 0x4b, 0xe1, 0x67, 0xba, + 0x30, 0xa3, 0x50, 0x6d, 0x28, 0x3f, 0x0b, 0x57, 0x78, 0xa1, 0x5a, 0xae, 0x9c, 0x2d, 0x3a, 0xf2, + 0x51, 0xc8, 0xd5, 0x72, 0xf2, 0x26, 0xfa, 0xa2, 0x04, 0xa9, 0x65, 0x63, 0x17, 0xa3, 0xab, 0x5c, + 0xe6, 0x4f, 0x43, 0xb6, 0x85, 0x2f, 0x78, 0x0c, 0x32, 0x76, 0x10, 0xbd, 0x55, 0x8a, 0xca, 0x76, + 0x52, 0xb6, 0x0f, 0xdb, 0xbf, 0x96, 0x8c, 0xc2, 0xf6, 0x1e, 0x05, 0x45, 0x63, 0xfb, 0xdf, 0x0e, + 0xc2, 0x76, 0x1f, 0xd6, 0x62, 0x65, 0x06, 0x4e, 0xba, 0x1f, 0x4a, 0x85, 0x62, 0xb9, 0x56, 0x9a, + 0x7f, 0xc0, 0x65, 0x6e, 0x49, 0x0d, 0xc5, 0xfe, 0x7e, 0xda, 0x21, 0x78, 0xb2, 0x38, 0x0d, 0xc7, + 0xdd, 0x6f, 0x0b, 0x6c, 0xbe, 0x47, 0xbe, 0x3c, 0x88, 0x5e, 0x95, 0x86, 0xa3, 0x4c, 0x5b, 0xae, + 0xb6, 0x1b, 0x64, 0x71, 0x74, 0x8d, 0x60, 0x88, 0xb0, 0xf4, 0x6d, 0xfc, 0x8b, 0x46, 0xcb, 0x5e, + 0x1f, 0x39, 0x61, 0xf4, 0xf9, 0xd0, 0x26, 0x08, 0x51, 0x27, 0xb3, 0x5a, 0x7c, 0x70, 0xfe, 0x49, + 0x28, 0x63, 0x43, 0x88, 0x02, 0xa3, 0xe1, 0xfd, 0x1b, 0xc3, 0xee, 0x66, 0xfe, 0x50, 0x6c, 0xf8, + 0x42, 0xb1, 0x39, 0xf3, 0x48, 0x12, 0xc6, 0x6b, 0xfa, 0x36, 0x7e, 0x91, 0xd1, 0xc2, 0x1d, 0x25, + 0x0b, 0xd2, 0xc2, 0x72, 0x4d, 0x3e, 0x42, 0xfe, 0x14, 0xf3, 0x35, 0x39, 0x41, 0xff, 0x14, 0x49, + 0xd5, 0xe4, 0x4f, 0xae, 0x26, 0x4b, 0xe4, 0xcf, 0x72, 0xb1, 0x26, 0xa7, 0xc8, 0x9f, 0x72, 0xb1, + 0x26, 0xa7, 0xc9, 0x9f, 0x95, 0xa5, 0x9a, 0x9c, 0x21, 0x7f, 0x4a, 0xd5, 0x9a, 0x9c, 0x25, 0x7f, + 0xe6, 0xaa, 0x35, 0x79, 0x8c, 0xfc, 0x39, 0x5b, 0xad, 0xc9, 0xe3, 0xe4, 0x4f, 0xbe, 0x56, 0x93, + 0x81, 0xfc, 0xb9, 0xaf, 0x5a, 0x93, 0x27, 0xc8, 0x9f, 0x5c, 0xbe, 0x26, 0x1f, 0xa5, 0x7f, 0x8a, + 0x35, 0x79, 0x92, 0xfc, 0xa9, 0x56, 0x6b, 0xf2, 0x14, 0x2d, 0xb9, 0x5a, 0x93, 0x8f, 0xd1, 0xba, + 0x4a, 0x35, 0x59, 0x26, 0x7f, 0x16, 0xab, 0x35, 0xf9, 0x12, 0x9a, 0xb8, 0x5a, 0x93, 0x15, 0x5a, + 0x69, 0xb5, 0x26, 0xff, 0x0c, 0x4d, 0x53, 0xad, 0xc9, 0xc7, 0x69, 0x15, 0xd5, 0x9a, 0xfc, 0x2c, + 0x4a, 0x46, 0xb1, 0x26, 0x9f, 0xa0, 0x69, 0xd4, 0x9a, 0x7c, 0x29, 0xfd, 0x54, 0xae, 0xc9, 0xd3, + 0x94, 0xb0, 0x62, 0x4d, 0x7e, 0x36, 0xfd, 0xa3, 0xd6, 0x64, 0x44, 0x3f, 0xe5, 0x6a, 0xf2, 0x65, + 0xe8, 0x0a, 0x18, 0x5f, 0xc0, 0x16, 0xc3, 0x17, 0xc9, 0x20, 0x2d, 0x60, 0xcb, 0xbb, 0xda, 0xf8, + 0xf6, 0x31, 0x18, 0x3f, 0x67, 0x98, 0xe7, 0x3b, 0x6d, 0xad, 0x8e, 0xd1, 0x47, 0xd9, 0x3e, 0x5f, + 0x7e, 0xc7, 0x34, 0x71, 0x4b, 0x48, 0xf7, 0x78, 0x78, 0x33, 0x99, 0x5d, 0xda, 0xac, 0x5b, 0x92, + 0xcf, 0x94, 0xe5, 0x4a, 0x98, 0xb8, 0x60, 0xa7, 0x2e, 0x35, 0x6c, 0x71, 0xf2, 0x44, 0x85, 0x35, + 0x99, 0xf5, 0xaf, 0x32, 0x7e, 0x13, 0xd0, 0x7b, 0x93, 0x90, 0x59, 0xc0, 0x56, 0xae, 0xd9, 0xf4, + 0xf2, 0xed, 0x31, 0x2f, 0xdf, 0xe6, 0x44, 0xbe, 0xdd, 0xe0, 0xdf, 0x88, 0x5c, 0xb3, 0xe9, 0xc3, + 0xb3, 0x19, 0x38, 0xea, 0x61, 0x10, 0x99, 0x96, 0x4b, 0xd7, 0x8d, 0xab, 0x42, 0x1c, 0x7a, 0x8b, + 0xc3, 0xb5, 0xa2, 0xc0, 0xb5, 0x5b, 0xa2, 0x54, 0x18, 0x3f, 0xc7, 0x3e, 0xe1, 0xee, 0x00, 0x5d, + 0x11, 0x68, 0x45, 0x42, 0xaf, 0x19, 0x80, 0x8b, 0x81, 0x36, 0x9c, 0xfe, 0x92, 0x17, 0x95, 0x87, + 0x43, 0x30, 0xc0, 0x0c, 0xc2, 0xc3, 0xff, 0x9a, 0x04, 0xb9, 0x8a, 0xad, 0x52, 0x67, 0x51, 0xdf, + 0xdc, 0x6a, 0xea, 0x9b, 0x5b, 0x16, 0x6e, 0xa0, 0xfb, 0x85, 0x71, 0xc7, 0x58, 0x7f, 0x10, 0xd7, + 0xad, 0x92, 0xbd, 0x38, 0x71, 0xc2, 0xca, 0xd5, 0x30, 0xa9, 0x7b, 0xf3, 0x71, 0xbb, 0xa3, 0x18, + 0x89, 0x5e, 0xe2, 0xe5, 0xfd, 0x92, 0xc8, 0xfb, 0x17, 0xf8, 0x30, 0xa3, 0x9b, 0x22, 0x9f, 0x31, + 0xea, 0xf7, 0x1d, 0x1e, 0x57, 0x04, 0x1e, 0xdf, 0x31, 0x58, 0xb1, 0x23, 0x31, 0x8b, 0xdb, 0x4b, + 0x3f, 0xcf, 0x26, 0x43, 0x97, 0x30, 0x25, 0xf6, 0x0b, 0xd3, 0xff, 0x48, 0x44, 0x97, 0xdf, 0xa0, + 0xc5, 0x5e, 0x64, 0xe9, 0x1c, 0xc2, 0x3a, 0x6c, 0x10, 0x7e, 0xfd, 0xba, 0x04, 0x99, 0xe2, 0xc5, + 0xb6, 0x21, 0xee, 0x88, 0x29, 0x90, 0x6a, 0xbb, 0xd3, 0x5c, 0xfa, 0x3f, 0x44, 0x87, 0xfc, 0xc8, + 0x00, 0x3a, 0x80, 0xd5, 0xed, 0xa3, 0x03, 0x6c, 0x32, 0x92, 0x1e, 0x32, 0x6e, 0x80, 0x34, 0xf5, + 0xa4, 0xe1, 0x2b, 0x62, 0x77, 0x09, 0x6d, 0x17, 0x51, 0x24, 0x5f, 0x55, 0x96, 0x28, 0x32, 0x0a, + 0x3d, 0xc9, 0x89, 0x1f, 0x85, 0xcf, 0xbd, 0x32, 0x01, 0x99, 0x0a, 0xed, 0xf5, 0xe8, 0x25, 0x29, + 0x48, 0x55, 0xda, 0xb8, 0x85, 0xde, 0xe3, 0x31, 0xdc, 0x5f, 0x0e, 0xe3, 0x75, 0xa3, 0x65, 0xe1, + 0x8b, 0xae, 0x96, 0x70, 0x23, 0x04, 0x15, 0x92, 0xec, 0x52, 0x21, 0xd3, 0x90, 0xb5, 0x4c, 0x06, + 0x19, 0xf7, 0xca, 0xe1, 0x41, 0xa5, 0x0c, 0x33, 0x7a, 0xab, 0xde, 0xdc, 0x69, 0x60, 0x15, 0x37, + 0x35, 0x42, 0x7b, 0x27, 0xd7, 0x29, 0xe0, 0x36, 0x6e, 0x35, 0x70, 0xcb, 0x62, 0xd4, 0xd8, 0x9b, + 0x11, 0x21, 0x52, 0x8a, 0x93, 0xe4, 0xbb, 0x44, 0xf8, 0x9f, 0x2b, 0xf0, 0x9b, 0xe5, 0x98, 0x25, + 0xad, 0xf4, 0x41, 0xfe, 0x0c, 0x00, 0x6b, 0xc1, 0x59, 0x1d, 0x5f, 0xe0, 0xd6, 0x92, 0x67, 0x77, + 0x59, 0x4b, 0x2a, 0x4e, 0x02, 0xd5, 0x93, 0x18, 0xfd, 0xa9, 0x03, 0xf9, 0xbd, 0x02, 0xe4, 0x37, + 0x84, 0x24, 0x21, 0x1a, 0xda, 0xff, 0xff, 0x00, 0x93, 0x69, 0xc1, 0xa7, 0x48, 0x52, 0x9e, 0x0d, + 0xcf, 0xb2, 0xed, 0x00, 0xe5, 0x62, 0xb1, 0x50, 0x5d, 0x5b, 0x5d, 0x59, 0x50, 0x73, 0x85, 0xa2, + 0x0c, 0xe8, 0x63, 0x49, 0x48, 0xd3, 0x5d, 0x33, 0x94, 0x1f, 0x82, 0x2c, 0xa0, 0x1f, 0x24, 0xc2, + 0x2e, 0x53, 0x39, 0x7b, 0x68, 0xdd, 0x3e, 0x0a, 0xee, 0x8d, 0xa1, 0xac, 0x03, 0x01, 0x05, 0xc5, + 0xdf, 0xad, 0x48, 0x57, 0xaa, 0x6e, 0x19, 0x17, 0xfe, 0xdf, 0xef, 0x4a, 0xa4, 0x95, 0x87, 0xdc, + 0x95, 0x7a, 0x90, 0xf0, 0x4c, 0xea, 0x4a, 0x8f, 0xa5, 0x9c, 0xa9, 0xec, 0xe3, 0x1e, 0x69, 0xb8, + 0xc5, 0x75, 0x5a, 0x4c, 0x04, 0xef, 0xac, 0xda, 0xe9, 0x94, 0x1c, 0x4c, 0xea, 0x2d, 0x0b, 0x9b, + 0x2d, 0xad, 0x39, 0xdf, 0xd4, 0x36, 0xd9, 0x04, 0xdf, 0x6b, 0x9b, 0x65, 0x3c, 0x2d, 0x79, 0xd2, + 0xa8, 0x62, 0x0e, 0xe5, 0x24, 0x80, 0x85, 0xb7, 0xdb, 0x4d, 0xcd, 0x72, 0x85, 0xc9, 0x13, 0x83, + 0xbe, 0x1f, 0xda, 0x83, 0xca, 0xee, 0x5f, 0x7d, 0x3c, 0xa8, 0x1c, 0x99, 0x96, 0xba, 0x64, 0xda, + 0x19, 0x4e, 0x53, 0x21, 0x86, 0x53, 0x2f, 0xb7, 0xd2, 0xe1, 0xb8, 0x85, 0xde, 0x14, 0xca, 0x45, + 0x2b, 0xa8, 0x19, 0xf1, 0xeb, 0x89, 0xc7, 0x25, 0x98, 0x62, 0x55, 0xcf, 0x19, 0xc6, 0xf9, 0x6d, + 0xcd, 0x3c, 0x8f, 0xee, 0x3c, 0x88, 0x88, 0xa0, 0xcf, 0x79, 0xf1, 0x5b, 0x10, 0xf1, 0xbb, 0xc5, + 0xbf, 0xe1, 0x76, 0xed, 0x21, 0x70, 0xec, 0xd6, 0x4d, 0xb7, 0x88, 0xce, 0xb7, 0x61, 0x88, 0x7c, + 0xa7, 0x83, 0xcc, 0x7d, 0x02, 0x32, 0x2f, 0x88, 0x4c, 0x60, 0xfc, 0x08, 0xbd, 0xcf, 0x41, 0xc8, + 0x56, 0x9b, 0x07, 0x44, 0xe8, 0x5b, 0x83, 0x21, 0x64, 0xd7, 0x3e, 0x00, 0x42, 0x32, 0x48, 0xe7, + 0xf1, 0x1e, 0xef, 0x80, 0xe4, 0xaf, 0x97, 0xec, 0x54, 0x7c, 0x98, 0xf9, 0x90, 0x3c, 0x12, 0xcc, + 0x8e, 0x8b, 0x24, 0x54, 0xda, 0x43, 0x40, 0xee, 0xaf, 0xbc, 0xc8, 0x2d, 0x8b, 0xc8, 0xbd, 0xb0, + 0x3f, 0x1b, 0x18, 0x0d, 0xa3, 0xe9, 0x61, 0xef, 0x75, 0xd0, 0x5a, 0x11, 0xd0, 0xba, 0x73, 0x40, + 0x32, 0xe3, 0xc7, 0xec, 0xab, 0x29, 0x18, 0xb7, 0xfd, 0xda, 0x2c, 0xf4, 0x91, 0x84, 0xb0, 0x9b, + 0xdd, 0x31, 0x76, 0xcc, 0x3a, 0x69, 0x83, 0x74, 0xdd, 0xb8, 0xca, 0x43, 0x5e, 0xb6, 0x24, 0x43, + 0x0e, 0xa0, 0x7d, 0x46, 0xbf, 0xfd, 0x03, 0x6c, 0x2a, 0xea, 0x00, 0x8b, 0x5e, 0x21, 0x85, 0x5d, + 0x8a, 0x0a, 0xdc, 0xaf, 0x62, 0xeb, 0x99, 0x38, 0x86, 0x7e, 0x22, 0xd4, 0x2a, 0xb6, 0x4f, 0x4b, + 0xa2, 0x09, 0x4f, 0x65, 0x80, 0xc9, 0xd8, 0x65, 0x70, 0xa9, 0x9d, 0xa2, 0x32, 0x77, 0x5f, 0x31, + 0x5f, 0x5b, 0xa3, 0x33, 0xb1, 0x55, 0x75, 0x49, 0x96, 0xd0, 0xc3, 0x29, 0x90, 0x19, 0x69, 0x8c, + 0xce, 0xda, 0x5e, 0x1b, 0xa3, 0x5f, 0x39, 0xe4, 0x89, 0x18, 0xfa, 0xa1, 0x57, 0x99, 0x94, 0x44, + 0x39, 0xb9, 0xd5, 0x9f, 0xbb, 0x6e, 0x13, 0x7c, 0xc4, 0x65, 0x80, 0x5e, 0x11, 0x20, 0x61, 0xe8, + 0x33, 0x8e, 0x00, 0x2c, 0x09, 0x02, 0x70, 0xdb, 0x00, 0x24, 0x1e, 0xb2, 0x1c, 0x7c, 0x36, 0x09, + 0x93, 0xf6, 0x34, 0x62, 0x1e, 0x5b, 0xf5, 0x2d, 0x74, 0x26, 0xec, 0xda, 0x4c, 0x06, 0x69, 0xc7, + 0x6c, 0x72, 0x2a, 0xc9, 0x5f, 0xf4, 0x8f, 0x89, 0xb0, 0x7b, 0x1e, 0x9c, 0x37, 0x42, 0xcd, 0x3e, + 0x0b, 0xdb, 0x70, 0x3b, 0x1a, 0x21, 0x0a, 0x8c, 0x5f, 0x5d, 0x7f, 0x23, 0x09, 0x50, 0x33, 0x9c, + 0x49, 0xeb, 0x01, 0x38, 0x29, 0x38, 0x59, 0xe7, 0x45, 0x4e, 0xf6, 0x5c, 0xd1, 0xbb, 0xd5, 0x46, + 0x1f, 0x4b, 0xd1, 0x5b, 0x1d, 0x16, 0xcf, 0x0b, 0x2c, 0x3e, 0x1d, 0xa9, 0xa6, 0xf8, 0xf9, 0xfb, + 0xb1, 0x24, 0x8c, 0x17, 0x76, 0xda, 0x4d, 0xbd, 0x4e, 0xd6, 0x8d, 0xcf, 0x0d, 0xc9, 0x5e, 0xf4, + 0x70, 0x32, 0xe2, 0xe8, 0xe3, 0xd4, 0xe1, 0xc3, 0x4b, 0xe6, 0xba, 0x94, 0xb4, 0x5d, 0x97, 0x42, + 0x9a, 0x35, 0xfb, 0x14, 0x3e, 0x02, 0xf1, 0x94, 0xe0, 0x58, 0xa5, 0x8d, 0x5b, 0x73, 0x26, 0xd6, + 0x1a, 0x75, 0x73, 0x67, 0x7b, 0xbd, 0x83, 0x72, 0x61, 0x65, 0xd4, 0x63, 0x6d, 0x49, 0x0a, 0xd6, + 0x16, 0xf4, 0x62, 0xef, 0xe0, 0xbe, 0x28, 0xb2, 0xf7, 0xb4, 0x9f, 0x95, 0xcf, 0x43, 0xc3, 0x00, + 0x93, 0xbf, 0x48, 0x56, 0xe7, 0x2e, 0x93, 0x4b, 0x2a, 0x8a, 0xc9, 0xe5, 0x5d, 0x0e, 0xb2, 0xf7, + 0x0b, 0xc8, 0xbe, 0x30, 0x7a, 0xbb, 0x46, 0xb2, 0x79, 0x30, 0x55, 0xc5, 0x96, 0x0f, 0xbc, 0x57, + 0xc3, 0xe4, 0xba, 0xfb, 0xc5, 0x81, 0x58, 0x8c, 0x24, 0xaa, 0x48, 0x77, 0x36, 0x49, 0xc9, 0x5f, + 0xf4, 0x9e, 0xa8, 0x4b, 0x33, 0x91, 0x04, 0x1f, 0x74, 0x1d, 0x04, 0x93, 0x61, 0xf6, 0x0d, 0x22, + 0xad, 0xb3, 0x02, 0xeb, 0x8f, 0x1f, 0x85, 0x77, 0x4b, 0x30, 0x55, 0xda, 0x6e, 0x1b, 0xa6, 0xb5, + 0xac, 0x99, 0xe7, 0xe9, 0xa9, 0xc6, 0x85, 0xb0, 0x9d, 0xec, 0x24, 0x80, 0x4e, 0xb3, 0x7a, 0xbc, + 0x20, 0x3d, 0x31, 0xe8, 0xa9, 0xa8, 0x58, 0x88, 0x84, 0xf8, 0xef, 0xed, 0x9a, 0x86, 0x61, 0x2d, + 0xe9, 0xad, 0xf3, 0xee, 0x06, 0xb9, 0x37, 0x2a, 0xe2, 0x2e, 0x4f, 0x24, 0xb4, 0x02, 0x29, 0x8c, + 0x1f, 0xad, 0x4f, 0x25, 0x61, 0xa2, 0xba, 0xa5, 0x99, 0x78, 0x6e, 0x8f, 0x34, 0xb6, 0xcb, 0x03, + 0xc9, 0x6f, 0x27, 0x18, 0xbd, 0xcc, 0x0b, 0x84, 0x02, 0xa9, 0xa6, 0xde, 0x3a, 0x6f, 0x6f, 0xcf, + 0x91, 0xff, 0xee, 0xd1, 0xde, 0x64, 0x8f, 0xa3, 0xbd, 0x8e, 0x89, 0xd6, 0xa9, 0xd7, 0x67, 0xee, + 0xf3, 0xb6, 0x50, 0x47, 0x7b, 0xfb, 0x16, 0x17, 0x3f, 0x1b, 0xbf, 0x92, 0x84, 0x63, 0xb9, 0x46, + 0xe3, 0x9c, 0x6e, 0x6d, 0x55, 0x6c, 0x1e, 0xdd, 0x13, 0x6e, 0x53, 0x7d, 0x1a, 0xb2, 0x6d, 0x6d, + 0xaf, 0x69, 0x68, 0xce, 0xc0, 0xc2, 0x83, 0xe8, 0xa1, 0x64, 0xc4, 0x81, 0xa5, 0x8b, 0x02, 0x1f, + 0xa6, 0x46, 0xd2, 0xe9, 0xc1, 0x45, 0xc6, 0xcf, 0xd8, 0x3f, 0x4f, 0x41, 0xa6, 0x8a, 0x35, 0xb3, + 0xbe, 0x85, 0x5e, 0x9f, 0x74, 0x19, 0x3a, 0x0f, 0xd9, 0x0d, 0xbd, 0x69, 0x61, 0xb3, 0x43, 0xd7, + 0xff, 0xde, 0x79, 0x0c, 0x1b, 0xcf, 0xe6, 0x9a, 0x46, 0xfd, 0xfc, 0x6c, 0x9e, 0x68, 0x96, 0x96, + 0x35, 0x6b, 0x9f, 0x9b, 0x9a, 0x9d, 0xa7, 0x99, 0x54, 0x3b, 0xb3, 0x72, 0x2f, 0xa4, 0x3b, 0x86, + 0x69, 0xd9, 0x6b, 0xb5, 0x53, 0xe1, 0x4a, 0xa9, 0x1a, 0xa6, 0xa5, 0xb2, 0x8c, 0x04, 0xda, 0x8d, + 0x9d, 0x66, 0xb3, 0x86, 0x2f, 0x5a, 0xf6, 0x3a, 0xc9, 0x0e, 0x2b, 0x27, 0x20, 0x63, 0x6c, 0x6c, + 0x74, 0x30, 0x5b, 0x8a, 0xa7, 0x55, 0x1e, 0x52, 0x8e, 0x43, 0xba, 0xa9, 0x6f, 0xeb, 0x16, 0x5d, + 0x71, 0xa7, 0x55, 0x16, 0x50, 0x4e, 0x81, 0x6c, 0x38, 0xab, 0x24, 0x46, 0xe8, 0x74, 0x86, 0xea, + 0xa2, 0x7d, 0xf1, 0xa4, 0xcb, 0x9d, 0xc7, 0x7b, 0x9d, 0xe9, 0x2c, 0xfd, 0x4e, 0xff, 0xa3, 0x27, + 0xa2, 0x5a, 0xe9, 0x19, 0x5f, 0xfd, 0x97, 0x8c, 0x26, 0xae, 0x1b, 0x66, 0xc3, 0xe6, 0x8d, 0xff, + 0x92, 0x91, 0xa7, 0x8b, 0x66, 0x5b, 0xef, 0x59, 0x79, 0xfc, 0xf2, 0xf4, 0x44, 0x06, 0xd2, 0x0b, + 0xa6, 0xd6, 0xde, 0x42, 0x6f, 0x4f, 0x0c, 0x5f, 0x9c, 0x1c, 0x60, 0x93, 0xfd, 0x80, 0x95, 0xfa, + 0x00, 0x9b, 0xf2, 0x00, 0xfb, 0x58, 0x12, 0x52, 0xc5, 0xc6, 0x26, 0x16, 0x8c, 0x5e, 0x09, 0x8f, + 0xd1, 0xeb, 0x04, 0x64, 0x2c, 0xcd, 0xdc, 0xc4, 0x16, 0xe7, 0x12, 0x0f, 0x39, 0x9e, 0x51, 0x92, + 0xe7, 0x7c, 0xdd, 0x0b, 0x21, 0x45, 0xda, 0x45, 0x25, 0x72, 0xea, 0xf4, 0x55, 0xbd, 0xa0, 0xa1, + 0xfc, 0x99, 0x25, 0x35, 0xce, 0x12, 0xca, 0x54, 0x9a, 0xa1, 0x1b, 0x8f, 0xf4, 0x3e, 0x3c, 0xc8, + 0xd8, 0xae, 0xd7, 0x8d, 0x56, 0x69, 0x5b, 0xdb, 0xc4, 0xd3, 0x19, 0x36, 0xb6, 0x3b, 0x11, 0xf6, + 0xd7, 0xe2, 0xb6, 0xf1, 0xa0, 0x3e, 0x9d, 0x75, 0xbf, 0xd2, 0x08, 0xd2, 0x84, 0x2d, 0xbd, 0xd1, + 0xc0, 0xad, 0xe9, 0x31, 0x76, 0x3a, 0x85, 0x85, 0x66, 0x4e, 0x42, 0x8a, 0xd0, 0x40, 0x30, 0x26, + 0x8a, 0x5d, 0x3e, 0xa2, 0x1c, 0x25, 0x52, 0xce, 0xac, 0x92, 0x72, 0x02, 0x7d, 0x21, 0x19, 0x71, + 0x0f, 0x99, 0x35, 0xae, 0xb7, 0xcc, 0xdf, 0x08, 0xe9, 0x96, 0xd1, 0xc0, 0x7d, 0x25, 0x9e, 0xa5, + 0x52, 0x9e, 0x07, 0x69, 0xdc, 0xd8, 0xc4, 0x1d, 0x0a, 0xe6, 0xc4, 0xe9, 0x93, 0xc1, 0xbc, 0x54, + 0x59, 0xe2, 0x68, 0x1b, 0xd5, 0xbd, 0xa8, 0x8d, 0xbf, 0x93, 0xfc, 0xaf, 0x0c, 0x1c, 0x63, 0xfd, + 0xb3, 0xba, 0xb3, 0x4e, 0x8a, 0x5a, 0xc7, 0xe8, 0x95, 0x92, 0x70, 0xa0, 0xb7, 0xb3, 0xb3, 0xee, + 0x8c, 0x65, 0x2c, 0xe0, 0xed, 0x44, 0xc9, 0xa1, 0xe8, 0x64, 0x69, 0x50, 0x9d, 0x2c, 0xe8, 0x57, + 0xc9, 0xee, 0x86, 0xae, 0x36, 0xce, 0xd0, 0x68, 0x5b, 0x1b, 0xf7, 0xd0, 0xa5, 0x64, 0x50, 0xd6, + 0x36, 0x2c, 0x6c, 0x96, 0x1a, 0x54, 0x1e, 0xc7, 0x55, 0x3b, 0x48, 0xf4, 0xfd, 0x3a, 0xde, 0x30, + 0x4c, 0xb2, 0x10, 0x1c, 0x67, 0xfa, 0xde, 0x0e, 0x7b, 0xfa, 0x27, 0x08, 0x46, 0xe9, 0xeb, 0xe0, + 0x98, 0xbe, 0xd9, 0x32, 0x4c, 0xec, 0x78, 0xf6, 0x4c, 0x1f, 0x65, 0x27, 0x51, 0xbb, 0xa2, 0x95, + 0x1b, 0xe0, 0x92, 0x96, 0x51, 0xc0, 0x6d, 0xce, 0x77, 0x86, 0xea, 0x24, 0xed, 0x11, 0xfb, 0x3f, + 0xa0, 0xcf, 0x47, 0x5d, 0x79, 0x76, 0x81, 0x3a, 0x34, 0xd5, 0xaf, 0xdc, 0x01, 0x47, 0x1b, 0xdc, + 0x6b, 0xa0, 0xae, 0x3b, 0x3d, 0xc2, 0x37, 0x9f, 0x90, 0xd8, 0x15, 0xa7, 0x94, 0x57, 0x9c, 0x16, + 0x60, 0x8c, 0xba, 0x9a, 0x13, 0x79, 0x4a, 0x77, 0x1d, 0x66, 0xa4, 0xd3, 0x6d, 0xa7, 0x51, 0x1e, + 0x96, 0xcc, 0xe6, 0x79, 0x16, 0xd5, 0xc9, 0x1c, 0x6d, 0xbe, 0x13, 0xcc, 0xa1, 0xf8, 0xbb, 0xde, + 0xab, 0x53, 0x70, 0x6c, 0xc1, 0x34, 0x76, 0xda, 0x1d, 0xb7, 0xeb, 0x79, 0x8f, 0x4c, 0xf7, 0xee, + 0x7a, 0x64, 0x05, 0xc3, 0x75, 0xe2, 0xfd, 0xd8, 0xbe, 0xb1, 0xc1, 0x1b, 0xe5, 0xed, 0x9c, 0xd2, + 0x41, 0x3a, 0xa7, 0x2b, 0xe2, 0x29, 0xaf, 0x88, 0xa3, 0xaf, 0x47, 0x9d, 0xab, 0x76, 0x35, 0xd2, + 0x47, 0x14, 0xf3, 0x90, 0xd9, 0xa4, 0x09, 0xb9, 0x24, 0x5e, 0x1f, 0x8e, 0x6a, 0x5a, 0xb8, 0xca, + 0xb3, 0xba, 0x3c, 0x93, 0x3c, 0x3c, 0x8b, 0x26, 0x16, 0xc1, 0xd4, 0x8e, 0xc0, 0xb4, 0x91, 0x82, + 0xa3, 0x4e, 0xed, 0xa5, 0x46, 0x07, 0x19, 0xfd, 0x44, 0x62, 0x9f, 0x21, 0xc3, 0xd1, 0x73, 0x92, + 0x47, 0xcf, 0xf5, 0xd0, 0x4c, 0x13, 0x3d, 0x35, 0x13, 0x7a, 0x48, 0x0a, 0x7b, 0x5d, 0x83, 0xd8, + 0x2d, 0x29, 0xb9, 0xcf, 0x64, 0x45, 0x13, 0xf2, 0xd2, 0x88, 0xfe, 0xad, 0x8a, 0x5f, 0x0a, 0x9e, + 0x4c, 0xc2, 0x25, 0x4c, 0x41, 0xad, 0xb6, 0x3a, 0x8e, 0x7a, 0x10, 0xcf, 0xf8, 0xd2, 0x36, 0x75, + 0x9c, 0x5d, 0x51, 0x1a, 0x12, 0x2d, 0xc0, 0xf7, 0x89, 0xe0, 0x3d, 0xcf, 0x5f, 0x0d, 0x7a, 0x6a, + 0xf1, 0x59, 0x4b, 0xfe, 0x9e, 0xc3, 0xbb, 0x65, 0x81, 0x77, 0x67, 0x06, 0x29, 0x74, 0x04, 0xda, + 0x55, 0x82, 0xf1, 0x2a, 0xb6, 0x96, 0xb4, 0x3d, 0x63, 0xc7, 0x42, 0x5a, 0x58, 0xb3, 0xd4, 0x6d, + 0x90, 0x69, 0xd2, 0x2c, 0x54, 0x83, 0x4c, 0x9d, 0xbe, 0xb2, 0xa7, 0xf1, 0x94, 0x6e, 0x6e, 0xb1, + 0xa2, 0x55, 0x9e, 0x1e, 0xbd, 0x39, 0xaa, 0xe9, 0xdd, 0xa1, 0x6e, 0x28, 0x76, 0xc3, 0x48, 0x86, + 0x79, 0xbf, 0xaa, 0xe3, 0x87, 0xe5, 0xc5, 0x12, 0x4c, 0x52, 0x57, 0xfd, 0x79, 0x6d, 0xd7, 0x30, + 0x75, 0x0b, 0x47, 0xb3, 0x18, 0x3a, 0xd9, 0xf8, 0x79, 0x04, 0x4f, 0x0c, 0x7a, 0x77, 0x32, 0xe2, + 0x96, 0x9c, 0x40, 0xc7, 0x50, 0x40, 0x88, 0xb4, 0x81, 0x17, 0x54, 0xfd, 0x08, 0x81, 0xc8, 0x99, + 0xf5, 0x2d, 0x7d, 0x17, 0x37, 0x22, 0x02, 0x61, 0x67, 0x73, 0x81, 0x70, 0x0a, 0x1a, 0x0c, 0x08, + 0x3b, 0xfb, 0x21, 0x01, 0xe1, 0x53, 0x7d, 0xfc, 0x40, 0xbc, 0x93, 0x01, 0xe1, 0xf1, 0x4d, 0x58, + 0x0e, 0x0b, 0xc4, 0xd5, 0x30, 0xe9, 0x5a, 0x15, 0x56, 0xcd, 0x26, 0x9f, 0xf5, 0x88, 0x91, 0xe8, + 0x33, 0x03, 0xc0, 0xd1, 0xd7, 0xcd, 0x20, 0x1a, 0x1c, 0x9f, 0x8e, 0x08, 0xc7, 0x33, 0xd5, 0x85, + 0xe0, 0x29, 0x89, 0x9d, 0xa8, 0x12, 0x3c, 0x39, 0x1e, 0x0c, 0x0b, 0xd7, 0x3e, 0xaf, 0x91, 0x6c, + 0x64, 0xaf, 0x91, 0xcf, 0x45, 0xf5, 0x1a, 0xe9, 0xa6, 0x76, 0x28, 0x70, 0x46, 0x72, 0x0a, 0xe9, + 0x43, 0xc1, 0x21, 0x23, 0xfa, 0x3d, 0x09, 0x80, 0xde, 0x15, 0xca, 0xfc, 0x9d, 0x16, 0x21, 0xc3, + 0xfe, 0xda, 0x4e, 0x93, 0x09, 0xd7, 0x69, 0xf2, 0x06, 0x48, 0xef, 0x6a, 0xcd, 0x1d, 0xec, 0xf0, + 0xa8, 0x7b, 0x22, 0x7a, 0x96, 0x7c, 0x55, 0x59, 0x22, 0xb4, 0x15, 0x56, 0x2a, 0xee, 0xf1, 0x3a, + 0xec, 0x10, 0x79, 0xb8, 0xc6, 0x87, 0x8b, 0x9c, 0xc6, 0x59, 0xf6, 0xeb, 0xfa, 0x68, 0xbd, 0x35, + 0xaa, 0x03, 0x85, 0xa7, 0xac, 0x61, 0x48, 0x43, 0x24, 0x97, 0x0a, 0xdf, 0xba, 0x47, 0x70, 0xd4, + 0x29, 0x09, 0xe9, 0x9a, 0x51, 0xc5, 0xc2, 0x79, 0xb3, 0x60, 0x6c, 0xdc, 0x25, 0x70, 0x52, 0x58, + 0x02, 0xff, 0x7a, 0x54, 0x53, 0x24, 0xad, 0xd7, 0xff, 0x42, 0xc0, 0x0e, 0x76, 0xb7, 0xfe, 0x59, + 0x20, 0x9a, 0xed, 0xb0, 0x57, 0xf1, 0xf1, 0x33, 0xf4, 0x0c, 0x1c, 0x5b, 0x6d, 0x35, 0x0c, 0x15, + 0x37, 0x0c, 0x6e, 0x8b, 0x21, 0x0b, 0xcf, 0x9d, 0x56, 0xc3, 0xa0, 0xb4, 0xa6, 0x55, 0xfa, 0x9f, + 0xc4, 0x99, 0xb8, 0x61, 0x70, 0x43, 0x39, 0xfd, 0x8f, 0xde, 0x20, 0x41, 0x8a, 0xe4, 0x0d, 0xef, + 0xd9, 0xf2, 0xfd, 0xa8, 0x07, 0x53, 0x48, 0xf1, 0xc3, 0x90, 0x6f, 0xe5, 0x1e, 0x8f, 0x75, 0x8a, + 0x6d, 0x0a, 0x5f, 0xe5, 0x57, 0x9f, 0x87, 0x15, 0x1e, 0xab, 0xd4, 0xfb, 0xa2, 0x1c, 0x66, 0xe9, + 0x41, 0x76, 0x34, 0x24, 0x0b, 0x03, 0xa8, 0x48, 0x19, 0x8e, 0xe6, 0x73, 0x65, 0x7a, 0xbb, 0xc2, + 0x72, 0xe5, 0x6c, 0x51, 0x96, 0x28, 0x40, 0xa4, 0x35, 0x31, 0x02, 0x44, 0x8a, 0xff, 0x27, 0x08, + 0x50, 0x0f, 0xb2, 0x0f, 0x03, 0xa0, 0xcf, 0x26, 0x61, 0x72, 0x49, 0xef, 0x58, 0x7e, 0x4e, 0x62, + 0xf6, 0xa6, 0xb3, 0x6d, 0x1f, 0x70, 0x23, 0xc4, 0x8b, 0xb9, 0xc3, 0x4c, 0x08, 0x85, 0x7a, 0x7c, + 0x20, 0xdb, 0xef, 0x4d, 0x13, 0x69, 0x0e, 0x1e, 0x54, 0xc5, 0x68, 0xbc, 0x19, 0x29, 0x05, 0xec, + 0x2a, 0xb5, 0xd0, 0x9c, 0x8c, 0x3c, 0xf4, 0xba, 0x95, 0x8c, 0x7e, 0xe8, 0xf5, 0xad, 0x3b, 0x7e, + 0xfe, 0xfe, 0x4d, 0x12, 0x2e, 0x21, 0xd5, 0x07, 0x2d, 0x38, 0xfd, 0xd9, 0xdc, 0x77, 0xc1, 0x19, + 0xd9, 0xe6, 0xb5, 0x8f, 0x96, 0x61, 0xd8, 0xbc, 0xfa, 0x15, 0x3a, 0x62, 0x36, 0xfb, 0x18, 0x58, + 0xfa, 0xb1, 0x39, 0xc0, 0xc0, 0x32, 0x38, 0x9b, 0x83, 0x8d, 0x2c, 0x03, 0xb2, 0xf9, 0xd0, 0x4c, + 0x27, 0x5f, 0x4b, 0xc2, 0x64, 0xae, 0xdd, 0x6e, 0xee, 0xd5, 0xf8, 0xc9, 0x91, 0x48, 0xa6, 0x13, + 0xcf, 0x01, 0x94, 0xe4, 0xbe, 0xe3, 0x97, 0x91, 0xdd, 0xca, 0x05, 0x3a, 0x86, 0xe1, 0x56, 0x1e, + 0x54, 0x60, 0xfc, 0xac, 0x7d, 0x59, 0x9a, 0x29, 0x62, 0x7e, 0x31, 0xc4, 0x57, 0x12, 0xc1, 0x37, + 0x43, 0x08, 0xf2, 0x9c, 0xec, 0x96, 0xe7, 0xbb, 0x20, 0xb3, 0x61, 0x98, 0xdb, 0x9a, 0x6d, 0xcb, + 0xbd, 0xc6, 0x4f, 0x9c, 0xf8, 0xdd, 0x0b, 0xf3, 0x34, 0xb1, 0xca, 0x33, 0x91, 0x11, 0xed, 0x45, + 0x7a, 0x9b, 0x9f, 0x9d, 0x26, 0x7f, 0xe9, 0xa5, 0x28, 0xec, 0x08, 0x75, 0x19, 0x77, 0x2c, 0xdc, + 0xa0, 0x9b, 0x95, 0x63, 0xaa, 0x18, 0xa9, 0xcc, 0xc0, 0x51, 0x1e, 0x31, 0xaf, 0x37, 0x71, 0x87, + 0x6e, 0x41, 0x8f, 0xa9, 0x42, 0x1c, 0xfa, 0xe2, 0x20, 0x03, 0x47, 0xe4, 0x1b, 0x2b, 0xa6, 0x21, + 0xdb, 0xd9, 0xa9, 0xd7, 0x31, 0x6e, 0x70, 0xaf, 0x24, 0x3b, 0x18, 0xd1, 0xcb, 0x31, 0xf2, 0x30, + 0x73, 0x38, 0x97, 0x59, 0xcc, 0xac, 0x40, 0x86, 0x61, 0xa8, 0x1c, 0x85, 0x31, 0xdb, 0xcf, 0x92, + 0xf9, 0x91, 0xac, 0xf0, 0x45, 0xba, 0x9c, 0x20, 0x25, 0xde, 0x57, 0xad, 0x94, 0xd9, 0x05, 0x5f, + 0x85, 0x0a, 0xbf, 0xe0, 0xab, 0x7a, 0x76, 0x41, 0x4e, 0x29, 0x53, 0x00, 0x0b, 0x6a, 0x6e, 0x65, + 0x71, 0x8d, 0xa6, 0x48, 0xa3, 0xa7, 0xb2, 0x90, 0x61, 0x6e, 0x9b, 0xe8, 0xc9, 0xb4, 0xf7, 0x81, + 0x95, 0xa3, 0x2d, 0x83, 0x90, 0xb9, 0xa2, 0x99, 0xda, 0x76, 0x27, 0x68, 0x6f, 0x8c, 0xe5, 0x76, + 0x1e, 0x57, 0x29, 0x7b, 0xb2, 0x2d, 0x1e, 0x51, 0x85, 0x62, 0x94, 0x7f, 0x01, 0xc7, 0xd6, 0xf9, + 0x81, 0x83, 0x0e, 0x2f, 0x39, 0xe9, 0xbf, 0xad, 0xda, 0x55, 0xf2, 0x9c, 0x98, 0x73, 0xf1, 0x88, + 0xda, 0x5d, 0x98, 0x52, 0x82, 0xf1, 0x4e, 0x4b, 0x6b, 0x77, 0xb6, 0x0c, 0xc7, 0xe5, 0xe2, 0xfa, + 0x10, 0x25, 0x57, 0x79, 0x1e, 0xd5, 0xcd, 0xad, 0x3c, 0x0f, 0x9e, 0xb5, 0x43, 0x6f, 0x84, 0x2b, + 0x5e, 0xd4, 0x3b, 0x96, 0xde, 0xda, 0x14, 0xaf, 0x1a, 0xe8, 0xfd, 0x51, 0xb9, 0x83, 0x7b, 0x24, + 0xa5, 0xa9, 0xf8, 0x3c, 0x37, 0x44, 0xdd, 0x1e, 0xaf, 0xa4, 0x3b, 0x20, 0xb5, 0x4d, 0x64, 0x2f, + 0x13, 0x3a, 0xf3, 0x32, 0x15, 0x38, 0x92, 0x09, 0xcd, 0xc0, 0x51, 0x2f, 0xeb, 0x7b, 0x69, 0x13, + 0x74, 0x15, 0x1c, 0xeb, 0x62, 0xa2, 0x7d, 0x5c, 0x25, 0xe1, 0x1e, 0x57, 0xf9, 0x25, 0x18, 0xb3, + 0xf9, 0xb1, 0xef, 0x5e, 0xd7, 0x1c, 0x8c, 0xd9, 0x1c, 0xe2, 0xc0, 0x5d, 0xd3, 0x65, 0xdb, 0xab, + 0x6e, 0x6b, 0xa6, 0x45, 0x77, 0xb2, 0xed, 0x42, 0xe6, 0xb4, 0x0e, 0x56, 0x9d, 0x6c, 0x33, 0x37, + 0x42, 0x8a, 0x50, 0xad, 0x28, 0x30, 0x95, 0x5b, 0x5a, 0x5a, 0xab, 0xd0, 0x3b, 0x85, 0x17, 0x4b, + 0xe5, 0x05, 0xd6, 0x01, 0x4a, 0x0b, 0xe5, 0x8a, 0x5a, 0x64, 0xf2, 0x5f, 0x95, 0x13, 0x33, 0x57, + 0x72, 0x9f, 0x29, 0x80, 0x0c, 0x6b, 0x1e, 0x93, 0xf6, 0xe2, 0x45, 0x66, 0x70, 0x93, 0xe9, 0x55, + 0xe7, 0x6d, 0xda, 0x16, 0xd1, 0x68, 0x11, 0xc6, 0x69, 0xd0, 0xe1, 0x66, 0xaf, 0x41, 0xe5, 0x43, + 0x51, 0x3c, 0x00, 0x7b, 0x96, 0x14, 0x4d, 0x1f, 0xcc, 0xef, 0xd3, 0x07, 0x0a, 0x4c, 0x95, 0xca, + 0xb5, 0xa2, 0x5a, 0xce, 0x2d, 0x39, 0x0a, 0x61, 0x9f, 0x8e, 0x48, 0x8a, 0x3a, 0x42, 0x42, 0xdf, + 0x94, 0x00, 0x18, 0x39, 0x44, 0x51, 0x79, 0xaf, 0x63, 0xfb, 0x4a, 0x54, 0x9d, 0xec, 0x16, 0xe3, + 0xa3, 0x93, 0x4b, 0x30, 0x66, 0xf2, 0x0f, 0xdc, 0xb6, 0xd7, 0xaf, 0x1c, 0xf6, 0xd7, 0x2e, 0x4d, + 0x75, 0xb2, 0xa3, 0x8f, 0x46, 0x51, 0xc1, 0xbe, 0x84, 0x1d, 0x0e, 0xcb, 0x9b, 0xf6, 0x29, 0x01, + 0xcf, 0xcc, 0x86, 0xe9, 0x81, 0x70, 0x6d, 0x10, 0x33, 0x7b, 0x54, 0xc2, 0x8c, 0xb2, 0x5f, 0xfc, + 0xd1, 0xa7, 0x8e, 0xc1, 0x14, 0x2b, 0xc3, 0x39, 0xb0, 0xff, 0x0f, 0x49, 0x90, 0x72, 0x0d, 0xe1, + 0xee, 0xb3, 0xe0, 0x69, 0xda, 0x0c, 0x1c, 0xf5, 0x78, 0xd4, 0x38, 0x17, 0xe9, 0x79, 0xe3, 0xc4, + 0x57, 0x58, 0x02, 0x9f, 0xb7, 0x12, 0xa9, 0x99, 0xcd, 0x35, 0x86, 0xb3, 0xc7, 0x15, 0xc5, 0x63, + 0x3e, 0xa0, 0xf2, 0xf8, 0x27, 0x75, 0x0f, 0xbb, 0x97, 0x94, 0x0f, 0x15, 0x81, 0xa8, 0xc7, 0x75, + 0x1c, 0x26, 0x84, 0x5b, 0x81, 0x0f, 0xfd, 0x00, 0x48, 0x70, 0xfd, 0xf1, 0xe3, 0xf0, 0x53, 0x6e, + 0x32, 0xca, 0xed, 0x6a, 0x7a, 0x53, 0x5b, 0x6f, 0x46, 0x38, 0x57, 0xf8, 0x29, 0x2f, 0xab, 0xcb, + 0x22, 0xab, 0x6f, 0x0b, 0x6a, 0xaa, 0x50, 0x9f, 0xef, 0x3d, 0xf2, 0xe3, 0x36, 0xae, 0xae, 0x77, + 0x90, 0x38, 0x6e, 0xda, 0xe5, 0xa9, 0x6e, 0x4a, 0xf4, 0x07, 0x0e, 0xeb, 0x7f, 0x5e, 0x60, 0xfd, + 0x5d, 0x83, 0xd2, 0x13, 0x3f, 0x02, 0x2f, 0x97, 0x60, 0x22, 0xd7, 0x68, 0xcc, 0x63, 0xcd, 0xda, + 0x31, 0x71, 0x03, 0x15, 0xc3, 0x76, 0x87, 0xcb, 0xbb, 0x59, 0x34, 0xee, 0xe5, 0xc4, 0x47, 0x42, + 0x5f, 0xc3, 0xb8, 0x5f, 0x1b, 0xd8, 0xb4, 0x0c, 0x45, 0x25, 0x85, 0xbb, 0xb4, 0x31, 0x34, 0x11, + 0xf1, 0x03, 0xf2, 0x1a, 0x09, 0xa6, 0x54, 0x7a, 0x89, 0xf9, 0xb0, 0x31, 0xf9, 0xb8, 0x17, 0x93, + 0x8a, 0x88, 0xc9, 0x99, 0x20, 0x76, 0x88, 0xe4, 0x0c, 0x05, 0x16, 0xd7, 0xbe, 0xad, 0x0a, 0xb0, + 0xdc, 0x3d, 0x30, 0x1d, 0xf1, 0x23, 0xf3, 0x03, 0x00, 0xf0, 0xf8, 0x44, 0x7c, 0x13, 0xdc, 0xb3, + 0x00, 0xe8, 0x73, 0x12, 0x1b, 0xcf, 0xab, 0xc2, 0x91, 0x4f, 0xd1, 0x15, 0x22, 0xd1, 0xc3, 0x15, + 0x22, 0xd4, 0xa8, 0xf2, 0xa3, 0x88, 0x5b, 0xec, 0xdc, 0x4b, 0xa1, 0xef, 0xe0, 0x3e, 0xa0, 0x96, + 0x7b, 0x3a, 0xc2, 0x5e, 0x7b, 0x3f, 0x52, 0xe2, 0x7f, 0x36, 0x23, 0x68, 0xaf, 0x5d, 0x99, 0x86, + 0xe3, 0x6a, 0x31, 0x57, 0xa8, 0x94, 0x97, 0x1e, 0xf0, 0x7e, 0x95, 0x53, 0xe8, 0x8d, 0x12, 0x64, + 0x98, 0xbc, 0xc5, 0x83, 0xe9, 0x7f, 0x88, 0xa8, 0x20, 0x45, 0x46, 0x32, 0xca, 0x7c, 0xd6, 0x41, + 0xff, 0x29, 0x82, 0xca, 0x0b, 0x51, 0xec, 0x33, 0x16, 0xa2, 0x6f, 0x48, 0x90, 0xa2, 0x2b, 0xa6, + 0x9d, 0xa8, 0x00, 0x15, 0xe0, 0x0a, 0xad, 0xdd, 0xc6, 0xad, 0x86, 0x73, 0xef, 0xe0, 0xbc, 0x69, + 0x6c, 0x57, 0xac, 0x2d, 0x6c, 0x92, 0x24, 0x1d, 0x6e, 0x69, 0x0e, 0x4e, 0x84, 0xbe, 0x11, 0xd1, + 0xf8, 0x2c, 0xf2, 0x3a, 0x60, 0x91, 0x76, 0x66, 0x7f, 0xbf, 0xbc, 0xcc, 0xa7, 0x5f, 0x2e, 0xe9, + 0xad, 0xf3, 0xde, 0xbe, 0xf9, 0xa7, 0x11, 0xec, 0xd6, 0x7d, 0xe9, 0x39, 0x64, 0x47, 0x98, 0x87, + 0x32, 0x1e, 0x05, 0xfb, 0x12, 0x09, 0x64, 0x42, 0x22, 0x13, 0x51, 0x7e, 0x79, 0x56, 0x45, 0xdc, + 0x47, 0xa0, 0x91, 0xde, 0x7d, 0x04, 0x3b, 0x42, 0xb9, 0x16, 0xa6, 0xea, 0x5b, 0xb8, 0x7e, 0xbe, + 0xd4, 0xb2, 0x8d, 0x42, 0x0c, 0xe1, 0xae, 0x58, 0xd1, 0x63, 0xf6, 0x7e, 0x11, 0x52, 0xd1, 0x36, + 0x2d, 0xf0, 0xcd, 0x4b, 0x94, 0x4f, 0xa7, 0x74, 0x81, 0x29, 0x0b, 0xc0, 0xdc, 0x3e, 0x50, 0xa9, + 0xd1, 0x90, 0x29, 0x0f, 0xf6, 0xc8, 0x41, 0x65, 0x85, 0xbe, 0x0a, 0xb6, 0x5a, 0x2d, 0x16, 0xd6, + 0xe6, 0xec, 0xce, 0x57, 0x95, 0x25, 0xf4, 0xbd, 0x24, 0x64, 0x19, 0x59, 0x9d, 0xae, 0x8b, 0xa5, + 0xbd, 0xe7, 0x40, 0x12, 0xfb, 0xce, 0x81, 0xa0, 0xf7, 0x86, 0x76, 0x48, 0x76, 0x18, 0xc1, 0xeb, + 0xf1, 0xe9, 0x29, 0xb7, 0x41, 0x96, 0x81, 0x6c, 0x9b, 0x25, 0x4f, 0xfa, 0xf4, 0x13, 0x5e, 0x8c, + 0x6a, 0x27, 0x0f, 0xe9, 0x9c, 0xdc, 0x87, 0x8c, 0xf8, 0xe7, 0x1c, 0x6f, 0x9b, 0x80, 0xec, 0xa2, + 0xde, 0xb1, 0x0c, 0x73, 0x0f, 0xbd, 0x35, 0x01, 0x59, 0xfe, 0x20, 0xf8, 0x3e, 0x3b, 0xdf, 0x95, + 0x30, 0xd1, 0x36, 0xf1, 0xae, 0x6e, 0xec, 0x74, 0x3c, 0xb7, 0x08, 0x78, 0xa2, 0x14, 0x04, 0x63, + 0xda, 0x8e, 0xb5, 0x65, 0x98, 0xee, 0x95, 0x4a, 0x76, 0x58, 0x39, 0x09, 0xc0, 0xfe, 0x97, 0xb5, + 0x6d, 0xcc, 0xcf, 0x27, 0x78, 0x62, 0x14, 0x05, 0x52, 0x96, 0xbe, 0x8d, 0xf9, 0x89, 0x36, 0xfa, + 0x5f, 0x99, 0x86, 0x2c, 0x3d, 0xe1, 0x52, 0x6a, 0xf0, 0x13, 0x6d, 0x76, 0x10, 0xbd, 0x43, 0x82, + 0x09, 0xf7, 0xed, 0xf2, 0x8e, 0xd7, 0xd3, 0xbd, 0xcf, 0xfd, 0xee, 0x4d, 0xad, 0x63, 0x67, 0x73, + 0xf6, 0xa2, 0xc4, 0x48, 0xf7, 0x74, 0x9d, 0xe4, 0x39, 0xe4, 0x8a, 0x3e, 0x94, 0x0c, 0x7b, 0x3e, + 0x84, 0x33, 0xd3, 0xf3, 0xb8, 0xba, 0xbf, 0x6c, 0x8d, 0xf1, 0xd7, 0xdc, 0x6d, 0x25, 0x7c, 0x79, + 0xcf, 0x92, 0x78, 0x31, 0xaa, 0x93, 0x3a, 0xe4, 0x99, 0x8e, 0xfe, 0x94, 0xc4, 0x2f, 0x5e, 0x7f, + 0x2f, 0xc1, 0x44, 0x75, 0xcb, 0xb8, 0x60, 0x3f, 0x95, 0xff, 0x4b, 0xe1, 0xa0, 0xba, 0x1c, 0xc6, + 0x77, 0xbb, 0x60, 0x72, 0x23, 0xfc, 0xaf, 0x06, 0x46, 0x8f, 0x4a, 0x51, 0x61, 0xf2, 0x10, 0x37, + 0xf4, 0x2b, 0x7d, 0x95, 0x17, 0xb8, 0xcf, 0xf7, 0x33, 0xcb, 0x4a, 0x30, 0xc0, 0xde, 0xc7, 0xfd, + 0xed, 0x06, 0xa6, 0xc4, 0x06, 0x46, 0x43, 0xde, 0xbf, 0x71, 0x23, 0xb8, 0xda, 0x20, 0x49, 0xbd, + 0x4c, 0x6d, 0xe0, 0xf3, 0x43, 0x00, 0x1e, 0xfd, 0x38, 0x11, 0xd6, 0xfe, 0xe8, 0x70, 0xc0, 0xa1, + 0xe0, 0x40, 0x77, 0x70, 0xf4, 0x2d, 0x2e, 0x7e, 0x7e, 0xfe, 0xda, 0x25, 0x90, 0x9a, 0xd7, 0x9b, + 0x98, 0xac, 0xdf, 0xb3, 0x95, 0x8d, 0x0d, 0x7a, 0x87, 0x46, 0xd1, 0xff, 0xc1, 0xbd, 0x53, 0x20, + 0xdb, 0x7b, 0xb4, 0x86, 0xb5, 0xa2, 0xb7, 0x5a, 0x8e, 0x1b, 0xc9, 0xbe, 0x78, 0xd1, 0xd4, 0x15, + 0xe8, 0xdb, 0x49, 0x28, 0x98, 0xe5, 0xb5, 0xfb, 0xf4, 0x97, 0x6b, 0x61, 0x6a, 0x7d, 0xcf, 0xc2, + 0x1d, 0x9e, 0x8a, 0x57, 0x9b, 0x52, 0xbb, 0x62, 0xd1, 0x53, 0xa1, 0xbc, 0x3d, 0x03, 0x2a, 0x8c, + 0xc6, 0x73, 0x6d, 0x48, 0x8f, 0xf6, 0x6f, 0xd2, 0xe7, 0xb8, 0x4a, 0x4b, 0x2c, 0xf6, 0x81, 0x62, + 0x6d, 0x6d, 0xa5, 0x54, 0x2e, 0x17, 0x0b, 0xf2, 0x16, 0xfa, 0x98, 0x04, 0x13, 0x64, 0x5e, 0x65, + 0xa3, 0x53, 0x11, 0x5e, 0x33, 0x33, 0x5a, 0xcd, 0x3d, 0x77, 0xee, 0x68, 0x07, 0x23, 0xe1, 0xf4, + 0x1f, 0x43, 0x4f, 0x6f, 0x28, 0xdb, 0x3c, 0xb4, 0xf8, 0x63, 0xb5, 0xa1, 0x37, 0xbb, 0xb1, 0x4a, + 0xab, 0x5d, 0xb1, 0x3d, 0x30, 0x95, 0x7a, 0x62, 0xfa, 0x87, 0xa1, 0x26, 0x3d, 0x7d, 0x88, 0x8b, + 0x86, 0xeb, 0xe2, 0xb0, 0x70, 0x45, 0x3f, 0x94, 0x20, 0xb3, 0xda, 0xa6, 0xc8, 0x3d, 0xed, 0x71, + 0xc2, 0xd8, 0xb7, 0x1f, 0x4a, 0x94, 0x54, 0x53, 0x7c, 0xbe, 0x59, 0x75, 0x23, 0x94, 0xdb, 0xf9, + 0x46, 0x0f, 0x73, 0xc0, 0xb8, 0x36, 0xf0, 0x48, 0x2f, 0xe5, 0x84, 0x67, 0xbf, 0xf7, 0x06, 0xb8, + 0xa4, 0xa1, 0x77, 0xb4, 0xf5, 0x26, 0x2e, 0xb6, 0xea, 0xe6, 0x1e, 0x6b, 0x34, 0xdb, 0x5e, 0xde, + 0xff, 0x41, 0xb9, 0x0b, 0xd2, 0x1d, 0x6b, 0xaf, 0xb9, 0x7f, 0x6f, 0xd9, 0xb7, 0xaa, 0x2a, 0x49, + 0xae, 0xb2, 0x5c, 0xe8, 0xa7, 0x89, 0xb0, 0xde, 0xab, 0x34, 0x2f, 0x63, 0x8d, 0xbf, 0x2b, 0xc6, + 0x96, 0xd6, 0x71, 0x5c, 0x31, 0xc8, 0x7f, 0xf4, 0x78, 0x28, 0x17, 0x53, 0xff, 0xb2, 0xe3, 0xd7, + 0xa9, 0x5f, 0x4f, 0xc2, 0x58, 0xc1, 0xb8, 0xd0, 0xa2, 0x98, 0xdf, 0x22, 0xf8, 0xdd, 0xd0, 0xd6, + 0x24, 0xdc, 0xd6, 0xf4, 0x72, 0x36, 0x41, 0xff, 0x36, 0xf4, 0xf6, 0x32, 0x6d, 0xa5, 0x5d, 0x95, + 0x0f, 0x0f, 0x03, 0xc5, 0xca, 0x63, 0xfa, 0x0f, 0xda, 0x7c, 0x0e, 0xaa, 0x27, 0x1a, 0x3f, 0x73, + 0x07, 0x7e, 0x20, 0x00, 0x3d, 0x25, 0x41, 0xaa, 0x60, 0x1a, 0x6d, 0xf4, 0xfb, 0x89, 0x08, 0x7b, + 0x60, 0x0d, 0xd3, 0x68, 0xd7, 0xe8, 0x0d, 0x2f, 0xce, 0x14, 0x40, 0x88, 0x53, 0xce, 0xc0, 0x58, + 0xdb, 0xe8, 0xe8, 0x96, 0x3d, 0xad, 0x9a, 0xda, 0xf7, 0x0a, 0x2f, 0x93, 0xfc, 0x15, 0x9e, 0x48, + 0x75, 0x92, 0x13, 0x3d, 0x46, 0x39, 0x4a, 0xd8, 0x44, 0xb8, 0x6a, 0xdf, 0x44, 0xd3, 0x15, 0x8b, + 0x7e, 0xc7, 0x0b, 0xec, 0x1d, 0x22, 0xb0, 0xd7, 0xf4, 0x60, 0xb8, 0xe9, 0xf7, 0xac, 0x67, 0x44, + 0xab, 0xf5, 0xeb, 0x1d, 0x90, 0xef, 0x16, 0x40, 0x3e, 0x15, 0xaa, 0xce, 0xf8, 0x3b, 0xcc, 0xf7, + 0xb3, 0x00, 0x65, 0x6d, 0x57, 0xdf, 0x64, 0x36, 0x93, 0xaf, 0xda, 0x03, 0x1e, 0xb7, 0x6e, 0xbc, + 0xdc, 0x83, 0xf3, 0x19, 0xc8, 0x72, 0x58, 0x79, 0x1b, 0x9e, 0x23, 0xb4, 0xc1, 0x2d, 0x85, 0x69, + 0xa8, 0x8b, 0x96, 0x6a, 0xa7, 0x17, 0x2e, 0x9d, 0x4a, 0x76, 0x5d, 0x3a, 0xd5, 0x73, 0x79, 0xe6, + 0x77, 0x15, 0x15, 0xfa, 0x70, 0xe8, 0x7b, 0x1b, 0x3c, 0xf4, 0x78, 0x5a, 0xe4, 0x03, 0xea, 0xad, + 0x90, 0x35, 0x1c, 0x33, 0x8f, 0xe4, 0xbb, 0x1e, 0x28, 0xb5, 0x36, 0x0c, 0xd5, 0x4e, 0x19, 0xf2, + 0x46, 0x86, 0x50, 0x74, 0xc4, 0x0f, 0xf4, 0xe7, 0x25, 0x38, 0xb1, 0x60, 0x1f, 0x4a, 0x24, 0xed, + 0x38, 0xa7, 0x5b, 0x5b, 0x4b, 0x7a, 0xeb, 0x7c, 0x07, 0xfd, 0xcb, 0x70, 0x33, 0x79, 0x0f, 0xfe, + 0xc9, 0x68, 0xf8, 0x8b, 0x9e, 0x82, 0x55, 0x11, 0xb5, 0xbb, 0xfc, 0x4a, 0xe9, 0x4d, 0xad, 0x0f, + 0x80, 0xb7, 0x43, 0x86, 0x11, 0xca, 0xbb, 0xe5, 0x8c, 0x2f, 0x7e, 0x4e, 0x49, 0x2a, 0xcf, 0xe1, + 0xf1, 0x02, 0x3a, 0x2b, 0xe0, 0x38, 0x77, 0x20, 0xca, 0xe2, 0xf7, 0x14, 0xbc, 0x05, 0xb2, 0x9c, + 0xd3, 0xca, 0x94, 0xb7, 0x17, 0xcb, 0x47, 0x14, 0x80, 0xcc, 0xb2, 0xb1, 0x8b, 0x6b, 0x86, 0x9c, + 0x20, 0xff, 0x09, 0x7d, 0x35, 0x43, 0x4e, 0xa2, 0xff, 0x02, 0x30, 0xe6, 0x38, 0xfc, 0x7e, 0x39, + 0x69, 0xdf, 0x29, 0x4e, 0xcd, 0xd4, 0x8c, 0x19, 0xa1, 0x77, 0xd3, 0x5f, 0x13, 0xda, 0xf0, 0xe9, + 0x38, 0xe2, 0x76, 0x57, 0x16, 0xf2, 0xba, 0xde, 0xf7, 0x84, 0x32, 0x84, 0x86, 0xad, 0x25, 0xfe, + 0xae, 0xf6, 0x9d, 0xa4, 0xfd, 0x72, 0x83, 0x4b, 0x04, 0xdd, 0xff, 0x13, 0x5f, 0xa2, 0x76, 0x37, + 0x18, 0x38, 0x73, 0x3d, 0x31, 0xe2, 0x73, 0xa4, 0x81, 0x3b, 0xaf, 0xbe, 0xed, 0x0e, 0x38, 0xf8, + 0xdc, 0xcd, 0xe1, 0x70, 0x7b, 0xab, 0x51, 0x6a, 0x8a, 0x9f, 0xcb, 0x1f, 0x64, 0x8f, 0x7b, 0xb5, + 0x22, 0x38, 0x80, 0x08, 0x17, 0x54, 0x06, 0x3e, 0x48, 0xef, 0x36, 0x95, 0xd4, 0x10, 0x92, 0x8b, + 0x4f, 0x24, 0xc2, 0xbc, 0x1c, 0x1f, 0x58, 0x74, 0xfc, 0x6c, 0xfb, 0x5e, 0x12, 0xc6, 0x99, 0x67, + 0x73, 0xae, 0xd9, 0xec, 0x7a, 0x96, 0x74, 0x9f, 0x33, 0xe9, 0xbf, 0x0f, 0xed, 0x1e, 0xe6, 0xb4, + 0xca, 0x29, 0x3b, 0xb6, 0x47, 0x09, 0xc3, 0x19, 0x78, 0xfa, 0x12, 0x34, 0x92, 0x4b, 0x56, 0x27, + 0x88, 0xe6, 0x5d, 0x31, 0xf1, 0xae, 0x8e, 0x2f, 0xa0, 0xcb, 0x02, 0x96, 0xa0, 0xe8, 0x9d, 0xa1, + 0x4f, 0x1e, 0x7a, 0x8a, 0xf4, 0xe1, 0xf1, 0x9d, 0x30, 0xd1, 0x74, 0x13, 0xf1, 0x11, 0x11, 0x75, + 0x8d, 0x88, 0x9e, 0x62, 0x54, 0x6f, 0xf2, 0x90, 0xab, 0x3c, 0x7f, 0x2a, 0xe2, 0x67, 0xec, 0x77, + 0x33, 0x30, 0xb6, 0xda, 0xea, 0xb4, 0x9b, 0x64, 0x51, 0xfa, 0x0f, 0x92, 0x73, 0xe3, 0xea, 0xf3, + 0x85, 0x4b, 0xa6, 0x7e, 0x79, 0x07, 0x9b, 0xf6, 0x9e, 0x12, 0x0b, 0xf4, 0xbe, 0xef, 0x12, 0xfd, + 0xa1, 0xd7, 0xc6, 0x9c, 0x13, 0x59, 0x2f, 0xba, 0x96, 0xdb, 0x95, 0x06, 0x5f, 0x45, 0x5a, 0x82, + 0xb1, 0xb6, 0x5e, 0xb7, 0x76, 0x4c, 0xe7, 0x66, 0xc6, 0x1b, 0xc3, 0x95, 0xb2, 0xc2, 0x72, 0xa9, + 0x4e, 0x76, 0xa4, 0x41, 0x96, 0x47, 0xee, 0x33, 0x07, 0xee, 0x7b, 0x84, 0x80, 0xcc, 0x99, 0x35, + 0xd3, 0xd2, 0x3b, 0xf6, 0xc5, 0xae, 0x3c, 0x44, 0x94, 0x22, 0xfb, 0xb7, 0x6a, 0x36, 0xb9, 0xf9, + 0xd9, 0x8d, 0x40, 0x1f, 0x73, 0xe0, 0x2e, 0x08, 0x70, 0xdf, 0x1c, 0xa1, 0xe5, 0xd1, 0x20, 0xbf, + 0x7f, 0xb0, 0x17, 0xf3, 0x55, 0xfa, 0x8a, 0x7d, 0x69, 0xb9, 0x54, 0x5b, 0x2b, 0xfe, 0x42, 0xbe, + 0x58, 0x2c, 0x14, 0x0b, 0x72, 0x83, 0xbe, 0x67, 0xe4, 0xac, 0xf8, 0xc5, 0x91, 0x80, 0x73, 0xd1, + 0x1d, 0x09, 0x9c, 0x08, 0xf4, 0x96, 0xd0, 0x6e, 0xd2, 0x4e, 0xc3, 0xfb, 0xac, 0xf5, 0x7b, 0xd9, + 0x4b, 0x9e, 0x0c, 0xe5, 0xef, 0xdc, 0xaf, 0x86, 0x43, 0x64, 0xee, 0xb7, 0x57, 0x21, 0x4d, 0x97, + 0xde, 0xe8, 0xfd, 0xf4, 0x3a, 0xcd, 0x76, 0x53, 0xab, 0x63, 0xb4, 0x1d, 0xe1, 0x0d, 0x82, 0x75, + 0x92, 0xdb, 0x7d, 0x83, 0x80, 0x07, 0x95, 0x53, 0x90, 0xa6, 0x7f, 0xb9, 0xc6, 0x3f, 0xde, 0x6b, + 0xb9, 0xaf, 0xb2, 0x24, 0xa2, 0x63, 0x60, 0xa0, 0x4d, 0x86, 0x59, 0x09, 0x38, 0x99, 0x3e, 0x38, + 0xf9, 0xd3, 0x14, 0x6d, 0x14, 0x0a, 0x77, 0x79, 0x70, 0x10, 0x45, 0xf1, 0xeb, 0xc9, 0xbf, 0x4a, + 0x41, 0xba, 0xda, 0x6e, 0xea, 0x16, 0xfa, 0xdd, 0xe4, 0x50, 0x30, 0x33, 0xb5, 0xd6, 0x26, 0xf6, + 0xc1, 0x4c, 0x25, 0xdf, 0x54, 0x96, 0xc4, 0x35, 0x64, 0xa6, 0x42, 0x18, 0x32, 0x6b, 0xf8, 0xa2, + 0x25, 0x18, 0x32, 0x95, 0x33, 0xfc, 0x94, 0x4c, 0xba, 0xc7, 0x91, 0x37, 0x96, 0x97, 0x36, 0xab, + 0xc7, 0x19, 0x99, 0x99, 0x5b, 0xf8, 0xd9, 0x13, 0x80, 0xcc, 0x5c, 0xa5, 0x56, 0xab, 0x2c, 0xcb, + 0x47, 0x94, 0x2c, 0x48, 0xb5, 0xca, 0x8a, 0x9c, 0x50, 0xc6, 0x21, 0x5d, 0x2a, 0x97, 0x8b, 0xaa, + 0x9c, 0x24, 0x7f, 0x6b, 0xa5, 0xda, 0x52, 0x51, 0x96, 0xd0, 0x07, 0x42, 0x0f, 0xbd, 0x62, 0xdd, + 0x71, 0x8a, 0x57, 0xb8, 0x41, 0xd8, 0x9f, 0x9e, 0xf8, 0x85, 0xeb, 0xdf, 0x48, 0x90, 0x5e, 0xc6, + 0xe6, 0x26, 0x46, 0xbf, 0x1c, 0xc1, 0x16, 0xb8, 0xa1, 0x9b, 0x1d, 0x76, 0x76, 0xc8, 0xb5, 0x05, + 0x7a, 0xe3, 0x94, 0xab, 0x61, 0xb2, 0x83, 0xeb, 0x46, 0xab, 0x61, 0x27, 0xe2, 0xd7, 0x41, 0x09, + 0x91, 0xe8, 0xb1, 0x88, 0x90, 0x51, 0x42, 0x87, 0x62, 0xd0, 0x8b, 0x02, 0x4c, 0xaf, 0x5a, 0xe3, + 0x07, 0xe6, 0x7f, 0x4a, 0x24, 0x53, 0x7b, 0x0f, 0x3d, 0x16, 0xda, 0x48, 0x7b, 0x03, 0x64, 0xa8, + 0x98, 0xda, 0xf3, 0x95, 0xde, 0xfa, 0x98, 0xa7, 0x51, 0xe6, 0xe0, 0x92, 0x0e, 0x7d, 0x6e, 0x1d, + 0x37, 0x48, 0xd7, 0x55, 0xfb, 0x2a, 0x85, 0xfd, 0xc9, 0xd1, 0x5f, 0x78, 0x01, 0xbc, 0x53, 0x04, + 0xf0, 0xda, 0x1e, 0xac, 0x24, 0x0d, 0xf2, 0x7f, 0x78, 0x86, 0x34, 0xa3, 0xda, 0x34, 0x1c, 0xe3, + 0xa2, 0x1d, 0x26, 0xdf, 0xb6, 0xac, 0xed, 0x26, 0xfd, 0xc6, 0x5d, 0x58, 0xec, 0xb0, 0x32, 0x0b, + 0x59, 0xad, 0xb5, 0x47, 0x3f, 0xa5, 0x02, 0x5a, 0x6d, 0x27, 0x42, 0x6f, 0x70, 0x90, 0xbf, 0x47, + 0x40, 0xfe, 0xfa, 0x70, 0xe4, 0xc6, 0x0f, 0xfc, 0xdf, 0x65, 0x20, 0xbd, 0xa2, 0x75, 0x2c, 0x8c, + 0xbe, 0x29, 0x85, 0x45, 0xfe, 0x5a, 0x98, 0xda, 0x30, 0xea, 0x3b, 0x1d, 0xdc, 0x10, 0x3b, 0x65, + 0x57, 0xec, 0x30, 0x30, 0x57, 0x4e, 0x81, 0x6c, 0x47, 0xf2, 0x62, 0x6d, 0x6b, 0xfd, 0xbe, 0x78, + 0x7a, 0x4a, 0xb9, 0xb3, 0xa2, 0x99, 0x56, 0x65, 0x83, 0xc6, 0x39, 0xa7, 0x94, 0xbd, 0x91, 0x02, + 0xf4, 0x99, 0x00, 0xe8, 0xb3, 0xfe, 0xd0, 0x8f, 0x85, 0x80, 0x5e, 0xc9, 0xc1, 0xd8, 0x86, 0xde, + 0xc4, 0x34, 0xc3, 0x78, 0x8f, 0xfb, 0xad, 0xf8, 0xf6, 0x04, 0xe1, 0xbd, 0x33, 0x26, 0xcd, 0xeb, + 0x4d, 0xac, 0x3a, 0xd9, 0xd0, 0x12, 0xdb, 0xec, 0x77, 0xee, 0xb8, 0x4f, 0x78, 0xee, 0xb8, 0x57, + 0x20, 0xd5, 0xd0, 0x2c, 0x8d, 0xb2, 0xfe, 0xa8, 0x4a, 0xff, 0x8b, 0x7b, 0x47, 0x52, 0xf7, 0xde, + 0xd1, 0x23, 0x52, 0x34, 0xfd, 0x67, 0x93, 0xe6, 0xd3, 0x7f, 0xd6, 0x6d, 0x38, 0x98, 0x17, 0x98, + 0x13, 0x26, 0x30, 0xd4, 0x35, 0x13, 0x5b, 0x2b, 0xde, 0xed, 0x99, 0xb4, 0x2a, 0x46, 0xd2, 0x1d, + 0xef, 0x4e, 0x55, 0xdb, 0xc6, 0xb4, 0xb2, 0x3c, 0xf9, 0xc6, 0xf7, 0x38, 0xf7, 0xc5, 0xbb, 0xda, + 0x36, 0x3d, 0x6c, 0x6d, 0xdb, 0xab, 0x8d, 0xf1, 0x77, 0xba, 0x37, 0xa5, 0x40, 0xca, 0xef, 0x58, + 0xcf, 0x68, 0x65, 0xfb, 0x8f, 0xa1, 0x37, 0xbf, 0xb8, 0xf6, 0xda, 0xb1, 0x0e, 0x57, 0xd7, 0x46, + 0x94, 0x92, 0x70, 0x9b, 0x6c, 0x7e, 0x6d, 0x1b, 0xc9, 0x01, 0x1d, 0xdb, 0x0f, 0xc1, 0x38, 0xf8, + 0x3c, 0x1c, 0x31, 0x65, 0xe4, 0x51, 0x0c, 0x4e, 0xd8, 0x36, 0x0a, 0xa4, 0x5c, 0xbb, 0xd2, 0xeb, + 0x42, 0x7b, 0x02, 0x31, 0xfe, 0x04, 0x3a, 0x05, 0x44, 0x9b, 0x2a, 0x85, 0xbb, 0xfd, 0x2d, 0xa0, + 0xda, 0xf8, 0x91, 0xf9, 0xa1, 0xd7, 0x7a, 0x90, 0x3b, 0x30, 0x36, 0xa2, 0xd9, 0x3e, 0xd0, 0xc2, + 0xcc, 0x9a, 0xdd, 0xc7, 0xa8, 0x10, 0x8d, 0xdf, 0xe1, 0xec, 0xcf, 0x81, 0x15, 0x8f, 0xe0, 0x48, + 0x94, 0x04, 0x19, 0xb6, 0x7f, 0x80, 0xde, 0x15, 0x5a, 0x65, 0x12, 0xb5, 0x23, 0x3a, 0x10, 0x38, + 0xe1, 0x28, 0xa6, 0x04, 0xc1, 0xd1, 0x20, 0x15, 0xc9, 0xd1, 0x40, 0xf4, 0x17, 0x0e, 0xd1, 0x8f, + 0x7a, 0xbe, 0xc5, 0x3f, 0xec, 0x55, 0x62, 0x94, 0x1e, 0xd6, 0x93, 0xa0, 0x11, 0xf8, 0x0b, 0x8b, + 0xb7, 0x92, 0xe5, 0x23, 0x40, 0xee, 0x37, 0x2b, 0x89, 0x70, 0x4b, 0x39, 0x6b, 0xfa, 0x90, 0x2f, + 0x2c, 0x0b, 0x77, 0x10, 0xa0, 0x4f, 0xd5, 0xf1, 0x73, 0xfe, 0xcd, 0xec, 0xf2, 0xf8, 0x79, 0x1d, + 0x37, 0x1b, 0x1d, 0x64, 0x1e, 0x7c, 0xe0, 0xb9, 0x09, 0x32, 0x1b, 0xb4, 0xb0, 0x7e, 0x2f, 0xb8, + 0xf3, 0x64, 0xe8, 0x4d, 0xc9, 0xb0, 0x86, 0x75, 0x6e, 0xc8, 0xb0, 0xa9, 0x1d, 0x0a, 0x4c, 0x6f, + 0x0e, 0x65, 0xd8, 0x0e, 0xae, 0x39, 0x7e, 0x94, 0xde, 0x2b, 0xc1, 0x51, 0x7e, 0x1b, 0x58, 0xae, + 0xa9, 0x6f, 0xb6, 0xbc, 0x47, 0xd3, 0x06, 0xee, 0x21, 0xca, 0xcd, 0x90, 0xd6, 0x48, 0x69, 0xdc, + 0x9d, 0x0a, 0xf5, 0xd4, 0x72, 0xb4, 0x3e, 0x95, 0x25, 0x8c, 0x70, 0x13, 0x84, 0x2b, 0xd8, 0x36, + 0xcd, 0x23, 0xbc, 0x09, 0xa2, 0x6f, 0xe5, 0xf1, 0x23, 0xf6, 0x2d, 0x09, 0x8e, 0x73, 0x02, 0xce, + 0x62, 0xd3, 0xd2, 0xeb, 0x5a, 0x93, 0x21, 0xf7, 0xb2, 0xc4, 0x30, 0xa0, 0x5b, 0x84, 0xc9, 0x5d, + 0x6f, 0xb1, 0x1c, 0xc2, 0x99, 0x9e, 0x10, 0x0a, 0x04, 0xa8, 0x62, 0xc6, 0x08, 0x27, 0xea, 0x05, + 0xae, 0x0a, 0x65, 0x8e, 0xf0, 0x44, 0x7d, 0x68, 0x22, 0xe2, 0x87, 0xf8, 0x77, 0x52, 0xec, 0x92, + 0x09, 0x57, 0x7d, 0x7e, 0x35, 0x34, 0xb6, 0xab, 0x30, 0x41, 0xb1, 0x64, 0x19, 0xf9, 0x1a, 0x2f, + 0x40, 0x88, 0x1d, 0xbd, 0xc3, 0x6f, 0xc0, 0x72, 0xf2, 0xaa, 0xde, 0x72, 0xd0, 0x39, 0x00, 0xf7, + 0x93, 0x57, 0x49, 0x27, 0xfc, 0x94, 0x74, 0x32, 0x9c, 0x92, 0x7e, 0x67, 0xe8, 0x83, 0x50, 0xbd, + 0xc9, 0x3e, 0xb8, 0x78, 0x84, 0x3b, 0x02, 0xd3, 0xbf, 0xf6, 0xf8, 0xe5, 0xe2, 0x0d, 0xa9, 0xee, + 0xfb, 0x6a, 0x3f, 0x35, 0x94, 0x39, 0xac, 0x57, 0x1f, 0x48, 0x5d, 0xfa, 0x60, 0xf0, 0x39, 0xab, + 0x72, 0x1d, 0x1c, 0x63, 0x55, 0xe4, 0x1d, 0xb2, 0xd8, 0x33, 0x88, 0xdd, 0xd1, 0xe8, 0xd3, 0x03, + 0x08, 0x41, 0xbf, 0xcb, 0x74, 0x83, 0x94, 0x5c, 0xb4, 0x69, 0x6e, 0x54, 0x01, 0x39, 0xbc, 0x3b, + 0x78, 0xbf, 0x97, 0x62, 0xb3, 0xdd, 0x55, 0x7a, 0x73, 0x1c, 0xfa, 0xcb, 0xd4, 0x30, 0x46, 0x84, + 0x7b, 0x21, 0x65, 0xd9, 0xcf, 0xb5, 0xf6, 0x5e, 0x46, 0xba, 0x55, 0xba, 0x77, 0xce, 0xe1, 0x8b, + 0xd6, 0xe2, 0x11, 0x95, 0xe6, 0x54, 0x4e, 0xc1, 0xb1, 0x75, 0xad, 0x7e, 0x7e, 0xd3, 0x34, 0x76, + 0x5a, 0x8d, 0xbc, 0xd1, 0x34, 0x4c, 0x66, 0x22, 0xa0, 0xf7, 0xeb, 0x89, 0x1f, 0x94, 0xd3, 0xf6, + 0xd4, 0x21, 0xdd, 0x6f, 0xea, 0xb0, 0x78, 0x84, 0x4f, 0x1e, 0x94, 0x5b, 0x1c, 0xa5, 0x93, 0x09, + 0x54, 0x3a, 0x8b, 0x47, 0x6c, 0xb5, 0xa3, 0x14, 0x60, 0xac, 0xa1, 0xef, 0xd2, 0x5d, 0x3f, 0x6a, + 0x9e, 0xed, 0x77, 0xb0, 0xa2, 0xa0, 0xef, 0xb2, 0x3d, 0xc2, 0xc5, 0x23, 0xaa, 0x93, 0x53, 0x59, + 0x80, 0x71, 0x6a, 0x61, 0xa5, 0xc5, 0x8c, 0x45, 0x3a, 0x34, 0xb1, 0x78, 0x44, 0x75, 0xf3, 0x92, + 0xd9, 0x47, 0x8a, 0xba, 0x23, 0xdf, 0x63, 0xef, 0x5c, 0x26, 0x22, 0xed, 0x5c, 0x12, 0x5e, 0xb0, + 0xbd, 0xcb, 0x13, 0x90, 0xae, 0x53, 0x0e, 0x27, 0x39, 0x87, 0x59, 0x50, 0xb9, 0x13, 0x52, 0xdb, + 0x9a, 0x69, 0x2f, 0x53, 0xaf, 0xed, 0x5f, 0xee, 0xb2, 0x66, 0x9e, 0x27, 0x08, 0x92, 0x5c, 0x73, + 0x59, 0x48, 0x53, 0xc6, 0x39, 0x7f, 0xd0, 0x53, 0x7c, 0x1a, 0x92, 0x37, 0x5a, 0x64, 0xd8, 0xaf, + 0x19, 0xb6, 0xcf, 0x76, 0x7d, 0x18, 0x32, 0x27, 0xfa, 0x27, 0x4a, 0xfb, 0xfc, 0x13, 0xff, 0x62, + 0x80, 0xb9, 0x45, 0x37, 0xa5, 0xfe, 0x8b, 0xe3, 0xa6, 0xf0, 0xb4, 0xb9, 0x1d, 0x8c, 0xa8, 0x35, + 0xa2, 0xce, 0x3a, 0xfa, 0x90, 0x37, 0x82, 0x97, 0xe8, 0x53, 0x30, 0x4d, 0x08, 0x61, 0x9e, 0xbb, + 0xe2, 0xb5, 0x93, 0xe8, 0xcf, 0x86, 0x32, 0xb9, 0xec, 0x31, 0x22, 0x48, 0x3d, 0x47, 0x84, 0x7d, + 0xe7, 0x36, 0x52, 0x7d, 0xce, 0x6d, 0xa4, 0xa3, 0x99, 0x53, 0xfe, 0xc8, 0x2b, 0x3f, 0x2b, 0xa2, + 0xfc, 0xdc, 0xee, 0x03, 0x50, 0x2f, 0xbe, 0x0c, 0x65, 0x02, 0xf2, 0x7e, 0x47, 0x52, 0xaa, 0x82, + 0xa4, 0xdc, 0x33, 0x38, 0x21, 0xf1, 0x4b, 0xcb, 0xc7, 0x53, 0xf0, 0x33, 0x2e, 0x31, 0x65, 0x7c, + 0x81, 0x0b, 0xca, 0x97, 0x87, 0x22, 0x28, 0xb7, 0xb8, 0x0f, 0xba, 0xf4, 0x59, 0xec, 0xdb, 0xe9, + 0xe2, 0x96, 0x98, 0x3f, 0x0f, 0xed, 0x6f, 0xde, 0x0d, 0x94, 0xc3, 0x1b, 0x1f, 0x61, 0x39, 0x01, + 0x19, 0xa6, 0x61, 0xec, 0xe7, 0xa8, 0x59, 0x28, 0xa2, 0xba, 0x09, 0xe7, 0xa5, 0x1e, 0x96, 0xb6, + 0x11, 0xc8, 0x0f, 0x37, 0x3c, 0xd4, 0x76, 0xcc, 0x56, 0xa9, 0x65, 0x19, 0xe8, 0xd7, 0x86, 0x22, + 0x38, 0x8e, 0xe7, 0x8f, 0x34, 0x88, 0xe7, 0xcf, 0x40, 0x66, 0x08, 0xbb, 0x05, 0x87, 0x62, 0x86, + 0xf0, 0xa9, 0x3c, 0x7e, 0xfc, 0xde, 0x27, 0xc1, 0x09, 0xbe, 0x1a, 0x9a, 0x13, 0xa7, 0x70, 0xe8, + 0x81, 0x61, 0x00, 0x79, 0xdc, 0x9e, 0xc7, 0xf0, 0x57, 0x68, 0x69, 0x40, 0xf4, 0x08, 0x0f, 0xbc, + 0x43, 0x51, 0x58, 0xaf, 0x75, 0x51, 0x38, 0x14, 0xa4, 0xc2, 0x5d, 0x9d, 0x18, 0x81, 0x8c, 0xf8, + 0x31, 0x7b, 0xa5, 0x04, 0x19, 0x7e, 0x2b, 0xfc, 0x6a, 0x2c, 0xdb, 0xc5, 0xe2, 0x7d, 0x39, 0x21, + 0xb6, 0x29, 0x22, 0x5f, 0xc7, 0x1e, 0xdf, 0x06, 0xc5, 0xe1, 0xdc, 0xb7, 0x8e, 0x1e, 0x93, 0xb8, + 0x65, 0x65, 0x49, 0xb3, 0xf0, 0x45, 0xf4, 0x9b, 0x12, 0x64, 0xab, 0xd8, 0x22, 0x9a, 0x29, 0x3c, + 0x46, 0xfe, 0x36, 0x73, 0xc5, 0xb3, 0x76, 0x1b, 0x67, 0xab, 0xb1, 0xa8, 0x3a, 0x8e, 0xd2, 0x35, + 0xcb, 0x69, 0x1a, 0xb5, 0x8e, 0x0b, 0xaa, 0x7c, 0x04, 0xa7, 0x53, 0xaf, 0x86, 0x71, 0x4a, 0x06, + 0x85, 0xe3, 0x33, 0x1e, 0x68, 0x5e, 0x9d, 0x88, 0x05, 0x1b, 0x32, 0x7c, 0xd1, 0xab, 0xd3, 0xe9, + 0xec, 0x65, 0x22, 0xcc, 0xf0, 0x45, 0x96, 0x69, 0x1d, 0x95, 0xe5, 0x8a, 0xf0, 0x96, 0x8e, 0xd3, + 0xac, 0xa1, 0x22, 0x1b, 0xee, 0x91, 0x83, 0x7e, 0x75, 0x8f, 0xe0, 0x89, 0x0c, 0x09, 0xc6, 0xaa, + 0x64, 0xb9, 0x41, 0xc6, 0x94, 0x73, 0x07, 0x87, 0xb2, 0xf7, 0x60, 0x15, 0xb1, 0xa3, 0xd9, 0x1c, + 0x19, 0xde, 0x10, 0x15, 0xa1, 0xa3, 0x05, 0x55, 0x1e, 0x3f, 0x1e, 0x1f, 0x60, 0x78, 0x50, 0x59, + 0x46, 0x6f, 0x93, 0x40, 0x5a, 0xc0, 0xd6, 0x90, 0xfc, 0xfc, 0xc3, 0xfa, 0x8c, 0x8b, 0x43, 0x57, + 0xe0, 0xd1, 0x6e, 0x81, 0x61, 0x94, 0xe6, 0xd9, 0x05, 0x3c, 0x9c, 0x0e, 0x14, 0xee, 0x4c, 0x77, + 0x28, 0x02, 0xe2, 0x47, 0xed, 0x23, 0x0c, 0x35, 0x66, 0xc1, 0xfa, 0xd5, 0x21, 0x68, 0xc4, 0xd1, + 0x4e, 0xde, 0x6d, 0x06, 0xd2, 0x32, 0x0e, 0xab, 0xbf, 0xf5, 0xaa, 0x7c, 0x24, 0x1e, 0x61, 0x40, + 0x3a, 0xfb, 0x16, 0xae, 0x9f, 0xc7, 0x0d, 0xf4, 0xff, 0x1d, 0x1c, 0xba, 0x69, 0xc8, 0xd6, 0x59, + 0x69, 0x14, 0xbc, 0x31, 0xd5, 0x0e, 0x46, 0x78, 0xc9, 0x5a, 0x54, 0x44, 0x2c, 0xfb, 0x08, 0x5f, + 0xb2, 0x0e, 0x51, 0x7d, 0xfc, 0xc8, 0xfc, 0x01, 0x9b, 0x64, 0x94, 0xea, 0x46, 0x0b, 0xfd, 0xab, + 0x83, 0xc3, 0x72, 0x39, 0x8c, 0xeb, 0x75, 0xa3, 0x55, 0xda, 0xd6, 0x36, 0x6d, 0x33, 0xaa, 0x1b, + 0x61, 0x7f, 0x2d, 0x6e, 0x1b, 0x0f, 0xea, 0x7c, 0x6b, 0xc6, 0x8d, 0x18, 0x74, 0x32, 0x41, 0x48, + 0x3f, 0xac, 0xc9, 0x44, 0x8f, 0xba, 0xe3, 0x87, 0xec, 0xd3, 0xae, 0x0b, 0x05, 0x53, 0x85, 0xcf, + 0x08, 0x4b, 0xc6, 0x20, 0xc3, 0x99, 0xb7, 0x15, 0x87, 0x32, 0x9c, 0x05, 0x10, 0x10, 0x3f, 0x8e, + 0xaf, 0x73, 0x71, 0x8c, 0xdd, 0x8e, 0x71, 0x00, 0x74, 0x86, 0x37, 0x3d, 0x1c, 0x10, 0x9d, 0xc3, + 0x99, 0x22, 0x3e, 0xc9, 0xaf, 0x06, 0xe2, 0x33, 0x1e, 0xf4, 0x2b, 0xc3, 0x00, 0xe7, 0xf6, 0x41, + 0x36, 0xc5, 0xd8, 0x96, 0x58, 0x84, 0x97, 0x53, 0xf6, 0x71, 0x90, 0x94, 0x32, 0x14, 0x04, 0xc3, + 0xbd, 0x9c, 0x12, 0xa6, 0xfe, 0xf8, 0x01, 0x7c, 0xa9, 0x04, 0x53, 0x74, 0x9f, 0xab, 0x89, 0x35, + 0x93, 0x29, 0xca, 0xa1, 0x78, 0x63, 0x7e, 0x20, 0xf4, 0xa5, 0xe6, 0x22, 0x1f, 0x5c, 0x3a, 0x86, + 0x02, 0x45, 0xb8, 0xf7, 0x37, 0x43, 0x92, 0x30, 0x12, 0x53, 0xa0, 0xec, 0x90, 0xc0, 0x45, 0x7c, + 0x38, 0x78, 0x44, 0x74, 0xfb, 0x12, 0x99, 0x61, 0x77, 0xb6, 0x11, 0xbb, 0x7d, 0x85, 0x21, 0x62, + 0x04, 0x57, 0x67, 0xdf, 0xcc, 0x4d, 0x81, 0x35, 0xfa, 0xb0, 0xd0, 0xe3, 0x29, 0xc7, 0x55, 0xfd, + 0x0b, 0x43, 0x71, 0xf3, 0x39, 0xc0, 0x3d, 0x77, 0x0a, 0xa4, 0x4c, 0xe3, 0x02, 0x33, 0x4b, 0x4d, + 0xaa, 0xf4, 0x3f, 0x9d, 0xf2, 0x1b, 0xcd, 0x9d, 0xed, 0x56, 0x87, 0xce, 0x1d, 0x27, 0x55, 0x3b, + 0xa8, 0x5c, 0x0d, 0x93, 0x17, 0x74, 0x6b, 0x6b, 0x11, 0x6b, 0x0d, 0x6c, 0xaa, 0xc6, 0x05, 0xfe, + 0x7c, 0xa7, 0x18, 0x29, 0xee, 0xc1, 0x86, 0x98, 0x5f, 0xd2, 0xd7, 0x86, 0x46, 0xe2, 0xd7, 0x1e, + 0x65, 0xe6, 0xe9, 0x4f, 0x55, 0xfc, 0x02, 0xf3, 0x51, 0x09, 0xc6, 0x55, 0xe3, 0x02, 0x17, 0x92, + 0x7f, 0x7d, 0xb8, 0x32, 0x12, 0x79, 0xa1, 0xc7, 0x5e, 0x8f, 0xb2, 0xc9, 0x1f, 0xf9, 0x42, 0x2f, + 0xb0, 0xfa, 0x91, 0xb8, 0xc7, 0x1f, 0x55, 0x8d, 0x0b, 0x55, 0x6c, 0xb1, 0x1e, 0x81, 0xd6, 0x86, + 0xe4, 0xc9, 0xa7, 0x77, 0x58, 0x81, 0x7c, 0x1d, 0xee, 0x84, 0xd1, 0xfb, 0x42, 0x3f, 0xca, 0x23, + 0x32, 0xc8, 0x21, 0x71, 0x28, 0x10, 0xbd, 0x3b, 0xd4, 0x5b, 0x3c, 0xe1, 0x28, 0x88, 0x1f, 0xa5, + 0xdf, 0x90, 0x60, 0x42, 0x35, 0x2e, 0x90, 0xa1, 0x61, 0x5e, 0x6f, 0x36, 0x87, 0x33, 0x42, 0x46, + 0x9d, 0xfc, 0xdb, 0x6c, 0xb0, 0xa9, 0x18, 0xf9, 0xe4, 0xbf, 0x0f, 0x01, 0xf1, 0xc3, 0xf0, 0x08, + 0xeb, 0x2c, 0xf6, 0x08, 0xdd, 0x1a, 0x0e, 0x0e, 0x83, 0x76, 0x08, 0x87, 0x8c, 0x43, 0xeb, 0x10, + 0x7e, 0x14, 0x8c, 0x64, 0xe7, 0x64, 0x2a, 0x4f, 0x87, 0xf9, 0xe1, 0xf6, 0x89, 0x0f, 0x45, 0x73, + 0xaf, 0xe1, 0xc3, 0xae, 0x40, 0xc8, 0x50, 0xd0, 0x88, 0xe0, 0x46, 0x13, 0x82, 0x86, 0xf8, 0xf1, + 0xf8, 0x63, 0x09, 0x8e, 0x32, 0x12, 0x9e, 0x21, 0xb3, 0x80, 0x81, 0x3a, 0x95, 0xb7, 0x05, 0x87, + 0xd3, 0xa9, 0x02, 0x28, 0x88, 0x1f, 0xc4, 0xff, 0x93, 0xa4, 0xf3, 0xb8, 0x01, 0xce, 0x28, 0xfa, + 0x21, 0x38, 0xf0, 0x64, 0x6c, 0x88, 0xe7, 0x14, 0x07, 0x99, 0x8c, 0x1d, 0xd2, 0x59, 0xc5, 0x47, + 0x9c, 0x5e, 0x34, 0x4c, 0x0c, 0x0e, 0xd0, 0x15, 0x86, 0x08, 0xc3, 0x80, 0x5d, 0xe1, 0x90, 0x90, + 0xf8, 0xb6, 0x04, 0xc0, 0x08, 0x58, 0x36, 0x76, 0x31, 0x7a, 0x62, 0x28, 0x0b, 0xdf, 0x6e, 0xd7, + 0x50, 0xa9, 0x8f, 0x6b, 0x68, 0xc4, 0xb3, 0xd9, 0x51, 0x2d, 0x81, 0x1e, 0x2e, 0x2f, 0xfb, 0x3e, + 0x8a, 0x18, 0xa3, 0x25, 0x30, 0xb8, 0xfe, 0xf8, 0x31, 0xfe, 0x06, 0x9b, 0xcd, 0xb9, 0xa7, 0x98, + 0x5e, 0x3b, 0x14, 0x94, 0x3d, 0xab, 0x7f, 0x49, 0x5c, 0xfd, 0x1f, 0x00, 0xdb, 0x41, 0xe7, 0x88, + 0xfd, 0x4e, 0x27, 0xc5, 0x3f, 0x47, 0x3c, 0xbc, 0x53, 0x48, 0xbf, 0x9a, 0x82, 0x63, 0x5c, 0x89, + 0xfc, 0x53, 0x80, 0x38, 0xe2, 0x59, 0x12, 0x41, 0x49, 0xf6, 0x41, 0x79, 0x58, 0x06, 0xa9, 0x28, + 0xa6, 0xcc, 0x10, 0xe4, 0x8d, 0xc4, 0xba, 0x91, 0x29, 0x5e, 0x6c, 0x6b, 0xad, 0x46, 0xf8, 0xeb, + 0xf9, 0xfa, 0x00, 0x6f, 0xdb, 0x1a, 0x25, 0xd1, 0xd6, 0xd8, 0xc3, 0x32, 0x19, 0x79, 0xe7, 0x9a, + 0xb2, 0x8c, 0x91, 0x3b, 0xf2, 0x9d, 0x6b, 0xff, 0xba, 0xe3, 0x47, 0xe9, 0x43, 0x12, 0xa4, 0xaa, + 0x86, 0x69, 0xa1, 0x47, 0xa3, 0xf4, 0x4e, 0xc6, 0x79, 0x17, 0x24, 0x3b, 0xac, 0xe4, 0x85, 0x87, + 0x8a, 0x6e, 0x0a, 0x3e, 0x4f, 0xa7, 0x59, 0x1a, 0xbd, 0xbc, 0x99, 0xd4, 0xef, 0x79, 0xb1, 0x28, + 0xea, 0xa5, 0x0d, 0x8c, 0x7f, 0x55, 0x7f, 0x27, 0xe2, 0xd8, 0x2e, 0x6d, 0xf0, 0xad, 0x79, 0x04, + 0x76, 0xdf, 0x09, 0xee, 0x97, 0x4a, 0xdf, 0x6f, 0x7b, 0x94, 0xb9, 0x8c, 0x94, 0xb5, 0x6d, 0x3c, + 0x24, 0x97, 0x61, 0x7a, 0x43, 0x9c, 0xe4, 0xde, 0x10, 0x17, 0xb5, 0x43, 0xb1, 0x53, 0x8e, 0x8c, + 0xa4, 0x51, 0x77, 0xa8, 0x80, 0xba, 0xe3, 0x07, 0xe6, 0x6b, 0x64, 0xe4, 0xa3, 0x6b, 0xc8, 0x5c, + 0xab, 0xc1, 0xaf, 0xdc, 0xfa, 0xbb, 0xc3, 0xde, 0xbb, 0xd9, 0x77, 0x29, 0x97, 0x78, 0xb9, 0x5f, + 0xba, 0xfb, 0xbd, 0xb1, 0x39, 0x76, 0xc1, 0x17, 0x3d, 0x79, 0x99, 0x89, 0xf4, 0xe6, 0x98, 0x93, + 0x0f, 0x3d, 0x15, 0xcd, 0x9c, 0x43, 0x8b, 0xe8, 0x62, 0x5c, 0xcc, 0x43, 0x6a, 0x04, 0x43, 0x4f, + 0x08, 0xea, 0xfe, 0x79, 0x78, 0x19, 0xed, 0x7f, 0xf2, 0x2d, 0xa2, 0x29, 0xdb, 0x79, 0xa8, 0xef, + 0xb0, 0xbc, 0x8c, 0xfa, 0x11, 0x10, 0x3f, 0x8e, 0x4f, 0xa5, 0xf9, 0x26, 0x2f, 0x75, 0xc1, 0x43, + 0x5f, 0x4f, 0xc6, 0xae, 0xbc, 0xc3, 0x3f, 0x72, 0xea, 0xd2, 0x15, 0xac, 0xbd, 0xa3, 0x38, 0xba, + 0x06, 0x15, 0x37, 0x02, 0x73, 0x42, 0x92, 0xba, 0x28, 0x9f, 0xd3, 0x1b, 0xd6, 0xd6, 0x90, 0x1c, + 0xfd, 0x2f, 0x90, 0xb2, 0xec, 0xd7, 0xc2, 0x68, 0x00, 0xfd, 0x24, 0x11, 0xe9, 0xfa, 0x0a, 0x87, + 0x25, 0x94, 0x2c, 0x1f, 0x16, 0x47, 0xb8, 0x74, 0x22, 0xb0, 0xbc, 0x11, 0x4a, 0xf4, 0x59, 0xbd, + 0x81, 0x8d, 0x67, 0xa0, 0x44, 0x53, 0xba, 0x86, 0x27, 0xd1, 0x41, 0xc5, 0xfd, 0x33, 0x95, 0x68, + 0x87, 0x25, 0x43, 0x92, 0xe8, 0xc0, 0xf2, 0x46, 0x70, 0x93, 0x35, 0xf0, 0xf9, 0xf5, 0x92, 0xde, + 0x3a, 0x8f, 0x3e, 0x9b, 0xb6, 0xdf, 0x29, 0x3b, 0xa7, 0x5b, 0x5b, 0xfc, 0x98, 0xfb, 0xa7, 0x43, + 0xbf, 0x68, 0x30, 0xc0, 0x51, 0xf6, 0x93, 0x00, 0x16, 0x7f, 0x3f, 0xc8, 0xb9, 0x33, 0xc7, 0x13, + 0xa3, 0xe4, 0x60, 0x52, 0x6f, 0x59, 0xd8, 0x6c, 0x69, 0xcd, 0xf9, 0xa6, 0xb6, 0xd9, 0x99, 0xce, + 0xd2, 0xa3, 0x99, 0x97, 0x75, 0x0d, 0xde, 0x25, 0x4f, 0x1a, 0x55, 0xcc, 0x11, 0x7a, 0xae, 0x19, + 0xf1, 0xca, 0x9f, 0x9b, 0x42, 0xde, 0xc4, 0xe2, 0x5c, 0xff, 0xf4, 0x83, 0x68, 0xc6, 0x17, 0x02, + 0xc8, 0x6c, 0x37, 0x18, 0x91, 0x67, 0x8a, 0xde, 0xc6, 0x4b, 0x5d, 0x8d, 0x77, 0xa6, 0x1e, 0xa9, + 0x21, 0x1b, 0x66, 0xc2, 0x90, 0x3e, 0x82, 0x93, 0x1f, 0x69, 0xb8, 0xc4, 0xbe, 0xbe, 0xae, 0xdd, + 0xc6, 0x9a, 0xa9, 0xb5, 0xea, 0x38, 0x82, 0x34, 0x07, 0xcd, 0x25, 0xe7, 0x61, 0x4c, 0xaf, 0x1b, + 0xad, 0xaa, 0xfe, 0x22, 0xfb, 0xe1, 0x8d, 0x53, 0x81, 0xd3, 0x49, 0xca, 0x91, 0x12, 0xcf, 0xa1, + 0x3a, 0x79, 0x95, 0x12, 0x8c, 0xd7, 0x35, 0xb3, 0x51, 0xf5, 0x3c, 0x45, 0x7c, 0x7d, 0xff, 0x82, + 0xf2, 0x76, 0x16, 0xd5, 0xcd, 0xad, 0x54, 0x44, 0x26, 0x66, 0xba, 0x4e, 0xff, 0xfa, 0x16, 0x56, + 0x70, 0x33, 0x09, 0x3c, 0x27, 0xdc, 0x31, 0x71, 0x93, 0xbe, 0x73, 0xc8, 0xba, 0xdd, 0xb8, 0xea, + 0x46, 0xa0, 0x8f, 0x7a, 0xa5, 0x79, 0x59, 0x94, 0xe6, 0x17, 0xfa, 0x88, 0xc4, 0x3e, 0x34, 0x86, + 0x32, 0x27, 0x7e, 0xaf, 0x23, 0x98, 0x2b, 0x82, 0x60, 0xde, 0x39, 0x20, 0x15, 0xf1, 0x4b, 0xe6, + 0xfb, 0x33, 0x30, 0xc9, 0x0e, 0x93, 0x73, 0x76, 0xa2, 0x97, 0xd2, 0xa7, 0xb5, 0xac, 0xfb, 0xf1, + 0x1e, 0xaa, 0x1e, 0x7c, 0xa0, 0x93, 0x41, 0x3a, 0x8f, 0xf7, 0x78, 0x7f, 0x27, 0x7f, 0xa3, 0xee, + 0x91, 0xda, 0x74, 0xcd, 0x32, 0x9a, 0x46, 0xbd, 0x47, 0x1a, 0x5c, 0x7d, 0xfc, 0xf8, 0xbc, 0x4a, + 0x02, 0x29, 0xd7, 0x68, 0x84, 0xbf, 0xdf, 0xc9, 0x1f, 0x8a, 0x2b, 0x61, 0xc2, 0xee, 0x33, 0xf7, + 0x3b, 0x90, 0x78, 0xa3, 0xa2, 0x1a, 0x9c, 0x1c, 0xde, 0xe4, 0x1a, 0x23, 0xb7, 0xe0, 0x06, 0xd4, + 0x1d, 0x3f, 0x28, 0xaf, 0xcd, 0xf2, 0x4e, 0x33, 0x67, 0x18, 0xe7, 0xe9, 0xb1, 0x84, 0x47, 0x25, + 0x48, 0xcf, 0x63, 0xab, 0xbe, 0x35, 0xa4, 0x3e, 0xb3, 0x63, 0x36, 0xed, 0x3e, 0xb3, 0xef, 0x9d, + 0xc0, 0xfe, 0x13, 0x43, 0x9b, 0xac, 0x59, 0x4a, 0xd2, 0xa8, 0xaf, 0x6b, 0x0c, 0xac, 0x3d, 0x7e, + 0x70, 0x7e, 0x22, 0xc1, 0x94, 0x63, 0x36, 0x62, 0x98, 0xfc, 0xd6, 0x33, 0xce, 0x18, 0x88, 0xbe, + 0x1c, 0xed, 0x4a, 0x15, 0x87, 0xa7, 0x62, 0xcb, 0x62, 0xb6, 0xd6, 0x45, 0xb8, 0x6c, 0x25, 0x1c, + 0x81, 0x23, 0x58, 0x16, 0x4b, 0x30, 0x46, 0x09, 0x2a, 0xe8, 0xbb, 0xd4, 0x4d, 0x4b, 0xb0, 0xde, + 0x3d, 0x34, 0x14, 0xeb, 0xdd, 0x9d, 0xa2, 0xf5, 0x2e, 0xe4, 0x15, 0x86, 0xb6, 0xf1, 0x2e, 0xa2, + 0xdf, 0x02, 0xc9, 0x3f, 0x74, 0xdb, 0x5d, 0x04, 0xbf, 0x85, 0x3e, 0xf5, 0x8f, 0xe0, 0x41, 0xd5, + 0x53, 0x5c, 0xd9, 0xda, 0x9b, 0x57, 0xe8, 0x21, 0x05, 0x52, 0x67, 0xc9, 0x9f, 0xaf, 0xbb, 0xcf, + 0x0a, 0x3c, 0x34, 0x84, 0x83, 0xf0, 0x77, 0x43, 0x8a, 0x3e, 0x9d, 0x9a, 0xea, 0xba, 0x72, 0x33, + 0x70, 0x27, 0x8d, 0x10, 0xa2, 0xd2, 0x7c, 0x51, 0x2f, 0x2b, 0x13, 0x8a, 0x98, 0x1d, 0x9e, 0x1b, + 0x9e, 0x72, 0x02, 0x32, 0xa4, 0x5c, 0x67, 0x99, 0xc5, 0x43, 0x51, 0x8c, 0xef, 0x21, 0x68, 0x8b, + 0x1f, 0xf9, 0xaf, 0xd3, 0x17, 0x54, 0xe8, 0x9d, 0xaa, 0x8f, 0x0d, 0x01, 0x5e, 0x1f, 0xb6, 0x1c, + 0x18, 0xf6, 0x0f, 0x1d, 0x04, 0x76, 0xe7, 0x02, 0xd7, 0x91, 0x3a, 0xd1, 0x86, 0xa0, 0x61, 0x24, + 0x27, 0x7f, 0x33, 0xdc, 0xf1, 0xef, 0x81, 0x61, 0xa2, 0x9b, 0x12, 0x84, 0xfe, 0x40, 0xe8, 0x0c, + 0xd1, 0x21, 0x70, 0x60, 0x74, 0x0e, 0xc9, 0x25, 0xf0, 0x4f, 0x24, 0x98, 0xa8, 0xba, 0xcf, 0x7d, + 0x85, 0x7f, 0xa1, 0x20, 0x32, 0x44, 0x64, 0xac, 0x15, 0xee, 0x87, 0x9c, 0x1c, 0xfc, 0xca, 0x50, + 0x91, 0x75, 0x1e, 0xfa, 0x47, 0x7d, 0x65, 0x68, 0x58, 0x42, 0xe2, 0x07, 0xf2, 0x8b, 0xec, 0x45, + 0x90, 0x5c, 0xdd, 0xd2, 0x77, 0x31, 0x7a, 0x24, 0x46, 0x45, 0x7a, 0x02, 0x32, 0xc6, 0xc6, 0x46, + 0x87, 0xbf, 0x03, 0x37, 0xa9, 0xf2, 0x90, 0xfb, 0x00, 0x37, 0x03, 0x97, 0x3f, 0xc0, 0x1d, 0xf1, + 0x52, 0xc1, 0x7d, 0x0c, 0x65, 0x0d, 0x1a, 0xf5, 0xa5, 0x82, 0xe1, 0xc8, 0x18, 0xc1, 0xb5, 0xc1, + 0x40, 0xb8, 0xc7, 0x4d, 0x36, 0x6f, 0xe3, 0x46, 0x02, 0x7c, 0x70, 0x6c, 0x67, 0xe0, 0xa8, 0xc7, + 0x22, 0x60, 0x5f, 0x4c, 0x2f, 0xc4, 0x45, 0x3d, 0x6b, 0xec, 0xb0, 0x6c, 0xe8, 0xf6, 0x82, 0x08, + 0x76, 0xe0, 0x30, 0x44, 0x8c, 0xe4, 0xdd, 0x17, 0x7b, 0xc8, 0x1b, 0x11, 0x56, 0x1f, 0xf7, 0x62, + 0x55, 0x11, 0xb1, 0x3a, 0x13, 0x86, 0x4d, 0xe1, 0x86, 0xc0, 0x50, 0xcb, 0xc9, 0xf7, 0x39, 0x70, + 0xa9, 0x02, 0x5c, 0x77, 0x0f, 0x4c, 0x47, 0xfc, 0x88, 0x7d, 0x52, 0x62, 0x8f, 0x3f, 0xe4, 0x76, + 0x35, 0xbd, 0x49, 0x0f, 0x88, 0x0f, 0xe1, 0xc1, 0xb8, 0xff, 0xe6, 0x05, 0xe5, 0xac, 0x08, 0xca, + 0xbd, 0x61, 0x98, 0x21, 0x50, 0xe4, 0x83, 0xcd, 0xf3, 0xbd, 0x36, 0x73, 0x76, 0x8b, 0xe8, 0xa5, + 0xdd, 0x37, 0xb1, 0xf1, 0xef, 0x5e, 0x63, 0xfa, 0x17, 0x1c, 0x90, 0x1e, 0x10, 0x40, 0x2a, 0x1e, + 0x94, 0xae, 0x68, 0x58, 0x2d, 0x0d, 0xf0, 0xa2, 0xfd, 0x34, 0x1c, 0x2f, 0x57, 0x6a, 0x6b, 0xb9, + 0xb5, 0x42, 0xae, 0x96, 0x3b, 0x5b, 0x2a, 0x9e, 0x5b, 0x9b, 0x5b, 0xaa, 0xe4, 0xef, 0x97, 0x25, + 0xf4, 0xbb, 0x6c, 0x0c, 0xac, 0x1a, 0x3b, 0x66, 0x7d, 0x58, 0xb3, 0xcd, 0x0e, 0x2d, 0x8c, 0x77, + 0x3a, 0x1e, 0x8a, 0xea, 0xb8, 0xee, 0xfa, 0x63, 0xda, 0xc4, 0xf5, 0xeb, 0x68, 0xa9, 0x21, 0x3b, + 0xae, 0xf7, 0xa5, 0x20, 0xfe, 0x2e, 0xf6, 0x23, 0x09, 0x60, 0xc1, 0x34, 0x76, 0xda, 0x15, 0xb3, + 0x81, 0x4d, 0xf4, 0xb4, 0xbb, 0xea, 0xfb, 0xed, 0x21, 0x4c, 0x56, 0x56, 0x00, 0x36, 0x9d, 0xc2, + 0xb9, 0x9e, 0xba, 0x39, 0xdc, 0x1a, 0xcf, 0x25, 0x4a, 0xf5, 0x94, 0x81, 0x3e, 0xe1, 0xc5, 0xf8, + 0xe7, 0x45, 0x8c, 0x83, 0x46, 0x1e, 0xb7, 0xb8, 0x61, 0xae, 0xfa, 0x3e, 0xe0, 0x60, 0x5d, 0x13, + 0xb0, 0xbe, 0xf7, 0x00, 0x94, 0xc4, 0x8f, 0xf9, 0x8f, 0x25, 0x98, 0x60, 0x7b, 0xb1, 0x8c, 0xa7, + 0x7f, 0xeb, 0x82, 0xfe, 0xda, 0x21, 0x80, 0xbe, 0x0a, 0x47, 0x0d, 0xb7, 0x74, 0x36, 0x32, 0x7a, + 0xad, 0x6b, 0x81, 0xb0, 0x7b, 0xe8, 0x52, 0x85, 0x62, 0xd0, 0x27, 0xbd, 0xc8, 0xab, 0x22, 0xf2, + 0x77, 0x06, 0xf0, 0xdb, 0x53, 0xe2, 0x30, 0xa1, 0xff, 0xa0, 0x03, 0xfd, 0xaa, 0x00, 0x7d, 0xee, + 0x20, 0xa4, 0xc4, 0x8f, 0xfd, 0xc3, 0x8e, 0x81, 0xde, 0xd9, 0x3e, 0x89, 0x65, 0xd3, 0xe4, 0xf5, + 0x03, 0x2e, 0x30, 0x44, 0xda, 0x7c, 0x90, 0x9a, 0x82, 0xa4, 0x6e, 0xd3, 0x90, 0xd4, 0x1b, 0x03, + 0x2d, 0x21, 0x02, 0x2b, 0x8a, 0x1f, 0x87, 0xb7, 0x3c, 0x1b, 0xd2, 0x05, 0xbc, 0xbe, 0xb3, 0x89, + 0xde, 0x29, 0x41, 0xb6, 0x69, 0x6c, 0x96, 0x5a, 0x1b, 0x06, 0x6f, 0x58, 0xc2, 0x6e, 0x98, 0xa2, + 0x40, 0x6a, 0x0b, 0x6b, 0x76, 0x53, 0xe9, 0x7f, 0xe5, 0x5a, 0x98, 0x22, 0xbf, 0xf6, 0x73, 0xb2, + 0xce, 0xed, 0x93, 0x5d, 0xb1, 0x64, 0x82, 0x6a, 0x19, 0x96, 0xd6, 0x54, 0x71, 0xdd, 0x30, 0x1b, + 0xec, 0xb4, 0x48, 0x5a, 0x15, 0xe2, 0x08, 0xde, 0x34, 0x4c, 0xfd, 0x17, 0xd2, 0x34, 0x81, 0x1b, + 0xa1, 0x5c, 0x0d, 0x93, 0x1b, 0xba, 0xd9, 0xb1, 0x58, 0xea, 0x1a, 0x73, 0x70, 0x49, 0xab, 0x62, + 0x24, 0x7d, 0xcf, 0xde, 0x8d, 0x38, 0x8b, 0x4d, 0xfa, 0xb8, 0x50, 0x5a, 0xed, 0x8a, 0x25, 0xf4, + 0x34, 0x35, 0x4f, 0x61, 0x63, 0x8c, 0x1e, 0x6f, 0x1c, 0xa9, 0xd1, 0x0d, 0x93, 0xa2, 0xc6, 0x59, + 0x8d, 0x42, 0x24, 0xa9, 0x91, 0x44, 0xac, 0xec, 0x34, 0x9b, 0x55, 0x5c, 0xcf, 0x6d, 0x1a, 0xd3, + 0xc0, 0x6a, 0x14, 0x63, 0x15, 0x04, 0x63, 0x3b, 0xed, 0xaa, 0xa5, 0x59, 0x3b, 0x9d, 0xe9, 0x09, + 0xb6, 0x9f, 0x64, 0x87, 0x95, 0x93, 0x00, 0x0d, 0xe3, 0x42, 0x8b, 0x7f, 0x3d, 0xca, 0xfc, 0x8d, + 0xdc, 0x18, 0xb2, 0x6c, 0x66, 0x22, 0x3b, 0xc9, 0xee, 0xb0, 0x63, 0xfe, 0x5c, 0x5f, 0x92, 0x00, + 0xac, 0x2d, 0x13, 0x6b, 0x8d, 0x9e, 0x70, 0xbd, 0x00, 0x4e, 0x34, 0x8d, 0xcd, 0xce, 0x39, 0xdd, + 0xda, 0x72, 0x81, 0x58, 0xb4, 0x01, 0x4c, 0xab, 0x3e, 0x5f, 0x95, 0x7b, 0xe1, 0x32, 0xfb, 0xcb, + 0xb9, 0x2d, 0xa3, 0x89, 0x6b, 0x26, 0xc6, 0x5d, 0xf8, 0xa6, 0xd5, 0xa0, 0x24, 0xca, 0x2c, 0xa4, + 0xc8, 0x67, 0xfe, 0xd4, 0x37, 0x12, 0xe4, 0x9e, 0x8a, 0xd9, 0x2c, 0x17, 0x31, 0x95, 0xa6, 0x53, + 0x6e, 0x83, 0x4b, 0x8d, 0x0b, 0xad, 0x25, 0x63, 0x73, 0x51, 0xeb, 0xe4, 0xb5, 0x0d, 0xac, 0x62, + 0x76, 0x6c, 0xca, 0x30, 0xf9, 0xb3, 0xff, 0x7e, 0x9f, 0x95, 0x59, 0x50, 0xea, 0xda, 0x06, 0x5e, + 0x12, 0x01, 0x60, 0x92, 0xd1, 0xe3, 0x0b, 0x81, 0x9d, 0xc4, 0xae, 0xda, 0x40, 0x64, 0xd9, 0x41, + 0x54, 0x6f, 0x1c, 0x01, 0x94, 0x84, 0x0b, 0x2e, 0x20, 0x63, 0x34, 0x55, 0x57, 0xec, 0x3e, 0x91, + 0x1e, 0xef, 0x27, 0xd2, 0xd0, 0x2d, 0xd2, 0x0e, 0xac, 0x13, 0x5e, 0x58, 0xbf, 0x9a, 0x86, 0x54, + 0x75, 0xaf, 0x55, 0x47, 0x6f, 0xf6, 0x0c, 0x7f, 0xa7, 0xe1, 0xb8, 0xc9, 0xca, 0xac, 0x99, 0xda, + 0x2e, 0x36, 0x3b, 0x78, 0x89, 0xda, 0x51, 0x12, 0xb4, 0xcc, 0x9e, 0xdf, 0x88, 0xfc, 0x76, 0xce, + 0xeb, 0xed, 0xe2, 0x76, 0xdb, 0xda, 0x5b, 0x22, 0x78, 0x24, 0xd9, 0x2d, 0x50, 0x42, 0xa4, 0x72, + 0x37, 0x20, 0xcb, 0xdc, 0xab, 0x19, 0x36, 0x7e, 0x2a, 0xde, 0x36, 0x2c, 0x6c, 0x37, 0x8a, 0xf5, + 0xe6, 0x80, 0x14, 0xe8, 0x1d, 0x29, 0x8f, 0x6e, 0xbd, 0x53, 0xd4, 0xad, 0xd7, 0xf6, 0x80, 0x9e, + 0x34, 0xcd, 0x47, 0x93, 0xbe, 0x10, 0xb2, 0x4c, 0x9e, 0xed, 0x55, 0xca, 0x15, 0x3d, 0xf2, 0xbb, + 0x12, 0xaf, 0xda, 0xa9, 0x49, 0xdf, 0x6a, 0xe0, 0x5d, 0xbd, 0x8e, 0x5d, 0x7f, 0x32, 0x3b, 0xec, + 0xc0, 0x54, 0xe3, 0x25, 0x7b, 0x35, 0x0f, 0x8f, 0xa3, 0x3c, 0x60, 0x7f, 0x89, 0x48, 0x1b, 0x3b, + 0x16, 0x11, 0xb1, 0x52, 0xab, 0x42, 0xa5, 0x8e, 0xab, 0xa2, 0x80, 0x14, 0xca, 0x1c, 0x5c, 0x2e, + 0x7e, 0x5d, 0x14, 0x75, 0x22, 0x13, 0xc8, 0xc0, 0x34, 0xfb, 0xc4, 0x29, 0xdb, 0x4f, 0x9c, 0xc6, + 0xba, 0xc4, 0x09, 0xbd, 0xc1, 0x19, 0x78, 0xee, 0x11, 0x06, 0x9e, 0xeb, 0xc3, 0xa1, 0x30, 0x92, + 0xeb, 0xb2, 0x32, 0x8c, 0xe5, 0xe8, 0xa5, 0x1e, 0xd9, 0x46, 0x30, 0xc6, 0x41, 0xb5, 0xd5, 0x97, + 0x13, 0x1e, 0x91, 0x0c, 0xbf, 0x31, 0xf4, 0xab, 0x19, 0x8c, 0x7b, 0xac, 0x11, 0x3e, 0x52, 0x7c, + 0x0b, 0xa4, 0xf4, 0xd6, 0x86, 0xc1, 0x27, 0x6e, 0x7d, 0x44, 0x98, 0x26, 0x0d, 0xf9, 0x4c, 0x46, + 0x40, 0xdd, 0xf1, 0x63, 0xf7, 0x0a, 0x09, 0x52, 0x44, 0xcd, 0x7b, 0xef, 0xfd, 0x44, 0x30, 0xc6, + 0x26, 0xc5, 0x2e, 0x70, 0x76, 0xb8, 0xe7, 0xdb, 0x21, 0x33, 0x70, 0x74, 0xa7, 0xa5, 0xb5, 0x8c, + 0xd6, 0xde, 0xb6, 0xfe, 0x22, 0x67, 0xaa, 0x20, 0xc4, 0x11, 0xea, 0x37, 0x71, 0x0b, 0x9b, 0x9a, + 0x85, 0xab, 0xbb, 0x9b, 0xb4, 0xb7, 0x8e, 0xa9, 0xde, 0x28, 0xf4, 0x70, 0x32, 0x9a, 0xc2, 0x21, + 0x54, 0xfb, 0x3f, 0x51, 0xb9, 0xa1, 0x37, 0x31, 0xf5, 0x6f, 0xe7, 0x3e, 0x1e, 0x76, 0x38, 0x52, + 0x6f, 0xea, 0x51, 0xc5, 0x48, 0x10, 0x91, 0xd9, 0x9b, 0x29, 0x4b, 0x46, 0x5d, 0x6b, 0x76, 0x2c, + 0xc3, 0xc4, 0xe8, 0xf9, 0x2e, 0x3a, 0x36, 0x02, 0x09, 0x0f, 0x02, 0x27, 0x20, 0xd3, 0x30, 0xea, + 0xae, 0x27, 0x03, 0x0f, 0x89, 0xcb, 0x99, 0xc0, 0x63, 0x44, 0xac, 0xc1, 0xdd, 0xf5, 0xc6, 0xf6, + 0x80, 0x4c, 0xb8, 0xa3, 0x45, 0xa1, 0x88, 0x1a, 0xc1, 0xbd, 0x0a, 0x49, 0x48, 0xad, 0xe8, 0xad, + 0x4d, 0xef, 0x22, 0xe6, 0x38, 0xa4, 0xf5, 0x56, 0x03, 0x5f, 0xe4, 0x23, 0x35, 0x0b, 0x90, 0xe1, + 0xbc, 0xb5, 0xb3, 0xbd, 0x8e, 0xcd, 0xca, 0x06, 0x6d, 0x6e, 0xa7, 0x66, 0x54, 0x71, 0xcb, 0x9e, + 0x99, 0xf5, 0xfc, 0x86, 0x7e, 0x9a, 0x88, 0x26, 0xf7, 0x84, 0x12, 0x1f, 0x5c, 0x1c, 0xa2, 0x92, + 0x1e, 0xa2, 0x22, 0x49, 0x7c, 0x8f, 0xc2, 0xe3, 0xe7, 0xef, 0x67, 0x93, 0x90, 0x5d, 0xc6, 0x96, + 0xa9, 0xd7, 0x3b, 0xe8, 0xc9, 0x24, 0x4c, 0x56, 0xb1, 0xb5, 0xa2, 0x99, 0xda, 0x36, 0xb6, 0xc8, + 0x92, 0xfc, 0x7a, 0x41, 0x31, 0xb5, 0x9b, 0x9a, 0xb5, 0x61, 0x98, 0xdb, 0xb6, 0x62, 0xb2, 0xc3, + 0xb7, 0xa7, 0x1e, 0xfd, 0xae, 0x94, 0x10, 0x99, 0x19, 0xe8, 0x7a, 0xc3, 0x2b, 0x9c, 0x15, 0x2a, + 0xf3, 0x39, 0x61, 0x11, 0xce, 0x99, 0x26, 0x4c, 0x89, 0xf1, 0x33, 0xf3, 0x8f, 0x24, 0x90, 0x96, + 0x8c, 0x4d, 0xf4, 0x11, 0x09, 0x52, 0x54, 0xbe, 0xde, 0xe5, 0x19, 0x92, 0xa7, 0x21, 0xbb, 0x8d, + 0x3b, 0x1d, 0x6d, 0x13, 0xdb, 0xef, 0x4b, 0xf3, 0xa0, 0x72, 0x06, 0xd2, 0x4d, 0xbc, 0x8b, 0x9b, + 0x94, 0x8c, 0xa9, 0xd3, 0x57, 0x09, 0x2d, 0x5b, 0x32, 0x36, 0x67, 0x49, 0x59, 0xce, 0x2b, 0xb4, + 0x4b, 0x24, 0xa9, 0xca, 0x72, 0xcc, 0xdc, 0x07, 0x69, 0x1a, 0x56, 0xc6, 0x21, 0x5d, 0x28, 0xce, + 0xad, 0x2e, 0xc8, 0x47, 0xc8, 0x5f, 0x9b, 0xbe, 0x71, 0x48, 0xcf, 0xe7, 0x6a, 0xb9, 0x25, 0x39, + 0x49, 0xda, 0x51, 0x2a, 0xcf, 0x57, 0x64, 0x89, 0x44, 0xae, 0xe4, 0xca, 0xa5, 0xbc, 0x9c, 0x52, + 0x26, 0x20, 0x7b, 0x2e, 0xa7, 0x96, 0x4b, 0xe5, 0x05, 0x39, 0x8d, 0x1e, 0xf2, 0x2a, 0xac, 0xdb, + 0x45, 0xfc, 0xae, 0xf6, 0xa3, 0xa9, 0x17, 0x64, 0xff, 0xce, 0x81, 0xec, 0x2e, 0x01, 0xb2, 0x9f, + 0x0b, 0x53, 0x48, 0x34, 0x94, 0xca, 0x03, 0x18, 0xb2, 0x27, 0x61, 0xbc, 0x5c, 0xa9, 0xad, 0xcd, + 0x57, 0x56, 0xcb, 0x05, 0x19, 0x13, 0x1e, 0xd4, 0x4a, 0xcb, 0xc5, 0xca, 0x6a, 0x4d, 0xde, 0x40, + 0x6f, 0x4e, 0x42, 0x76, 0xc5, 0x34, 0xea, 0xb8, 0xd3, 0x41, 0xaf, 0x49, 0x42, 0x26, 0xaf, 0xb5, + 0xea, 0xb8, 0x89, 0x9e, 0xed, 0xc2, 0xd8, 0xb5, 0x24, 0x44, 0x3f, 0xf2, 0x4a, 0xfd, 0xbd, 0x22, + 0xd7, 0xc4, 0x77, 0x85, 0x79, 0xb9, 0xb3, 0xac, 0x4c, 0x1f, 0xde, 0x3d, 0xe1, 0xf0, 0x2e, 0x2f, + 0xf0, 0xee, 0xa6, 0xf0, 0x45, 0xc5, 0x2f, 0xe7, 0x7f, 0x9f, 0x80, 0xe3, 0x0b, 0x64, 0xfa, 0xa0, + 0xd7, 0x19, 0xf1, 0x76, 0xfb, 0xef, 0x12, 0xdb, 0xff, 0x5c, 0x81, 0xe8, 0x5e, 0x39, 0xc4, 0xc6, + 0x3f, 0xee, 0x34, 0xfe, 0x5e, 0xa1, 0xf1, 0x37, 0x84, 0x2c, 0x27, 0xf6, 0x96, 0xcf, 0x64, 0x21, + 0x4d, 0xa7, 0xc8, 0x33, 0xd7, 0xc0, 0x64, 0xd5, 0x32, 0xb1, 0xb6, 0xed, 0x19, 0x94, 0x2c, 0xe3, + 0x3c, 0x6e, 0x71, 0xd1, 0x60, 0x81, 0xdb, 0xcf, 0x40, 0xb6, 0x65, 0xac, 0x69, 0x3b, 0xd6, 0x96, + 0xf2, 0x9c, 0x7d, 0xc7, 0x86, 0x96, 0x59, 0xff, 0xaf, 0xb4, 0xd9, 0x2e, 0xd2, 0xb7, 0xef, 0xa4, + 0x13, 0xb3, 0x4c, 0xcb, 0xc8, 0xed, 0x58, 0x5b, 0x73, 0x97, 0x7f, 0xe6, 0xe9, 0x93, 0x89, 0xcf, + 0x3f, 0x7d, 0x32, 0xf1, 0xad, 0xa7, 0x4f, 0x26, 0x7e, 0xeb, 0x3b, 0x27, 0x8f, 0x7c, 0xfe, 0x3b, + 0x27, 0x8f, 0x7c, 0xed, 0x3b, 0x27, 0x8f, 0xfc, 0x62, 0xb2, 0xbd, 0xbe, 0x9e, 0xa1, 0xa5, 0xdc, + 0xfa, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x75, 0x2b, 0x85, 0xbe, 0x42, 0x32, 0x01, 0x00, } func (m *Rpc) Marshal() (dAtA []byte, err error) { @@ -50130,7 +50146,7 @@ func (m *RpcObjectSearchSubscribeResponseError) MarshalToSizedBuffer(dAtA []byte return len(dAtA) - i, nil } -func (m *RpcObjectRelationSearchDistinct) Marshal() (dAtA []byte, err error) { +func (m *RpcObjectGroupsSubscribe) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -50140,12 +50156,12 @@ func (m *RpcObjectRelationSearchDistinct) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *RpcObjectRelationSearchDistinct) MarshalTo(dAtA []byte) (int, error) { +func (m *RpcObjectGroupsSubscribe) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RpcObjectRelationSearchDistinct) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RpcObjectGroupsSubscribe) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -50153,7 +50169,7 @@ func (m *RpcObjectRelationSearchDistinct) MarshalToSizedBuffer(dAtA []byte) (int return len(dAtA) - i, nil } -func (m *RpcObjectRelationSearchDistinctRequest) Marshal() (dAtA []byte, err error) { +func (m *RpcObjectGroupsSubscribeRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -50163,16 +50179,25 @@ func (m *RpcObjectRelationSearchDistinctRequest) Marshal() (dAtA []byte, err err return dAtA[:n], nil } -func (m *RpcObjectRelationSearchDistinctRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *RpcObjectGroupsSubscribeRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RpcObjectRelationSearchDistinctRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RpcObjectGroupsSubscribeRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l + if len(m.Source) > 0 { + for iNdEx := len(m.Source) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Source[iNdEx]) + copy(dAtA[i:], m.Source[iNdEx]) + i = encodeVarintCommands(dAtA, i, uint64(len(m.Source[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } if len(m.Filters) > 0 { for iNdEx := len(m.Filters) - 1; iNdEx >= 0; iNdEx-- { { @@ -50184,7 +50209,7 @@ func (m *RpcObjectRelationSearchDistinctRequest) MarshalToSizedBuffer(dAtA []byt i = encodeVarintCommands(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } } if len(m.RelationKey) > 0 { @@ -50192,12 +50217,19 @@ func (m *RpcObjectRelationSearchDistinctRequest) MarshalToSizedBuffer(dAtA []byt copy(dAtA[i:], m.RelationKey) i = encodeVarintCommands(dAtA, i, uint64(len(m.RelationKey))) i-- + dAtA[i] = 0x12 + } + if len(m.SubId) > 0 { + i -= len(m.SubId) + copy(dAtA[i:], m.SubId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.SubId))) + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *RpcObjectRelationSearchDistinctResponse) Marshal() (dAtA []byte, err error) { +func (m *RpcObjectGroupsSubscribeResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -50207,16 +50239,23 @@ func (m *RpcObjectRelationSearchDistinctResponse) Marshal() (dAtA []byte, err er return dAtA[:n], nil } -func (m *RpcObjectRelationSearchDistinctResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *RpcObjectGroupsSubscribeResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RpcObjectRelationSearchDistinctResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RpcObjectGroupsSubscribeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l + if len(m.SubId) > 0 { + i -= len(m.SubId) + copy(dAtA[i:], m.SubId) + i = encodeVarintCommands(dAtA, i, uint64(len(m.SubId))) + i-- + dAtA[i] = 0x1a + } if len(m.Groups) > 0 { for iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- { { @@ -50246,7 +50285,7 @@ func (m *RpcObjectRelationSearchDistinctResponse) MarshalToSizedBuffer(dAtA []by return len(dAtA) - i, nil } -func (m *RpcObjectRelationSearchDistinctResponseError) Marshal() (dAtA []byte, err error) { +func (m *RpcObjectGroupsSubscribeResponseError) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -50256,12 +50295,12 @@ func (m *RpcObjectRelationSearchDistinctResponseError) Marshal() (dAtA []byte, e return dAtA[:n], nil } -func (m *RpcObjectRelationSearchDistinctResponseError) MarshalTo(dAtA []byte) (int, error) { +func (m *RpcObjectGroupsSubscribeResponseError) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *RpcObjectRelationSearchDistinctResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RpcObjectGroupsSubscribeResponseError) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -73690,7 +73729,7 @@ func (m *RpcObjectSearchSubscribeResponseError) Size() (n int) { return n } -func (m *RpcObjectRelationSearchDistinct) Size() (n int) { +func (m *RpcObjectGroupsSubscribe) Size() (n int) { if m == nil { return 0 } @@ -73699,12 +73738,16 @@ func (m *RpcObjectRelationSearchDistinct) Size() (n int) { return n } -func (m *RpcObjectRelationSearchDistinctRequest) Size() (n int) { +func (m *RpcObjectGroupsSubscribeRequest) Size() (n int) { if m == nil { return 0 } var l int _ = l + l = len(m.SubId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } l = len(m.RelationKey) if l > 0 { n += 1 + l + sovCommands(uint64(l)) @@ -73715,10 +73758,16 @@ func (m *RpcObjectRelationSearchDistinctRequest) Size() (n int) { n += 1 + l + sovCommands(uint64(l)) } } + if len(m.Source) > 0 { + for _, s := range m.Source { + l = len(s) + n += 1 + l + sovCommands(uint64(l)) + } + } return n } -func (m *RpcObjectRelationSearchDistinctResponse) Size() (n int) { +func (m *RpcObjectGroupsSubscribeResponse) Size() (n int) { if m == nil { return 0 } @@ -73734,10 +73783,14 @@ func (m *RpcObjectRelationSearchDistinctResponse) Size() (n int) { n += 1 + l + sovCommands(uint64(l)) } } + l = len(m.SubId) + if l > 0 { + n += 1 + l + sovCommands(uint64(l)) + } return n } -func (m *RpcObjectRelationSearchDistinctResponseError) Size() (n int) { +func (m *RpcObjectGroupsSubscribeResponseError) Size() (n int) { if m == nil { return 0 } @@ -99432,7 +99485,7 @@ func (m *RpcObjectSearchSubscribeResponseError) Unmarshal(dAtA []byte) error { } return nil } -func (m *RpcObjectRelationSearchDistinct) Unmarshal(dAtA []byte) error { +func (m *RpcObjectGroupsSubscribe) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -99455,10 +99508,10 @@ func (m *RpcObjectRelationSearchDistinct) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RelationSearchDistinct: wiretype end group for non-group") + return fmt.Errorf("proto: GroupsSubscribe: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RelationSearchDistinct: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: GroupsSubscribe: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -99482,7 +99535,7 @@ func (m *RpcObjectRelationSearchDistinct) Unmarshal(dAtA []byte) error { } return nil } -func (m *RpcObjectRelationSearchDistinctRequest) Unmarshal(dAtA []byte) error { +func (m *RpcObjectGroupsSubscribeRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -99512,6 +99565,38 @@ func (m *RpcObjectRelationSearchDistinctRequest) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubId", 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.SubId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field RelationKey", wireType) } @@ -99543,7 +99628,7 @@ func (m *RpcObjectRelationSearchDistinctRequest) Unmarshal(dAtA []byte) error { } m.RelationKey = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Filters", wireType) } @@ -99577,6 +99662,38 @@ func (m *RpcObjectRelationSearchDistinctRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Source", 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.Source = append(m.Source, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCommands(dAtA[iNdEx:]) @@ -99598,7 +99715,7 @@ func (m *RpcObjectRelationSearchDistinctRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *RpcObjectRelationSearchDistinctResponse) Unmarshal(dAtA []byte) error { +func (m *RpcObjectGroupsSubscribeResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -99657,7 +99774,7 @@ func (m *RpcObjectRelationSearchDistinctResponse) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Error == nil { - m.Error = &RpcObjectRelationSearchDistinctResponseError{} + m.Error = &RpcObjectGroupsSubscribeResponseError{} } if err := m.Error.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -99697,6 +99814,38 @@ func (m *RpcObjectRelationSearchDistinctResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubId", 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.SubId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipCommands(dAtA[iNdEx:]) @@ -99718,7 +99867,7 @@ func (m *RpcObjectRelationSearchDistinctResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *RpcObjectRelationSearchDistinctResponseError) Unmarshal(dAtA []byte) error { +func (m *RpcObjectGroupsSubscribeResponseError) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -99761,7 +99910,7 @@ func (m *RpcObjectRelationSearchDistinctResponseError) Unmarshal(dAtA []byte) er } b := dAtA[iNdEx] iNdEx++ - m.Code |= RpcObjectRelationSearchDistinctResponseErrorCode(b&0x7F) << shift + m.Code |= RpcObjectGroupsSubscribeResponseErrorCode(b&0x7F) << shift if b < 0x80 { break } diff --git a/pb/events.pb.go b/pb/events.pb.go index f1c3909e9..8b0e52424 100644 --- a/pb/events.pb.go +++ b/pb/events.pb.go @@ -246,6 +246,7 @@ type EventMessage struct { // *EventMessageValueOfSubscriptionRemove // *EventMessageValueOfSubscriptionPosition // *EventMessageValueOfSubscriptionCounters + // *EventMessageValueOfSubscriptionGroups // *EventMessageValueOfBlockAdd // *EventMessageValueOfBlockDelete // *EventMessageValueOfFilesUpload @@ -367,6 +368,9 @@ type EventMessageValueOfSubscriptionPosition struct { type EventMessageValueOfSubscriptionCounters struct { SubscriptionCounters *EventObjectSubscriptionCounters `protobuf:"bytes,63,opt,name=subscriptionCounters,proto3,oneof" json:"subscriptionCounters,omitempty"` } +type EventMessageValueOfSubscriptionGroups struct { + SubscriptionGroups *EventObjectSubscriptionGroups `protobuf:"bytes,64,opt,name=subscriptionGroups,proto3,oneof" json:"subscriptionGroups,omitempty"` +} type EventMessageValueOfBlockAdd struct { BlockAdd *EventBlockAdd `protobuf:"bytes,2,opt,name=blockAdd,proto3,oneof" json:"blockAdd,omitempty"` } @@ -493,6 +497,7 @@ func (*EventMessageValueOfSubscriptionAdd) IsEventMessageValue() func (*EventMessageValueOfSubscriptionRemove) IsEventMessageValue() {} func (*EventMessageValueOfSubscriptionPosition) IsEventMessageValue() {} func (*EventMessageValueOfSubscriptionCounters) IsEventMessageValue() {} +func (*EventMessageValueOfSubscriptionGroups) IsEventMessageValue() {} func (*EventMessageValueOfBlockAdd) IsEventMessageValue() {} func (*EventMessageValueOfBlockDelete) IsEventMessageValue() {} func (*EventMessageValueOfFilesUpload) IsEventMessageValue() {} @@ -636,6 +641,13 @@ func (m *EventMessage) GetSubscriptionCounters() *EventObjectSubscriptionCounter return nil } +func (m *EventMessage) GetSubscriptionGroups() *EventObjectSubscriptionGroups { + if x, ok := m.GetValue().(*EventMessageValueOfSubscriptionGroups); ok { + return x.SubscriptionGroups + } + return nil +} + func (m *EventMessage) GetBlockAdd() *EventBlockAdd { if x, ok := m.GetValue().(*EventMessageValueOfBlockAdd); ok { return x.BlockAdd @@ -912,6 +924,7 @@ func (*EventMessage) XXX_OneofWrappers() []interface{} { (*EventMessageValueOfSubscriptionRemove)(nil), (*EventMessageValueOfSubscriptionPosition)(nil), (*EventMessageValueOfSubscriptionCounters)(nil), + (*EventMessageValueOfSubscriptionGroups)(nil), (*EventMessageValueOfBlockAdd)(nil), (*EventMessageValueOfBlockDelete)(nil), (*EventMessageValueOfFilesUpload)(nil), @@ -1823,6 +1836,66 @@ func (m *EventObjectSubscriptionCounters) GetSubId() string { return "" } +type EventObjectSubscriptionGroups struct { + SubId string `protobuf:"bytes,1,opt,name=subId,proto3" json:"subId,omitempty"` + Group *model.BlockContentDataviewGroup `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"` + Remove bool `protobuf:"varint,3,opt,name=remove,proto3" json:"remove,omitempty"` +} + +func (m *EventObjectSubscriptionGroups) Reset() { *m = EventObjectSubscriptionGroups{} } +func (m *EventObjectSubscriptionGroups) String() string { return proto.CompactTextString(m) } +func (*EventObjectSubscriptionGroups) ProtoMessage() {} +func (*EventObjectSubscriptionGroups) Descriptor() ([]byte, []int) { + return fileDescriptor_a966342d378ae5f5, []int{0, 2, 1, 4} +} +func (m *EventObjectSubscriptionGroups) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventObjectSubscriptionGroups) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventObjectSubscriptionGroups.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 *EventObjectSubscriptionGroups) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventObjectSubscriptionGroups.Merge(m, src) +} +func (m *EventObjectSubscriptionGroups) XXX_Size() int { + return m.Size() +} +func (m *EventObjectSubscriptionGroups) XXX_DiscardUnknown() { + xxx_messageInfo_EventObjectSubscriptionGroups.DiscardUnknown(m) +} + +var xxx_messageInfo_EventObjectSubscriptionGroups proto.InternalMessageInfo + +func (m *EventObjectSubscriptionGroups) GetSubId() string { + if m != nil { + return m.SubId + } + return "" +} + +func (m *EventObjectSubscriptionGroups) GetGroup() *model.BlockContentDataviewGroup { + if m != nil { + return m.Group + } + return nil +} + +func (m *EventObjectSubscriptionGroups) GetRemove() bool { + if m != nil { + return m.Remove + } + return false +} + type EventObjectRelations struct { } @@ -8457,6 +8530,7 @@ func init() { proto.RegisterType((*EventObjectSubscriptionRemove)(nil), "anytype.Event.Object.Subscription.Remove") proto.RegisterType((*EventObjectSubscriptionPosition)(nil), "anytype.Event.Object.Subscription.Position") proto.RegisterType((*EventObjectSubscriptionCounters)(nil), "anytype.Event.Object.Subscription.Counters") + proto.RegisterType((*EventObjectSubscriptionGroups)(nil), "anytype.Event.Object.Subscription.Groups") proto.RegisterType((*EventObjectRelations)(nil), "anytype.Event.Object.Relations") proto.RegisterType((*EventObjectRelationsAmend)(nil), "anytype.Event.Object.Relations.Amend") proto.RegisterType((*EventObjectRelationsRemove)(nil), "anytype.Event.Object.Relations.Remove") @@ -8592,269 +8666,273 @@ func init() { func init() { proto.RegisterFile("pb/protos/events.proto", fileDescriptor_a966342d378ae5f5) } var fileDescriptor_a966342d378ae5f5 = []byte{ - // 4186 bytes of a gzipped FileDescriptorProto + // 4242 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0x4b, 0x6c, 0x1c, 0x47, - 0x7a, 0x9e, 0xf7, 0xe3, 0xa7, 0x48, 0x8d, 0xcb, 0xb2, 0xdc, 0x6e, 0x51, 0xb4, 0x44, 0x3d, 0x6d, - 0xcb, 0x23, 0xaf, 0x64, 0x59, 0x5a, 0xad, 0x1e, 0xa6, 0x48, 0x2a, 0x33, 0x7a, 0x91, 0x29, 0x8a, - 0xce, 0xae, 0x37, 0x58, 0x6c, 0x73, 0xba, 0x38, 0xec, 0xe5, 0xb0, 0x7b, 0xd2, 0xdd, 0x33, 0x14, - 0x77, 0x73, 0x08, 0xb2, 0x39, 0x04, 0x41, 0x02, 0x24, 0x97, 0x24, 0x97, 0x20, 0x87, 0x24, 0x87, - 0x00, 0x7b, 0x58, 0x20, 0x97, 0x9c, 0x72, 0x09, 0x16, 0xc8, 0xe3, 0xe2, 0x63, 0x6e, 0x09, 0xec, - 0x4b, 0x2e, 0x39, 0xe4, 0x92, 0x5b, 0x80, 0xa0, 0x5e, 0xdd, 0x55, 0x3d, 0xdd, 0xd3, 0x43, 0x68, - 0x17, 0x9b, 0x20, 0x3e, 0xa9, 0xab, 0xea, 0xff, 0xbe, 0x7a, 0xff, 0x55, 0xf5, 0xcd, 0x4f, 0xc1, - 0xe9, 0xe1, 0xce, 0xf5, 0xa1, 0xef, 0x85, 0x5e, 0x70, 0x9d, 0x8c, 0x89, 0x1b, 0x06, 0x6d, 0x96, - 0x42, 0x75, 0xcb, 0x3d, 0x0a, 0x8f, 0x86, 0xc4, 0xbc, 0x38, 0xdc, 0xef, 0x5f, 0x1f, 0x38, 0x3b, - 0xd7, 0x87, 0x3b, 0xd7, 0x0f, 0x3c, 0x9b, 0x0c, 0xa4, 0x39, 0x4b, 0x08, 0x73, 0x73, 0xb1, 0xef, - 0x79, 0xfd, 0x01, 0xe1, 0x65, 0x3b, 0xa3, 0xdd, 0xeb, 0x41, 0xe8, 0x8f, 0x7a, 0x21, 0x2f, 0x5d, - 0xfe, 0xb3, 0x1f, 0x17, 0xa1, 0xba, 0x4e, 0xe9, 0xd1, 0x0d, 0x68, 0x1c, 0x90, 0x20, 0xb0, 0xfa, - 0x24, 0x30, 0x8a, 0xe7, 0xca, 0x57, 0xe7, 0x6e, 0x9c, 0x6e, 0x8b, 0xaa, 0xda, 0xcc, 0xa2, 0xfd, - 0x9c, 0x17, 0xe3, 0xc8, 0x0e, 0x2d, 0x42, 0xb3, 0xe7, 0xb9, 0x21, 0x79, 0x15, 0x76, 0x6d, 0xa3, - 0x74, 0xae, 0x78, 0xb5, 0x89, 0xe3, 0x0c, 0xf4, 0x31, 0x34, 0x1d, 0xd7, 0x09, 0x1d, 0x2b, 0xf4, - 0x7c, 0xa3, 0x7c, 0xae, 0xa8, 0x51, 0xb2, 0x46, 0xb6, 0x57, 0x7a, 0x3d, 0x6f, 0xe4, 0x86, 0x38, - 0x36, 0x44, 0x06, 0xd4, 0x43, 0xdf, 0xea, 0x91, 0xae, 0x6d, 0x54, 0x18, 0xa3, 0x4c, 0x9a, 0x5f, - 0x9c, 0x87, 0xba, 0x68, 0x03, 0x7a, 0x08, 0x73, 0x16, 0xc7, 0x6e, 0xed, 0x79, 0x87, 0x46, 0x91, - 0xb1, 0x9f, 0x49, 0x34, 0x58, 0xb0, 0xb7, 0xa9, 0x49, 0xa7, 0x80, 0x55, 0x04, 0xea, 0xc2, 0x82, - 0x48, 0xae, 0x91, 0xd0, 0x72, 0x06, 0x81, 0xf1, 0x8f, 0x9c, 0x64, 0x29, 0x83, 0x44, 0x98, 0x75, - 0x0a, 0x38, 0x01, 0x44, 0xdf, 0x81, 0x37, 0x45, 0xce, 0xaa, 0xe7, 0xee, 0x3a, 0xfd, 0xed, 0xa1, - 0x6d, 0x85, 0xc4, 0xf8, 0x27, 0xce, 0x77, 0x31, 0x83, 0x8f, 0xdb, 0xb6, 0xb9, 0x71, 0xa7, 0x80, - 0xd3, 0x38, 0xd0, 0x63, 0x98, 0x17, 0xd9, 0x82, 0xf4, 0x9f, 0x39, 0xe9, 0xd9, 0x0c, 0xd2, 0x88, - 0x4d, 0x87, 0xa1, 0x0d, 0x68, 0x79, 0x3b, 0x3f, 0x20, 0x3d, 0xd9, 0xe6, 0x2d, 0x12, 0x1a, 0x2d, - 0xc6, 0x74, 0x3e, 0xc1, 0xb4, 0xc1, 0xcc, 0x64, 0x6f, 0xdb, 0x5b, 0x24, 0xec, 0x14, 0xf0, 0x04, - 0x18, 0x6d, 0x03, 0xd2, 0xf2, 0x56, 0x0e, 0x88, 0x6b, 0x1b, 0x37, 0x18, 0xe5, 0x85, 0xe9, 0x94, - 0xcc, 0xb4, 0x53, 0xc0, 0x29, 0x04, 0x13, 0xb4, 0xdb, 0x6e, 0x40, 0x42, 0xe3, 0xe6, 0x2c, 0xb4, - 0xcc, 0x74, 0x82, 0x96, 0xe5, 0xa2, 0xef, 0xc2, 0x29, 0x9e, 0x8b, 0xc9, 0xc0, 0x0a, 0x1d, 0xcf, - 0x15, 0xed, 0xfd, 0x98, 0x11, 0x5f, 0x4a, 0x27, 0x8e, 0x6c, 0xa3, 0x16, 0xa7, 0x92, 0xa0, 0xef, - 0xc1, 0x5b, 0x89, 0x7c, 0x4c, 0x0e, 0xbc, 0x31, 0x31, 0x6e, 0x31, 0xf6, 0xcb, 0x79, 0xec, 0xdc, - 0xba, 0x53, 0xc0, 0xe9, 0x34, 0xe8, 0x11, 0x9c, 0x90, 0x05, 0x8c, 0xf6, 0x13, 0x46, 0xbb, 0x98, - 0x45, 0x2b, 0xc8, 0x34, 0x0c, 0xc2, 0x70, 0x32, 0x18, 0xed, 0x04, 0x3d, 0xdf, 0x19, 0x52, 0xea, - 0x15, 0xdb, 0x36, 0xee, 0x4d, 0x6b, 0xdd, 0x96, 0x62, 0xdc, 0x5e, 0xb1, 0x69, 0xe7, 0x93, 0x04, - 0xe8, 0xbb, 0x80, 0xd4, 0x2c, 0xd1, 0xba, 0xfb, 0x8c, 0xf6, 0xbd, 0x19, 0x68, 0xa3, 0xa6, 0xa6, - 0xd0, 0x20, 0x0b, 0x4e, 0xa9, 0xb9, 0x9b, 0x5e, 0xe0, 0xd0, 0x7f, 0x8d, 0x07, 0x8c, 0xfe, 0x83, - 0x19, 0xe8, 0x25, 0x84, 0xce, 0x5b, 0x1a, 0x55, 0xb2, 0x8a, 0x55, 0xba, 0x5d, 0x88, 0x1f, 0x18, - 0x0f, 0x67, 0xae, 0x42, 0x42, 0x92, 0x55, 0xc8, 0x7c, 0xf4, 0x09, 0x34, 0x76, 0x06, 0x5e, 0x6f, - 0x9f, 0x8e, 0x77, 0x89, 0xd1, 0x1a, 0x09, 0xda, 0x47, 0xb4, 0x58, 0x8c, 0x70, 0x64, 0x4b, 0xbd, - 0x1b, 0xfb, 0x5e, 0x23, 0x03, 0x12, 0x12, 0xe1, 0x3b, 0xcf, 0xa4, 0x42, 0xb9, 0x09, 0xf5, 0x6e, - 0x0a, 0x02, 0xad, 0xc1, 0xdc, 0xae, 0x33, 0x20, 0xc1, 0xf6, 0x70, 0xe0, 0x59, 0xdc, 0x91, 0xce, - 0xdd, 0x38, 0x97, 0x4a, 0xf0, 0x38, 0xb6, 0xa3, 0x2c, 0x0a, 0x0c, 0x3d, 0x80, 0xe6, 0x81, 0xe5, - 0xef, 0x07, 0x5d, 0x77, 0xd7, 0x33, 0xaa, 0xa9, 0xde, 0x91, 0x73, 0x3c, 0x97, 0x56, 0x9d, 0x02, - 0x8e, 0x21, 0xd4, 0xc7, 0xb2, 0x46, 0x6d, 0x91, 0xf0, 0xb1, 0x43, 0x06, 0x76, 0x60, 0xd4, 0x18, - 0xc9, 0xbb, 0xa9, 0x24, 0x5b, 0x24, 0x6c, 0x73, 0x33, 0xea, 0x63, 0x75, 0x20, 0xfa, 0x36, 0xbc, - 0x29, 0x73, 0x56, 0xf7, 0x9c, 0x81, 0xed, 0x13, 0xb7, 0x6b, 0x07, 0x46, 0x3d, 0xd5, 0xc5, 0xc6, - 0x7c, 0x8a, 0x2d, 0x75, 0xb1, 0x29, 0x14, 0xd4, 0x37, 0xc8, 0x6c, 0x4c, 0x82, 0xd0, 0x77, 0x7a, - 0x6c, 0xf3, 0x19, 0x8d, 0x54, 0xdf, 0x10, 0x53, 0xab, 0xc6, 0x74, 0x01, 0xa4, 0x91, 0x20, 0x1b, - 0xde, 0x96, 0xf9, 0x8f, 0xac, 0xde, 0x7e, 0xdf, 0xf7, 0x46, 0xae, 0xbd, 0xea, 0x0d, 0x3c, 0xdf, - 0x68, 0x32, 0xfe, 0xab, 0x99, 0xfc, 0x09, 0xfb, 0x4e, 0x01, 0x67, 0x51, 0xa1, 0x55, 0x38, 0x21, - 0x8b, 0x5e, 0x92, 0x57, 0xa1, 0x01, 0xa9, 0x67, 0x44, 0x4c, 0x4d, 0x8d, 0xa8, 0x8b, 0x50, 0x41, - 0x2a, 0x09, 0x5d, 0x12, 0xc6, 0x5c, 0x0e, 0x09, 0x35, 0x52, 0x49, 0x68, 0x5a, 0x25, 0x79, 0xe6, - 0xb8, 0xfb, 0xc6, 0x7c, 0x0e, 0x09, 0x35, 0x52, 0x49, 0x68, 0x9a, 0x1e, 0x56, 0x51, 0x4f, 0x3d, - 0x6f, 0x9f, 0xae, 0x27, 0x63, 0x21, 0xf5, 0xb0, 0x52, 0x46, 0x4b, 0x18, 0xd2, 0xc3, 0x2a, 0x09, - 0xa6, 0xa7, 0xa8, 0xcc, 0x5b, 0x19, 0x38, 0x7d, 0xd7, 0x38, 0x39, 0x65, 0x2d, 0x53, 0x36, 0x66, - 0x45, 0x4f, 0x51, 0x0d, 0x86, 0x3e, 0x15, 0xdb, 0x72, 0x8b, 0x84, 0x6b, 0xce, 0xd8, 0x78, 0x23, - 0xd5, 0x11, 0xc7, 0x2c, 0x6b, 0xce, 0x38, 0xda, 0x97, 0x1c, 0xa2, 0x76, 0x4d, 0xba, 0x79, 0xe3, - 0xad, 0x9c, 0xae, 0x49, 0x43, 0xb5, 0x6b, 0x32, 0x4f, 0xed, 0xda, 0x33, 0x2b, 0x24, 0xaf, 0x8c, - 0x77, 0x72, 0xba, 0xc6, 0xac, 0xd4, 0xae, 0xb1, 0x0c, 0x7a, 0x88, 0xc9, 0x8c, 0xcf, 0x88, 0x1f, - 0x3a, 0x3d, 0x6b, 0xc0, 0x87, 0xea, 0x62, 0xea, 0x31, 0x11, 0xf3, 0x69, 0xd6, 0xf4, 0x10, 0x4b, - 0xa5, 0x51, 0x3b, 0xfe, 0xd2, 0xda, 0x19, 0x10, 0xec, 0x1d, 0x1a, 0x97, 0x72, 0x3a, 0x2e, 0x0d, - 0xd5, 0x8e, 0xcb, 0xbc, 0x68, 0xdb, 0xae, 0x59, 0xa1, 0x35, 0x76, 0xc8, 0xe1, 0x67, 0x0e, 0x39, - 0xa4, 0xb7, 0x9a, 0x37, 0xa7, 0x6c, 0x5b, 0x69, 0xdb, 0x16, 0xc6, 0xd1, 0xb6, 0x4d, 0x90, 0x44, - 0xdb, 0x56, 0xcd, 0x17, 0xbe, 0xf8, 0xd4, 0x94, 0x6d, 0xab, 0xf1, 0x47, 0x8e, 0x39, 0x8b, 0x0a, - 0x59, 0x70, 0x7a, 0xa2, 0x68, 0xc3, 0xb7, 0x89, 0x6f, 0x9c, 0x65, 0x95, 0x5c, 0xc9, 0xaf, 0x84, - 0x99, 0x77, 0x0a, 0x38, 0x83, 0x68, 0xa2, 0x8a, 0x2d, 0x6f, 0xe4, 0xf7, 0x08, 0x1d, 0xa7, 0x0b, - 0xb3, 0x54, 0x11, 0x99, 0x4f, 0x54, 0x11, 0x95, 0xa0, 0x31, 0x9c, 0x8d, 0x4a, 0x68, 0xc5, 0xbf, - 0xe2, 0x7b, 0xa3, 0x21, 0xab, 0x5d, 0x5c, 0x59, 0x2f, 0xb3, 0x9a, 0xda, 0xd3, 0x6b, 0x4a, 0xa2, - 0x3a, 0x05, 0x3c, 0x9d, 0x16, 0x1d, 0xc1, 0x92, 0x66, 0xc0, 0x0f, 0x68, 0xb5, 0xe2, 0x2b, 0xac, - 0xe2, 0xeb, 0xd3, 0x2b, 0x9e, 0x80, 0x75, 0x0a, 0x38, 0x87, 0x18, 0x0d, 0xe1, 0x8c, 0x36, 0x18, - 0x72, 0x37, 0x8a, 0x25, 0xf2, 0x9b, 0xac, 0xde, 0x6b, 0xd3, 0xeb, 0xd5, 0x31, 0x9d, 0x02, 0x9e, - 0x46, 0x89, 0xfa, 0x60, 0xa4, 0x16, 0xd3, 0x99, 0xfc, 0x51, 0xea, 0x8d, 0x2b, 0xa3, 0x3a, 0x3e, - 0x97, 0x99, 0x64, 0xda, 0xa8, 0xd2, 0xb2, 0x8d, 0x81, 0x9d, 0xe8, 0x9d, 0x31, 0xd3, 0xa8, 0x26, - 0x61, 0xda, 0xa8, 0xa6, 0x12, 0x4f, 0x8c, 0xaa, 0x62, 0x41, 0xbb, 0xf9, 0xf6, 0x2c, 0xa3, 0xaa, - 0x63, 0x26, 0x46, 0x55, 0x2f, 0xa6, 0xce, 0x73, 0x14, 0x10, 0x9f, 0x71, 0x3c, 0xf1, 0x1c, 0xd7, - 0x78, 0x37, 0xd5, 0x79, 0x6e, 0x07, 0xc4, 0x17, 0x15, 0x51, 0x2b, 0xea, 0x3c, 0x35, 0x98, 0xc6, - 0xf3, 0x8c, 0xec, 0x86, 0xc6, 0xb9, 0x3c, 0x1e, 0x6a, 0xa5, 0xf1, 0xd0, 0x0c, 0xea, 0xd3, 0xa2, - 0x8c, 0x2d, 0x32, 0xa0, 0xd7, 0x77, 0xcb, 0xed, 0x13, 0xe3, 0x7c, 0xaa, 0x4f, 0x53, 0xe8, 0x14, - 0x63, 0xea, 0xd3, 0xd2, 0x48, 0xe8, 0xd3, 0x2a, 0xca, 0xa7, 0x07, 0x3e, 0xa7, 0x5e, 0x4e, 0x7d, - 0x5a, 0x29, 0xd4, 0x91, 0x29, 0xbd, 0xa8, 0x4f, 0x12, 0xa0, 0xf7, 0xa0, 0x32, 0x74, 0xdc, 0xbe, - 0x61, 0x33, 0xa2, 0x37, 0x13, 0x44, 0x9b, 0x8e, 0xdb, 0xef, 0x14, 0x30, 0x33, 0x41, 0xf7, 0x00, - 0x86, 0xbe, 0xd7, 0x23, 0x41, 0xf0, 0x82, 0x1c, 0x1a, 0x84, 0x01, 0xcc, 0x24, 0x80, 0x1b, 0xb4, - 0x5f, 0x10, 0xea, 0xf6, 0x15, 0x7b, 0xb4, 0x0e, 0xf3, 0x22, 0x25, 0xb6, 0xf7, 0x6e, 0xea, 0xdd, - 0x42, 0x12, 0xc4, 0x2f, 0x61, 0x0d, 0x45, 0xaf, 0xd6, 0x22, 0x63, 0xcd, 0x73, 0x89, 0xd1, 0x4f, - 0xbd, 0x5a, 0x4b, 0x12, 0x6a, 0x42, 0x8f, 0x70, 0x05, 0x41, 0x9f, 0x63, 0xe1, 0x9e, 0x4f, 0x2c, - 0x7b, 0x2b, 0xb4, 0xc2, 0x51, 0x60, 0xb8, 0xa9, 0xb7, 0x00, 0x5e, 0xd8, 0x7e, 0xc9, 0x2c, 0xe9, - 0x0d, 0x47, 0xc5, 0x3c, 0xaa, 0x43, 0x75, 0x6c, 0x0d, 0x46, 0xc4, 0xfc, 0x69, 0x19, 0xea, 0xe2, - 0xed, 0x6e, 0xbe, 0x80, 0x0a, 0x53, 0x26, 0x4e, 0x41, 0xd5, 0x71, 0x6d, 0xf2, 0x8a, 0x89, 0x1a, - 0x55, 0xcc, 0x13, 0xe8, 0x23, 0xa8, 0x8b, 0x27, 0xbd, 0x78, 0x49, 0x64, 0x49, 0x29, 0xd2, 0xcc, - 0xfc, 0x1c, 0xea, 0x52, 0xa1, 0x58, 0x84, 0xe6, 0xd0, 0xf7, 0xe8, 0xd5, 0xbe, 0x6b, 0x33, 0xda, - 0x26, 0x8e, 0x33, 0xd0, 0x37, 0xa0, 0x6e, 0x0b, 0x0d, 0x84, 0x53, 0xbf, 0xdd, 0xe6, 0xa2, 0x51, - 0x5b, 0x8a, 0x46, 0xed, 0x2d, 0x26, 0x1a, 0x61, 0x69, 0x67, 0xfe, 0x56, 0x11, 0x6a, 0x5c, 0xa8, - 0x30, 0xc7, 0x50, 0x13, 0x43, 0x7b, 0x0b, 0x6a, 0x3d, 0x96, 0x67, 0x24, 0x45, 0x0a, 0xad, 0x85, - 0x42, 0xf9, 0xc0, 0xc2, 0x98, 0xc2, 0x02, 0x3e, 0x94, 0xa5, 0xa9, 0x30, 0x3e, 0x76, 0x58, 0x18, - 0xff, 0xd2, 0xea, 0xfd, 0x8f, 0x3a, 0xd4, 0xf8, 0x91, 0x60, 0xfe, 0x57, 0x29, 0x1a, 0x62, 0xf3, - 0xef, 0x8b, 0x50, 0xe5, 0x7a, 0xc0, 0x02, 0x94, 0x1c, 0x39, 0xca, 0x25, 0xc7, 0x46, 0x8f, 0xd5, - 0xe1, 0x2d, 0xa7, 0xf8, 0xb0, 0x34, 0x7d, 0xa4, 0xfd, 0x94, 0x1c, 0x7d, 0x46, 0x97, 0x48, 0x34, - 0xe6, 0xe8, 0x34, 0xd4, 0x82, 0xd1, 0x0e, 0x7d, 0xf5, 0x94, 0xcf, 0x95, 0xaf, 0x36, 0xb1, 0x48, - 0x99, 0x4f, 0xa0, 0x21, 0x8d, 0x51, 0x0b, 0xca, 0xfb, 0xe4, 0x48, 0x54, 0x4e, 0x3f, 0xd1, 0x35, - 0xb1, 0xd4, 0xa2, 0x55, 0x93, 0x9c, 0x5a, 0x5e, 0x8b, 0x58, 0x8f, 0xdf, 0x87, 0x32, 0x75, 0x8c, - 0xc9, 0x2e, 0x1c, 0x7f, 0x85, 0x64, 0xb6, 0x76, 0x15, 0xaa, 0x5c, 0x93, 0x49, 0xd6, 0x81, 0xa0, - 0xb2, 0x4f, 0x8e, 0xf8, 0x18, 0x35, 0x31, 0xfb, 0xce, 0x24, 0xf9, 0x59, 0x09, 0x4e, 0xa8, 0x2f, - 0x71, 0x73, 0x1d, 0xca, 0xf4, 0xdd, 0x9c, 0xe4, 0x34, 0xa0, 0x6e, 0xed, 0x86, 0xc4, 0x8f, 0xd4, - 0x49, 0x99, 0xa4, 0x9b, 0x8c, 0x71, 0xb1, 0xb7, 0x75, 0x13, 0xf3, 0x84, 0xd9, 0x86, 0x9a, 0xd0, - 0x1f, 0x92, 0x4c, 0x91, 0x7d, 0x49, 0xb5, 0x7f, 0x02, 0x8d, 0x48, 0x4e, 0x78, 0xdd, 0xba, 0x7d, - 0x68, 0x44, 0xba, 0xc1, 0x29, 0xa8, 0x86, 0x5e, 0x68, 0x0d, 0x18, 0x5d, 0x19, 0xf3, 0x04, 0xdd, - 0xc5, 0x2e, 0x79, 0x15, 0xae, 0x46, 0x4e, 0xa0, 0x8c, 0xe3, 0x0c, 0xbe, 0xc7, 0xc9, 0x98, 0x97, - 0x96, 0x79, 0x69, 0x94, 0x11, 0xd7, 0x59, 0x51, 0xeb, 0xfc, 0xab, 0x22, 0x34, 0x23, 0xb9, 0xc9, - 0xfc, 0x3c, 0x6b, 0x05, 0xaf, 0xc0, 0xbc, 0x2f, 0xac, 0xe8, 0x03, 0x4d, 0xae, 0xe3, 0x33, 0x89, - 0x0d, 0x83, 0x15, 0x1b, 0xac, 0x23, 0xcc, 0x7b, 0x99, 0x23, 0xbb, 0x0c, 0x27, 0xa4, 0xe9, 0xd3, - 0x78, 0xfe, 0xb5, 0x3c, 0xd3, 0x8c, 0xd0, 0x2d, 0x28, 0x3b, 0x36, 0x17, 0xa8, 0x9b, 0x98, 0x7e, - 0x9a, 0xdf, 0x83, 0x39, 0xe5, 0xc9, 0x3d, 0x41, 0xff, 0x90, 0xd2, 0x2b, 0xcf, 0xfa, 0x52, 0xc2, - 0xe1, 0xcb, 0xa6, 0xc7, 0x26, 0x58, 0x03, 0x98, 0x7f, 0xd1, 0x81, 0x2a, 0x3b, 0xf3, 0xcc, 0x9b, - 0x7c, 0x91, 0x5d, 0x83, 0x1a, 0xbb, 0x54, 0x48, 0x99, 0xfc, 0x54, 0x82, 0x8b, 0x19, 0x63, 0x61, - 0x63, 0xae, 0xc2, 0x9c, 0xa2, 0xb0, 0xd0, 0x55, 0xc1, 0x0a, 0x22, 0x3f, 0x2c, 0x93, 0xc8, 0x84, - 0x06, 0xf5, 0xc7, 0x9b, 0x56, 0xb8, 0x27, 0xc6, 0x20, 0x4a, 0x9b, 0x17, 0xa1, 0x26, 0x2e, 0x49, - 0xa6, 0x50, 0x94, 0xba, 0xd1, 0x20, 0x44, 0x69, 0xf3, 0xd7, 0xa1, 0x19, 0x09, 0x31, 0x68, 0x03, - 0x4e, 0x08, 0x21, 0x86, 0x1f, 0xf4, 0xd4, 0x78, 0x41, 0x51, 0xb5, 0x94, 0xb6, 0x52, 0xc7, 0x18, - 0x52, 0x47, 0x44, 0x4f, 0x75, 0xa6, 0xe5, 0xb4, 0x5f, 0x1e, 0x0d, 0x09, 0xd6, 0x08, 0xcc, 0xdf, - 0xbb, 0xc0, 0x7c, 0x83, 0x39, 0x84, 0x46, 0xf4, 0xfa, 0x4c, 0x0e, 0xf6, 0x6d, 0xee, 0x7e, 0x4a, - 0xb9, 0xd2, 0x09, 0xc7, 0x53, 0x27, 0xc7, 0xbc, 0x94, 0x79, 0x06, 0xca, 0x4f, 0xc9, 0x11, 0x5d, - 0xa5, 0xdc, 0x59, 0x71, 0x4a, 0xe1, 0x94, 0xba, 0x50, 0x13, 0x2a, 0x50, 0xb2, 0xbe, 0xeb, 0x50, - 0xdb, 0xe5, 0xc2, 0x52, 0x8e, 0x5b, 0x12, 0x66, 0xe6, 0x43, 0x98, 0x53, 0xb5, 0x9f, 0x24, 0xdf, - 0x39, 0x98, 0xeb, 0x29, 0xea, 0x12, 0x9f, 0x06, 0x35, 0xcb, 0x24, 0x70, 0x42, 0x13, 0x78, 0x92, - 0x0c, 0xeb, 0xa9, 0xcb, 0xed, 0x7c, 0xea, 0xb0, 0x4f, 0x59, 0x74, 0x4f, 0xe1, 0x64, 0x52, 0xe4, - 0x49, 0xd6, 0x74, 0x15, 0x4e, 0xee, 0x24, 0x24, 0x25, 0xee, 0x67, 0x92, 0xd9, 0x66, 0x17, 0xaa, - 0xfc, 0x11, 0x9e, 0xa4, 0xf8, 0x08, 0xaa, 0x16, 0x7b, 0xe4, 0x53, 0xe0, 0x82, 0x72, 0x17, 0x53, - 0x5b, 0xc9, 0xa0, 0x98, 0x1b, 0x9a, 0x0e, 0xcc, 0xeb, 0xef, 0xfa, 0x24, 0x65, 0x07, 0xe6, 0xc7, - 0x9a, 0x7e, 0xc0, 0xa9, 0x97, 0x53, 0xa9, 0x35, 0x2a, 0xac, 0x03, 0xcd, 0xdf, 0xae, 0x41, 0x85, - 0x09, 0x53, 0xc9, 0x2a, 0x3e, 0x81, 0x4a, 0x48, 0x5e, 0xc9, 0x6b, 0xd0, 0xf2, 0x54, 0x95, 0x8b, - 0x5f, 0x5f, 0x99, 0x3d, 0xfa, 0x26, 0x54, 0x83, 0xf0, 0x68, 0x20, 0xe5, 0xd4, 0x0b, 0xd3, 0x81, - 0x5b, 0xd4, 0x14, 0x73, 0x04, 0x85, 0xb2, 0xbd, 0x20, 0x84, 0xd4, 0x1c, 0x28, 0xdb, 0x84, 0x98, - 0x23, 0xd0, 0x43, 0xa8, 0xf7, 0xf6, 0x48, 0x6f, 0x9f, 0xd8, 0x42, 0x41, 0xbd, 0x34, 0x1d, 0xbc, - 0xca, 0x8d, 0xb1, 0x44, 0xd1, 0xba, 0x7b, 0x6c, 0x76, 0x6b, 0xb3, 0xd4, 0xcd, 0x66, 0x1c, 0x73, - 0x04, 0x5a, 0x87, 0xa6, 0xd3, 0xf3, 0xdc, 0xf5, 0x03, 0xef, 0x07, 0x8e, 0x90, 0x4a, 0xaf, 0x4c, - 0x87, 0x77, 0xa5, 0x39, 0x8e, 0x91, 0x92, 0xa6, 0x7b, 0x60, 0xf5, 0x89, 0x90, 0x45, 0x67, 0xa0, - 0x61, 0xe6, 0x38, 0x46, 0x9a, 0x8b, 0x62, 0x3e, 0xd3, 0x37, 0xf9, 0x63, 0xa8, 0xb2, 0x21, 0x47, - 0xf7, 0xd5, 0xe2, 0x05, 0xa5, 0xa6, 0x4c, 0x8f, 0x25, 0xa6, 0x2a, 0xe2, 0x61, 0xe3, 0xaf, 0xf3, - 0xcc, 0xcd, 0xc2, 0x23, 0xe6, 0x8d, 0xf3, 0xbc, 0x0b, 0x75, 0x31, 0x15, 0x7a, 0x83, 0x1b, 0xd2, - 0xe0, 0x2c, 0x54, 0xf9, 0xc6, 0x4c, 0xef, 0xcf, 0x79, 0x68, 0x46, 0x83, 0x39, 0xdd, 0x84, 0x8d, - 0x4e, 0x86, 0x89, 0x0b, 0x55, 0xae, 0xcf, 0x4d, 0x7a, 0x5a, 0x75, 0x13, 0x5c, 0x98, 0x2e, 0xf7, - 0x29, 0xbb, 0x20, 0x67, 0x16, 0xfe, 0xb8, 0x08, 0xe5, 0x35, 0x67, 0x3c, 0x51, 0xdd, 0x1d, 0xb9, - 0x77, 0xf2, 0x36, 0xdd, 0x9a, 0x33, 0xd6, 0xb6, 0x8e, 0xb9, 0x2e, 0xe7, 0xf5, 0x9e, 0x3e, 0xaf, - 0x97, 0xa7, 0xce, 0x87, 0x42, 0xc3, 0x1b, 0xf6, 0x47, 0x35, 0xa8, 0x30, 0x85, 0x39, 0xcd, 0x1b, - 0x1c, 0x0d, 0xf3, 0x1b, 0x46, 0xc1, 0xfc, 0x58, 0x63, 0xf6, 0xdc, 0x1b, 0x58, 0x61, 0xbe, 0x37, - 0x60, 0x40, 0xfa, 0x06, 0x60, 0x5d, 0xa2, 0xef, 0x8d, 0x4f, 0xa0, 0x72, 0xe0, 0x1c, 0x10, 0xe1, - 0x0c, 0x72, 0xaa, 0x7c, 0xee, 0x1c, 0x10, 0xcc, 0xec, 0x29, 0x6e, 0xcf, 0x0a, 0xf6, 0x84, 0x1f, - 0xc8, 0xc1, 0x75, 0xac, 0x60, 0x0f, 0x33, 0x7b, 0x8a, 0x73, 0xad, 0x03, 0x22, 0x1c, 0x40, 0x0e, - 0xee, 0x85, 0x45, 0xeb, 0xa3, 0xf6, 0x14, 0x17, 0x38, 0x3f, 0x24, 0x62, 0xe7, 0xe7, 0xe0, 0xb6, - 0x9c, 0x1f, 0x12, 0xcc, 0xec, 0x63, 0x47, 0xd9, 0x98, 0x6d, 0x68, 0x94, 0xd9, 0x5e, 0x84, 0x0a, - 0x6d, 0x40, 0xc6, 0xea, 0x3a, 0x0b, 0xd5, 0x5f, 0x73, 0xec, 0x70, 0x4f, 0x2f, 0xae, 0x6a, 0x2e, - 0x80, 0x0e, 0xf0, 0xb1, 0x5c, 0x80, 0x3a, 0x3f, 0x9c, 0x67, 0x0d, 0x2a, 0x74, 0xa2, 0x8f, 0xb7, - 0xe2, 0xe2, 0xf5, 0xf1, 0x5a, 0x0e, 0x49, 0x1d, 0x12, 0xce, 0xb3, 0x08, 0x15, 0x3a, 0x97, 0x19, - 0x43, 0xb2, 0x08, 0x15, 0xba, 0x42, 0xb2, 0x4b, 0xe9, 0xbc, 0xe8, 0xa5, 0x65, 0x59, 0xfa, 0x77, - 0x75, 0xa8, 0xb0, 0x1f, 0x4c, 0x92, 0x7b, 0xe2, 0x57, 0x61, 0x3e, 0xb4, 0xfc, 0x3e, 0x09, 0x1f, - 0x89, 0xab, 0x66, 0x29, 0xf5, 0x27, 0x4d, 0xfd, 0x67, 0x98, 0xf6, 0x4b, 0x15, 0x82, 0x75, 0x86, - 0xd9, 0x0f, 0x4f, 0x46, 0xa5, 0x1d, 0x9e, 0xf7, 0xa2, 0x4b, 0x5a, 0x25, 0xe7, 0xd7, 0x3a, 0x86, - 0xe5, 0x57, 0x3d, 0x79, 0x63, 0x43, 0x8f, 0xa0, 0x41, 0x8f, 0x10, 0x3a, 0x0c, 0x62, 0xe3, 0x5c, - 0x9e, 0x8e, 0xef, 0x0a, 0x6b, 0x1c, 0xe1, 0xe8, 0x01, 0xd6, 0xb3, 0x7c, 0x9b, 0xb5, 0x4a, 0xec, - 0xa2, 0x2b, 0xd3, 0x49, 0x56, 0xa5, 0x39, 0x8e, 0x91, 0xe8, 0x29, 0xcc, 0xd9, 0x24, 0x7a, 0x73, - 0x8a, 0x6d, 0xf5, 0xde, 0x74, 0xa2, 0xb5, 0x18, 0x80, 0x55, 0x34, 0x6d, 0x93, 0x7c, 0xe2, 0x04, - 0xb9, 0x87, 0x2a, 0xa3, 0x8a, 0xe3, 0x02, 0x62, 0xa4, 0x79, 0x09, 0xe6, 0xb5, 0x79, 0xfb, 0xb9, - 0x9e, 0xae, 0xea, 0x5c, 0x72, 0x9e, 0xdb, 0xd1, 0x55, 0xfc, 0x43, 0xfd, 0x78, 0xcd, 0xbc, 0x79, - 0x0b, 0xe0, 0x33, 0x68, 0xc8, 0x89, 0x41, 0x9f, 0xea, 0x6d, 0x78, 0x3f, 0xbf, 0x0d, 0xd1, 0x9c, - 0x0a, 0xb6, 0x17, 0xd0, 0x8c, 0x66, 0x08, 0xad, 0xe8, 0x74, 0x1f, 0xe4, 0xd3, 0xc5, 0xb3, 0x2b, - 0xf8, 0x30, 0xcc, 0x29, 0x13, 0x85, 0x56, 0x75, 0xc6, 0x0f, 0xf3, 0x19, 0xd5, 0x69, 0x8e, 0x4f, - 0xf7, 0x68, 0xc6, 0xd4, 0x59, 0x29, 0xc7, 0xb3, 0xf2, 0xd3, 0x3a, 0x34, 0xa2, 0x1f, 0x29, 0x53, - 0xde, 0x52, 0x23, 0x7f, 0x90, 0xfb, 0x96, 0x92, 0xf8, 0xf6, 0xb6, 0x3f, 0xc0, 0x14, 0x41, 0xa7, - 0x38, 0x74, 0xc2, 0x68, 0xab, 0x5e, 0xc9, 0x87, 0xbe, 0xa4, 0xe6, 0x98, 0xa3, 0xd0, 0x86, 0xbe, - 0xca, 0xf9, 0x9e, 0xfd, 0x30, 0x9f, 0x24, 0x73, 0xa5, 0x77, 0xa1, 0xe9, 0xd0, 0x2b, 0x4e, 0x27, - 0x3e, 0xfb, 0x3e, 0xc8, 0xa7, 0xeb, 0x4a, 0x08, 0x8e, 0xd1, 0xb4, 0x6d, 0xbb, 0xd6, 0x98, 0xee, - 0x6b, 0x46, 0x56, 0x9b, 0xb5, 0x6d, 0x8f, 0x63, 0x10, 0x56, 0x19, 0xd0, 0x5d, 0x71, 0x7b, 0xa8, - 0xe7, 0x78, 0x96, 0x78, 0xa8, 0xe2, 0x1b, 0xc4, 0xb7, 0x61, 0x81, 0xfb, 0x48, 0xae, 0xdf, 0x75, - 0x6d, 0xb1, 0x8d, 0x3f, 0x9a, 0x81, 0x45, 0xc3, 0xe1, 0x04, 0x0f, 0x9d, 0x41, 0x7e, 0x37, 0x69, - 0xce, 0x3a, 0x83, 0xea, 0xfd, 0x84, 0x3e, 0xa6, 0xb7, 0xfd, 0x41, 0xf6, 0x19, 0xcc, 0xa6, 0x3b, - 0xa3, 0xf8, 0x82, 0xbe, 0x13, 0xb2, 0x2f, 0xae, 0xd1, 0x9c, 0x64, 0xf2, 0x28, 0x83, 0x9e, 0x61, - 0x74, 0x5f, 0x1c, 0xd4, 0xb7, 0xf4, 0xfd, 0xf6, 0x6e, 0x62, 0xbf, 0xd1, 0x1d, 0xb6, 0xe9, 0x13, - 0xf6, 0x03, 0x8f, 0x7a, 0x42, 0x5f, 0x86, 0x05, 0x7d, 0x20, 0x33, 0xaa, 0x79, 0x22, 0xef, 0x15, - 0xc7, 0xf2, 0x14, 0xc9, 0xb1, 0xe5, 0x5c, 0xbf, 0x53, 0x84, 0x46, 0xf4, 0x1b, 0xf4, 0xa4, 0xd2, - 0xdb, 0x70, 0x82, 0x0e, 0xb1, 0x6c, 0xe2, 0x8b, 0x7d, 0xfb, 0x7e, 0xee, 0x8f, 0xdb, 0xed, 0xae, - 0x40, 0xe0, 0x08, 0x6b, 0x9e, 0x83, 0x86, 0xcc, 0xcd, 0x78, 0x7c, 0xfc, 0xeb, 0x3b, 0xec, 0x3a, - 0x3c, 0x30, 0x9f, 0xc5, 0x22, 0xff, 0xeb, 0x8b, 0xb6, 0xe6, 0x4b, 0x38, 0xb9, 0x66, 0x85, 0xd6, - 0x8e, 0x15, 0x10, 0x4c, 0x7a, 0x9e, 0x6f, 0xa7, 0xb2, 0xfa, 0xbc, 0x48, 0xa8, 0x80, 0xd9, 0xac, - 0xc2, 0xee, 0x6b, 0xfd, 0xe6, 0x7f, 0x8f, 0x7e, 0xf3, 0x37, 0x95, 0x0c, 0x51, 0x65, 0x96, 0xf7, - 0x24, 0x5d, 0x70, 0x13, 0xaa, 0xca, 0x5d, 0xfd, 0x62, 0x78, 0x31, 0x07, 0xa9, 0xdd, 0x0c, 0xef, - 0xea, 0xb2, 0x4a, 0x1e, 0x56, 0xd3, 0x55, 0x3e, 0x4d, 0xea, 0x2a, 0x97, 0x73, 0xd0, 0x13, 0xc2, - 0xca, 0x5d, 0x5d, 0x58, 0xc9, 0xab, 0x5d, 0x55, 0x56, 0xfe, 0x9f, 0x69, 0x19, 0x7f, 0x92, 0xa1, - 0x0a, 0x7c, 0x53, 0x57, 0x05, 0xa6, 0xac, 0x9a, 0x5f, 0x94, 0x2c, 0xf0, 0xa7, 0x59, 0xb2, 0xc0, - 0x6d, 0x4d, 0x16, 0x98, 0xd2, 0xb2, 0xa4, 0x2e, 0x70, 0x57, 0xd7, 0x05, 0x2e, 0xe6, 0x20, 0x35, - 0x61, 0xe0, 0xb6, 0x26, 0x0c, 0xe4, 0x55, 0xaa, 0x28, 0x03, 0xb7, 0x35, 0x65, 0x20, 0x0f, 0xa8, - 0x48, 0x03, 0xb7, 0x35, 0x69, 0x20, 0x0f, 0xa8, 0x68, 0x03, 0xb7, 0x35, 0x6d, 0x20, 0x0f, 0xa8, - 0x88, 0x03, 0x77, 0x75, 0x71, 0x20, 0x7f, 0x7c, 0xbe, 0x56, 0x07, 0x7e, 0x39, 0xea, 0xc0, 0x1f, - 0x94, 0x33, 0xd4, 0x01, 0x9c, 0xae, 0x0e, 0x5c, 0xcb, 0x9e, 0xc9, 0x7c, 0x79, 0x60, 0xf6, 0x53, - 0x60, 0x52, 0x1f, 0xb8, 0x9f, 0xd0, 0x07, 0x2e, 0xe5, 0x80, 0x75, 0x81, 0xe0, 0xff, 0xcc, 0x0b, - 0xf8, 0x27, 0xb5, 0x29, 0x8f, 0xbd, 0x3b, 0xea, 0x63, 0x6f, 0xca, 0x49, 0x36, 0xf9, 0xda, 0x7b, - 0xa0, 0xbf, 0xf6, 0xae, 0xce, 0x80, 0xd5, 0x9e, 0x7b, 0x9b, 0x69, 0xcf, 0xbd, 0xf6, 0x0c, 0x2c, - 0x99, 0xef, 0xbd, 0x27, 0x93, 0xef, 0xbd, 0x6b, 0x33, 0xf0, 0xa5, 0x3e, 0xf8, 0x36, 0xd3, 0x1e, - 0x7c, 0xb3, 0xb4, 0x2e, 0xf3, 0xc5, 0xf7, 0x2d, 0xed, 0xc5, 0x77, 0x65, 0x96, 0xe1, 0x8a, 0x0f, - 0x87, 0xef, 0x64, 0x3c, 0xf9, 0xbe, 0x31, 0x0b, 0xcd, 0xd4, 0x37, 0xdf, 0xd7, 0x8f, 0xb6, 0x44, - 0x35, 0x3f, 0x69, 0x42, 0x43, 0x86, 0xed, 0x99, 0xbf, 0x01, 0x75, 0x19, 0x9a, 0x9b, 0xdc, 0x39, - 0xa7, 0xa1, 0x46, 0x4d, 0xa2, 0x28, 0x0b, 0x91, 0x42, 0x0f, 0xa0, 0x42, 0xbf, 0xc4, 0xb6, 0x98, - 0xae, 0x31, 0x69, 0x21, 0xb5, 0x98, 0xe1, 0xcc, 0x8f, 0x01, 0x94, 0x50, 0xdd, 0x19, 0x6b, 0x35, - 0x6f, 0x41, 0x33, 0x0e, 0xbe, 0x4d, 0x89, 0x08, 0xe1, 0x66, 0xf2, 0x65, 0x22, 0x93, 0xe6, 0x4d, - 0x68, 0xc6, 0x01, 0xb5, 0x29, 0x75, 0x05, 0xac, 0x50, 0xa0, 0x44, 0xca, 0x5c, 0x87, 0x37, 0x26, - 0x83, 0x28, 0x53, 0x5e, 0x44, 0x4a, 0x24, 0x85, 0x68, 0xad, 0x9a, 0x65, 0x1e, 0xc2, 0x42, 0x22, - 0x2c, 0xf2, 0xd8, 0x1c, 0xe8, 0x26, 0x34, 0x64, 0x52, 0x0c, 0xf8, 0xdb, 0x19, 0xb1, 0x21, 0x38, - 0x32, 0x34, 0xd7, 0x60, 0x21, 0xa7, 0xf1, 0xb3, 0x84, 0x86, 0x7c, 0x1f, 0xe6, 0xa6, 0xb5, 0xfd, - 0xe7, 0x10, 0xba, 0x12, 0x42, 0x6b, 0x22, 0xf8, 0x38, 0x59, 0xcd, 0x26, 0x40, 0x3f, 0xb2, 0x11, - 0x6e, 0xfc, 0xa3, 0xd9, 0xd6, 0x5c, 0xcc, 0x8d, 0x15, 0x0e, 0xf3, 0x2f, 0x8b, 0xf0, 0xc6, 0x64, - 0xe4, 0xf1, 0xac, 0xab, 0xdf, 0x80, 0x3a, 0xe3, 0x8a, 0x82, 0x8c, 0x64, 0x12, 0x3d, 0x87, 0x13, - 0xc1, 0xc0, 0xe9, 0x91, 0xd5, 0x3d, 0xcb, 0xed, 0x13, 0x7a, 0xe6, 0x96, 0xf3, 0xa3, 0x87, 0xb7, - 0x62, 0x04, 0xd6, 0xe0, 0xe6, 0x21, 0xcc, 0x29, 0x85, 0xe8, 0x1e, 0x94, 0xbc, 0xa1, 0xf0, 0x08, - 0xd7, 0x66, 0xe0, 0xdc, 0x18, 0x12, 0x9f, 0xaf, 0x8b, 0x92, 0x37, 0x94, 0xc1, 0x3d, 0xa5, 0x28, - 0xb8, 0x47, 0x0d, 0xa2, 0x2a, 0x6b, 0x41, 0x54, 0xcb, 0xbf, 0x5f, 0x84, 0x05, 0x9d, 0x02, 0x9d, - 0x06, 0xa4, 0xe7, 0xbc, 0xf0, 0x5c, 0xd2, 0x2a, 0xa0, 0xb7, 0xe0, 0x0d, 0x3d, 0x7f, 0xc5, 0xb6, - 0x5b, 0xc5, 0x49, 0xf3, 0xe7, 0xde, 0x98, 0xb4, 0x4a, 0xc8, 0x80, 0x53, 0x89, 0xb6, 0xb1, 0xd0, - 0xa3, 0x56, 0x19, 0xbd, 0x03, 0x6f, 0x25, 0x4b, 0x86, 0x03, 0xab, 0x47, 0x5a, 0x15, 0xf3, 0x3f, - 0x4b, 0x50, 0xd9, 0x0e, 0x88, 0x6f, 0xfe, 0x7b, 0x49, 0x86, 0x0b, 0xdd, 0x81, 0x0a, 0x8b, 0x0e, - 0x56, 0x22, 0x37, 0x8b, 0x89, 0xc8, 0x4d, 0xed, 0x8f, 0x37, 0xe3, 0xc8, 0xcd, 0x3b, 0x50, 0x61, - 0xf1, 0xc0, 0xc7, 0x47, 0xfe, 0xb8, 0x08, 0xcd, 0x38, 0x36, 0xf7, 0xd8, 0x78, 0x35, 0x3c, 0xa9, - 0xa4, 0x87, 0x27, 0xbd, 0x0f, 0x55, 0x9f, 0x05, 0x12, 0xf1, 0xfd, 0x9d, 0x0c, 0x7a, 0x62, 0x15, - 0x62, 0x6e, 0x62, 0x12, 0x98, 0x53, 0x23, 0x8f, 0x8f, 0xdf, 0x8c, 0x8b, 0xe2, 0xaf, 0x5a, 0xba, - 0x76, 0xb0, 0xe2, 0xfb, 0xd6, 0x91, 0x58, 0x12, 0x7a, 0x26, 0xbd, 0xff, 0x6e, 0x3a, 0x6e, 0x3f, - 0x3d, 0x60, 0xd6, 0xfc, 0xdb, 0x22, 0xd4, 0x45, 0x1c, 0xaf, 0x79, 0x1b, 0xca, 0x2f, 0xc8, 0x21, - 0x6d, 0x88, 0x88, 0xe4, 0x9d, 0x68, 0xc8, 0x73, 0xd6, 0x0b, 0x61, 0x8f, 0xa5, 0x99, 0x79, 0x37, - 0x0a, 0x32, 0x3d, 0x3e, 0xf6, 0x0e, 0x54, 0x58, 0xc0, 0xf0, 0xf1, 0x91, 0xbf, 0xdb, 0x80, 0x1a, - 0x8f, 0x3a, 0x35, 0xff, 0xbb, 0x0e, 0x35, 0x1e, 0x44, 0x8c, 0x1e, 0x40, 0x3d, 0x18, 0x1d, 0x1c, - 0x58, 0xfe, 0x91, 0x91, 0xfe, 0x97, 0xc5, 0x5a, 0xcc, 0x71, 0x7b, 0x8b, 0xdb, 0x62, 0x09, 0x42, - 0xb7, 0xa0, 0xd2, 0xb3, 0x76, 0xc9, 0x84, 0xa4, 0x95, 0x06, 0x5e, 0xb5, 0x76, 0x09, 0x66, 0xe6, - 0xe8, 0x53, 0x68, 0x88, 0x69, 0xe1, 0x51, 0x98, 0x79, 0xf5, 0xca, 0xc9, 0x8c, 0x50, 0xe6, 0x13, - 0xa8, 0x8b, 0xc6, 0xa0, 0x87, 0x51, 0xcc, 0x6d, 0xf2, 0xf6, 0x9d, 0xda, 0x85, 0x23, 0xb7, 0x97, - 0x88, 0xbe, 0xfd, 0x59, 0x09, 0x2a, 0xb4, 0x71, 0xaf, 0xcd, 0x84, 0x96, 0x00, 0x06, 0x56, 0x10, - 0x6e, 0x8e, 0x06, 0x03, 0x62, 0x8b, 0x70, 0x4a, 0x25, 0x07, 0x5d, 0x85, 0x93, 0x3c, 0x15, 0xec, - 0x6d, 0x8d, 0x7a, 0x3d, 0x42, 0xb8, 0x0b, 0x6a, 0xe0, 0x64, 0x36, 0x5a, 0x81, 0x2a, 0xfb, 0xab, - 0x49, 0x71, 0x79, 0xfe, 0x20, 0x77, 0x64, 0xdb, 0x9b, 0x8e, 0x2b, 0x5a, 0xc3, 0x91, 0xa6, 0x07, - 0xcd, 0x28, 0x8f, 0x6e, 0xc2, 0xa1, 0xe3, 0xba, 0x8e, 0xdb, 0x17, 0x2b, 0x5a, 0x26, 0xa9, 0xbb, - 0xa7, 0x9f, 0xa2, 0xbd, 0x55, 0x2c, 0x52, 0x34, 0x7f, 0xd7, 0x72, 0x06, 0xa2, 0x89, 0x55, 0x2c, - 0x52, 0x94, 0x69, 0xc4, 0x96, 0x2f, 0x8f, 0xfb, 0x2c, 0x63, 0x99, 0x34, 0xbf, 0x2c, 0x46, 0x81, - 0xe7, 0x69, 0x91, 0xb8, 0x4c, 0x54, 0xe0, 0x1e, 0x80, 0xeb, 0x05, 0x8b, 0xea, 0xa5, 0x9e, 0xbb, - 0x62, 0xe5, 0x9a, 0x7e, 0x1a, 0x6a, 0x9e, 0x3b, 0x70, 0x5c, 0x2e, 0x7d, 0x34, 0xb0, 0x48, 0x25, - 0xc6, 0xb8, 0x3a, 0x31, 0xc6, 0xa2, 0x7c, 0xdd, 0x76, 0x68, 0x13, 0x6b, 0x71, 0x39, 0xcf, 0x41, - 0xf7, 0xa1, 0x6e, 0x93, 0xb1, 0xd3, 0x23, 0x81, 0x51, 0x67, 0x4b, 0xef, 0xc2, 0xd4, 0xb1, 0x5d, - 0x63, 0xb6, 0x58, 0x62, 0xcc, 0x10, 0x6a, 0x3c, 0x2b, 0xea, 0x52, 0x51, 0xe9, 0x52, 0xdc, 0xe8, - 0xd2, 0x94, 0x46, 0x97, 0x73, 0x1a, 0x5d, 0x49, 0x36, 0x7a, 0xf9, 0x29, 0x40, 0xbc, 0xdc, 0xd0, - 0x1c, 0xd4, 0xb7, 0xdd, 0x7d, 0xd7, 0x3b, 0x74, 0x5b, 0x05, 0x9a, 0xd8, 0xd8, 0xdd, 0xa5, 0xb5, - 0xb4, 0x8a, 0x34, 0x41, 0xed, 0x1c, 0xb7, 0xdf, 0x2a, 0x21, 0x80, 0x1a, 0x4d, 0x10, 0xbb, 0x55, - 0xa6, 0xdf, 0x8f, 0xd9, 0xfc, 0xb5, 0x2a, 0xcb, 0x3f, 0x82, 0x79, 0x4c, 0x82, 0xa1, 0xe7, 0x06, - 0xe4, 0x17, 0xf5, 0xdf, 0x34, 0x64, 0xfe, 0x87, 0x0b, 0xcb, 0x7f, 0x5d, 0x86, 0x2a, 0x73, 0x51, - 0xe6, 0x9f, 0x97, 0x23, 0x67, 0x9a, 0x22, 0xe2, 0xc7, 0x52, 0xdb, 0x82, 0x72, 0xb3, 0xd2, 0x9c, - 0x9b, 0xfa, 0x8a, 0xba, 0xa1, 0x4a, 0x6c, 0x0b, 0xca, 0x9f, 0x4e, 0xe8, 0x08, 0x4d, 0x5a, 0xfb, - 0x16, 0x34, 0x86, 0xbe, 0xd7, 0xf7, 0xa9, 0x17, 0xad, 0x24, 0xfe, 0x88, 0x58, 0x87, 0x6d, 0x0a, - 0x33, 0x1c, 0x01, 0xcc, 0x17, 0xd0, 0x90, 0xb9, 0x19, 0xa1, 0xd5, 0x08, 0x2a, 0xb6, 0x27, 0x56, - 0x42, 0x19, 0xb3, 0x6f, 0x3a, 0x2e, 0x62, 0x04, 0xe5, 0xdd, 0x43, 0x24, 0x97, 0x37, 0xc4, 0x13, - 0x68, 0x1e, 0x9a, 0x6b, 0xbe, 0x37, 0x64, 0xf1, 0xbd, 0xad, 0x02, 0x9d, 0xb7, 0xee, 0xc1, 0xd0, - 0xf3, 0xc3, 0x56, 0x91, 0x7e, 0xaf, 0xbf, 0x62, 0xdf, 0x25, 0x74, 0x02, 0x1a, 0x5b, 0xd6, 0x98, - 0x50, 0xb3, 0x56, 0x19, 0x21, 0x7a, 0xed, 0xed, 0x79, 0x63, 0xe2, 0x8b, 0xfd, 0xd7, 0xaa, 0x2c, - 0xaf, 0x48, 0x6d, 0xab, 0x01, 0x15, 0x71, 0x69, 0x99, 0x83, 0x3a, 0x1e, 0xb1, 0x5d, 0xdf, 0x2a, - 0xd2, 0x6c, 0x7a, 0x94, 0x70, 0xae, 0x55, 0xcb, 0xed, 0x91, 0x01, 0x5b, 0x29, 0x4d, 0xa8, 0xae, - 0xfb, 0xbe, 0xe7, 0xb7, 0x2a, 0x8f, 0x16, 0xff, 0xe1, 0xcb, 0xa5, 0xe2, 0x17, 0x5f, 0x2e, 0x15, - 0xff, 0xed, 0xcb, 0xa5, 0xe2, 0x1f, 0x7e, 0xb5, 0x54, 0xf8, 0xe2, 0xab, 0xa5, 0xc2, 0xbf, 0x7c, - 0xb5, 0x54, 0xf8, 0xbc, 0x34, 0xdc, 0xd9, 0xa9, 0x31, 0x51, 0xe2, 0xe6, 0xff, 0x04, 0x00, 0x00, - 0xff, 0xff, 0x07, 0x94, 0xfb, 0x4e, 0x55, 0x44, 0x00, 0x00, + 0x7a, 0x9e, 0xf7, 0xe3, 0xa7, 0x48, 0x8d, 0xcb, 0xb2, 0xdc, 0x6e, 0x51, 0xb4, 0x4c, 0x3d, 0x6d, + 0xc9, 0x23, 0xaf, 0x64, 0x59, 0x5a, 0xad, 0x5e, 0x14, 0x49, 0x65, 0x46, 0x2f, 0x32, 0x45, 0xd1, + 0xd9, 0xf5, 0x06, 0x8b, 0x6d, 0x4e, 0x17, 0x87, 0xbd, 0x1c, 0x76, 0x4f, 0xba, 0x7b, 0x86, 0xe2, + 0x6e, 0x0e, 0x41, 0xb2, 0x87, 0x20, 0x48, 0x80, 0xe4, 0x92, 0xe4, 0x96, 0x43, 0x92, 0x43, 0x80, + 0x0d, 0xb0, 0x40, 0x2e, 0x39, 0x05, 0x01, 0x82, 0x00, 0x79, 0x5c, 0xf6, 0x98, 0x5b, 0x02, 0xfb, + 0xb2, 0xd7, 0x1c, 0x92, 0x5b, 0x80, 0xa0, 0x5e, 0xdd, 0x55, 0x3d, 0xdd, 0xd3, 0x43, 0x78, 0x17, + 0x9b, 0x60, 0x7d, 0xf2, 0x54, 0xd5, 0xff, 0x7d, 0x55, 0x5d, 0x55, 0xff, 0x5f, 0x55, 0x1f, 0x7f, + 0x19, 0x4e, 0x0f, 0x77, 0xae, 0x0f, 0x7d, 0x2f, 0xf4, 0x82, 0xeb, 0x64, 0x4c, 0xdc, 0x30, 0x68, + 0xb3, 0x12, 0xaa, 0x5b, 0xee, 0x51, 0x78, 0x34, 0x24, 0xe6, 0x85, 0xe1, 0x7e, 0xff, 0xfa, 0xc0, + 0xd9, 0xb9, 0x3e, 0xdc, 0xb9, 0x7e, 0xe0, 0xd9, 0x64, 0x20, 0xcd, 0x59, 0x41, 0x98, 0x9b, 0x8b, + 0x7d, 0xcf, 0xeb, 0x0f, 0x08, 0x6f, 0xdb, 0x19, 0xed, 0x5e, 0x0f, 0x42, 0x7f, 0xd4, 0x0b, 0x79, + 0xeb, 0xf2, 0x7f, 0xfd, 0xb0, 0x08, 0xd5, 0x75, 0x4a, 0x8f, 0x6e, 0x40, 0xe3, 0x80, 0x04, 0x81, + 0xd5, 0x27, 0x81, 0x51, 0x3c, 0x57, 0xbe, 0x32, 0x77, 0xe3, 0x74, 0x5b, 0x74, 0xd5, 0x66, 0x16, + 0xed, 0x17, 0xbc, 0x19, 0x47, 0x76, 0x68, 0x11, 0x9a, 0x3d, 0xcf, 0x0d, 0xc9, 0xeb, 0xb0, 0x6b, + 0x1b, 0xa5, 0x73, 0xc5, 0x2b, 0x4d, 0x1c, 0x57, 0xa0, 0x8f, 0xa1, 0xe9, 0xb8, 0x4e, 0xe8, 0x58, + 0xa1, 0xe7, 0x1b, 0xe5, 0x73, 0x45, 0x8d, 0x92, 0x0d, 0xb2, 0xbd, 0xd2, 0xeb, 0x79, 0x23, 0x37, + 0xc4, 0xb1, 0x21, 0x32, 0xa0, 0x1e, 0xfa, 0x56, 0x8f, 0x74, 0x6d, 0xa3, 0xc2, 0x18, 0x65, 0xd1, + 0xfc, 0xeb, 0x65, 0xa8, 0x8b, 0x31, 0xa0, 0x87, 0x30, 0x67, 0x71, 0xec, 0xd6, 0x9e, 0x77, 0x68, + 0x14, 0x19, 0xfb, 0x99, 0xc4, 0x80, 0x05, 0x7b, 0x9b, 0x9a, 0x74, 0x0a, 0x58, 0x45, 0xa0, 0x2e, + 0x2c, 0x88, 0xe2, 0x1a, 0x09, 0x2d, 0x67, 0x10, 0x18, 0xff, 0xcc, 0x49, 0x96, 0x32, 0x48, 0x84, + 0x59, 0xa7, 0x80, 0x13, 0x40, 0xf4, 0x2d, 0x78, 0x53, 0xd4, 0xac, 0x7a, 0xee, 0xae, 0xd3, 0xdf, + 0x1e, 0xda, 0x56, 0x48, 0x8c, 0x7f, 0xe1, 0x7c, 0x17, 0x32, 0xf8, 0xb8, 0x6d, 0x9b, 0x1b, 0x77, + 0x0a, 0x38, 0x8d, 0x03, 0x3d, 0x81, 0x79, 0x51, 0x2d, 0x48, 0xff, 0x95, 0x93, 0x9e, 0xcd, 0x20, + 0x8d, 0xd8, 0x74, 0x18, 0xda, 0x80, 0x96, 0xb7, 0xf3, 0x3d, 0xd2, 0x93, 0x63, 0xde, 0x22, 0xa1, + 0xd1, 0x62, 0x4c, 0xef, 0x25, 0x98, 0x36, 0x98, 0x99, 0xfc, 0xda, 0xf6, 0x16, 0x09, 0x3b, 0x05, + 0x3c, 0x01, 0x46, 0xdb, 0x80, 0xb4, 0xba, 0x95, 0x03, 0xe2, 0xda, 0xc6, 0x0d, 0x46, 0x79, 0x7e, + 0x3a, 0x25, 0x33, 0xed, 0x14, 0x70, 0x0a, 0xc1, 0x04, 0xed, 0xb6, 0x1b, 0x90, 0xd0, 0xb8, 0x39, + 0x0b, 0x2d, 0x33, 0x9d, 0xa0, 0x65, 0xb5, 0xe8, 0xdb, 0x70, 0x8a, 0xd7, 0x62, 0x32, 0xb0, 0x42, + 0xc7, 0x73, 0xc5, 0x78, 0x3f, 0x66, 0xc4, 0x17, 0xd3, 0x89, 0x23, 0xdb, 0x68, 0xc4, 0xa9, 0x24, + 0xe8, 0x3b, 0xf0, 0x56, 0xa2, 0x1e, 0x93, 0x03, 0x6f, 0x4c, 0x8c, 0x5b, 0x8c, 0xfd, 0x52, 0x1e, + 0x3b, 0xb7, 0xee, 0x14, 0x70, 0x3a, 0x0d, 0x7a, 0x0c, 0x27, 0x64, 0x03, 0xa3, 0xfd, 0x84, 0xd1, + 0x2e, 0x66, 0xd1, 0x0a, 0x32, 0x0d, 0x83, 0x30, 0x9c, 0x0c, 0x46, 0x3b, 0x41, 0xcf, 0x77, 0x86, + 0x94, 0x7a, 0xc5, 0xb6, 0x8d, 0x7b, 0xd3, 0x46, 0xb7, 0xa5, 0x18, 0xb7, 0x57, 0x6c, 0xfa, 0xf1, + 0x49, 0x02, 0xf4, 0x6d, 0x40, 0x6a, 0x95, 0x18, 0xdd, 0x7d, 0x46, 0xfb, 0xfe, 0x0c, 0xb4, 0xd1, + 0x50, 0x53, 0x68, 0x90, 0x05, 0xa7, 0xd4, 0xda, 0x4d, 0x2f, 0x70, 0xe8, 0x7f, 0x8d, 0x07, 0x8c, + 0xfe, 0xea, 0x0c, 0xf4, 0x12, 0x42, 0xd7, 0x2d, 0x8d, 0x2a, 0xd9, 0xc5, 0x2a, 0x75, 0x17, 0xe2, + 0x07, 0xc6, 0xc3, 0x99, 0xbb, 0x90, 0x90, 0x64, 0x17, 0xb2, 0x3e, 0x39, 0x45, 0xbf, 0xe2, 0x7b, + 0xa3, 0x61, 0x60, 0x3c, 0x9a, 0x79, 0x8a, 0x38, 0x20, 0x39, 0x45, 0xbc, 0x16, 0x7d, 0x02, 0x8d, + 0x9d, 0x81, 0xd7, 0xdb, 0xa7, 0x8b, 0x59, 0x62, 0x94, 0x46, 0x82, 0xf2, 0x31, 0x6d, 0x16, 0xcb, + 0x17, 0xd9, 0xd2, 0xd0, 0xc9, 0x7e, 0xaf, 0x91, 0x01, 0x09, 0x89, 0x08, 0xcc, 0x67, 0x52, 0xa1, + 0xdc, 0x84, 0x86, 0x4e, 0x05, 0x81, 0xd6, 0x60, 0x6e, 0xd7, 0x19, 0x90, 0x60, 0x7b, 0x38, 0xf0, + 0x2c, 0x1e, 0xa5, 0xe7, 0x6e, 0x9c, 0x4b, 0x25, 0x78, 0x12, 0xdb, 0x51, 0x16, 0x05, 0x86, 0x1e, + 0x40, 0xf3, 0xc0, 0xf2, 0xf7, 0x83, 0xae, 0xbb, 0xeb, 0x19, 0xd5, 0xd4, 0xd0, 0xcb, 0x39, 0x5e, + 0x48, 0xab, 0x4e, 0x01, 0xc7, 0x10, 0x1a, 0xc0, 0xd9, 0xa0, 0xb6, 0x48, 0xf8, 0xc4, 0x21, 0x03, + 0x3b, 0x30, 0x6a, 0x8c, 0xe4, 0xdd, 0x54, 0x92, 0x2d, 0x12, 0xb6, 0xb9, 0x19, 0x0d, 0xe0, 0x3a, + 0x10, 0x7d, 0x13, 0xde, 0x94, 0x35, 0xab, 0x7b, 0xce, 0xc0, 0xf6, 0x89, 0xdb, 0xb5, 0x03, 0xa3, + 0x9e, 0x1a, 0xbf, 0x63, 0x3e, 0xc5, 0x96, 0xc6, 0xef, 0x14, 0x0a, 0x1a, 0x78, 0x64, 0x35, 0x26, + 0x41, 0xe8, 0x3b, 0x3d, 0xe6, 0xd9, 0x46, 0x23, 0x35, 0xf0, 0xc4, 0xd4, 0xaa, 0x31, 0xdd, 0x5d, + 0x69, 0x24, 0xc8, 0x86, 0xb7, 0x65, 0xfd, 0x63, 0xab, 0xb7, 0xdf, 0xf7, 0xbd, 0x91, 0x6b, 0xaf, + 0x7a, 0x03, 0xcf, 0x37, 0x9a, 0x8c, 0xff, 0x4a, 0x26, 0x7f, 0xc2, 0xbe, 0x53, 0xc0, 0x59, 0x54, + 0x68, 0x15, 0x4e, 0xc8, 0xa6, 0x57, 0xe4, 0x75, 0x68, 0x40, 0xea, 0x01, 0x14, 0x53, 0x53, 0x23, + 0x1a, 0x7f, 0x54, 0x90, 0x4a, 0x42, 0xb7, 0x84, 0x31, 0x97, 0x43, 0x42, 0x8d, 0x54, 0x12, 0x5a, + 0x56, 0x49, 0x9e, 0x3b, 0xee, 0xbe, 0x31, 0x9f, 0x43, 0x42, 0x8d, 0x54, 0x12, 0x5a, 0xa6, 0x27, + 0x61, 0xf4, 0xa5, 0x9e, 0xb7, 0x4f, 0xf7, 0x93, 0xb1, 0x90, 0x7a, 0x12, 0x2a, 0xb3, 0x25, 0x0c, + 0xe9, 0x49, 0x98, 0x04, 0xd3, 0x23, 0x5a, 0xd6, 0xad, 0x0c, 0x9c, 0xbe, 0x6b, 0x9c, 0x9c, 0xb2, + 0x97, 0x29, 0x1b, 0xb3, 0xa2, 0x47, 0xb4, 0x06, 0x43, 0x8f, 0x84, 0x5b, 0x6e, 0x91, 0x70, 0xcd, + 0x19, 0x1b, 0x6f, 0xa4, 0x46, 0xf9, 0x98, 0x65, 0xcd, 0x19, 0x47, 0x7e, 0xc9, 0x21, 0xea, 0xa7, + 0xc9, 0x33, 0xc4, 0x78, 0x2b, 0xe7, 0xd3, 0xa4, 0xa1, 0xfa, 0x69, 0xb2, 0x4e, 0xfd, 0xb4, 0xe7, + 0x56, 0x48, 0x5e, 0x1b, 0xef, 0xe4, 0x7c, 0x1a, 0xb3, 0x52, 0x3f, 0x8d, 0x55, 0xd0, 0x13, 0x52, + 0x56, 0x7c, 0x4a, 0xfc, 0xd0, 0xe9, 0x59, 0x03, 0x3e, 0x55, 0x17, 0x52, 0xcf, 0xa0, 0x98, 0x4f, + 0xb3, 0xa6, 0x27, 0x64, 0x2a, 0x8d, 0xfa, 0xe1, 0xaf, 0xac, 0x9d, 0x01, 0xc1, 0xde, 0xa1, 0x71, + 0x31, 0xe7, 0xc3, 0xa5, 0xa1, 0xfa, 0xe1, 0xb2, 0x2e, 0x72, 0xdb, 0x35, 0x2b, 0xb4, 0xc6, 0x0e, + 0x39, 0xfc, 0xd4, 0x21, 0x87, 0xf4, 0xca, 0xf4, 0xe6, 0x14, 0xb7, 0x95, 0xb6, 0x6d, 0x61, 0x1c, + 0xb9, 0x6d, 0x82, 0x24, 0x72, 0x5b, 0xb5, 0x5e, 0xc4, 0xe2, 0x53, 0x53, 0xdc, 0x56, 0xe3, 0x8f, + 0x02, 0x73, 0x16, 0x15, 0xb2, 0xe0, 0xf4, 0x44, 0xd3, 0x86, 0x6f, 0x13, 0xdf, 0x38, 0xcb, 0x3a, + 0xb9, 0x9c, 0xdf, 0x09, 0x33, 0xef, 0x14, 0x70, 0x06, 0xd1, 0x44, 0x17, 0x5b, 0xde, 0xc8, 0xef, + 0x11, 0x3a, 0x4f, 0xe7, 0x67, 0xe9, 0x22, 0x32, 0x9f, 0xe8, 0x22, 0x6a, 0x41, 0x63, 0x38, 0x1b, + 0xb5, 0xd0, 0x8e, 0xd9, 0xd1, 0xc7, 0x7a, 0x17, 0xf7, 0xe1, 0x4b, 0xac, 0xa7, 0xf6, 0xf4, 0x9e, + 0x92, 0xa8, 0x4e, 0x01, 0x4f, 0xa7, 0x45, 0x47, 0xb0, 0xa4, 0x19, 0xf0, 0xc3, 0x59, 0xed, 0xf8, + 0x32, 0xeb, 0xf8, 0xfa, 0xf4, 0x8e, 0x27, 0x60, 0x9d, 0x02, 0xce, 0x21, 0x46, 0x43, 0x38, 0xa3, + 0x4d, 0x86, 0xf4, 0x46, 0xb1, 0x45, 0x7e, 0x93, 0xf5, 0x7b, 0x6d, 0x7a, 0xbf, 0x3a, 0xa6, 0x53, + 0xc0, 0xd3, 0x28, 0x51, 0x1f, 0x8c, 0xd4, 0x66, 0xba, 0x92, 0x3f, 0x48, 0xbd, 0xab, 0x64, 0x74, + 0xc7, 0xd7, 0x32, 0x93, 0x4c, 0x9b, 0x55, 0xda, 0xb6, 0x31, 0xb0, 0x13, 0x5f, 0x67, 0xcc, 0x34, + 0xab, 0x49, 0x98, 0x36, 0xab, 0xa9, 0xc4, 0x13, 0xb3, 0xaa, 0x58, 0xd0, 0xcf, 0x7c, 0x7b, 0x96, + 0x59, 0xd5, 0x31, 0x13, 0xb3, 0xaa, 0x37, 0xd3, 0xe0, 0x39, 0x0a, 0x88, 0xcf, 0x38, 0x9e, 0x7a, + 0x8e, 0x6b, 0xbc, 0x9b, 0x1a, 0x3c, 0xb7, 0x03, 0xe2, 0x8b, 0x8e, 0xa8, 0x15, 0x0d, 0x9e, 0x1a, + 0x4c, 0xe3, 0x79, 0x4e, 0x76, 0x43, 0xe3, 0x5c, 0x1e, 0x0f, 0xb5, 0xd2, 0x78, 0x68, 0x05, 0x8d, + 0x69, 0x51, 0xc5, 0x16, 0x19, 0xd0, 0xb7, 0x81, 0xe5, 0xf6, 0x89, 0xf1, 0x5e, 0x6a, 0x4c, 0x53, + 0xe8, 0x14, 0x63, 0x1a, 0xd3, 0xd2, 0x48, 0xe8, 0xbb, 0x2d, 0xaa, 0xa7, 0x07, 0x3e, 0xa7, 0x5e, + 0x4e, 0x7d, 0xb7, 0x29, 0xd4, 0x91, 0x29, 0xbd, 0xe2, 0x4e, 0x12, 0xa0, 0xf7, 0xa1, 0x32, 0x74, + 0xdc, 0xbe, 0x61, 0x33, 0xa2, 0x37, 0x13, 0x44, 0x9b, 0x8e, 0xdb, 0xef, 0x14, 0x30, 0x33, 0x41, + 0xf7, 0x00, 0x86, 0xbe, 0xd7, 0x23, 0x41, 0xf0, 0x92, 0x1c, 0x1a, 0x84, 0x01, 0xcc, 0x24, 0x80, + 0x1b, 0xb4, 0x5f, 0x12, 0x1a, 0xf6, 0x15, 0x7b, 0xb4, 0x0e, 0xf3, 0xa2, 0x24, 0xdc, 0x7b, 0x37, + 0xf5, 0x6e, 0x21, 0x09, 0xe2, 0x67, 0xb6, 0x86, 0xa2, 0x57, 0x6b, 0x51, 0xb1, 0xe6, 0xb9, 0xc4, + 0xe8, 0xa7, 0x5e, 0xad, 0x25, 0x09, 0x35, 0xa1, 0x47, 0xb8, 0x82, 0xa0, 0x6f, 0xbd, 0x70, 0xcf, + 0x27, 0x96, 0xbd, 0x15, 0x5a, 0xe1, 0x28, 0x30, 0xdc, 0xd4, 0x5b, 0x00, 0x6f, 0x6c, 0xbf, 0x62, + 0x96, 0xf4, 0x86, 0xa3, 0x62, 0x1e, 0xd7, 0xa1, 0x3a, 0xb6, 0x06, 0x23, 0x62, 0xfe, 0xb8, 0x0c, + 0x75, 0x21, 0x0c, 0x98, 0x2f, 0xa1, 0xc2, 0x64, 0x8f, 0x53, 0x50, 0x75, 0x5c, 0x9b, 0xbc, 0x66, + 0x8a, 0x49, 0x15, 0xf3, 0x02, 0xfa, 0x08, 0xea, 0x42, 0x2f, 0x10, 0x2f, 0x89, 0x2c, 0x9d, 0x46, + 0x9a, 0x99, 0x9f, 0x41, 0x5d, 0xca, 0x1f, 0x8b, 0xd0, 0x1c, 0xfa, 0x1e, 0xbd, 0xda, 0x77, 0x6d, + 0x46, 0xdb, 0xc4, 0x71, 0x05, 0xfa, 0x1a, 0xd4, 0x6d, 0x21, 0xb0, 0x70, 0xea, 0xb7, 0xdb, 0x5c, + 0x91, 0x6a, 0x4b, 0x45, 0xaa, 0xbd, 0xc5, 0x14, 0x29, 0x2c, 0xed, 0xcc, 0xdf, 0x2a, 0x42, 0x8d, + 0xab, 0x20, 0xe6, 0x18, 0x6a, 0x62, 0x6a, 0x6f, 0x41, 0xad, 0xc7, 0xea, 0x8c, 0xa4, 0x02, 0xa2, + 0x8d, 0x50, 0xc8, 0x2a, 0x58, 0x18, 0x53, 0x58, 0xc0, 0xa7, 0xb2, 0x34, 0x15, 0xc6, 0xe7, 0x0e, + 0x0b, 0xe3, 0x5f, 0x58, 0xbf, 0x3f, 0x6d, 0x40, 0x8d, 0x1f, 0x09, 0xe6, 0x7f, 0x97, 0xa2, 0x29, + 0x36, 0xff, 0xa1, 0x08, 0x55, 0x2e, 0x36, 0x2c, 0x40, 0xc9, 0x91, 0xb3, 0x5c, 0x72, 0x6c, 0xf4, + 0x44, 0x9d, 0xde, 0x72, 0x4a, 0x0c, 0x4b, 0x13, 0x5f, 0xda, 0xcf, 0xc8, 0xd1, 0xa7, 0x74, 0x8b, + 0x44, 0x73, 0x8e, 0x4e, 0x43, 0x2d, 0x18, 0xed, 0xd0, 0x57, 0x4f, 0xf9, 0x5c, 0xf9, 0x4a, 0x13, + 0x8b, 0x92, 0xf9, 0x14, 0x1a, 0xd2, 0x18, 0xb5, 0xa0, 0xbc, 0x4f, 0x8e, 0x44, 0xe7, 0xf4, 0x27, + 0xba, 0x26, 0xb6, 0x5a, 0xb4, 0x6b, 0x92, 0x4b, 0xcb, 0x7b, 0x11, 0xfb, 0xf1, 0xbb, 0x50, 0xa6, + 0x81, 0x31, 0xf9, 0x09, 0xc7, 0xdf, 0x21, 0x99, 0xa3, 0x5d, 0x85, 0x2a, 0x17, 0x7c, 0x92, 0x7d, + 0x20, 0xa8, 0xec, 0x93, 0x23, 0x3e, 0x47, 0x4d, 0xcc, 0x7e, 0x67, 0x92, 0xfc, 0x7d, 0x19, 0x4e, + 0xa8, 0xaf, 0x70, 0x73, 0x1d, 0xca, 0xf4, 0xdd, 0x9c, 0xe4, 0x34, 0xa0, 0x6e, 0xed, 0x86, 0xc4, + 0x8f, 0xa4, 0x4f, 0x59, 0xa4, 0x4e, 0xc6, 0xb8, 0xd8, 0xdb, 0xba, 0x89, 0x79, 0xc1, 0x6c, 0x43, + 0x4d, 0x88, 0x1b, 0x49, 0xa6, 0xc8, 0xbe, 0xa4, 0xda, 0x3f, 0x85, 0x46, 0xa4, 0x55, 0x7c, 0xd9, + 0xbe, 0x7d, 0x68, 0x44, 0xa2, 0xc4, 0x29, 0xa8, 0x86, 0x5e, 0x68, 0x0d, 0x18, 0x5d, 0x19, 0xf3, + 0x02, 0xf5, 0x62, 0x97, 0xbc, 0x0e, 0x57, 0xa3, 0x20, 0x50, 0xc6, 0x71, 0x05, 0xf7, 0x71, 0x32, + 0xe6, 0xad, 0x65, 0xde, 0x1a, 0x55, 0xc4, 0x7d, 0x56, 0xd4, 0x3e, 0x8f, 0xa0, 0x26, 0x94, 0x8a, + 0xa8, 0xbd, 0xa8, 0xb4, 0xa3, 0x15, 0xa8, 0xd2, 0x77, 0xe6, 0x50, 0xac, 0xfa, 0xd5, 0x84, 0x87, + 0xf0, 0x13, 0x62, 0xd5, 0x73, 0x43, 0xba, 0x8d, 0xf5, 0xbb, 0x1c, 0xe6, 0x48, 0xba, 0x84, 0x3e, + 0x97, 0x9d, 0xe8, 0x98, 0x1a, 0x58, 0x94, 0xcc, 0xbf, 0x2c, 0x42, 0x33, 0x92, 0xd1, 0xcc, 0xcf, + 0xb2, 0x9c, 0x67, 0x05, 0xe6, 0x7d, 0x61, 0x45, 0xdf, 0x86, 0xd2, 0x85, 0xce, 0x24, 0x46, 0x82, + 0x15, 0x1b, 0xac, 0x23, 0xcc, 0x7b, 0x99, 0x8b, 0xba, 0x0c, 0x27, 0xa4, 0xe9, 0xb3, 0x78, 0xeb, + 0x69, 0x75, 0xa6, 0x19, 0xa1, 0x5b, 0x50, 0x76, 0x6c, 0x2e, 0xbc, 0x37, 0x31, 0xfd, 0x69, 0x7e, + 0x07, 0xe6, 0x94, 0xd7, 0xfe, 0x04, 0xfd, 0x43, 0x4a, 0xaf, 0x28, 0x0a, 0xa5, 0xc4, 0x59, 0x23, + 0x87, 0x1e, 0x9b, 0x60, 0x0d, 0x60, 0xfe, 0x79, 0x07, 0xaa, 0x6c, 0x8e, 0xcd, 0x9b, 0x7c, 0x7f, + 0x5f, 0x83, 0x1a, 0xbb, 0xcf, 0x48, 0xf9, 0xff, 0x54, 0xda, 0x82, 0x60, 0x61, 0x63, 0xae, 0xc2, + 0x9c, 0x22, 0xee, 0xd0, 0x0d, 0xc9, 0x1a, 0xa2, 0x45, 0x96, 0x45, 0x64, 0x42, 0x83, 0x1e, 0x05, + 0x9b, 0x56, 0xb8, 0x27, 0xe6, 0x20, 0x2a, 0x9b, 0x17, 0xa0, 0x26, 0xee, 0x67, 0xa6, 0x10, 0xb3, + 0xba, 0xd1, 0x24, 0x44, 0x65, 0xf3, 0xd7, 0xa1, 0x19, 0x69, 0x40, 0x68, 0x03, 0x4e, 0x08, 0x0d, + 0x88, 0xdf, 0x31, 0xa8, 0xf1, 0x42, 0xce, 0xe6, 0xa1, 0x17, 0x0a, 0x26, 0x23, 0xb5, 0x5f, 0x1d, + 0x0d, 0x09, 0xd6, 0x08, 0xcc, 0xdf, 0x3b, 0xcf, 0xc2, 0x92, 0x39, 0x84, 0x46, 0xf4, 0xf0, 0x4d, + 0x4e, 0xf6, 0x6d, 0x1e, 0xf9, 0x4a, 0xb9, 0xaa, 0x0d, 0xc7, 0xd3, 0xf8, 0xca, 0x02, 0xa4, 0x79, + 0x06, 0xca, 0xcf, 0xc8, 0x11, 0x75, 0x00, 0x1e, 0x27, 0x85, 0x03, 0xf0, 0x78, 0xd8, 0x85, 0x9a, + 0x10, 0xa0, 0x92, 0xfd, 0x5d, 0x87, 0xda, 0x2e, 0xd7, 0xb4, 0x72, 0x22, 0xa2, 0x30, 0x33, 0x1f, + 0xc2, 0x9c, 0x2a, 0x3b, 0x25, 0xf9, 0xce, 0xc1, 0x5c, 0x4f, 0x11, 0xb6, 0xf8, 0x32, 0xa8, 0x55, + 0x26, 0x81, 0x13, 0x9a, 0xb6, 0x94, 0x64, 0x58, 0x4f, 0xdd, 0x6e, 0xef, 0xa5, 0x4e, 0xfb, 0x94, + 0x4d, 0xf7, 0x0c, 0x4e, 0x26, 0xf5, 0xa5, 0x64, 0x4f, 0x57, 0xe0, 0xe4, 0x4e, 0x42, 0xcd, 0xe2, + 0x21, 0x2e, 0x59, 0x6d, 0x76, 0xa1, 0xca, 0xdf, 0xff, 0x49, 0x8a, 0x8f, 0xa0, 0x6a, 0x31, 0x7d, + 0x81, 0x02, 0x17, 0x94, 0x6b, 0xa0, 0x3a, 0x4a, 0x06, 0xc5, 0xdc, 0xd0, 0x74, 0x60, 0x5e, 0x97, + 0x14, 0x92, 0x94, 0x1d, 0x98, 0x1f, 0x6b, 0xd2, 0x05, 0xa7, 0x5e, 0x4e, 0xa5, 0xd6, 0xa8, 0xb0, + 0x0e, 0x34, 0x7f, 0xbb, 0x06, 0x15, 0xa6, 0x89, 0x25, 0xbb, 0xf8, 0x04, 0x2a, 0x21, 0x79, 0x2d, + 0x6f, 0x60, 0xcb, 0x53, 0x05, 0x36, 0x7e, 0x73, 0x66, 0xf6, 0xe8, 0xeb, 0x50, 0x0d, 0xc2, 0xa3, + 0x81, 0x54, 0x72, 0xcf, 0x4f, 0x07, 0x6e, 0x51, 0x53, 0xcc, 0x11, 0x14, 0xca, 0x7c, 0x41, 0x68, + 0xb8, 0x39, 0x50, 0xe6, 0x84, 0x98, 0x23, 0xd0, 0x43, 0xa8, 0xf7, 0xf6, 0x48, 0x6f, 0x9f, 0xd8, + 0x42, 0xbc, 0xbd, 0x38, 0x1d, 0xbc, 0xca, 0x8d, 0xb1, 0x44, 0xd1, 0xbe, 0x7b, 0x6c, 0x75, 0x6b, + 0xb3, 0xf4, 0xcd, 0x56, 0x1c, 0x73, 0x04, 0x5a, 0x87, 0xa6, 0xd3, 0xf3, 0xdc, 0xf5, 0x03, 0xef, + 0x7b, 0x8e, 0x50, 0x69, 0x2f, 0x4f, 0x87, 0x77, 0xa5, 0x39, 0x8e, 0x91, 0x92, 0xa6, 0x7b, 0x60, + 0xf5, 0x89, 0x50, 0x64, 0x67, 0xa0, 0x61, 0xe6, 0x38, 0x46, 0x9a, 0x8b, 0x62, 0x3d, 0xd3, 0x9d, + 0xfc, 0x09, 0x54, 0xd9, 0x94, 0xa3, 0xfb, 0x6a, 0xf3, 0x82, 0xd2, 0x53, 0x66, 0xc4, 0x12, 0x4b, + 0x15, 0xf1, 0xb0, 0xf9, 0xd7, 0x79, 0xe6, 0x66, 0xe1, 0x11, 0xeb, 0xc6, 0x79, 0xde, 0x85, 0xba, + 0x58, 0x0a, 0x7d, 0xc0, 0x0d, 0x69, 0x70, 0x16, 0xaa, 0xdc, 0x31, 0xd3, 0xbf, 0xe7, 0x3d, 0x68, + 0x46, 0x93, 0x39, 0xdd, 0x84, 0xcd, 0x4e, 0x86, 0x89, 0x0b, 0x55, 0x2e, 0x0d, 0x4e, 0x46, 0x5a, + 0xd5, 0x09, 0xce, 0x4f, 0x57, 0x1a, 0x15, 0x2f, 0xc8, 0x59, 0x85, 0x3f, 0x2e, 0x42, 0x79, 0xcd, + 0x19, 0x4f, 0x74, 0x77, 0x47, 0xfa, 0x4e, 0x9e, 0xd3, 0xad, 0x39, 0x63, 0xcd, 0x75, 0xcc, 0x75, + 0xb9, 0xae, 0xf7, 0xf4, 0x75, 0xbd, 0x34, 0xfd, 0x1a, 0x13, 0xd3, 0xf0, 0x81, 0xfd, 0x51, 0x0d, + 0x2a, 0x4c, 0xdc, 0x4e, 0x8b, 0x06, 0x47, 0xc3, 0xfc, 0x81, 0x51, 0x30, 0x3f, 0xd6, 0x98, 0x3d, + 0x8f, 0x06, 0x56, 0x98, 0x1f, 0x0d, 0x18, 0x90, 0x3e, 0x3f, 0xd8, 0x27, 0xd1, 0xa7, 0xce, 0x27, + 0x50, 0x39, 0x70, 0x0e, 0x88, 0x08, 0x06, 0x39, 0x5d, 0xbe, 0x70, 0x0e, 0x08, 0x66, 0xf6, 0x14, + 0xb7, 0x67, 0x05, 0x7b, 0x22, 0x0e, 0xe4, 0xe0, 0x3a, 0x56, 0xb0, 0x87, 0x99, 0x3d, 0xc5, 0xb9, + 0xd6, 0x01, 0x11, 0x01, 0x20, 0x07, 0xf7, 0xd2, 0xa2, 0xfd, 0x51, 0x7b, 0x8a, 0x0b, 0x9c, 0xef, + 0x13, 0xe1, 0xf9, 0x39, 0xb8, 0x2d, 0xe7, 0xfb, 0x04, 0x33, 0xfb, 0x38, 0x50, 0x36, 0x66, 0x9b, + 0x1a, 0x65, 0xb5, 0x17, 0xa1, 0x42, 0x07, 0x90, 0xb1, 0xbb, 0xce, 0x42, 0xf5, 0xd7, 0x1c, 0x3b, + 0xdc, 0xd3, 0x9b, 0xab, 0x5a, 0x08, 0xa0, 0x13, 0x7c, 0xac, 0x10, 0xa0, 0xae, 0x0f, 0xe7, 0x59, + 0x83, 0x0a, 0x5d, 0xe8, 0xe3, 0xed, 0xb8, 0x78, 0x7f, 0x7c, 0xa9, 0x80, 0xa4, 0x4e, 0x09, 0xe7, + 0x59, 0x84, 0x0a, 0x5d, 0xcb, 0x8c, 0x29, 0x59, 0x84, 0x0a, 0xdd, 0x21, 0xd9, 0xad, 0x74, 0x5d, + 0xf4, 0xd6, 0xb2, 0x6c, 0xfd, 0xbb, 0x3a, 0x54, 0xd8, 0xdf, 0x6a, 0x92, 0x3e, 0xf1, 0xab, 0x30, + 0x1f, 0x5a, 0x7e, 0x9f, 0x84, 0x8f, 0xc5, 0x55, 0xb3, 0x94, 0xfa, 0xa7, 0x5a, 0xfd, 0x2f, 0x40, + 0xed, 0x57, 0x2a, 0x04, 0xeb, 0x0c, 0xb3, 0x1f, 0x9e, 0x8c, 0x4a, 0x3b, 0x3c, 0xef, 0x45, 0x97, + 0xb4, 0x4a, 0xce, 0x1f, 0x0a, 0x19, 0x96, 0x5f, 0xf5, 0xe4, 0x8d, 0x0d, 0x3d, 0x86, 0x06, 0x3d, + 0x42, 0xe8, 0x34, 0x08, 0xc7, 0xb9, 0x34, 0x1d, 0xdf, 0x15, 0xd6, 0x38, 0xc2, 0xd1, 0x03, 0xac, + 0x67, 0xf9, 0x36, 0x1b, 0x95, 0xf0, 0xa2, 0xcb, 0xd3, 0x49, 0x56, 0xa5, 0x39, 0x8e, 0x91, 0xe8, + 0x19, 0xcc, 0xd9, 0x24, 0x7a, 0xee, 0x0a, 0xb7, 0x7a, 0x7f, 0x3a, 0xd1, 0x5a, 0x0c, 0xc0, 0x2a, + 0x9a, 0x8e, 0x49, 0x3e, 0x71, 0x82, 0xdc, 0x43, 0x95, 0x51, 0xc5, 0xf9, 0x0e, 0x31, 0xd2, 0xbc, + 0x08, 0xf3, 0xda, 0xba, 0xfd, 0x4c, 0x4f, 0x57, 0x75, 0x2d, 0x39, 0xcf, 0xed, 0xe8, 0x2a, 0xfe, + 0xa1, 0x7e, 0xbc, 0x66, 0xde, 0xbc, 0x05, 0xf0, 0x39, 0x34, 0xe4, 0xc2, 0xa0, 0x47, 0xfa, 0x18, + 0x3e, 0xc8, 0x1f, 0x43, 0xb4, 0xa6, 0x82, 0xed, 0x25, 0x34, 0xa3, 0x15, 0xa2, 0xef, 0x63, 0x95, + 0xee, 0x6a, 0x3e, 0x5d, 0xbc, 0xba, 0x82, 0x0f, 0xc3, 0x9c, 0xb2, 0x50, 0x68, 0x55, 0x67, 0xfc, + 0x30, 0x9f, 0x51, 0x5d, 0xe6, 0xf8, 0x74, 0x8f, 0x56, 0x4c, 0x5d, 0x95, 0x72, 0xbc, 0x2a, 0x3f, + 0xae, 0x43, 0x23, 0xfa, 0xfb, 0x68, 0xca, 0x5b, 0x6a, 0xe4, 0x0f, 0x72, 0xdf, 0x52, 0x12, 0xdf, + 0xde, 0xf6, 0x07, 0x98, 0x22, 0xe8, 0x12, 0x87, 0x4e, 0x18, 0xb9, 0xea, 0xe5, 0x7c, 0xe8, 0x2b, + 0x6a, 0x8e, 0x39, 0x0a, 0x6d, 0xe8, 0xbb, 0x9c, 0xfb, 0xec, 0x87, 0xf9, 0x24, 0x99, 0x3b, 0xbd, + 0x0b, 0x4d, 0x87, 0x5e, 0x71, 0x3a, 0xf1, 0xd9, 0x77, 0x35, 0x9f, 0xae, 0x2b, 0x21, 0x38, 0x46, + 0xd3, 0xb1, 0xed, 0x5a, 0x63, 0xea, 0xd7, 0x8c, 0xac, 0x36, 0xeb, 0xd8, 0x9e, 0xc4, 0x20, 0xac, + 0x32, 0xa0, 0xbb, 0xe2, 0xf6, 0x50, 0xcf, 0x89, 0x2c, 0xf1, 0x54, 0xc5, 0x37, 0x88, 0x6f, 0xc2, + 0x02, 0x8f, 0x91, 0x5c, 0x3a, 0xec, 0xda, 0xc2, 0x8d, 0x3f, 0x9a, 0x81, 0x45, 0xc3, 0xe1, 0x04, + 0x0f, 0x5d, 0x41, 0x7e, 0x37, 0x69, 0xce, 0xba, 0x82, 0xea, 0xfd, 0x84, 0x3e, 0xa6, 0xb7, 0xfd, + 0x41, 0xf6, 0x19, 0xcc, 0x96, 0x3b, 0xa3, 0xf9, 0xbc, 0xee, 0x09, 0xd9, 0x17, 0xd7, 0x68, 0x4d, + 0x32, 0x79, 0x94, 0x49, 0xcf, 0x30, 0xba, 0x2f, 0x0e, 0xea, 0x5b, 0xba, 0xbf, 0xbd, 0x9b, 0xf0, + 0x37, 0xea, 0x61, 0x9b, 0x3e, 0x61, 0xb2, 0x96, 0x7a, 0x42, 0x5f, 0x82, 0x05, 0x7d, 0x22, 0x33, + 0xba, 0x79, 0x2a, 0xef, 0x15, 0xc7, 0x8a, 0x14, 0xc9, 0xb9, 0xe5, 0x5c, 0x3f, 0x2c, 0x42, 0x23, + 0xfa, 0xf3, 0xf7, 0xa4, 0xc8, 0xdc, 0x70, 0x82, 0x0e, 0xb1, 0x6c, 0xe2, 0x0b, 0xbf, 0xfd, 0x20, + 0xf7, 0xef, 0xea, 0xed, 0xae, 0x40, 0xe0, 0x08, 0x6b, 0x9e, 0x83, 0x86, 0xac, 0xcd, 0x78, 0x7c, + 0xfc, 0xfb, 0x3b, 0xec, 0x3a, 0x3c, 0x30, 0x9f, 0xc7, 0x7f, 0x5f, 0xf8, 0xf2, 0x7a, 0xb1, 0xf9, + 0x0a, 0x4e, 0xae, 0x59, 0xa1, 0xb5, 0x63, 0x05, 0x04, 0x93, 0x9e, 0xe7, 0xdb, 0xa9, 0xac, 0x3e, + 0x6f, 0x12, 0x2a, 0x60, 0x36, 0xab, 0xb0, 0xfb, 0x4a, 0xbf, 0xf9, 0xbf, 0xa3, 0xdf, 0xfc, 0x4d, + 0x25, 0x43, 0x54, 0x99, 0xe5, 0x3d, 0x49, 0x37, 0xdc, 0x84, 0xaa, 0x72, 0x57, 0xbf, 0x18, 0x5e, + 0xc8, 0x41, 0x6a, 0x37, 0xc3, 0xbb, 0xba, 0xac, 0x92, 0x87, 0xd5, 0x74, 0x95, 0x47, 0x49, 0x5d, + 0xe5, 0x52, 0x0e, 0x7a, 0x42, 0x58, 0xb9, 0xab, 0x0b, 0x2b, 0x79, 0xbd, 0xab, 0xca, 0xca, 0x2f, + 0x99, 0x96, 0xf1, 0x27, 0x19, 0xaa, 0xc0, 0xd7, 0x75, 0x55, 0x60, 0xca, 0xae, 0xf9, 0x79, 0xc9, + 0x02, 0x7f, 0x9a, 0x25, 0x0b, 0xdc, 0xd6, 0x64, 0x81, 0x29, 0x23, 0x4b, 0xea, 0x02, 0x77, 0x75, + 0x5d, 0xe0, 0x42, 0x0e, 0x52, 0x13, 0x06, 0x6e, 0x6b, 0xc2, 0x40, 0x5e, 0xa7, 0x8a, 0x32, 0x70, + 0x5b, 0x53, 0x06, 0xf2, 0x80, 0x8a, 0x34, 0x70, 0x5b, 0x93, 0x06, 0xf2, 0x80, 0x8a, 0x36, 0x70, + 0x5b, 0xd3, 0x06, 0xf2, 0x80, 0x8a, 0x38, 0x70, 0x57, 0x17, 0x07, 0xf2, 0xe7, 0xe7, 0x2b, 0x75, + 0xe0, 0x17, 0xa3, 0x0e, 0xfc, 0x41, 0x39, 0x43, 0x1d, 0xc0, 0xe9, 0xea, 0xc0, 0xb5, 0xec, 0x95, + 0xcc, 0x97, 0x07, 0x66, 0x3f, 0x05, 0x26, 0xf5, 0x81, 0xfb, 0x09, 0x7d, 0xe0, 0x62, 0x0e, 0x58, + 0x17, 0x08, 0xfe, 0xdf, 0xbc, 0x80, 0x7f, 0x54, 0x9b, 0xf2, 0xd8, 0xbb, 0xa3, 0x3e, 0xf6, 0xa6, + 0x9c, 0x64, 0x93, 0xaf, 0xbd, 0x07, 0xfa, 0x6b, 0xef, 0xca, 0x0c, 0x58, 0xed, 0xb9, 0xb7, 0x99, + 0xf6, 0xdc, 0x6b, 0xcf, 0xc0, 0x92, 0xf9, 0xde, 0x7b, 0x3a, 0xf9, 0xde, 0xbb, 0x36, 0x03, 0x5f, + 0xea, 0x83, 0x6f, 0x33, 0xed, 0xc1, 0x37, 0xcb, 0xe8, 0x32, 0x5f, 0x7c, 0xdf, 0xd0, 0x5e, 0x7c, + 0x97, 0x67, 0x99, 0xae, 0xf8, 0x70, 0xf8, 0x56, 0xc6, 0x93, 0xef, 0x6b, 0xb3, 0xd0, 0x4c, 0x7d, + 0xf3, 0x7d, 0xf5, 0x68, 0x4b, 0x74, 0xf3, 0xa3, 0x26, 0x34, 0x64, 0x32, 0x83, 0xf9, 0x1b, 0x50, + 0x97, 0x59, 0xc1, 0x49, 0xcf, 0x39, 0x0d, 0x35, 0x6a, 0x12, 0x25, 0x78, 0x88, 0x12, 0x7a, 0x00, + 0x15, 0xfa, 0x4b, 0xb8, 0xc5, 0x07, 0xb3, 0x25, 0x4d, 0xd0, 0x4e, 0x30, 0xc3, 0x99, 0x1f, 0x03, + 0x28, 0x59, 0xc2, 0x33, 0xf6, 0x6a, 0xde, 0x82, 0x66, 0x9c, 0xf7, 0x9b, 0x92, 0x8c, 0xc2, 0xcd, + 0xe4, 0xcb, 0x44, 0x16, 0xcd, 0x9b, 0xd0, 0x8c, 0x73, 0x79, 0x53, 0xfa, 0x0a, 0x58, 0xa3, 0x40, + 0x89, 0x92, 0xb9, 0x0e, 0x6f, 0x4c, 0xe6, 0x6f, 0xa6, 0xbc, 0x88, 0x94, 0x4c, 0x0a, 0x31, 0x5a, + 0xb5, 0xca, 0x3c, 0x84, 0x85, 0x44, 0x46, 0xe6, 0xb1, 0x39, 0xd0, 0x4d, 0x68, 0xc8, 0xa2, 0x98, + 0xf0, 0xb7, 0x33, 0x72, 0x43, 0x70, 0x64, 0x68, 0xae, 0xc1, 0x42, 0xce, 0xe0, 0x67, 0x49, 0x0d, + 0xf9, 0x2e, 0xcc, 0x4d, 0x1b, 0xfb, 0xcf, 0x20, 0x75, 0x25, 0x84, 0xd6, 0x44, 0xde, 0x73, 0xb2, + 0x9b, 0x4d, 0x80, 0x7e, 0x64, 0x23, 0xc2, 0xf8, 0x47, 0xc7, 0x48, 0xd4, 0x61, 0x38, 0xac, 0x70, + 0x98, 0x7f, 0x51, 0x84, 0x37, 0x26, 0x93, 0x9e, 0x67, 0xdd, 0xfd, 0x06, 0xd4, 0x19, 0x57, 0x94, + 0xdf, 0x24, 0x8b, 0xe8, 0x05, 0x9c, 0x08, 0x06, 0x4e, 0x8f, 0xac, 0xee, 0x59, 0x6e, 0x9f, 0xd0, + 0x33, 0xb7, 0x9c, 0x9f, 0xb8, 0xbc, 0x15, 0x23, 0xb0, 0x06, 0x37, 0x0f, 0x61, 0x4e, 0x69, 0x44, + 0xf7, 0xa0, 0xe4, 0x0d, 0x45, 0x44, 0xb8, 0x36, 0x03, 0xe7, 0xc6, 0x90, 0xf8, 0x7c, 0x5f, 0x94, + 0xbc, 0xa1, 0x4c, 0xee, 0x29, 0x45, 0xc9, 0x3d, 0x6a, 0xfe, 0x56, 0x59, 0xcb, 0xdf, 0x5a, 0xfe, + 0xfd, 0x22, 0x2c, 0xe8, 0x14, 0xe8, 0x34, 0x20, 0xbd, 0xe6, 0xa5, 0xe7, 0x92, 0x56, 0x01, 0xbd, + 0x05, 0x6f, 0xe8, 0xf5, 0x2b, 0xb6, 0xdd, 0x2a, 0x4e, 0x9a, 0xbf, 0xf0, 0xc6, 0xa4, 0x55, 0x42, + 0x06, 0x9c, 0x4a, 0x8c, 0x8d, 0xa5, 0x1e, 0xb5, 0xca, 0xe8, 0x1d, 0x78, 0x2b, 0xd9, 0x32, 0x1c, + 0x58, 0x3d, 0xd2, 0xaa, 0x98, 0xff, 0x59, 0x82, 0xca, 0x76, 0x40, 0x7c, 0xf3, 0xa7, 0x25, 0x99, + 0x2e, 0x74, 0x07, 0x2a, 0x2c, 0x31, 0x59, 0x49, 0x1a, 0x2d, 0x26, 0x92, 0x46, 0xb5, 0x7f, 0x94, + 0x1a, 0x27, 0x8d, 0xde, 0x81, 0x0a, 0x4b, 0x45, 0x3e, 0x3e, 0xf2, 0x77, 0x8a, 0xd0, 0x8c, 0xd3, + 0x82, 0x8f, 0x8d, 0x57, 0xd3, 0x93, 0x4a, 0x7a, 0x7a, 0xd2, 0x07, 0x50, 0xf5, 0x59, 0x22, 0x11, + 0xf7, 0xef, 0x64, 0xd2, 0x13, 0xeb, 0x10, 0x73, 0x13, 0x93, 0xc0, 0x9c, 0x9a, 0xf4, 0x7c, 0xfc, + 0x61, 0x5c, 0x10, 0xff, 0xa0, 0xa6, 0x6b, 0x07, 0x2b, 0xbe, 0x6f, 0x1d, 0x89, 0x2d, 0xa1, 0x57, + 0xd2, 0xfb, 0xef, 0xa6, 0xe3, 0xf6, 0xd3, 0x73, 0x75, 0xcd, 0xbf, 0x2d, 0x42, 0x5d, 0xa4, 0x10, + 0x9b, 0xb7, 0xa1, 0xfc, 0x92, 0x1c, 0xd2, 0x81, 0x88, 0x24, 0xe2, 0x89, 0x81, 0xbc, 0x60, 0x5f, + 0x21, 0xec, 0xb1, 0x34, 0x33, 0xef, 0x46, 0xf9, 0xad, 0xc7, 0xc7, 0xde, 0x81, 0x0a, 0xcb, 0x55, + 0x3e, 0x3e, 0xf2, 0x77, 0x1b, 0x50, 0xe3, 0x09, 0xaf, 0xe6, 0xff, 0xd4, 0xa1, 0xc6, 0xf3, 0x97, + 0xd1, 0x03, 0xa8, 0x07, 0xa3, 0x83, 0x03, 0xcb, 0x3f, 0x32, 0xd2, 0xff, 0xc5, 0xb4, 0x96, 0xee, + 0xdc, 0xde, 0xe2, 0xb6, 0x58, 0x82, 0xd0, 0x2d, 0xa8, 0xf4, 0xac, 0x5d, 0x32, 0x21, 0x69, 0xa5, + 0x81, 0x57, 0xad, 0x5d, 0x82, 0x99, 0x39, 0x7a, 0x04, 0x0d, 0xb1, 0x2c, 0x3c, 0x01, 0x34, 0xaf, + 0x5f, 0xb9, 0x98, 0x11, 0xca, 0x7c, 0x0a, 0x75, 0x31, 0x18, 0xf4, 0x30, 0x4a, 0xf7, 0x4d, 0xde, + 0xbe, 0x53, 0x3f, 0xe1, 0xc8, 0xed, 0x25, 0x12, 0x7f, 0xff, 0xb1, 0x04, 0x15, 0x3a, 0xb8, 0x2f, + 0xcd, 0x84, 0x96, 0x00, 0x06, 0x56, 0x10, 0x6e, 0x8e, 0x06, 0x03, 0x62, 0x8b, 0x4c, 0x4e, 0xa5, + 0x06, 0x5d, 0x81, 0x93, 0xbc, 0x14, 0xec, 0x6d, 0x8d, 0x7a, 0x3d, 0x42, 0x6c, 0x91, 0x3c, 0x99, + 0xac, 0x46, 0x2b, 0x50, 0x65, 0xff, 0x60, 0x53, 0x5c, 0x9e, 0xaf, 0xe6, 0xce, 0x6c, 0x7b, 0xd3, + 0x71, 0xc5, 0x68, 0x38, 0xd2, 0xf4, 0xa0, 0x19, 0xd5, 0x51, 0x27, 0x1c, 0x3a, 0xae, 0xeb, 0xb8, + 0x7d, 0xb1, 0xa3, 0x65, 0x91, 0x86, 0x7b, 0xfa, 0x53, 0x8c, 0xb7, 0x8a, 0x45, 0x89, 0xd6, 0xef, + 0x5a, 0xce, 0x40, 0x0c, 0xb1, 0x8a, 0x45, 0x89, 0x32, 0x8d, 0xd8, 0xf6, 0xe5, 0x29, 0xa7, 0x65, + 0x2c, 0x8b, 0xe6, 0xe7, 0xc5, 0x28, 0xe7, 0x3d, 0x2d, 0x09, 0x98, 0x89, 0x0a, 0x3c, 0x02, 0x70, + 0xbd, 0x60, 0x51, 0xbd, 0xd4, 0xf3, 0x50, 0xac, 0x5c, 0xd3, 0x4f, 0x43, 0xcd, 0x73, 0x07, 0x8e, + 0xcb, 0xa5, 0x8f, 0x06, 0x16, 0xa5, 0xc4, 0x1c, 0x57, 0x27, 0xe6, 0x58, 0xb4, 0xaf, 0xdb, 0x0e, + 0x1d, 0x62, 0x2d, 0x6e, 0xe7, 0x35, 0xe8, 0x3e, 0xd4, 0x6d, 0x32, 0x76, 0x7a, 0x24, 0x30, 0xea, + 0x6c, 0xeb, 0x9d, 0x9f, 0x3a, 0xb7, 0x6b, 0xcc, 0x16, 0x4b, 0x8c, 0x19, 0x42, 0x8d, 0x57, 0x45, + 0x9f, 0x54, 0x54, 0x3e, 0x29, 0x1e, 0x74, 0x69, 0xca, 0xa0, 0xcb, 0x39, 0x83, 0xae, 0x24, 0x07, + 0xbd, 0xfc, 0x0c, 0x20, 0xde, 0x6e, 0x68, 0x0e, 0xea, 0xdb, 0xee, 0xbe, 0xeb, 0x1d, 0xba, 0xad, + 0x02, 0x2d, 0x6c, 0xec, 0xee, 0xd2, 0x5e, 0x5a, 0x45, 0x5a, 0xa0, 0x76, 0x8e, 0xdb, 0x6f, 0x95, + 0x10, 0x40, 0x8d, 0x16, 0x88, 0xdd, 0x2a, 0xd3, 0xdf, 0x4f, 0xd8, 0xfa, 0xb5, 0x2a, 0xcb, 0x3f, + 0x80, 0x79, 0x4c, 0x82, 0xa1, 0xe7, 0x06, 0xe4, 0xe7, 0xf5, 0xbf, 0x9f, 0xc8, 0xfc, 0x1f, 0x49, + 0x2c, 0xff, 0x55, 0x19, 0xaa, 0x2c, 0x44, 0x99, 0x7f, 0x56, 0x8e, 0x82, 0x69, 0x8a, 0x88, 0x1f, + 0x4b, 0x6d, 0x0b, 0xca, 0xcd, 0x4a, 0x0b, 0x6e, 0xea, 0x2b, 0xea, 0x86, 0x2a, 0xb1, 0x2d, 0x28, + 0xff, 0x6a, 0x43, 0x47, 0x68, 0xd2, 0xda, 0x37, 0xa0, 0x31, 0xf4, 0xbd, 0xbe, 0x4f, 0xa3, 0x68, + 0x25, 0xf1, 0xef, 0x97, 0x75, 0xd8, 0xa6, 0x30, 0xc3, 0x11, 0xc0, 0x7c, 0x09, 0x0d, 0x59, 0x9b, + 0x91, 0xd5, 0x8d, 0xa0, 0x62, 0x7b, 0x62, 0x27, 0x94, 0x31, 0xfb, 0x4d, 0xe7, 0x45, 0xcc, 0xa0, + 0xbc, 0x7b, 0x88, 0xe2, 0xf2, 0x86, 0x78, 0x02, 0xcd, 0x43, 0x73, 0xcd, 0xf7, 0x86, 0x2c, 0xbf, + 0xb7, 0x55, 0xa0, 0xeb, 0xd6, 0x3d, 0x18, 0x7a, 0x7e, 0xd8, 0x2a, 0xd2, 0xdf, 0xeb, 0xaf, 0xd9, + 0xef, 0x12, 0x3a, 0x01, 0x8d, 0x2d, 0x6b, 0x4c, 0xa8, 0x59, 0xab, 0x8c, 0x10, 0xbd, 0xf6, 0xf6, + 0xbc, 0x31, 0xf1, 0x85, 0xff, 0xb5, 0x2a, 0xcb, 0x2b, 0x52, 0xdb, 0x6a, 0x40, 0x45, 0x5c, 0x5a, + 0xe6, 0xa0, 0x8e, 0x47, 0xcc, 0xeb, 0x5b, 0x45, 0x5a, 0x4d, 0x8f, 0x12, 0xce, 0xb5, 0x6a, 0xb9, + 0x3d, 0x32, 0x60, 0x3b, 0xa5, 0x09, 0xd5, 0x75, 0xdf, 0xf7, 0xfc, 0x56, 0xe5, 0xf1, 0xe2, 0x3f, + 0x7d, 0xbe, 0x54, 0xfc, 0xc9, 0xe7, 0x4b, 0xc5, 0xff, 0xf8, 0x7c, 0xa9, 0xf8, 0x87, 0x5f, 0x2c, + 0x15, 0x7e, 0xf2, 0xc5, 0x52, 0xe1, 0xdf, 0xbe, 0x58, 0x2a, 0x7c, 0x56, 0x1a, 0xee, 0xec, 0xd4, + 0x98, 0x28, 0x71, 0xf3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x79, 0x72, 0xb0, 0x57, 0x2d, 0x45, + 0x00, 0x00, } func (m *Event) Marshal() (dAtA []byte, err error) { @@ -9867,6 +9945,29 @@ func (m *EventMessageValueOfSubscriptionCounters) MarshalToSizedBuffer(dAtA []by } return len(dAtA) - i, nil } +func (m *EventMessageValueOfSubscriptionGroups) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventMessageValueOfSubscriptionGroups) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.SubscriptionGroups != nil { + { + size, err := m.SubscriptionGroups.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4 + i-- + dAtA[i] = 0x82 + } + return len(dAtA) - i, nil +} func (m *EventMessageValueOfPing) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) @@ -10752,6 +10853,58 @@ func (m *EventObjectSubscriptionCounters) MarshalToSizedBuffer(dAtA []byte) (int return len(dAtA) - i, nil } +func (m *EventObjectSubscriptionGroups) 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 *EventObjectSubscriptionGroups) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventObjectSubscriptionGroups) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Remove { + i-- + if m.Remove { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.Group != nil { + { + size, err := m.Group.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.SubId) > 0 { + i -= len(m.SubId) + copy(dAtA[i:], m.SubId) + i = encodeVarintEvents(dAtA, i, uint64(len(m.SubId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *EventObjectRelations) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -11084,20 +11237,20 @@ func (m *EventBlockMarksInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.MarksInRange) > 0 { - dAtA63 := make([]byte, len(m.MarksInRange)*10) - var j62 int + dAtA65 := make([]byte, len(m.MarksInRange)*10) + var j64 int for _, num := range m.MarksInRange { for num >= 1<<7 { - dAtA63[j62] = uint8(uint64(num)&0x7f | 0x80) + dAtA65[j64] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j62++ + j64++ } - dAtA63[j62] = uint8(num) - j62++ + dAtA65[j64] = uint8(num) + j64++ } - i -= j62 - copy(dAtA[i:], dAtA63[:j62]) - i = encodeVarintEvents(dAtA, i, uint64(j62)) + i -= j64 + copy(dAtA[i:], dAtA65[:j64]) + i = encodeVarintEvents(dAtA, i, uint64(j64)) i-- dAtA[i] = 0xa } @@ -16366,6 +16519,18 @@ func (m *EventMessageValueOfSubscriptionCounters) Size() (n int) { } return n } +func (m *EventMessageValueOfSubscriptionGroups) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SubscriptionGroups != nil { + l = m.SubscriptionGroups.Size() + n += 2 + l + sovEvents(uint64(l)) + } + return n +} func (m *EventMessageValueOfPing) Size() (n int) { if m == nil { return 0 @@ -16769,6 +16934,26 @@ func (m *EventObjectSubscriptionCounters) Size() (n int) { return n } +func (m *EventObjectSubscriptionGroups) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SubId) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if m.Group != nil { + l = m.Group.Size() + n += 1 + l + sovEvents(uint64(l)) + } + if m.Remove { + n += 2 + } + return n +} + func (m *EventObjectRelations) Size() (n int) { if m == nil { return 0 @@ -20532,6 +20717,41 @@ func (m *EventMessage) Unmarshal(dAtA []byte) error { } m.Value = &EventMessageValueOfSubscriptionCounters{v} iNdEx = postIndex + case 64: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubscriptionGroups", 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 := &EventObjectSubscriptionGroups{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &EventMessageValueOfSubscriptionGroups{v} + iNdEx = postIndex case 100: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Ping", wireType) @@ -22727,6 +22947,144 @@ func (m *EventObjectSubscriptionCounters) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventObjectSubscriptionGroups) 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: Groups: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Groups: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubId", 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.SubId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Group", 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 + } + if m.Group == nil { + m.Group = &model.BlockContentDataviewGroup{} + } + if err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Remove", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Remove = bool(v != 0) + 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 *EventObjectRelations) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pb/protos/commands.proto b/pb/protos/commands.proto index d638d3f7f..6ef3314f1 100644 --- a/pb/protos/commands.proto +++ b/pb/protos/commands.proto @@ -1215,10 +1215,12 @@ message Rpc { } } - message RelationSearchDistinct { + message GroupsSubscribe { message Request { - string relationKey = 1; - repeated anytype.model.Block.Content.Dataview.Filter filters = 2; + string subId = 1; + string relationKey = 2; + repeated anytype.model.Block.Content.Dataview.Filter filters = 3; + repeated string source = 4; } message Response { @@ -1226,6 +1228,8 @@ message Rpc { repeated anytype.model.Block.Content.Dataview.Group groups = 2; + string subId = 3; + message Error { Code code = 1; string description = 2; diff --git a/pb/protos/events.proto b/pb/protos/events.proto index 5ccd0c003..5968322a7 100644 --- a/pb/protos/events.proto +++ b/pb/protos/events.proto @@ -33,6 +33,7 @@ message Event { Object.Subscription.Remove subscriptionRemove = 61; Object.Subscription.Position subscriptionPosition = 62; Object.Subscription.Counters subscriptionCounters = 63; + Object.Subscription.Groups subscriptionGroups = 64; Block.Add blockAdd = 2; Block.Delete blockDelete = 3; @@ -174,6 +175,11 @@ message Event { string subId = 4; // subscription id } + message Groups { + string subId = 1; + anytype.model.Block.Content.Dataview.Group group = 2; + bool remove = 3; + } } message Relations { diff --git a/pb/protos/service/service.proto b/pb/protos/service/service.proto index bf2d823b1..1675262b8 100644 --- a/pb/protos/service/service.proto +++ b/pb/protos/service/service.proto @@ -50,8 +50,8 @@ service ClientCommands { rpc ObjectGraph (anytype.Rpc.Object.Graph.Request) returns (anytype.Rpc.Object.Graph.Response); rpc ObjectSearch (anytype.Rpc.Object.Search.Request) returns (anytype.Rpc.Object.Search.Response); rpc ObjectSearchSubscribe (anytype.Rpc.Object.SearchSubscribe.Request) returns (anytype.Rpc.Object.SearchSubscribe.Response); - rpc ObjectRelationSearchDistinct (anytype.Rpc.Object.RelationSearchDistinct.Request) returns (anytype.Rpc.Object.RelationSearchDistinct.Response); rpc ObjectSubscribeIds (anytype.Rpc.Object.SubscribeIds.Request) returns (anytype.Rpc.Object.SubscribeIds.Response); + rpc ObjectGroupsSubscribe (anytype.Rpc.Object.GroupsSubscribe.Request) returns (anytype.Rpc.Object.GroupsSubscribe.Response); rpc ObjectSearchUnsubscribe (anytype.Rpc.Object.SearchUnsubscribe.Request) returns (anytype.Rpc.Object.SearchUnsubscribe.Response); rpc ObjectSetDetails (anytype.Rpc.Object.SetDetails.Request) returns (anytype.Rpc.Object.SetDetails.Response); rpc ObjectDuplicate (anytype.Rpc.Object.Duplicate.Request) returns (anytype.Rpc.Object.Duplicate.Response); diff --git a/pb/service/service.pb.go b/pb/service/service.pb.go index 63d8dac0a..4cd39dd45 100644 --- a/pb/service/service.pb.go +++ b/pb/service/service.pb.go @@ -26,208 +26,208 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) } var fileDescriptor_93a29dc403579097 = []byte{ - // 3214 bytes of a gzipped FileDescriptorProto + // 3203 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9c, 0xdf, 0x6f, 0x1d, 0x47, 0x15, 0xc7, 0x7b, 0x5f, 0x28, 0x6c, 0x69, 0x81, 0x2d, 0x94, 0x12, 0x5a, 0x27, 0x4d, 0x1b, 0xff, 0x88, 0xe3, 0xeb, 0x34, 0x81, 0x22, 0x78, 0x41, 0x37, 0x76, 0x9c, 0x58, 0x8d, 0x93, 0xe0, 0xeb, 0x34, 0x52, 0x25, 0x24, 0xd6, 0xbb, 0x93, 0x7b, 0x17, 0xef, 0xdd, 0x59, 0x76, 0xe7, 0x5e, 0xc7, - 0x20, 0x90, 0x10, 0x08, 0x44, 0x85, 0x04, 0x12, 0x8f, 0xfc, 0x11, 0xfc, 0x1b, 0x3c, 0xf6, 0x91, - 0x47, 0xd4, 0xfe, 0x23, 0x68, 0x77, 0xce, 0xcc, 0xec, 0x9c, 0x9d, 0x33, 0xbb, 0xe6, 0xa9, 0x70, - 0xcf, 0xe7, 0x9c, 0xef, 0xfc, 0x9e, 0x33, 0x33, 0x1b, 0x07, 0x57, 0x8b, 0xd3, 0xdd, 0xa2, 0xe4, - 0x82, 0x57, 0xbb, 0x15, 0x2b, 0x57, 0x69, 0xcc, 0xd4, 0x7f, 0xc7, 0xcd, 0xcf, 0xe1, 0xab, 0x51, - 0x7e, 0x21, 0x2e, 0x0a, 0x76, 0xe5, 0x6d, 0x43, 0xc6, 0x7c, 0xb1, 0x88, 0xf2, 0xa4, 0x92, 0xc8, - 0x95, 0xb7, 0x8c, 0x85, 0xad, 0x58, 0x2e, 0xe0, 0xf7, 0x3b, 0xff, 0xfa, 0x6c, 0x14, 0xbc, 0xb1, - 0x97, 0xa5, 0x2c, 0x17, 0x7b, 0xe0, 0x11, 0x7e, 0x1a, 0xbc, 0x3e, 0x29, 0x8a, 0x07, 0x4c, 0x7c, - 0xc2, 0xca, 0x2a, 0xe5, 0x79, 0xf8, 0xfe, 0x18, 0x04, 0xc6, 0xc7, 0x45, 0x3c, 0x9e, 0x14, 0xc5, - 0xd8, 0x18, 0xc7, 0xc7, 0xec, 0x57, 0x4b, 0x56, 0x89, 0x2b, 0x1f, 0xf8, 0xa1, 0xaa, 0xe0, 0x79, - 0xc5, 0xc2, 0x17, 0xc1, 0xb7, 0x26, 0x45, 0x31, 0x65, 0x62, 0x9f, 0xd5, 0x15, 0x98, 0x8a, 0x48, - 0xb0, 0x70, 0xa3, 0xe3, 0x6a, 0x03, 0x5a, 0x63, 0xb3, 0x1f, 0x04, 0x9d, 0x93, 0xe0, 0xb5, 0x5a, - 0x67, 0xbe, 0x14, 0x09, 0x3f, 0xcf, 0xc3, 0xf7, 0xba, 0x8e, 0x60, 0xd2, 0xb1, 0xaf, 0xfb, 0x10, - 0x88, 0xfa, 0x3c, 0xf8, 0xfa, 0xf3, 0x28, 0xcb, 0x98, 0xd8, 0x2b, 0x59, 0x5d, 0x70, 0xdb, 0x47, - 0x9a, 0xc6, 0xd2, 0xa6, 0xe3, 0xbe, 0xef, 0x65, 0x20, 0xf0, 0xa7, 0xc1, 0xeb, 0xd2, 0x72, 0xcc, - 0x62, 0xbe, 0x62, 0x65, 0xe8, 0xf4, 0x02, 0x23, 0xd1, 0xe4, 0x1d, 0x08, 0xc7, 0xde, 0xe3, 0xf9, - 0x8a, 0x95, 0xc2, 0x1d, 0x1b, 0x8c, 0xfe, 0xd8, 0x06, 0x82, 0xd8, 0x59, 0xf0, 0x66, 0xbb, 0x41, - 0xa6, 0xac, 0x6a, 0x06, 0xcc, 0x16, 0x5d, 0x67, 0x40, 0xb4, 0xce, 0xcd, 0x21, 0x28, 0xa8, 0xa5, - 0x41, 0x08, 0x6a, 0x19, 0xaf, 0xb4, 0xd8, 0xa6, 0x33, 0x42, 0x8b, 0xd0, 0x5a, 0x5b, 0x03, 0x48, - 0x90, 0xfa, 0x45, 0xf0, 0x8d, 0xe7, 0xbc, 0x3c, 0xab, 0x8a, 0x28, 0x66, 0xd0, 0xd9, 0x37, 0x6c, - 0x6f, 0x65, 0xc5, 0xfd, 0xbd, 0xde, 0x87, 0x39, 0x14, 0xa6, 0x2c, 0x63, 0xb1, 0x20, 0x15, 0xa4, - 0xb9, 0x57, 0x41, 0x63, 0xad, 0xce, 0x51, 0xc6, 0x07, 0x4c, 0xec, 0x2d, 0xcb, 0x92, 0xe5, 0x02, - 0x77, 0x8e, 0x76, 0x37, 0x08, 0xd5, 0x39, 0x6e, 0xd4, 0x51, 0x9f, 0x07, 0x4c, 0x4c, 0xb2, 0x8c, - 0xac, 0x8f, 0x34, 0xf7, 0xd6, 0x47, 0x63, 0xa0, 0xf0, 0xbb, 0xe0, 0x7b, 0xad, 0x16, 0x13, 0x87, - 0xd5, 0xc3, 0x74, 0x36, 0xcf, 0xd2, 0xd9, 0x5c, 0xb0, 0x24, 0xdc, 0x25, 0x1b, 0xc5, 0x06, 0xb5, - 0xea, 0xed, 0xe1, 0x0e, 0x8e, 0x1a, 0xde, 0x7f, 0x59, 0xf0, 0x92, 0xee, 0x31, 0x69, 0xee, 0xad, - 0xa1, 0xc6, 0x40, 0xe1, 0xe7, 0xc1, 0x1b, 0x93, 0x38, 0xe6, 0xcb, 0x5c, 0xaf, 0x03, 0x68, 0x55, - 0x95, 0xc6, 0xce, 0x42, 0x70, 0xa3, 0x87, 0x32, 0x2b, 0x01, 0xd8, 0x60, 0x48, 0xbf, 0xef, 0xf4, - 0x43, 0x03, 0xfa, 0x03, 0x3f, 0xd4, 0x89, 0xbd, 0xcf, 0x32, 0x46, 0xc6, 0x96, 0xc6, 0x9e, 0xd8, - 0x1a, 0xea, 0xc4, 0x86, 0x89, 0xe2, 0x8e, 0x8d, 0xa6, 0xc9, 0x07, 0x7e, 0xa8, 0xb5, 0x51, 0x40, - 0x6c, 0xc1, 0x0b, 0xbc, 0x51, 0x28, 0x27, 0xc1, 0x0b, 0x6a, 0xa3, 0xb0, 0x91, 0x4e, 0xd4, 0x23, - 0xbe, 0x62, 0x44, 0xd4, 0xda, 0xd4, 0x13, 0x15, 0x10, 0x33, 0xa1, 0x55, 0xff, 0xf1, 0xfc, 0x45, - 0x3a, 0x7b, 0x56, 0x24, 0x75, 0x2f, 0x6e, 0xb9, 0x3b, 0xa8, 0x85, 0x10, 0x13, 0x9a, 0x40, 0x41, - 0xed, 0x67, 0x41, 0xf0, 0xe4, 0xf4, 0x97, 0x2c, 0x16, 0x4f, 0x0a, 0x96, 0x87, 0xd7, 0x2c, 0x4f, - 0x69, 0x18, 0xd7, 0x16, 0x1d, 0xfb, 0x3d, 0x0f, 0x61, 0x9a, 0x45, 0xfe, 0xde, 0x2c, 0xba, 0xa1, - 0xd3, 0xa3, 0x31, 0x11, 0xcd, 0x82, 0x10, 0x5c, 0xd0, 0xe9, 0x9c, 0x9f, 0xbb, 0x0b, 0x5a, 0x5b, - 0xfc, 0x05, 0x05, 0xc2, 0x6c, 0xf4, 0x50, 0x50, 0xd7, 0x46, 0xaf, 0x8a, 0xe1, 0xdb, 0xe8, 0x31, - 0x03, 0x81, 0x79, 0xf0, 0xed, 0x76, 0xe0, 0x7b, 0x9c, 0x9f, 0x2d, 0xa2, 0xf2, 0x2c, 0xbc, 0x49, - 0x3b, 0x2b, 0x46, 0x0b, 0x6d, 0x0f, 0x62, 0xcd, 0xa2, 0xd5, 0x16, 0x9c, 0x32, 0xbc, 0x68, 0x59, - 0xfe, 0x53, 0x46, 0x2d, 0x5a, 0x0e, 0x0c, 0x77, 0xea, 0x83, 0x32, 0x2a, 0xe6, 0xee, 0x4e, 0x6d, - 0x4c, 0xfe, 0x4e, 0x55, 0x08, 0xee, 0x81, 0x29, 0x8b, 0xca, 0x78, 0xee, 0xee, 0x01, 0x69, 0xf3, - 0xf7, 0x80, 0x66, 0x20, 0x70, 0x19, 0x7c, 0xa7, 0x1d, 0x78, 0xba, 0x3c, 0xad, 0xe2, 0x32, 0x3d, - 0x65, 0xe1, 0x36, 0xed, 0xad, 0x21, 0x2d, 0x75, 0x6b, 0x18, 0x0c, 0x9a, 0x7f, 0x1e, 0x05, 0xef, - 0x48, 0xe6, 0x98, 0x65, 0x91, 0x48, 0x79, 0x2e, 0xd1, 0xfd, 0xb4, 0x12, 0x69, 0x1e, 0x8b, 0xf0, - 0x8e, 0x2b, 0x9c, 0x9b, 0xd5, 0x45, 0xb8, 0x7b, 0x29, 0x1f, 0x93, 0x42, 0x41, 0xed, 0x55, 0x29, - 0x0f, 0x93, 0x0a, 0xa5, 0x50, 0xaa, 0x36, 0x2d, 0x82, 0x48, 0xa1, 0xdc, 0x24, 0x48, 0xbd, 0x0c, - 0xbe, 0xdb, 0x6e, 0xe8, 0x67, 0x79, 0xa5, 0x9b, 0x7a, 0x87, 0x6e, 0xbd, 0x16, 0xa6, 0x45, 0xc7, - 0x43, 0x71, 0x50, 0x8e, 0x83, 0x6f, 0x2a, 0x65, 0xb1, 0xcf, 0x44, 0x94, 0x66, 0x55, 0xb8, 0xee, - 0x8e, 0xa1, 0xec, 0x5a, 0x6b, 0xa3, 0x97, 0xc3, 0x13, 0x6b, 0x7f, 0x59, 0x64, 0x69, 0xdc, 0xcd, - 0x10, 0xc1, 0x57, 0x9b, 0xfd, 0x13, 0xab, 0x8d, 0x99, 0xe5, 0x5e, 0x57, 0x43, 0xfe, 0x8f, 0x93, - 0x8b, 0x02, 0x2f, 0xf7, 0xa6, 0x84, 0x06, 0x21, 0x96, 0x7b, 0x02, 0xc5, 0xf5, 0x99, 0x32, 0xf1, - 0x28, 0xba, 0xe0, 0x4b, 0x62, 0xa1, 0xd0, 0x66, 0x7f, 0x7d, 0xda, 0x18, 0x28, 0x2c, 0x83, 0xb7, - 0xb4, 0xc2, 0x61, 0x2e, 0x58, 0x99, 0x47, 0xd9, 0x41, 0x16, 0xcd, 0xaa, 0x90, 0x98, 0x4d, 0x36, - 0xa5, 0xf5, 0x76, 0x06, 0xd2, 0x8e, 0x66, 0x3c, 0xac, 0x0e, 0xa2, 0x15, 0x2f, 0x53, 0x41, 0x37, - 0xa3, 0x41, 0x7a, 0x9b, 0xd1, 0x42, 0x9d, 0x6a, 0x93, 0x32, 0x9e, 0xa7, 0x2b, 0x96, 0x78, 0xd4, - 0x14, 0x32, 0x40, 0xad, 0x85, 0x62, 0xb5, 0x47, 0x69, 0xd5, 0x1a, 0x88, 0x4e, 0x35, 0x0b, 0xf1, - 0xab, 0x61, 0x14, 0xcf, 0xab, 0xc6, 0x2e, 0xd3, 0xbc, 0x75, 0xd2, 0xdf, 0xce, 0xf4, 0x36, 0x7a, - 0x39, 0xbc, 0x6c, 0xd4, 0x46, 0xbb, 0x11, 0x77, 0xa8, 0x18, 0xee, 0x86, 0x1c, 0x0f, 0xc5, 0x49, - 0x65, 0x3d, 0x58, 0xfc, 0xca, 0x9d, 0x01, 0x33, 0x1e, 0x8a, 0xe3, 0x6e, 0x9c, 0x14, 0x45, 0x76, - 0x71, 0xc2, 0x16, 0x45, 0x46, 0x76, 0xa3, 0x85, 0xf8, 0xbb, 0x11, 0xa3, 0x78, 0xc3, 0x3e, 0xe1, - 0x75, 0x3a, 0xe0, 0xdc, 0xb0, 0x1b, 0x93, 0x7f, 0xc3, 0x56, 0x08, 0xde, 0x57, 0x27, 0x49, 0xf2, - 0x3c, 0x15, 0x73, 0xf9, 0x7f, 0x0e, 0x13, 0xf7, 0xbe, 0x8a, 0x20, 0xff, 0xbe, 0xda, 0x85, 0xcd, - 0x6d, 0x92, 0xca, 0xfc, 0xa2, 0x92, 0xdd, 0xbb, 0x78, 0x94, 0xe6, 0x67, 0xa1, 0x7b, 0x05, 0x37, - 0x00, 0x71, 0x9b, 0xe4, 0x04, 0x71, 0xdd, 0xea, 0x74, 0xf6, 0x5e, 0xc9, 0xa2, 0x24, 0x2e, 0x97, - 0x8b, 0xd3, 0xca, 0x5d, 0x37, 0x04, 0xf9, 0xeb, 0xd6, 0x85, 0x71, 0xa6, 0x38, 0x65, 0xa2, 0x2d, - 0x49, 0x2d, 0x0f, 0x2e, 0xc5, 0xed, 0x41, 0x2c, 0x4e, 0xa3, 0x9f, 0xe5, 0x09, 0x77, 0xa7, 0xd1, - 0xb5, 0xc5, 0x9f, 0x46, 0x03, 0x81, 0x43, 0x1e, 0x33, 0x2a, 0x64, 0x6d, 0xf1, 0x87, 0x04, 0x02, - 0x37, 0xcb, 0xe1, 0xa2, 0x3e, 0x3b, 0x1f, 0x45, 0xe5, 0x59, 0x73, 0xc3, 0xe7, 0x6c, 0x16, 0x9b, - 0xf1, 0x37, 0x4b, 0x87, 0x75, 0x2d, 0x7a, 0x70, 0xec, 0x27, 0x17, 0x3d, 0x74, 0xee, 0xdf, 0xe8, - 0xe5, 0xf0, 0x02, 0xa0, 0x12, 0xf8, 0x03, 0x26, 0xe2, 0xb9, 0x7b, 0x01, 0xb0, 0x10, 0xff, 0x02, - 0x80, 0x51, 0x5c, 0xa5, 0x13, 0xae, 0x0f, 0x20, 0xeb, 0xee, 0x29, 0xde, 0x39, 0x7c, 0x6c, 0xf4, - 0x72, 0x38, 0x81, 0x97, 0x0d, 0xeb, 0x4e, 0xe0, 0xa5, 0xcd, 0x9f, 0xc0, 0x6b, 0x06, 0x97, 0x5e, - 0x1a, 0xea, 0xe6, 0x74, 0x97, 0xde, 0xd8, 0xfd, 0xa5, 0xb7, 0x38, 0xf7, 0x39, 0x4d, 0xa5, 0xd5, - 0xbe, 0x73, 0x9a, 0x62, 0x86, 0x9c, 0xd3, 0x5a, 0x2c, 0x08, 0xfe, 0x7e, 0x14, 0x5c, 0x71, 0x29, - 0x3e, 0x29, 0x1a, 0xdd, 0xdb, 0xfd, 0xb1, 0x24, 0xa9, 0xd5, 0x3f, 0xbc, 0x84, 0x07, 0x94, 0xe1, - 0x37, 0xc1, 0xdb, 0xca, 0x54, 0xb7, 0xc6, 0x31, 0x5b, 0xf0, 0x15, 0x83, 0x02, 0xd8, 0x5b, 0x9a, - 0x2e, 0x3f, 0xe6, 0xb4, 0xfc, 0xee, 0x60, 0xde, 0xe4, 0x9f, 0x76, 0xb9, 0x2a, 0x94, 0x7f, 0xea, - 0x18, 0x60, 0x26, 0xf2, 0x4f, 0x07, 0x86, 0x77, 0x0b, 0x85, 0x4c, 0x92, 0xc4, 0xb9, 0x5b, 0xe8, - 0x10, 0x93, 0x24, 0xf1, 0xee, 0x16, 0x08, 0xc4, 0x63, 0x47, 0x99, 0x21, 0x55, 0xba, 0xe9, 0x8b, - 0x80, 0xd2, 0xa5, 0xed, 0x41, 0xac, 0xb9, 0x18, 0xed, 0x54, 0xec, 0x80, 0x45, 0x62, 0x59, 0x76, - 0x2e, 0x46, 0xbb, 0xe5, 0x56, 0x20, 0x71, 0x31, 0xea, 0x75, 0x20, 0x8f, 0xb7, 0xb2, 0x8b, 0x75, - 0x19, 0xee, 0xf8, 0x42, 0xda, 0xac, 0xf7, 0x78, 0x4b, 0xfb, 0x40, 0x49, 0xfe, 0x38, 0x0a, 0xbe, - 0x6f, 0xa3, 0xf5, 0x80, 0x9b, 0xac, 0xa2, 0x34, 0x8b, 0x4e, 0x33, 0x16, 0x7e, 0xe8, 0x0b, 0x6a, - 0xa1, 0xba, 0x1c, 0x77, 0x2e, 0xe3, 0x82, 0x4f, 0x3a, 0x72, 0xbe, 0xb5, 0x0e, 0x6f, 0xb7, 0xe8, - 0x59, 0xe9, 0x38, 0xbf, 0xed, 0x0c, 0xa4, 0x41, 0xf6, 0x5c, 0xc9, 0xd6, 0x3f, 0xb7, 0x1b, 0xc0, - 0x99, 0xbf, 0x82, 0x6f, 0xab, 0x26, 0xde, 0xfc, 0xd5, 0x89, 0x83, 0xb0, 0x50, 0xf9, 0x51, 0x5b, - 0xb8, 0x9e, 0x5d, 0xb7, 0x7a, 0x03, 0xb5, 0xa7, 0xd8, 0xce, 0x40, 0x1a, 0x54, 0x7f, 0x1b, 0xbc, - 0xdd, 0x55, 0x95, 0x23, 0xc3, 0x39, 0xea, 0xed, 0x50, 0x12, 0xf4, 0x8e, 0x7a, 0xc2, 0xc1, 0x5c, - 0xa5, 0x3c, 0x4c, 0x2b, 0xc1, 0xcb, 0x8b, 0xe9, 0x9c, 0x9f, 0xab, 0xb7, 0x52, 0x7b, 0x99, 0x00, - 0x60, 0xdc, 0x22, 0x88, 0xab, 0x14, 0x37, 0xd9, 0x91, 0x32, 0x6f, 0xaa, 0x15, 0x21, 0xd5, 0x22, - 0x7a, 0xa4, 0x6c, 0xd2, 0x2c, 0x92, 0xaa, 0x56, 0xe6, 0x01, 0x78, 0xc3, 0x5d, 0xd4, 0xee, 0x23, - 0xf0, 0x66, 0x3f, 0x68, 0x0e, 0x21, 0x07, 0x69, 0xc6, 0x9e, 0xbc, 0x78, 0x91, 0xf1, 0x28, 0x41, - 0x87, 0x90, 0xda, 0x32, 0x06, 0x13, 0x71, 0x08, 0x41, 0x88, 0xd9, 0x44, 0x6a, 0x43, 0x3d, 0x3a, - 0x55, 0xe4, 0x1b, 0x5d, 0xb7, 0x96, 0x99, 0xd8, 0x44, 0x1c, 0x98, 0x49, 0x69, 0x6b, 0xe3, 0xb3, - 0xa2, 0x09, 0x7e, 0xad, 0xeb, 0x25, 0x2d, 0x44, 0x4a, 0x6b, 0x13, 0x26, 0x53, 0xaa, 0x7f, 0xdf, - 0xe7, 0xe7, 0x79, 0x13, 0xd4, 0x51, 0x51, 0x65, 0x23, 0x32, 0x25, 0xcc, 0x40, 0xe0, 0x8f, 0x83, - 0xaf, 0x36, 0x81, 0x4b, 0x5e, 0x84, 0x6b, 0x0e, 0x87, 0xb2, 0xf5, 0xaa, 0x71, 0x95, 0xb4, 0x9b, - 0x33, 0xd0, 0xe3, 0x68, 0x95, 0xce, 0xf4, 0xa2, 0x22, 0xe7, 0x08, 0x3e, 0x03, 0x19, 0x66, 0xdc, - 0x82, 0x88, 0x33, 0x10, 0x09, 0x83, 0xe6, 0x3f, 0x46, 0xc1, 0x35, 0xc3, 0x3c, 0x50, 0x17, 0x57, - 0x87, 0xf9, 0x0b, 0x5e, 0x1f, 0x08, 0xeb, 0x43, 0x5a, 0x15, 0x7e, 0x44, 0x85, 0x74, 0xf3, 0xba, - 0x28, 0x3f, 0xba, 0xb4, 0x9f, 0x49, 0x93, 0xd4, 0xa1, 0x5a, 0xae, 0xc5, 0x07, 0x25, 0x5f, 0x48, - 0x0f, 0x94, 0x26, 0xe9, 0xb3, 0x37, 0xe6, 0x88, 0x34, 0xc9, 0xc7, 0xb7, 0xf6, 0x5a, 0x4a, 0xbd, - 0xd9, 0x61, 0xee, 0x0c, 0x8b, 0x68, 0xed, 0x33, 0x77, 0x2f, 0xe5, 0x63, 0x5e, 0xe5, 0x74, 0x41, - 0x32, 0x9e, 0xe3, 0x17, 0x3f, 0x13, 0xa5, 0x36, 0x12, 0xaf, 0x72, 0x1d, 0xc8, 0xac, 0x42, 0xca, - 0x24, 0x8f, 0x4a, 0x93, 0x2c, 0x43, 0xab, 0x90, 0x76, 0xd5, 0x00, 0xb1, 0x0a, 0x39, 0x41, 0xd0, - 0x39, 0x0e, 0x5e, 0xab, 0x3b, 0xf7, 0x69, 0xc9, 0x56, 0x29, 0xc3, 0x6f, 0x47, 0x2d, 0x0b, 0x31, - 0x9d, 0x6d, 0xc2, 0x3c, 0xe2, 0x3e, 0xcb, 0xab, 0x22, 0x8b, 0xaa, 0x39, 0xbc, 0x5d, 0xd8, 0x75, - 0x56, 0x46, 0xfc, 0x7a, 0x71, 0xa3, 0x87, 0x32, 0xc7, 0x1f, 0x65, 0xd3, 0x2b, 0xc6, 0xba, 0xdb, - 0xb5, 0xb3, 0x6a, 0x6c, 0xf4, 0x72, 0x66, 0x75, 0xbe, 0x97, 0xf1, 0xf8, 0x0c, 0x96, 0x39, 0xbb, - 0xd6, 0x8d, 0x05, 0xaf, 0x73, 0xd7, 0x7d, 0x88, 0x59, 0xe8, 0x1a, 0xc3, 0x31, 0x2b, 0xb2, 0x28, - 0xc6, 0xaf, 0x6a, 0xd2, 0x07, 0x6c, 0xc4, 0x42, 0x87, 0x19, 0x54, 0x5c, 0x78, 0xad, 0x73, 0x15, - 0x17, 0x3d, 0xd6, 0x5d, 0xf7, 0x21, 0x66, 0xa9, 0x6f, 0x0c, 0xd3, 0x22, 0x4b, 0x05, 0x1a, 0x1b, - 0xd2, 0xa3, 0xb1, 0x10, 0x63, 0xc3, 0x26, 0x50, 0xc8, 0x23, 0x56, 0xce, 0x98, 0x33, 0x64, 0x63, - 0xf1, 0x86, 0x54, 0x04, 0x84, 0x7c, 0x1c, 0x7c, 0x4d, 0xd6, 0x9d, 0x17, 0x17, 0xe1, 0x55, 0x57, - 0xb5, 0x78, 0x71, 0xa1, 0x03, 0x5e, 0xa3, 0x01, 0x54, 0xc4, 0xa7, 0x51, 0x25, 0xdc, 0x45, 0x6c, - 0x2c, 0xde, 0x22, 0x2a, 0xc2, 0xec, 0x43, 0xb2, 0x88, 0x4b, 0x81, 0xf6, 0x21, 0x28, 0x40, 0xeb, - 0x31, 0xe1, 0x2a, 0x69, 0x37, 0xd3, 0x4b, 0xf6, 0x0a, 0x13, 0x07, 0x29, 0xcb, 0x92, 0x0a, 0x4d, - 0x2f, 0x68, 0x77, 0x65, 0x25, 0xa6, 0x57, 0x97, 0x42, 0x43, 0x09, 0x6e, 0x7a, 0x5c, 0xb5, 0x43, - 0x97, 0x3c, 0xd7, 0x7d, 0x88, 0xc9, 0x4b, 0x1a, 0x43, 0xeb, 0xe2, 0xdc, 0x55, 0x1e, 0xc7, 0xbd, - 0xf9, 0x7a, 0x1f, 0x06, 0x0a, 0x9f, 0x8d, 0x82, 0x77, 0xb5, 0xc4, 0x11, 0x5f, 0xb1, 0x13, 0x7e, - 0xff, 0x65, 0xf3, 0xfc, 0x37, 0x83, 0xad, 0xe9, 0x2e, 0x11, 0xc9, 0x05, 0x6b, 0xf9, 0x1f, 0x5c, - 0xce, 0xc9, 0xec, 0x90, 0xa8, 0x2c, 0x8f, 0xd9, 0xb9, 0x73, 0x87, 0xc4, 0x11, 0x35, 0x47, 0xec, - 0x90, 0x3e, 0xde, 0x9c, 0x86, 0xb5, 0x38, 0x7c, 0xb0, 0x76, 0xc2, 0x55, 0xb2, 0x42, 0x45, 0xc3, - 0x20, 0x71, 0x2e, 0xf0, 0x3a, 0x98, 0x64, 0x5d, 0xeb, 0x9b, 0x41, 0xba, 0x49, 0xc4, 0xe9, 0x0e, - 0xd4, 0xad, 0x01, 0xa4, 0x43, 0xca, 0xbc, 0xfe, 0x50, 0x52, 0xdd, 0xc7, 0x9f, 0xad, 0x01, 0x64, - 0xeb, 0x64, 0xdd, 0xae, 0xd6, 0xbd, 0x28, 0x3e, 0x9b, 0x95, 0x7c, 0x99, 0x27, 0x7b, 0x3c, 0xe3, - 0x25, 0x3a, 0x59, 0x5b, 0xa5, 0x46, 0x28, 0x71, 0xb2, 0xee, 0x71, 0x31, 0x89, 0x41, 0xbb, 0x14, - 0x93, 0x2c, 0x9d, 0xe1, 0xe3, 0x89, 0x15, 0xa8, 0x01, 0x88, 0xc4, 0xc0, 0x09, 0x3a, 0x06, 0x91, - 0x3c, 0xbe, 0x88, 0x34, 0x8e, 0x32, 0xa9, 0xb7, 0x4b, 0x87, 0xb1, 0xc0, 0xde, 0x41, 0xe4, 0x70, - 0x70, 0xd4, 0xf3, 0x64, 0x59, 0xe6, 0x87, 0xb9, 0xe0, 0x64, 0x3d, 0x15, 0xd0, 0x5b, 0xcf, 0x16, - 0x68, 0xb2, 0x89, 0xc6, 0x7c, 0xc2, 0x5e, 0xd6, 0xa5, 0xa9, 0xff, 0x13, 0x3a, 0x96, 0x9c, 0xfa, - 0xf7, 0x31, 0xd8, 0x89, 0x6c, 0xc2, 0xc5, 0xa1, 0xca, 0x80, 0x88, 0x1c, 0x30, 0x1e, 0x6f, 0x7b, - 0x98, 0x6c, 0xf6, 0x83, 0x6e, 0x9d, 0xa9, 0xb8, 0xc8, 0x98, 0x4f, 0xa7, 0x01, 0x86, 0xe8, 0x28, - 0xd0, 0xdc, 0xd6, 0x5b, 0xf5, 0x99, 0xb3, 0xf8, 0xac, 0xf3, 0xc6, 0x6b, 0x17, 0x54, 0x22, 0xc4, - 0x6d, 0x3d, 0x81, 0xba, 0xbb, 0xe8, 0x30, 0xe6, 0xb9, 0xaf, 0x8b, 0x6a, 0xfb, 0x90, 0x2e, 0x02, - 0xce, 0x9c, 0xee, 0xb4, 0x15, 0x46, 0xa6, 0xec, 0xa6, 0x6d, 0x22, 0x42, 0x1b, 0x22, 0x4e, 0x77, - 0x24, 0x6c, 0xee, 0x49, 0xb1, 0xe6, 0x51, 0xf7, 0x5b, 0xa8, 0x4e, 0x94, 0x23, 0xfa, 0x5b, 0x28, - 0x8a, 0xa5, 0x2b, 0x29, 0xc7, 0x48, 0x4f, 0x14, 0x7b, 0x9c, 0xdc, 0x1a, 0x06, 0x9b, 0x47, 0x65, - 0x4b, 0x73, 0x2f, 0x63, 0x51, 0x29, 0x55, 0x77, 0x3c, 0x81, 0x0c, 0x46, 0x5c, 0xca, 0x79, 0x70, - 0xb4, 0x84, 0x59, 0xca, 0x7b, 0x3c, 0x17, 0x2c, 0x17, 0xae, 0x25, 0xcc, 0x0e, 0x06, 0xa0, 0x6f, - 0x09, 0xa3, 0x1c, 0xd0, 0xb8, 0x3d, 0x48, 0x33, 0x36, 0x65, 0xe2, 0x71, 0xb4, 0x60, 0xae, 0x71, - 0xdb, 0x5c, 0x35, 0x80, 0xdd, 0x37, 0x6e, 0x11, 0x87, 0xa6, 0xfc, 0xe1, 0x22, 0x9a, 0x69, 0x15, - 0x87, 0x77, 0x63, 0xef, 0xc8, 0x6c, 0xf6, 0x83, 0x48, 0xe7, 0x93, 0x34, 0x61, 0xdc, 0xa3, 0xd3, - 0xd8, 0x87, 0xe8, 0x60, 0x10, 0x65, 0x4e, 0x75, 0x6d, 0xe5, 0x79, 0x64, 0x92, 0x27, 0x70, 0x0a, - 0x1b, 0x13, 0x8d, 0x82, 0x38, 0x5f, 0xe6, 0x44, 0xf0, 0x68, 0x7e, 0xa8, 0x2b, 0x34, 0xdf, 0xfc, - 0xd0, 0x37, 0x64, 0x43, 0xe6, 0x87, 0x0b, 0x06, 0xcd, 0x5f, 0xc3, 0xfc, 0xd8, 0x8f, 0x44, 0x54, - 0x9f, 0xa3, 0x3f, 0x49, 0xd9, 0x39, 0x1c, 0xe3, 0x1c, 0xf5, 0x55, 0xd4, 0xb8, 0xc6, 0xf0, 0x99, - 0x6e, 0x77, 0x30, 0xef, 0xd1, 0x86, 0xec, 0xbc, 0x57, 0x1b, 0xa5, 0xe9, 0xbb, 0x83, 0x79, 0x8f, - 0x36, 0x7c, 0xcf, 0xdb, 0xab, 0x8d, 0x3e, 0xea, 0xdd, 0x1d, 0xcc, 0x83, 0xf6, 0x1f, 0x46, 0xc1, - 0x95, 0x8e, 0x78, 0x9d, 0x03, 0xc5, 0x22, 0x5d, 0x31, 0x57, 0x2a, 0x67, 0xc7, 0xd3, 0xa8, 0x2f, - 0x95, 0xa3, 0x5d, 0xa0, 0x14, 0x7f, 0x19, 0x05, 0xef, 0xb8, 0x4a, 0xf1, 0x94, 0x57, 0x69, 0xf3, - 0xe4, 0x78, 0x77, 0x40, 0x50, 0x05, 0xfb, 0x0e, 0x2c, 0x3e, 0x27, 0xf3, 0x60, 0x63, 0xa1, 0xf5, - 0x38, 0xe5, 0xcb, 0x32, 0xc6, 0x0f, 0x36, 0x76, 0x3c, 0x4d, 0x11, 0x2f, 0x18, 0x34, 0x6d, 0x5e, - 0x30, 0x2c, 0xa6, 0xfd, 0x74, 0xe2, 0xeb, 0x55, 0xe7, 0xeb, 0xc9, 0xed, 0xe1, 0x0e, 0x20, 0xff, - 0x27, 0x95, 0xd3, 0x63, 0x7d, 0x98, 0x04, 0x77, 0x86, 0x44, 0x44, 0x13, 0xe1, 0xee, 0xa5, 0x7c, - 0xa0, 0x20, 0xff, 0x1c, 0x05, 0xd7, 0x9d, 0x05, 0xb1, 0x5f, 0xef, 0x7e, 0x3c, 0x24, 0xb6, 0xfb, - 0x15, 0xef, 0x27, 0xff, 0x8f, 0x2b, 0x94, 0xee, 0xaf, 0xea, 0x68, 0xad, 0x3c, 0x1e, 0x94, 0x7c, - 0x59, 0x3c, 0x29, 0x13, 0x56, 0xc2, 0x8c, 0xf5, 0x0d, 0x3a, 0x03, 0xe3, 0x79, 0xfb, 0xc3, 0x4b, - 0x7a, 0x41, 0x71, 0xfe, 0x36, 0x0a, 0xd6, 0x2c, 0x18, 0x3e, 0x4d, 0x6a, 0x95, 0xc7, 0x17, 0xb9, - 0x45, 0xe3, 0x02, 0x7d, 0x74, 0x59, 0x37, 0x9c, 0xa1, 0xd6, 0xed, 0x06, 0x8b, 0xb7, 0x2b, 0x43, - 0x6d, 0x9a, 0x15, 0x2d, 0xda, 0x1b, 0xbd, 0x9c, 0x4b, 0xe4, 0xfe, 0xcb, 0x22, 0xca, 0x13, 0x5a, - 0x44, 0xda, 0xfb, 0x45, 0x34, 0x87, 0x33, 0xfb, 0xda, 0x7a, 0xcc, 0xd5, 0x4e, 0xb4, 0x45, 0xf9, - 0x6b, 0xc4, 0x9b, 0xd9, 0x77, 0x50, 0x42, 0x0d, 0xa6, 0x9d, 0x4f, 0x0d, 0xcd, 0xb6, 0x9b, 0x43, - 0x50, 0xb4, 0xc6, 0x69, 0x35, 0x7d, 0x61, 0x70, 0xcb, 0x17, 0xa5, 0x73, 0x69, 0xb0, 0x33, 0x90, - 0x26, 0x64, 0xa7, 0x4c, 0x3c, 0x64, 0x51, 0xc2, 0x4a, 0xaf, 0xac, 0xa6, 0x06, 0xc9, 0xb6, 0x69, - 0x97, 0xec, 0x1e, 0xcf, 0x96, 0x8b, 0x1c, 0x3a, 0x93, 0x94, 0x6d, 0x53, 0xfd, 0xb2, 0x88, 0xc6, - 0x67, 0x1a, 0x23, 0xdb, 0xfc, 0x0b, 0xa0, 0x9b, 0xfe, 0x30, 0xd6, 0x3f, 0x05, 0xda, 0x1e, 0xc4, - 0xd2, 0xf5, 0x84, 0x61, 0xd4, 0x53, 0x4f, 0x34, 0x92, 0x76, 0x06, 0xd2, 0xf8, 0x70, 0xd1, 0x92, - 0xd5, 0xe3, 0x69, 0xb7, 0x27, 0x56, 0x67, 0x48, 0xdd, 0x1e, 0xee, 0x80, 0x8f, 0x72, 0x30, 0xaa, - 0xea, 0xa5, 0xfb, 0x20, 0xcd, 0xb2, 0x70, 0xdb, 0x33, 0x4c, 0x14, 0xe4, 0x3d, 0xca, 0x39, 0x60, - 0x62, 0x24, 0xab, 0xa3, 0x4f, 0x1e, 0xf6, 0xc5, 0x69, 0xa8, 0x41, 0x23, 0xb9, 0x4d, 0xa3, 0x23, - 0x41, 0xab, 0xa9, 0x75, 0x6d, 0xc7, 0xfe, 0x86, 0xeb, 0x54, 0x78, 0x77, 0x30, 0x8f, 0x6e, 0xdb, - 0x1b, 0x6a, 0xca, 0x4b, 0xe1, 0xba, 0x6d, 0x97, 0x21, 0xa6, 0xed, 0x4b, 0xf1, 0x1b, 0x3d, 0x54, - 0xe7, 0x9a, 0x2d, 0x87, 0xc7, 0x1b, 0xf3, 0xa1, 0xaf, 0x6b, 0x18, 0x35, 0x9f, 0xe5, 0x62, 0xd0, - 0x37, 0x8c, 0x28, 0x87, 0xd6, 0x57, 0x77, 0x9a, 0x53, 0x37, 0x81, 0x45, 0xc1, 0xa2, 0x32, 0xca, - 0x63, 0x16, 0x52, 0x01, 0x3b, 0x24, 0xf1, 0xd5, 0x9d, 0xdf, 0x03, 0x5d, 0xe2, 0xda, 0x9f, 0x7e, - 0x3a, 0x8e, 0x8c, 0xfa, 0x1b, 0x4b, 0xfb, 0xcb, 0xcf, 0xad, 0x01, 0x24, 0xbe, 0xc4, 0x55, 0x80, - 0x3e, 0x0a, 0x4a, 0xd1, 0x0f, 0x3d, 0xa1, 0x6c, 0xd4, 0x97, 0xf9, 0xd3, 0x2e, 0x68, 0xdf, 0x33, - 0xff, 0x58, 0x49, 0x7c, 0xcc, 0x2e, 0x5c, 0xfb, 0x9e, 0x4e, 0xcd, 0x24, 0xe2, 0xdb, 0xf7, 0xba, - 0x28, 0x4a, 0x1c, 0xda, 0xc9, 0xf5, 0xba, 0xc7, 0xbf, 0x9d, 0x53, 0x6f, 0xf4, 0x72, 0x68, 0xdd, - 0xdf, 0x4f, 0x57, 0xd6, 0xc9, 0xd9, 0x51, 0xd0, 0xfd, 0x74, 0xe5, 0x3e, 0x38, 0x6f, 0x0f, 0x62, - 0xf1, 0x05, 0x71, 0x24, 0xd8, 0x4b, 0x75, 0x73, 0xeb, 0x28, 0x6e, 0x63, 0xef, 0x5c, 0xdd, 0x6e, - 0xf6, 0x83, 0xe6, 0x95, 0xff, 0x69, 0xc9, 0x63, 0x56, 0x55, 0x7b, 0xf5, 0xb0, 0xcd, 0xd0, 0x2b, - 0x3f, 0xd8, 0xc6, 0xd2, 0x48, 0xbc, 0xf2, 0x77, 0x20, 0x88, 0xfd, 0x30, 0x78, 0xf5, 0x11, 0x9f, - 0x4d, 0x59, 0x9e, 0x84, 0xef, 0xda, 0xef, 0xea, 0x7c, 0x36, 0xae, 0x7f, 0xd6, 0xf1, 0xd6, 0x28, - 0xb3, 0x79, 0x04, 0xdd, 0x67, 0xa7, 0xcb, 0xd9, 0xf4, 0x22, 0x8f, 0xd1, 0x23, 0x68, 0xf3, 0xfb, - 0xb8, 0x36, 0x10, 0x8f, 0xa0, 0x16, 0x60, 0x5e, 0x01, 0x9b, 0x9f, 0x4f, 0xe6, 0x25, 0xeb, 0xbc, - 0x7f, 0x4b, 0x07, 0x69, 0x22, 0x5e, 0x01, 0x11, 0x82, 0x4a, 0x79, 0x52, 0x32, 0xe6, 0x2c, 0x65, - 0x6d, 0xf0, 0x96, 0x12, 0x00, 0xb3, 0x09, 0x36, 0x3f, 0xcb, 0xd7, 0xc6, 0x47, 0x3c, 0x8e, 0xb2, - 0x4a, 0xf0, 0x12, 0xdf, 0xd7, 0x48, 0x57, 0x0c, 0x11, 0x9b, 0x20, 0x09, 0xa3, 0x3a, 0x3c, 0x4d, - 0xf3, 0x99, 0xb3, 0x0e, 0xb5, 0xc1, 0x5b, 0x07, 0x00, 0xcc, 0xc4, 0x39, 0x62, 0xa2, 0x4c, 0xe3, - 0xaa, 0x3e, 0x98, 0x47, 0x65, 0xb4, 0x60, 0x82, 0x95, 0xf8, 0x9f, 0x39, 0x00, 0x32, 0xb6, 0x18, - 0x62, 0xe2, 0x50, 0x2c, 0x08, 0xfe, 0x34, 0x78, 0xb3, 0x9e, 0x51, 0x2c, 0x87, 0xbf, 0xf9, 0x70, - 0xbf, 0xf9, 0x73, 0x28, 0xe1, 0x5b, 0x3a, 0xc6, 0x54, 0x94, 0x2c, 0x5a, 0xa8, 0xd8, 0x6f, 0xe8, - 0xdf, 0x1b, 0xf0, 0xf6, 0xe8, 0xde, 0x7b, 0xff, 0xfe, 0x62, 0x6d, 0xf4, 0xf9, 0x17, 0x6b, 0xa3, - 0xff, 0x7e, 0xb1, 0x36, 0xfa, 0xfb, 0x97, 0x6b, 0xaf, 0x7c, 0xfe, 0xe5, 0xda, 0x2b, 0xff, 0xf9, - 0x72, 0xed, 0x95, 0x4f, 0x5f, 0x85, 0x3f, 0xcb, 0x72, 0xfa, 0x95, 0xe6, 0x8f, 0xab, 0xdc, 0xfd, - 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0xa5, 0xc1, 0xd7, 0xba, 0x45, 0x00, 0x00, + 0x20, 0x90, 0x10, 0x08, 0x44, 0x85, 0x04, 0x12, 0x4f, 0x88, 0x7f, 0x88, 0xc7, 0x3e, 0xf2, 0x88, + 0xda, 0x7f, 0x04, 0xed, 0xce, 0x99, 0x99, 0x9d, 0xb3, 0x73, 0x66, 0xd7, 0x3c, 0x15, 0xee, 0xf9, + 0x9c, 0xf3, 0x9d, 0xdf, 0x73, 0x66, 0x66, 0xe3, 0xe0, 0x6a, 0x71, 0xba, 0x5b, 0x94, 0x5c, 0xf0, + 0x6a, 0xb7, 0x62, 0xe5, 0x2a, 0x8d, 0x99, 0xfa, 0xef, 0xb8, 0xf9, 0x39, 0x7c, 0x35, 0xca, 0x2f, + 0xc4, 0x45, 0xc1, 0xae, 0xbc, 0x6d, 0xc8, 0x98, 0x2f, 0x16, 0x51, 0x9e, 0x54, 0x12, 0xb9, 0xf2, + 0x96, 0xb1, 0xb0, 0x15, 0xcb, 0x05, 0xfc, 0x7e, 0xe7, 0x9f, 0x9f, 0x8d, 0x82, 0x37, 0xf6, 0xb2, + 0x94, 0xe5, 0x62, 0x0f, 0x3c, 0xc2, 0x4f, 0x83, 0xd7, 0x27, 0x45, 0xf1, 0x80, 0x89, 0x4f, 0x58, + 0x59, 0xa5, 0x3c, 0x0f, 0xdf, 0x1f, 0x83, 0xc0, 0xf8, 0xb8, 0x88, 0xc7, 0x93, 0xa2, 0x18, 0x1b, + 0xe3, 0xf8, 0x98, 0xfd, 0x6a, 0xc9, 0x2a, 0x71, 0xe5, 0x03, 0x3f, 0x54, 0x15, 0x3c, 0xaf, 0x58, + 0xf8, 0x22, 0xf8, 0xd6, 0xa4, 0x28, 0xa6, 0x4c, 0xec, 0xb3, 0xba, 0x02, 0x53, 0x11, 0x09, 0x16, + 0x6e, 0x74, 0x5c, 0x6d, 0x40, 0x6b, 0x6c, 0xf6, 0x83, 0xa0, 0x73, 0x12, 0xbc, 0x56, 0xeb, 0xcc, + 0x97, 0x22, 0xe1, 0xe7, 0x79, 0xf8, 0x5e, 0xd7, 0x11, 0x4c, 0x3a, 0xf6, 0x75, 0x1f, 0x02, 0x51, + 0x9f, 0x07, 0x5f, 0x7f, 0x1e, 0x65, 0x19, 0x13, 0x7b, 0x25, 0xab, 0x0b, 0x6e, 0xfb, 0x48, 0xd3, + 0x58, 0xda, 0x74, 0xdc, 0xf7, 0xbd, 0x0c, 0x04, 0xfe, 0x34, 0x78, 0x5d, 0x5a, 0x8e, 0x59, 0xcc, + 0x57, 0xac, 0x0c, 0x9d, 0x5e, 0x60, 0x24, 0x9a, 0xbc, 0x03, 0xe1, 0xd8, 0x7b, 0x3c, 0x5f, 0xb1, + 0x52, 0xb8, 0x63, 0x83, 0xd1, 0x1f, 0xdb, 0x40, 0x10, 0x3b, 0x0b, 0xde, 0x6c, 0x37, 0xc8, 0x94, + 0x55, 0xcd, 0x80, 0xd9, 0xa2, 0xeb, 0x0c, 0x88, 0xd6, 0xb9, 0x39, 0x04, 0x05, 0xb5, 0x34, 0x08, + 0x41, 0x2d, 0xe3, 0x95, 0x16, 0xdb, 0x74, 0x46, 0x68, 0x11, 0x5a, 0x6b, 0x6b, 0x00, 0x09, 0x52, + 0xbf, 0x08, 0xbe, 0xf1, 0x9c, 0x97, 0x67, 0x55, 0x11, 0xc5, 0x0c, 0x3a, 0xfb, 0x86, 0xed, 0xad, + 0xac, 0xb8, 0xbf, 0xd7, 0xfb, 0x30, 0x87, 0xc2, 0x94, 0x65, 0x2c, 0x16, 0xa4, 0x82, 0x34, 0xf7, + 0x2a, 0x68, 0xac, 0xd5, 0x39, 0xca, 0xf8, 0x80, 0x89, 0xbd, 0x65, 0x59, 0xb2, 0x5c, 0xe0, 0xce, + 0xd1, 0xee, 0x06, 0xa1, 0x3a, 0xc7, 0x8d, 0x3a, 0xea, 0xf3, 0x80, 0x89, 0x49, 0x96, 0x91, 0xf5, + 0x91, 0xe6, 0xde, 0xfa, 0x68, 0x0c, 0x14, 0x7e, 0x17, 0x7c, 0xaf, 0xd5, 0x62, 0xe2, 0xb0, 0x7a, + 0x98, 0xce, 0xe6, 0x59, 0x3a, 0x9b, 0x0b, 0x96, 0x84, 0xbb, 0x64, 0xa3, 0xd8, 0xa0, 0x56, 0xbd, + 0x3d, 0xdc, 0xc1, 0x51, 0xc3, 0xfb, 0x2f, 0x0b, 0x5e, 0xd2, 0x3d, 0x26, 0xcd, 0xbd, 0x35, 0xd4, + 0x18, 0x28, 0xfc, 0x3c, 0x78, 0x63, 0x12, 0xc7, 0x7c, 0x99, 0xeb, 0x75, 0x00, 0xad, 0xaa, 0xd2, + 0xd8, 0x59, 0x08, 0x6e, 0xf4, 0x50, 0x66, 0x25, 0x00, 0x1b, 0x0c, 0xe9, 0xf7, 0x9d, 0x7e, 0x68, + 0x40, 0x7f, 0xe0, 0x87, 0x3a, 0xb1, 0xf7, 0x59, 0xc6, 0xc8, 0xd8, 0xd2, 0xd8, 0x13, 0x5b, 0x43, + 0x9d, 0xd8, 0x30, 0x51, 0xdc, 0xb1, 0xd1, 0x34, 0xf9, 0xc0, 0x0f, 0xb5, 0x36, 0x0a, 0x88, 0x2d, + 0x78, 0x81, 0x37, 0x0a, 0xe5, 0x24, 0x78, 0x41, 0x6d, 0x14, 0x36, 0xd2, 0x89, 0x7a, 0xc4, 0x57, + 0x8c, 0x88, 0x5a, 0x9b, 0x7a, 0xa2, 0x02, 0x62, 0x26, 0xb4, 0xea, 0x3f, 0x9e, 0xbf, 0x48, 0x67, + 0xcf, 0x8a, 0xa4, 0xee, 0xc5, 0x2d, 0x77, 0x07, 0xb5, 0x10, 0x62, 0x42, 0x13, 0x28, 0xa8, 0xfd, + 0x2c, 0x08, 0x9e, 0x9c, 0xfe, 0x92, 0xc5, 0xe2, 0x49, 0xc1, 0xf2, 0xf0, 0x9a, 0xe5, 0x29, 0x0d, + 0xe3, 0xda, 0xa2, 0x63, 0xbf, 0xe7, 0x21, 0x4c, 0xb3, 0xc8, 0xdf, 0x9b, 0x45, 0x37, 0x74, 0x7a, + 0x34, 0x26, 0xa2, 0x59, 0x10, 0x82, 0x0b, 0x3a, 0x9d, 0xf3, 0x73, 0x77, 0x41, 0x6b, 0x8b, 0xbf, + 0xa0, 0x40, 0x98, 0x8d, 0x1e, 0x0a, 0xea, 0xda, 0xe8, 0x55, 0x31, 0x7c, 0x1b, 0x3d, 0x66, 0x20, + 0x30, 0x0f, 0xbe, 0xdd, 0x0e, 0x7c, 0x8f, 0xf3, 0xb3, 0x45, 0x54, 0x9e, 0x85, 0x37, 0x69, 0x67, + 0xc5, 0x68, 0xa1, 0xed, 0x41, 0xac, 0x59, 0xb4, 0xda, 0x82, 0x53, 0x86, 0x17, 0x2d, 0xcb, 0x7f, + 0xca, 0xa8, 0x45, 0xcb, 0x81, 0xe1, 0x4e, 0x7d, 0x50, 0x46, 0xc5, 0xdc, 0xdd, 0xa9, 0x8d, 0xc9, + 0xdf, 0xa9, 0x0a, 0xc1, 0x3d, 0x30, 0x65, 0x51, 0x19, 0xcf, 0xdd, 0x3d, 0x20, 0x6d, 0xfe, 0x1e, + 0xd0, 0x0c, 0x04, 0x2e, 0x83, 0xef, 0xb4, 0x03, 0x4f, 0x97, 0xa7, 0x55, 0x5c, 0xa6, 0xa7, 0x2c, + 0xdc, 0xa6, 0xbd, 0x35, 0xa4, 0xa5, 0x6e, 0x0d, 0x83, 0x4d, 0xe2, 0x02, 0x9a, 0xca, 0x76, 0x98, + 0x54, 0x28, 0x71, 0x51, 0x31, 0x5a, 0x04, 0x91, 0xb8, 0xb8, 0x49, 0x5c, 0xbd, 0x07, 0x25, 0x5f, + 0x16, 0x55, 0x4f, 0xf5, 0x10, 0xe4, 0xaf, 0x5e, 0x17, 0x06, 0xcd, 0x97, 0xc1, 0x77, 0xdb, 0x4d, + 0xfa, 0x2c, 0xaf, 0xb4, 0xea, 0x0e, 0xdd, 0x4e, 0x2d, 0x4c, 0xeb, 0x8e, 0x87, 0xe2, 0xa0, 0x1c, + 0x07, 0xdf, 0x54, 0xca, 0x62, 0x9f, 0x89, 0x28, 0xcd, 0xaa, 0x70, 0xdd, 0x1d, 0x43, 0xd9, 0xb5, + 0xd6, 0x46, 0x2f, 0x87, 0xa7, 0xd0, 0xfe, 0xb2, 0xc8, 0xd2, 0xb8, 0x9b, 0x0b, 0x82, 0xaf, 0x36, + 0xfb, 0xa7, 0x50, 0x1b, 0x33, 0x0b, 0xbb, 0xae, 0x86, 0xfc, 0x1f, 0x27, 0x17, 0x05, 0x5e, 0xd8, + 0x4d, 0x09, 0x0d, 0x42, 0x2c, 0xec, 0x04, 0x8a, 0xeb, 0x33, 0x65, 0xe2, 0x51, 0x74, 0xc1, 0x97, + 0xc4, 0x92, 0xa0, 0xcd, 0xfe, 0xfa, 0xb4, 0x31, 0x50, 0x58, 0x06, 0x6f, 0x69, 0x85, 0xc3, 0x5c, + 0xb0, 0x32, 0x8f, 0xb2, 0x83, 0x2c, 0x9a, 0x55, 0x21, 0x31, 0x6f, 0x6c, 0x4a, 0xeb, 0xed, 0x0c, + 0xa4, 0x1d, 0xcd, 0x78, 0x58, 0x1d, 0x44, 0x2b, 0x5e, 0xa6, 0x82, 0x6e, 0x46, 0x83, 0xf4, 0x36, + 0xa3, 0x85, 0x3a, 0xd5, 0x26, 0x65, 0x3c, 0x4f, 0x57, 0x2c, 0xf1, 0xa8, 0x29, 0x64, 0x80, 0x5a, + 0x0b, 0xc5, 0x6a, 0x8f, 0xd2, 0xaa, 0x35, 0x10, 0x9d, 0x6a, 0x16, 0xe2, 0x57, 0xc3, 0x28, 0x9e, + 0x57, 0x8d, 0x5d, 0x26, 0x74, 0xeb, 0xa4, 0xbf, 0x9d, 0xd3, 0x6d, 0xf4, 0x72, 0x78, 0xd9, 0xa8, + 0x8d, 0x76, 0x23, 0xee, 0x50, 0x31, 0xdc, 0x0d, 0x39, 0x1e, 0x8a, 0x93, 0xca, 0x7a, 0xb0, 0xf8, + 0x95, 0x3b, 0x03, 0x66, 0x3c, 0x14, 0xc7, 0xdd, 0x38, 0x29, 0x8a, 0xec, 0xe2, 0x84, 0x2d, 0x8a, + 0x8c, 0xec, 0x46, 0x0b, 0xf1, 0x77, 0x23, 0x46, 0xf1, 0xd6, 0x7c, 0xc2, 0xeb, 0x8d, 0xdf, 0xb9, + 0x35, 0x37, 0x26, 0xff, 0xd6, 0xac, 0x10, 0xbc, 0xc5, 0x4c, 0x92, 0xe4, 0x79, 0x2a, 0xe6, 0xf2, + 0xff, 0x1c, 0x26, 0xee, 0x2d, 0x06, 0x41, 0xfe, 0x2d, 0xa6, 0x0b, 0x9b, 0x7b, 0x23, 0x95, 0xe3, + 0x45, 0x25, 0xbb, 0x77, 0xf1, 0x28, 0xcd, 0xcf, 0x42, 0xf7, 0x0a, 0x6e, 0x00, 0xe2, 0xde, 0xc8, + 0x09, 0xe2, 0xba, 0xd5, 0x89, 0xeb, 0xbd, 0x92, 0x45, 0x49, 0x5c, 0x2e, 0x17, 0xa7, 0x95, 0xbb, + 0x6e, 0x08, 0xf2, 0xd7, 0xad, 0x0b, 0xe3, 0x9c, 0x70, 0xca, 0x44, 0x5b, 0x92, 0x5a, 0x1e, 0x5c, + 0x8a, 0xdb, 0x83, 0x58, 0x9c, 0x30, 0x3f, 0xcb, 0x13, 0xee, 0x4e, 0x98, 0x6b, 0x8b, 0x3f, 0x61, + 0x06, 0x02, 0x87, 0x3c, 0x66, 0x54, 0xc8, 0xda, 0xe2, 0x0f, 0x09, 0x04, 0x6e, 0x96, 0xc3, 0x45, + 0x7d, 0x4a, 0x3e, 0x8a, 0xca, 0xb3, 0xe6, 0x2e, 0xcf, 0xd9, 0x2c, 0x36, 0xe3, 0x6f, 0x96, 0x0e, + 0xeb, 0x5a, 0xf4, 0xe0, 0x80, 0x4f, 0x2e, 0x7a, 0xe8, 0x84, 0xbf, 0xd1, 0xcb, 0xe1, 0x05, 0x40, + 0xa5, 0xea, 0x07, 0x4c, 0xc4, 0x73, 0xf7, 0x02, 0x60, 0x21, 0xfe, 0x05, 0x00, 0xa3, 0xb8, 0x4a, + 0x27, 0x5c, 0x1f, 0x35, 0xd6, 0xdd, 0x53, 0xbc, 0x73, 0xcc, 0xd8, 0xe8, 0xe5, 0x70, 0xaa, 0x2e, + 0x1b, 0xd6, 0x9d, 0xaa, 0x4b, 0x9b, 0x3f, 0x55, 0xd7, 0x0c, 0x2e, 0xbd, 0x34, 0xd4, 0xcd, 0xe9, + 0x2e, 0xbd, 0xb1, 0xfb, 0x4b, 0x6f, 0x71, 0xee, 0x13, 0xd9, 0x31, 0xcb, 0x22, 0x91, 0xf2, 0xdc, + 0x77, 0x22, 0x53, 0xcc, 0x90, 0x13, 0x59, 0x8b, 0x05, 0xc1, 0xdf, 0x8f, 0x82, 0x2b, 0x2e, 0xc5, + 0x27, 0x45, 0xa3, 0x7b, 0xbb, 0x3f, 0x96, 0x24, 0xb5, 0xfa, 0x87, 0x97, 0xf0, 0x80, 0x32, 0xfc, + 0x26, 0x78, 0x5b, 0x99, 0xea, 0xd6, 0x38, 0x66, 0x0b, 0xbe, 0x62, 0x50, 0x00, 0x7b, 0x4b, 0xd3, + 0xe5, 0xc7, 0x9c, 0x96, 0xdf, 0x1d, 0xcc, 0x9b, 0xfc, 0xd3, 0x2e, 0x57, 0x85, 0xf2, 0x4f, 0x1d, + 0x03, 0xcc, 0x44, 0xfe, 0xe9, 0xc0, 0xf0, 0x6e, 0xa1, 0x90, 0x49, 0x92, 0x38, 0x77, 0x0b, 0x1d, + 0x62, 0x92, 0x24, 0xde, 0xdd, 0x02, 0x81, 0x78, 0xec, 0x28, 0x33, 0xa4, 0x4a, 0x37, 0x7d, 0x11, + 0x50, 0xba, 0xb4, 0x3d, 0x88, 0x35, 0x57, 0xa0, 0x9d, 0x8a, 0x1d, 0xb0, 0x48, 0x2c, 0xcb, 0xce, + 0x15, 0x68, 0xb7, 0xdc, 0x0a, 0x24, 0xae, 0x40, 0xbd, 0x0e, 0xa0, 0xff, 0xe7, 0x51, 0xf0, 0x8e, + 0xcd, 0xc9, 0x2e, 0xd6, 0x65, 0xb8, 0xe3, 0x0b, 0x69, 0xb3, 0xba, 0x18, 0x77, 0x2f, 0xe5, 0x03, + 0x25, 0xf9, 0xe3, 0x28, 0xf8, 0xbe, 0x8d, 0xd6, 0x03, 0x6e, 0xb2, 0x8a, 0xd2, 0x2c, 0x3a, 0xcd, + 0x58, 0xf8, 0xa1, 0x2f, 0xa8, 0x85, 0xea, 0x72, 0xdc, 0xb9, 0x8c, 0x0b, 0x3e, 0xe9, 0xc8, 0xf9, + 0xd6, 0x3a, 0xbc, 0xdd, 0xa2, 0x67, 0xa5, 0xe3, 0xfc, 0xb6, 0x33, 0x90, 0x06, 0xd9, 0x73, 0x25, + 0x5b, 0xff, 0xdc, 0x6e, 0x00, 0x67, 0xfe, 0x0a, 0xbe, 0xad, 0x9a, 0x78, 0xf3, 0x57, 0x27, 0x0e, + 0xc2, 0x42, 0xe5, 0x47, 0x6d, 0xe1, 0x7a, 0x76, 0xdd, 0xea, 0x0d, 0xd4, 0x9e, 0x62, 0x3b, 0x03, + 0x69, 0x50, 0xfd, 0x6d, 0xf0, 0x76, 0x57, 0x55, 0x8e, 0x0c, 0xe7, 0xa8, 0xb7, 0x43, 0x49, 0xd0, + 0x3b, 0xea, 0x09, 0x07, 0x73, 0x7d, 0xf3, 0x30, 0xad, 0x04, 0x2f, 0x2f, 0xa6, 0x73, 0x7e, 0xae, + 0x5e, 0x45, 0xed, 0x65, 0x02, 0x80, 0x71, 0x8b, 0x20, 0xae, 0x6f, 0xdc, 0x64, 0x47, 0xca, 0xbc, + 0x9e, 0x56, 0x84, 0x54, 0x8b, 0xe8, 0x91, 0xb2, 0x49, 0xb3, 0x48, 0xaa, 0x5a, 0x99, 0xa7, 0xde, + 0x0d, 0x77, 0x51, 0xbb, 0xcf, 0xbd, 0x9b, 0xfd, 0xa0, 0x39, 0x84, 0x1c, 0xa4, 0x19, 0x7b, 0xf2, + 0xe2, 0x45, 0xc6, 0xa3, 0x04, 0x1d, 0x42, 0x6a, 0xcb, 0x18, 0x4c, 0xc4, 0x21, 0x04, 0x21, 0x66, + 0x13, 0xa9, 0x0d, 0xf5, 0xe8, 0x54, 0x91, 0x6f, 0x74, 0xdd, 0x5a, 0x66, 0x62, 0x13, 0x71, 0x60, + 0x26, 0xa5, 0xad, 0x8d, 0xcf, 0x8a, 0x26, 0xf8, 0xb5, 0xae, 0x97, 0xb4, 0x10, 0x29, 0xad, 0x4d, + 0x98, 0x4c, 0xa9, 0xfe, 0x7d, 0x9f, 0x9f, 0xe7, 0x4d, 0x50, 0x47, 0x45, 0x95, 0x8d, 0xc8, 0x94, + 0x30, 0x03, 0x81, 0x3f, 0x0e, 0xbe, 0xda, 0x04, 0x2e, 0x79, 0x11, 0xae, 0x39, 0x1c, 0xca, 0xd6, + 0xfb, 0xc5, 0x55, 0xd2, 0x6e, 0xce, 0x40, 0x8f, 0xa3, 0x55, 0x3a, 0xd3, 0x8b, 0x8a, 0x9c, 0x23, + 0xf8, 0x0c, 0x64, 0x98, 0x71, 0x0b, 0x22, 0xce, 0x40, 0x24, 0x0c, 0x9a, 0xff, 0x18, 0x05, 0xd7, + 0x0c, 0xf3, 0x40, 0x5d, 0x5c, 0x1d, 0xe6, 0x2f, 0x78, 0x7d, 0x20, 0xac, 0x0f, 0x69, 0x55, 0xf8, + 0x11, 0x15, 0xd2, 0xcd, 0xeb, 0xa2, 0xfc, 0xe8, 0xd2, 0x7e, 0x26, 0x4d, 0x52, 0x87, 0x6a, 0xb9, + 0x16, 0x1f, 0x94, 0x7c, 0x21, 0x3d, 0x50, 0x9a, 0xa4, 0xcf, 0xde, 0x98, 0x23, 0xd2, 0x24, 0x1f, + 0xdf, 0xda, 0x6b, 0x29, 0xf5, 0x66, 0x87, 0xb9, 0x33, 0x2c, 0xa2, 0xb5, 0xcf, 0xdc, 0xbd, 0x94, + 0x8f, 0x79, 0x7f, 0xd3, 0x05, 0xc9, 0x78, 0x8e, 0xdf, 0xf6, 0x4c, 0x94, 0xda, 0x48, 0xbc, 0xbf, + 0x75, 0x20, 0xb3, 0x0a, 0x29, 0x93, 0x3c, 0x2a, 0x4d, 0xb2, 0x0c, 0xad, 0x42, 0xda, 0x55, 0x03, + 0xc4, 0x2a, 0xe4, 0x04, 0x41, 0xe7, 0x38, 0x78, 0xad, 0xee, 0xdc, 0xa7, 0x25, 0x5b, 0xa5, 0x0c, + 0xbf, 0x12, 0xb5, 0x2c, 0xc4, 0x74, 0xb6, 0x09, 0xf3, 0x5c, 0xfb, 0x2c, 0xaf, 0x8a, 0x2c, 0xaa, + 0xe6, 0xf0, 0x4a, 0x61, 0xd7, 0x59, 0x19, 0xf1, 0x3b, 0xc5, 0x8d, 0x1e, 0xca, 0x1c, 0x7f, 0x94, + 0x4d, 0xaf, 0x18, 0xeb, 0x6e, 0xd7, 0xce, 0xaa, 0xb1, 0xd1, 0xcb, 0x99, 0xd5, 0xf9, 0x5e, 0xc6, + 0xe3, 0x33, 0x58, 0xe6, 0xec, 0x5a, 0x37, 0x16, 0xbc, 0xce, 0x5d, 0xf7, 0x21, 0x66, 0xa1, 0x6b, + 0x0c, 0xc7, 0xac, 0xc8, 0xa2, 0x18, 0xbf, 0x9f, 0x49, 0x1f, 0xb0, 0x11, 0x0b, 0x1d, 0x66, 0x50, + 0x71, 0xe1, 0x5d, 0xce, 0x55, 0x5c, 0xf4, 0x2c, 0x77, 0xdd, 0x87, 0x98, 0xa5, 0xbe, 0x31, 0x4c, + 0x8b, 0x2c, 0x15, 0x68, 0x6c, 0x48, 0x8f, 0xc6, 0x42, 0x8c, 0x0d, 0x9b, 0x40, 0x21, 0x8f, 0x58, + 0x39, 0x63, 0xce, 0x90, 0x8d, 0xc5, 0x1b, 0x52, 0x11, 0x10, 0xf2, 0x71, 0xf0, 0x35, 0x59, 0x77, + 0x5e, 0x5c, 0x84, 0x57, 0x5d, 0xd5, 0xe2, 0xc5, 0x85, 0x0e, 0x78, 0x8d, 0x06, 0x50, 0x11, 0x9f, + 0x46, 0x95, 0x70, 0x17, 0xb1, 0xb1, 0x78, 0x8b, 0xa8, 0x08, 0xb3, 0x0f, 0xc9, 0x22, 0x2e, 0x05, + 0xda, 0x87, 0xa0, 0x00, 0xad, 0xc7, 0x84, 0xab, 0xa4, 0xdd, 0x4c, 0x2f, 0xd9, 0x2b, 0x4c, 0x1c, + 0xa4, 0x2c, 0x4b, 0x2a, 0x34, 0xbd, 0xa0, 0xdd, 0x95, 0x95, 0x98, 0x5e, 0x5d, 0x0a, 0x0d, 0x25, + 0xb8, 0xe9, 0x71, 0xd5, 0x0e, 0x5d, 0xf2, 0x5c, 0xf7, 0x21, 0x26, 0x2f, 0x69, 0x0c, 0xad, 0x8b, + 0x73, 0x57, 0x79, 0x1c, 0xf7, 0xe6, 0xeb, 0x7d, 0x18, 0x28, 0x7c, 0x36, 0x0a, 0xde, 0xd5, 0x12, + 0x47, 0x7c, 0xc5, 0x4e, 0xf8, 0xfd, 0x97, 0x69, 0x25, 0xd2, 0x7c, 0x06, 0x5b, 0xd3, 0x5d, 0x22, + 0x92, 0x0b, 0xd6, 0xf2, 0x3f, 0xb8, 0x9c, 0x93, 0xd9, 0x21, 0x51, 0x59, 0x1e, 0xb3, 0x73, 0xe7, + 0x0e, 0x89, 0x23, 0x6a, 0x8e, 0xd8, 0x21, 0x7d, 0xbc, 0x39, 0x0d, 0x6b, 0x71, 0xf8, 0x34, 0xed, + 0x84, 0xab, 0x64, 0x85, 0x8a, 0x86, 0x41, 0xe2, 0x5c, 0xe0, 0x75, 0x30, 0xc9, 0xba, 0xd6, 0x37, + 0x83, 0x74, 0x93, 0x88, 0xd3, 0x1d, 0xa8, 0x5b, 0x03, 0x48, 0x87, 0x94, 0x79, 0xfd, 0xa1, 0xa4, + 0xba, 0x8f, 0x3f, 0x5b, 0x03, 0xc8, 0xd6, 0xc9, 0xba, 0x5d, 0xad, 0x7b, 0x51, 0x7c, 0x36, 0x2b, + 0xf9, 0x32, 0x4f, 0xf6, 0x78, 0xc6, 0x4b, 0x74, 0xb2, 0xb6, 0x4a, 0x8d, 0x50, 0xe2, 0x64, 0xdd, + 0xe3, 0x62, 0x12, 0x83, 0x76, 0x29, 0x26, 0x59, 0x3a, 0xc3, 0xc7, 0x13, 0x2b, 0x50, 0x03, 0x10, + 0x89, 0x81, 0x13, 0x74, 0x0c, 0x22, 0x79, 0x7c, 0x11, 0x69, 0x1c, 0x65, 0x52, 0x6f, 0x97, 0x0e, + 0x63, 0x81, 0xbd, 0x83, 0xc8, 0xe1, 0xe0, 0xa8, 0xe7, 0xc9, 0xb2, 0xcc, 0x0f, 0x73, 0xc1, 0xc9, + 0x7a, 0x2a, 0xa0, 0xb7, 0x9e, 0x2d, 0xd0, 0x64, 0x13, 0x8d, 0xf9, 0x84, 0xbd, 0xac, 0x4b, 0x53, + 0xff, 0x27, 0x74, 0x2c, 0x39, 0xf5, 0xef, 0x63, 0xb0, 0x13, 0xd9, 0x84, 0x8b, 0x43, 0x95, 0x01, + 0x11, 0x39, 0x60, 0x3c, 0xde, 0xf6, 0x30, 0xd9, 0xec, 0x07, 0xdd, 0x3a, 0x53, 0x71, 0x91, 0x31, + 0x9f, 0x4e, 0x03, 0x0c, 0xd1, 0x51, 0xa0, 0xb9, 0xad, 0xb7, 0xea, 0x33, 0x67, 0xf1, 0x59, 0xe7, + 0x8d, 0xd7, 0x2e, 0xa8, 0x44, 0x88, 0xdb, 0x7a, 0x02, 0x75, 0x77, 0xd1, 0x61, 0xcc, 0x73, 0x5f, + 0x17, 0xd5, 0xf6, 0x21, 0x5d, 0x04, 0x9c, 0x39, 0xdd, 0x69, 0x2b, 0x8c, 0x4c, 0xd9, 0x4d, 0xdb, + 0x44, 0x84, 0x36, 0x44, 0x9c, 0xee, 0x48, 0xd8, 0xdc, 0x93, 0x62, 0xcd, 0xa3, 0xee, 0x57, 0x4f, + 0x9d, 0x28, 0x47, 0xf4, 0x57, 0x4f, 0x14, 0x4b, 0x57, 0x52, 0x8e, 0x91, 0x9e, 0x28, 0xf6, 0x38, + 0xb9, 0x35, 0x0c, 0x36, 0x8f, 0xca, 0x96, 0xe6, 0x5e, 0xc6, 0xa2, 0x52, 0xaa, 0xee, 0x78, 0x02, + 0x19, 0x8c, 0xb8, 0x94, 0xf3, 0xe0, 0x68, 0x09, 0xb3, 0x94, 0xf7, 0x78, 0x2e, 0x58, 0x2e, 0x5c, + 0x4b, 0x98, 0x1d, 0x0c, 0x40, 0xdf, 0x12, 0x46, 0x39, 0xa0, 0x71, 0x7b, 0x90, 0x66, 0x6c, 0xca, + 0xc4, 0xe3, 0x68, 0xc1, 0x5c, 0xe3, 0xb6, 0xb9, 0x6a, 0x00, 0xbb, 0x6f, 0xdc, 0x22, 0x0e, 0x4d, + 0xf9, 0xc3, 0x45, 0x34, 0xd3, 0x2a, 0x0e, 0xef, 0xc6, 0xde, 0x91, 0xd9, 0xec, 0x07, 0x91, 0xce, + 0x27, 0x69, 0xc2, 0xb8, 0x47, 0xa7, 0xb1, 0x0f, 0xd1, 0xc1, 0x20, 0xca, 0x9c, 0xea, 0xda, 0xca, + 0xf3, 0xc8, 0x24, 0x4f, 0xe0, 0x14, 0x36, 0x26, 0x1a, 0x05, 0x71, 0xbe, 0xcc, 0x89, 0xe0, 0xd1, + 0xfc, 0x50, 0x57, 0x68, 0xbe, 0xf9, 0xa1, 0x6f, 0xc8, 0x86, 0xcc, 0x0f, 0x17, 0x0c, 0x9a, 0xbf, + 0x86, 0xf9, 0xb1, 0x1f, 0x89, 0xa8, 0x3e, 0x47, 0x7f, 0x92, 0xb2, 0x73, 0x38, 0xc6, 0x39, 0xea, + 0xab, 0xa8, 0x71, 0x8d, 0xe1, 0x33, 0xdd, 0xee, 0x60, 0xde, 0xa3, 0x0d, 0xd9, 0x79, 0xaf, 0x36, + 0x4a, 0xd3, 0x77, 0x07, 0xf3, 0x1e, 0x6d, 0xf8, 0x72, 0xb7, 0x57, 0x1b, 0x7d, 0xbe, 0xbb, 0x3b, + 0x98, 0x07, 0xed, 0x3f, 0x8c, 0x82, 0x2b, 0x1d, 0xf1, 0x3a, 0x07, 0x8a, 0x45, 0xba, 0x62, 0xae, + 0x54, 0xce, 0x8e, 0xa7, 0x51, 0x5f, 0x2a, 0x47, 0xbb, 0x40, 0x29, 0xfe, 0x32, 0x0a, 0xde, 0x71, + 0x95, 0xe2, 0x29, 0xaf, 0xd2, 0xe6, 0xc9, 0xf1, 0xee, 0x80, 0xa0, 0x0a, 0xf6, 0x1d, 0x58, 0x7c, + 0x4e, 0xe6, 0xc1, 0xc6, 0x42, 0xeb, 0x71, 0xca, 0x97, 0x65, 0x8c, 0x1f, 0x6c, 0xec, 0x78, 0x9a, + 0x22, 0x5e, 0x30, 0x68, 0xda, 0xbc, 0x60, 0x58, 0x4c, 0xfb, 0xe9, 0xc4, 0xd7, 0xab, 0xce, 0xd7, + 0x93, 0xdb, 0xc3, 0x1d, 0x40, 0xfe, 0x4f, 0x2a, 0xa7, 0xc7, 0xfa, 0x30, 0x09, 0xee, 0x0c, 0x89, + 0x88, 0x26, 0xc2, 0xdd, 0x4b, 0xf9, 0x40, 0x41, 0xfe, 0x35, 0x0a, 0xae, 0x3b, 0x0b, 0x62, 0xbf, + 0xde, 0xfd, 0x78, 0x48, 0x6c, 0xf7, 0x2b, 0xde, 0x4f, 0xfe, 0x1f, 0x57, 0x28, 0xdd, 0x5f, 0xd5, + 0xd1, 0x5a, 0x79, 0x34, 0x9f, 0xbc, 0x3e, 0x29, 0x13, 0x56, 0xc2, 0x8c, 0xf5, 0x0d, 0x3a, 0x03, + 0xe3, 0x79, 0xfb, 0xc3, 0x4b, 0x7a, 0x41, 0x71, 0xfe, 0x36, 0x0a, 0xd6, 0x2c, 0x18, 0x3e, 0x4d, + 0x6a, 0x95, 0xc7, 0x17, 0xb9, 0x45, 0xe3, 0x02, 0x7d, 0x74, 0x59, 0x37, 0x9c, 0xa1, 0xd6, 0xed, + 0x06, 0x8b, 0xb7, 0x2b, 0x43, 0x6d, 0x9a, 0x15, 0x2d, 0xda, 0x1b, 0xbd, 0x9c, 0x4b, 0xe4, 0xfe, + 0xcb, 0x22, 0xca, 0x13, 0x5a, 0x44, 0xda, 0xfb, 0x45, 0x34, 0x87, 0x33, 0xfb, 0xda, 0x7a, 0xcc, + 0xd5, 0x4e, 0xb4, 0x45, 0xf9, 0x6b, 0xc4, 0x9b, 0xd9, 0x77, 0x50, 0x42, 0x0d, 0xa6, 0x9d, 0x4f, + 0x0d, 0xcd, 0xb6, 0x9b, 0x43, 0x50, 0xb4, 0xc6, 0x69, 0x35, 0x7d, 0x61, 0x70, 0xcb, 0x17, 0xa5, + 0x73, 0x69, 0xb0, 0x33, 0x90, 0x26, 0x64, 0xa7, 0x4c, 0x3c, 0x64, 0x51, 0xc2, 0x4a, 0xaf, 0xac, + 0xa6, 0x06, 0xc9, 0xb6, 0x69, 0x97, 0xec, 0x1e, 0xcf, 0x96, 0x8b, 0x1c, 0x3a, 0x93, 0x94, 0x6d, + 0x53, 0xfd, 0xb2, 0x88, 0xc6, 0x67, 0x1a, 0x23, 0xdb, 0xfc, 0x5b, 0x9f, 0x9b, 0xfe, 0x30, 0xd6, + 0x3f, 0xfa, 0xd9, 0x1e, 0xc4, 0xd2, 0xf5, 0x84, 0x61, 0xd4, 0x53, 0x4f, 0x34, 0x92, 0x76, 0x06, + 0xd2, 0xf8, 0x70, 0xd1, 0x92, 0xd5, 0xe3, 0x69, 0xb7, 0x27, 0x56, 0x67, 0x48, 0xdd, 0x1e, 0xee, + 0x80, 0x8f, 0x72, 0x30, 0xaa, 0xea, 0xa5, 0xfb, 0x20, 0xcd, 0xb2, 0x70, 0xdb, 0x33, 0x4c, 0x14, + 0xe4, 0x3d, 0xca, 0x39, 0x60, 0x62, 0x24, 0xab, 0xa3, 0x4f, 0x1e, 0xf6, 0xc5, 0x69, 0xa8, 0x41, + 0x23, 0xb9, 0x4d, 0xa3, 0x23, 0x41, 0xab, 0xa9, 0x75, 0x6d, 0xc7, 0xfe, 0x86, 0xeb, 0x54, 0x78, + 0x77, 0x30, 0x8f, 0x6e, 0xdb, 0x1b, 0x6a, 0xca, 0x4b, 0xe1, 0xba, 0x6d, 0x97, 0x21, 0xa6, 0xed, + 0x4b, 0xf1, 0x1b, 0x3d, 0x54, 0xe7, 0x9a, 0x2d, 0x87, 0xc7, 0x1b, 0xf3, 0xa1, 0xaf, 0x6b, 0x18, + 0x35, 0x9f, 0xe5, 0x62, 0xd0, 0x37, 0x8c, 0x28, 0x87, 0xd6, 0x57, 0x77, 0x9a, 0x53, 0x37, 0x81, + 0x45, 0xc1, 0xa2, 0x32, 0xca, 0x63, 0x16, 0x52, 0x01, 0x3b, 0x24, 0xf1, 0xd5, 0x9d, 0xdf, 0x03, + 0x5d, 0xe2, 0xda, 0x9f, 0x7e, 0x3a, 0x8e, 0x8c, 0xfa, 0x1b, 0x4b, 0xfb, 0xcb, 0xcf, 0xad, 0x01, + 0x24, 0xbe, 0xc4, 0x55, 0x80, 0x3e, 0x0a, 0x4a, 0xd1, 0x0f, 0x3d, 0xa1, 0x6c, 0xd4, 0x97, 0xf9, + 0xd3, 0x2e, 0x68, 0xdf, 0x53, 0x89, 0xd7, 0x94, 0x89, 0x8f, 0xd9, 0x85, 0x6b, 0xdf, 0xd3, 0xa9, + 0x99, 0x44, 0x7c, 0xfb, 0x5e, 0x17, 0x45, 0x89, 0x43, 0x3b, 0xb9, 0x5e, 0xf7, 0xf8, 0xb7, 0x73, + 0xea, 0x8d, 0x5e, 0x0e, 0xad, 0xfb, 0xfb, 0xe9, 0xca, 0x3a, 0x39, 0x3b, 0x0a, 0xba, 0x9f, 0xae, + 0xdc, 0x07, 0xe7, 0xed, 0x41, 0x2c, 0xbe, 0x20, 0x8e, 0x04, 0x7b, 0xa9, 0x6e, 0x6e, 0x1d, 0xc5, + 0x6d, 0xec, 0x9d, 0xab, 0xdb, 0xcd, 0x7e, 0xd0, 0xbc, 0xf2, 0x3f, 0x2d, 0x79, 0xcc, 0xaa, 0x6a, + 0xaf, 0x1e, 0xb6, 0x19, 0x7a, 0xe5, 0x07, 0xdb, 0x58, 0x1a, 0x89, 0x57, 0xfe, 0x0e, 0x04, 0xb1, + 0x1f, 0x06, 0xaf, 0x3e, 0xe2, 0xb3, 0x29, 0xcb, 0x93, 0xf0, 0x5d, 0xfb, 0x5d, 0x9d, 0xcf, 0xc6, + 0xf5, 0xcf, 0x3a, 0xde, 0x1a, 0x65, 0x36, 0x8f, 0xa0, 0xfb, 0xec, 0x74, 0x39, 0x9b, 0x5e, 0xe4, + 0x31, 0x7a, 0x04, 0x6d, 0x7e, 0x1f, 0xd7, 0x06, 0xe2, 0x11, 0xd4, 0x02, 0xcc, 0x2b, 0x60, 0xf3, + 0xf3, 0xc9, 0xbc, 0x64, 0x9d, 0xf7, 0x6f, 0xe9, 0x20, 0x4d, 0xc4, 0x2b, 0x20, 0x42, 0x50, 0x29, + 0x4f, 0x4a, 0xc6, 0x9c, 0xa5, 0xac, 0x0d, 0xde, 0x52, 0x02, 0x60, 0x36, 0xc1, 0xe6, 0x67, 0xf9, + 0xda, 0xf8, 0x88, 0xc7, 0x51, 0x56, 0x09, 0x5e, 0xe2, 0xfb, 0x1a, 0xe9, 0x8a, 0x21, 0x62, 0x13, + 0x24, 0x61, 0x54, 0x87, 0xa7, 0x69, 0x3e, 0x73, 0xd6, 0xa1, 0x36, 0x78, 0xeb, 0x00, 0x80, 0x99, + 0x38, 0x47, 0x4c, 0x94, 0x69, 0x5c, 0xd5, 0x07, 0xf3, 0xa8, 0x8c, 0x16, 0x4c, 0xb0, 0x12, 0xff, + 0x33, 0x07, 0x40, 0xc6, 0x16, 0x43, 0x4c, 0x1c, 0x8a, 0x05, 0xc1, 0x9f, 0x06, 0x6f, 0xd6, 0x33, + 0x8a, 0xe5, 0xf0, 0xd7, 0x1d, 0xee, 0x37, 0x7f, 0xf8, 0x24, 0x7c, 0x4b, 0xc7, 0x98, 0x8a, 0x92, + 0x45, 0x0b, 0x15, 0xfb, 0x0d, 0xfd, 0x7b, 0x03, 0xde, 0x1e, 0xdd, 0x7b, 0xef, 0xdf, 0x5f, 0xac, + 0x8d, 0x3e, 0xff, 0x62, 0x6d, 0xf4, 0xdf, 0x2f, 0xd6, 0x46, 0x7f, 0xff, 0x72, 0xed, 0x95, 0xcf, + 0xbf, 0x5c, 0x7b, 0xe5, 0x3f, 0x5f, 0xae, 0xbd, 0xf2, 0xe9, 0xab, 0xf0, 0x07, 0x58, 0x4e, 0xbf, + 0xd2, 0xfc, 0x19, 0x95, 0xbb, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x50, 0x37, 0x70, 0xe5, 0xa4, + 0x45, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -282,8 +282,8 @@ type ClientCommandsClient interface { ObjectGraph(ctx context.Context, in *pb.RpcObjectGraphRequest, opts ...grpc.CallOption) (*pb.RpcObjectGraphResponse, error) ObjectSearch(ctx context.Context, in *pb.RpcObjectSearchRequest, opts ...grpc.CallOption) (*pb.RpcObjectSearchResponse, error) ObjectSearchSubscribe(ctx context.Context, in *pb.RpcObjectSearchSubscribeRequest, opts ...grpc.CallOption) (*pb.RpcObjectSearchSubscribeResponse, error) - ObjectRelationSearchDistinct(ctx context.Context, in *pb.RpcObjectRelationSearchDistinctRequest, opts ...grpc.CallOption) (*pb.RpcObjectRelationSearchDistinctResponse, error) ObjectSubscribeIds(ctx context.Context, in *pb.RpcObjectSubscribeIdsRequest, opts ...grpc.CallOption) (*pb.RpcObjectSubscribeIdsResponse, error) + ObjectGroupsSubscribe(ctx context.Context, in *pb.RpcObjectGroupsSubscribeRequest, opts ...grpc.CallOption) (*pb.RpcObjectGroupsSubscribeResponse, error) ObjectSearchUnsubscribe(ctx context.Context, in *pb.RpcObjectSearchUnsubscribeRequest, opts ...grpc.CallOption) (*pb.RpcObjectSearchUnsubscribeResponse, error) ObjectSetDetails(ctx context.Context, in *pb.RpcObjectSetDetailsRequest, opts ...grpc.CallOption) (*pb.RpcObjectSetDetailsResponse, error) ObjectDuplicate(ctx context.Context, in *pb.RpcObjectDuplicateRequest, opts ...grpc.CallOption) (*pb.RpcObjectDuplicateResponse, error) @@ -722,18 +722,18 @@ func (c *clientCommandsClient) ObjectSearchSubscribe(ctx context.Context, in *pb return out, nil } -func (c *clientCommandsClient) ObjectRelationSearchDistinct(ctx context.Context, in *pb.RpcObjectRelationSearchDistinctRequest, opts ...grpc.CallOption) (*pb.RpcObjectRelationSearchDistinctResponse, error) { - out := new(pb.RpcObjectRelationSearchDistinctResponse) - err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectRelationSearchDistinct", in, out, opts...) +func (c *clientCommandsClient) ObjectSubscribeIds(ctx context.Context, in *pb.RpcObjectSubscribeIdsRequest, opts ...grpc.CallOption) (*pb.RpcObjectSubscribeIdsResponse, error) { + out := new(pb.RpcObjectSubscribeIdsResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectSubscribeIds", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *clientCommandsClient) ObjectSubscribeIds(ctx context.Context, in *pb.RpcObjectSubscribeIdsRequest, opts ...grpc.CallOption) (*pb.RpcObjectSubscribeIdsResponse, error) { - out := new(pb.RpcObjectSubscribeIdsResponse) - err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectSubscribeIds", in, out, opts...) +func (c *clientCommandsClient) ObjectGroupsSubscribe(ctx context.Context, in *pb.RpcObjectGroupsSubscribeRequest, opts ...grpc.CallOption) (*pb.RpcObjectGroupsSubscribeResponse, error) { + out := new(pb.RpcObjectGroupsSubscribeResponse) + err := c.cc.Invoke(ctx, "/anytype.ClientCommands/ObjectGroupsSubscribe", in, out, opts...) if err != nil { return nil, err } @@ -2002,8 +2002,8 @@ type ClientCommandsServer interface { ObjectGraph(context.Context, *pb.RpcObjectGraphRequest) *pb.RpcObjectGraphResponse ObjectSearch(context.Context, *pb.RpcObjectSearchRequest) *pb.RpcObjectSearchResponse ObjectSearchSubscribe(context.Context, *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse - ObjectRelationSearchDistinct(context.Context, *pb.RpcObjectRelationSearchDistinctRequest) *pb.RpcObjectRelationSearchDistinctResponse ObjectSubscribeIds(context.Context, *pb.RpcObjectSubscribeIdsRequest) *pb.RpcObjectSubscribeIdsResponse + ObjectGroupsSubscribe(context.Context, *pb.RpcObjectGroupsSubscribeRequest) *pb.RpcObjectGroupsSubscribeResponse ObjectSearchUnsubscribe(context.Context, *pb.RpcObjectSearchUnsubscribeRequest) *pb.RpcObjectSearchUnsubscribeResponse ObjectSetDetails(context.Context, *pb.RpcObjectSetDetailsRequest) *pb.RpcObjectSetDetailsResponse ObjectDuplicate(context.Context, *pb.RpcObjectDuplicateRequest) *pb.RpcObjectDuplicateResponse @@ -2258,10 +2258,10 @@ func (*UnimplementedClientCommandsServer) ObjectSearch(ctx context.Context, req func (*UnimplementedClientCommandsServer) ObjectSearchSubscribe(ctx context.Context, req *pb.RpcObjectSearchSubscribeRequest) *pb.RpcObjectSearchSubscribeResponse { return nil } -func (*UnimplementedClientCommandsServer) ObjectRelationSearchDistinct(ctx context.Context, req *pb.RpcObjectRelationSearchDistinctRequest) *pb.RpcObjectRelationSearchDistinctResponse { +func (*UnimplementedClientCommandsServer) ObjectSubscribeIds(ctx context.Context, req *pb.RpcObjectSubscribeIdsRequest) *pb.RpcObjectSubscribeIdsResponse { return nil } -func (*UnimplementedClientCommandsServer) ObjectSubscribeIds(ctx context.Context, req *pb.RpcObjectSubscribeIdsRequest) *pb.RpcObjectSubscribeIdsResponse { +func (*UnimplementedClientCommandsServer) ObjectGroupsSubscribe(ctx context.Context, req *pb.RpcObjectGroupsSubscribeRequest) *pb.RpcObjectGroupsSubscribeResponse { return nil } func (*UnimplementedClientCommandsServer) ObjectSearchUnsubscribe(ctx context.Context, req *pb.RpcObjectSearchUnsubscribeRequest) *pb.RpcObjectSearchUnsubscribeResponse { @@ -3208,24 +3208,6 @@ func _ClientCommands_ObjectSearchSubscribe_Handler(srv interface{}, ctx context. return interceptor(ctx, in, info, handler) } -func _ClientCommands_ObjectRelationSearchDistinct_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(pb.RpcObjectRelationSearchDistinctRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ClientCommandsServer).ObjectRelationSearchDistinct(ctx, in), nil - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/anytype.ClientCommands/ObjectRelationSearchDistinct", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ClientCommandsServer).ObjectRelationSearchDistinct(ctx, req.(*pb.RpcObjectRelationSearchDistinctRequest)), nil - } - return interceptor(ctx, in, info, handler) -} - func _ClientCommands_ObjectSubscribeIds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcObjectSubscribeIdsRequest) if err := dec(in); err != nil { @@ -3244,6 +3226,24 @@ func _ClientCommands_ObjectSubscribeIds_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _ClientCommands_ObjectGroupsSubscribe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(pb.RpcObjectGroupsSubscribeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ClientCommandsServer).ObjectGroupsSubscribe(ctx, in), nil + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/anytype.ClientCommands/ObjectGroupsSubscribe", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ClientCommandsServer).ObjectGroupsSubscribe(ctx, req.(*pb.RpcObjectGroupsSubscribeRequest)), nil + } + return interceptor(ctx, in, info, handler) +} + func _ClientCommands_ObjectSearchUnsubscribe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(pb.RpcObjectSearchUnsubscribeRequest) if err := dec(in); err != nil { @@ -5766,14 +5766,14 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{ MethodName: "ObjectSearchSubscribe", Handler: _ClientCommands_ObjectSearchSubscribe_Handler, }, - { - MethodName: "ObjectRelationSearchDistinct", - Handler: _ClientCommands_ObjectRelationSearchDistinct_Handler, - }, { MethodName: "ObjectSubscribeIds", Handler: _ClientCommands_ObjectSubscribeIds_Handler, }, + { + MethodName: "ObjectGroupsSubscribe", + Handler: _ClientCommands_ObjectGroupsSubscribe_Handler, + }, { MethodName: "ObjectSearchUnsubscribe", Handler: _ClientCommands_ObjectSearchUnsubscribe_Handler, diff --git a/pkg/lib/localstore/objectstore/objects.go b/pkg/lib/localstore/objectstore/objects.go index e762038ee..f1cd88415 100644 --- a/pkg/lib/localstore/objectstore/objects.go +++ b/pkg/lib/localstore/objectstore/objects.go @@ -2,13 +2,10 @@ package objectstore import ( "context" - "crypto/md5" "encoding/binary" - "errors" "fmt" "github.com/anytypeio/go-anytype-middleware/core/relation/relationutils" "runtime/debug" - "sort" "strings" "sync" "time" @@ -253,8 +250,6 @@ type ObjectStore interface { GetDetails(id string) (*model.ObjectDetails, error) GetAggregatedOptions(relationKey string) (options []*model.RelationOption, err error) - RelationSearchDistinct(relationKey string, reqFilters []*model.BlockContentDataviewFilter) ([]*model.BlockContentDataviewGroup, error) - HasIDs(ids ...string) (exists []string, err error) GetByIDs(ids ...string) ([]*model.ObjectInfo, error) List() ([]*model.ObjectInfo, error) @@ -709,118 +704,7 @@ func (m *dsObjectStore) GetAggregatedOptions(relationKey string) (options []*mod return } -func (m *dsObjectStore) RelationSearchDistinct(relationKey string, reqFilters []*model.BlockContentDataviewFilter) ([]*model.BlockContentDataviewGroup, error) { - // todo: should pass workspace - rel, err := m.GetRelation(relationKey) - if err != nil { - return nil, err - } - - var groups []*model.BlockContentDataviewGroup - - switch rel.Format { - case model.RelationFormat_status: - options, err := m.GetAggregatedOptions(relationKey) - if err != nil { - return nil, err - } - uniqMap := make(map[string]bool) - for _, rel := range options { - if !uniqMap[rel.Text] { - uniqMap[rel.Text] = true - groups = append(groups, &model.BlockContentDataviewGroup{ - Id: rel.Id, - Value: &model.BlockContentDataviewGroupValueOfStatus{ - Status: &model.BlockContentDataviewStatus{ - Id: rel.Id, - }}, - }) - } - } - sort.Slice(groups[:], func(i, j int) bool { - return groups[i].Id < groups[j].Id - }) - groups = append([]*model.BlockContentDataviewGroup{{ - Id: "empty", - Value: &model.BlockContentDataviewGroupValueOfStatus{Status: &model.BlockContentDataviewStatus{}}, - }}, groups...) - case model.RelationFormat_tag: - filters := []*model.BlockContentDataviewFilter{ - {RelationKey: string(bundle.RelationKeyIsDeleted), Condition: model.BlockContentDataviewFilter_Equal}, - {RelationKey: string(bundle.RelationKeyIsArchived), Condition: model.BlockContentDataviewFilter_Equal}, - {RelationKey: string(bundle.RelationKeyType), Condition: model.BlockContentDataviewFilter_NotIn, Value: pbtypes.StringList([]string{ - bundle.TypeKeyFile.URL(), - bundle.TypeKeyImage.URL(), - bundle.TypeKeyVideo.URL(), - bundle.TypeKeyAudio.URL(), - })}, - } - filters = append(filters, reqFilters...) - records, _, err := m.Query(nil, database.Query{ - Filters: filters, - }) - if err != nil { - return nil, err - } - - uniqMap := make(map[string]bool) - - for _, v := range records { - if tags := pbtypes.GetStringList(v.Details, bundle.RelationKeyTag.String()); len(tags) > 0 { - sort.Strings(tags) - hash := strings.Join(tags, "") - if !uniqMap[hash] { - uniqMap[hash] = true - groups = append(groups, &model.BlockContentDataviewGroup{ - Id: hash, - Value: &model.BlockContentDataviewGroupValueOfTag{ - Tag: &model.BlockContentDataviewTag{ - Ids: tags, - }}, - }) - } - } - } - - sort.Slice(groups[:], func(i, j int) bool { - return len(groups[i].Id) > len(groups[j].Id) - }) - - for i := range groups { - groups[i].Id = fmt.Sprintf("%x", md5.Sum([]byte(groups[i].Id))) - } - - groups = append([]*model.BlockContentDataviewGroup{{ - Id: "empty", - Value: &model.BlockContentDataviewGroupValueOfTag{ - Tag: &model.BlockContentDataviewTag{ - Ids: make([]string, 0), - }}, - }}, groups...) - case model.RelationFormat_checkbox: - groups = append(groups, &model.BlockContentDataviewGroup{ - Id: "true", - Value: &model.BlockContentDataviewGroupValueOfCheckbox{ - Checkbox: &model.BlockContentDataviewCheckbox{ - Checked: true, - }}, - }, &model.BlockContentDataviewGroup{ - Id: "false", - Value: &model.BlockContentDataviewGroupValueOfCheckbox{ - Checkbox: &model.BlockContentDataviewCheckbox{ - Checked: false, - }}, - }) - case model.RelationFormat_date: - // TODO - default: - return nil, errors.New("unsupported relation format") - } - - return groups, nil -} - -func (m *dsObjectStore) objectTypeFilter(ots ...string) query.Filter { + func (m *dsObjectStore) objectTypeFilter(ots ...string) query.Filter { var filter filterSmartblockTypes for _, otUrl := range ots { if ot, err := bundle.GetTypeByUrl(otUrl); err == nil { diff --git a/pkg/lib/localstore/objectstore/objects_test.go b/pkg/lib/localstore/objectstore/objects_test.go index 416bc330a..46311aa6f 100644 --- a/pkg/lib/localstore/objectstore/objects_test.go +++ b/pkg/lib/localstore/objectstore/objects_test.go @@ -295,45 +295,4 @@ func Test_removeByPrefix(t *testing.T) { got, err = removeByPrefix(ds2.ds, pagesOutboundLinksBase.String()) require.NoError(t, err) require.Equal(t, 10*8000, got) -} - -func Test_SearchRelationDistinct(t *testing.T) { - tmpDir, _ := ioutil.TempDir("", "") - defer os.RemoveAll(tmpDir) - - logging.ApplyLevelsFromEnv() - app := testapp.New() - defer app.Close() - ds := New() - err := app.With(&config.DefaultConfig).With(wallet.NewWithRepoPathAndKeys(tmpDir, nil, nil)).With(clientds.New()).With(ftsearch.New()).With(ds).Start(context.Background()) - require.NoError(t, err) - - id1 := getId() - id2 := getId() - id3 := getId() - require.NoError(t, ds.CreateObject(id1, &types.Struct{ - Fields: map[string]*types.Value{ - "name": pbtypes.String("one"), - "type": pbtypes.StringList([]string{"_ota1"}), - }, - }, nil, "s1")) - - require.NoError(t, ds.CreateObject(id2, &types.Struct{Fields: map[string]*types.Value{ - "name": pbtypes.String("two"), - "type": pbtypes.StringList([]string{"_ota2"}), - "tag": pbtypes.StringList([]string{"tag1"}), - }}, nil, "s2")) - require.NoError(t, ds.CreateObject(id3, &types.Struct{Fields: map[string]*types.Value{ - "name": pbtypes.String("three"), - "type": pbtypes.StringList([]string{"_ota2"}), - "tag": pbtypes.StringList([]string{"tag1", "tag2", "tag3"}), - }}, nil, "s3")) - - statusOpts, err := ds.RelationSearchDistinct("tag", nil) - require.NoError(t, err) - require.Len(t, statusOpts, 3) - - tagsOptsFilter, err := ds.RelationSearchDistinct("tag", []*model.BlockContentDataviewFilter{{RelationKey: "name", Condition: 1, Value: pbtypes.String("three")}}) - require.NoError(t, err) - require.Len(t, tagsOptsFilter, 2) // because results should always contain an option with empty tags set -} +} \ No newline at end of file diff --git a/util/testMock/anytype.go b/util/testMock/anytype.go index fcddb4d83..83cca88b3 100644 --- a/util/testMock/anytype.go +++ b/util/testMock/anytype.go @@ -7,8 +7,10 @@ import ( "context" "github.com/anytypeio/go-anytype-middleware/app" "github.com/anytypeio/go-anytype-middleware/app/testapp" + "github.com/anytypeio/go-anytype-middleware/core/kanban" "github.com/anytypeio/go-anytype-middleware/pkg/lib/core" "github.com/anytypeio/go-anytype-middleware/pkg/lib/localstore/objectstore" + "github.com/anytypeio/go-anytype-middleware/util/testMock/mockKanban" "github.com/golang/mock/gomock" ) @@ -38,6 +40,14 @@ func RegisterMockObjectStore(ctrl *gomock.Controller, ta App) *MockObjectStore { return ms } +func RegisterMockKanban(ctrl *gomock.Controller, ta App) *mockKanban.MockService { + ms := mockKanban.NewMockService(ctrl) + ms.EXPECT().Name().AnyTimes().Return(kanban.CName) + ms.EXPECT().Init(gomock.Any()).AnyTimes() + ta.Register(ms) + return ms +} + func GetMockAnytype(ta *testapp.TestApp) *MockService { return ta.MustComponent(core.CName).(*MockService) } diff --git a/util/testMock/mockKanban/kanban.go b/util/testMock/mockKanban/kanban.go new file mode 100644 index 000000000..8319a9446 --- /dev/null +++ b/util/testMock/mockKanban/kanban.go @@ -0,0 +1,2 @@ +//go:generate mockgen -package mockKanban -destination kanban_mock.go github.com/anytypeio/go-anytype-middleware/core/kanban Service +package mockKanban