Explorar o código

Merge pull request #26 from vmarkovtsev/master

Generate pb.pb.go automatically
Vadim Markovtsev %!s(int64=7) %!d(string=hai) anos
pai
achega
56904dc87f
Modificáronse 2 ficheiros con 8 adicións e 526 borrados
  1. 8 3
      Makefile
  2. 0 523
      pb/pb.pb.go

+ 8 - 3
Makefile

@@ -2,12 +2,17 @@ ifneq (oneshell, $(findstring oneshell, $(.FEATURES)))
   $(error GNU make 3.82 or later is required)
 endif
 
-all: dependencies ${GOPATH}/bin/hercules ${GOPATH}/bin/hercules-generate-plugin
+all: ${GOPATH}/bin/hercules ${GOPATH}/bin/hercules-generate-plugin
 
 test: all
 	go test gopkg.in/src-d/hercules.v3
 
-dependencies: ${GOPATH}/src/gopkg.in/bblfsh/client-go.v2 ${GOPATH}/src/gopkg.in/src-d/hercules.v3
+dependencies: ${GOPATH}/src/gopkg.in/bblfsh/client-go.v2 ${GOPATH}/src/gopkg.in/src-d/hercules.v3 ${GOPATH}/src/gopkg.in/src-d/hercules.v3/pb/pb.pb.go ${GOPATH}/src/gopkg.in/src-d/hercules.v3/cmd/hercules-generate-plugin/plugin_template_source.go
+
+${GOPATH}/src/gopkg.in/src-d/hercules.v3/pb/pb.pb.go:
+	PATH=$$PATH:$$GOPATH/bin protoc --gogo_out=pb --proto_path=pb pb/pb.proto
+
+${GOPATH}/src/gopkg.in/src-d/hercules.v3/cmd/hercules-generate-plugin/plugin_template_source.go:
 	cd ${GOPATH}/src/gopkg.in/src-d/hercules.v3/cmd/hercules-generate-plugin && go generate
 
 ${GOPATH}/src/gopkg.in/src-d/hercules.v3:
@@ -20,7 +25,7 @@ ${GOPATH}/src/gopkg.in/bblfsh/client-go.v2:
 	make dependencies
 
 .ONESHELL:
