1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: quic-trace.proto
3
4package pb
5
6import (
7	fmt "fmt"
8	proto "github.com/ooni/psiphon/oopsi/github.com/golang/protobuf/proto"
9	math "math"
10)
11
12// Reference imports to suppress errors if they are not otherwise used.
13var _ = proto.Marshal
14var _ = fmt.Errorf
15var _ = math.Inf
16
17// This is a compile-time assertion to ensure that this generated file
18// is compatible with the proto package it is being compiled against.
19// A compilation error at this line likely means your copy of the
20// proto package needs to be updated.
21const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
22
23type FrameType int32
24
25const (
26	FrameType_UNKNOWN_FRAME    FrameType = 0
27	FrameType_STREAM           FrameType = 1
28	FrameType_ACK              FrameType = 2
29	FrameType_RESET_STREAM     FrameType = 3
30	FrameType_CONNECTION_CLOSE FrameType = 4
31	FrameType_MAX_DATA         FrameType = 5
32	FrameType_MAX_STREAM_DATA  FrameType = 6
33	FrameType_PING             FrameType = 7
34	FrameType_BLOCKED          FrameType = 8
35	FrameType_STREAM_BLOCKED   FrameType = 9
36	FrameType_PADDING          FrameType = 10
37	FrameType_CRYPTO           FrameType = 11
38)
39
40var FrameType_name = map[int32]string{
41	0:  "UNKNOWN_FRAME",
42	1:  "STREAM",
43	2:  "ACK",
44	3:  "RESET_STREAM",
45	4:  "CONNECTION_CLOSE",
46	5:  "MAX_DATA",
47	6:  "MAX_STREAM_DATA",
48	7:  "PING",
49	8:  "BLOCKED",
50	9:  "STREAM_BLOCKED",
51	10: "PADDING",
52	11: "CRYPTO",
53}
54
55var FrameType_value = map[string]int32{
56	"UNKNOWN_FRAME":    0,
57	"STREAM":           1,
58	"ACK":              2,
59	"RESET_STREAM":     3,
60	"CONNECTION_CLOSE": 4,
61	"MAX_DATA":         5,
62	"MAX_STREAM_DATA":  6,
63	"PING":             7,
64	"BLOCKED":          8,
65	"STREAM_BLOCKED":   9,
66	"PADDING":          10,
67	"CRYPTO":           11,
68}
69
70func (x FrameType) Enum() *FrameType {
71	p := new(FrameType)
72	*p = x
73	return p
74}
75
76func (x FrameType) String() string {
77	return proto.EnumName(FrameType_name, int32(x))
78}
79
80func (x *FrameType) UnmarshalJSON(data []byte) error {
81	value, err := proto.UnmarshalJSONEnum(FrameType_value, data, "FrameType")
82	if err != nil {
83		return err
84	}
85	*x = FrameType(value)
86	return nil
87}
88
89func (FrameType) EnumDescriptor() ([]byte, []int) {
90	return fileDescriptor_79ecf15e0416742d, []int{0}
91}
92
93// Metadata for CONNECTION_CLOSE frames.
94// Close_type will indicate whether the close is a Google QUIC close,
95// IETF QUIC Transport CONNECTION CLOSE, or IETF QUIC Application
96// Connection Close, frame.
97type CloseType int32
98
99const (
100	CloseType_GOOGLE_QUIC_CONNECTION_CLOSE           CloseType = 0
101	CloseType_IETF_QUIC_TRANSPORT_CONNECTION_CLOSE   CloseType = 1
102	CloseType_IETF_QUIC_APPLICATION_CONNECTION_CLOSE CloseType = 2
103)
104
105var CloseType_name = map[int32]string{
106	0: "GOOGLE_QUIC_CONNECTION_CLOSE",
107	1: "IETF_QUIC_TRANSPORT_CONNECTION_CLOSE",
108	2: "IETF_QUIC_APPLICATION_CONNECTION_CLOSE",
109}
110
111var CloseType_value = map[string]int32{
112	"GOOGLE_QUIC_CONNECTION_CLOSE":           0,
113	"IETF_QUIC_TRANSPORT_CONNECTION_CLOSE":   1,
114	"IETF_QUIC_APPLICATION_CONNECTION_CLOSE": 2,
115}
116
117func (x CloseType) Enum() *CloseType {
118	p := new(CloseType)
119	*p = x
120	return p
121}
122
123func (x CloseType) String() string {
124	return proto.EnumName(CloseType_name, int32(x))
125}
126
127func (x *CloseType) UnmarshalJSON(data []byte) error {
128	value, err := proto.UnmarshalJSONEnum(CloseType_value, data, "CloseType")
129	if err != nil {
130		return err
131	}
132	*x = CloseType(value)
133	return nil
134}
135
136func (CloseType) EnumDescriptor() ([]byte, []int) {
137	return fileDescriptor_79ecf15e0416742d, []int{1}
138}
139
140type EncryptionLevel int32
141
142const (
143	EncryptionLevel_ENCRYPTION_UNKNOWN   EncryptionLevel = 0
144	EncryptionLevel_ENCRYPTION_INITIAL   EncryptionLevel = 1
145	EncryptionLevel_ENCRYPTION_0RTT      EncryptionLevel = 2
146	EncryptionLevel_ENCRYPTION_1RTT      EncryptionLevel = 3
147	EncryptionLevel_ENCRYPTION_HANDSHAKE EncryptionLevel = 4
148)
149
150var EncryptionLevel_name = map[int32]string{
151	0: "ENCRYPTION_UNKNOWN",
152	1: "ENCRYPTION_INITIAL",
153	2: "ENCRYPTION_0RTT",
154	3: "ENCRYPTION_1RTT",
155	4: "ENCRYPTION_HANDSHAKE",
156}
157
158var EncryptionLevel_value = map[string]int32{
159	"ENCRYPTION_UNKNOWN":   0,
160	"ENCRYPTION_INITIAL":   1,
161	"ENCRYPTION_0RTT":      2,
162	"ENCRYPTION_1RTT":      3,
163	"ENCRYPTION_HANDSHAKE": 4,
164}
165
166func (x EncryptionLevel) Enum() *EncryptionLevel {
167	p := new(EncryptionLevel)
168	*p = x
169	return p
170}
171
172func (x EncryptionLevel) String() string {
173	return proto.EnumName(EncryptionLevel_name, int32(x))
174}
175
176func (x *EncryptionLevel) UnmarshalJSON(data []byte) error {
177	value, err := proto.UnmarshalJSONEnum(EncryptionLevel_value, data, "EncryptionLevel")
178	if err != nil {
179		return err
180	}
181	*x = EncryptionLevel(value)
182	return nil
183}
184
185func (EncryptionLevel) EnumDescriptor() ([]byte, []int) {
186	return fileDescriptor_79ecf15e0416742d, []int{2}
187}
188
189type EventType int32
190
191const (
192	EventType_UNKNOWN_EVENT   EventType = 0
193	EventType_PACKET_SENT     EventType = 1
194	EventType_PACKET_RECEIVED EventType = 2
195	EventType_PACKET_LOST     EventType = 3
196	// An APPLICATION_LIMITED event occurs when the sender is capable of sending
197	// more data and tries to send it, but discovers that it does not have any
198	// outstanding data to send.  Such events are important to some congestion
199	// control algorithms (for example, BBR) since they are trying to measure the
200	// largest achievable throughput, but it is impossible to measure it when the
201	// application does not send anything.
202	EventType_APPLICATION_LIMITED EventType = 4
203	// Record when external information about expected network conditions
204	// (available bandwidth, RTT, congestion window, etc) is supplied to the
205	// sender.
206	EventType_EXTERNAL_PARAMETERS EventType = 5
207)
208
209var EventType_name = map[int32]string{
210	0: "UNKNOWN_EVENT",
211	1: "PACKET_SENT",
212	2: "PACKET_RECEIVED",
213	3: "PACKET_LOST",
214	4: "APPLICATION_LIMITED",
215	5: "EXTERNAL_PARAMETERS",
216}
217
218var EventType_value = map[string]int32{
219	"UNKNOWN_EVENT":       0,
220	"PACKET_SENT":         1,
221	"PACKET_RECEIVED":     2,
222	"PACKET_LOST":         3,
223	"APPLICATION_LIMITED": 4,
224	"EXTERNAL_PARAMETERS": 5,
225}
226
227func (x EventType) Enum() *EventType {
228	p := new(EventType)
229	*p = x
230	return p
231}
232
233func (x EventType) String() string {
234	return proto.EnumName(EventType_name, int32(x))
235}
236
237func (x *EventType) UnmarshalJSON(data []byte) error {
238	value, err := proto.UnmarshalJSONEnum(EventType_value, data, "EventType")
239	if err != nil {
240		return err
241	}
242	*x = EventType(value)
243	return nil
244}
245
246func (EventType) EnumDescriptor() ([]byte, []int) {
247	return fileDescriptor_79ecf15e0416742d, []int{3}
248}
249
250type TransmissionReason int32
251
252const (
253	// Indicates that there was not any particular special reason the packet was
254	// sent.
255	TransmissionReason_NORMAL_TRANSMISSION TransmissionReason = 0
256	// Indicates that the packet sent is a tail loss probe, cf.
257	// https://tools.ietf.org/html/draft-ietf-quic-recovery-14#section-4.3.2
258	TransmissionReason_TAIL_LOSS_PROBE TransmissionReason = 1
259	// Indicates that the packet is sent due to retransmission timeout, cf
260	// https://tools.ietf.org/html/draft-ietf-quic-recovery-14#section-4.3.3
261	TransmissionReason_RTO_TRANSMISSION TransmissionReason = 2
262	// Indicates that the packet is sent in order to probe whether there is extra
263	// bandwidth available in cases where the sender needs an estimate of
264	// available bandwidth, but the application does not provide enough data for
265	// such estimate to become naturally available.  This is usually only used in
266	// real-time protocols.
267	TransmissionReason_PROBING_TRANSMISSION TransmissionReason = 3
268)
269
270var TransmissionReason_name = map[int32]string{
271	0: "NORMAL_TRANSMISSION",
272	1: "TAIL_LOSS_PROBE",
273	2: "RTO_TRANSMISSION",
274	3: "PROBING_TRANSMISSION",
275}
276
277var TransmissionReason_value = map[string]int32{
278	"NORMAL_TRANSMISSION":  0,
279	"TAIL_LOSS_PROBE":      1,
280	"RTO_TRANSMISSION":     2,
281	"PROBING_TRANSMISSION": 3,
282}
283
284func (x TransmissionReason) Enum() *TransmissionReason {
285	p := new(TransmissionReason)
286	*p = x
287	return p
288}
289
290func (x TransmissionReason) String() string {
291	return proto.EnumName(TransmissionReason_name, int32(x))
292}
293
294func (x *TransmissionReason) UnmarshalJSON(data []byte) error {
295	value, err := proto.UnmarshalJSONEnum(TransmissionReason_value, data, "TransmissionReason")
296	if err != nil {
297		return err
298	}
299	*x = TransmissionReason(value)
300	return nil
301}
302
303func (TransmissionReason) EnumDescriptor() ([]byte, []int) {
304	return fileDescriptor_79ecf15e0416742d, []int{4}
305}
306
307// Metadata for STREAM frames.
308type StreamFrameInfo struct {
309	StreamId             *uint64  `protobuf:"varint,1,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"`
310	Fin                  *bool    `protobuf:"varint,2,opt,name=fin" json:"fin,omitempty"`
311	Length               *uint64  `protobuf:"varint,3,opt,name=length" json:"length,omitempty"`
312	Offset               *uint64  `protobuf:"varint,4,opt,name=offset" json:"offset,omitempty"`
313	XXX_NoUnkeyedLiteral struct{} `json:"-"`
314	XXX_unrecognized     []byte   `json:"-"`
315	XXX_sizecache        int32    `json:"-"`
316}
317
318func (m *StreamFrameInfo) Reset()         { *m = StreamFrameInfo{} }
319func (m *StreamFrameInfo) String() string { return proto.CompactTextString(m) }
320func (*StreamFrameInfo) ProtoMessage()    {}
321func (*StreamFrameInfo) Descriptor() ([]byte, []int) {
322	return fileDescriptor_79ecf15e0416742d, []int{0}
323}
324
325func (m *StreamFrameInfo) XXX_Unmarshal(b []byte) error {
326	return xxx_messageInfo_StreamFrameInfo.Unmarshal(m, b)
327}
328func (m *StreamFrameInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
329	return xxx_messageInfo_StreamFrameInfo.Marshal(b, m, deterministic)
330}
331func (m *StreamFrameInfo) XXX_Merge(src proto.Message) {
332	xxx_messageInfo_StreamFrameInfo.Merge(m, src)
333}
334func (m *StreamFrameInfo) XXX_Size() int {
335	return xxx_messageInfo_StreamFrameInfo.Size(m)
336}
337func (m *StreamFrameInfo) XXX_DiscardUnknown() {
338	xxx_messageInfo_StreamFrameInfo.DiscardUnknown(m)
339}
340
341var xxx_messageInfo_StreamFrameInfo proto.InternalMessageInfo
342
343func (m *StreamFrameInfo) GetStreamId() uint64 {
344	if m != nil && m.StreamId != nil {
345		return *m.StreamId
346	}
347	return 0
348}
349
350func (m *StreamFrameInfo) GetFin() bool {
351	if m != nil && m.Fin != nil {
352		return *m.Fin
353	}
354	return false
355}
356
357func (m *StreamFrameInfo) GetLength() uint64 {
358	if m != nil && m.Length != nil {
359		return *m.Length
360	}
361	return 0
362}
363
364func (m *StreamFrameInfo) GetOffset() uint64 {
365	if m != nil && m.Offset != nil {
366		return *m.Offset
367	}
368	return 0
369}
370
371// Metadata for CRYPTO frames.
372type CryptoFrameInfo struct {
373	Length               *uint64  `protobuf:"varint,1,opt,name=length" json:"length,omitempty"`
374	Offset               *uint64  `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
375	XXX_NoUnkeyedLiteral struct{} `json:"-"`
376	XXX_unrecognized     []byte   `json:"-"`
377	XXX_sizecache        int32    `json:"-"`
378}
379
380func (m *CryptoFrameInfo) Reset()         { *m = CryptoFrameInfo{} }
381func (m *CryptoFrameInfo) String() string { return proto.CompactTextString(m) }
382func (*CryptoFrameInfo) ProtoMessage()    {}
383func (*CryptoFrameInfo) Descriptor() ([]byte, []int) {
384	return fileDescriptor_79ecf15e0416742d, []int{1}
385}
386
387func (m *CryptoFrameInfo) XXX_Unmarshal(b []byte) error {
388	return xxx_messageInfo_CryptoFrameInfo.Unmarshal(m, b)
389}
390func (m *CryptoFrameInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
391	return xxx_messageInfo_CryptoFrameInfo.Marshal(b, m, deterministic)
392}
393func (m *CryptoFrameInfo) XXX_Merge(src proto.Message) {
394	xxx_messageInfo_CryptoFrameInfo.Merge(m, src)
395}
396func (m *CryptoFrameInfo) XXX_Size() int {
397	return xxx_messageInfo_CryptoFrameInfo.Size(m)
398}
399func (m *CryptoFrameInfo) XXX_DiscardUnknown() {
400	xxx_messageInfo_CryptoFrameInfo.DiscardUnknown(m)
401}
402
403var xxx_messageInfo_CryptoFrameInfo proto.InternalMessageInfo
404
405func (m *CryptoFrameInfo) GetLength() uint64 {
406	if m != nil && m.Length != nil {
407		return *m.Length
408	}
409	return 0
410}
411
412func (m *CryptoFrameInfo) GetOffset() uint64 {
413	if m != nil && m.Offset != nil {
414		return *m.Offset
415	}
416	return 0
417}
418
419// The intervals are closed, i.e. the interval represented here is
420// [first_packet, last_packet].
421type AckBlock struct {
422	FirstPacket          *uint64  `protobuf:"varint,1,opt,name=first_packet,json=firstPacket" json:"first_packet,omitempty"`
423	LastPacket           *uint64  `protobuf:"varint,2,opt,name=last_packet,json=lastPacket" json:"last_packet,omitempty"`
424	XXX_NoUnkeyedLiteral struct{} `json:"-"`
425	XXX_unrecognized     []byte   `json:"-"`
426	XXX_sizecache        int32    `json:"-"`
427}
428
429func (m *AckBlock) Reset()         { *m = AckBlock{} }
430func (m *AckBlock) String() string { return proto.CompactTextString(m) }
431func (*AckBlock) ProtoMessage()    {}
432func (*AckBlock) Descriptor() ([]byte, []int) {
433	return fileDescriptor_79ecf15e0416742d, []int{2}
434}
435
436func (m *AckBlock) XXX_Unmarshal(b []byte) error {
437	return xxx_messageInfo_AckBlock.Unmarshal(m, b)
438}
439func (m *AckBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
440	return xxx_messageInfo_AckBlock.Marshal(b, m, deterministic)
441}
442func (m *AckBlock) XXX_Merge(src proto.Message) {
443	xxx_messageInfo_AckBlock.Merge(m, src)
444}
445func (m *AckBlock) XXX_Size() int {
446	return xxx_messageInfo_AckBlock.Size(m)
447}
448func (m *AckBlock) XXX_DiscardUnknown() {
449	xxx_messageInfo_AckBlock.DiscardUnknown(m)
450}
451
452var xxx_messageInfo_AckBlock proto.InternalMessageInfo
453
454func (m *AckBlock) GetFirstPacket() uint64 {
455	if m != nil && m.FirstPacket != nil {
456		return *m.FirstPacket
457	}
458	return 0
459}
460
461func (m *AckBlock) GetLastPacket() uint64 {
462	if m != nil && m.LastPacket != nil {
463		return *m.LastPacket
464	}
465	return 0
466}
467
468// Metadata for ACK frames.
469type AckInfo struct {
470	AckedPackets         []*AckBlock `protobuf:"bytes,1,rep,name=acked_packets,json=ackedPackets" json:"acked_packets,omitempty"`
471	AckDelayUs           *uint64     `protobuf:"varint,2,opt,name=ack_delay_us,json=ackDelayUs" json:"ack_delay_us,omitempty"`
472	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
473	XXX_unrecognized     []byte      `json:"-"`
474	XXX_sizecache        int32       `json:"-"`
475}
476
477func (m *AckInfo) Reset()         { *m = AckInfo{} }
478func (m *AckInfo) String() string { return proto.CompactTextString(m) }
479func (*AckInfo) ProtoMessage()    {}
480func (*AckInfo) Descriptor() ([]byte, []int) {
481	return fileDescriptor_79ecf15e0416742d, []int{3}
482}
483
484func (m *AckInfo) XXX_Unmarshal(b []byte) error {
485	return xxx_messageInfo_AckInfo.Unmarshal(m, b)
486}
487func (m *AckInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
488	return xxx_messageInfo_AckInfo.Marshal(b, m, deterministic)
489}
490func (m *AckInfo) XXX_Merge(src proto.Message) {
491	xxx_messageInfo_AckInfo.Merge(m, src)
492}
493func (m *AckInfo) XXX_Size() int {
494	return xxx_messageInfo_AckInfo.Size(m)
495}
496func (m *AckInfo) XXX_DiscardUnknown() {
497	xxx_messageInfo_AckInfo.DiscardUnknown(m)
498}
499
500var xxx_messageInfo_AckInfo proto.InternalMessageInfo
501
502func (m *AckInfo) GetAckedPackets() []*AckBlock {
503	if m != nil {
504		return m.AckedPackets
505	}
506	return nil
507}
508
509func (m *AckInfo) GetAckDelayUs() uint64 {
510	if m != nil && m.AckDelayUs != nil {
511		return *m.AckDelayUs
512	}
513	return 0
514}
515
516// Metadata for RST_STREAM frames.
517type ResetStreamInfo struct {
518	StreamId             *uint64  `protobuf:"varint,1,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"`
519	ApplicationErrorCode *uint32  `protobuf:"varint,2,opt,name=application_error_code,json=applicationErrorCode" json:"application_error_code,omitempty"`
520	FinalOffset          *uint64  `protobuf:"varint,3,opt,name=final_offset,json=finalOffset" json:"final_offset,omitempty"`
521	XXX_NoUnkeyedLiteral struct{} `json:"-"`
522	XXX_unrecognized     []byte   `json:"-"`
523	XXX_sizecache        int32    `json:"-"`
524}
525
526func (m *ResetStreamInfo) Reset()         { *m = ResetStreamInfo{} }
527func (m *ResetStreamInfo) String() string { return proto.CompactTextString(m) }
528func (*ResetStreamInfo) ProtoMessage()    {}
529func (*ResetStreamInfo) Descriptor() ([]byte, []int) {
530	return fileDescriptor_79ecf15e0416742d, []int{4}
531}
532
533func (m *ResetStreamInfo) XXX_Unmarshal(b []byte) error {
534	return xxx_messageInfo_ResetStreamInfo.Unmarshal(m, b)
535}
536func (m *ResetStreamInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
537	return xxx_messageInfo_ResetStreamInfo.Marshal(b, m, deterministic)
538}
539func (m *ResetStreamInfo) XXX_Merge(src proto.Message) {
540	xxx_messageInfo_ResetStreamInfo.Merge(m, src)
541}
542func (m *ResetStreamInfo) XXX_Size() int {
543	return xxx_messageInfo_ResetStreamInfo.Size(m)
544}
545func (m *ResetStreamInfo) XXX_DiscardUnknown() {
546	xxx_messageInfo_ResetStreamInfo.DiscardUnknown(m)
547}
548
549var xxx_messageInfo_ResetStreamInfo proto.InternalMessageInfo
550
551func (m *ResetStreamInfo) GetStreamId() uint64 {
552	if m != nil && m.StreamId != nil {
553		return *m.StreamId
554	}
555	return 0
556}
557
558func (m *ResetStreamInfo) GetApplicationErrorCode() uint32 {
559	if m != nil && m.ApplicationErrorCode != nil {
560		return *m.ApplicationErrorCode
561	}
562	return 0
563}
564
565func (m *ResetStreamInfo) GetFinalOffset() uint64 {
566	if m != nil && m.FinalOffset != nil {
567		return *m.FinalOffset
568	}
569	return 0
570}
571
572// Metadata for CONNECTION_CLOSE/APPLICATION_CLOSE frames.
573type CloseInfo struct {
574	ErrorCode               *uint32    `protobuf:"varint,1,opt,name=error_code,json=errorCode" json:"error_code,omitempty"`
575	ReasonPhrase            *string    `protobuf:"bytes,2,opt,name=reason_phrase,json=reasonPhrase" json:"reason_phrase,omitempty"`
576	CloseType               *CloseType `protobuf:"varint,3,opt,name=close_type,json=closeType,enum=pb.CloseType" json:"close_type,omitempty"`
577	TransportCloseFrameType *uint64    `protobuf:"varint,4,opt,name=transport_close_frame_type,json=transportCloseFrameType" json:"transport_close_frame_type,omitempty"`
578	XXX_NoUnkeyedLiteral    struct{}   `json:"-"`
579	XXX_unrecognized        []byte     `json:"-"`
580	XXX_sizecache           int32      `json:"-"`
581}
582
583func (m *CloseInfo) Reset()         { *m = CloseInfo{} }
584func (m *CloseInfo) String() string { return proto.CompactTextString(m) }
585func (*CloseInfo) ProtoMessage()    {}
586func (*CloseInfo) Descriptor() ([]byte, []int) {
587	return fileDescriptor_79ecf15e0416742d, []int{5}
588}
589
590func (m *CloseInfo) XXX_Unmarshal(b []byte) error {
591	return xxx_messageInfo_CloseInfo.Unmarshal(m, b)
592}
593func (m *CloseInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
594	return xxx_messageInfo_CloseInfo.Marshal(b, m, deterministic)
595}
596func (m *CloseInfo) XXX_Merge(src proto.Message) {
597	xxx_messageInfo_CloseInfo.Merge(m, src)
598}
599func (m *CloseInfo) XXX_Size() int {
600	return xxx_messageInfo_CloseInfo.Size(m)
601}
602func (m *CloseInfo) XXX_DiscardUnknown() {
603	xxx_messageInfo_CloseInfo.DiscardUnknown(m)
604}
605
606var xxx_messageInfo_CloseInfo proto.InternalMessageInfo
607
608func (m *CloseInfo) GetErrorCode() uint32 {
609	if m != nil && m.ErrorCode != nil {
610		return *m.ErrorCode
611	}
612	return 0
613}
614
615func (m *CloseInfo) GetReasonPhrase() string {
616	if m != nil && m.ReasonPhrase != nil {
617		return *m.ReasonPhrase
618	}
619	return ""
620}
621
622func (m *CloseInfo) GetCloseType() CloseType {
623	if m != nil && m.CloseType != nil {
624		return *m.CloseType
625	}
626	return CloseType_GOOGLE_QUIC_CONNECTION_CLOSE
627}
628
629func (m *CloseInfo) GetTransportCloseFrameType() uint64 {
630	if m != nil && m.TransportCloseFrameType != nil {
631		return *m.TransportCloseFrameType
632	}
633	return 0
634}
635
636// Metadata for MAX_DATA/MAX_STREAM_DATA frames.
637type FlowControlInfo struct {
638	MaxData              *uint64  `protobuf:"varint,1,opt,name=max_data,json=maxData" json:"max_data,omitempty"`
639	StreamId             *uint64  `protobuf:"varint,2,opt,name=stream_id,json=streamId" json:"stream_id,omitempty"`
640	XXX_NoUnkeyedLiteral struct{} `json:"-"`
641	XXX_unrecognized     []byte   `json:"-"`
642	XXX_sizecache        int32    `json:"-"`
643}
644
645func (m *FlowControlInfo) Reset()         { *m = FlowControlInfo{} }
646func (m *FlowControlInfo) String() string { return proto.CompactTextString(m) }
647func (*FlowControlInfo) ProtoMessage()    {}
648func (*FlowControlInfo) Descriptor() ([]byte, []int) {
649	return fileDescriptor_79ecf15e0416742d, []int{6}
650}
651
652func (m *FlowControlInfo) XXX_Unmarshal(b []byte) error {
653	return xxx_messageInfo_FlowControlInfo.Unmarshal(m, b)
654}
655func (m *FlowControlInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
656	return xxx_messageInfo_FlowControlInfo.Marshal(b, m, deterministic)
657}
658func (m *FlowControlInfo) XXX_Merge(src proto.Message) {
659	xxx_messageInfo_FlowControlInfo.Merge(m, src)
660}
661func (m *FlowControlInfo) XXX_Size() int {
662	return xxx_messageInfo_FlowControlInfo.Size(m)
663}
664func (m *FlowControlInfo) XXX_DiscardUnknown() {
665	xxx_messageInfo_FlowControlInfo.DiscardUnknown(m)
666}
667
668var xxx_messageInfo_FlowControlInfo proto.InternalMessageInfo
669
670func (m *FlowControlInfo) GetMaxData() uint64 {
671	if m != nil && m.MaxData != nil {
672		return *m.MaxData
673	}
674	return 0
675}
676
677func (m *FlowControlInfo) GetStreamId() uint64 {
678	if m != nil && m.StreamId != nil {
679		return *m.StreamId
680	}
681	return 0
682}
683
684// A message representing a frame, either sent or received.
685type Frame struct {
686	FrameType            *FrameType       `protobuf:"varint,1,opt,name=frame_type,json=frameType,enum=pb.FrameType" json:"frame_type,omitempty"`
687	StreamFrameInfo      *StreamFrameInfo `protobuf:"bytes,2,opt,name=stream_frame_info,json=streamFrameInfo" json:"stream_frame_info,omitempty"`
688	AckInfo              *AckInfo         `protobuf:"bytes,3,opt,name=ack_info,json=ackInfo" json:"ack_info,omitempty"`
689	ResetStreamInfo      *ResetStreamInfo `protobuf:"bytes,4,opt,name=reset_stream_info,json=resetStreamInfo" json:"reset_stream_info,omitempty"`
690	CloseInfo            *CloseInfo       `protobuf:"bytes,5,opt,name=close_info,json=closeInfo" json:"close_info,omitempty"`
691	FlowControlInfo      *FlowControlInfo `protobuf:"bytes,6,opt,name=flow_control_info,json=flowControlInfo" json:"flow_control_info,omitempty"`
692	CryptoFrameInfo      *CryptoFrameInfo `protobuf:"bytes,7,opt,name=crypto_frame_info,json=cryptoFrameInfo" json:"crypto_frame_info,omitempty"`
693	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
694	XXX_unrecognized     []byte           `json:"-"`
695	XXX_sizecache        int32            `json:"-"`
696}
697
698func (m *Frame) Reset()         { *m = Frame{} }
699func (m *Frame) String() string { return proto.CompactTextString(m) }
700func (*Frame) ProtoMessage()    {}
701func (*Frame) Descriptor() ([]byte, []int) {
702	return fileDescriptor_79ecf15e0416742d, []int{7}
703}
704
705func (m *Frame) XXX_Unmarshal(b []byte) error {
706	return xxx_messageInfo_Frame.Unmarshal(m, b)
707}
708func (m *Frame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
709	return xxx_messageInfo_Frame.Marshal(b, m, deterministic)
710}
711func (m *Frame) XXX_Merge(src proto.Message) {
712	xxx_messageInfo_Frame.Merge(m, src)
713}
714func (m *Frame) XXX_Size() int {
715	return xxx_messageInfo_Frame.Size(m)
716}
717func (m *Frame) XXX_DiscardUnknown() {
718	xxx_messageInfo_Frame.DiscardUnknown(m)
719}
720
721var xxx_messageInfo_Frame proto.InternalMessageInfo
722
723func (m *Frame) GetFrameType() FrameType {
724	if m != nil && m.FrameType != nil {
725		return *m.FrameType
726	}
727	return FrameType_UNKNOWN_FRAME
728}
729
730func (m *Frame) GetStreamFrameInfo() *StreamFrameInfo {
731	if m != nil {
732		return m.StreamFrameInfo
733	}
734	return nil
735}
736
737func (m *Frame) GetAckInfo() *AckInfo {
738	if m != nil {
739		return m.AckInfo
740	}
741	return nil
742}
743
744func (m *Frame) GetResetStreamInfo() *ResetStreamInfo {
745	if m != nil {
746		return m.ResetStreamInfo
747	}
748	return nil
749}
750
751func (m *Frame) GetCloseInfo() *CloseInfo {
752	if m != nil {
753		return m.CloseInfo
754	}
755	return nil
756}
757
758func (m *Frame) GetFlowControlInfo() *FlowControlInfo {
759	if m != nil {
760		return m.FlowControlInfo
761	}
762	return nil
763}
764
765func (m *Frame) GetCryptoFrameInfo() *CryptoFrameInfo {
766	if m != nil {
767		return m.CryptoFrameInfo
768	}
769	return nil
770}
771
772// Metadata that represents transport stack's understanding of the current state
773// of the transport channel.
774type TransportState struct {
775	MinRttUs *uint64 `protobuf:"varint,1,opt,name=min_rtt_us,json=minRttUs" json:"min_rtt_us,omitempty"`
776	// Smoothed RTT, usually computed using EWMA.
777	SmoothedRttUs *uint64 `protobuf:"varint,2,opt,name=smoothed_rtt_us,json=smoothedRttUs" json:"smoothed_rtt_us,omitempty"`
778	// The latest RTT measureent available.
779	LastRttUs     *uint64 `protobuf:"varint,3,opt,name=last_rtt_us,json=lastRttUs" json:"last_rtt_us,omitempty"`
780	InFlightBytes *uint64 `protobuf:"varint,4,opt,name=in_flight_bytes,json=inFlightBytes" json:"in_flight_bytes,omitempty"`
781	CwndBytes     *uint64 `protobuf:"varint,5,opt,name=cwnd_bytes,json=cwndBytes" json:"cwnd_bytes,omitempty"`
782	// Pacing rate, in bits per second.
783	PacingRateBps *uint64 `protobuf:"varint,6,opt,name=pacing_rate_bps,json=pacingRateBps" json:"pacing_rate_bps,omitempty"`
784	// Any arbitrary information about congestion control state that is not
785	// representable via parameters above.
786	CongestionControlState *string  `protobuf:"bytes,7,opt,name=congestion_control_state,json=congestionControlState" json:"congestion_control_state,omitempty"`
787	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
788	XXX_unrecognized       []byte   `json:"-"`
789	XXX_sizecache          int32    `json:"-"`
790}
791
792func (m *TransportState) Reset()         { *m = TransportState{} }
793func (m *TransportState) String() string { return proto.CompactTextString(m) }
794func (*TransportState) ProtoMessage()    {}
795func (*TransportState) Descriptor() ([]byte, []int) {
796	return fileDescriptor_79ecf15e0416742d, []int{8}
797}
798
799func (m *TransportState) XXX_Unmarshal(b []byte) error {
800	return xxx_messageInfo_TransportState.Unmarshal(m, b)
801}
802func (m *TransportState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
803	return xxx_messageInfo_TransportState.Marshal(b, m, deterministic)
804}
805func (m *TransportState) XXX_Merge(src proto.Message) {
806	xxx_messageInfo_TransportState.Merge(m, src)
807}
808func (m *TransportState) XXX_Size() int {
809	return xxx_messageInfo_TransportState.Size(m)
810}
811func (m *TransportState) XXX_DiscardUnknown() {
812	xxx_messageInfo_TransportState.DiscardUnknown(m)
813}
814
815var xxx_messageInfo_TransportState proto.InternalMessageInfo
816
817func (m *TransportState) GetMinRttUs() uint64 {
818	if m != nil && m.MinRttUs != nil {
819		return *m.MinRttUs
820	}
821	return 0
822}
823
824func (m *TransportState) GetSmoothedRttUs() uint64 {
825	if m != nil && m.SmoothedRttUs != nil {
826		return *m.SmoothedRttUs
827	}
828	return 0
829}
830
831func (m *TransportState) GetLastRttUs() uint64 {
832	if m != nil && m.LastRttUs != nil {
833		return *m.LastRttUs
834	}
835	return 0
836}
837
838func (m *TransportState) GetInFlightBytes() uint64 {
839	if m != nil && m.InFlightBytes != nil {
840		return *m.InFlightBytes
841	}
842	return 0
843}
844
845func (m *TransportState) GetCwndBytes() uint64 {
846	if m != nil && m.CwndBytes != nil {
847		return *m.CwndBytes
848	}
849	return 0
850}
851
852func (m *TransportState) GetPacingRateBps() uint64 {
853	if m != nil && m.PacingRateBps != nil {
854		return *m.PacingRateBps
855	}
856	return 0
857}
858
859func (m *TransportState) GetCongestionControlState() string {
860	if m != nil && m.CongestionControlState != nil {
861		return *m.CongestionControlState
862	}
863	return ""
864}
865
866// Documents external network parameters supplied to the sender.  Typically not
867// all of those would be supplied (e.g. if bandwidth and RTT are supplied, you
868// can infer the suggested CWND), but there are no restrictions on which fields
869// may or may not be set.
870type ExternalNetworkParameters struct {
871	BandwidthBps         *uint64  `protobuf:"varint,1,opt,name=bandwidth_bps,json=bandwidthBps" json:"bandwidth_bps,omitempty"`
872	RttUs                *uint64  `protobuf:"varint,2,opt,name=rtt_us,json=rttUs" json:"rtt_us,omitempty"`
873	CwndBytes            *uint64  `protobuf:"varint,3,opt,name=cwnd_bytes,json=cwndBytes" json:"cwnd_bytes,omitempty"`
874	XXX_NoUnkeyedLiteral struct{} `json:"-"`
875	XXX_unrecognized     []byte   `json:"-"`
876	XXX_sizecache        int32    `json:"-"`
877}
878
879func (m *ExternalNetworkParameters) Reset()         { *m = ExternalNetworkParameters{} }
880func (m *ExternalNetworkParameters) String() string { return proto.CompactTextString(m) }
881func (*ExternalNetworkParameters) ProtoMessage()    {}
882func (*ExternalNetworkParameters) Descriptor() ([]byte, []int) {
883	return fileDescriptor_79ecf15e0416742d, []int{9}
884}
885
886func (m *ExternalNetworkParameters) XXX_Unmarshal(b []byte) error {
887	return xxx_messageInfo_ExternalNetworkParameters.Unmarshal(m, b)
888}
889func (m *ExternalNetworkParameters) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
890	return xxx_messageInfo_ExternalNetworkParameters.Marshal(b, m, deterministic)
891}
892func (m *ExternalNetworkParameters) XXX_Merge(src proto.Message) {
893	xxx_messageInfo_ExternalNetworkParameters.Merge(m, src)
894}
895func (m *ExternalNetworkParameters) XXX_Size() int {
896	return xxx_messageInfo_ExternalNetworkParameters.Size(m)
897}
898func (m *ExternalNetworkParameters) XXX_DiscardUnknown() {
899	xxx_messageInfo_ExternalNetworkParameters.DiscardUnknown(m)
900}
901
902var xxx_messageInfo_ExternalNetworkParameters proto.InternalMessageInfo
903
904func (m *ExternalNetworkParameters) GetBandwidthBps() uint64 {
905	if m != nil && m.BandwidthBps != nil {
906		return *m.BandwidthBps
907	}
908	return 0
909}
910
911func (m *ExternalNetworkParameters) GetRttUs() uint64 {
912	if m != nil && m.RttUs != nil {
913		return *m.RttUs
914	}
915	return 0
916}
917
918func (m *ExternalNetworkParameters) GetCwndBytes() uint64 {
919	if m != nil && m.CwndBytes != nil {
920		return *m.CwndBytes
921	}
922	return 0
923}
924
925// An event that has occurred over duration of the connection.
926type Event struct {
927	TimeUs          *uint64          `protobuf:"varint,1,opt,name=time_us,json=timeUs" json:"time_us,omitempty"`
928	EventType       *EventType       `protobuf:"varint,2,opt,name=event_type,json=eventType,enum=pb.EventType" json:"event_type,omitempty"`
929	PacketNumber    *uint64          `protobuf:"varint,3,opt,name=packet_number,json=packetNumber" json:"packet_number,omitempty"`
930	Frames          []*Frame         `protobuf:"bytes,4,rep,name=frames" json:"frames,omitempty"`
931	PacketSize      *uint64          `protobuf:"varint,5,opt,name=packet_size,json=packetSize" json:"packet_size,omitempty"`
932	EncryptionLevel *EncryptionLevel `protobuf:"varint,6,opt,name=encryption_level,json=encryptionLevel,enum=pb.EncryptionLevel" json:"encryption_level,omitempty"`
933	// State of the transport stack after the event has happened.
934	TransportState *TransportState `protobuf:"bytes,7,opt,name=transport_state,json=transportState" json:"transport_state,omitempty"`
935	// For event_type = EXTERNAL_PARAMETERS, record parameters specified.
936	ExternalNetworkParameters *ExternalNetworkParameters `protobuf:"bytes,8,opt,name=external_network_parameters,json=externalNetworkParameters" json:"external_network_parameters,omitempty"`
937	// For sent packets, indicate if there is a special reason for why the packet
938	// in question was transmitted.
939	TransmissionReason   *TransmissionReason `protobuf:"varint,9,opt,name=transmission_reason,json=transmissionReason,enum=pb.TransmissionReason,def=0" json:"transmission_reason,omitempty"`
940	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
941	XXX_unrecognized     []byte              `json:"-"`
942	XXX_sizecache        int32               `json:"-"`
943}
944
945func (m *Event) Reset()         { *m = Event{} }
946func (m *Event) String() string { return proto.CompactTextString(m) }
947func (*Event) ProtoMessage()    {}
948func (*Event) Descriptor() ([]byte, []int) {
949	return fileDescriptor_79ecf15e0416742d, []int{10}
950}
951
952func (m *Event) XXX_Unmarshal(b []byte) error {
953	return xxx_messageInfo_Event.Unmarshal(m, b)
954}
955func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
956	return xxx_messageInfo_Event.Marshal(b, m, deterministic)
957}
958func (m *Event) XXX_Merge(src proto.Message) {
959	xxx_messageInfo_Event.Merge(m, src)
960}
961func (m *Event) XXX_Size() int {
962	return xxx_messageInfo_Event.Size(m)
963}
964func (m *Event) XXX_DiscardUnknown() {
965	xxx_messageInfo_Event.DiscardUnknown(m)
966}
967
968var xxx_messageInfo_Event proto.InternalMessageInfo
969
970const Default_Event_TransmissionReason TransmissionReason = TransmissionReason_NORMAL_TRANSMISSION
971
972func (m *Event) GetTimeUs() uint64 {
973	if m != nil && m.TimeUs != nil {
974		return *m.TimeUs
975	}
976	return 0
977}
978
979func (m *Event) GetEventType() EventType {
980	if m != nil && m.EventType != nil {
981		return *m.EventType
982	}
983	return EventType_UNKNOWN_EVENT
984}
985
986func (m *Event) GetPacketNumber() uint64 {
987	if m != nil && m.PacketNumber != nil {
988		return *m.PacketNumber
989	}
990	return 0
991}
992
993func (m *Event) GetFrames() []*Frame {
994	if m != nil {
995		return m.Frames
996	}
997	return nil
998}
999
1000func (m *Event) GetPacketSize() uint64 {
1001	if m != nil && m.PacketSize != nil {
1002		return *m.PacketSize
1003	}
1004	return 0
1005}
1006
1007func (m *Event) GetEncryptionLevel() EncryptionLevel {
1008	if m != nil && m.EncryptionLevel != nil {
1009		return *m.EncryptionLevel
1010	}
1011	return EncryptionLevel_ENCRYPTION_UNKNOWN
1012}
1013
1014func (m *Event) GetTransportState() *TransportState {
1015	if m != nil {
1016		return m.TransportState
1017	}
1018	return nil
1019}
1020
1021func (m *Event) GetExternalNetworkParameters() *ExternalNetworkParameters {
1022	if m != nil {
1023		return m.ExternalNetworkParameters
1024	}
1025	return nil
1026}
1027
1028func (m *Event) GetTransmissionReason() TransmissionReason {
1029	if m != nil && m.TransmissionReason != nil {
1030		return *m.TransmissionReason
1031	}
1032	return Default_Event_TransmissionReason
1033}
1034
1035type Trace struct {
1036	// QUIC version tag, as represented on wire.  Should be always 4 bytes long.
1037	ProtocolVersion []byte `protobuf:"bytes,1,opt,name=protocol_version,json=protocolVersion" json:"protocol_version,omitempty"`
1038	// Source and destination connection ID.  If multiple connection IDs are used,
1039	// record the first one used with short-form header.
1040	SourceConnectionId      []byte   `protobuf:"bytes,2,opt,name=source_connection_id,json=sourceConnectionId" json:"source_connection_id,omitempty"`
1041	DestinationConnectionId []byte   `protobuf:"bytes,3,opt,name=destination_connection_id,json=destinationConnectionId" json:"destination_connection_id,omitempty"`
1042	Events                  []*Event `protobuf:"bytes,4,rep,name=events" json:"events,omitempty"`
1043	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
1044	XXX_unrecognized        []byte   `json:"-"`
1045	XXX_sizecache           int32    `json:"-"`
1046}
1047
1048func (m *Trace) Reset()         { *m = Trace{} }
1049func (m *Trace) String() string { return proto.CompactTextString(m) }
1050func (*Trace) ProtoMessage()    {}
1051func (*Trace) Descriptor() ([]byte, []int) {
1052	return fileDescriptor_79ecf15e0416742d, []int{11}
1053}
1054
1055func (m *Trace) XXX_Unmarshal(b []byte) error {
1056	return xxx_messageInfo_Trace.Unmarshal(m, b)
1057}
1058func (m *Trace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1059	return xxx_messageInfo_Trace.Marshal(b, m, deterministic)
1060}
1061func (m *Trace) XXX_Merge(src proto.Message) {
1062	xxx_messageInfo_Trace.Merge(m, src)
1063}
1064func (m *Trace) XXX_Size() int {
1065	return xxx_messageInfo_Trace.Size(m)
1066}
1067func (m *Trace) XXX_DiscardUnknown() {
1068	xxx_messageInfo_Trace.DiscardUnknown(m)
1069}
1070
1071var xxx_messageInfo_Trace proto.InternalMessageInfo
1072
1073func (m *Trace) GetProtocolVersion() []byte {
1074	if m != nil {
1075		return m.ProtocolVersion
1076	}
1077	return nil
1078}
1079
1080func (m *Trace) GetSourceConnectionId() []byte {
1081	if m != nil {
1082		return m.SourceConnectionId
1083	}
1084	return nil
1085}
1086
1087func (m *Trace) GetDestinationConnectionId() []byte {
1088	if m != nil {
1089		return m.DestinationConnectionId
1090	}
1091	return nil
1092}
1093
1094func (m *Trace) GetEvents() []*Event {
1095	if m != nil {
1096		return m.Events
1097	}
1098	return nil
1099}
1100
1101func init() {
1102	proto.RegisterEnum("pb.FrameType", FrameType_name, FrameType_value)
1103	proto.RegisterEnum("pb.CloseType", CloseType_name, CloseType_value)
1104	proto.RegisterEnum("pb.EncryptionLevel", EncryptionLevel_name, EncryptionLevel_value)
1105	proto.RegisterEnum("pb.EventType", EventType_name, EventType_value)
1106	proto.RegisterEnum("pb.TransmissionReason", TransmissionReason_name, TransmissionReason_value)
1107	proto.RegisterType((*StreamFrameInfo)(nil), "pb.StreamFrameInfo")
1108	proto.RegisterType((*CryptoFrameInfo)(nil), "pb.CryptoFrameInfo")
1109	proto.RegisterType((*AckBlock)(nil), "pb.AckBlock")
1110	proto.RegisterType((*AckInfo)(nil), "pb.AckInfo")
1111	proto.RegisterType((*ResetStreamInfo)(nil), "pb.ResetStreamInfo")
1112	proto.RegisterType((*CloseInfo)(nil), "pb.CloseInfo")
1113	proto.RegisterType((*FlowControlInfo)(nil), "pb.FlowControlInfo")
1114	proto.RegisterType((*Frame)(nil), "pb.Frame")
1115	proto.RegisterType((*TransportState)(nil), "pb.TransportState")
1116	proto.RegisterType((*ExternalNetworkParameters)(nil), "pb.ExternalNetworkParameters")
1117	proto.RegisterType((*Event)(nil), "pb.Event")
1118	proto.RegisterType((*Trace)(nil), "pb.Trace")
1119}
1120
1121func init() { proto.RegisterFile("quic-trace.proto", fileDescriptor_79ecf15e0416742d) }
1122
1123var fileDescriptor_79ecf15e0416742d = []byte{
1124	// 1432 bytes of a gzipped FileDescriptorProto
1125	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x56, 0xdd, 0x6e, 0xe3, 0x44,
1126	0x14, 0xae, 0xf3, 0x9f, 0x93, 0xa4, 0x76, 0xa7, 0xa5, 0x4d, 0xd9, 0x5d, 0xe8, 0x06, 0x54, 0x95,
1127	0x0a, 0x56, 0xbb, 0x15, 0x17, 0x68, 0x57, 0x62, 0xe5, 0x26, 0x6e, 0xd7, 0x6a, 0x6a, 0x87, 0x89,
1128	0xbb, 0x2c, 0x12, 0x30, 0x72, 0x9d, 0x49, 0x6b, 0xd5, 0xb1, 0x8d, 0x3d, 0x6d, 0xb7, 0x7b, 0x8b,
1129	0xd0, 0x5e, 0xf2, 0x08, 0xbc, 0x07, 0x97, 0xf0, 0x44, 0xbc, 0x01, 0x9a, 0x19, 0x3b, 0x7f, 0x65,
1130	0xc5, 0x9d, 0xe7, 0x3b, 0xdf, 0xf9, 0x99, 0xef, 0x9c, 0x33, 0x09, 0x68, 0xbf, 0x5c, 0xfb, 0xde,
1131	0x57, 0x2c, 0x71, 0x3d, 0xfa, 0x24, 0x4e, 0x22, 0x16, 0xa1, 0x42, 0x7c, 0xde, 0x89, 0x41, 0x1d,
1132	0xb2, 0x84, 0xba, 0x93, 0xa3, 0xc4, 0x9d, 0x50, 0x33, 0x1c, 0x47, 0xe8, 0x01, 0xd4, 0x53, 0x01,
1133	0x11, 0x7f, 0xd4, 0x56, 0x76, 0x94, 0xbd, 0x12, 0xae, 0x49, 0xc0, 0x1c, 0x21, 0x0d, 0x8a, 0x63,
1134	0x3f, 0x6c, 0x17, 0x76, 0x94, 0xbd, 0x1a, 0xe6, 0x9f, 0x68, 0x13, 0x2a, 0x01, 0x0d, 0x2f, 0xd8,
1135	0x65, 0xbb, 0x28, 0xb8, 0xd9, 0x89, 0xe3, 0xd1, 0x78, 0x9c, 0x52, 0xd6, 0x2e, 0x49, 0x5c, 0x9e,
1136	0x3a, 0x3a, 0xa8, 0xdd, 0xe4, 0x2e, 0x66, 0xd1, 0x2c, 0xe3, 0x2c, 0x84, 0xf2, 0x81, 0x10, 0x85,
1137	0x85, 0x10, 0x16, 0xd4, 0x74, 0xef, 0xea, 0x30, 0x88, 0xbc, 0x2b, 0xf4, 0x18, 0x9a, 0x63, 0x3f,
1138	0x49, 0x19, 0x89, 0x5d, 0xef, 0x8a, 0xb2, 0x2c, 0x42, 0x43, 0x60, 0x03, 0x01, 0xa1, 0x4f, 0xa1,
1139	0x11, 0xb8, 0x33, 0x86, 0x8c, 0x05, 0x1c, 0x92, 0x84, 0xce, 0xcf, 0x50, 0xd5, 0xbd, 0x2b, 0x51,
1140	0xca, 0x33, 0x68, 0x71, 0x6c, 0x94, 0x91, 0xd3, 0xb6, 0xb2, 0x53, 0xdc, 0x6b, 0x1c, 0x34, 0x9f,
1141	0xc4, 0xe7, 0x4f, 0xf2, 0x9c, 0xb8, 0x29, 0x28, 0xd2, 0x39, 0x45, 0x3b, 0xc0, 0xcf, 0x64, 0x44,
1142	0x03, 0xf7, 0x8e, 0x5c, 0xa7, 0x79, 0x7c, 0xd7, 0xbb, 0xea, 0x71, 0xe8, 0x2c, 0xed, 0xbc, 0x57,
1143	0x40, 0xc5, 0x34, 0xa5, 0x4c, 0x4a, 0xfd, 0xff, 0x2a, 0x7f, 0x0d, 0x9b, 0x6e, 0x1c, 0x07, 0xbe,
1144	0xe7, 0x32, 0x3f, 0x0a, 0x09, 0x4d, 0x92, 0x28, 0x21, 0x5e, 0x34, 0xa2, 0x22, 0x78, 0x0b, 0x6f,
1145	0xcc, 0x59, 0x0d, 0x6e, 0xec, 0x46, 0x23, 0x2a, 0xa5, 0x08, 0xdd, 0x80, 0x64, 0xa2, 0x15, 0x73,
1146	0x29, 0x42, 0x37, 0xb0, 0xa5, 0x72, 0x7f, 0x2a, 0x50, 0xef, 0x06, 0x51, 0x2a, 0x75, 0x7f, 0x04,
1147	0x30, 0x17, 0x5a, 0x11, 0xa1, 0xeb, 0x74, 0x1a, 0xef, 0x33, 0x68, 0x25, 0xd4, 0x4d, 0xa3, 0x90,
1148	0xc4, 0x97, 0x89, 0x9b, 0xca, 0xe4, 0x75, 0xdc, 0x94, 0xe0, 0x40, 0x60, 0xe8, 0x4b, 0x00, 0x8f,
1149	0x07, 0x24, 0xec, 0x2e, 0xa6, 0x22, 0xe5, 0xea, 0x41, 0x8b, 0xab, 0x25, 0xd2, 0x38, 0x77, 0x31,
1150	0xc5, 0x75, 0x2f, 0xff, 0x44, 0x2f, 0xe0, 0x63, 0x96, 0xb8, 0x61, 0x1a, 0x47, 0x09, 0x23, 0xd2,
1151	0x6f, 0xcc, 0xc7, 0x40, 0x7a, 0xcb, 0x41, 0xd9, 0x9a, 0x32, 0x44, 0x08, 0x31, 0x26, 0xdc, 0xb9,
1152	0x63, 0x82, 0x7a, 0x14, 0x44, 0xb7, 0xdd, 0x28, 0x64, 0x49, 0x14, 0x88, 0x1b, 0x6c, 0x43, 0x6d,
1153	0xe2, 0xbe, 0x25, 0x23, 0x97, 0xb9, 0x99, 0x88, 0xd5, 0x89, 0xfb, 0xb6, 0xe7, 0x32, 0x77, 0x51,
1154	0xe0, 0xc2, 0xa2, 0xc0, 0x9d, 0xdf, 0x8b, 0x50, 0x16, 0x81, 0x79, 0xfd, 0x73, 0x15, 0x28, 0xb3,
1155	0xfa, 0xa7, 0x79, 0x71, 0x7d, 0x9c, 0x7f, 0xa2, 0x97, 0xb0, 0x96, 0x05, 0x95, 0x4e, 0x7e, 0x38,
1156	0x8e, 0x44, 0xf0, 0xc6, 0xc1, 0x3a, 0x77, 0x5a, 0xda, 0x25, 0xac, 0xa6, 0x4b, 0xcb, 0xb5, 0x0b,
1157	0x35, 0x3e, 0x2c, 0xc2, 0xaf, 0x28, 0xfc, 0x1a, 0xd9, 0x68, 0x09, 0x7e, 0xd5, 0xcd, 0xe6, 0xf0,
1158	0x25, 0xac, 0x25, 0x7c, 0x62, 0x48, 0x7e, 0x07, 0xee, 0x50, 0x9a, 0x25, 0x5a, 0x1a, 0x27, 0xac,
1159	0x26, 0x4b, 0xf3, 0x35, 0xed, 0x8b, 0xf0, 0x2c, 0x0b, 0xcf, 0x59, 0x5f, 0x84, 0x8f, 0xec, 0x4b,
1160	0x9e, 0x6e, 0x1c, 0x44, 0xb7, 0xc4, 0x93, 0xda, 0x4a, 0xa7, 0xca, 0x2c, 0xdd, 0x92, 0xee, 0x58,
1161	0x1d, 0x2f, 0x35, 0xe2, 0x25, 0xac, 0x79, 0x62, 0xab, 0xe7, 0x85, 0xa9, 0xce, 0x02, 0x2c, 0xad,
1162	0x3c, 0x56, 0xbd, 0x45, 0xa0, 0xf3, 0x47, 0x01, 0x56, 0x9d, 0xbc, 0xf1, 0x43, 0xe6, 0x32, 0x8a,
1163	0x1e, 0x02, 0x4c, 0xfc, 0x90, 0x24, 0x8c, 0xf1, 0xb5, 0xca, 0x76, 0x64, 0xe2, 0x87, 0x98, 0xb1,
1164	0xb3, 0x14, 0xed, 0x82, 0x9a, 0x4e, 0xa2, 0x88, 0x5d, 0xd2, 0x51, 0x4e, 0x91, 0x5d, 0x6e, 0xe5,
1165	0xb0, 0xe4, 0x7d, 0x92, 0x6d, 0x7f, 0xc6, 0x91, 0x4b, 0x51, 0xe7, 0xd0, 0x34, 0x8e, 0x1f, 0x92,
1166	0x71, 0xe0, 0x5f, 0x5c, 0x32, 0x72, 0x7e, 0xc7, 0x68, 0x9a, 0xcd, 0x61, 0xcb, 0x0f, 0x8f, 0x04,
1167	0x7a, 0xc8, 0x41, 0xbe, 0x2c, 0xde, 0x6d, 0x38, 0xca, 0x28, 0x65, 0x19, 0x86, 0x23, 0xd2, 0xbc,
1168	0x0b, 0x6a, 0xec, 0x7a, 0x7e, 0x78, 0x41, 0x12, 0x97, 0x51, 0x72, 0x1e, 0xa7, 0x42, 0xbf, 0x12,
1169	0x6e, 0x49, 0x18, 0xbb, 0x8c, 0x1e, 0xc6, 0x29, 0xfa, 0x06, 0xda, 0x5e, 0x14, 0x5e, 0xd0, 0x54,
1170	0x6c, 0x76, 0xae, 0x77, 0xca, 0x2f, 0x2c, 0xf4, 0xaa, 0xe3, 0xcd, 0x99, 0x3d, 0x53, 0x58, 0xc8,
1171	0xd1, 0xb9, 0x81, 0x6d, 0xe3, 0x2d, 0xa3, 0x49, 0xe8, 0x06, 0x16, 0x65, 0xb7, 0x51, 0x72, 0x35,
1172	0x70, 0xb9, 0x7c, 0x8c, 0x26, 0x29, 0xdf, 0xd5, 0x73, 0x37, 0x1c, 0xdd, 0xfa, 0x23, 0x76, 0x29,
1173	0x92, 0x4b, 0xb9, 0x9a, 0x53, 0x90, 0xe7, 0xfe, 0x08, 0x2a, 0x0b, 0x4a, 0x95, 0x13, 0xa1, 0xc0,
1174	0xe2, 0xcd, 0x8a, 0x4b, 0x37, 0xeb, 0xfc, 0x53, 0x84, 0xb2, 0x71, 0x43, 0x43, 0x86, 0xb6, 0xa0,
1175	0xca, 0xfc, 0x09, 0x9d, 0x75, 0xa3, 0xc2, 0x8f, 0x67, 0x29, 0x1f, 0x36, 0xca, 0x19, 0x72, 0x89,
1176	0x0a, 0xb3, 0x25, 0x12, 0x7e, 0x72, 0x89, 0x68, 0xfe, 0xc9, 0x6b, 0x95, 0xaf, 0x2b, 0x09, 0xaf,
1177	0x27, 0xe7, 0x34, 0xc9, 0x52, 0x36, 0x25, 0x68, 0x09, 0x0c, 0x3d, 0x86, 0x8a, 0x98, 0x24, 0xde,
1178	0x0d, 0xfe, 0x02, 0xd7, 0xa7, 0x3b, 0x89, 0x33, 0x03, 0x7f, 0xd7, 0xb3, 0x38, 0xa9, 0xff, 0x8e,
1179	0x66, 0x2d, 0x01, 0x09, 0x0d, 0xfd, 0x77, 0x14, 0x7d, 0x0b, 0x1a, 0x0d, 0xc5, 0xa0, 0x71, 0xad,
1180	0x03, 0x7a, 0x43, 0x03, 0xd1, 0x94, 0x55, 0x39, 0x93, 0xc6, 0xd4, 0xd6, 0xe7, 0x26, 0xac, 0xd2,
1181	0x45, 0x00, 0xbd, 0x00, 0x75, 0xf6, 0x5a, 0xcd, 0x5a, 0xd4, 0x38, 0x40, 0xdc, 0x7d, 0x71, 0x5a,
1182	0xf1, 0x2a, 0x5b, 0x9c, 0xde, 0x9f, 0xe0, 0x01, 0xcd, 0xda, 0x45, 0x42, 0xd9, 0x2f, 0x12, 0x4f,
1183	0x1b, 0xd6, 0xae, 0x89, 0x40, 0x8f, 0x44, 0x1d, 0x1f, 0xea, 0x2a, 0xde, 0xa6, 0x1f, 0x6c, 0xf8,
1184	0x8f, 0xb0, 0x2e, 0x12, 0x4e, 0xfc, 0x34, 0xe5, 0xb7, 0x93, 0x8f, 0x72, 0xbb, 0x2e, 0xae, 0xb7,
1185	0x39, 0xad, 0x2f, 0x33, 0x63, 0x61, 0x7d, 0xbe, 0x6e, 0xd9, 0xf8, 0x54, 0xef, 0x13, 0x07, 0xeb,
1186	0xd6, 0xf0, 0xd4, 0x1c, 0x0e, 0x4d, 0xdb, 0xc2, 0x88, 0xdd, 0x23, 0x76, 0xfe, 0x56, 0xa0, 0xec,
1187	0xf0, 0xbf, 0x0a, 0xe8, 0x0b, 0xd0, 0xc4, 0xbf, 0x05, 0x2f, 0x0a, 0xc8, 0x0d, 0x4d, 0x38, 0x47,
1188	0x34, 0xbf, 0x89, 0xd5, 0x1c, 0x7f, 0x2d, 0x61, 0xf4, 0x14, 0x36, 0xd2, 0xe8, 0x3a, 0xf1, 0x28,
1189	0x1f, 0xeb, 0x90, 0x7a, 0x42, 0xf5, 0xec, 0xf1, 0x6d, 0x62, 0x24, 0x6d, 0xdd, 0xa9, 0xc9, 0x1c,
1190	0xa1, 0xe7, 0xb0, 0x3d, 0xe2, 0x93, 0x1e, 0xba, 0xf9, 0x36, 0xcc, 0xb9, 0x15, 0x85, 0xdb, 0xd6,
1191	0x1c, 0x61, 0xc1, 0xf7, 0x31, 0x54, 0xc4, 0x48, 0x2d, 0x0c, 0x88, 0x98, 0x37, 0x9c, 0x19, 0xf6,
1192	0xff, 0x52, 0xa0, 0x3e, 0x7d, 0xc6, 0xd1, 0x1a, 0xb4, 0xce, 0xac, 0x13, 0xcb, 0xfe, 0xde, 0x22,
1193	0x47, 0x58, 0x3f, 0x35, 0xb4, 0x15, 0x04, 0x50, 0x19, 0x3a, 0xd8, 0xd0, 0x4f, 0x35, 0x05, 0x55,
1194	0xa1, 0xa8, 0x77, 0x4f, 0xb4, 0x02, 0xd2, 0xa0, 0x89, 0x8d, 0xa1, 0xe1, 0x90, 0xcc, 0x54, 0x44,
1195	0x1b, 0xa0, 0x75, 0x6d, 0xcb, 0x32, 0xba, 0x8e, 0x69, 0x5b, 0xa4, 0xdb, 0xb7, 0x87, 0x86, 0x56,
1196	0x42, 0x4d, 0xa8, 0x9d, 0xea, 0x6f, 0x48, 0x4f, 0x77, 0x74, 0xad, 0x8c, 0xd6, 0x41, 0xe5, 0x27,
1197	0xe9, 0x23, 0xc1, 0x0a, 0xaa, 0x41, 0x69, 0x60, 0x5a, 0xc7, 0x5a, 0x15, 0x35, 0xa0, 0x7a, 0xd8,
1198	0xb7, 0xbb, 0x27, 0x46, 0x4f, 0xab, 0x21, 0x04, 0xab, 0x19, 0x2f, 0xc7, 0xea, 0x9c, 0x30, 0xd0,
1199	0x7b, 0x3d, 0xce, 0x06, 0x5e, 0x57, 0x17, 0xff, 0x30, 0x70, 0x6c, 0xad, 0xb1, 0xff, 0x6b, 0xfe,
1200	0x93, 0x2d, 0x2e, 0xb1, 0x03, 0x0f, 0x8f, 0x6d, 0xfb, 0xb8, 0x6f, 0x90, 0xef, 0xce, 0xcc, 0x2e,
1201	0xb9, 0x57, 0xd6, 0x0a, 0xda, 0x83, 0xcf, 0x4d, 0xc3, 0x39, 0x92, 0x76, 0xd1, 0xe8, 0x81, 0x8d,
1202	0x9d, 0xfb, 0x4c, 0x05, 0xed, 0xc3, 0xee, 0x8c, 0xa9, 0x0f, 0x06, 0x7d, 0xb3, 0xab, 0x4b, 0xc2,
1203	0x32, 0xb7, 0xb0, 0xff, 0x9b, 0x02, 0xea, 0xd2, 0xbe, 0xa0, 0x4d, 0x40, 0x86, 0x25, 0xea, 0xe4,
1204	0xcc, 0x4c, 0x5b, 0x6d, 0x65, 0x09, 0x37, 0x2d, 0xd3, 0x31, 0xf5, 0xbe, 0xa6, 0x70, 0x89, 0xe6,
1205	0xf0, 0xa7, 0xd8, 0x71, 0xb4, 0xc2, 0x12, 0xf8, 0x8c, 0x83, 0x45, 0xd4, 0x86, 0x8d, 0x39, 0xf0,
1206	0x95, 0x6e, 0xf5, 0x86, 0xaf, 0xf4, 0x13, 0x43, 0x2b, 0xed, 0xbf, 0x57, 0xa0, 0x3e, 0x7d, 0x54,
1207	0xe6, 0x5b, 0x6a, 0xbc, 0x36, 0x2c, 0x47, 0x5b, 0x41, 0x2a, 0x34, 0x06, 0x7a, 0xf7, 0x84, 0xb7,
1208	0x8f, 0x03, 0x22, 0x6b, 0x06, 0x60, 0xa3, 0x6b, 0x98, 0xaf, 0x8d, 0x9e, 0x56, 0x98, 0x63, 0xf5,
1209	0xed, 0x21, 0xcf, 0xb8, 0x05, 0xeb, 0xf3, 0x0a, 0xf4, 0xcd, 0x53, 0xd3, 0x31, 0x7a, 0x5a, 0x89,
1210	0x1b, 0x8c, 0x37, 0x8e, 0x81, 0x2d, 0xbd, 0x4f, 0x06, 0x3a, 0x9f, 0x1b, 0xc7, 0xc0, 0x43, 0xad,
1211	0xbc, 0x9f, 0x00, 0xba, 0xbf, 0x61, 0x9c, 0xfe, 0x1f, 0x3b, 0xa6, 0xad, 0xf0, 0x32, 0x1c, 0xdd,
1212	0xec, 0xf3, 0x7c, 0x43, 0x32, 0xc0, 0xf6, 0x21, 0xef, 0xc0, 0x06, 0x68, 0xd8, 0xb1, 0x17, 0xa9,
1213	0x05, 0x7e, 0x7b, 0x4e, 0x30, 0xad, 0xe3, 0x45, 0x4b, 0xf1, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff,
1214	0x4a, 0x0f, 0xb7, 0x51, 0xc4, 0x0b, 0x00, 0x00,
1215}
1216