1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/cloud/vision/v1/text_annotation.proto
6 import proto "github.com/golang/protobuf/proto"
9 import _ "google.golang.org/genproto/googleapis/api/annotations"
11 // Reference imports to suppress errors if they are not otherwise used.
16 // Enum to denote the type of break found. New line, space etc.
17 type TextAnnotation_DetectedBreak_BreakType int32
20 // Unknown break label type.
21 TextAnnotation_DetectedBreak_UNKNOWN TextAnnotation_DetectedBreak_BreakType = 0
23 TextAnnotation_DetectedBreak_SPACE TextAnnotation_DetectedBreak_BreakType = 1
24 // Sure space (very wide).
25 TextAnnotation_DetectedBreak_SURE_SPACE TextAnnotation_DetectedBreak_BreakType = 2
26 // Line-wrapping break.
27 TextAnnotation_DetectedBreak_EOL_SURE_SPACE TextAnnotation_DetectedBreak_BreakType = 3
28 // End-line hyphen that is not present in text; does
29 TextAnnotation_DetectedBreak_HYPHEN TextAnnotation_DetectedBreak_BreakType = 4
30 // not co-occur with SPACE, LEADER_SPACE, or
32 // Line break that ends a paragraph.
33 TextAnnotation_DetectedBreak_LINE_BREAK TextAnnotation_DetectedBreak_BreakType = 5
36 var TextAnnotation_DetectedBreak_BreakType_name = map[int32]string{
44 var TextAnnotation_DetectedBreak_BreakType_value = map[string]int32{
53 func (x TextAnnotation_DetectedBreak_BreakType) String() string {
54 return proto.EnumName(TextAnnotation_DetectedBreak_BreakType_name, int32(x))
56 func (TextAnnotation_DetectedBreak_BreakType) EnumDescriptor() ([]byte, []int) {
57 return fileDescriptor2, []int{0, 1, 0}
60 // Type of a block (text, image etc) as identified by OCR.
61 type Block_BlockType int32
64 // Unknown block type.
65 Block_UNKNOWN Block_BlockType = 0
66 // Regular text block.
67 Block_TEXT Block_BlockType = 1
69 Block_TABLE Block_BlockType = 2
71 Block_PICTURE Block_BlockType = 3
72 // Horizontal/vertical line box.
73 Block_RULER Block_BlockType = 4
75 Block_BARCODE Block_BlockType = 5
78 var Block_BlockType_name = map[int32]string{
86 var Block_BlockType_value = map[string]int32{
95 func (x Block_BlockType) String() string {
96 return proto.EnumName(Block_BlockType_name, int32(x))
98 func (Block_BlockType) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{2, 0} }
100 // TextAnnotation contains a structured representation of OCR extracted text.
101 // The hierarchy of an OCR extracted text structure is like this:
102 // TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol
103 // Each structural component, starting from Page, may further have their own
104 // properties. Properties describe detected languages, breaks etc.. Please
105 // refer to the [google.cloud.vision.v1.TextAnnotation.TextProperty][google.cloud.vision.v1.TextAnnotation.TextProperty] message
106 // definition below for more detail.
107 type TextAnnotation struct {
108 // List of pages detected by OCR.
109 Pages []*Page `protobuf:"bytes,1,rep,name=pages" json:"pages,omitempty"`
110 // UTF-8 text detected on the pages.
111 Text string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
114 func (m *TextAnnotation) Reset() { *m = TextAnnotation{} }
115 func (m *TextAnnotation) String() string { return proto.CompactTextString(m) }
116 func (*TextAnnotation) ProtoMessage() {}
117 func (*TextAnnotation) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} }
119 func (m *TextAnnotation) GetPages() []*Page {
126 func (m *TextAnnotation) GetText() string {
133 // Detected language for a structural component.
134 type TextAnnotation_DetectedLanguage struct {
135 // The BCP-47 language code, such as "en-US" or "sr-Latn". For more
137 // http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
138 LanguageCode string `protobuf:"bytes,1,opt,name=language_code,json=languageCode" json:"language_code,omitempty"`
139 // Confidence of detected language. Range [0, 1].
140 Confidence float32 `protobuf:"fixed32,2,opt,name=confidence" json:"confidence,omitempty"`
143 func (m *TextAnnotation_DetectedLanguage) Reset() { *m = TextAnnotation_DetectedLanguage{} }
144 func (m *TextAnnotation_DetectedLanguage) String() string { return proto.CompactTextString(m) }
145 func (*TextAnnotation_DetectedLanguage) ProtoMessage() {}
146 func (*TextAnnotation_DetectedLanguage) Descriptor() ([]byte, []int) {
147 return fileDescriptor2, []int{0, 0}
150 func (m *TextAnnotation_DetectedLanguage) GetLanguageCode() string {
152 return m.LanguageCode
157 func (m *TextAnnotation_DetectedLanguage) GetConfidence() float32 {
164 // Detected start or end of a structural component.
165 type TextAnnotation_DetectedBreak struct {
166 Type TextAnnotation_DetectedBreak_BreakType `protobuf:"varint,1,opt,name=type,enum=google.cloud.vision.v1.TextAnnotation_DetectedBreak_BreakType" json:"type,omitempty"`
167 // True if break prepends the element.
168 IsPrefix bool `protobuf:"varint,2,opt,name=is_prefix,json=isPrefix" json:"is_prefix,omitempty"`
171 func (m *TextAnnotation_DetectedBreak) Reset() { *m = TextAnnotation_DetectedBreak{} }
172 func (m *TextAnnotation_DetectedBreak) String() string { return proto.CompactTextString(m) }
173 func (*TextAnnotation_DetectedBreak) ProtoMessage() {}
174 func (*TextAnnotation_DetectedBreak) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0, 1} }
176 func (m *TextAnnotation_DetectedBreak) GetType() TextAnnotation_DetectedBreak_BreakType {
180 return TextAnnotation_DetectedBreak_UNKNOWN
183 func (m *TextAnnotation_DetectedBreak) GetIsPrefix() bool {
190 // Additional information detected on the structural component.
191 type TextAnnotation_TextProperty struct {
192 // A list of detected languages together with confidence.
193 DetectedLanguages []*TextAnnotation_DetectedLanguage `protobuf:"bytes,1,rep,name=detected_languages,json=detectedLanguages" json:"detected_languages,omitempty"`
194 // Detected start or end of a text segment.
195 DetectedBreak *TextAnnotation_DetectedBreak `protobuf:"bytes,2,opt,name=detected_break,json=detectedBreak" json:"detected_break,omitempty"`
198 func (m *TextAnnotation_TextProperty) Reset() { *m = TextAnnotation_TextProperty{} }
199 func (m *TextAnnotation_TextProperty) String() string { return proto.CompactTextString(m) }
200 func (*TextAnnotation_TextProperty) ProtoMessage() {}
201 func (*TextAnnotation_TextProperty) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0, 2} }
203 func (m *TextAnnotation_TextProperty) GetDetectedLanguages() []*TextAnnotation_DetectedLanguage {
205 return m.DetectedLanguages
210 func (m *TextAnnotation_TextProperty) GetDetectedBreak() *TextAnnotation_DetectedBreak {
212 return m.DetectedBreak
217 // Detected page from OCR.
219 // Additional information detected on the page.
220 Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
221 // Page width in pixels.
222 Width int32 `protobuf:"varint,2,opt,name=width" json:"width,omitempty"`
223 // Page height in pixels.
224 Height int32 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"`
225 // List of blocks of text, images etc on this page.
226 Blocks []*Block `protobuf:"bytes,4,rep,name=blocks" json:"blocks,omitempty"`
229 func (m *Page) Reset() { *m = Page{} }
230 func (m *Page) String() string { return proto.CompactTextString(m) }
231 func (*Page) ProtoMessage() {}
232 func (*Page) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} }
234 func (m *Page) GetProperty() *TextAnnotation_TextProperty {
241 func (m *Page) GetWidth() int32 {
248 func (m *Page) GetHeight() int32 {
255 func (m *Page) GetBlocks() []*Block {
262 // Logical element on the page.
264 // Additional information detected for the block.
265 Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
266 // The bounding box for the block.
267 // The vertices are in the order of top-left, top-right, bottom-right,
268 // bottom-left. When a rotation of the bounding box is detected the rotation
269 // is represented as around the top-left corner as defined when the text is
270 // read in the 'natural' orientation.
272 // * when the text is horizontal it might look like:
276 // * when it's rotated 180 degrees around the top-left corner it becomes:
280 // and the vertice order will still be (0, 1, 2, 3).
281 BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
282 // List of paragraphs in this block (if this blocks is of type text).
283 Paragraphs []*Paragraph `protobuf:"bytes,3,rep,name=paragraphs" json:"paragraphs,omitempty"`
284 // Detected block type (text, image etc) for this block.
285 BlockType Block_BlockType `protobuf:"varint,4,opt,name=block_type,json=blockType,enum=google.cloud.vision.v1.Block_BlockType" json:"block_type,omitempty"`
288 func (m *Block) Reset() { *m = Block{} }
289 func (m *Block) String() string { return proto.CompactTextString(m) }
290 func (*Block) ProtoMessage() {}
291 func (*Block) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{2} }
293 func (m *Block) GetProperty() *TextAnnotation_TextProperty {
300 func (m *Block) GetBoundingBox() *BoundingPoly {
307 func (m *Block) GetParagraphs() []*Paragraph {
314 func (m *Block) GetBlockType() Block_BlockType {
321 // Structural unit of text representing a number of words in certain order.
322 type Paragraph struct {
323 // Additional information detected for the paragraph.
324 Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
325 // The bounding box for the paragraph.
326 // The vertices are in the order of top-left, top-right, bottom-right,
327 // bottom-left. When a rotation of the bounding box is detected the rotation
328 // is represented as around the top-left corner as defined when the text is
329 // read in the 'natural' orientation.
331 // * when the text is horizontal it might look like:
335 // * when it's rotated 180 degrees around the top-left corner it becomes:
339 // and the vertice order will still be (0, 1, 2, 3).
340 BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
341 // List of words in this paragraph.
342 Words []*Word `protobuf:"bytes,3,rep,name=words" json:"words,omitempty"`
345 func (m *Paragraph) Reset() { *m = Paragraph{} }
346 func (m *Paragraph) String() string { return proto.CompactTextString(m) }
347 func (*Paragraph) ProtoMessage() {}
348 func (*Paragraph) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{3} }
350 func (m *Paragraph) GetProperty() *TextAnnotation_TextProperty {
357 func (m *Paragraph) GetBoundingBox() *BoundingPoly {
364 func (m *Paragraph) GetWords() []*Word {
371 // A word representation.
373 // Additional information detected for the word.
374 Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
375 // The bounding box for the word.
376 // The vertices are in the order of top-left, top-right, bottom-right,
377 // bottom-left. When a rotation of the bounding box is detected the rotation
378 // is represented as around the top-left corner as defined when the text is
379 // read in the 'natural' orientation.
381 // * when the text is horizontal it might look like:
385 // * when it's rotated 180 degrees around the top-left corner it becomes:
389 // and the vertice order will still be (0, 1, 2, 3).
390 BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
391 // List of symbols in the word.
392 // The order of the symbols follows the natural reading order.
393 Symbols []*Symbol `protobuf:"bytes,3,rep,name=symbols" json:"symbols,omitempty"`
396 func (m *Word) Reset() { *m = Word{} }
397 func (m *Word) String() string { return proto.CompactTextString(m) }
398 func (*Word) ProtoMessage() {}
399 func (*Word) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{4} }
401 func (m *Word) GetProperty() *TextAnnotation_TextProperty {
408 func (m *Word) GetBoundingBox() *BoundingPoly {
415 func (m *Word) GetSymbols() []*Symbol {
422 // A single symbol representation.
424 // Additional information detected for the symbol.
425 Property *TextAnnotation_TextProperty `protobuf:"bytes,1,opt,name=property" json:"property,omitempty"`
426 // The bounding box for the symbol.
427 // The vertices are in the order of top-left, top-right, bottom-right,
428 // bottom-left. When a rotation of the bounding box is detected the rotation
429 // is represented as around the top-left corner as defined when the text is
430 // read in the 'natural' orientation.
432 // * when the text is horizontal it might look like:
436 // * when it's rotated 180 degrees around the top-left corner it becomes:
440 // and the vertice order will still be (0, 1, 2, 3).
441 BoundingBox *BoundingPoly `protobuf:"bytes,2,opt,name=bounding_box,json=boundingBox" json:"bounding_box,omitempty"`
442 // The actual UTF-8 representation of the symbol.
443 Text string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"`
446 func (m *Symbol) Reset() { *m = Symbol{} }
447 func (m *Symbol) String() string { return proto.CompactTextString(m) }
448 func (*Symbol) ProtoMessage() {}
449 func (*Symbol) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{5} }
451 func (m *Symbol) GetProperty() *TextAnnotation_TextProperty {
458 func (m *Symbol) GetBoundingBox() *BoundingPoly {
465 func (m *Symbol) GetText() string {
473 proto.RegisterType((*TextAnnotation)(nil), "google.cloud.vision.v1.TextAnnotation")
474 proto.RegisterType((*TextAnnotation_DetectedLanguage)(nil), "google.cloud.vision.v1.TextAnnotation.DetectedLanguage")
475 proto.RegisterType((*TextAnnotation_DetectedBreak)(nil), "google.cloud.vision.v1.TextAnnotation.DetectedBreak")
476 proto.RegisterType((*TextAnnotation_TextProperty)(nil), "google.cloud.vision.v1.TextAnnotation.TextProperty")
477 proto.RegisterType((*Page)(nil), "google.cloud.vision.v1.Page")
478 proto.RegisterType((*Block)(nil), "google.cloud.vision.v1.Block")
479 proto.RegisterType((*Paragraph)(nil), "google.cloud.vision.v1.Paragraph")
480 proto.RegisterType((*Word)(nil), "google.cloud.vision.v1.Word")
481 proto.RegisterType((*Symbol)(nil), "google.cloud.vision.v1.Symbol")
482 proto.RegisterEnum("google.cloud.vision.v1.TextAnnotation_DetectedBreak_BreakType", TextAnnotation_DetectedBreak_BreakType_name, TextAnnotation_DetectedBreak_BreakType_value)
483 proto.RegisterEnum("google.cloud.vision.v1.Block_BlockType", Block_BlockType_name, Block_BlockType_value)
486 func init() { proto.RegisterFile("google/cloud/vision/v1/text_annotation.proto", fileDescriptor2) }
488 var fileDescriptor2 = []byte{
489 // 744 bytes of a gzipped FileDescriptorProto
490 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0x4f, 0x6f, 0xd3, 0x4e,
491 0x10, 0xfd, 0xb9, 0xb1, 0xd3, 0x78, 0xd2, 0x46, 0xfe, 0x2d, 0xa8, 0x8a, 0x42, 0xa9, 0x8a, 0x01,
492 0xd1, 0x03, 0x72, 0xd4, 0x14, 0x04, 0x12, 0x08, 0x29, 0x4e, 0x0d, 0xad, 0x1a, 0x25, 0xd6, 0x36,
493 0x51, 0xf9, 0x73, 0xb0, 0xfc, 0x67, 0xeb, 0x58, 0x4d, 0xbd, 0x96, 0xed, 0xb6, 0xc9, 0x8d, 0x4f,
494 0xc5, 0x89, 0x6f, 0xc1, 0x09, 0xee, 0x9c, 0xb9, 0x72, 0x44, 0x5e, 0xdb, 0x69, 0x52, 0x61, 0x04,
495 0x88, 0x43, 0x2f, 0xd6, 0xce, 0xe4, 0xed, 0xdb, 0xf7, 0x66, 0x33, 0x3b, 0xf0, 0xd0, 0xa5, 0xd4,
496 0x1d, 0x93, 0xa6, 0x3d, 0xa6, 0x67, 0x4e, 0xf3, 0xdc, 0x8b, 0x3c, 0xea, 0x37, 0xcf, 0xb7, 0x9b,
497 0x31, 0x99, 0xc4, 0x86, 0xe9, 0xfb, 0x34, 0x36, 0x63, 0x8f, 0xfa, 0x4a, 0x10, 0xd2, 0x98, 0xa2,
498 0xb5, 0x14, 0xad, 0x30, 0xb4, 0x92, 0xa2, 0x95, 0xf3, 0xed, 0xc6, 0x7a, 0xc6, 0x62, 0x06, 0x5e,
499 0xf3, 0x72, 0x53, 0x94, 0xee, 0x6a, 0xdc, 0x2f, 0x38, 0xc3, 0x25, 0xf4, 0x94, 0xc4, 0xe1, 0x34,
500 0x85, 0xc9, 0xdf, 0x78, 0xa8, 0x0d, 0xc8, 0x24, 0x6e, 0xcf, 0x08, 0x50, 0x0b, 0x84, 0xc0, 0x74,
501 0x49, 0x54, 0xe7, 0x36, 0x4b, 0x5b, 0xd5, 0xd6, 0xba, 0xf2, 0xf3, 0xf3, 0x15, 0xdd, 0x74, 0x09,
502 0x4e, 0xa1, 0x08, 0x01, 0x9f, 0x88, 0xaf, 0x2f, 0x6d, 0x72, 0x5b, 0x22, 0x66, 0xeb, 0xc6, 0x11,
503 0x48, 0xbb, 0x24, 0x26, 0x76, 0x4c, 0x9c, 0xae, 0xe9, 0xbb, 0x67, 0xa6, 0x4b, 0xd0, 0x5d, 0x58,
504 0x1d, 0x67, 0x6b, 0xc3, 0xa6, 0x0e, 0xa9, 0x73, 0x6c, 0xc3, 0x4a, 0x9e, 0xec, 0x50, 0x87, 0xa0,
505 0x0d, 0x00, 0x9b, 0xfa, 0xc7, 0x9e, 0x43, 0x7c, 0x9b, 0x30, 0xca, 0x25, 0x3c, 0x97, 0x69, 0x7c,
506 0xe5, 0x60, 0x35, 0x67, 0x56, 0x43, 0x62, 0x9e, 0x20, 0x0c, 0x7c, 0x3c, 0x0d, 0x52, 0xb6, 0x5a,
507 0xeb, 0x45, 0x91, 0xe2, 0x45, 0xa3, 0xca, 0x02, 0x87, 0xc2, 0xbe, 0x83, 0x69, 0x40, 0x30, 0xe3,
508 0x42, 0xb7, 0x40, 0xf4, 0x22, 0x23, 0x08, 0xc9, 0xb1, 0x37, 0x61, 0x22, 0x2a, 0xb8, 0xe2, 0x45,
509 0x3a, 0x8b, 0x65, 0x1b, 0xc4, 0x19, 0x1e, 0x55, 0x61, 0x79, 0xd8, 0x3b, 0xe8, 0xf5, 0x8f, 0x7a,
510 0xd2, 0x7f, 0x48, 0x04, 0xe1, 0x50, 0x6f, 0x77, 0x34, 0x89, 0x43, 0x35, 0x80, 0xc3, 0x21, 0xd6,
511 0x8c, 0x34, 0x5e, 0x42, 0x08, 0x6a, 0x5a, 0xbf, 0x6b, 0xcc, 0xe5, 0x4a, 0x08, 0xa0, 0xbc, 0xf7,
512 0x46, 0xdf, 0xd3, 0x7a, 0x12, 0x9f, 0xe0, 0xbb, 0xfb, 0x3d, 0xcd, 0x50, 0xb1, 0xd6, 0x3e, 0x90,
513 0x84, 0xc6, 0x27, 0x0e, 0x56, 0x12, 0xc9, 0x7a, 0x48, 0x03, 0x12, 0xc6, 0x53, 0x74, 0x0c, 0xc8,
514 0xc9, 0x34, 0x1b, 0x79, 0xc5, 0xf2, 0x6b, 0x7a, 0xf2, 0x87, 0xa6, 0xf3, 0x2b, 0xc1, 0xff, 0x3b,
515 0x57, 0x32, 0x11, 0x7a, 0x07, 0xb5, 0xd9, 0x39, 0x56, 0x62, 0x93, 0xf9, 0xaf, 0xb6, 0x1e, 0xfd,
516 0x4d, 0x61, 0xf1, 0xaa, 0x33, 0x1f, 0xca, 0x1f, 0x39, 0xe0, 0x93, 0xbf, 0x0e, 0xea, 0x43, 0x25,
517 0xc8, 0x9c, 0xb1, 0x8b, 0xab, 0xb6, 0x76, 0x7e, 0x93, 0x7f, 0xbe, 0x28, 0x78, 0x46, 0x82, 0x6e,
518 0x82, 0x70, 0xe1, 0x39, 0xf1, 0x88, 0xa9, 0x15, 0x70, 0x1a, 0xa0, 0x35, 0x28, 0x8f, 0x88, 0xe7,
519 0x8e, 0xe2, 0x7a, 0x89, 0xa5, 0xb3, 0x08, 0x3d, 0x86, 0xb2, 0x35, 0xa6, 0xf6, 0x49, 0x54, 0xe7,
520 0x59, 0x01, 0x6f, 0x17, 0x1d, 0xae, 0x26, 0x28, 0x9c, 0x81, 0xe5, 0xf7, 0x25, 0x10, 0x58, 0xe6,
521 0xdf, 0xeb, 0x7f, 0x05, 0x2b, 0x16, 0x3d, 0xf3, 0x1d, 0xcf, 0x77, 0x0d, 0x8b, 0x4e, 0xb2, 0xa2,
522 0xdf, 0x2b, 0xd4, 0x95, 0x61, 0x75, 0x3a, 0x9e, 0xe2, 0x6a, 0xbe, 0x53, 0xa5, 0x13, 0xd4, 0x06,
523 0x08, 0xcc, 0xd0, 0x74, 0x43, 0x33, 0x18, 0x45, 0xf5, 0x12, 0xb3, 0x77, 0xa7, 0xb8, 0x8d, 0x33,
524 0x24, 0x9e, 0xdb, 0x84, 0x5e, 0x02, 0x30, 0xc3, 0x06, 0xeb, 0x2b, 0x9e, 0xf5, 0xd5, 0x83, 0x5f,
525 0x56, 0x28, 0xfd, 0xb2, 0x06, 0x12, 0xad, 0x7c, 0x29, 0x63, 0x10, 0x67, 0xf9, 0xc5, 0x46, 0xa9,
526 0x00, 0x3f, 0xd0, 0x5e, 0x0f, 0x24, 0x2e, 0x69, 0x99, 0x41, 0x5b, 0xed, 0x26, 0x2d, 0x52, 0x85,
527 0x65, 0x7d, 0xbf, 0x33, 0x18, 0xe2, 0xa4, 0x37, 0x44, 0x10, 0xf0, 0xb0, 0xab, 0x61, 0x89, 0x4f,
528 0xf2, 0x6a, 0x1b, 0x77, 0xfa, 0xbb, 0x9a, 0x24, 0xc8, 0x9f, 0x39, 0x10, 0x67, 0xaa, 0xaf, 0xf1,
529 0x35, 0xb4, 0x40, 0xb8, 0xa0, 0xa1, 0x93, 0xdf, 0x40, 0xe1, 0x43, 0x7a, 0x44, 0x43, 0x07, 0xa7,
530 0x50, 0xf9, 0x0b, 0x07, 0x7c, 0x12, 0x5f, 0x63, 0x5b, 0x4f, 0x61, 0x39, 0x9a, 0x9e, 0x5a, 0x74,
531 0x9c, 0x1b, 0xdb, 0x28, 0xe2, 0x38, 0x64, 0x30, 0x9c, 0xc3, 0xe5, 0x0f, 0x1c, 0x94, 0xd3, 0xdc,
532 0x35, 0xb6, 0x97, 0x8f, 0xb2, 0xd2, 0xe5, 0x28, 0x53, 0x63, 0x68, 0xd8, 0xf4, 0xb4, 0x80, 0x4b,
533 0xbd, 0xb1, 0xa8, 0x50, 0x4f, 0x06, 0xab, 0xce, 0xbd, 0x7d, 0x9e, 0xc1, 0x5d, 0x9a, 0xbc, 0xd5,
534 0x0a, 0x0d, 0xdd, 0xa6, 0x4b, 0x7c, 0x36, 0x76, 0x9b, 0xe9, 0x4f, 0x66, 0xe0, 0x45, 0x57, 0x07,
535 0xf4, 0xb3, 0x74, 0xf5, 0x9d, 0xe3, 0xac, 0x32, 0xc3, 0xee, 0xfc, 0x08, 0x00, 0x00, 0xff, 0xff,
536 0x80, 0x29, 0x2a, 0x3b, 0x2f, 0x08, 0x00, 0x00,