github.com/inklabsfoundation/inkchain@v0.17.1-0.20181025012015-c3cef8062f19/protos/peer/events.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // source: peer/events.proto 3 4 package peer 5 6 import proto "github.com/golang/protobuf/proto" 7 import fmt "fmt" 8 import math "math" 9 import common "github.com/inklabsfoundation/inkchain/protos/common" 10 11 import ( 12 context "golang.org/x/net/context" 13 grpc "google.golang.org/grpc" 14 ) 15 16 // Reference imports to suppress errors if they are not otherwise used. 17 var _ = proto.Marshal 18 var _ = fmt.Errorf 19 var _ = math.Inf 20 21 type EventType int32 22 23 const ( 24 EventType_REGISTER EventType = 0 25 EventType_BLOCK EventType = 1 26 EventType_CHAINCODE EventType = 2 27 EventType_REJECTION EventType = 3 28 ) 29 30 var EventType_name = map[int32]string{ 31 0: "REGISTER", 32 1: "BLOCK", 33 2: "CHAINCODE", 34 3: "REJECTION", 35 } 36 var EventType_value = map[string]int32{ 37 "REGISTER": 0, 38 "BLOCK": 1, 39 "CHAINCODE": 2, 40 "REJECTION": 3, 41 } 42 43 func (x EventType) String() string { 44 return proto.EnumName(EventType_name, int32(x)) 45 } 46 func (EventType) EnumDescriptor() ([]byte, []int) { return fileDescriptor5, []int{0} } 47 48 // ChaincodeReg is used for registering chaincode Interests 49 // when EventType is CHAINCODE 50 type ChaincodeReg struct { 51 ChaincodeId string `protobuf:"bytes,1,opt,name=chaincode_id,json=chaincodeId" json:"chaincode_id,omitempty"` 52 EventName string `protobuf:"bytes,2,opt,name=event_name,json=eventName" json:"event_name,omitempty"` 53 } 54 55 func (m *ChaincodeReg) Reset() { *m = ChaincodeReg{} } 56 func (m *ChaincodeReg) String() string { return proto.CompactTextString(m) } 57 func (*ChaincodeReg) ProtoMessage() {} 58 func (*ChaincodeReg) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{0} } 59 60 func (m *ChaincodeReg) GetChaincodeId() string { 61 if m != nil { 62 return m.ChaincodeId 63 } 64 return "" 65 } 66 67 func (m *ChaincodeReg) GetEventName() string { 68 if m != nil { 69 return m.EventName 70 } 71 return "" 72 } 73 74 type Interest struct { 75 EventType EventType `protobuf:"varint,1,opt,name=event_type,json=eventType,enum=protos.EventType" json:"event_type,omitempty"` 76 // Ideally we should just have the following oneof for different 77 // Reg types and get rid of EventType. But this is an API change 78 // Additional Reg types may add messages specific to their type 79 // to the oneof. 80 // 81 // Types that are valid to be assigned to RegInfo: 82 // *Interest_ChaincodeRegInfo 83 RegInfo isInterest_RegInfo `protobuf_oneof:"RegInfo"` 84 ChainID string `protobuf:"bytes,3,opt,name=chainID" json:"chainID,omitempty"` 85 } 86 87 func (m *Interest) Reset() { *m = Interest{} } 88 func (m *Interest) String() string { return proto.CompactTextString(m) } 89 func (*Interest) ProtoMessage() {} 90 func (*Interest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{1} } 91 92 type isInterest_RegInfo interface { 93 isInterest_RegInfo() 94 } 95 96 type Interest_ChaincodeRegInfo struct { 97 ChaincodeRegInfo *ChaincodeReg `protobuf:"bytes,2,opt,name=chaincode_reg_info,json=chaincodeRegInfo,oneof"` 98 } 99 100 func (*Interest_ChaincodeRegInfo) isInterest_RegInfo() {} 101 102 func (m *Interest) GetRegInfo() isInterest_RegInfo { 103 if m != nil { 104 return m.RegInfo 105 } 106 return nil 107 } 108 109 func (m *Interest) GetEventType() EventType { 110 if m != nil { 111 return m.EventType 112 } 113 return EventType_REGISTER 114 } 115 116 func (m *Interest) GetChaincodeRegInfo() *ChaincodeReg { 117 if x, ok := m.GetRegInfo().(*Interest_ChaincodeRegInfo); ok { 118 return x.ChaincodeRegInfo 119 } 120 return nil 121 } 122 123 func (m *Interest) GetChainID() string { 124 if m != nil { 125 return m.ChainID 126 } 127 return "" 128 } 129 130 // XXX_OneofFuncs is for the internal use of the proto package. 131 func (*Interest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { 132 return _Interest_OneofMarshaler, _Interest_OneofUnmarshaler, _Interest_OneofSizer, []interface{}{ 133 (*Interest_ChaincodeRegInfo)(nil), 134 } 135 } 136 137 func _Interest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { 138 m := msg.(*Interest) 139 // RegInfo 140 switch x := m.RegInfo.(type) { 141 case *Interest_ChaincodeRegInfo: 142 b.EncodeVarint(2<<3 | proto.WireBytes) 143 if err := b.EncodeMessage(x.ChaincodeRegInfo); err != nil { 144 return err 145 } 146 case nil: 147 default: 148 return fmt.Errorf("Interest.RegInfo has unexpected type %T", x) 149 } 150 return nil 151 } 152 153 func _Interest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { 154 m := msg.(*Interest) 155 switch tag { 156 case 2: // RegInfo.chaincode_reg_info 157 if wire != proto.WireBytes { 158 return true, proto.ErrInternalBadWireType 159 } 160 msg := new(ChaincodeReg) 161 err := b.DecodeMessage(msg) 162 m.RegInfo = &Interest_ChaincodeRegInfo{msg} 163 return true, err 164 default: 165 return false, nil 166 } 167 } 168 169 func _Interest_OneofSizer(msg proto.Message) (n int) { 170 m := msg.(*Interest) 171 // RegInfo 172 switch x := m.RegInfo.(type) { 173 case *Interest_ChaincodeRegInfo: 174 s := proto.Size(x.ChaincodeRegInfo) 175 n += proto.SizeVarint(2<<3 | proto.WireBytes) 176 n += proto.SizeVarint(uint64(s)) 177 n += s 178 case nil: 179 default: 180 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) 181 } 182 return n 183 } 184 185 // ---------- consumer events --------- 186 // Register is sent by consumers for registering events 187 // string type - "register" 188 type Register struct { 189 Events []*Interest `protobuf:"bytes,1,rep,name=events" json:"events,omitempty"` 190 } 191 192 func (m *Register) Reset() { *m = Register{} } 193 func (m *Register) String() string { return proto.CompactTextString(m) } 194 func (*Register) ProtoMessage() {} 195 func (*Register) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{2} } 196 197 func (m *Register) GetEvents() []*Interest { 198 if m != nil { 199 return m.Events 200 } 201 return nil 202 } 203 204 // Rejection is sent by consumers for erroneous transaction rejection events 205 // string type - "rejection" 206 type Rejection struct { 207 Tx *Transaction `protobuf:"bytes,1,opt,name=tx" json:"tx,omitempty"` 208 ErrorMsg string `protobuf:"bytes,2,opt,name=error_msg,json=errorMsg" json:"error_msg,omitempty"` 209 } 210 211 func (m *Rejection) Reset() { *m = Rejection{} } 212 func (m *Rejection) String() string { return proto.CompactTextString(m) } 213 func (*Rejection) ProtoMessage() {} 214 func (*Rejection) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{3} } 215 216 func (m *Rejection) GetTx() *Transaction { 217 if m != nil { 218 return m.Tx 219 } 220 return nil 221 } 222 223 func (m *Rejection) GetErrorMsg() string { 224 if m != nil { 225 return m.ErrorMsg 226 } 227 return "" 228 } 229 230 // ---------- producer events --------- 231 type Unregister struct { 232 Events []*Interest `protobuf:"bytes,1,rep,name=events" json:"events,omitempty"` 233 } 234 235 func (m *Unregister) Reset() { *m = Unregister{} } 236 func (m *Unregister) String() string { return proto.CompactTextString(m) } 237 func (*Unregister) ProtoMessage() {} 238 func (*Unregister) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{4} } 239 240 func (m *Unregister) GetEvents() []*Interest { 241 if m != nil { 242 return m.Events 243 } 244 return nil 245 } 246 247 // SignedEvent is used for any communication between consumer and producer 248 type SignedEvent struct { 249 // Signature over the event bytes 250 Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` 251 // Marshal of Event object 252 EventBytes []byte `protobuf:"bytes,2,opt,name=eventBytes,proto3" json:"eventBytes,omitempty"` 253 } 254 255 func (m *SignedEvent) Reset() { *m = SignedEvent{} } 256 func (m *SignedEvent) String() string { return proto.CompactTextString(m) } 257 func (*SignedEvent) ProtoMessage() {} 258 func (*SignedEvent) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{5} } 259 260 func (m *SignedEvent) GetSignature() []byte { 261 if m != nil { 262 return m.Signature 263 } 264 return nil 265 } 266 267 func (m *SignedEvent) GetEventBytes() []byte { 268 if m != nil { 269 return m.EventBytes 270 } 271 return nil 272 } 273 274 // Event is used by 275 // - consumers (adapters) to send Register 276 // - producer to advertise supported types and events 277 type Event struct { 278 // Types that are valid to be assigned to Event: 279 // *Event_Register 280 // *Event_Block 281 // *Event_ChaincodeEvent 282 // *Event_Rejection 283 // *Event_Unregister 284 Event isEvent_Event `protobuf_oneof:"Event"` 285 // Creator of the event, specified as a certificate chain 286 Creator []byte `protobuf:"bytes,6,opt,name=creator,proto3" json:"creator,omitempty"` 287 } 288 289 func (m *Event) Reset() { *m = Event{} } 290 func (m *Event) String() string { return proto.CompactTextString(m) } 291 func (*Event) ProtoMessage() {} 292 func (*Event) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{6} } 293 294 type isEvent_Event interface { 295 isEvent_Event() 296 } 297 298 type Event_Register struct { 299 Register *Register `protobuf:"bytes,1,opt,name=register,oneof"` 300 } 301 type Event_Block struct { 302 Block *common.Block `protobuf:"bytes,2,opt,name=block,oneof"` 303 } 304 type Event_ChaincodeEvent struct { 305 ChaincodeEvent *ChaincodeEvent `protobuf:"bytes,3,opt,name=chaincode_event,json=chaincodeEvent,oneof"` 306 } 307 type Event_Rejection struct { 308 Rejection *Rejection `protobuf:"bytes,4,opt,name=rejection,oneof"` 309 } 310 type Event_Unregister struct { 311 Unregister *Unregister `protobuf:"bytes,5,opt,name=unregister,oneof"` 312 } 313 314 func (*Event_Register) isEvent_Event() {} 315 func (*Event_Block) isEvent_Event() {} 316 func (*Event_ChaincodeEvent) isEvent_Event() {} 317 func (*Event_Rejection) isEvent_Event() {} 318 func (*Event_Unregister) isEvent_Event() {} 319 320 func (m *Event) GetEvent() isEvent_Event { 321 if m != nil { 322 return m.Event 323 } 324 return nil 325 } 326 327 func (m *Event) GetRegister() *Register { 328 if x, ok := m.GetEvent().(*Event_Register); ok { 329 return x.Register 330 } 331 return nil 332 } 333 334 func (m *Event) GetBlock() *common.Block { 335 if x, ok := m.GetEvent().(*Event_Block); ok { 336 return x.Block 337 } 338 return nil 339 } 340 341 func (m *Event) GetChaincodeEvent() *ChaincodeEvent { 342 if x, ok := m.GetEvent().(*Event_ChaincodeEvent); ok { 343 return x.ChaincodeEvent 344 } 345 return nil 346 } 347 348 func (m *Event) GetRejection() *Rejection { 349 if x, ok := m.GetEvent().(*Event_Rejection); ok { 350 return x.Rejection 351 } 352 return nil 353 } 354 355 func (m *Event) GetUnregister() *Unregister { 356 if x, ok := m.GetEvent().(*Event_Unregister); ok { 357 return x.Unregister 358 } 359 return nil 360 } 361 362 func (m *Event) GetCreator() []byte { 363 if m != nil { 364 return m.Creator 365 } 366 return nil 367 } 368 369 // XXX_OneofFuncs is for the internal use of the proto package. 370 func (*Event) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { 371 return _Event_OneofMarshaler, _Event_OneofUnmarshaler, _Event_OneofSizer, []interface{}{ 372 (*Event_Register)(nil), 373 (*Event_Block)(nil), 374 (*Event_ChaincodeEvent)(nil), 375 (*Event_Rejection)(nil), 376 (*Event_Unregister)(nil), 377 } 378 } 379 380 func _Event_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { 381 m := msg.(*Event) 382 // Event 383 switch x := m.Event.(type) { 384 case *Event_Register: 385 b.EncodeVarint(1<<3 | proto.WireBytes) 386 if err := b.EncodeMessage(x.Register); err != nil { 387 return err 388 } 389 case *Event_Block: 390 b.EncodeVarint(2<<3 | proto.WireBytes) 391 if err := b.EncodeMessage(x.Block); err != nil { 392 return err 393 } 394 case *Event_ChaincodeEvent: 395 b.EncodeVarint(3<<3 | proto.WireBytes) 396 if err := b.EncodeMessage(x.ChaincodeEvent); err != nil { 397 return err 398 } 399 case *Event_Rejection: 400 b.EncodeVarint(4<<3 | proto.WireBytes) 401 if err := b.EncodeMessage(x.Rejection); err != nil { 402 return err 403 } 404 case *Event_Unregister: 405 b.EncodeVarint(5<<3 | proto.WireBytes) 406 if err := b.EncodeMessage(x.Unregister); err != nil { 407 return err 408 } 409 case nil: 410 default: 411 return fmt.Errorf("Event.Event has unexpected type %T", x) 412 } 413 return nil 414 } 415 416 func _Event_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { 417 m := msg.(*Event) 418 switch tag { 419 case 1: // Event.register 420 if wire != proto.WireBytes { 421 return true, proto.ErrInternalBadWireType 422 } 423 msg := new(Register) 424 err := b.DecodeMessage(msg) 425 m.Event = &Event_Register{msg} 426 return true, err 427 case 2: // Event.block 428 if wire != proto.WireBytes { 429 return true, proto.ErrInternalBadWireType 430 } 431 msg := new(common.Block) 432 err := b.DecodeMessage(msg) 433 m.Event = &Event_Block{msg} 434 return true, err 435 case 3: // Event.chaincode_event 436 if wire != proto.WireBytes { 437 return true, proto.ErrInternalBadWireType 438 } 439 msg := new(ChaincodeEvent) 440 err := b.DecodeMessage(msg) 441 m.Event = &Event_ChaincodeEvent{msg} 442 return true, err 443 case 4: // Event.rejection 444 if wire != proto.WireBytes { 445 return true, proto.ErrInternalBadWireType 446 } 447 msg := new(Rejection) 448 err := b.DecodeMessage(msg) 449 m.Event = &Event_Rejection{msg} 450 return true, err 451 case 5: // Event.unregister 452 if wire != proto.WireBytes { 453 return true, proto.ErrInternalBadWireType 454 } 455 msg := new(Unregister) 456 err := b.DecodeMessage(msg) 457 m.Event = &Event_Unregister{msg} 458 return true, err 459 default: 460 return false, nil 461 } 462 } 463 464 func _Event_OneofSizer(msg proto.Message) (n int) { 465 m := msg.(*Event) 466 // Event 467 switch x := m.Event.(type) { 468 case *Event_Register: 469 s := proto.Size(x.Register) 470 n += proto.SizeVarint(1<<3 | proto.WireBytes) 471 n += proto.SizeVarint(uint64(s)) 472 n += s 473 case *Event_Block: 474 s := proto.Size(x.Block) 475 n += proto.SizeVarint(2<<3 | proto.WireBytes) 476 n += proto.SizeVarint(uint64(s)) 477 n += s 478 case *Event_ChaincodeEvent: 479 s := proto.Size(x.ChaincodeEvent) 480 n += proto.SizeVarint(3<<3 | proto.WireBytes) 481 n += proto.SizeVarint(uint64(s)) 482 n += s 483 case *Event_Rejection: 484 s := proto.Size(x.Rejection) 485 n += proto.SizeVarint(4<<3 | proto.WireBytes) 486 n += proto.SizeVarint(uint64(s)) 487 n += s 488 case *Event_Unregister: 489 s := proto.Size(x.Unregister) 490 n += proto.SizeVarint(5<<3 | proto.WireBytes) 491 n += proto.SizeVarint(uint64(s)) 492 n += s 493 case nil: 494 default: 495 panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) 496 } 497 return n 498 } 499 500 func init() { 501 proto.RegisterType((*ChaincodeReg)(nil), "protos.ChaincodeReg") 502 proto.RegisterType((*Interest)(nil), "protos.Interest") 503 proto.RegisterType((*Register)(nil), "protos.Register") 504 proto.RegisterType((*Rejection)(nil), "protos.Rejection") 505 proto.RegisterType((*Unregister)(nil), "protos.Unregister") 506 proto.RegisterType((*SignedEvent)(nil), "protos.SignedEvent") 507 proto.RegisterType((*Event)(nil), "protos.Event") 508 proto.RegisterEnum("protos.EventType", EventType_name, EventType_value) 509 } 510 511 // Reference imports to suppress errors if they are not otherwise used. 512 var _ context.Context 513 var _ grpc.ClientConn 514 515 // This is a compile-time assertion to ensure that this generated file 516 // is compatible with the grpc package it is being compiled against. 517 const _ = grpc.SupportPackageIsVersion4 518 519 // Client API for Events service 520 521 type EventsClient interface { 522 // event chatting using Event 523 Chat(ctx context.Context, opts ...grpc.CallOption) (Events_ChatClient, error) 524 } 525 526 type eventsClient struct { 527 cc *grpc.ClientConn 528 } 529 530 func NewEventsClient(cc *grpc.ClientConn) EventsClient { 531 return &eventsClient{cc} 532 } 533 534 func (c *eventsClient) Chat(ctx context.Context, opts ...grpc.CallOption) (Events_ChatClient, error) { 535 stream, err := grpc.NewClientStream(ctx, &_Events_serviceDesc.Streams[0], c.cc, "/protos.Events/Chat", opts...) 536 if err != nil { 537 return nil, err 538 } 539 x := &eventsChatClient{stream} 540 return x, nil 541 } 542 543 type Events_ChatClient interface { 544 Send(*SignedEvent) error 545 Recv() (*Event, error) 546 grpc.ClientStream 547 } 548 549 type eventsChatClient struct { 550 grpc.ClientStream 551 } 552 553 func (x *eventsChatClient) Send(m *SignedEvent) error { 554 return x.ClientStream.SendMsg(m) 555 } 556 557 func (x *eventsChatClient) Recv() (*Event, error) { 558 m := new(Event) 559 if err := x.ClientStream.RecvMsg(m); err != nil { 560 return nil, err 561 } 562 return m, nil 563 } 564 565 // Server API for Events service 566 567 type EventsServer interface { 568 // event chatting using Event 569 Chat(Events_ChatServer) error 570 } 571 572 func RegisterEventsServer(s *grpc.Server, srv EventsServer) { 573 s.RegisterService(&_Events_serviceDesc, srv) 574 } 575 576 func _Events_Chat_Handler(srv interface{}, stream grpc.ServerStream) error { 577 return srv.(EventsServer).Chat(&eventsChatServer{stream}) 578 } 579 580 type Events_ChatServer interface { 581 Send(*Event) error 582 Recv() (*SignedEvent, error) 583 grpc.ServerStream 584 } 585 586 type eventsChatServer struct { 587 grpc.ServerStream 588 } 589 590 func (x *eventsChatServer) Send(m *Event) error { 591 return x.ServerStream.SendMsg(m) 592 } 593 594 func (x *eventsChatServer) Recv() (*SignedEvent, error) { 595 m := new(SignedEvent) 596 if err := x.ServerStream.RecvMsg(m); err != nil { 597 return nil, err 598 } 599 return m, nil 600 } 601 602 var _Events_serviceDesc = grpc.ServiceDesc{ 603 ServiceName: "protos.Events", 604 HandlerType: (*EventsServer)(nil), 605 Methods: []grpc.MethodDesc{}, 606 Streams: []grpc.StreamDesc{ 607 { 608 StreamName: "Chat", 609 Handler: _Events_Chat_Handler, 610 ServerStreams: true, 611 ClientStreams: true, 612 }, 613 }, 614 Metadata: "peer/events.proto", 615 } 616 617 func init() { proto.RegisterFile("peer/events.proto", fileDescriptor5) } 618 619 var fileDescriptor5 = []byte{ 620 // 613 bytes of a gzipped FileDescriptorProto 621 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4d, 0x6f, 0xda, 0x40, 622 0x10, 0xb5, 0x49, 0x20, 0x78, 0x80, 0x94, 0x6c, 0xaa, 0xc8, 0xa2, 0x1f, 0x4a, 0x5d, 0x55, 0x42, 623 0x39, 0x40, 0x42, 0xa3, 0x1e, 0x7a, 0x8b, 0x09, 0xaa, 0xdd, 0x34, 0x1f, 0xda, 0xd0, 0x4b, 0x2f, 624 0xc8, 0x98, 0x8d, 0xe3, 0x12, 0xd6, 0x68, 0x77, 0xa9, 0xc2, 0x2f, 0xea, 0xa9, 0xff, 0xb1, 0xf2, 625 0xd8, 0x6b, 0x93, 0xe6, 0xd4, 0x93, 0xd9, 0x99, 0x79, 0x6f, 0xde, 0xbe, 0x99, 0x05, 0xf6, 0x96, 626 0x8c, 0x89, 0x3e, 0xfb, 0xc5, 0xb8, 0x92, 0xbd, 0xa5, 0x48, 0x54, 0x42, 0x6a, 0xf8, 0x91, 0x9d, 627 0xfd, 0x30, 0x59, 0x2c, 0x12, 0xde, 0xcf, 0x3e, 0x59, 0xb2, 0xd3, 0xc1, 0xfa, 0xf0, 0x3e, 0x88, 628 0x79, 0x98, 0xcc, 0xd8, 0x04, 0x91, 0x79, 0xee, 0x00, 0x73, 0x4a, 0x04, 0x5c, 0x06, 0xa1, 0x8a, 629 0x35, 0xc6, 0xb9, 0x81, 0xe6, 0x50, 0x03, 0x28, 0x8b, 0xc8, 0x3b, 0x68, 0x96, 0x04, 0xf1, 0xcc, 630 0x36, 0x0f, 0xcd, 0xae, 0x45, 0x1b, 0x45, 0xcc, 0x9f, 0x91, 0x37, 0x00, 0xc8, 0x3c, 0xe1, 0xc1, 631 0x82, 0xd9, 0x15, 0x2c, 0xb0, 0x30, 0x72, 0x15, 0x2c, 0x98, 0xf3, 0xdb, 0x84, 0xba, 0xcf, 0x15, 632 0x13, 0x4c, 0x2a, 0x72, 0xac, 0x6b, 0xd5, 0x7a, 0xc9, 0x90, 0x6c, 0x77, 0xb0, 0x97, 0xb5, 0x96, 633 0xbd, 0x51, 0x9a, 0x19, 0xaf, 0x97, 0x2c, 0x87, 0xa7, 0x3f, 0xc9, 0x39, 0x90, 0x52, 0x80, 0x60, 634 0xd1, 0x24, 0xe6, 0x77, 0x09, 0x76, 0x69, 0x0c, 0x5e, 0x6a, 0xe4, 0xa6, 0x64, 0xcf, 0xa0, 0xed, 635 0x70, 0xe3, 0xec, 0xf3, 0xbb, 0x84, 0xd8, 0xb0, 0x83, 0x31, 0xff, 0xdc, 0xde, 0x42, 0x81, 0xfa, 636 0xe8, 0x5a, 0xb0, 0x93, 0x17, 0x39, 0xa7, 0x50, 0xa7, 0x2c, 0x8a, 0xa5, 0x62, 0x82, 0x74, 0xa1, 637 0x96, 0x19, 0x6d, 0x9b, 0x87, 0x5b, 0xdd, 0xc6, 0xa0, 0xad, 0x5b, 0xe9, 0xab, 0xd0, 0x3c, 0xef, 638 0x5c, 0x82, 0x45, 0xd9, 0x4f, 0x86, 0x26, 0x92, 0xf7, 0x50, 0x51, 0x8f, 0x78, 0xaf, 0xc6, 0x60, 639 0x5f, 0x43, 0xc6, 0xa5, 0xcb, 0xb4, 0xa2, 0x1e, 0xc9, 0x2b, 0xb0, 0x98, 0x10, 0x89, 0x98, 0x2c, 640 0x64, 0x94, 0xfb, 0x55, 0xc7, 0xc0, 0xa5, 0x8c, 0x9c, 0x4f, 0x00, 0xdf, 0xb9, 0xf8, 0x7f, 0x19, 641 0x17, 0xd0, 0xb8, 0x8d, 0x23, 0xce, 0x66, 0xe8, 0x22, 0x79, 0x0d, 0x96, 0x8c, 0x23, 0x1e, 0xa8, 642 0x95, 0xc8, 0x7c, 0x6e, 0xd2, 0x32, 0x40, 0xde, 0xe6, 0x63, 0x70, 0xd7, 0x8a, 0x49, 0x94, 0xd0, 643 0xa4, 0x1b, 0x11, 0xe7, 0x4f, 0x05, 0xaa, 0x19, 0x4f, 0x0f, 0xea, 0x5a, 0x4c, 0x7e, 0xad, 0x42, 644 0x82, 0xf6, 0xca, 0x33, 0x68, 0x51, 0x43, 0x3e, 0x40, 0x75, 0xfa, 0x90, 0x84, 0xf3, 0x7c, 0x42, 645 0xad, 0x5e, 0xbe, 0x91, 0x6e, 0x1a, 0xf4, 0x0c, 0x9a, 0x65, 0xc9, 0x19, 0xbc, 0xf8, 0x67, 0x2f, 646 0x71, 0x2e, 0x8d, 0xc1, 0xc1, 0xb3, 0x91, 0xa2, 0x0e, 0xcf, 0xa0, 0xbb, 0xe1, 0x93, 0x08, 0x39, 647 0x01, 0x4b, 0x68, 0xdf, 0xed, 0x6d, 0x04, 0xef, 0x95, 0xd2, 0xf2, 0x84, 0x67, 0xd0, 0xb2, 0x8a, 648 0x9c, 0x02, 0xac, 0x0a, 0x6f, 0xed, 0x2a, 0x62, 0x88, 0xc6, 0x94, 0xae, 0x7b, 0x06, 0xdd, 0xa8, 649 0xc3, 0xdd, 0x11, 0x2c, 0x50, 0x89, 0xb0, 0x6b, 0xe8, 0x94, 0x3e, 0xba, 0x3b, 0xb9, 0x4b, 0x47, 650 0x2e, 0x58, 0xc5, 0xf2, 0x92, 0x26, 0xd4, 0xe9, 0xe8, 0x8b, 0x7f, 0x3b, 0x1e, 0xd1, 0xb6, 0x41, 651 0x2c, 0xa8, 0xba, 0xdf, 0xae, 0x87, 0x17, 0x6d, 0x93, 0xb4, 0xc0, 0x1a, 0x7a, 0x67, 0xfe, 0xd5, 652 0xf0, 0xfa, 0x7c, 0xd4, 0xae, 0xa4, 0x47, 0x3a, 0xfa, 0x3a, 0x1a, 0x8e, 0xfd, 0xeb, 0xab, 0xf6, 653 0xd6, 0xe0, 0x33, 0xd4, 0x90, 0x43, 0x92, 0x63, 0xd8, 0x1e, 0xde, 0x07, 0x8a, 0x14, 0x0b, 0xb4, 654 0x31, 0xd8, 0x4e, 0xeb, 0xc9, 0x6b, 0x71, 0x8c, 0xae, 0x79, 0x6c, 0xba, 0x1c, 0x8e, 0x12, 0x11, 655 0xf5, 0x62, 0x3e, 0x7f, 0x08, 0xa6, 0xf2, 0x2e, 0x59, 0xf1, 0x59, 0x80, 0x8f, 0x3a, 0xe6, 0x73, 656 0xb4, 0x4d, 0x83, 0xd2, 0x57, 0xef, 0xb6, 0xb2, 0x3e, 0x37, 0x41, 0x38, 0x0f, 0x22, 0xf6, 0xe3, 657 0x24, 0x8a, 0xd5, 0xfd, 0x6a, 0x9a, 0x4e, 0xaa, 0xff, 0x8c, 0xa1, 0xaf, 0x19, 0xfa, 0x19, 0x43, 658 0x3f, 0x65, 0x98, 0x66, 0x7f, 0x3b, 0x1f, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xd5, 0xbb, 0x48, 659 0x42, 0x92, 0x04, 0x00, 0x00, 660 }