github.com/kchristidis/fabric@v1.0.4-0.20171028114726-837acd08cde1/protos/peer/transaction.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // source: peer/transaction.proto
     3  
     4  package peer
     5  
     6  import proto "github.com/golang/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  import _ "github.com/golang/protobuf/ptypes/timestamp"
    10  import common "github.com/hyperledger/fabric/protos/common"
    11  
    12  // Reference imports to suppress errors if they are not otherwise used.
    13  var _ = proto.Marshal
    14  var _ = fmt.Errorf
    15  var _ = math.Inf
    16  
    17  type TxValidationCode int32
    18  
    19  const (
    20  	TxValidationCode_VALID                        TxValidationCode = 0
    21  	TxValidationCode_NIL_ENVELOPE                 TxValidationCode = 1
    22  	TxValidationCode_BAD_PAYLOAD                  TxValidationCode = 2
    23  	TxValidationCode_BAD_COMMON_HEADER            TxValidationCode = 3
    24  	TxValidationCode_BAD_CREATOR_SIGNATURE        TxValidationCode = 4
    25  	TxValidationCode_INVALID_ENDORSER_TRANSACTION TxValidationCode = 5
    26  	TxValidationCode_INVALID_CONFIG_TRANSACTION   TxValidationCode = 6
    27  	TxValidationCode_UNSUPPORTED_TX_PAYLOAD       TxValidationCode = 7
    28  	TxValidationCode_BAD_PROPOSAL_TXID            TxValidationCode = 8
    29  	TxValidationCode_DUPLICATE_TXID               TxValidationCode = 9
    30  	TxValidationCode_ENDORSEMENT_POLICY_FAILURE   TxValidationCode = 10
    31  	TxValidationCode_MVCC_READ_CONFLICT           TxValidationCode = 11
    32  	TxValidationCode_PHANTOM_READ_CONFLICT        TxValidationCode = 12
    33  	TxValidationCode_UNKNOWN_TX_TYPE              TxValidationCode = 13
    34  	TxValidationCode_TARGET_CHAIN_NOT_FOUND       TxValidationCode = 14
    35  	TxValidationCode_MARSHAL_TX_ERROR             TxValidationCode = 15
    36  	TxValidationCode_NIL_TXACTION                 TxValidationCode = 16
    37  	TxValidationCode_EXPIRED_CHAINCODE            TxValidationCode = 17
    38  	TxValidationCode_CHAINCODE_VERSION_CONFLICT   TxValidationCode = 18
    39  	TxValidationCode_BAD_HEADER_EXTENSION         TxValidationCode = 19
    40  	TxValidationCode_BAD_CHANNEL_HEADER           TxValidationCode = 20
    41  	TxValidationCode_BAD_RESPONSE_PAYLOAD         TxValidationCode = 21
    42  	TxValidationCode_BAD_RWSET                    TxValidationCode = 22
    43  	TxValidationCode_ILLEGAL_WRITESET             TxValidationCode = 23
    44  	TxValidationCode_INVALID_OTHER_REASON         TxValidationCode = 255
    45  )
    46  
    47  var TxValidationCode_name = map[int32]string{
    48  	0:   "VALID",
    49  	1:   "NIL_ENVELOPE",
    50  	2:   "BAD_PAYLOAD",
    51  	3:   "BAD_COMMON_HEADER",
    52  	4:   "BAD_CREATOR_SIGNATURE",
    53  	5:   "INVALID_ENDORSER_TRANSACTION",
    54  	6:   "INVALID_CONFIG_TRANSACTION",
    55  	7:   "UNSUPPORTED_TX_PAYLOAD",
    56  	8:   "BAD_PROPOSAL_TXID",
    57  	9:   "DUPLICATE_TXID",
    58  	10:  "ENDORSEMENT_POLICY_FAILURE",
    59  	11:  "MVCC_READ_CONFLICT",
    60  	12:  "PHANTOM_READ_CONFLICT",
    61  	13:  "UNKNOWN_TX_TYPE",
    62  	14:  "TARGET_CHAIN_NOT_FOUND",
    63  	15:  "MARSHAL_TX_ERROR",
    64  	16:  "NIL_TXACTION",
    65  	17:  "EXPIRED_CHAINCODE",
    66  	18:  "CHAINCODE_VERSION_CONFLICT",
    67  	19:  "BAD_HEADER_EXTENSION",
    68  	20:  "BAD_CHANNEL_HEADER",
    69  	21:  "BAD_RESPONSE_PAYLOAD",
    70  	22:  "BAD_RWSET",
    71  	23:  "ILLEGAL_WRITESET",
    72  	255: "INVALID_OTHER_REASON",
    73  }
    74  var TxValidationCode_value = map[string]int32{
    75  	"VALID":                        0,
    76  	"NIL_ENVELOPE":                 1,
    77  	"BAD_PAYLOAD":                  2,
    78  	"BAD_COMMON_HEADER":            3,
    79  	"BAD_CREATOR_SIGNATURE":        4,
    80  	"INVALID_ENDORSER_TRANSACTION": 5,
    81  	"INVALID_CONFIG_TRANSACTION":   6,
    82  	"UNSUPPORTED_TX_PAYLOAD":       7,
    83  	"BAD_PROPOSAL_TXID":            8,
    84  	"DUPLICATE_TXID":               9,
    85  	"ENDORSEMENT_POLICY_FAILURE":   10,
    86  	"MVCC_READ_CONFLICT":           11,
    87  	"PHANTOM_READ_CONFLICT":        12,
    88  	"UNKNOWN_TX_TYPE":              13,
    89  	"TARGET_CHAIN_NOT_FOUND":       14,
    90  	"MARSHAL_TX_ERROR":             15,
    91  	"NIL_TXACTION":                 16,
    92  	"EXPIRED_CHAINCODE":            17,
    93  	"CHAINCODE_VERSION_CONFLICT":   18,
    94  	"BAD_HEADER_EXTENSION":         19,
    95  	"BAD_CHANNEL_HEADER":           20,
    96  	"BAD_RESPONSE_PAYLOAD":         21,
    97  	"BAD_RWSET":                    22,
    98  	"ILLEGAL_WRITESET":             23,
    99  	"INVALID_OTHER_REASON":         255,
   100  }
   101  
   102  func (x TxValidationCode) String() string {
   103  	return proto.EnumName(TxValidationCode_name, int32(x))
   104  }
   105  func (TxValidationCode) EnumDescriptor() ([]byte, []int) { return fileDescriptor11, []int{0} }
   106  
   107  // This message is necessary to facilitate the verification of the signature
   108  // (in the signature field) over the bytes of the transaction (in the
   109  // transactionBytes field).
   110  type SignedTransaction struct {
   111  	// The bytes of the Transaction. NDD
   112  	TransactionBytes []byte `protobuf:"bytes,1,opt,name=transaction_bytes,json=transactionBytes,proto3" json:"transaction_bytes,omitempty"`
   113  	// Signature of the transactionBytes The public key of the signature is in
   114  	// the header field of TransactionAction There might be multiple
   115  	// TransactionAction, so multiple headers, but there should be same
   116  	// transactor identity (cert) in all headers
   117  	Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
   118  }
   119  
   120  func (m *SignedTransaction) Reset()                    { *m = SignedTransaction{} }
   121  func (m *SignedTransaction) String() string            { return proto.CompactTextString(m) }
   122  func (*SignedTransaction) ProtoMessage()               {}
   123  func (*SignedTransaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{0} }
   124  
   125  func (m *SignedTransaction) GetTransactionBytes() []byte {
   126  	if m != nil {
   127  		return m.TransactionBytes
   128  	}
   129  	return nil
   130  }
   131  
   132  func (m *SignedTransaction) GetSignature() []byte {
   133  	if m != nil {
   134  		return m.Signature
   135  	}
   136  	return nil
   137  }
   138  
   139  // ProcessedTransaction wraps an Envelope that includes a transaction along with an indication
   140  // of whether the transaction was validated or invalidated by committing peer.
   141  // The use case is that GetTransactionByID API needs to retrieve the transaction Envelope
   142  // from block storage, and return it to a client, and indicate whether the transaction
   143  // was validated or invalidated by committing peer. So that the originally submitted
   144  // transaction Envelope is not modified, the ProcessedTransaction wrapper is returned.
   145  type ProcessedTransaction struct {
   146  	// An Envelope which includes a processed transaction
   147  	TransactionEnvelope *common.Envelope `protobuf:"bytes,1,opt,name=transactionEnvelope" json:"transactionEnvelope,omitempty"`
   148  	// An indication of whether the transaction was validated or invalidated by committing peer
   149  	ValidationCode int32 `protobuf:"varint,2,opt,name=validationCode" json:"validationCode,omitempty"`
   150  }
   151  
   152  func (m *ProcessedTransaction) Reset()                    { *m = ProcessedTransaction{} }
   153  func (m *ProcessedTransaction) String() string            { return proto.CompactTextString(m) }
   154  func (*ProcessedTransaction) ProtoMessage()               {}
   155  func (*ProcessedTransaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{1} }
   156  
   157  func (m *ProcessedTransaction) GetTransactionEnvelope() *common.Envelope {
   158  	if m != nil {
   159  		return m.TransactionEnvelope
   160  	}
   161  	return nil
   162  }
   163  
   164  func (m *ProcessedTransaction) GetValidationCode() int32 {
   165  	if m != nil {
   166  		return m.ValidationCode
   167  	}
   168  	return 0
   169  }
   170  
   171  // The transaction to be sent to the ordering service. A transaction contains
   172  // one or more TransactionAction. Each TransactionAction binds a proposal to
   173  // potentially multiple actions. The transaction is atomic meaning that either
   174  // all actions in the transaction will be committed or none will.  Note that
   175  // while a Transaction might include more than one Header, the Header.creator
   176  // field must be the same in each.
   177  // A single client is free to issue a number of independent Proposal, each with
   178  // their header (Header) and request payload (ChaincodeProposalPayload).  Each
   179  // proposal is independently endorsed generating an action
   180  // (ProposalResponsePayload) with one signature per Endorser. Any number of
   181  // independent proposals (and their action) might be included in a transaction
   182  // to ensure that they are treated atomically.
   183  type Transaction struct {
   184  	// The payload is an array of TransactionAction. An array is necessary to
   185  	// accommodate multiple actions per transaction
   186  	Actions []*TransactionAction `protobuf:"bytes,1,rep,name=actions" json:"actions,omitempty"`
   187  }
   188  
   189  func (m *Transaction) Reset()                    { *m = Transaction{} }
   190  func (m *Transaction) String() string            { return proto.CompactTextString(m) }
   191  func (*Transaction) ProtoMessage()               {}
   192  func (*Transaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{2} }
   193  
   194  func (m *Transaction) GetActions() []*TransactionAction {
   195  	if m != nil {
   196  		return m.Actions
   197  	}
   198  	return nil
   199  }
   200  
   201  // TransactionAction binds a proposal to its action.  The type field in the
   202  // header dictates the type of action to be applied to the ledger.
   203  type TransactionAction struct {
   204  	// The header of the proposal action, which is the proposal header
   205  	Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
   206  	// The payload of the action as defined by the type in the header For
   207  	// chaincode, it's the bytes of ChaincodeActionPayload
   208  	Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
   209  }
   210  
   211  func (m *TransactionAction) Reset()                    { *m = TransactionAction{} }
   212  func (m *TransactionAction) String() string            { return proto.CompactTextString(m) }
   213  func (*TransactionAction) ProtoMessage()               {}
   214  func (*TransactionAction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{3} }
   215  
   216  func (m *TransactionAction) GetHeader() []byte {
   217  	if m != nil {
   218  		return m.Header
   219  	}
   220  	return nil
   221  }
   222  
   223  func (m *TransactionAction) GetPayload() []byte {
   224  	if m != nil {
   225  		return m.Payload
   226  	}
   227  	return nil
   228  }
   229  
   230  // ChaincodeActionPayload is the message to be used for the TransactionAction's
   231  // payload when the Header's type is set to CHAINCODE.  It carries the
   232  // chaincodeProposalPayload and an endorsed action to apply to the ledger.
   233  type ChaincodeActionPayload struct {
   234  	// This field contains the bytes of the ChaincodeProposalPayload message from
   235  	// the original invocation (essentially the arguments) after the application
   236  	// of the visibility function. The main visibility modes are "full" (the
   237  	// entire ChaincodeProposalPayload message is included here), "hash" (only
   238  	// the hash of the ChaincodeProposalPayload message is included) or
   239  	// "nothing".  This field will be used to check the consistency of
   240  	// ProposalResponsePayload.proposalHash.  For the CHAINCODE type,
   241  	// ProposalResponsePayload.proposalHash is supposed to be H(ProposalHeader ||
   242  	// f(ChaincodeProposalPayload)) where f is the visibility function.
   243  	ChaincodeProposalPayload []byte `protobuf:"bytes,1,opt,name=chaincode_proposal_payload,json=chaincodeProposalPayload,proto3" json:"chaincode_proposal_payload,omitempty"`
   244  	// The list of actions to apply to the ledger
   245  	Action *ChaincodeEndorsedAction `protobuf:"bytes,2,opt,name=action" json:"action,omitempty"`
   246  }
   247  
   248  func (m *ChaincodeActionPayload) Reset()                    { *m = ChaincodeActionPayload{} }
   249  func (m *ChaincodeActionPayload) String() string            { return proto.CompactTextString(m) }
   250  func (*ChaincodeActionPayload) ProtoMessage()               {}
   251  func (*ChaincodeActionPayload) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{4} }
   252  
   253  func (m *ChaincodeActionPayload) GetChaincodeProposalPayload() []byte {
   254  	if m != nil {
   255  		return m.ChaincodeProposalPayload
   256  	}
   257  	return nil
   258  }
   259  
   260  func (m *ChaincodeActionPayload) GetAction() *ChaincodeEndorsedAction {
   261  	if m != nil {
   262  		return m.Action
   263  	}
   264  	return nil
   265  }
   266  
   267  // ChaincodeEndorsedAction carries information about the endorsement of a
   268  // specific proposal
   269  type ChaincodeEndorsedAction struct {
   270  	// This is the bytes of the ProposalResponsePayload message signed by the
   271  	// endorsers.  Recall that for the CHAINCODE type, the
   272  	// ProposalResponsePayload's extenstion field carries a ChaincodeAction
   273  	ProposalResponsePayload []byte `protobuf:"bytes,1,opt,name=proposal_response_payload,json=proposalResponsePayload,proto3" json:"proposal_response_payload,omitempty"`
   274  	// The endorsement of the proposal, basically the endorser's signature over
   275  	// proposalResponsePayload
   276  	Endorsements []*Endorsement `protobuf:"bytes,2,rep,name=endorsements" json:"endorsements,omitempty"`
   277  }
   278  
   279  func (m *ChaincodeEndorsedAction) Reset()                    { *m = ChaincodeEndorsedAction{} }
   280  func (m *ChaincodeEndorsedAction) String() string            { return proto.CompactTextString(m) }
   281  func (*ChaincodeEndorsedAction) ProtoMessage()               {}
   282  func (*ChaincodeEndorsedAction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{5} }
   283  
   284  func (m *ChaincodeEndorsedAction) GetProposalResponsePayload() []byte {
   285  	if m != nil {
   286  		return m.ProposalResponsePayload
   287  	}
   288  	return nil
   289  }
   290  
   291  func (m *ChaincodeEndorsedAction) GetEndorsements() []*Endorsement {
   292  	if m != nil {
   293  		return m.Endorsements
   294  	}
   295  	return nil
   296  }
   297  
   298  func init() {
   299  	proto.RegisterType((*SignedTransaction)(nil), "protos.SignedTransaction")
   300  	proto.RegisterType((*ProcessedTransaction)(nil), "protos.ProcessedTransaction")
   301  	proto.RegisterType((*Transaction)(nil), "protos.Transaction")
   302  	proto.RegisterType((*TransactionAction)(nil), "protos.TransactionAction")
   303  	proto.RegisterType((*ChaincodeActionPayload)(nil), "protos.ChaincodeActionPayload")
   304  	proto.RegisterType((*ChaincodeEndorsedAction)(nil), "protos.ChaincodeEndorsedAction")
   305  	proto.RegisterEnum("protos.TxValidationCode", TxValidationCode_name, TxValidationCode_value)
   306  }
   307  
   308  func init() { proto.RegisterFile("peer/transaction.proto", fileDescriptor11) }
   309  
   310  var fileDescriptor11 = []byte{
   311  	// 833 bytes of a gzipped FileDescriptorProto
   312  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x54, 0xd1, 0x6e, 0xe2, 0x46,
   313  	0x14, 0x2d, 0xd9, 0x4d, 0xd2, 0x0c, 0xd9, 0x64, 0x32, 0x10, 0x42, 0x50, 0xd4, 0x5d, 0xf1, 0x50,
   314  	0x6d, 0x5b, 0x09, 0xa4, 0xec, 0x43, 0xa5, 0xaa, 0x2f, 0x83, 0x3d, 0x09, 0x56, 0xcd, 0x8c, 0x35,
   315  	0x1e, 0x08, 0xe9, 0x43, 0x47, 0x06, 0xcf, 0x12, 0x54, 0xb0, 0x2d, 0xdb, 0x59, 0x35, 0xaf, 0xfd,
   316  	0x80, 0xf6, 0x3f, 0xfb, 0x13, 0xad, 0xc6, 0x63, 0x03, 0xc9, 0x76, 0x5f, 0x30, 0x73, 0xcf, 0xb9,
   317  	0xf7, 0x9c, 0x7b, 0xaf, 0x3d, 0xa0, 0x95, 0x28, 0x95, 0xf6, 0xf3, 0x34, 0x88, 0xb2, 0x60, 0x9e,
   318  	0x2f, 0xe3, 0xa8, 0x97, 0xa4, 0x71, 0x1e, 0xa3, 0x83, 0xe2, 0x91, 0x75, 0xde, 0x2e, 0xe2, 0x78,
   319  	0xb1, 0x52, 0xfd, 0xe2, 0x38, 0x7b, 0xfc, 0xd8, 0xcf, 0x97, 0x6b, 0x95, 0xe5, 0xc1, 0x3a, 0x31,
   320  	0xc4, 0xce, 0x55, 0x51, 0x20, 0x49, 0xe3, 0x24, 0xce, 0x82, 0x95, 0x4c, 0x55, 0x96, 0xc4, 0x51,
   321  	0xa6, 0x4a, 0xb4, 0x31, 0x8f, 0xd7, 0xeb, 0x38, 0xea, 0x9b, 0x87, 0x09, 0x76, 0x7f, 0x03, 0x67,
   322  	0xfe, 0x72, 0x11, 0xa9, 0x50, 0x6c, 0x65, 0xd1, 0x0f, 0xe0, 0x6c, 0xc7, 0x85, 0x9c, 0x3d, 0xe5,
   323  	0x2a, 0x6b, 0xd7, 0xde, 0xd5, 0xde, 0x1f, 0x73, 0xb8, 0x03, 0x0c, 0x74, 0x1c, 0x5d, 0x81, 0xa3,
   324  	0x6c, 0xb9, 0x88, 0x82, 0xfc, 0x31, 0x55, 0xed, 0xbd, 0x82, 0xb4, 0x0d, 0x74, 0xff, 0xac, 0x81,
   325  	0xa6, 0x97, 0xc6, 0x73, 0x95, 0x65, 0xcf, 0x35, 0x06, 0xa0, 0xb1, 0x53, 0x8a, 0x44, 0x9f, 0xd4,
   326  	0x2a, 0x4e, 0x54, 0xa1, 0x52, 0xbf, 0x86, 0xbd, 0xd2, 0x64, 0x15, 0xe7, 0xff, 0x47, 0x46, 0xdf,
   327  	0x82, 0x93, 0x4f, 0xc1, 0x6a, 0x19, 0x06, 0x3a, 0x6a, 0xc5, 0xa1, 0xd1, 0xdf, 0xe7, 0x2f, 0xa2,
   328  	0xdd, 0x01, 0xa8, 0xef, 0x4a, 0x7f, 0x00, 0x87, 0xe6, 0x9f, 0x6e, 0xea, 0xd5, 0xfb, 0xfa, 0xf5,
   329  	0xa5, 0x19, 0x46, 0xd6, 0xdb, 0x61, 0xe1, 0xe2, 0x97, 0x57, 0xcc, 0x2e, 0x01, 0x67, 0x9f, 0xa1,
   330  	0xa8, 0x05, 0x0e, 0x1e, 0x54, 0x10, 0xaa, 0xb4, 0x9c, 0x4e, 0x79, 0x42, 0x6d, 0x70, 0x98, 0x04,
   331  	0x4f, 0xab, 0x38, 0x08, 0xcb, 0x89, 0x54, 0xc7, 0xee, 0xdf, 0x35, 0xd0, 0xb2, 0x1e, 0x82, 0x65,
   332  	0x34, 0x8f, 0x43, 0x65, 0xaa, 0x78, 0x06, 0x42, 0x3f, 0x83, 0xce, 0xbc, 0x42, 0xe4, 0x66, 0x89,
   333  	0x55, 0x1d, 0x23, 0xd0, 0xde, 0x30, 0xbc, 0x92, 0x50, 0x65, 0xff, 0x08, 0x0e, 0x8c, 0xb5, 0x42,
   334  	0xb1, 0x7e, 0xfd, 0xb6, 0xea, 0x69, 0xa3, 0x46, 0xa2, 0x30, 0x4e, 0x33, 0x15, 0x96, 0x9d, 0x95,
   335  	0xf4, 0xee, 0x5f, 0x35, 0x70, 0xf1, 0x05, 0x0e, 0xfa, 0x09, 0x5c, 0x7e, 0xf6, 0x36, 0xbd, 0x70,
   336  	0x74, 0x51, 0x11, 0x78, 0x89, 0x6f, 0x0d, 0x1d, 0x2b, 0x53, 0x6d, 0xad, 0xa2, 0x3c, 0x6b, 0xef,
   337  	0x15, 0xa3, 0x6e, 0x54, 0xb6, 0xc8, 0x16, 0xe3, 0xcf, 0x88, 0xdf, 0xff, 0xf3, 0x1a, 0x40, 0xf1,
   338  	0xc7, 0xe4, 0xd9, 0x0a, 0xd1, 0x11, 0xd8, 0x9f, 0x60, 0xd7, 0xb1, 0xe1, 0x57, 0x08, 0x82, 0x63,
   339  	0xea, 0xb8, 0x92, 0xd0, 0x09, 0x71, 0x99, 0x47, 0x60, 0x0d, 0x9d, 0x82, 0xfa, 0x00, 0xdb, 0xd2,
   340  	0xc3, 0xf7, 0x2e, 0xc3, 0x36, 0xdc, 0x43, 0xe7, 0xe0, 0x4c, 0x07, 0x2c, 0x36, 0x1a, 0x31, 0x2a,
   341  	0x87, 0x04, 0xdb, 0x84, 0xc3, 0x57, 0xe8, 0x12, 0x9c, 0x17, 0x61, 0x4e, 0xb0, 0x60, 0x5c, 0xfa,
   342  	0xce, 0x2d, 0xc5, 0x62, 0xcc, 0x09, 0x7c, 0x8d, 0xde, 0x81, 0x2b, 0x87, 0x16, 0x0a, 0x92, 0x50,
   343  	0x9b, 0x71, 0x9f, 0x70, 0x29, 0x38, 0xa6, 0x3e, 0xb6, 0x84, 0xc3, 0x28, 0xdc, 0x47, 0xdf, 0x80,
   344  	0x4e, 0xc5, 0xb0, 0x18, 0xbd, 0x71, 0x6e, 0x9f, 0xe1, 0x07, 0xa8, 0x03, 0x5a, 0x63, 0xea, 0x8f,
   345  	0x3d, 0x8f, 0x71, 0x41, 0x6c, 0x29, 0xa6, 0x1b, 0x3f, 0x87, 0x95, 0x1f, 0x8f, 0x33, 0x8f, 0xf9,
   346  	0xd8, 0x95, 0x62, 0xea, 0xd8, 0xf0, 0x6b, 0x84, 0xc0, 0x89, 0x3d, 0xf6, 0x5c, 0xc7, 0xc2, 0x82,
   347  	0x98, 0xd8, 0x91, 0x96, 0x29, 0x0d, 0x8c, 0x08, 0x15, 0xd2, 0x63, 0xae, 0x63, 0xdd, 0xcb, 0x1b,
   348  	0xec, 0xb8, 0xda, 0x28, 0x40, 0x2d, 0x80, 0x46, 0x13, 0xcb, 0x92, 0x9c, 0x60, 0x63, 0xc4, 0x75,
   349  	0x2c, 0x01, 0xeb, 0xba, 0x37, 0x6f, 0x88, 0xa9, 0x60, 0xa3, 0x17, 0xd0, 0x31, 0x6a, 0x80, 0xd3,
   350  	0x31, 0xfd, 0x85, 0xb2, 0x3b, 0xaa, 0x5d, 0x89, 0x7b, 0x8f, 0xc0, 0x37, 0xda, 0xae, 0xc0, 0xfc,
   351  	0x96, 0x08, 0x69, 0x0d, 0xb1, 0x43, 0x25, 0x65, 0x42, 0xde, 0xb0, 0x31, 0xb5, 0xe1, 0x09, 0x6a,
   352  	0x02, 0x38, 0xc2, 0xdc, 0x1f, 0x16, 0x4e, 0x25, 0xe1, 0x9c, 0x71, 0x78, 0x5a, 0xcd, 0x5d, 0x4c,
   353  	0xcb, 0x96, 0xa1, 0x6e, 0x8b, 0x4c, 0x3d, 0x87, 0x13, 0xdb, 0x14, 0xb1, 0x98, 0x4d, 0xe0, 0x99,
   354  	0x6e, 0x61, 0x73, 0x94, 0x13, 0xc2, 0x7d, 0x87, 0xd1, 0xad, 0x1f, 0x84, 0xda, 0xa0, 0xa9, 0xa7,
   355  	0x61, 0xd6, 0x22, 0xc9, 0x54, 0x10, 0xaa, 0x29, 0xb0, 0xa1, 0x9b, 0x2b, 0x16, 0x34, 0xc4, 0x94,
   356  	0x12, 0xb7, 0x5a, 0x5c, 0xb3, 0xca, 0xe0, 0xc4, 0xf7, 0x18, 0xf5, 0xc9, 0x66, 0xb2, 0xe7, 0xe8,
   357  	0x0d, 0x38, 0x2a, 0x90, 0x3b, 0x9f, 0x08, 0xd8, 0xd2, 0xce, 0x1d, 0xd7, 0x25, 0xb7, 0xd8, 0x95,
   358  	0x77, 0xdc, 0x11, 0x44, 0x47, 0x2f, 0xd0, 0x25, 0x68, 0x56, 0xab, 0x63, 0x62, 0x48, 0xb8, 0x9e,
   359  	0x90, 0xcf, 0x28, 0xfc, 0xb7, 0x36, 0x98, 0x83, 0x6e, 0x9c, 0x2e, 0x7a, 0x0f, 0x4f, 0x89, 0x4a,
   360  	0x57, 0x2a, 0x5c, 0xa8, 0xb4, 0xf7, 0x31, 0x98, 0xa5, 0xcb, 0x79, 0xf5, 0x9e, 0xea, 0x2b, 0x75,
   361  	0x80, 0x76, 0x3e, 0x7d, 0x2f, 0x98, 0xff, 0x1e, 0x2c, 0xd4, 0xaf, 0xdf, 0x2d, 0x96, 0xf9, 0xc3,
   362  	0xe3, 0x4c, 0xdf, 0x54, 0xfd, 0x9d, 0xf4, 0xbe, 0x49, 0x37, 0x97, 0x74, 0xd6, 0xd7, 0xe9, 0x33,
   363  	0x73, 0x81, 0x7f, 0xf8, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x19, 0x1c, 0xb2, 0xe4, 0xe1, 0x05, 0x00,
   364  	0x00,
   365  }