-${GOPATH}/bin/hercules: *.go cmd/hercules/*.go rbtree/*.go yaml/*.go toposort/*.go pb/*.go
+${GOPATH}/bin/hercules: dependencies *.go cmd/hercules/*.go rbtree/*.go yaml/*.go toposort/*.go pb/*.go
 	cd ${GOPATH}/src/gopkg.in/src-d/hercules.v3
 	go get -ldflags "-X gopkg.in/src-d/hercules.v3.GIT_HASH=$$(git rev-parse HEAD)" gopkg.in/src-d/hercules.v3/cmd/hercules
 

+ 0 - 523
pb/pb.pb.go

@@ -1,523 +0,0 @@
-// Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: pb/pb.proto
-
-/*
-Package pb is a generated protocol buffer package.
-
-It is generated from these files:
-	pb/pb.proto
-
-It has these top-level messages:
-	Metadata
-	BurndownSparseMatrixRow
-	BurndownSparseMatrix
-	BurndownAnalysisResults
-	CompressedSparseRowMatrix
-	Couples
-	TouchedFiles
-	DeveloperTouchedFiles
-	CouplesAnalysisResults
-	UASTChange
-	UASTChangesSaverResults
-	AnalysisResults
-*/
-package pb
-
-import proto "github.com/gogo/protobuf/proto"
-import fmt "fmt"
-import math "math"
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
-
-type Metadata struct {
-	// this format is versioned
-	Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
-	// git hash of the revision from which Hercules is built
-	Hash string `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
-	// repository's name
-	Repository string `protobuf:"bytes,3,opt,name=repository,proto3" json:"repository,omitempty"`
-	// timestamp of the first analysed commit
-	BeginUnixTime int64 `protobuf:"varint,4,opt,name=begin_unix_time,json=beginUnixTime,proto3" json:"begin_unix_time,omitempty"`
-	// timestamp of the last analysed commit
-	EndUnixTime int64 `protobuf:"varint,5,opt,name=end_unix_time,json=endUnixTime,proto3" json:"end_unix_time,omitempty"`
-	// number of processed commits
-	Commits int32 `protobuf:"varint,6,opt,name=commits,proto3" json:"commits,omitempty"`
-}
-
-func (m *Metadata) Reset()                    { *m = Metadata{} }
-func (m *Metadata) String() string            { return proto.CompactTextString(m) }
-func (*Metadata) ProtoMessage()               {}
-func (*Metadata) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{0} }
-
-func (m *Metadata) GetVersion() int32 {
-	if m != nil {
-		return m.Version
-	}
-	return 0
-}
-
-func (m *Metadata) GetHash() string {
-	if m != nil {
-		return m.Hash
-	}
-	return ""
-}
-
-func (m *Metadata) GetRepository() string {
-	if m != nil {
-		return m.Repository
-	}
-	return ""
-}
-
-func (m *Metadata) GetBeginUnixTime() int64 {
-	if m != nil {
-		return m.BeginUnixTime
-	}
-	return 0
-}
-
-func (m *Metadata) GetEndUnixTime() int64 {
-	if m != nil {
-		return m.EndUnixTime
-	}
-	return 0
-}
-
-func (m *Metadata) GetCommits() int32 {
-	if m != nil {
-		return m.Commits
-	}
-	return 0
-}
-
-type BurndownSparseMatrixRow struct {
-	// the first `len(column)` elements are stored,
-	// the rest `number_of_columns - len(column)` values are zeros
-	Columns []uint32 `protobuf:"varint,1,rep,packed,name=columns" json:"columns,omitempty"`
-}
-
-func (m *BurndownSparseMatrixRow) Reset()                    { *m = BurndownSparseMatrixRow{} }
-func (m *BurndownSparseMatrixRow) String() string            { return proto.CompactTextString(m) }
-func (*BurndownSparseMatrixRow) ProtoMessage()               {}
-func (*BurndownSparseMatrixRow) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{1} }
-
-func (m *BurndownSparseMatrixRow) GetColumns() []uint32 {
-	if m != nil {
-		return m.Columns
-	}
-	return nil
-}
-
-type BurndownSparseMatrix struct {
-	Name            string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	NumberOfRows    int32  `protobuf:"varint,2,opt,name=number_of_rows,json=numberOfRows,proto3" json:"number_of_rows,omitempty"`
-	NumberOfColumns int32  `protobuf:"varint,3,opt,name=number_of_columns,json=numberOfColumns,proto3" json:"number_of_columns,omitempty"`
-	// `len(row)` matches `number_of_rows`
-	Rows []*BurndownSparseMatrixRow `protobuf:"bytes,4,rep,name=rows" json:"rows,omitempty"`
-}
-
-func (m *BurndownSparseMatrix) Reset()                    { *m = BurndownSparseMatrix{} }
-func (m *BurndownSparseMatrix) String() string            { return proto.CompactTextString(m) }
-func (*BurndownSparseMatrix) ProtoMessage()               {}
-func (*BurndownSparseMatrix) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{2} }
-
-func (m *BurndownSparseMatrix) GetName() string {
-	if m != nil {
-		return m.Name
-	}
-	return ""
-}
-
-func (m *BurndownSparseMatrix) GetNumberOfRows() int32 {
-	if m != nil {
-		return m.NumberOfRows
-	}
-	return 0
-}
-
-func (m *BurndownSparseMatrix) GetNumberOfColumns() int32 {
-	if m != nil {
-		return m.NumberOfColumns
-	}
-	return 0
-}
-
-func (m *BurndownSparseMatrix) GetRows() []*BurndownSparseMatrixRow {
-	if m != nil {
-		return m.Rows
-	}
-	return nil
-}
-
-type BurndownAnalysisResults struct {
-	// how many days are in each band [burndown_project, burndown_file, burndown_developer]
-	Granularity int32 `protobuf:"varint,1,opt,name=granularity,proto3" json:"granularity,omitempty"`
-	// how frequently we measure the state of each band [burndown_project, burndown_file, burndown_developer]
-	Sampling int32 `protobuf:"varint,2,opt,name=sampling,proto3" json:"sampling,omitempty"`
-	// always exists
-	Project *BurndownSparseMatrix `protobuf:"bytes,3,opt,name=project" json:"project,omitempty"`
-	// this is included if `-burndown-files` was specified
-	Files []*BurndownSparseMatrix `protobuf:"bytes,4,rep,name=files" json:"files,omitempty"`
-	// these two are included if `-burndown-people` was specified
-	People []*BurndownSparseMatrix `protobuf:"bytes,5,rep,name=people" json:"people,omitempty"`
-	// rows and cols order correspond to `burndown_developer`
-	PeopleInteraction *CompressedSparseRowMatrix `protobuf:"bytes,6,opt,name=people_interaction,json=peopleInteraction" json:"people_interaction,omitempty"`
-}
-
-func (m *BurndownAnalysisResults) Reset()                    { *m = BurndownAnalysisResults{} }
-func (m *BurndownAnalysisResults) String() string            { return proto.CompactTextString(m) }
-func (*BurndownAnalysisResults) ProtoMessage()               {}
-func (*BurndownAnalysisResults) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{3} }
-
-func (m *BurndownAnalysisResults) GetGranularity() int32 {
-	if m != nil {
-		return m.Granularity
-	}
-	return 0
-}
-
-func (m *BurndownAnalysisResults) GetSampling() int32 {
-	if m != nil {
-		return m.Sampling
-	}
-	return 0
-}
-
-func (m *BurndownAnalysisResults) GetProject() *BurndownSparseMatrix {
-	if m != nil {
-		return m.Project
-	}
-	return nil
-}
-
-func (m *BurndownAnalysisResults) GetFiles() []*BurndownSparseMatrix {
-	if m != nil {
-		return m.Files
-	}
-	return nil
-}
-
-func (m *BurndownAnalysisResults) GetPeople() []*BurndownSparseMatrix {
-	if m != nil {
-		return m.People
-	}
-	return nil
-}
-
-func (m *BurndownAnalysisResults) GetPeopleInteraction() *CompressedSparseRowMatrix {
-	if m != nil {
-		return m.PeopleInteraction
-	}
-	return nil
-}
-
-type CompressedSparseRowMatrix struct {
-	NumberOfRows    int32 `protobuf:"varint,1,opt,name=number_of_rows,json=numberOfRows,proto3" json:"number_of_rows,omitempty"`
-	NumberOfColumns int32 `protobuf:"varint,2,opt,name=number_of_columns,json=numberOfColumns,proto3" json:"number_of_columns,omitempty"`
-	// https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_.28CSR.2C_CRS_or_Yale_format.29
-	Data    []int64 `protobuf:"varint,3,rep,packed,name=data" json:"data,omitempty"`
-	Indices []int32 `protobuf:"varint,4,rep,packed,name=indices" json:"indices,omitempty"`
-	Indptr  []int64 `protobuf:"varint,5,rep,packed,name=indptr" json:"indptr,omitempty"`
-}
-
-func (m *CompressedSparseRowMatrix) Reset()                    { *m = CompressedSparseRowMatrix{} }
-func (m *CompressedSparseRowMatrix) String() string            { return proto.CompactTextString(m) }
-func (*CompressedSparseRowMatrix) ProtoMessage()               {}
-func (*CompressedSparseRowMatrix) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{4} }
-
-func (m *CompressedSparseRowMatrix) GetNumberOfRows() int32 {
-	if m != nil {
-		return m.NumberOfRows
-	}
-	return 0
-}
-
-func (m *CompressedSparseRowMatrix) GetNumberOfColumns() int32 {
-	if m != nil {
-		return m.NumberOfColumns
-	}
-	return 0
-}
-
-func (m *CompressedSparseRowMatrix) GetData() []int64 {
-	if m != nil {
-		return m.Data
-	}
-	return nil
-}
-
-func (m *CompressedSparseRowMatrix) GetIndices() []int32 {
-	if m != nil {
-		return m.Indices
-	}
-	return nil
-}
-
-func (m *CompressedSparseRowMatrix) GetIndptr() []int64 {
-	if m != nil {
-		return m.Indptr
-	}
-	return nil
-}
-
-type Couples struct {
-	// name of each `matrix`'s row and column
-	Index []string `protobuf:"bytes,1,rep,name=index" json:"index,omitempty"`
-	// is always square
-	Matrix *CompressedSparseRowMatrix `protobuf:"bytes,2,opt,name=matrix" json:"matrix,omitempty"`
-}
-
-func (m *Couples) Reset()                    { *m = Couples{} }
-func (m *Couples) String() string            { return proto.CompactTextString(m) }
-func (*Couples) ProtoMessage()               {}
-func (*Couples) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{5} }
-
-func (m *Couples) GetIndex() []string {
-	if m != nil {
-		return m.Index
-	}
-	return nil
-}
-
-func (m *Couples) GetMatrix() *CompressedSparseRowMatrix {
-	if m != nil {
-		return m.Matrix
-	}
-	return nil
-}
-
-type TouchedFiles struct {
-	Files []int32 `protobuf:"varint,1,rep,packed,name=files" json:"files,omitempty"`
-}
-
-func (m *TouchedFiles) Reset()                    { *m = TouchedFiles{} }
-func (m *TouchedFiles) String() string            { return proto.CompactTextString(m) }
-func (*TouchedFiles) ProtoMessage()               {}
-func (*TouchedFiles) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{6} }
-
-func (m *TouchedFiles) GetFiles() []int32 {
-	if m != nil {
-		return m.Files
-	}
-	return nil
-}
-
-type DeveloperTouchedFiles struct {
-	// order corresponds to `developer_couples::index`
-	Developers []*TouchedFiles `protobuf:"bytes,1,rep,name=developers" json:"developers,omitempty"`
-}
-
-func (m *DeveloperTouchedFiles) Reset()                    { *m = DeveloperTouchedFiles{} }
-func (m *DeveloperTouchedFiles) String() string            { return proto.CompactTextString(m) }
-func (*DeveloperTouchedFiles) ProtoMessage()               {}
-func (*DeveloperTouchedFiles) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{7} }
-
-func (m *DeveloperTouchedFiles) GetDevelopers() []*TouchedFiles {
-	if m != nil {
-		return m.Developers
-	}
-	return nil
-}
-
-type CouplesAnalysisResults struct {
-	FileCouples      *Couples               `protobuf:"bytes,6,opt,name=file_couples,json=fileCouples" json:"file_couples,omitempty"`
-	DeveloperCouples *Couples               `protobuf:"bytes,7,opt,name=developer_couples,json=developerCouples" json:"developer_couples,omitempty"`
-	TouchedFiles     *DeveloperTouchedFiles `protobuf:"bytes,8,opt,name=touched_files,json=touchedFiles" json:"touched_files,omitempty"`
-}
-
-func (m *CouplesAnalysisResults) Reset()                    { *m = CouplesAnalysisResults{} }
-func (m *CouplesAnalysisResults) String() string            { return proto.CompactTextString(m) }
-func (*CouplesAnalysisResults) ProtoMessage()               {}
-func (*CouplesAnalysisResults) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{8} }
-
-func (m *CouplesAnalysisResults) GetFileCouples() *Couples {
-	if m != nil {
-		return m.FileCouples
-	}
-	return nil
-}
-
-func (m *CouplesAnalysisResults) GetDeveloperCouples() *Couples {
-	if m != nil {
-		return m.DeveloperCouples
-	}
-	return nil
-}
-
-func (m *CouplesAnalysisResults) GetTouchedFiles() *DeveloperTouchedFiles {
-	if m != nil {
-		return m.TouchedFiles
-	}
-	return nil
-}
-
-type UASTChange struct {
-	FileName   string `protobuf:"bytes,1,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
-	SrcBefore  string `protobuf:"bytes,2,opt,name=src_before,json=srcBefore,proto3" json:"src_before,omitempty"`
-	SrcAfter   string `protobuf:"bytes,3,opt,name=src_after,json=srcAfter,proto3" json:"src_after,omitempty"`
-	UastBefore string `protobuf:"bytes,4,opt,name=uast_before,json=uastBefore,proto3" json:"uast_before,omitempty"`
-	UastAfter  string `protobuf:"bytes,5,opt,name=uast_after,json=uastAfter,proto3" json:"uast_after,omitempty"`
-}
-
-func (m *UASTChange) Reset()                    { *m = UASTChange{} }
-func (m *UASTChange) String() string            { return proto.CompactTextString(m) }
-func (*UASTChange) ProtoMessage()               {}
-func (*UASTChange) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{9} }
-
-func (m *UASTChange) GetFileName() string {
-	if m != nil {
-		return m.FileName
-	}
-	return ""
-}
-
-func (m *UASTChange) GetSrcBefore() string {
-	if m != nil {
-		return m.SrcBefore
-	}
-	return ""
-}
-
-func (m *UASTChange) GetSrcAfter() string {
-	if m != nil {
-		return m.SrcAfter
-	}
-	return ""
-}
-
-func (m *UASTChange) GetUastBefore() string {
-	if m != nil {
-		return m.UastBefore
-	}
-	return ""
-}
-
-func (m *UASTChange) GetUastAfter() string {
-	if m != nil {
-		return m.UastAfter
-	}
-	return ""
-}
-
-type UASTChangesSaverResults struct {
-	Changes []*UASTChange `protobuf:"bytes,1,rep,name=changes" json:"changes,omitempty"`
-}
-
-func (m *UASTChangesSaverResults) Reset()                    { *m = UASTChangesSaverResults{} }
-func (m *UASTChangesSaverResults) String() string            { return proto.CompactTextString(m) }
-func (*UASTChangesSaverResults) ProtoMessage()               {}
-func (*UASTChangesSaverResults) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{10} }
-
-func (m *UASTChangesSaverResults) GetChanges() []*UASTChange {
-	if m != nil {
-		return m.Changes
-	}
-	return nil
-}
-
-type AnalysisResults struct {
-	Header *Metadata `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
-	// the mapped values are dynamic messages which require the second parsing pass.
-	Contents map[string][]byte `protobuf:"bytes,2,rep,name=contents" json:"contents,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-}
-
-func (m *AnalysisResults) Reset()                    { *m = AnalysisResults{} }
-func (m *AnalysisResults) String() string            { return proto.CompactTextString(m) }
-func (*AnalysisResults) ProtoMessage()               {}
-func (*AnalysisResults) Descriptor() ([]byte, []int) { return fileDescriptorPb, []int{11} }
-
-func (m *AnalysisResults) GetHeader() *Metadata {
-	if m != nil {
-		return m.Header
-	}
-	return nil
-}
-
-func (m *AnalysisResults) GetContents() map[string][]byte {
-	if m != nil {
-		return m.Contents
-	}
-	return nil
-}
-
-func init() {
-	proto.RegisterType((*Metadata)(nil), "Metadata")
-	proto.RegisterType((*BurndownSparseMatrixRow)(nil), "BurndownSparseMatrixRow")
-	proto.RegisterType((*BurndownSparseMatrix)(nil), "BurndownSparseMatrix")
-	proto.RegisterType((*BurndownAnalysisResults)(nil), "BurndownAnalysisResults")
-	proto.RegisterType((*CompressedSparseRowMatrix)(nil), "CompressedSparseRowMatrix")
-	proto.RegisterType((*Couples)(nil), "Couples")
-	proto.RegisterType((*TouchedFiles)(nil), "TouchedFiles")
-	proto.RegisterType((*DeveloperTouchedFiles)(nil), "DeveloperTouchedFiles")
-	proto.RegisterType((*CouplesAnalysisResults)(nil), "CouplesAnalysisResults")
-	proto.RegisterType((*UASTChange)(nil), "UASTChange")
-	proto.RegisterType((*UASTChangesSaverResults)(nil), "UASTChangesSaverResults")
-	proto.RegisterType((*AnalysisResults)(nil), "AnalysisResults")
-}
-
-func init() { proto.RegisterFile("pb/pb.proto", fileDescriptorPb) }
-
-var fileDescriptorPb = []byte{
-	// 805 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4d, 0x8f, 0xdb, 0x36,
-	0x10, 0x85, 0x56, 0xfe, 0x1c, 0xd9, 0xdd, 0x2c, 0x91, 0x6c, 0xd4, 0x2d, 0x92, 0xba, 0x42, 0x5a,
-	0x18, 0x4d, 0xa3, 0x00, 0x0e, 0x0a, 0x14, 0xc9, 0xa5, 0x1b, 0xb7, 0x01, 0x72, 0x48, 0x0b, 0x70,
-	0x37, 0x67, 0x81, 0x96, 0xe8, 0x35, 0x5b, 0x89, 0x14, 0x48, 0x6a, 0xbd, 0xfe, 0x41, 0xbd, 0x14,
-	0x28, 0x7a, 0xe8, 0xa9, 0x97, 0xfe, 0xb6, 0x82, 0x1f, 0xb2, 0x9d, 0x85, 0x37, 0xc8, 0x8d, 0x6f,
-	0xe6, 0x3d, 0xea, 0xcd, 0x0c, 0x49, 0x41, 0x54, 0x2f, 0x9e, 0xd7, 0x8b, 0xb4, 0x96, 0x42, 0x8b,
-	0xe4, 0xbf, 0x00, 0x06, 0xef, 0xa8, 0x26, 0x05, 0xd1, 0x04, 0xc5, 0xd0, 0xbf, 0xa6, 0x52, 0x31,
-	0xc1, 0xe3, 0x60, 0x12, 0x4c, 0xbb, 0xb8, 0x85, 0x08, 0x41, 0x67, 0x45, 0xd4, 0x2a, 0x3e, 0x9a,
-	0x04, 0xd3, 0x21, 0xb6, 0x6b, 0xf4, 0x18, 0x40, 0xd2, 0x5a, 0x28, 0xa6, 0x85, 0xdc, 0xc4, 0xa1,
-	0xcd, 0xec, 0x45, 0xd0, 0x37, 0x70, 0xbc, 0xa0, 0x57, 0x8c, 0x67, 0x0d, 0x67, 0x37, 0x99, 0x66,
-	0x15, 0x8d, 0x3b, 0x93, 0x60, 0x1a, 0xe2, 0xb1, 0x0d, 0xbf, 0xe7, 0xec, 0xe6, 0x92, 0x55, 0x14,
-	0x25, 0x30, 0xa6, 0xbc, 0xd8, 0x63, 0x75, 0x2d, 0x2b, 0xa2, 0xbc, 0xd8, 0x72, 0x62, 0xe8, 0xe7,
-	0xa2, 0xaa, 0x98, 0x56, 0x71, 0xcf, 0x39, 0xf3, 0x30, 0x79, 0x01, 0x0f, 0x5f, 0x37, 0x92, 0x17,
-	0x62, 0xcd, 0x2f, 0x6a, 0x22, 0x15, 0x7d, 0x47, 0xb4, 0x64, 0x37, 0x58, 0xac, 0x9d, 0xa8, 0x6c,
-	0x2a, 0xae, 0xe2, 0x60, 0x12, 0x4e, 0xc7, 0xb8, 0x85, 0xc9, 0x9f, 0x01, 0xdc, 0x3f, 0xa4, 0x32,
-	0x75, 0x72, 0x52, 0x51, 0x5b, 0xfe, 0x10, 0xdb, 0x35, 0x7a, 0x02, 0x9f, 0xf1, 0xa6, 0x5a, 0x50,
-	0x99, 0x89, 0x65, 0x26, 0xc5, 0x5a, 0xd9, 0x2e, 0x74, 0xf1, 0xc8, 0x45, 0x7f, 0x5d, 0x62, 0xb1,
-	0x56, 0xe8, 0x5b, 0x38, 0xd9, 0xb1, 0xda, 0xcf, 0x86, 0x96, 0x78, 0xdc, 0x12, 0xe7, 0x2e, 0x8c,
-	0xbe, 0x83, 0x8e, 0xdd, 0xa7, 0x33, 0x09, 0xa7, 0xd1, 0x2c, 0x4e, 0xef, 0x28, 0x00, 0x5b, 0x56,
-	0xf2, 0xf7, 0xd1, 0xae, 0xc4, 0x73, 0x4e, 0xca, 0x8d, 0x62, 0x0a, 0x53, 0xd5, 0x94, 0x5a, 0xa1,
-	0x09, 0x44, 0x57, 0x92, 0xf0, 0xa6, 0x24, 0x92, 0xe9, 0x8d, 0x9f, 0xda, 0x7e, 0x08, 0x9d, 0xc1,
-	0x40, 0x91, 0xaa, 0x2e, 0x19, 0xbf, 0xf2, 0xbe, 0xb7, 0x18, 0x3d, 0x87, 0x7e, 0x2d, 0xc5, 0x6f,
-	0x34, 0xd7, 0xd6, 0x69, 0x34, 0x7b, 0x70, 0xd8, 0x4a, 0xcb, 0x42, 0x4f, 0xa1, 0xbb, 0x64, 0x25,
-	0x6d, 0x9d, 0xdf, 0x41, 0x77, 0x1c, 0xf4, 0x0c, 0x7a, 0x35, 0x15, 0x75, 0x69, 0x06, 0xfa, 0x11,
-	0xb6, 0x27, 0xa1, 0xb7, 0x80, 0xdc, 0x2a, 0x63, 0x5c, 0x53, 0x49, 0x72, 0x6d, 0xce, 0x61, 0xcf,
-	0xfa, 0x3a, 0x4b, 0xe7, 0xa2, 0xaa, 0x25, 0x55, 0x8a, 0x16, 0x4e, 0x8c, 0xc5, 0xda, 0xeb, 0x4f,
-	0x9c, 0xea, 0xed, 0x4e, 0x94, 0xfc, 0x13, 0xc0, 0xe7, 0x77, 0x0a, 0x0e, 0xcc, 0x33, 0xf8, 0xd4,
-	0x79, 0x1e, 0x1d, 0x9e, 0x27, 0x82, 0x8e, 0xb9, 0x3f, 0x71, 0x38, 0x09, 0xa7, 0x21, 0xee, 0xb4,
-	0x77, 0x89, 0xf1, 0x82, 0xe5, 0xbe, 0x59, 0x5d, 0xdc, 0x42, 0x74, 0x0a, 0x3d, 0xc6, 0x8b, 0x5a,
-	0x4b, 0xdb, 0x97, 0x10, 0x7b, 0x94, 0x5c, 0x40, 0x7f, 0x2e, 0x9a, 0xda, 0xb4, 0xee, 0x3e, 0x74,
-	0x19, 0x2f, 0xe8, 0x8d, 0x3d, 0xb7, 0x43, 0xec, 0x00, 0x9a, 0x41, 0xaf, 0xb2, 0x25, 0x58, 0x1f,
-	0x1f, 0xef, 0x8a, 0x67, 0x26, 0x4f, 0x60, 0x74, 0x29, 0x9a, 0x7c, 0x45, 0x8b, 0x37, 0xcc, 0xef,
-	0xec, 0x26, 0x18, 0x58, 0x53, 0x0e, 0x24, 0x6f, 0xe0, 0xc1, 0x4f, 0xf4, 0x9a, 0x96, 0xa2, 0xa6,
-	0xf2, 0x03, 0xfa, 0x33, 0x80, 0xa2, 0x4d, 0x38, 0x4d, 0x34, 0x1b, 0xa7, 0xfb, 0x14, 0xbc, 0x47,
-	0x48, 0xfe, 0x0d, 0xe0, 0xd4, 0xd7, 0x70, 0xfb, 0xa4, 0x3e, 0x85, 0x91, 0xf9, 0x56, 0x96, 0xbb,
-	0xb4, 0x1f, 0xec, 0x20, 0xf5, 0x74, 0x1c, 0x99, 0x6c, 0x5b, 0xff, 0xf7, 0x70, 0xb2, 0xdd, 0x75,
-	0xab, 0xe8, 0xdf, 0x52, 0xdc, 0xdb, 0x52, 0x5a, 0xd9, 0x2b, 0x18, 0x6b, 0x67, 0x2d, 0x73, 0x45,
-	0x0e, 0xac, 0xe4, 0x34, 0x3d, 0x58, 0x1c, 0x1e, 0xe9, 0x3d, 0x94, 0xfc, 0x11, 0x00, 0xbc, 0x3f,
-	0xbf, 0xb8, 0x9c, 0xaf, 0x08, 0xbf, 0xa2, 0xe8, 0x0b, 0x18, 0x5a, 0xbf, 0x7b, 0xcf, 0xc1, 0xc0,
-	0x04, 0x7e, 0x31, 0x4f, 0xc2, 0x23, 0x00, 0x25, 0xf3, 0x6c, 0x41, 0x97, 0x42, 0x52, 0xff, 0x28,
-	0x0e, 0x95, 0xcc, 0x5f, 0xdb, 0x80, 0xd1, 0x9a, 0x34, 0x59, 0x6a, 0x2a, 0xfd, 0xc3, 0x38, 0x50,
-	0x32, 0x3f, 0x37, 0x18, 0x7d, 0x09, 0x51, 0x43, 0x94, 0x6e, 0xc5, 0x1d, 0xf7, 0x6e, 0x9a, 0x90,
-	0x57, 0x3f, 0x02, 0x8b, 0xbc, 0xbc, 0xeb, 0x36, 0x37, 0x11, 0xab, 0x4f, 0x7e, 0x84, 0x87, 0x3b,
-	0x9b, 0xea, 0x82, 0x5c, 0x53, 0xd9, 0xf6, 0xf8, 0x6b, 0xe8, 0xe7, 0x2e, 0xec, 0x47, 0x15, 0xa5,
-	0x3b, 0x2a, 0x6e, 0x73, 0xc9, 0x5f, 0x01, 0x1c, 0xdf, 0x1e, 0xcf, 0x57, 0xd0, 0x5b, 0x51, 0x52,
-	0x50, 0x69, 0x6b, 0x8d, 0x66, 0xc3, 0xb4, 0xfd, 0x2b, 0x60, 0x9f, 0x40, 0x2f, 0x61, 0x90, 0x0b,
-	0xae, 0x29, 0xd7, 0xe6, 0x22, 0x98, 0xed, 0x1f, 0xa7, 0xb7, 0xb6, 0x49, 0xe7, 0x9e, 0xf0, 0x33,
-	0xd7, 0x72, 0x83, 0xb7, 0xfc, 0xb3, 0x57, 0x30, 0xfe, 0x20, 0x85, 0xee, 0x41, 0xf8, 0x3b, 0xdd,
-	0xf8, 0xc6, 0x9a, 0xa5, 0x39, 0x99, 0xd7, 0xa4, 0x6c, 0x5c, 0x3b, 0x47, 0xd8, 0x81, 0x97, 0x47,
-	0x3f, 0x04, 0x8b, 0x9e, 0xfd, 0x55, 0xbd, 0xf8, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x4f, 0x9f,
-	0xe0, 0xb9, 0x06, 0x00, 0x00,
-}