github.com/leonlxy/hyperledger@v1.0.0-alpha.0.20170427033203-34922035d248/protos/common/common.pb.go (about)

     1  // Code generated by protoc-gen-go.
     2  // source: common/common.proto
     3  // DO NOT EDIT!
     4  
     5  /*
     6  Package common is a generated protocol buffer package.
     7  
     8  It is generated from these files:
     9  	common/common.proto
    10  	common/configtx.proto
    11  	common/configuration.proto
    12  	common/ledger.proto
    13  	common/policies.proto
    14  
    15  It has these top-level messages:
    16  	LastConfig
    17  	Metadata
    18  	MetadataSignature
    19  	Header
    20  	ChannelHeader
    21  	SignatureHeader
    22  	Payload
    23  	Envelope
    24  	Block
    25  	BlockHeader
    26  	BlockData
    27  	BlockMetadata
    28  	ConfigEnvelope
    29  	ConfigGroupSchema
    30  	ConfigValueSchema
    31  	ConfigPolicySchema
    32  	Config
    33  	ConfigUpdateEnvelope
    34  	ConfigUpdate
    35  	ConfigGroup
    36  	ConfigValue
    37  	ConfigPolicy
    38  	ConfigSignature
    39  	HashingAlgorithm
    40  	BlockDataHashingStructure
    41  	OrdererAddresses
    42  	Consortium
    43  	BlockchainInfo
    44  	Policy
    45  	SignaturePolicyEnvelope
    46  	SignaturePolicy
    47  	ImplicitMetaPolicy
    48  */
    49  package common
    50  
    51  import proto "github.com/golang/protobuf/proto"
    52  import fmt "fmt"
    53  import math "math"
    54  import google_protobuf "github.com/golang/protobuf/ptypes/timestamp"
    55  
    56  // Reference imports to suppress errors if they are not otherwise used.
    57  var _ = proto.Marshal
    58  var _ = fmt.Errorf
    59  var _ = math.Inf
    60  
    61  // This is a compile-time assertion to ensure that this generated file
    62  // is compatible with the proto package it is being compiled against.
    63  // A compilation error at this line likely means your copy of the
    64  // proto package needs to be updated.
    65  const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
    66  
    67  // These status codes are intended to resemble selected HTTP status codes
    68  type Status int32
    69  
    70  const (
    71  	Status_UNKNOWN                  Status = 0
    72  	Status_SUCCESS                  Status = 200
    73  	Status_BAD_REQUEST              Status = 400
    74  	Status_FORBIDDEN                Status = 403
    75  	Status_NOT_FOUND                Status = 404
    76  	Status_REQUEST_ENTITY_TOO_LARGE Status = 413
    77  	Status_INTERNAL_SERVER_ERROR    Status = 500
    78  	Status_SERVICE_UNAVAILABLE      Status = 503
    79  )
    80  
    81  var Status_name = map[int32]string{
    82  	0:   "UNKNOWN",
    83  	200: "SUCCESS",
    84  	400: "BAD_REQUEST",
    85  	403: "FORBIDDEN",
    86  	404: "NOT_FOUND",
    87  	413: "REQUEST_ENTITY_TOO_LARGE",
    88  	500: "INTERNAL_SERVER_ERROR",
    89  	503: "SERVICE_UNAVAILABLE",
    90  }
    91  var Status_value = map[string]int32{
    92  	"UNKNOWN":                  0,
    93  	"SUCCESS":                  200,
    94  	"BAD_REQUEST":              400,
    95  	"FORBIDDEN":                403,
    96  	"NOT_FOUND":                404,
    97  	"REQUEST_ENTITY_TOO_LARGE": 413,
    98  	"INTERNAL_SERVER_ERROR":    500,
    99  	"SERVICE_UNAVAILABLE":      503,
   100  }
   101  
   102  func (x Status) String() string {
   103  	return proto.EnumName(Status_name, int32(x))
   104  }
   105  func (Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
   106  
   107  type HeaderType int32
   108  
   109  const (
   110  	HeaderType_MESSAGE              HeaderType = 0
   111  	HeaderType_CONFIG               HeaderType = 1
   112  	HeaderType_CONFIG_UPDATE        HeaderType = 2
   113  	HeaderType_ENDORSER_TRANSACTION HeaderType = 3
   114  	HeaderType_ORDERER_TRANSACTION  HeaderType = 4
   115  	HeaderType_DELIVER_SEEK_INFO    HeaderType = 5
   116  	HeaderType_CHAINCODE_PACKAGE    HeaderType = 6
   117  )
   118  
   119  var HeaderType_name = map[int32]string{
   120  	0: "MESSAGE",
   121  	1: "CONFIG",
   122  	2: "CONFIG_UPDATE",
   123  	3: "ENDORSER_TRANSACTION",
   124  	4: "ORDERER_TRANSACTION",
   125  	5: "DELIVER_SEEK_INFO",
   126  	6: "CHAINCODE_PACKAGE",
   127  }
   128  var HeaderType_value = map[string]int32{
   129  	"MESSAGE":              0,
   130  	"CONFIG":               1,
   131  	"CONFIG_UPDATE":        2,
   132  	"ENDORSER_TRANSACTION": 3,
   133  	"ORDERER_TRANSACTION":  4,
   134  	"DELIVER_SEEK_INFO":    5,
   135  	"CHAINCODE_PACKAGE":    6,
   136  }
   137  
   138  func (x HeaderType) String() string {
   139  	return proto.EnumName(HeaderType_name, int32(x))
   140  }
   141  func (HeaderType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
   142  
   143  // This enum enlists indexes of the block metadata array
   144  type BlockMetadataIndex int32
   145  
   146  const (
   147  	BlockMetadataIndex_SIGNATURES          BlockMetadataIndex = 0
   148  	BlockMetadataIndex_LAST_CONFIG         BlockMetadataIndex = 1
   149  	BlockMetadataIndex_TRANSACTIONS_FILTER BlockMetadataIndex = 2
   150  	BlockMetadataIndex_ORDERER             BlockMetadataIndex = 3
   151  )
   152  
   153  var BlockMetadataIndex_name = map[int32]string{
   154  	0: "SIGNATURES",
   155  	1: "LAST_CONFIG",
   156  	2: "TRANSACTIONS_FILTER",
   157  	3: "ORDERER",
   158  }
   159  var BlockMetadataIndex_value = map[string]int32{
   160  	"SIGNATURES":          0,
   161  	"LAST_CONFIG":         1,
   162  	"TRANSACTIONS_FILTER": 2,
   163  	"ORDERER":             3,
   164  }
   165  
   166  func (x BlockMetadataIndex) String() string {
   167  	return proto.EnumName(BlockMetadataIndex_name, int32(x))
   168  }
   169  func (BlockMetadataIndex) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
   170  
   171  // LastConfig is the encoded value for the Metadata message which is encoded in the LAST_CONFIGURATION block metadata index
   172  type LastConfig struct {
   173  	Index uint64 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
   174  }
   175  
   176  func (m *LastConfig) Reset()                    { *m = LastConfig{} }
   177  func (m *LastConfig) String() string            { return proto.CompactTextString(m) }
   178  func (*LastConfig) ProtoMessage()               {}
   179  func (*LastConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
   180  
   181  // Metadata is a common structure to be used to encode block metadata
   182  type Metadata struct {
   183  	Value      []byte               `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
   184  	Signatures []*MetadataSignature `protobuf:"bytes,2,rep,name=signatures" json:"signatures,omitempty"`
   185  }
   186  
   187  func (m *Metadata) Reset()                    { *m = Metadata{} }
   188  func (m *Metadata) String() string            { return proto.CompactTextString(m) }
   189  func (*Metadata) ProtoMessage()               {}
   190  func (*Metadata) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
   191  
   192  func (m *Metadata) GetSignatures() []*MetadataSignature {
   193  	if m != nil {
   194  		return m.Signatures
   195  	}
   196  	return nil
   197  }
   198  
   199  type MetadataSignature struct {
   200  	SignatureHeader []byte `protobuf:"bytes,1,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"`
   201  	Signature       []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
   202  }
   203  
   204  func (m *MetadataSignature) Reset()                    { *m = MetadataSignature{} }
   205  func (m *MetadataSignature) String() string            { return proto.CompactTextString(m) }
   206  func (*MetadataSignature) ProtoMessage()               {}
   207  func (*MetadataSignature) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
   208  
   209  type Header struct {
   210  	ChannelHeader   []byte `protobuf:"bytes,1,opt,name=channel_header,json=channelHeader,proto3" json:"channel_header,omitempty"`
   211  	SignatureHeader []byte `protobuf:"bytes,2,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"`
   212  }
   213  
   214  func (m *Header) Reset()                    { *m = Header{} }
   215  func (m *Header) String() string            { return proto.CompactTextString(m) }
   216  func (*Header) ProtoMessage()               {}
   217  func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
   218  
   219  // Header is a generic replay prevention and identity message to include in a signed payload
   220  type ChannelHeader struct {
   221  	Type int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
   222  	// Version indicates message protocol version
   223  	Version int32 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"`
   224  	// Timestamp is the local time when the message was created
   225  	// by the sender
   226  	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp,omitempty"`
   227  	// Identifier of the channel this message is bound for
   228  	ChannelId string `protobuf:"bytes,4,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
   229  	// An unique identifier that is used end-to-end.
   230  	//  -  set by higher layers such as end user or SDK
   231  	//  -  passed to the endorser (which will check for uniqueness)
   232  	//  -  as the header is passed along unchanged, it will be
   233  	//     be retrieved by the committer (uniqueness check here as well)
   234  	//  -  to be stored in the ledger
   235  	TxId string `protobuf:"bytes,5,opt,name=tx_id,json=txId" json:"tx_id,omitempty"`
   236  	// The epoch in which this header was generated, where epoch is defined based on block height
   237  	// Epoch in which the response has been generated. This field identifies a
   238  	// logical window of time. A proposal response is accepted by a peer only if
   239  	// two conditions hold:
   240  	// 1. the epoch specified in the message is the current epoch
   241  	// 2. this message has been only seen once during this epoch (i.e. it hasn't
   242  	//    been replayed)
   243  	Epoch uint64 `protobuf:"varint,6,opt,name=epoch" json:"epoch,omitempty"`
   244  	// Extension that may be attached based on the header type
   245  	Extension []byte `protobuf:"bytes,7,opt,name=extension,proto3" json:"extension,omitempty"`
   246  }
   247  
   248  func (m *ChannelHeader) Reset()                    { *m = ChannelHeader{} }
   249  func (m *ChannelHeader) String() string            { return proto.CompactTextString(m) }
   250  func (*ChannelHeader) ProtoMessage()               {}
   251  func (*ChannelHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
   252  
   253  func (m *ChannelHeader) GetTimestamp() *google_protobuf.Timestamp {
   254  	if m != nil {
   255  		return m.Timestamp
   256  	}
   257  	return nil
   258  }
   259  
   260  type SignatureHeader struct {
   261  	// Creator of the message, specified as a certificate chain
   262  	Creator []byte `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`
   263  	// Arbitrary number that may only be used once. Can be used to detect replay attacks.
   264  	Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"`
   265  }
   266  
   267  func (m *SignatureHeader) Reset()                    { *m = SignatureHeader{} }
   268  func (m *SignatureHeader) String() string            { return proto.CompactTextString(m) }
   269  func (*SignatureHeader) ProtoMessage()               {}
   270  func (*SignatureHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
   271  
   272  // Payload is the message contents (and header to allow for signing)
   273  type Payload struct {
   274  	// Header is included to provide identity and prevent replay
   275  	Header *Header `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
   276  	// Data, the encoding of which is defined by the type in the header
   277  	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
   278  }
   279  
   280  func (m *Payload) Reset()                    { *m = Payload{} }
   281  func (m *Payload) String() string            { return proto.CompactTextString(m) }
   282  func (*Payload) ProtoMessage()               {}
   283  func (*Payload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
   284  
   285  func (m *Payload) GetHeader() *Header {
   286  	if m != nil {
   287  		return m.Header
   288  	}
   289  	return nil
   290  }
   291  
   292  // Envelope wraps a Payload with a signature so that the message may be authenticated
   293  type Envelope struct {
   294  	// A marshaled Payload
   295  	Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
   296  	// A signature by the creator specified in the Payload header
   297  	Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
   298  }
   299  
   300  func (m *Envelope) Reset()                    { *m = Envelope{} }
   301  func (m *Envelope) String() string            { return proto.CompactTextString(m) }
   302  func (*Envelope) ProtoMessage()               {}
   303  func (*Envelope) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
   304  
   305  // This is finalized block structure to be shared among the orderer and peer
   306  // Note that the BlockHeader chains to the previous BlockHeader, and the BlockData hash is embedded
   307  // in the BlockHeader.  This makes it natural and obvious that the Data is included in the hash, but
   308  // the Metadata is not.
   309  type Block struct {
   310  	Header   *BlockHeader   `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
   311  	Data     *BlockData     `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
   312  	Metadata *BlockMetadata `protobuf:"bytes,3,opt,name=metadata" json:"metadata,omitempty"`
   313  }
   314  
   315  func (m *Block) Reset()                    { *m = Block{} }
   316  func (m *Block) String() string            { return proto.CompactTextString(m) }
   317  func (*Block) ProtoMessage()               {}
   318  func (*Block) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
   319  
   320  func (m *Block) GetHeader() *BlockHeader {
   321  	if m != nil {
   322  		return m.Header
   323  	}
   324  	return nil
   325  }
   326  
   327  func (m *Block) GetData() *BlockData {
   328  	if m != nil {
   329  		return m.Data
   330  	}
   331  	return nil
   332  }
   333  
   334  func (m *Block) GetMetadata() *BlockMetadata {
   335  	if m != nil {
   336  		return m.Metadata
   337  	}
   338  	return nil
   339  }
   340  
   341  // BlockHeader is the element of the block which forms the block chain
   342  // The block header is hashed using the configured chain hashing algorithm
   343  // over the ASN.1 encoding of the BlockHeader
   344  type BlockHeader struct {
   345  	Number       uint64 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"`
   346  	PreviousHash []byte `protobuf:"bytes,2,opt,name=previous_hash,json=previousHash,proto3" json:"previous_hash,omitempty"`
   347  	DataHash     []byte `protobuf:"bytes,3,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"`
   348  }
   349  
   350  func (m *BlockHeader) Reset()                    { *m = BlockHeader{} }
   351  func (m *BlockHeader) String() string            { return proto.CompactTextString(m) }
   352  func (*BlockHeader) ProtoMessage()               {}
   353  func (*BlockHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
   354  
   355  type BlockData struct {
   356  	Data [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
   357  }
   358  
   359  func (m *BlockData) Reset()                    { *m = BlockData{} }
   360  func (m *BlockData) String() string            { return proto.CompactTextString(m) }
   361  func (*BlockData) ProtoMessage()               {}
   362  func (*BlockData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
   363  
   364  type BlockMetadata struct {
   365  	Metadata [][]byte `protobuf:"bytes,1,rep,name=metadata,proto3" json:"metadata,omitempty"`
   366  }
   367  
   368  func (m *BlockMetadata) Reset()                    { *m = BlockMetadata{} }
   369  func (m *BlockMetadata) String() string            { return proto.CompactTextString(m) }
   370  func (*BlockMetadata) ProtoMessage()               {}
   371  func (*BlockMetadata) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
   372  
   373  func init() {
   374  	proto.RegisterType((*LastConfig)(nil), "common.LastConfig")
   375  	proto.RegisterType((*Metadata)(nil), "common.Metadata")
   376  	proto.RegisterType((*MetadataSignature)(nil), "common.MetadataSignature")
   377  	proto.RegisterType((*Header)(nil), "common.Header")
   378  	proto.RegisterType((*ChannelHeader)(nil), "common.ChannelHeader")
   379  	proto.RegisterType((*SignatureHeader)(nil), "common.SignatureHeader")
   380  	proto.RegisterType((*Payload)(nil), "common.Payload")
   381  	proto.RegisterType((*Envelope)(nil), "common.Envelope")
   382  	proto.RegisterType((*Block)(nil), "common.Block")
   383  	proto.RegisterType((*BlockHeader)(nil), "common.BlockHeader")
   384  	proto.RegisterType((*BlockData)(nil), "common.BlockData")
   385  	proto.RegisterType((*BlockMetadata)(nil), "common.BlockMetadata")
   386  	proto.RegisterEnum("common.Status", Status_name, Status_value)
   387  	proto.RegisterEnum("common.HeaderType", HeaderType_name, HeaderType_value)
   388  	proto.RegisterEnum("common.BlockMetadataIndex", BlockMetadataIndex_name, BlockMetadataIndex_value)
   389  }
   390  
   391  func init() { proto.RegisterFile("common/common.proto", fileDescriptor0) }
   392  
   393  var fileDescriptor0 = []byte{
   394  	// 900 bytes of a gzipped FileDescriptorProto
   395  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x55, 0xdf, 0x6e, 0xe3, 0xc4,
   396  	0x1b, 0xad, 0xe3, 0xfc, 0x69, 0xbe, 0x34, 0xad, 0x3b, 0xd9, 0xfe, 0xd6, 0xbf, 0xc2, 0x6a, 0x23,
   397  	0xc3, 0xa2, 0xd2, 0x4a, 0x89, 0x28, 0x37, 0x70, 0xe9, 0xd8, 0x93, 0xd6, 0x6a, 0xd6, 0x2e, 0x63,
   398  	0x67, 0x11, 0xbb, 0x48, 0x96, 0x93, 0x4c, 0x13, 0x8b, 0xc4, 0x8e, 0x6c, 0xa7, 0x6a, 0x5f, 0x02,
   399  	0x21, 0xc1, 0x0d, 0x17, 0xbc, 0x00, 0x4f, 0xc2, 0x5b, 0xf0, 0x12, 0x48, 0xdc, 0xa2, 0xf1, 0x8c,
   400  	0xbd, 0x49, 0x59, 0x89, 0xab, 0xcc, 0x39, 0x73, 0x3c, 0xdf, 0x99, 0xf3, 0x7d, 0xb1, 0xa1, 0x33,
   401  	0x8d, 0x57, 0xab, 0x38, 0xea, 0xf3, 0x9f, 0xde, 0x3a, 0x89, 0xb3, 0x18, 0xd5, 0x39, 0x3a, 0x7d,
   402  	0x39, 0x8f, 0xe3, 0xf9, 0x92, 0xf6, 0x73, 0x76, 0xb2, 0xb9, 0xeb, 0x67, 0xe1, 0x8a, 0xa6, 0x59,
   403  	0xb0, 0x5a, 0x73, 0xa1, 0xa6, 0x01, 0x8c, 0x82, 0x34, 0x33, 0xe2, 0xe8, 0x2e, 0x9c, 0xa3, 0x67,
   404  	0x50, 0x0b, 0xa3, 0x19, 0x7d, 0x50, 0xa5, 0xae, 0x74, 0x56, 0x25, 0x1c, 0x68, 0xef, 0x60, 0xff,
   405  	0x35, 0xcd, 0x82, 0x59, 0x90, 0x05, 0x4c, 0x71, 0x1f, 0x2c, 0x37, 0x34, 0x57, 0x1c, 0x10, 0x0e,
   406  	0xd0, 0xd7, 0x00, 0x69, 0x38, 0x8f, 0x82, 0x6c, 0x93, 0xd0, 0x54, 0xad, 0x74, 0xe5, 0xb3, 0xd6,
   407  	0xe5, 0xff, 0x7b, 0xc2, 0x51, 0xf1, 0xac, 0x5b, 0x28, 0xc8, 0x96, 0x58, 0xfb, 0x1e, 0x8e, 0xff,
   408  	0x25, 0x40, 0x9f, 0x83, 0x52, 0x4a, 0xfc, 0x05, 0x0d, 0x66, 0x34, 0x11, 0x05, 0x8f, 0x4a, 0xfe,
   409  	0x3a, 0xa7, 0xd1, 0xc7, 0xd0, 0x2c, 0x29, 0xb5, 0x92, 0x6b, 0xde, 0x13, 0xda, 0x5b, 0xa8, 0x0b,
   410  	0xdd, 0x2b, 0x38, 0x9c, 0x2e, 0x82, 0x28, 0xa2, 0xcb, 0xdd, 0x03, 0xdb, 0x82, 0x15, 0xb2, 0x0f,
   411  	0x55, 0xae, 0x7c, 0xb0, 0xb2, 0xf6, 0xa7, 0x04, 0x6d, 0x63, 0xe7, 0x61, 0x04, 0xd5, 0xec, 0x71,
   412  	0xcd, 0xb3, 0xa9, 0x91, 0x7c, 0x8d, 0x54, 0x68, 0xdc, 0xd3, 0x24, 0x0d, 0xe3, 0x28, 0x3f, 0xa7,
   413  	0x46, 0x0a, 0x88, 0xbe, 0x82, 0x66, 0xd9, 0x0d, 0x55, 0xee, 0x4a, 0x67, 0xad, 0xcb, 0xd3, 0x1e,
   414  	0xef, 0x57, 0xaf, 0xe8, 0x57, 0xcf, 0x2b, 0x14, 0xe4, 0xbd, 0x18, 0xbd, 0x00, 0x28, 0xee, 0x12,
   415  	0xce, 0xd4, 0x6a, 0x57, 0x3a, 0x6b, 0x92, 0xa6, 0x60, 0xac, 0x19, 0xea, 0x40, 0x2d, 0x7b, 0x60,
   416  	0x3b, 0xb5, 0x7c, 0xa7, 0x9a, 0x3d, 0x58, 0x33, 0xd6, 0x38, 0xba, 0x8e, 0xa7, 0x0b, 0xb5, 0xce,
   417  	0x5b, 0x9b, 0x03, 0x96, 0x1e, 0x7d, 0xc8, 0x68, 0x94, 0xfb, 0x6b, 0xf0, 0xf4, 0x4a, 0x42, 0xd3,
   418  	0xe1, 0xc8, 0x7d, 0x12, 0xb7, 0x0a, 0x8d, 0x69, 0x42, 0x83, 0x2c, 0x2e, 0xf2, 0x2b, 0x20, 0x2b,
   419  	0x10, 0xc5, 0xd1, 0xb4, 0x68, 0x02, 0x07, 0x1a, 0x86, 0xc6, 0x6d, 0xf0, 0xb8, 0x8c, 0x83, 0x19,
   420  	0xfa, 0x0c, 0xea, 0x5b, 0xc9, 0xb7, 0x2e, 0x0f, 0x8b, 0x01, 0xe1, 0x47, 0x13, 0xb1, 0xcb, 0x52,
   421  	0x64, 0xd3, 0x20, 0xce, 0xc9, 0xd7, 0xda, 0x00, 0xf6, 0x71, 0x74, 0x4f, 0x97, 0x31, 0x4f, 0x74,
   422  	0xcd, 0x8f, 0x2c, 0x2c, 0x08, 0xf8, 0x1f, 0xb3, 0xf0, 0xa3, 0x04, 0xb5, 0xc1, 0x32, 0x9e, 0xfe,
   423  	0x80, 0x2e, 0x9e, 0x38, 0xe9, 0x14, 0x4e, 0xf2, 0xed, 0x27, 0x76, 0x5e, 0x6d, 0xd9, 0x69, 0x5d,
   424  	0x1e, 0xef, 0x48, 0xcd, 0x20, 0x0b, 0xb8, 0x43, 0xf4, 0x05, 0xec, 0xaf, 0xc4, 0x1c, 0x8b, 0x66,
   425  	0x9e, 0xec, 0x48, 0x8b, 0x21, 0x27, 0xa5, 0x4c, 0x9b, 0x43, 0x6b, 0xab, 0x20, 0xfa, 0x1f, 0xd4,
   426  	0xa3, 0xcd, 0x6a, 0x22, 0x5c, 0x55, 0x89, 0x40, 0xe8, 0x13, 0x68, 0xaf, 0x13, 0x7a, 0x1f, 0xc6,
   427  	0x9b, 0xd4, 0x5f, 0x04, 0xe9, 0x42, 0xdc, 0xec, 0xa0, 0x20, 0xaf, 0x83, 0x74, 0x81, 0x3e, 0x82,
   428  	0x26, 0x3b, 0x93, 0x0b, 0xe4, 0x5c, 0xb0, 0xcf, 0x08, 0xb6, 0xa9, 0xbd, 0x84, 0x66, 0x69, 0xb7,
   429  	0x8c, 0x57, 0xea, 0xca, 0x65, 0xbc, 0x17, 0xd0, 0xde, 0x31, 0x89, 0x4e, 0xb7, 0x6e, 0xc3, 0x85,
   430  	0x25, 0x3e, 0xff, 0x5d, 0x82, 0xba, 0x9b, 0x05, 0xd9, 0x26, 0x45, 0x2d, 0x68, 0x8c, 0xed, 0x1b,
   431  	0xdb, 0xf9, 0xd6, 0x56, 0xf6, 0xd0, 0x01, 0x34, 0xdc, 0xb1, 0x61, 0x60, 0xd7, 0x55, 0xfe, 0x90,
   432  	0x90, 0x02, 0xad, 0x81, 0x6e, 0xfa, 0x04, 0x7f, 0x33, 0xc6, 0xae, 0xa7, 0xfc, 0x24, 0xa3, 0x43,
   433  	0x68, 0x0e, 0x1d, 0x32, 0xb0, 0x4c, 0x13, 0xdb, 0xca, 0xcf, 0x39, 0xb6, 0x1d, 0xcf, 0x1f, 0x3a,
   434  	0x63, 0xdb, 0x54, 0x7e, 0x91, 0xd1, 0x0b, 0x50, 0x85, 0xda, 0xc7, 0xb6, 0x67, 0x79, 0xdf, 0xf9,
   435  	0x9e, 0xe3, 0xf8, 0x23, 0x9d, 0x5c, 0x61, 0xe5, 0x37, 0x19, 0x9d, 0xc2, 0x89, 0x65, 0x7b, 0x98,
   436  	0xd8, 0xfa, 0xc8, 0x77, 0x31, 0x79, 0x83, 0x89, 0x8f, 0x09, 0x71, 0x88, 0xf2, 0x97, 0x8c, 0x54,
   437  	0xe8, 0x30, 0xca, 0x32, 0xb0, 0x3f, 0xb6, 0xf5, 0x37, 0xba, 0x35, 0xd2, 0x07, 0x23, 0xac, 0xfc,
   438  	0x2d, 0x9f, 0xff, 0x2a, 0x01, 0xf0, 0x7c, 0x3d, 0xf6, 0x6f, 0x6c, 0x41, 0xe3, 0x35, 0x76, 0x5d,
   439  	0xfd, 0x0a, 0x2b, 0x7b, 0x08, 0xa0, 0x6e, 0x38, 0xf6, 0xd0, 0xba, 0x52, 0x24, 0x74, 0x0c, 0x6d,
   440  	0xbe, 0xf6, 0xc7, 0xb7, 0xa6, 0xee, 0x61, 0xa5, 0x82, 0x54, 0x78, 0x86, 0x6d, 0xd3, 0x21, 0x2e,
   441  	0x26, 0xbe, 0x47, 0x74, 0xdb, 0xd5, 0x0d, 0xcf, 0x72, 0x6c, 0x45, 0x46, 0xcf, 0xa1, 0xe3, 0x10,
   442  	0x13, 0x93, 0x27, 0x1b, 0x55, 0x74, 0x02, 0xc7, 0x26, 0x1e, 0x59, 0xcc, 0x9b, 0x8b, 0xf1, 0x8d,
   443  	0x6f, 0xd9, 0x43, 0x47, 0xa9, 0x31, 0xda, 0xb8, 0xd6, 0x2d, 0xdb, 0x70, 0x4c, 0xec, 0xdf, 0xea,
   444  	0xc6, 0x0d, 0xab, 0x5f, 0x3f, 0x7f, 0x07, 0x68, 0x27, 0x75, 0x8b, 0xbd, 0x6d, 0xd1, 0x21, 0x80,
   445  	0x6b, 0x5d, 0xd9, 0xba, 0x37, 0x26, 0xd8, 0x55, 0xf6, 0xd0, 0x11, 0xb4, 0x46, 0xba, 0xeb, 0xf9,
   446  	0xa5, 0xd5, 0xe7, 0xd0, 0xd9, 0xaa, 0xea, 0xfa, 0x43, 0x6b, 0xe4, 0x61, 0xa2, 0x54, 0xd8, 0xe5,
   447  	0x84, 0x2d, 0x45, 0x1e, 0xb8, 0xf0, 0x69, 0x9c, 0xcc, 0x7b, 0x8b, 0xc7, 0x35, 0x4d, 0x96, 0x74,
   448  	0x36, 0xa7, 0x49, 0xef, 0x2e, 0x98, 0x24, 0xe1, 0x94, 0xbf, 0x5b, 0x52, 0x31, 0x9c, 0x6f, 0x2f,
   449  	0xe6, 0x61, 0xb6, 0xd8, 0x4c, 0x18, 0xec, 0x6f, 0x89, 0xfb, 0x5c, 0xcc, 0x3f, 0x1c, 0xa9, 0xf8,
   450  	0xb8, 0x4c, 0xea, 0x39, 0xfc, 0xf2, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa1, 0xcb, 0xe1, 0xb4,
   451  	0x74, 0x06, 0x00, 0x00,
   452  }