github.com/linapex/ethereum-dpos-chinese@v0.0.0-20190316121959-b78b3a4a1ece/accounts/usbwallet/internal/trezor/messages.pb.go (about)

     1  
     2  //<developer>
     3  //    <name>linapex 曹一峰</name>
     4  //    <email>linapex@163.com</email>
     5  //    <wx>superexc</wx>
     6  //    <qqgroup>128148617</qqgroup>
     7  //    <url>https://jsq.ink</url>
     8  //    <role>pku engineer</role>
     9  //    <date>2019-03-16 12:09:27</date>
    10  //</624342586580013056>
    11  
    12  //由Protoc Gen Go生成的代码。不要编辑。
    13  //来源:messages.proto
    14  
    15  package trezor
    16  
    17  import proto "github.com/golang/protobuf/proto"
    18  import fmt "fmt"
    19  import math "math"
    20  
    21  //引用导入以禁止错误(如果未使用)。
    22  var _ = proto.Marshal
    23  var _ = fmt.Errorf
    24  var _ = math.Inf
    25  
    26  //*
    27  //trezor线标识符(uint)和protobuf消息之间的映射
    28  type MessageType int32
    29  
    30  const (
    31  	MessageType_MessageType_Initialize               MessageType = 0
    32  	MessageType_MessageType_Ping                     MessageType = 1
    33  	MessageType_MessageType_Success                  MessageType = 2
    34  	MessageType_MessageType_Failure                  MessageType = 3
    35  	MessageType_MessageType_ChangePin                MessageType = 4
    36  	MessageType_MessageType_WipeDevice               MessageType = 5
    37  	MessageType_MessageType_FirmwareErase            MessageType = 6
    38  	MessageType_MessageType_FirmwareUpload           MessageType = 7
    39  	MessageType_MessageType_FirmwareRequest          MessageType = 8
    40  	MessageType_MessageType_GetEntropy               MessageType = 9
    41  	MessageType_MessageType_Entropy                  MessageType = 10
    42  	MessageType_MessageType_GetPublicKey             MessageType = 11
    43  	MessageType_MessageType_PublicKey                MessageType = 12
    44  	MessageType_MessageType_LoadDevice               MessageType = 13
    45  	MessageType_MessageType_ResetDevice              MessageType = 14
    46  	MessageType_MessageType_SignTx                   MessageType = 15
    47  	MessageType_MessageType_SimpleSignTx             MessageType = 16
    48  	MessageType_MessageType_Features                 MessageType = 17
    49  	MessageType_MessageType_PinMatrixRequest         MessageType = 18
    50  	MessageType_MessageType_PinMatrixAck             MessageType = 19
    51  	MessageType_MessageType_Cancel                   MessageType = 20
    52  	MessageType_MessageType_TxRequest                MessageType = 21
    53  	MessageType_MessageType_TxAck                    MessageType = 22
    54  	MessageType_MessageType_CipherKeyValue           MessageType = 23
    55  	MessageType_MessageType_ClearSession             MessageType = 24
    56  	MessageType_MessageType_ApplySettings            MessageType = 25
    57  	MessageType_MessageType_ButtonRequest            MessageType = 26
    58  	MessageType_MessageType_ButtonAck                MessageType = 27
    59  	MessageType_MessageType_ApplyFlags               MessageType = 28
    60  	MessageType_MessageType_GetAddress               MessageType = 29
    61  	MessageType_MessageType_Address                  MessageType = 30
    62  	MessageType_MessageType_SelfTest                 MessageType = 32
    63  	MessageType_MessageType_BackupDevice             MessageType = 34
    64  	MessageType_MessageType_EntropyRequest           MessageType = 35
    65  	MessageType_MessageType_EntropyAck               MessageType = 36
    66  	MessageType_MessageType_SignMessage              MessageType = 38
    67  	MessageType_MessageType_VerifyMessage            MessageType = 39
    68  	MessageType_MessageType_MessageSignature         MessageType = 40
    69  	MessageType_MessageType_PassphraseRequest        MessageType = 41
    70  	MessageType_MessageType_PassphraseAck            MessageType = 42
    71  	MessageType_MessageType_EstimateTxSize           MessageType = 43
    72  	MessageType_MessageType_TxSize                   MessageType = 44
    73  	MessageType_MessageType_RecoveryDevice           MessageType = 45
    74  	MessageType_MessageType_WordRequest              MessageType = 46
    75  	MessageType_MessageType_WordAck                  MessageType = 47
    76  	MessageType_MessageType_CipheredKeyValue         MessageType = 48
    77  	MessageType_MessageType_EncryptMessage           MessageType = 49
    78  	MessageType_MessageType_EncryptedMessage         MessageType = 50
    79  	MessageType_MessageType_DecryptMessage           MessageType = 51
    80  	MessageType_MessageType_DecryptedMessage         MessageType = 52
    81  	MessageType_MessageType_SignIdentity             MessageType = 53
    82  	MessageType_MessageType_SignedIdentity           MessageType = 54
    83  	MessageType_MessageType_GetFeatures              MessageType = 55
    84  	MessageType_MessageType_EthereumGetAddress       MessageType = 56
    85  	MessageType_MessageType_EthereumAddress          MessageType = 57
    86  	MessageType_MessageType_EthereumSignTx           MessageType = 58
    87  	MessageType_MessageType_EthereumTxRequest        MessageType = 59
    88  	MessageType_MessageType_EthereumTxAck            MessageType = 60
    89  	MessageType_MessageType_GetECDHSessionKey        MessageType = 61
    90  	MessageType_MessageType_ECDHSessionKey           MessageType = 62
    91  	MessageType_MessageType_SetU2FCounter            MessageType = 63
    92  	MessageType_MessageType_EthereumSignMessage      MessageType = 64
    93  	MessageType_MessageType_EthereumVerifyMessage    MessageType = 65
    94  	MessageType_MessageType_EthereumMessageSignature MessageType = 66
    95  	MessageType_MessageType_DebugLinkDecision        MessageType = 100
    96  	MessageType_MessageType_DebugLinkGetState        MessageType = 101
    97  	MessageType_MessageType_DebugLinkState           MessageType = 102
    98  	MessageType_MessageType_DebugLinkStop            MessageType = 103
    99  	MessageType_MessageType_DebugLinkLog             MessageType = 104
   100  	MessageType_MessageType_DebugLinkMemoryRead      MessageType = 110
   101  	MessageType_MessageType_DebugLinkMemory          MessageType = 111
   102  	MessageType_MessageType_DebugLinkMemoryWrite     MessageType = 112
   103  	MessageType_MessageType_DebugLinkFlashErase      MessageType = 113
   104  )
   105  
   106  var MessageType_name = map[int32]string{
   107  	0:   "MessageType_Initialize",
   108  	1:   "MessageType_Ping",
   109  	2:   "MessageType_Success",
   110  	3:   "MessageType_Failure",
   111  	4:   "MessageType_ChangePin",
   112  	5:   "MessageType_WipeDevice",
   113  	6:   "MessageType_FirmwareErase",
   114  	7:   "MessageType_FirmwareUpload",
   115  	8:   "MessageType_FirmwareRequest",
   116  	9:   "MessageType_GetEntropy",
   117  	10:  "MessageType_Entropy",
   118  	11:  "MessageType_GetPublicKey",
   119  	12:  "MessageType_PublicKey",
   120  	13:  "MessageType_LoadDevice",
   121  	14:  "MessageType_ResetDevice",
   122  	15:  "MessageType_SignTx",
   123  	16:  "MessageType_SimpleSignTx",
   124  	17:  "MessageType_Features",
   125  	18:  "MessageType_PinMatrixRequest",
   126  	19:  "MessageType_PinMatrixAck",
   127  	20:  "MessageType_Cancel",
   128  	21:  "MessageType_TxRequest",
   129  	22:  "MessageType_TxAck",
   130  	23:  "MessageType_CipherKeyValue",
   131  	24:  "MessageType_ClearSession",
   132  	25:  "MessageType_ApplySettings",
   133  	26:  "MessageType_ButtonRequest",
   134  	27:  "MessageType_ButtonAck",
   135  	28:  "MessageType_ApplyFlags",
   136  	29:  "MessageType_GetAddress",
   137  	30:  "MessageType_Address",
   138  	32:  "MessageType_SelfTest",
   139  	34:  "MessageType_BackupDevice",
   140  	35:  "MessageType_EntropyRequest",
   141  	36:  "MessageType_EntropyAck",
   142  	38:  "MessageType_SignMessage",
   143  	39:  "MessageType_VerifyMessage",
   144  	40:  "MessageType_MessageSignature",
   145  	41:  "MessageType_PassphraseRequest",
   146  	42:  "MessageType_PassphraseAck",
   147  	43:  "MessageType_EstimateTxSize",
   148  	44:  "MessageType_TxSize",
   149  	45:  "MessageType_RecoveryDevice",
   150  	46:  "MessageType_WordRequest",
   151  	47:  "MessageType_WordAck",
   152  	48:  "MessageType_CipheredKeyValue",
   153  	49:  "MessageType_EncryptMessage",
   154  	50:  "MessageType_EncryptedMessage",
   155  	51:  "MessageType_DecryptMessage",
   156  	52:  "MessageType_DecryptedMessage",
   157  	53:  "MessageType_SignIdentity",
   158  	54:  "MessageType_SignedIdentity",
   159  	55:  "MessageType_GetFeatures",
   160  	56:  "MessageType_EthereumGetAddress",
   161  	57:  "MessageType_EthereumAddress",
   162  	58:  "MessageType_EthereumSignTx",
   163  	59:  "MessageType_EthereumTxRequest",
   164  	60:  "MessageType_EthereumTxAck",
   165  	61:  "MessageType_GetECDHSessionKey",
   166  	62:  "MessageType_ECDHSessionKey",
   167  	63:  "MessageType_SetU2FCounter",
   168  	64:  "MessageType_EthereumSignMessage",
   169  	65:  "MessageType_EthereumVerifyMessage",
   170  	66:  "MessageType_EthereumMessageSignature",
   171  	100: "MessageType_DebugLinkDecision",
   172  	101: "MessageType_DebugLinkGetState",
   173  	102: "MessageType_DebugLinkState",
   174  	103: "MessageType_DebugLinkStop",
   175  	104: "MessageType_DebugLinkLog",
   176  	110: "MessageType_DebugLinkMemoryRead",
   177  	111: "MessageType_DebugLinkMemory",
   178  	112: "MessageType_DebugLinkMemoryWrite",
   179  	113: "MessageType_DebugLinkFlashErase",
   180  }
   181  var MessageType_value = map[string]int32{
   182  	"MessageType_Initialize":               0,
   183  	"MessageType_Ping":                     1,
   184  	"MessageType_Success":                  2,
   185  	"MessageType_Failure":                  3,
   186  	"MessageType_ChangePin":                4,
   187  	"MessageType_WipeDevice":               5,
   188  	"MessageType_FirmwareErase":            6,
   189  	"MessageType_FirmwareUpload":           7,
   190  	"MessageType_FirmwareRequest":          8,
   191  	"MessageType_GetEntropy":               9,
   192  	"MessageType_Entropy":                  10,
   193  	"MessageType_GetPublicKey":             11,
   194  	"MessageType_PublicKey":                12,
   195  	"MessageType_LoadDevice":               13,
   196  	"MessageType_ResetDevice":              14,
   197  	"MessageType_SignTx":                   15,
   198  	"MessageType_SimpleSignTx":             16,
   199  	"MessageType_Features":                 17,
   200  	"MessageType_PinMatrixRequest":         18,
   201  	"MessageType_PinMatrixAck":             19,
   202  	"MessageType_Cancel":                   20,
   203  	"MessageType_TxRequest":                21,
   204  	"MessageType_TxAck":                    22,
   205  	"MessageType_CipherKeyValue":           23,
   206  	"MessageType_ClearSession":             24,
   207  	"MessageType_ApplySettings":            25,
   208  	"MessageType_ButtonRequest":            26,
   209  	"MessageType_ButtonAck":                27,
   210  	"MessageType_ApplyFlags":               28,
   211  	"MessageType_GetAddress":               29,
   212  	"MessageType_Address":                  30,
   213  	"MessageType_SelfTest":                 32,
   214  	"MessageType_BackupDevice":             34,
   215  	"MessageType_EntropyRequest":           35,
   216  	"MessageType_EntropyAck":               36,
   217  	"MessageType_SignMessage":              38,
   218  	"MessageType_VerifyMessage":            39,
   219  	"MessageType_MessageSignature":         40,
   220  	"MessageType_PassphraseRequest":        41,
   221  	"MessageType_PassphraseAck":            42,
   222  	"MessageType_EstimateTxSize":           43,
   223  	"MessageType_TxSize":                   44,
   224  	"MessageType_RecoveryDevice":           45,
   225  	"MessageType_WordRequest":              46,
   226  	"MessageType_WordAck":                  47,
   227  	"MessageType_CipheredKeyValue":         48,
   228  	"MessageType_EncryptMessage":           49,
   229  	"MessageType_EncryptedMessage":         50,
   230  	"MessageType_DecryptMessage":           51,
   231  	"MessageType_DecryptedMessage":         52,
   232  	"MessageType_SignIdentity":             53,
   233  	"MessageType_SignedIdentity":           54,
   234  	"MessageType_GetFeatures":              55,
   235  	"MessageType_EthereumGetAddress":       56,
   236  	"MessageType_EthereumAddress":          57,
   237  	"MessageType_EthereumSignTx":           58,
   238  	"MessageType_EthereumTxRequest":        59,
   239  	"MessageType_EthereumTxAck":            60,
   240  	"MessageType_GetECDHSessionKey":        61,
   241  	"MessageType_ECDHSessionKey":           62,
   242  	"MessageType_SetU2FCounter":            63,
   243  	"MessageType_EthereumSignMessage":      64,
   244  	"MessageType_EthereumVerifyMessage":    65,
   245  	"MessageType_EthereumMessageSignature": 66,
   246  	"MessageType_DebugLinkDecision":        100,
   247  	"MessageType_DebugLinkGetState":        101,
   248  	"MessageType_DebugLinkState":           102,
   249  	"MessageType_DebugLinkStop":            103,
   250  	"MessageType_DebugLinkLog":             104,
   251  	"MessageType_DebugLinkMemoryRead":      110,
   252  	"MessageType_DebugLinkMemory":          111,
   253  	"MessageType_DebugLinkMemoryWrite":     112,
   254  	"MessageType_DebugLinkFlashErase":      113,
   255  }
   256  
   257  func (x MessageType) Enum() *MessageType {
   258  	p := new(MessageType)
   259  	*p = x
   260  	return p
   261  }
   262  func (x MessageType) String() string {
   263  	return proto.EnumName(MessageType_name, int32(x))
   264  }
   265  func (x *MessageType) UnmarshalJSON(data []byte) error {
   266  	value, err := proto.UnmarshalJSONEnum(MessageType_value, data, "MessageType")
   267  	if err != nil {
   268  		return err
   269  	}
   270  	*x = MessageType(value)
   271  	return nil
   272  }
   273  func (MessageType) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
   274  
   275  //*
   276  //请求:将设备重置为默认状态并询问设备详细信息
   277  //下一个特征
   278  type Initialize struct {
   279  	XXX_unrecognized []byte `json:"-"`
   280  }
   281  
   282  func (m *Initialize) Reset()                    { *m = Initialize{} }
   283  func (m *Initialize) String() string            { return proto.CompactTextString(m) }
   284  func (*Initialize) ProtoMessage()               {}
   285  func (*Initialize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
   286  
   287  //*
   288  //请求:询问设备详细信息(无设备重置)
   289  //下一个特征
   290  type GetFeatures struct {
   291  	XXX_unrecognized []byte `json:"-"`
   292  }
   293  
   294  func (m *GetFeatures) Reset()                    { *m = GetFeatures{} }
   295  func (m *GetFeatures) String() string            { return proto.CompactTextString(m) }
   296  func (*GetFeatures) ProtoMessage()               {}
   297  func (*GetFeatures) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
   298  
   299  //*
   300  //响应:报告有关设备的各种信息
   301  //@prev初始化
   302  //@上一个获取功能
   303  type Features struct {
   304  	Vendor               *string     `protobuf:"bytes,1,opt,name=vendor" json:"vendor,omitempty"`
   305  	MajorVersion         *uint32     `protobuf:"varint,2,opt,name=major_version,json=majorVersion" json:"major_version,omitempty"`
   306  	MinorVersion         *uint32     `protobuf:"varint,3,opt,name=minor_version,json=minorVersion" json:"minor_version,omitempty"`
   307  	PatchVersion         *uint32     `protobuf:"varint,4,opt,name=patch_version,json=patchVersion" json:"patch_version,omitempty"`
   308  	BootloaderMode       *bool       `protobuf:"varint,5,opt,name=bootloader_mode,json=bootloaderMode" json:"bootloader_mode,omitempty"`
   309  	DeviceId             *string     `protobuf:"bytes,6,opt,name=device_id,json=deviceId" json:"device_id,omitempty"`
   310  	PinProtection        *bool       `protobuf:"varint,7,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
   311  	PassphraseProtection *bool       `protobuf:"varint,8,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
   312  	Language             *string     `protobuf:"bytes,9,opt,name=language" json:"language,omitempty"`
   313  	Label                *string     `protobuf:"bytes,10,opt,name=label" json:"label,omitempty"`
   314  	Coins                []*CoinType `protobuf:"bytes,11,rep,name=coins" json:"coins,omitempty"`
   315  	Initialized          *bool       `protobuf:"varint,12,opt,name=initialized" json:"initialized,omitempty"`
   316  	Revision             []byte      `protobuf:"bytes,13,opt,name=revision" json:"revision,omitempty"`
   317  	BootloaderHash       []byte      `protobuf:"bytes,14,opt,name=bootloader_hash,json=bootloaderHash" json:"bootloader_hash,omitempty"`
   318  	Imported             *bool       `protobuf:"varint,15,opt,name=imported" json:"imported,omitempty"`
   319  	PinCached            *bool       `protobuf:"varint,16,opt,name=pin_cached,json=pinCached" json:"pin_cached,omitempty"`
   320  	PassphraseCached     *bool       `protobuf:"varint,17,opt,name=passphrase_cached,json=passphraseCached" json:"passphrase_cached,omitempty"`
   321  	FirmwarePresent      *bool       `protobuf:"varint,18,opt,name=firmware_present,json=firmwarePresent" json:"firmware_present,omitempty"`
   322  	NeedsBackup          *bool       `protobuf:"varint,19,opt,name=needs_backup,json=needsBackup" json:"needs_backup,omitempty"`
   323  	Flags                *uint32     `protobuf:"varint,20,opt,name=flags" json:"flags,omitempty"`
   324  	XXX_unrecognized     []byte      `json:"-"`
   325  }
   326  
   327  func (m *Features) Reset()                    { *m = Features{} }
   328  func (m *Features) String() string            { return proto.CompactTextString(m) }
   329  func (*Features) ProtoMessage()               {}
   330  func (*Features) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
   331  
   332  func (m *Features) GetVendor() string {
   333  	if m != nil && m.Vendor != nil {
   334  		return *m.Vendor
   335  	}
   336  	return ""
   337  }
   338  
   339  func (m *Features) GetMajorVersion() uint32 {
   340  	if m != nil && m.MajorVersion != nil {
   341  		return *m.MajorVersion
   342  	}
   343  	return 0
   344  }
   345  
   346  func (m *Features) GetMinorVersion() uint32 {
   347  	if m != nil && m.MinorVersion != nil {
   348  		return *m.MinorVersion
   349  	}
   350  	return 0
   351  }
   352  
   353  func (m *Features) GetPatchVersion() uint32 {
   354  	if m != nil && m.PatchVersion != nil {
   355  		return *m.PatchVersion
   356  	}
   357  	return 0
   358  }
   359  
   360  func (m *Features) GetBootloaderMode() bool {
   361  	if m != nil && m.BootloaderMode != nil {
   362  		return *m.BootloaderMode
   363  	}
   364  	return false
   365  }
   366  
   367  func (m *Features) GetDeviceId() string {
   368  	if m != nil && m.DeviceId != nil {
   369  		return *m.DeviceId
   370  	}
   371  	return ""
   372  }
   373  
   374  func (m *Features) GetPinProtection() bool {
   375  	if m != nil && m.PinProtection != nil {
   376  		return *m.PinProtection
   377  	}
   378  	return false
   379  }
   380  
   381  func (m *Features) GetPassphraseProtection() bool {
   382  	if m != nil && m.PassphraseProtection != nil {
   383  		return *m.PassphraseProtection
   384  	}
   385  	return false
   386  }
   387  
   388  func (m *Features) GetLanguage() string {
   389  	if m != nil && m.Language != nil {
   390  		return *m.Language
   391  	}
   392  	return ""
   393  }
   394  
   395  func (m *Features) GetLabel() string {
   396  	if m != nil && m.Label != nil {
   397  		return *m.Label
   398  	}
   399  	return ""
   400  }
   401  
   402  func (m *Features) GetCoins() []*CoinType {
   403  	if m != nil {
   404  		return m.Coins
   405  	}
   406  	return nil
   407  }
   408  
   409  func (m *Features) GetInitialized() bool {
   410  	if m != nil && m.Initialized != nil {
   411  		return *m.Initialized
   412  	}
   413  	return false
   414  }
   415  
   416  func (m *Features) GetRevision() []byte {
   417  	if m != nil {
   418  		return m.Revision
   419  	}
   420  	return nil
   421  }
   422  
   423  func (m *Features) GetBootloaderHash() []byte {
   424  	if m != nil {
   425  		return m.BootloaderHash
   426  	}
   427  	return nil
   428  }
   429  
   430  func (m *Features) GetImported() bool {
   431  	if m != nil && m.Imported != nil {
   432  		return *m.Imported
   433  	}
   434  	return false
   435  }
   436  
   437  func (m *Features) GetPinCached() bool {
   438  	if m != nil && m.PinCached != nil {
   439  		return *m.PinCached
   440  	}
   441  	return false
   442  }
   443  
   444  func (m *Features) GetPassphraseCached() bool {
   445  	if m != nil && m.PassphraseCached != nil {
   446  		return *m.PassphraseCached
   447  	}
   448  	return false
   449  }
   450  
   451  func (m *Features) GetFirmwarePresent() bool {
   452  	if m != nil && m.FirmwarePresent != nil {
   453  		return *m.FirmwarePresent
   454  	}
   455  	return false
   456  }
   457  
   458  func (m *Features) GetNeedsBackup() bool {
   459  	if m != nil && m.NeedsBackup != nil {
   460  		return *m.NeedsBackup
   461  	}
   462  	return false
   463  }
   464  
   465  func (m *Features) GetFlags() uint32 {
   466  	if m != nil && m.Flags != nil {
   467  		return *m.Flags
   468  	}
   469  	return 0
   470  }
   471  
   472  //*
   473  //请求:清除会话(删除缓存的pin、密码短语等)。
   474  //下一个成功
   475  type ClearSession struct {
   476  	XXX_unrecognized []byte `json:"-"`
   477  }
   478  
   479  func (m *ClearSession) Reset()                    { *m = ClearSession{} }
   480  func (m *ClearSession) String() string            { return proto.CompactTextString(m) }
   481  func (*ClearSession) ProtoMessage()               {}
   482  func (*ClearSession) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
   483  
   484  //*
   485  //请求:更改设备的语言和/或标签
   486  //下一个成功
   487  //下一次失败
   488  //@下一步按钮请求
   489  //@下一个PinMatrixRequest
   490  type ApplySettings struct {
   491  	Language         *string `protobuf:"bytes,1,opt,name=language" json:"language,omitempty"`
   492  	Label            *string `protobuf:"bytes,2,opt,name=label" json:"label,omitempty"`
   493  	UsePassphrase    *bool   `protobuf:"varint,3,opt,name=use_passphrase,json=usePassphrase" json:"use_passphrase,omitempty"`
   494  	Homescreen       []byte  `protobuf:"bytes,4,opt,name=homescreen" json:"homescreen,omitempty"`
   495  	XXX_unrecognized []byte  `json:"-"`
   496  }
   497  
   498  func (m *ApplySettings) Reset()                    { *m = ApplySettings{} }
   499  func (m *ApplySettings) String() string            { return proto.CompactTextString(m) }
   500  func (*ApplySettings) ProtoMessage()               {}
   501  func (*ApplySettings) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
   502  
   503  func (m *ApplySettings) GetLanguage() string {
   504  	if m != nil && m.Language != nil {
   505  		return *m.Language
   506  	}
   507  	return ""
   508  }
   509  
   510  func (m *ApplySettings) GetLabel() string {
   511  	if m != nil && m.Label != nil {
   512  		return *m.Label
   513  	}
   514  	return ""
   515  }
   516  
   517  func (m *ApplySettings) GetUsePassphrase() bool {
   518  	if m != nil && m.UsePassphrase != nil {
   519  		return *m.UsePassphrase
   520  	}
   521  	return false
   522  }
   523  
   524  func (m *ApplySettings) GetHomescreen() []byte {
   525  	if m != nil {
   526  		return m.Homescreen
   527  	}
   528  	return nil
   529  }
   530  
   531  //*
   532  //请求:设置设备的标志
   533  //下一个成功
   534  //下一次失败
   535  type ApplyFlags struct {
   536  	Flags            *uint32 `protobuf:"varint,1,opt,name=flags" json:"flags,omitempty"`
   537  	XXX_unrecognized []byte  `json:"-"`
   538  }
   539  
   540  func (m *ApplyFlags) Reset()                    { *m = ApplyFlags{} }
   541  func (m *ApplyFlags) String() string            { return proto.CompactTextString(m) }
   542  func (*ApplyFlags) ProtoMessage()               {}
   543  func (*ApplyFlags) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
   544  
   545  func (m *ApplyFlags) GetFlags() uint32 {
   546  	if m != nil && m.Flags != nil {
   547  		return *m.Flags
   548  	}
   549  	return 0
   550  }
   551  
   552  //*
   553  //请求:启动用于设置/更改/删除PIN的工作流
   554  //@下一步按钮请求
   555  //@下一个PinMatrixRequest
   556  type ChangePin struct {
   557  	Remove           *bool  `protobuf:"varint,1,opt,name=remove" json:"remove,omitempty"`
   558  	XXX_unrecognized []byte `json:"-"`
   559  }
   560  
   561  func (m *ChangePin) Reset()                    { *m = ChangePin{} }
   562  func (m *ChangePin) String() string            { return proto.CompactTextString(m) }
   563  func (*ChangePin) ProtoMessage()               {}
   564  func (*ChangePin) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
   565  
   566  func (m *ChangePin) GetRemove() bool {
   567  	if m != nil && m.Remove != nil {
   568  		return *m.Remove
   569  	}
   570  	return false
   571  }
   572  
   573  //*
   574  //请求:测试设备是否处于活动状态,设备发送成功响应的消息。
   575  //下一个成功
   576  type Ping struct {
   577  	Message              *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
   578  	ButtonProtection     *bool   `protobuf:"varint,2,opt,name=button_protection,json=buttonProtection" json:"button_protection,omitempty"`
   579  	PinProtection        *bool   `protobuf:"varint,3,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
   580  	PassphraseProtection *bool   `protobuf:"varint,4,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
   581  	XXX_unrecognized     []byte  `json:"-"`
   582  }
   583  
   584  func (m *Ping) Reset()                    { *m = Ping{} }
   585  func (m *Ping) String() string            { return proto.CompactTextString(m) }
   586  func (*Ping) ProtoMessage()               {}
   587  func (*Ping) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }
   588  
   589  func (m *Ping) GetMessage() string {
   590  	if m != nil && m.Message != nil {
   591  		return *m.Message
   592  	}
   593  	return ""
   594  }
   595  
   596  func (m *Ping) GetButtonProtection() bool {
   597  	if m != nil && m.ButtonProtection != nil {
   598  		return *m.ButtonProtection
   599  	}
   600  	return false
   601  }
   602  
   603  func (m *Ping) GetPinProtection() bool {
   604  	if m != nil && m.PinProtection != nil {
   605  		return *m.PinProtection
   606  	}
   607  	return false
   608  }
   609  
   610  func (m *Ping) GetPassphraseProtection() bool {
   611  	if m != nil && m.PassphraseProtection != nil {
   612  		return *m.PassphraseProtection
   613  	}
   614  	return false
   615  }
   616  
   617  //*
   618  //响应:上一个请求成功
   619  type Success struct {
   620  	Message          *string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
   621  	XXX_unrecognized []byte  `json:"-"`
   622  }
   623  
   624  func (m *Success) Reset()                    { *m = Success{} }
   625  func (m *Success) String() string            { return proto.CompactTextString(m) }
   626  func (*Success) ProtoMessage()               {}
   627  func (*Success) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} }
   628  
   629  func (m *Success) GetMessage() string {
   630  	if m != nil && m.Message != nil {
   631  		return *m.Message
   632  	}
   633  	return ""
   634  }
   635  
   636  //*
   637  //响应:上一个请求失败
   638  type Failure struct {
   639  	Code             *FailureType `protobuf:"varint,1,opt,name=code,enum=FailureType" json:"code,omitempty"`
   640  	Message          *string      `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
   641  	XXX_unrecognized []byte       `json:"-"`
   642  }
   643  
   644  func (m *Failure) Reset()                    { *m = Failure{} }
   645  func (m *Failure) String() string            { return proto.CompactTextString(m) }
   646  func (*Failure) ProtoMessage()               {}
   647  func (*Failure) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} }
   648  
   649  func (m *Failure) GetCode() FailureType {
   650  	if m != nil && m.Code != nil {
   651  		return *m.Code
   652  	}
   653  	return FailureType_Failure_UnexpectedMessage
   654  }
   655  
   656  func (m *Failure) GetMessage() string {
   657  	if m != nil && m.Message != nil {
   658  		return *m.Message
   659  	}
   660  	return ""
   661  }
   662  
   663  //*
   664  //响应:设备正在等待按下硬件按钮。
   665  //下一钮
   666  //下次取消
   667  type ButtonRequest struct {
   668  	Code             *ButtonRequestType `protobuf:"varint,1,opt,name=code,enum=ButtonRequestType" json:"code,omitempty"`
   669  	Data             *string            `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
   670  	XXX_unrecognized []byte             `json:"-"`
   671  }
   672  
   673  func (m *ButtonRequest) Reset()                    { *m = ButtonRequest{} }
   674  func (m *ButtonRequest) String() string            { return proto.CompactTextString(m) }
   675  func (*ButtonRequest) ProtoMessage()               {}
   676  func (*ButtonRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} }
   677  
   678  func (m *ButtonRequest) GetCode() ButtonRequestType {
   679  	if m != nil && m.Code != nil {
   680  		return *m.Code
   681  	}
   682  	return ButtonRequestType_ButtonRequest_Other
   683  }
   684  
   685  func (m *ButtonRequest) GetData() string {
   686  	if m != nil && m.Data != nil {
   687  		return *m.Data
   688  	}
   689  	return ""
   690  }
   691  
   692  //*
   693  //请求:计算机同意等待硬件按钮按下
   694  //@prev按钮请求
   695  type ButtonAck struct {
   696  	XXX_unrecognized []byte `json:"-"`
   697  }
   698  
   699  func (m *ButtonAck) Reset()                    { *m = ButtonAck{} }
   700  func (m *ButtonAck) String() string            { return proto.CompactTextString(m) }
   701  func (*ButtonAck) ProtoMessage()               {}
   702  func (*ButtonAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{11} }
   703  
   704  //*
   705  //回答:设备要求计算机显示管脚矩阵,并等待使用此矩阵方案编码的管脚。
   706  //@下一个Pinmatrixack
   707  //下次取消
   708  type PinMatrixRequest struct {
   709  	Type             *PinMatrixRequestType `protobuf:"varint,1,opt,name=type,enum=PinMatrixRequestType" json:"type,omitempty"`
   710  	XXX_unrecognized []byte                `json:"-"`
   711  }
   712  
   713  func (m *PinMatrixRequest) Reset()                    { *m = PinMatrixRequest{} }
   714  func (m *PinMatrixRequest) String() string            { return proto.CompactTextString(m) }
   715  func (*PinMatrixRequest) ProtoMessage()               {}
   716  func (*PinMatrixRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{12} }
   717  
   718  func (m *PinMatrixRequest) GetType() PinMatrixRequestType {
   719  	if m != nil && m.Type != nil {
   720  		return *m.Type
   721  	}
   722  	return PinMatrixRequestType_PinMatrixRequestType_Current
   723  }
   724  
   725  //*
   726  //请求:计算机用编码的PIN响应
   727  //@上一个PinMatrixRequest
   728  type PinMatrixAck struct {
   729  	Pin              *string `protobuf:"bytes,1,req,name=pin" json:"pin,omitempty"`
   730  	XXX_unrecognized []byte  `json:"-"`
   731  }
   732  
   733  func (m *PinMatrixAck) Reset()                    { *m = PinMatrixAck{} }
   734  func (m *PinMatrixAck) String() string            { return proto.CompactTextString(m) }
   735  func (*PinMatrixAck) ProtoMessage()               {}
   736  func (*PinMatrixAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{13} }
   737  
   738  func (m *PinMatrixAck) GetPin() string {
   739  	if m != nil && m.Pin != nil {
   740  		return *m.Pin
   741  	}
   742  	return ""
   743  }
   744  
   745  //*
   746  //请求:中止上次需要用户交互的操作
   747  //@prev按钮请求
   748  //@上一个PinMatrixRequest
   749  //@prev密码请求
   750  type Cancel struct {
   751  	XXX_unrecognized []byte `json:"-"`
   752  }
   753  
   754  func (m *Cancel) Reset()                    { *m = Cancel{} }
   755  func (m *Cancel) String() string            { return proto.CompactTextString(m) }
   756  func (*Cancel) ProtoMessage()               {}
   757  func (*Cancel) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{14} }
   758  
   759  //*
   760  //响应:设备等待加密密码短语
   761  //@下一个密码检查
   762  //下次取消
   763  type PassphraseRequest struct {
   764  	XXX_unrecognized []byte `json:"-"`
   765  }
   766  
   767  func (m *PassphraseRequest) Reset()                    { *m = PassphraseRequest{} }
   768  func (m *PassphraseRequest) String() string            { return proto.CompactTextString(m) }
   769  func (*PassphraseRequest) ProtoMessage()               {}
   770  func (*PassphraseRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{15} }
   771  
   772  //*
   773  //请求:返回密码短语
   774  //@prev密码请求
   775  type PassphraseAck struct {
   776  	Passphrase       *string `protobuf:"bytes,1,req,name=passphrase" json:"passphrase,omitempty"`
   777  	XXX_unrecognized []byte  `json:"-"`
   778  }
   779  
   780  func (m *PassphraseAck) Reset()                    { *m = PassphraseAck{} }
   781  func (m *PassphraseAck) String() string            { return proto.CompactTextString(m) }
   782  func (*PassphraseAck) ProtoMessage()               {}
   783  func (*PassphraseAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{16} }
   784  
   785  func (m *PassphraseAck) GetPassphrase() string {
   786  	if m != nil && m.Passphrase != nil {
   787  		return *m.Passphrase
   788  	}
   789  	return ""
   790  }
   791  
   792  //*
   793  //请求:请求硬件RNG生成的随机数据样本。可用于测试。
   794  //@下一步按钮请求
   795  //@下一个熵
   796  //下一次失败
   797  type GetEntropy struct {
   798  	Size             *uint32 `protobuf:"varint,1,req,name=size" json:"size,omitempty"`
   799  	XXX_unrecognized []byte  `json:"-"`
   800  }
   801  
   802  func (m *GetEntropy) Reset()                    { *m = GetEntropy{} }
   803  func (m *GetEntropy) String() string            { return proto.CompactTextString(m) }
   804  func (*GetEntropy) ProtoMessage()               {}
   805  func (*GetEntropy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{17} }
   806  
   807  func (m *GetEntropy) GetSize() uint32 {
   808  	if m != nil && m.Size != nil {
   809  		return *m.Size
   810  	}
   811  	return 0
   812  }
   813  
   814  //*
   815  //响应:用内部RNG生成的随机数据回复
   816  //@prev get熵
   817  type Entropy struct {
   818  	Entropy          []byte `protobuf:"bytes,1,req,name=entropy" json:"entropy,omitempty"`
   819  	XXX_unrecognized []byte `json:"-"`
   820  }
   821  
   822  func (m *Entropy) Reset()                    { *m = Entropy{} }
   823  func (m *Entropy) String() string            { return proto.CompactTextString(m) }
   824  func (*Entropy) ProtoMessage()               {}
   825  func (*Entropy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{18} }
   826  
   827  func (m *Entropy) GetEntropy() []byte {
   828  	if m != nil {
   829  		return m.Entropy
   830  	}
   831  	return nil
   832  }
   833  
   834  //*
   835  //请求:请求设备提供与地址路径相对应的公钥
   836  //@下一个密码请求
   837  //下一个公钥
   838  //下一次失败
   839  type GetPublicKey struct {
   840  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
   841  	EcdsaCurveName   *string  `protobuf:"bytes,2,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
   842  	ShowDisplay      *bool    `protobuf:"varint,3,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
   843  	CoinName         *string  `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
   844  	XXX_unrecognized []byte   `json:"-"`
   845  }
   846  
   847  func (m *GetPublicKey) Reset()                    { *m = GetPublicKey{} }
   848  func (m *GetPublicKey) String() string            { return proto.CompactTextString(m) }
   849  func (*GetPublicKey) ProtoMessage()               {}
   850  func (*GetPublicKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{19} }
   851  
   852  const Default_GetPublicKey_CoinName string = "Bitcoin"
   853  
   854  func (m *GetPublicKey) GetAddressN() []uint32 {
   855  	if m != nil {
   856  		return m.AddressN
   857  	}
   858  	return nil
   859  }
   860  
   861  func (m *GetPublicKey) GetEcdsaCurveName() string {
   862  	if m != nil && m.EcdsaCurveName != nil {
   863  		return *m.EcdsaCurveName
   864  	}
   865  	return ""
   866  }
   867  
   868  func (m *GetPublicKey) GetShowDisplay() bool {
   869  	if m != nil && m.ShowDisplay != nil {
   870  		return *m.ShowDisplay
   871  	}
   872  	return false
   873  }
   874  
   875  func (m *GetPublicKey) GetCoinName() string {
   876  	if m != nil && m.CoinName != nil {
   877  		return *m.CoinName
   878  	}
   879  	return Default_GetPublicKey_CoinName
   880  }
   881  
   882  //*
   883  //响应:包含从设备专用种子派生的公钥
   884  //@prev获取公共密钥
   885  type PublicKey struct {
   886  	Node             *HDNodeType `protobuf:"bytes,1,req,name=node" json:"node,omitempty"`
   887  	Xpub             *string     `protobuf:"bytes,2,opt,name=xpub" json:"xpub,omitempty"`
   888  	XXX_unrecognized []byte      `json:"-"`
   889  }
   890  
   891  func (m *PublicKey) Reset()                    { *m = PublicKey{} }
   892  func (m *PublicKey) String() string            { return proto.CompactTextString(m) }
   893  func (*PublicKey) ProtoMessage()               {}
   894  func (*PublicKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{20} }
   895  
   896  func (m *PublicKey) GetNode() *HDNodeType {
   897  	if m != nil {
   898  		return m.Node
   899  	}
   900  	return nil
   901  }
   902  
   903  func (m *PublicKey) GetXpub() string {
   904  	if m != nil && m.Xpub != nil {
   905  		return *m.Xpub
   906  	}
   907  	return ""
   908  }
   909  
   910  //*
   911  //请求:向设备询问与地址路径相对应的地址
   912  //@下一个密码请求
   913  //下一个地址
   914  //下一次失败
   915  type GetAddress struct {
   916  	AddressN         []uint32                  `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
   917  	CoinName         *string                   `protobuf:"bytes,2,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
   918  	ShowDisplay      *bool                     `protobuf:"varint,3,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
   919  	Multisig         *MultisigRedeemScriptType `protobuf:"bytes,4,opt,name=multisig" json:"multisig,omitempty"`
   920  	ScriptType       *InputScriptType          `protobuf:"varint,5,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"`
   921  	XXX_unrecognized []byte                    `json:"-"`
   922  }
   923  
   924  func (m *GetAddress) Reset()                    { *m = GetAddress{} }
   925  func (m *GetAddress) String() string            { return proto.CompactTextString(m) }
   926  func (*GetAddress) ProtoMessage()               {}
   927  func (*GetAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{21} }
   928  
   929  const Default_GetAddress_CoinName string = "Bitcoin"
   930  const Default_GetAddress_ScriptType InputScriptType = InputScriptType_SPENDADDRESS
   931  
   932  func (m *GetAddress) GetAddressN() []uint32 {
   933  	if m != nil {
   934  		return m.AddressN
   935  	}
   936  	return nil
   937  }
   938  
   939  func (m *GetAddress) GetCoinName() string {
   940  	if m != nil && m.CoinName != nil {
   941  		return *m.CoinName
   942  	}
   943  	return Default_GetAddress_CoinName
   944  }
   945  
   946  func (m *GetAddress) GetShowDisplay() bool {
   947  	if m != nil && m.ShowDisplay != nil {
   948  		return *m.ShowDisplay
   949  	}
   950  	return false
   951  }
   952  
   953  func (m *GetAddress) GetMultisig() *MultisigRedeemScriptType {
   954  	if m != nil {
   955  		return m.Multisig
   956  	}
   957  	return nil
   958  }
   959  
   960  func (m *GetAddress) GetScriptType() InputScriptType {
   961  	if m != nil && m.ScriptType != nil {
   962  		return *m.ScriptType
   963  	}
   964  	return Default_GetAddress_ScriptType
   965  }
   966  
   967  //*
   968  //请求:向设备询问与地址路径对应的以太坊地址
   969  //@下一个密码请求
   970  //@下一个Ethereumaddress
   971  //下一次失败
   972  type EthereumGetAddress struct {
   973  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
   974  	ShowDisplay      *bool    `protobuf:"varint,2,opt,name=show_display,json=showDisplay" json:"show_display,omitempty"`
   975  	XXX_unrecognized []byte   `json:"-"`
   976  }
   977  
   978  func (m *EthereumGetAddress) Reset()                    { *m = EthereumGetAddress{} }
   979  func (m *EthereumGetAddress) String() string            { return proto.CompactTextString(m) }
   980  func (*EthereumGetAddress) ProtoMessage()               {}
   981  func (*EthereumGetAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{22} }
   982  
   983  func (m *EthereumGetAddress) GetAddressN() []uint32 {
   984  	if m != nil {
   985  		return m.AddressN
   986  	}
   987  	return nil
   988  }
   989  
   990  func (m *EthereumGetAddress) GetShowDisplay() bool {
   991  	if m != nil && m.ShowDisplay != nil {
   992  		return *m.ShowDisplay
   993  	}
   994  	return false
   995  }
   996  
   997  //*
   998  //响应:包含从设备专用种子派生的地址
   999  //@prev获取地址
  1000  type Address struct {
  1001  	Address          *string `protobuf:"bytes,1,req,name=address" json:"address,omitempty"`
  1002  	XXX_unrecognized []byte  `json:"-"`
  1003  }
  1004  
  1005  func (m *Address) Reset()                    { *m = Address{} }
  1006  func (m *Address) String() string            { return proto.CompactTextString(m) }
  1007  func (*Address) ProtoMessage()               {}
  1008  func (*Address) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{23} }
  1009  
  1010  func (m *Address) GetAddress() string {
  1011  	if m != nil && m.Address != nil {
  1012  		return *m.Address
  1013  	}
  1014  	return ""
  1015  }
  1016  
  1017  //*
  1018  //响应:包含从设备专用种子派生的以太坊地址
  1019  //@prev以太坊详细地址
  1020  type EthereumAddress struct {
  1021  	Address          []byte `protobuf:"bytes,1,req,name=address" json:"address,omitempty"`
  1022  	XXX_unrecognized []byte `json:"-"`
  1023  }
  1024  
  1025  func (m *EthereumAddress) Reset()                    { *m = EthereumAddress{} }
  1026  func (m *EthereumAddress) String() string            { return proto.CompactTextString(m) }
  1027  func (*EthereumAddress) ProtoMessage()               {}
  1028  func (*EthereumAddress) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{24} }
  1029  
  1030  func (m *EthereumAddress) GetAddress() []byte {
  1031  	if m != nil {
  1032  		return m.Address
  1033  	}
  1034  	return nil
  1035  }
  1036  
  1037  //*
  1038  //请求:请求设备擦除所有敏感数据和设置
  1039  //@下一步按钮请求
  1040  type WipeDevice struct {
  1041  	XXX_unrecognized []byte `json:"-"`
  1042  }
  1043  
  1044  func (m *WipeDevice) Reset()                    { *m = WipeDevice{} }
  1045  func (m *WipeDevice) String() string            { return proto.CompactTextString(m) }
  1046  func (*WipeDevice) ProtoMessage()               {}
  1047  func (*WipeDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{25} }
  1048  
  1049  //*
  1050  //请求:从计算机加载种子和相关的内部设置
  1051  //@下一步按钮请求
  1052  //下一个成功
  1053  //下一次失败
  1054  type LoadDevice struct {
  1055  	Mnemonic             *string     `protobuf:"bytes,1,opt,name=mnemonic" json:"mnemonic,omitempty"`
  1056  	Node                 *HDNodeType `protobuf:"bytes,2,opt,name=node" json:"node,omitempty"`
  1057  	Pin                  *string     `protobuf:"bytes,3,opt,name=pin" json:"pin,omitempty"`
  1058  	PassphraseProtection *bool       `protobuf:"varint,4,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
  1059  	Language             *string     `protobuf:"bytes,5,opt,name=language,def=english" json:"language,omitempty"`
  1060  	Label                *string     `protobuf:"bytes,6,opt,name=label" json:"label,omitempty"`
  1061  	SkipChecksum         *bool       `protobuf:"varint,7,opt,name=skip_checksum,json=skipChecksum" json:"skip_checksum,omitempty"`
  1062  	U2FCounter           *uint32     `protobuf:"varint,8,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
  1063  	XXX_unrecognized     []byte      `json:"-"`
  1064  }
  1065  
  1066  func (m *LoadDevice) Reset()                    { *m = LoadDevice{} }
  1067  func (m *LoadDevice) String() string            { return proto.CompactTextString(m) }
  1068  func (*LoadDevice) ProtoMessage()               {}
  1069  func (*LoadDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{26} }
  1070  
  1071  const Default_LoadDevice_Language string = "english"
  1072  
  1073  func (m *LoadDevice) GetMnemonic() string {
  1074  	if m != nil && m.Mnemonic != nil {
  1075  		return *m.Mnemonic
  1076  	}
  1077  	return ""
  1078  }
  1079  
  1080  func (m *LoadDevice) GetNode() *HDNodeType {
  1081  	if m != nil {
  1082  		return m.Node
  1083  	}
  1084  	return nil
  1085  }
  1086  
  1087  func (m *LoadDevice) GetPin() string {
  1088  	if m != nil && m.Pin != nil {
  1089  		return *m.Pin
  1090  	}
  1091  	return ""
  1092  }
  1093  
  1094  func (m *LoadDevice) GetPassphraseProtection() bool {
  1095  	if m != nil && m.PassphraseProtection != nil {
  1096  		return *m.PassphraseProtection
  1097  	}
  1098  	return false
  1099  }
  1100  
  1101  func (m *LoadDevice) GetLanguage() string {
  1102  	if m != nil && m.Language != nil {
  1103  		return *m.Language
  1104  	}
  1105  	return Default_LoadDevice_Language
  1106  }
  1107  
  1108  func (m *LoadDevice) GetLabel() string {
  1109  	if m != nil && m.Label != nil {
  1110  		return *m.Label
  1111  	}
  1112  	return ""
  1113  }
  1114  
  1115  func (m *LoadDevice) GetSkipChecksum() bool {
  1116  	if m != nil && m.SkipChecksum != nil {
  1117  		return *m.SkipChecksum
  1118  	}
  1119  	return false
  1120  }
  1121  
  1122  func (m *LoadDevice) GetU2FCounter() uint32 {
  1123  	if m != nil && m.U2FCounter != nil {
  1124  		return *m.U2FCounter
  1125  	}
  1126  	return 0
  1127  }
  1128  
  1129  //*
  1130  //请求:要求设备进行涉及用户交互的初始化
  1131  //@下一项请求
  1132  //下一次失败
  1133  type ResetDevice struct {
  1134  	DisplayRandom        *bool   `protobuf:"varint,1,opt,name=display_random,json=displayRandom" json:"display_random,omitempty"`
  1135  	Strength             *uint32 `protobuf:"varint,2,opt,name=strength,def=256" json:"strength,omitempty"`
  1136  	PassphraseProtection *bool   `protobuf:"varint,3,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
  1137  	PinProtection        *bool   `protobuf:"varint,4,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
  1138  	Language             *string `protobuf:"bytes,5,opt,name=language,def=english" json:"language,omitempty"`
  1139  	Label                *string `protobuf:"bytes,6,opt,name=label" json:"label,omitempty"`
  1140  	U2FCounter           *uint32 `protobuf:"varint,7,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
  1141  	SkipBackup           *bool   `protobuf:"varint,8,opt,name=skip_backup,json=skipBackup" json:"skip_backup,omitempty"`
  1142  	XXX_unrecognized     []byte  `json:"-"`
  1143  }
  1144  
  1145  func (m *ResetDevice) Reset()                    { *m = ResetDevice{} }
  1146  func (m *ResetDevice) String() string            { return proto.CompactTextString(m) }
  1147  func (*ResetDevice) ProtoMessage()               {}
  1148  func (*ResetDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{27} }
  1149  
  1150  const Default_ResetDevice_Strength uint32 = 256
  1151  const Default_ResetDevice_Language string = "english"
  1152  
  1153  func (m *ResetDevice) GetDisplayRandom() bool {
  1154  	if m != nil && m.DisplayRandom != nil {
  1155  		return *m.DisplayRandom
  1156  	}
  1157  	return false
  1158  }
  1159  
  1160  func (m *ResetDevice) GetStrength() uint32 {
  1161  	if m != nil && m.Strength != nil {
  1162  		return *m.Strength
  1163  	}
  1164  	return Default_ResetDevice_Strength
  1165  }
  1166  
  1167  func (m *ResetDevice) GetPassphraseProtection() bool {
  1168  	if m != nil && m.PassphraseProtection != nil {
  1169  		return *m.PassphraseProtection
  1170  	}
  1171  	return false
  1172  }
  1173  
  1174  func (m *ResetDevice) GetPinProtection() bool {
  1175  	if m != nil && m.PinProtection != nil {
  1176  		return *m.PinProtection
  1177  	}
  1178  	return false
  1179  }
  1180  
  1181  func (m *ResetDevice) GetLanguage() string {
  1182  	if m != nil && m.Language != nil {
  1183  		return *m.Language
  1184  	}
  1185  	return Default_ResetDevice_Language
  1186  }
  1187  
  1188  func (m *ResetDevice) GetLabel() string {
  1189  	if m != nil && m.Label != nil {
  1190  		return *m.Label
  1191  	}
  1192  	return ""
  1193  }
  1194  
  1195  func (m *ResetDevice) GetU2FCounter() uint32 {
  1196  	if m != nil && m.U2FCounter != nil {
  1197  		return *m.U2FCounter
  1198  	}
  1199  	return 0
  1200  }
  1201  
  1202  func (m *ResetDevice) GetSkipBackup() bool {
  1203  	if m != nil && m.SkipBackup != nil {
  1204  		return *m.SkipBackup
  1205  	}
  1206  	return false
  1207  }
  1208  
  1209  //*
  1210  //请求:如果未使用resetdevice备份设备种子,请执行备份
  1211  //@下一步按钮请求
  1212  type BackupDevice struct {
  1213  	XXX_unrecognized []byte `json:"-"`
  1214  }
  1215  
  1216  func (m *BackupDevice) Reset()                    { *m = BackupDevice{} }
  1217  func (m *BackupDevice) String() string            { return proto.CompactTextString(m) }
  1218  func (*BackupDevice) ProtoMessage()               {}
  1219  func (*BackupDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{28} }
  1220  
  1221  //*
  1222  //回答:要求主机提供额外的熵
  1223  //@上一个重置设备
  1224  //@下一个entropack
  1225  type EntropyRequest struct {
  1226  	XXX_unrecognized []byte `json:"-"`
  1227  }
  1228  
  1229  func (m *EntropyRequest) Reset()                    { *m = EntropyRequest{} }
  1230  func (m *EntropyRequest) String() string            { return proto.CompactTextString(m) }
  1231  func (*EntropyRequest) ProtoMessage()               {}
  1232  func (*EntropyRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{29} }
  1233  
  1234  //*
  1235  //请求:为种子生成函数提供额外的熵
  1236  //@prev entropy请求
  1237  //@下一步按钮请求
  1238  type EntropyAck struct {
  1239  	Entropy          []byte `protobuf:"bytes,1,opt,name=entropy" json:"entropy,omitempty"`
  1240  	XXX_unrecognized []byte `json:"-"`
  1241  }
  1242  
  1243  func (m *EntropyAck) Reset()                    { *m = EntropyAck{} }
  1244  func (m *EntropyAck) String() string            { return proto.CompactTextString(m) }
  1245  func (*EntropyAck) ProtoMessage()               {}
  1246  func (*EntropyAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{30} }
  1247  
  1248  func (m *EntropyAck) GetEntropy() []byte {
  1249  	if m != nil {
  1250  		return m.Entropy
  1251  	}
  1252  	return nil
  1253  }
  1254  
  1255  //*
  1256  //请求:启动恢复工作流,要求用户输入特定的助记词
  1257  //用于安全恢复设备,即使在不受信任的计算机上。
  1258  //@下一个字请求
  1259  type RecoveryDevice struct {
  1260  	WordCount            *uint32 `protobuf:"varint,1,opt,name=word_count,json=wordCount" json:"word_count,omitempty"`
  1261  	PassphraseProtection *bool   `protobuf:"varint,2,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
  1262  	PinProtection        *bool   `protobuf:"varint,3,opt,name=pin_protection,json=pinProtection" json:"pin_protection,omitempty"`
  1263  	Language             *string `protobuf:"bytes,4,opt,name=language,def=english" json:"language,omitempty"`
  1264  	Label                *string `protobuf:"bytes,5,opt,name=label" json:"label,omitempty"`
  1265  	EnforceWordlist      *bool   `protobuf:"varint,6,opt,name=enforce_wordlist,json=enforceWordlist" json:"enforce_wordlist,omitempty"`
  1266  //7为未使用的回收方法保留
  1267  	Type             *uint32 `protobuf:"varint,8,opt,name=type" json:"type,omitempty"`
  1268  	U2FCounter       *uint32 `protobuf:"varint,9,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
  1269  	DryRun           *bool   `protobuf:"varint,10,opt,name=dry_run,json=dryRun" json:"dry_run,omitempty"`
  1270  	XXX_unrecognized []byte  `json:"-"`
  1271  }
  1272  
  1273  func (m *RecoveryDevice) Reset()                    { *m = RecoveryDevice{} }
  1274  func (m *RecoveryDevice) String() string            { return proto.CompactTextString(m) }
  1275  func (*RecoveryDevice) ProtoMessage()               {}
  1276  func (*RecoveryDevice) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{31} }
  1277  
  1278  const Default_RecoveryDevice_Language string = "english"
  1279  
  1280  func (m *RecoveryDevice) GetWordCount() uint32 {
  1281  	if m != nil && m.WordCount != nil {
  1282  		return *m.WordCount
  1283  	}
  1284  	return 0
  1285  }
  1286  
  1287  func (m *RecoveryDevice) GetPassphraseProtection() bool {
  1288  	if m != nil && m.PassphraseProtection != nil {
  1289  		return *m.PassphraseProtection
  1290  	}
  1291  	return false
  1292  }
  1293  
  1294  func (m *RecoveryDevice) GetPinProtection() bool {
  1295  	if m != nil && m.PinProtection != nil {
  1296  		return *m.PinProtection
  1297  	}
  1298  	return false
  1299  }
  1300  
  1301  func (m *RecoveryDevice) GetLanguage() string {
  1302  	if m != nil && m.Language != nil {
  1303  		return *m.Language
  1304  	}
  1305  	return Default_RecoveryDevice_Language
  1306  }
  1307  
  1308  func (m *RecoveryDevice) GetLabel() string {
  1309  	if m != nil && m.Label != nil {
  1310  		return *m.Label
  1311  	}
  1312  	return ""
  1313  }
  1314  
  1315  func (m *RecoveryDevice) GetEnforceWordlist() bool {
  1316  	if m != nil && m.EnforceWordlist != nil {
  1317  		return *m.EnforceWordlist
  1318  	}
  1319  	return false
  1320  }
  1321  
  1322  func (m *RecoveryDevice) GetType() uint32 {
  1323  	if m != nil && m.Type != nil {
  1324  		return *m.Type
  1325  	}
  1326  	return 0
  1327  }
  1328  
  1329  func (m *RecoveryDevice) GetU2FCounter() uint32 {
  1330  	if m != nil && m.U2FCounter != nil {
  1331  		return *m.U2FCounter
  1332  	}
  1333  	return 0
  1334  }
  1335  
  1336  func (m *RecoveryDevice) GetDryRun() bool {
  1337  	if m != nil && m.DryRun != nil {
  1338  		return *m.DryRun
  1339  	}
  1340  	return false
  1341  }
  1342  
  1343  //*
  1344  //响应:设备正在等待用户输入助记符的单词
  1345  //它的位置只显示在设备的内部显示器上。
  1346  //@预防恢复设备
  1347  //
  1348  type WordRequest struct {
  1349  	Type             *WordRequestType `protobuf:"varint,1,opt,name=type,enum=WordRequestType" json:"type,omitempty"`
  1350  	XXX_unrecognized []byte           `json:"-"`
  1351  }
  1352  
  1353  func (m *WordRequest) Reset()                    { *m = WordRequest{} }
  1354  func (m *WordRequest) String() string            { return proto.CompactTextString(m) }
  1355  func (*WordRequest) ProtoMessage()               {}
  1356  func (*WordRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{32} }
  1357  
  1358  func (m *WordRequest) GetType() WordRequestType {
  1359  	if m != nil && m.Type != nil {
  1360  		return *m.Type
  1361  	}
  1362  	return WordRequestType_WordRequestType_Plain
  1363  }
  1364  
  1365  //*
  1366  //请求:计算机用助记符中的单词答复
  1367  //@上一个字请求
  1368  //@下一个字请求
  1369  //下一个成功
  1370  //下一次失败
  1371  type WordAck struct {
  1372  	Word             *string `protobuf:"bytes,1,req,name=word" json:"word,omitempty"`
  1373  	XXX_unrecognized []byte  `json:"-"`
  1374  }
  1375  
  1376  func (m *WordAck) Reset()                    { *m = WordAck{} }
  1377  func (m *WordAck) String() string            { return proto.CompactTextString(m) }
  1378  func (*WordAck) ProtoMessage()               {}
  1379  func (*WordAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{33} }
  1380  
  1381  func (m *WordAck) GetWord() string {
  1382  	if m != nil && m.Word != nil {
  1383  		return *m.Word
  1384  	}
  1385  	return ""
  1386  }
  1387  
  1388  //*
  1389  //请求:要求设备签署消息
  1390  //@下一个消息签名
  1391  //下一次失败
  1392  type SignMessage struct {
  1393  	AddressN         []uint32         `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  1394  	Message          []byte           `protobuf:"bytes,2,req,name=message" json:"message,omitempty"`
  1395  	CoinName         *string          `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1396  	ScriptType       *InputScriptType `protobuf:"varint,4,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"`
  1397  	XXX_unrecognized []byte           `json:"-"`
  1398  }
  1399  
  1400  func (m *SignMessage) Reset()                    { *m = SignMessage{} }
  1401  func (m *SignMessage) String() string            { return proto.CompactTextString(m) }
  1402  func (*SignMessage) ProtoMessage()               {}
  1403  func (*SignMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{34} }
  1404  
  1405  const Default_SignMessage_CoinName string = "Bitcoin"
  1406  const Default_SignMessage_ScriptType InputScriptType = InputScriptType_SPENDADDRESS
  1407  
  1408  func (m *SignMessage) GetAddressN() []uint32 {
  1409  	if m != nil {
  1410  		return m.AddressN
  1411  	}
  1412  	return nil
  1413  }
  1414  
  1415  func (m *SignMessage) GetMessage() []byte {
  1416  	if m != nil {
  1417  		return m.Message
  1418  	}
  1419  	return nil
  1420  }
  1421  
  1422  func (m *SignMessage) GetCoinName() string {
  1423  	if m != nil && m.CoinName != nil {
  1424  		return *m.CoinName
  1425  	}
  1426  	return Default_SignMessage_CoinName
  1427  }
  1428  
  1429  func (m *SignMessage) GetScriptType() InputScriptType {
  1430  	if m != nil && m.ScriptType != nil {
  1431  		return *m.ScriptType
  1432  	}
  1433  	return Default_SignMessage_ScriptType
  1434  }
  1435  
  1436  //*
  1437  //请求:请求设备验证消息
  1438  //下一个成功
  1439  //下一次失败
  1440  type VerifyMessage struct {
  1441  	Address          *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  1442  	Signature        []byte  `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
  1443  	Message          []byte  `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
  1444  	CoinName         *string `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1445  	XXX_unrecognized []byte  `json:"-"`
  1446  }
  1447  
  1448  func (m *VerifyMessage) Reset()                    { *m = VerifyMessage{} }
  1449  func (m *VerifyMessage) String() string            { return proto.CompactTextString(m) }
  1450  func (*VerifyMessage) ProtoMessage()               {}
  1451  func (*VerifyMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{35} }
  1452  
  1453  const Default_VerifyMessage_CoinName string = "Bitcoin"
  1454  
  1455  func (m *VerifyMessage) GetAddress() string {
  1456  	if m != nil && m.Address != nil {
  1457  		return *m.Address
  1458  	}
  1459  	return ""
  1460  }
  1461  
  1462  func (m *VerifyMessage) GetSignature() []byte {
  1463  	if m != nil {
  1464  		return m.Signature
  1465  	}
  1466  	return nil
  1467  }
  1468  
  1469  func (m *VerifyMessage) GetMessage() []byte {
  1470  	if m != nil {
  1471  		return m.Message
  1472  	}
  1473  	return nil
  1474  }
  1475  
  1476  func (m *VerifyMessage) GetCoinName() string {
  1477  	if m != nil && m.CoinName != nil {
  1478  		return *m.CoinName
  1479  	}
  1480  	return Default_VerifyMessage_CoinName
  1481  }
  1482  
  1483  //*
  1484  //响应:签名消息
  1485  //@上一条标志消息
  1486  type MessageSignature struct {
  1487  	Address          *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  1488  	Signature        []byte  `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
  1489  	XXX_unrecognized []byte  `json:"-"`
  1490  }
  1491  
  1492  func (m *MessageSignature) Reset()                    { *m = MessageSignature{} }
  1493  func (m *MessageSignature) String() string            { return proto.CompactTextString(m) }
  1494  func (*MessageSignature) ProtoMessage()               {}
  1495  func (*MessageSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{36} }
  1496  
  1497  func (m *MessageSignature) GetAddress() string {
  1498  	if m != nil && m.Address != nil {
  1499  		return *m.Address
  1500  	}
  1501  	return ""
  1502  }
  1503  
  1504  func (m *MessageSignature) GetSignature() []byte {
  1505  	if m != nil {
  1506  		return m.Signature
  1507  	}
  1508  	return nil
  1509  }
  1510  
  1511  //*
  1512  //请求:要求设备加密消息
  1513  //@下一个加密邮件
  1514  //下一次失败
  1515  type EncryptMessage struct {
  1516  	Pubkey           []byte   `protobuf:"bytes,1,opt,name=pubkey" json:"pubkey,omitempty"`
  1517  	Message          []byte   `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
  1518  	DisplayOnly      *bool    `protobuf:"varint,3,opt,name=display_only,json=displayOnly" json:"display_only,omitempty"`
  1519  	AddressN         []uint32 `protobuf:"varint,4,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  1520  	CoinName         *string  `protobuf:"bytes,5,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1521  	XXX_unrecognized []byte   `json:"-"`
  1522  }
  1523  
  1524  func (m *EncryptMessage) Reset()                    { *m = EncryptMessage{} }
  1525  func (m *EncryptMessage) String() string            { return proto.CompactTextString(m) }
  1526  func (*EncryptMessage) ProtoMessage()               {}
  1527  func (*EncryptMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{37} }
  1528  
  1529  const Default_EncryptMessage_CoinName string = "Bitcoin"
  1530  
  1531  func (m *EncryptMessage) GetPubkey() []byte {
  1532  	if m != nil {
  1533  		return m.Pubkey
  1534  	}
  1535  	return nil
  1536  }
  1537  
  1538  func (m *EncryptMessage) GetMessage() []byte {
  1539  	if m != nil {
  1540  		return m.Message
  1541  	}
  1542  	return nil
  1543  }
  1544  
  1545  func (m *EncryptMessage) GetDisplayOnly() bool {
  1546  	if m != nil && m.DisplayOnly != nil {
  1547  		return *m.DisplayOnly
  1548  	}
  1549  	return false
  1550  }
  1551  
  1552  func (m *EncryptMessage) GetAddressN() []uint32 {
  1553  	if m != nil {
  1554  		return m.AddressN
  1555  	}
  1556  	return nil
  1557  }
  1558  
  1559  func (m *EncryptMessage) GetCoinName() string {
  1560  	if m != nil && m.CoinName != nil {
  1561  		return *m.CoinName
  1562  	}
  1563  	return Default_EncryptMessage_CoinName
  1564  }
  1565  
  1566  //*
  1567  //响应:加密邮件
  1568  //@prev加密消息
  1569  type EncryptedMessage struct {
  1570  	Nonce            []byte `protobuf:"bytes,1,opt,name=nonce" json:"nonce,omitempty"`
  1571  	Message          []byte `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
  1572  	Hmac             []byte `protobuf:"bytes,3,opt,name=hmac" json:"hmac,omitempty"`
  1573  	XXX_unrecognized []byte `json:"-"`
  1574  }
  1575  
  1576  func (m *EncryptedMessage) Reset()                    { *m = EncryptedMessage{} }
  1577  func (m *EncryptedMessage) String() string            { return proto.CompactTextString(m) }
  1578  func (*EncryptedMessage) ProtoMessage()               {}
  1579  func (*EncryptedMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{38} }
  1580  
  1581  func (m *EncryptedMessage) GetNonce() []byte {
  1582  	if m != nil {
  1583  		return m.Nonce
  1584  	}
  1585  	return nil
  1586  }
  1587  
  1588  func (m *EncryptedMessage) GetMessage() []byte {
  1589  	if m != nil {
  1590  		return m.Message
  1591  	}
  1592  	return nil
  1593  }
  1594  
  1595  func (m *EncryptedMessage) GetHmac() []byte {
  1596  	if m != nil {
  1597  		return m.Hmac
  1598  	}
  1599  	return nil
  1600  }
  1601  
  1602  //*
  1603  //请求:要求设备解密消息
  1604  //下一个成功
  1605  //下一次失败
  1606  type DecryptMessage struct {
  1607  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  1608  	Nonce            []byte   `protobuf:"bytes,2,opt,name=nonce" json:"nonce,omitempty"`
  1609  	Message          []byte   `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
  1610  	Hmac             []byte   `protobuf:"bytes,4,opt,name=hmac" json:"hmac,omitempty"`
  1611  	XXX_unrecognized []byte   `json:"-"`
  1612  }
  1613  
  1614  func (m *DecryptMessage) Reset()                    { *m = DecryptMessage{} }
  1615  func (m *DecryptMessage) String() string            { return proto.CompactTextString(m) }
  1616  func (*DecryptMessage) ProtoMessage()               {}
  1617  func (*DecryptMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{39} }
  1618  
  1619  func (m *DecryptMessage) GetAddressN() []uint32 {
  1620  	if m != nil {
  1621  		return m.AddressN
  1622  	}
  1623  	return nil
  1624  }
  1625  
  1626  func (m *DecryptMessage) GetNonce() []byte {
  1627  	if m != nil {
  1628  		return m.Nonce
  1629  	}
  1630  	return nil
  1631  }
  1632  
  1633  func (m *DecryptMessage) GetMessage() []byte {
  1634  	if m != nil {
  1635  		return m.Message
  1636  	}
  1637  	return nil
  1638  }
  1639  
  1640  func (m *DecryptMessage) GetHmac() []byte {
  1641  	if m != nil {
  1642  		return m.Hmac
  1643  	}
  1644  	return nil
  1645  }
  1646  
  1647  //*
  1648  //响应:解密的消息
  1649  //@prev解密邮件
  1650  type DecryptedMessage struct {
  1651  	Message          []byte  `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
  1652  	Address          *string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
  1653  	XXX_unrecognized []byte  `json:"-"`
  1654  }
  1655  
  1656  func (m *DecryptedMessage) Reset()                    { *m = DecryptedMessage{} }
  1657  func (m *DecryptedMessage) String() string            { return proto.CompactTextString(m) }
  1658  func (*DecryptedMessage) ProtoMessage()               {}
  1659  func (*DecryptedMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{40} }
  1660  
  1661  func (m *DecryptedMessage) GetMessage() []byte {
  1662  	if m != nil {
  1663  		return m.Message
  1664  	}
  1665  	return nil
  1666  }
  1667  
  1668  func (m *DecryptedMessage) GetAddress() string {
  1669  	if m != nil && m.Address != nil {
  1670  		return *m.Address
  1671  	}
  1672  	return ""
  1673  }
  1674  
  1675  //*
  1676  //请求:要求设备加密或解密给定密钥的值
  1677  //@下一个密码键值
  1678  //下一次失败
  1679  type CipherKeyValue struct {
  1680  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  1681  	Key              *string  `protobuf:"bytes,2,opt,name=key" json:"key,omitempty"`
  1682  	Value            []byte   `protobuf:"bytes,3,opt,name=value" json:"value,omitempty"`
  1683  	Encrypt          *bool    `protobuf:"varint,4,opt,name=encrypt" json:"encrypt,omitempty"`
  1684  	AskOnEncrypt     *bool    `protobuf:"varint,5,opt,name=ask_on_encrypt,json=askOnEncrypt" json:"ask_on_encrypt,omitempty"`
  1685  	AskOnDecrypt     *bool    `protobuf:"varint,6,opt,name=ask_on_decrypt,json=askOnDecrypt" json:"ask_on_decrypt,omitempty"`
  1686  	Iv               []byte   `protobuf:"bytes,7,opt,name=iv" json:"iv,omitempty"`
  1687  	XXX_unrecognized []byte   `json:"-"`
  1688  }
  1689  
  1690  func (m *CipherKeyValue) Reset()                    { *m = CipherKeyValue{} }
  1691  func (m *CipherKeyValue) String() string            { return proto.CompactTextString(m) }
  1692  func (*CipherKeyValue) ProtoMessage()               {}
  1693  func (*CipherKeyValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{41} }
  1694  
  1695  func (m *CipherKeyValue) GetAddressN() []uint32 {
  1696  	if m != nil {
  1697  		return m.AddressN
  1698  	}
  1699  	return nil
  1700  }
  1701  
  1702  func (m *CipherKeyValue) GetKey() string {
  1703  	if m != nil && m.Key != nil {
  1704  		return *m.Key
  1705  	}
  1706  	return ""
  1707  }
  1708  
  1709  func (m *CipherKeyValue) GetValue() []byte {
  1710  	if m != nil {
  1711  		return m.Value
  1712  	}
  1713  	return nil
  1714  }
  1715  
  1716  func (m *CipherKeyValue) GetEncrypt() bool {
  1717  	if m != nil && m.Encrypt != nil {
  1718  		return *m.Encrypt
  1719  	}
  1720  	return false
  1721  }
  1722  
  1723  func (m *CipherKeyValue) GetAskOnEncrypt() bool {
  1724  	if m != nil && m.AskOnEncrypt != nil {
  1725  		return *m.AskOnEncrypt
  1726  	}
  1727  	return false
  1728  }
  1729  
  1730  func (m *CipherKeyValue) GetAskOnDecrypt() bool {
  1731  	if m != nil && m.AskOnDecrypt != nil {
  1732  		return *m.AskOnDecrypt
  1733  	}
  1734  	return false
  1735  }
  1736  
  1737  func (m *CipherKeyValue) GetIv() []byte {
  1738  	if m != nil {
  1739  		return m.Iv
  1740  	}
  1741  	return nil
  1742  }
  1743  
  1744  //*
  1745  //响应:返回加密/解密值
  1746  //@上一个密码键值
  1747  type CipheredKeyValue struct {
  1748  	Value            []byte `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"`
  1749  	XXX_unrecognized []byte `json:"-"`
  1750  }
  1751  
  1752  func (m *CipheredKeyValue) Reset()                    { *m = CipheredKeyValue{} }
  1753  func (m *CipheredKeyValue) String() string            { return proto.CompactTextString(m) }
  1754  func (*CipheredKeyValue) ProtoMessage()               {}
  1755  func (*CipheredKeyValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{42} }
  1756  
  1757  func (m *CipheredKeyValue) GetValue() []byte {
  1758  	if m != nil {
  1759  		return m.Value
  1760  	}
  1761  	return nil
  1762  }
  1763  
  1764  //*
  1765  //请求:事务的估计大小
  1766  //它的行为与signtx完全相同,这意味着它可以使用txrequest请求
  1767  //此调用是非阻塞的(除了可能的密码请求以解锁种子)
  1768  //“下一个TXSIZE”
  1769  //下一次失败
  1770  type EstimateTxSize struct {
  1771  	OutputsCount     *uint32 `protobuf:"varint,1,req,name=outputs_count,json=outputsCount" json:"outputs_count,omitempty"`
  1772  	InputsCount      *uint32 `protobuf:"varint,2,req,name=inputs_count,json=inputsCount" json:"inputs_count,omitempty"`
  1773  	CoinName         *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1774  	XXX_unrecognized []byte  `json:"-"`
  1775  }
  1776  
  1777  func (m *EstimateTxSize) Reset()                    { *m = EstimateTxSize{} }
  1778  func (m *EstimateTxSize) String() string            { return proto.CompactTextString(m) }
  1779  func (*EstimateTxSize) ProtoMessage()               {}
  1780  func (*EstimateTxSize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{43} }
  1781  
  1782  const Default_EstimateTxSize_CoinName string = "Bitcoin"
  1783  
  1784  func (m *EstimateTxSize) GetOutputsCount() uint32 {
  1785  	if m != nil && m.OutputsCount != nil {
  1786  		return *m.OutputsCount
  1787  	}
  1788  	return 0
  1789  }
  1790  
  1791  func (m *EstimateTxSize) GetInputsCount() uint32 {
  1792  	if m != nil && m.InputsCount != nil {
  1793  		return *m.InputsCount
  1794  	}
  1795  	return 0
  1796  }
  1797  
  1798  func (m *EstimateTxSize) GetCoinName() string {
  1799  	if m != nil && m.CoinName != nil {
  1800  		return *m.CoinName
  1801  	}
  1802  	return Default_EstimateTxSize_CoinName
  1803  }
  1804  
  1805  //*
  1806  //响应:事务的估计大小
  1807  //@上一个估计X大小
  1808  type TxSize struct {
  1809  	TxSize           *uint32 `protobuf:"varint,1,opt,name=tx_size,json=txSize" json:"tx_size,omitempty"`
  1810  	XXX_unrecognized []byte  `json:"-"`
  1811  }
  1812  
  1813  func (m *TxSize) Reset()                    { *m = TxSize{} }
  1814  func (m *TxSize) String() string            { return proto.CompactTextString(m) }
  1815  func (*TxSize) ProtoMessage()               {}
  1816  func (*TxSize) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{44} }
  1817  
  1818  func (m *TxSize) GetTxSize() uint32 {
  1819  	if m != nil && m.TxSize != nil {
  1820  		return *m.TxSize
  1821  	}
  1822  	return 0
  1823  }
  1824  
  1825  //*
  1826  //请求:请求设备签署事务
  1827  //@下一个密码请求
  1828  //@下一个PinMatrixRequest
  1829  //下一个TXT请求
  1830  //下一次失败
  1831  type SignTx struct {
  1832  	OutputsCount     *uint32 `protobuf:"varint,1,req,name=outputs_count,json=outputsCount" json:"outputs_count,omitempty"`
  1833  	InputsCount      *uint32 `protobuf:"varint,2,req,name=inputs_count,json=inputsCount" json:"inputs_count,omitempty"`
  1834  	CoinName         *string `protobuf:"bytes,3,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1835  	Version          *uint32 `protobuf:"varint,4,opt,name=version,def=1" json:"version,omitempty"`
  1836  	LockTime         *uint32 `protobuf:"varint,5,opt,name=lock_time,json=lockTime,def=0" json:"lock_time,omitempty"`
  1837  	XXX_unrecognized []byte  `json:"-"`
  1838  }
  1839  
  1840  func (m *SignTx) Reset()                    { *m = SignTx{} }
  1841  func (m *SignTx) String() string            { return proto.CompactTextString(m) }
  1842  func (*SignTx) ProtoMessage()               {}
  1843  func (*SignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{45} }
  1844  
  1845  const Default_SignTx_CoinName string = "Bitcoin"
  1846  const Default_SignTx_Version uint32 = 1
  1847  const Default_SignTx_LockTime uint32 = 0
  1848  
  1849  func (m *SignTx) GetOutputsCount() uint32 {
  1850  	if m != nil && m.OutputsCount != nil {
  1851  		return *m.OutputsCount
  1852  	}
  1853  	return 0
  1854  }
  1855  
  1856  func (m *SignTx) GetInputsCount() uint32 {
  1857  	if m != nil && m.InputsCount != nil {
  1858  		return *m.InputsCount
  1859  	}
  1860  	return 0
  1861  }
  1862  
  1863  func (m *SignTx) GetCoinName() string {
  1864  	if m != nil && m.CoinName != nil {
  1865  		return *m.CoinName
  1866  	}
  1867  	return Default_SignTx_CoinName
  1868  }
  1869  
  1870  func (m *SignTx) GetVersion() uint32 {
  1871  	if m != nil && m.Version != nil {
  1872  		return *m.Version
  1873  	}
  1874  	return Default_SignTx_Version
  1875  }
  1876  
  1877  func (m *SignTx) GetLockTime() uint32 {
  1878  	if m != nil && m.LockTime != nil {
  1879  		return *m.LockTime
  1880  	}
  1881  	return Default_SignTx_LockTime
  1882  }
  1883  
  1884  //*
  1885  //请求:简化事务签名
  1886  //此方法不支持流式处理,因此在输入和输出数量上存在硬件限制。
  1887  //如果成功,将使用txrequest消息返回结果。
  1888  //@下一个密码请求
  1889  //@下一个PinMatrixRequest
  1890  //下一个TXT请求
  1891  //下一次失败
  1892  type SimpleSignTx struct {
  1893  	Inputs           []*TxInputType     `protobuf:"bytes,1,rep,name=inputs" json:"inputs,omitempty"`
  1894  	Outputs          []*TxOutputType    `protobuf:"bytes,2,rep,name=outputs" json:"outputs,omitempty"`
  1895  	Transactions     []*TransactionType `protobuf:"bytes,3,rep,name=transactions" json:"transactions,omitempty"`
  1896  	CoinName         *string            `protobuf:"bytes,4,opt,name=coin_name,json=coinName,def=Bitcoin" json:"coin_name,omitempty"`
  1897  	Version          *uint32            `protobuf:"varint,5,opt,name=version,def=1" json:"version,omitempty"`
  1898  	LockTime         *uint32            `protobuf:"varint,6,opt,name=lock_time,json=lockTime,def=0" json:"lock_time,omitempty"`
  1899  	XXX_unrecognized []byte             `json:"-"`
  1900  }
  1901  
  1902  func (m *SimpleSignTx) Reset()                    { *m = SimpleSignTx{} }
  1903  func (m *SimpleSignTx) String() string            { return proto.CompactTextString(m) }
  1904  func (*SimpleSignTx) ProtoMessage()               {}
  1905  func (*SimpleSignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{46} }
  1906  
  1907  const Default_SimpleSignTx_CoinName string = "Bitcoin"
  1908  const Default_SimpleSignTx_Version uint32 = 1
  1909  const Default_SimpleSignTx_LockTime uint32 = 0
  1910  
  1911  func (m *SimpleSignTx) GetInputs() []*TxInputType {
  1912  	if m != nil {
  1913  		return m.Inputs
  1914  	}
  1915  	return nil
  1916  }
  1917  
  1918  func (m *SimpleSignTx) GetOutputs() []*TxOutputType {
  1919  	if m != nil {
  1920  		return m.Outputs
  1921  	}
  1922  	return nil
  1923  }
  1924  
  1925  func (m *SimpleSignTx) GetTransactions() []*TransactionType {
  1926  	if m != nil {
  1927  		return m.Transactions
  1928  	}
  1929  	return nil
  1930  }
  1931  
  1932  func (m *SimpleSignTx) GetCoinName() string {
  1933  	if m != nil && m.CoinName != nil {
  1934  		return *m.CoinName
  1935  	}
  1936  	return Default_SimpleSignTx_CoinName
  1937  }
  1938  
  1939  func (m *SimpleSignTx) GetVersion() uint32 {
  1940  	if m != nil && m.Version != nil {
  1941  		return *m.Version
  1942  	}
  1943  	return Default_SimpleSignTx_Version
  1944  }
  1945  
  1946  func (m *SimpleSignTx) GetLockTime() uint32 {
  1947  	if m != nil && m.LockTime != nil {
  1948  		return *m.LockTime
  1949  	}
  1950  	return Default_SimpleSignTx_LockTime
  1951  }
  1952  
  1953  //*
  1954  //响应:设备请求签署事务的信息或返回最后一个结果
  1955  //如果设置了请求_索引,则设备等待txack消息(根据请求_类型填写字段)
  1956  //如果设置了签名索引,“签名”包含签名索引输入的签名输入
  1957  //预兆信号
  1958  //@上一个simplesigntx
  1959  //普雷克
  1960  type TxRequest struct {
  1961  	RequestType      *RequestType             `protobuf:"varint,1,opt,name=request_type,json=requestType,enum=RequestType" json:"request_type,omitempty"`
  1962  	Details          *TxRequestDetailsType    `protobuf:"bytes,2,opt,name=details" json:"details,omitempty"`
  1963  	Serialized       *TxRequestSerializedType `protobuf:"bytes,3,opt,name=serialized" json:"serialized,omitempty"`
  1964  	XXX_unrecognized []byte                   `json:"-"`
  1965  }
  1966  
  1967  func (m *TxRequest) Reset()                    { *m = TxRequest{} }
  1968  func (m *TxRequest) String() string            { return proto.CompactTextString(m) }
  1969  func (*TxRequest) ProtoMessage()               {}
  1970  func (*TxRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{47} }
  1971  
  1972  func (m *TxRequest) GetRequestType() RequestType {
  1973  	if m != nil && m.RequestType != nil {
  1974  		return *m.RequestType
  1975  	}
  1976  	return RequestType_TXINPUT
  1977  }
  1978  
  1979  func (m *TxRequest) GetDetails() *TxRequestDetailsType {
  1980  	if m != nil {
  1981  		return m.Details
  1982  	}
  1983  	return nil
  1984  }
  1985  
  1986  func (m *TxRequest) GetSerialized() *TxRequestSerializedType {
  1987  	if m != nil {
  1988  		return m.Serialized
  1989  	}
  1990  	return nil
  1991  }
  1992  
  1993  //*
  1994  //请求:报告的事务数据
  1995  //@前置请求
  1996  //下一个TXT请求
  1997  type TxAck struct {
  1998  	Tx               *TransactionType `protobuf:"bytes,1,opt,name=tx" json:"tx,omitempty"`
  1999  	XXX_unrecognized []byte           `json:"-"`
  2000  }
  2001  
  2002  func (m *TxAck) Reset()                    { *m = TxAck{} }
  2003  func (m *TxAck) String() string            { return proto.CompactTextString(m) }
  2004  func (*TxAck) ProtoMessage()               {}
  2005  func (*TxAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{48} }
  2006  
  2007  func (m *TxAck) GetTx() *TransactionType {
  2008  	if m != nil {
  2009  		return m.Tx
  2010  	}
  2011  	return nil
  2012  }
  2013  
  2014  //*
  2015  //请求:请求设备签署事务
  2016  //从协议的角度来看,所有字段都是可选的。如果缺少,则每个字段默认为值“0”。
  2017  //注意:第一个最多1024字节的数据必须作为此消息的一部分进行传输。
  2018  //@下一个密码请求
  2019  //@下一个PinMatrixRequest
  2020  //@下一个以太坊MtxRequest
  2021  //下一次失败
  2022  type EthereumSignTx struct {
  2023  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  2024  	Nonce            []byte   `protobuf:"bytes,2,opt,name=nonce" json:"nonce,omitempty"`
  2025  	GasPrice         []byte   `protobuf:"bytes,3,opt,name=gas_price,json=gasPrice" json:"gas_price,omitempty"`
  2026  	GasLimit         []byte   `protobuf:"bytes,4,opt,name=gas_limit,json=gasLimit" json:"gas_limit,omitempty"`
  2027  	To               []byte   `protobuf:"bytes,5,opt,name=to" json:"to,omitempty"`
  2028  	Value            []byte   `protobuf:"bytes,6,opt,name=value" json:"value,omitempty"`
  2029  	DataInitialChunk []byte   `protobuf:"bytes,7,opt,name=data_initial_chunk,json=dataInitialChunk" json:"data_initial_chunk,omitempty"`
  2030  	DataLength       *uint32  `protobuf:"varint,8,opt,name=data_length,json=dataLength" json:"data_length,omitempty"`
  2031  	ChainId          *uint32  `protobuf:"varint,9,opt,name=chain_id,json=chainId" json:"chain_id,omitempty"`
  2032  	XXX_unrecognized []byte   `json:"-"`
  2033  }
  2034  
  2035  func (m *EthereumSignTx) Reset()                    { *m = EthereumSignTx{} }
  2036  func (m *EthereumSignTx) String() string            { return proto.CompactTextString(m) }
  2037  func (*EthereumSignTx) ProtoMessage()               {}
  2038  func (*EthereumSignTx) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{49} }
  2039  
  2040  func (m *EthereumSignTx) GetAddressN() []uint32 {
  2041  	if m != nil {
  2042  		return m.AddressN
  2043  	}
  2044  	return nil
  2045  }
  2046  
  2047  func (m *EthereumSignTx) GetNonce() []byte {
  2048  	if m != nil {
  2049  		return m.Nonce
  2050  	}
  2051  	return nil
  2052  }
  2053  
  2054  func (m *EthereumSignTx) GetGasPrice() []byte {
  2055  	if m != nil {
  2056  		return m.GasPrice
  2057  	}
  2058  	return nil
  2059  }
  2060  
  2061  func (m *EthereumSignTx) GetGasLimit() []byte {
  2062  	if m != nil {
  2063  		return m.GasLimit
  2064  	}
  2065  	return nil
  2066  }
  2067  
  2068  func (m *EthereumSignTx) GetTo() []byte {
  2069  	if m != nil {
  2070  		return m.To
  2071  	}
  2072  	return nil
  2073  }
  2074  
  2075  func (m *EthereumSignTx) GetValue() []byte {
  2076  	if m != nil {
  2077  		return m.Value
  2078  	}
  2079  	return nil
  2080  }
  2081  
  2082  func (m *EthereumSignTx) GetDataInitialChunk() []byte {
  2083  	if m != nil {
  2084  		return m.DataInitialChunk
  2085  	}
  2086  	return nil
  2087  }
  2088  
  2089  func (m *EthereumSignTx) GetDataLength() uint32 {
  2090  	if m != nil && m.DataLength != nil {
  2091  		return *m.DataLength
  2092  	}
  2093  	return 0
  2094  }
  2095  
  2096  func (m *EthereumSignTx) GetChainId() uint32 {
  2097  	if m != nil && m.ChainId != nil {
  2098  		return *m.ChainId
  2099  	}
  2100  	return 0
  2101  }
  2102  
  2103  //*
  2104  //响应:设备从事务负载请求更多数据,或返回签名。
  2105  //如果设置了数据长度,设备将等待更多字节的有效负载。
  2106  //否则,签名字段包含计算出的事务签名。所有三个字段都将显示。
  2107  //@prev以太坊GNTX
  2108  //@下一个以太坊
  2109  type EthereumTxRequest struct {
  2110  	DataLength       *uint32 `protobuf:"varint,1,opt,name=data_length,json=dataLength" json:"data_length,omitempty"`
  2111  	SignatureV       *uint32 `protobuf:"varint,2,opt,name=signature_v,json=signatureV" json:"signature_v,omitempty"`
  2112  	SignatureR       []byte  `protobuf:"bytes,3,opt,name=signature_r,json=signatureR" json:"signature_r,omitempty"`
  2113  	SignatureS       []byte  `protobuf:"bytes,4,opt,name=signature_s,json=signatureS" json:"signature_s,omitempty"`
  2114  	XXX_unrecognized []byte  `json:"-"`
  2115  }
  2116  
  2117  func (m *EthereumTxRequest) Reset()                    { *m = EthereumTxRequest{} }
  2118  func (m *EthereumTxRequest) String() string            { return proto.CompactTextString(m) }
  2119  func (*EthereumTxRequest) ProtoMessage()               {}
  2120  func (*EthereumTxRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{50} }
  2121  
  2122  func (m *EthereumTxRequest) GetDataLength() uint32 {
  2123  	if m != nil && m.DataLength != nil {
  2124  		return *m.DataLength
  2125  	}
  2126  	return 0
  2127  }
  2128  
  2129  func (m *EthereumTxRequest) GetSignatureV() uint32 {
  2130  	if m != nil && m.SignatureV != nil {
  2131  		return *m.SignatureV
  2132  	}
  2133  	return 0
  2134  }
  2135  
  2136  func (m *EthereumTxRequest) GetSignatureR() []byte {
  2137  	if m != nil {
  2138  		return m.SignatureR
  2139  	}
  2140  	return nil
  2141  }
  2142  
  2143  func (m *EthereumTxRequest) GetSignatureS() []byte {
  2144  	if m != nil {
  2145  		return m.SignatureS
  2146  	}
  2147  	return nil
  2148  }
  2149  
  2150  //*
  2151  //请求:事务有效负载数据。
  2152  //@上一个以太坊请求
  2153  //@下一个以太坊MtxRequest
  2154  type EthereumTxAck struct {
  2155  	DataChunk        []byte `protobuf:"bytes,1,opt,name=data_chunk,json=dataChunk" json:"data_chunk,omitempty"`
  2156  	XXX_unrecognized []byte `json:"-"`
  2157  }
  2158  
  2159  func (m *EthereumTxAck) Reset()                    { *m = EthereumTxAck{} }
  2160  func (m *EthereumTxAck) String() string            { return proto.CompactTextString(m) }
  2161  func (*EthereumTxAck) ProtoMessage()               {}
  2162  func (*EthereumTxAck) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{51} }
  2163  
  2164  func (m *EthereumTxAck) GetDataChunk() []byte {
  2165  	if m != nil {
  2166  		return m.DataChunk
  2167  	}
  2168  	return nil
  2169  }
  2170  
  2171  //*
  2172  //请求:要求设备签署消息
  2173  //@下一个以太坊推荐签名
  2174  //下一次失败
  2175  type EthereumSignMessage struct {
  2176  	AddressN         []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"`
  2177  	Message          []byte   `protobuf:"bytes,2,req,name=message" json:"message,omitempty"`
  2178  	XXX_unrecognized []byte   `json:"-"`
  2179  }
  2180  
  2181  func (m *EthereumSignMessage) Reset()                    { *m = EthereumSignMessage{} }
  2182  func (m *EthereumSignMessage) String() string            { return proto.CompactTextString(m) }
  2183  func (*EthereumSignMessage) ProtoMessage()               {}
  2184  func (*EthereumSignMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{52} }
  2185  
  2186  func (m *EthereumSignMessage) GetAddressN() []uint32 {
  2187  	if m != nil {
  2188  		return m.AddressN
  2189  	}
  2190  	return nil
  2191  }
  2192  
  2193  func (m *EthereumSignMessage) GetMessage() []byte {
  2194  	if m != nil {
  2195  		return m.Message
  2196  	}
  2197  	return nil
  2198  }
  2199  
  2200  //*
  2201  //请求:请求设备验证消息
  2202  //下一个成功
  2203  //下一次失败
  2204  type EthereumVerifyMessage struct {
  2205  	Address          []byte `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  2206  	Signature        []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
  2207  	Message          []byte `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"`
  2208  	XXX_unrecognized []byte `json:"-"`
  2209  }
  2210  
  2211  func (m *EthereumVerifyMessage) Reset()                    { *m = EthereumVerifyMessage{} }
  2212  func (m *EthereumVerifyMessage) String() string            { return proto.CompactTextString(m) }
  2213  func (*EthereumVerifyMessage) ProtoMessage()               {}
  2214  func (*EthereumVerifyMessage) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{53} }
  2215  
  2216  func (m *EthereumVerifyMessage) GetAddress() []byte {
  2217  	if m != nil {
  2218  		return m.Address
  2219  	}
  2220  	return nil
  2221  }
  2222  
  2223  func (m *EthereumVerifyMessage) GetSignature() []byte {
  2224  	if m != nil {
  2225  		return m.Signature
  2226  	}
  2227  	return nil
  2228  }
  2229  
  2230  func (m *EthereumVerifyMessage) GetMessage() []byte {
  2231  	if m != nil {
  2232  		return m.Message
  2233  	}
  2234  	return nil
  2235  }
  2236  
  2237  //*
  2238  //响应:签名消息
  2239  //@prev以太坊消息
  2240  type EthereumMessageSignature struct {
  2241  	Address          []byte `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  2242  	Signature        []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"`
  2243  	XXX_unrecognized []byte `json:"-"`
  2244  }
  2245  
  2246  func (m *EthereumMessageSignature) Reset()                    { *m = EthereumMessageSignature{} }
  2247  func (m *EthereumMessageSignature) String() string            { return proto.CompactTextString(m) }
  2248  func (*EthereumMessageSignature) ProtoMessage()               {}
  2249  func (*EthereumMessageSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{54} }
  2250  
  2251  func (m *EthereumMessageSignature) GetAddress() []byte {
  2252  	if m != nil {
  2253  		return m.Address
  2254  	}
  2255  	return nil
  2256  }
  2257  
  2258  func (m *EthereumMessageSignature) GetSignature() []byte {
  2259  	if m != nil {
  2260  		return m.Signature
  2261  	}
  2262  	return nil
  2263  }
  2264  
  2265  //*
  2266  //请求:请求设备签名身份
  2267  //@下一个签名的实体
  2268  //下一次失败
  2269  type SignIdentity struct {
  2270  	Identity         *IdentityType `protobuf:"bytes,1,opt,name=identity" json:"identity,omitempty"`
  2271  	ChallengeHidden  []byte        `protobuf:"bytes,2,opt,name=challenge_hidden,json=challengeHidden" json:"challenge_hidden,omitempty"`
  2272  	ChallengeVisual  *string       `protobuf:"bytes,3,opt,name=challenge_visual,json=challengeVisual" json:"challenge_visual,omitempty"`
  2273  	EcdsaCurveName   *string       `protobuf:"bytes,4,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
  2274  	XXX_unrecognized []byte        `json:"-"`
  2275  }
  2276  
  2277  func (m *SignIdentity) Reset()                    { *m = SignIdentity{} }
  2278  func (m *SignIdentity) String() string            { return proto.CompactTextString(m) }
  2279  func (*SignIdentity) ProtoMessage()               {}
  2280  func (*SignIdentity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{55} }
  2281  
  2282  func (m *SignIdentity) GetIdentity() *IdentityType {
  2283  	if m != nil {
  2284  		return m.Identity
  2285  	}
  2286  	return nil
  2287  }
  2288  
  2289  func (m *SignIdentity) GetChallengeHidden() []byte {
  2290  	if m != nil {
  2291  		return m.ChallengeHidden
  2292  	}
  2293  	return nil
  2294  }
  2295  
  2296  func (m *SignIdentity) GetChallengeVisual() string {
  2297  	if m != nil && m.ChallengeVisual != nil {
  2298  		return *m.ChallengeVisual
  2299  	}
  2300  	return ""
  2301  }
  2302  
  2303  func (m *SignIdentity) GetEcdsaCurveName() string {
  2304  	if m != nil && m.EcdsaCurveName != nil {
  2305  		return *m.EcdsaCurveName
  2306  	}
  2307  	return ""
  2308  }
  2309  
  2310  //*
  2311  //响应:设备提供签名标识
  2312  //@上一个签名标识
  2313  type SignedIdentity struct {
  2314  	Address          *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
  2315  	PublicKey        []byte  `protobuf:"bytes,2,opt,name=public_key,json=publicKey" json:"public_key,omitempty"`
  2316  	Signature        []byte  `protobuf:"bytes,3,opt,name=signature" json:"signature,omitempty"`
  2317  	XXX_unrecognized []byte  `json:"-"`
  2318  }
  2319  
  2320  func (m *SignedIdentity) Reset()                    { *m = SignedIdentity{} }
  2321  func (m *SignedIdentity) String() string            { return proto.CompactTextString(m) }
  2322  func (*SignedIdentity) ProtoMessage()               {}
  2323  func (*SignedIdentity) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{56} }
  2324  
  2325  func (m *SignedIdentity) GetAddress() string {
  2326  	if m != nil && m.Address != nil {
  2327  		return *m.Address
  2328  	}
  2329  	return ""
  2330  }
  2331  
  2332  func (m *SignedIdentity) GetPublicKey() []byte {
  2333  	if m != nil {
  2334  		return m.PublicKey
  2335  	}
  2336  	return nil
  2337  }
  2338  
  2339  func (m *SignedIdentity) GetSignature() []byte {
  2340  	if m != nil {
  2341  		return m.Signature
  2342  	}
  2343  	return nil
  2344  }
  2345  
  2346  //*
  2347  //请求:请求设备生成ECDH会话密钥
  2348  //@下一个ecdhsessionkey
  2349  //下一次失败
  2350  type GetECDHSessionKey struct {
  2351  	Identity         *IdentityType `protobuf:"bytes,1,opt,name=identity" json:"identity,omitempty"`
  2352  	PeerPublicKey    []byte        `protobuf:"bytes,2,opt,name=peer_public_key,json=peerPublicKey" json:"peer_public_key,omitempty"`
  2353  	EcdsaCurveName   *string       `protobuf:"bytes,3,opt,name=ecdsa_curve_name,json=ecdsaCurveName" json:"ecdsa_curve_name,omitempty"`
  2354  	XXX_unrecognized []byte        `json:"-"`
  2355  }
  2356  
  2357  func (m *GetECDHSessionKey) Reset()                    { *m = GetECDHSessionKey{} }
  2358  func (m *GetECDHSessionKey) String() string            { return proto.CompactTextString(m) }
  2359  func (*GetECDHSessionKey) ProtoMessage()               {}
  2360  func (*GetECDHSessionKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{57} }
  2361  
  2362  func (m *GetECDHSessionKey) GetIdentity() *IdentityType {
  2363  	if m != nil {
  2364  		return m.Identity
  2365  	}
  2366  	return nil
  2367  }
  2368  
  2369  func (m *GetECDHSessionKey) GetPeerPublicKey() []byte {
  2370  	if m != nil {
  2371  		return m.PeerPublicKey
  2372  	}
  2373  	return nil
  2374  }
  2375  
  2376  func (m *GetECDHSessionKey) GetEcdsaCurveName() string {
  2377  	if m != nil && m.EcdsaCurveName != nil {
  2378  		return *m.EcdsaCurveName
  2379  	}
  2380  	return ""
  2381  }
  2382  
  2383  //*
  2384  //响应:设备提供ECDH会话密钥
  2385  //@prev getecdhsessionkey
  2386  type ECDHSessionKey struct {
  2387  	SessionKey       []byte `protobuf:"bytes,1,opt,name=session_key,json=sessionKey" json:"session_key,omitempty"`
  2388  	XXX_unrecognized []byte `json:"-"`
  2389  }
  2390  
  2391  func (m *ECDHSessionKey) Reset()                    { *m = ECDHSessionKey{} }
  2392  func (m *ECDHSessionKey) String() string            { return proto.CompactTextString(m) }
  2393  func (*ECDHSessionKey) ProtoMessage()               {}
  2394  func (*ECDHSessionKey) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{58} }
  2395  
  2396  func (m *ECDHSessionKey) GetSessionKey() []byte {
  2397  	if m != nil {
  2398  		return m.SessionKey
  2399  	}
  2400  	return nil
  2401  }
  2402  
  2403  //*
  2404  //请求:设置U2F计数器
  2405  //下一个成功
  2406  type SetU2FCounter struct {
  2407  	U2FCounter       *uint32 `protobuf:"varint,1,opt,name=u2f_counter,json=u2fCounter" json:"u2f_counter,omitempty"`
  2408  	XXX_unrecognized []byte  `json:"-"`
  2409  }
  2410  
  2411  func (m *SetU2FCounter) Reset()                    { *m = SetU2FCounter{} }
  2412  func (m *SetU2FCounter) String() string            { return proto.CompactTextString(m) }
  2413  func (*SetU2FCounter) ProtoMessage()               {}
  2414  func (*SetU2FCounter) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{59} }
  2415  
  2416  func (m *SetU2FCounter) GetU2FCounter() uint32 {
  2417  	if m != nil && m.U2FCounter != nil {
  2418  		return *m.U2FCounter
  2419  	}
  2420  	return 0
  2421  }
  2422  
  2423  //*
  2424  //请求:要求设备删除其固件(以便可以通过firmwareupload进行更换)
  2425  //下一个成功
  2426  //@下一个固件请求
  2427  //下一次失败
  2428  type FirmwareErase struct {
  2429  	Length           *uint32 `protobuf:"varint,1,opt,name=length" json:"length,omitempty"`
  2430  	XXX_unrecognized []byte  `json:"-"`
  2431  }
  2432  
  2433  func (m *FirmwareErase) Reset()                    { *m = FirmwareErase{} }
  2434  func (m *FirmwareErase) String() string            { return proto.CompactTextString(m) }
  2435  func (*FirmwareErase) ProtoMessage()               {}
  2436  func (*FirmwareErase) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{60} }
  2437  
  2438  func (m *FirmwareErase) GetLength() uint32 {
  2439  	if m != nil && m.Length != nil {
  2440  		return *m.Length
  2441  	}
  2442  	return 0
  2443  }
  2444  
  2445  //*
  2446  //响应:请求固件块
  2447  //@下一个firmwareupload
  2448  type FirmwareRequest struct {
  2449  	Offset           *uint32 `protobuf:"varint,1,opt,name=offset" json:"offset,omitempty"`
  2450  	Length           *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"`
  2451  	XXX_unrecognized []byte  `json:"-"`
  2452  }
  2453  
  2454  func (m *FirmwareRequest) Reset()                    { *m = FirmwareRequest{} }
  2455  func (m *FirmwareRequest) String() string            { return proto.CompactTextString(m) }
  2456  func (*FirmwareRequest) ProtoMessage()               {}
  2457  func (*FirmwareRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{61} }
  2458  
  2459  func (m *FirmwareRequest) GetOffset() uint32 {
  2460  	if m != nil && m.Offset != nil {
  2461  		return *m.Offset
  2462  	}
  2463  	return 0
  2464  }
  2465  
  2466  func (m *FirmwareRequest) GetLength() uint32 {
  2467  	if m != nil && m.Length != nil {
  2468  		return *m.Length
  2469  	}
  2470  	return 0
  2471  }
  2472  
  2473  //*
  2474  //请求:以二进制形式向设备发送固件
  2475  //下一个成功
  2476  //下一次失败
  2477  type FirmwareUpload struct {
  2478  	Payload          []byte `protobuf:"bytes,1,req,name=payload" json:"payload,omitempty"`
  2479  	Hash             []byte `protobuf:"bytes,2,opt,name=hash" json:"hash,omitempty"`
  2480  	XXX_unrecognized []byte `json:"-"`
  2481  }
  2482  
  2483  func (m *FirmwareUpload) Reset()                    { *m = FirmwareUpload{} }
  2484  func (m *FirmwareUpload) String() string            { return proto.CompactTextString(m) }
  2485  func (*FirmwareUpload) ProtoMessage()               {}
  2486  func (*FirmwareUpload) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{62} }
  2487  
  2488  func (m *FirmwareUpload) GetPayload() []byte {
  2489  	if m != nil {
  2490  		return m.Payload
  2491  	}
  2492  	return nil
  2493  }
  2494  
  2495  func (m *FirmwareUpload) GetHash() []byte {
  2496  	if m != nil {
  2497  		return m.Hash
  2498  	}
  2499  	return nil
  2500  }
  2501  
  2502  //*
  2503  //请求:执行设备自检
  2504  //下一个成功
  2505  //下一次失败
  2506  type SelfTest struct {
  2507  	Payload          []byte `protobuf:"bytes,1,opt,name=payload" json:"payload,omitempty"`
  2508  	XXX_unrecognized []byte `json:"-"`
  2509  }
  2510  
  2511  func (m *SelfTest) Reset()                    { *m = SelfTest{} }
  2512  func (m *SelfTest) String() string            { return proto.CompactTextString(m) }
  2513  func (*SelfTest) ProtoMessage()               {}
  2514  func (*SelfTest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{63} }
  2515  
  2516  func (m *SelfTest) GetPayload() []byte {
  2517  	if m != nil {
  2518  		return m.Payload
  2519  	}
  2520  	return nil
  2521  }
  2522  
  2523  //*
  2524  //请求:“按下”设备上的按钮
  2525  //下一个成功
  2526  type DebugLinkDecision struct {
  2527  	YesNo            *bool  `protobuf:"varint,1,req,name=yes_no,json=yesNo" json:"yes_no,omitempty"`
  2528  	XXX_unrecognized []byte `json:"-"`
  2529  }
  2530  
  2531  func (m *DebugLinkDecision) Reset()                    { *m = DebugLinkDecision{} }
  2532  func (m *DebugLinkDecision) String() string            { return proto.CompactTextString(m) }
  2533  func (*DebugLinkDecision) ProtoMessage()               {}
  2534  func (*DebugLinkDecision) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{64} }
  2535  
  2536  func (m *DebugLinkDecision) GetYesNo() bool {
  2537  	if m != nil && m.YesNo != nil {
  2538  		return *m.YesNo
  2539  	}
  2540  	return false
  2541  }
  2542  
  2543  //*
  2544  //请求:计算机请求设备状态
  2545  //@下一个debuglinkstate
  2546  type DebugLinkGetState struct {
  2547  	XXX_unrecognized []byte `json:"-"`
  2548  }
  2549  
  2550  func (m *DebugLinkGetState) Reset()                    { *m = DebugLinkGetState{} }
  2551  func (m *DebugLinkGetState) String() string            { return proto.CompactTextString(m) }
  2552  func (*DebugLinkGetState) ProtoMessage()               {}
  2553  func (*DebugLinkGetState) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{65} }
  2554  
  2555  //*
  2556  //响应:设备当前状态
  2557  //@prev调试获取状态
  2558  type DebugLinkState struct {
  2559  	Layout               []byte      `protobuf:"bytes,1,opt,name=layout" json:"layout,omitempty"`
  2560  	Pin                  *string     `protobuf:"bytes,2,opt,name=pin" json:"pin,omitempty"`
  2561  	Matrix               *string     `protobuf:"bytes,3,opt,name=matrix" json:"matrix,omitempty"`
  2562  	Mnemonic             *string     `protobuf:"bytes,4,opt,name=mnemonic" json:"mnemonic,omitempty"`
  2563  	Node                 *HDNodeType `protobuf:"bytes,5,opt,name=node" json:"node,omitempty"`
  2564  	PassphraseProtection *bool       `protobuf:"varint,6,opt,name=passphrase_protection,json=passphraseProtection" json:"passphrase_protection,omitempty"`
  2565  	ResetWord            *string     `protobuf:"bytes,7,opt,name=reset_word,json=resetWord" json:"reset_word,omitempty"`
  2566  	ResetEntropy         []byte      `protobuf:"bytes,8,opt,name=reset_entropy,json=resetEntropy" json:"reset_entropy,omitempty"`
  2567  	RecoveryFakeWord     *string     `protobuf:"bytes,9,opt,name=recovery_fake_word,json=recoveryFakeWord" json:"recovery_fake_word,omitempty"`
  2568  	RecoveryWordPos      *uint32     `protobuf:"varint,10,opt,name=recovery_word_pos,json=recoveryWordPos" json:"recovery_word_pos,omitempty"`
  2569  	XXX_unrecognized     []byte      `json:"-"`
  2570  }
  2571  
  2572  func (m *DebugLinkState) Reset()                    { *m = DebugLinkState{} }
  2573  func (m *DebugLinkState) String() string            { return proto.CompactTextString(m) }
  2574  func (*DebugLinkState) ProtoMessage()               {}
  2575  func (*DebugLinkState) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{66} }
  2576  
  2577  func (m *DebugLinkState) GetLayout() []byte {
  2578  	if m != nil {
  2579  		return m.Layout
  2580  	}
  2581  	return nil
  2582  }
  2583  
  2584  func (m *DebugLinkState) GetPin() string {
  2585  	if m != nil && m.Pin != nil {
  2586  		return *m.Pin
  2587  	}
  2588  	return ""
  2589  }
  2590  
  2591  func (m *DebugLinkState) GetMatrix() string {
  2592  	if m != nil && m.Matrix != nil {
  2593  		return *m.Matrix
  2594  	}
  2595  	return ""
  2596  }
  2597  
  2598  func (m *DebugLinkState) GetMnemonic() string {
  2599  	if m != nil && m.Mnemonic != nil {
  2600  		return *m.Mnemonic
  2601  	}
  2602  	return ""
  2603  }
  2604  
  2605  func (m *DebugLinkState) GetNode() *HDNodeType {
  2606  	if m != nil {
  2607  		return m.Node
  2608  	}
  2609  	return nil
  2610  }
  2611  
  2612  func (m *DebugLinkState) GetPassphraseProtection() bool {
  2613  	if m != nil && m.PassphraseProtection != nil {
  2614  		return *m.PassphraseProtection
  2615  	}
  2616  	return false
  2617  }
  2618  
  2619  func (m *DebugLinkState) GetResetWord() string {
  2620  	if m != nil && m.ResetWord != nil {
  2621  		return *m.ResetWord
  2622  	}
  2623  	return ""
  2624  }
  2625  
  2626  func (m *DebugLinkState) GetResetEntropy() []byte {
  2627  	if m != nil {
  2628  		return m.ResetEntropy
  2629  	}
  2630  	return nil
  2631  }
  2632  
  2633  func (m *DebugLinkState) GetRecoveryFakeWord() string {
  2634  	if m != nil && m.RecoveryFakeWord != nil {
  2635  		return *m.RecoveryFakeWord
  2636  	}
  2637  	return ""
  2638  }
  2639  
  2640  func (m *DebugLinkState) GetRecoveryWordPos() uint32 {
  2641  	if m != nil && m.RecoveryWordPos != nil {
  2642  		return *m.RecoveryWordPos
  2643  	}
  2644  	return 0
  2645  }
  2646  
  2647  //*
  2648  //
  2649  type DebugLinkStop struct {
  2650  	XXX_unrecognized []byte `json:"-"`
  2651  }
  2652  
  2653  func (m *DebugLinkStop) Reset()                    { *m = DebugLinkStop{} }
  2654  func (m *DebugLinkStop) String() string            { return proto.CompactTextString(m) }
  2655  func (*DebugLinkStop) ProtoMessage()               {}
  2656  func (*DebugLinkStop) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{67} }
  2657  
  2658  //*
  2659  //响应:设备希望主机记录事件
  2660  type DebugLinkLog struct {
  2661  	Level            *uint32 `protobuf:"varint,1,opt,name=level" json:"level,omitempty"`
  2662  	Bucket           *string `protobuf:"bytes,2,opt,name=bucket" json:"bucket,omitempty"`
  2663  	Text             *string `protobuf:"bytes,3,opt,name=text" json:"text,omitempty"`
  2664  	XXX_unrecognized []byte  `json:"-"`
  2665  }
  2666  
  2667  func (m *DebugLinkLog) Reset()                    { *m = DebugLinkLog{} }
  2668  func (m *DebugLinkLog) String() string            { return proto.CompactTextString(m) }
  2669  func (*DebugLinkLog) ProtoMessage()               {}
  2670  func (*DebugLinkLog) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{68} }
  2671  
  2672  func (m *DebugLinkLog) GetLevel() uint32 {
  2673  	if m != nil && m.Level != nil {
  2674  		return *m.Level
  2675  	}
  2676  	return 0
  2677  }
  2678  
  2679  func (m *DebugLinkLog) GetBucket() string {
  2680  	if m != nil && m.Bucket != nil {
  2681  		return *m.Bucket
  2682  	}
  2683  	return ""
  2684  }
  2685  
  2686  func (m *DebugLinkLog) GetText() string {
  2687  	if m != nil && m.Text != nil {
  2688  		return *m.Text
  2689  	}
  2690  	return ""
  2691  }
  2692  
  2693  //*
  2694  //请求:从设备读取内存
  2695  //@下一个debuglinkmemory
  2696  type DebugLinkMemoryRead struct {
  2697  	Address          *uint32 `protobuf:"varint,1,opt,name=address" json:"address,omitempty"`
  2698  	Length           *uint32 `protobuf:"varint,2,opt,name=length" json:"length,omitempty"`
  2699  	XXX_unrecognized []byte  `json:"-"`
  2700  }
  2701  
  2702  func (m *DebugLinkMemoryRead) Reset()                    { *m = DebugLinkMemoryRead{} }
  2703  func (m *DebugLinkMemoryRead) String() string            { return proto.CompactTextString(m) }
  2704  func (*DebugLinkMemoryRead) ProtoMessage()               {}
  2705  func (*DebugLinkMemoryRead) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{69} }
  2706  
  2707  func (m *DebugLinkMemoryRead) GetAddress() uint32 {
  2708  	if m != nil && m.Address != nil {
  2709  		return *m.Address
  2710  	}
  2711  	return 0
  2712  }
  2713  
  2714  func (m *DebugLinkMemoryRead) GetLength() uint32 {
  2715  	if m != nil && m.Length != nil {
  2716  		return *m.Length
  2717  	}
  2718  	return 0
  2719  }
  2720  
  2721  //*
  2722  //响应:设备将内存发送回
  2723  //@prev debuglinkmemoryread(上一个debuglinkmemoryread)
  2724  type DebugLinkMemory struct {
  2725  	Memory           []byte `protobuf:"bytes,1,opt,name=memory" json:"memory,omitempty"`
  2726  	XXX_unrecognized []byte `json:"-"`
  2727  }
  2728  
  2729  func (m *DebugLinkMemory) Reset()                    { *m = DebugLinkMemory{} }
  2730  func (m *DebugLinkMemory) String() string            { return proto.CompactTextString(m) }
  2731  func (*DebugLinkMemory) ProtoMessage()               {}
  2732  func (*DebugLinkMemory) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{70} }
  2733  
  2734  func (m *DebugLinkMemory) GetMemory() []byte {
  2735  	if m != nil {
  2736  		return m.Memory
  2737  	}
  2738  	return nil
  2739  }
  2740  
  2741  //*
  2742  //请求:将内存写入设备。
  2743  //警告:写入错误位置可能会导致设备无法修复地损坏。
  2744  type DebugLinkMemoryWrite struct {
  2745  	Address          *uint32 `protobuf:"varint,1,opt,name=address" json:"address,omitempty"`
  2746  	Memory           []byte  `protobuf:"bytes,2,opt,name=memory" json:"memory,omitempty"`
  2747  	Flash            *bool   `protobuf:"varint,3,opt,name=flash" json:"flash,omitempty"`
  2748  	XXX_unrecognized []byte  `json:"-"`
  2749  }
  2750  
  2751  func (m *DebugLinkMemoryWrite) Reset()                    { *m = DebugLinkMemoryWrite{} }
  2752  func (m *DebugLinkMemoryWrite) String() string            { return proto.CompactTextString(m) }
  2753  func (*DebugLinkMemoryWrite) ProtoMessage()               {}
  2754  func (*DebugLinkMemoryWrite) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{71} }
  2755  
  2756  func (m *DebugLinkMemoryWrite) GetAddress() uint32 {
  2757  	if m != nil && m.Address != nil {
  2758  		return *m.Address
  2759  	}
  2760  	return 0
  2761  }
  2762  
  2763  func (m *DebugLinkMemoryWrite) GetMemory() []byte {
  2764  	if m != nil {
  2765  		return m.Memory
  2766  	}
  2767  	return nil
  2768  }
  2769  
  2770  func (m *DebugLinkMemoryWrite) GetFlash() bool {
  2771  	if m != nil && m.Flash != nil {
  2772  		return *m.Flash
  2773  	}
  2774  	return false
  2775  }
  2776  
  2777  //*
  2778  //请求:清除设备上的闪存块
  2779  //警告:写入错误位置可能会导致设备无法修复地损坏。
  2780  type DebugLinkFlashErase struct {
  2781  	Sector           *uint32 `protobuf:"varint,1,opt,name=sector" json:"sector,omitempty"`
  2782  	XXX_unrecognized []byte  `json:"-"`
  2783  }
  2784  
  2785  func (m *DebugLinkFlashErase) Reset()                    { *m = DebugLinkFlashErase{} }
  2786  func (m *DebugLinkFlashErase) String() string            { return proto.CompactTextString(m) }
  2787  func (*DebugLinkFlashErase) ProtoMessage()               {}
  2788  func (*DebugLinkFlashErase) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{72} }
  2789  
  2790  func (m *DebugLinkFlashErase) GetSector() uint32 {
  2791  	if m != nil && m.Sector != nil {
  2792  		return *m.Sector
  2793  	}
  2794  	return 0
  2795  }
  2796  
  2797  func init() {
  2798  	proto.RegisterType((*Initialize)(nil), "Initialize")
  2799  	proto.RegisterType((*GetFeatures)(nil), "GetFeatures")
  2800  	proto.RegisterType((*Features)(nil), "Features")
  2801  	proto.RegisterType((*ClearSession)(nil), "ClearSession")
  2802  	proto.RegisterType((*ApplySettings)(nil), "ApplySettings")
  2803  	proto.RegisterType((*ApplyFlags)(nil), "ApplyFlags")
  2804  	proto.RegisterType((*ChangePin)(nil), "ChangePin")
  2805  	proto.RegisterType((*Ping)(nil), "Ping")
  2806  	proto.RegisterType((*Success)(nil), "Success")
  2807  	proto.RegisterType((*Failure)(nil), "Failure")
  2808  	proto.RegisterType((*ButtonRequest)(nil), "ButtonRequest")
  2809  	proto.RegisterType((*ButtonAck)(nil), "ButtonAck")
  2810  	proto.RegisterType((*PinMatrixRequest)(nil), "PinMatrixRequest")
  2811  	proto.RegisterType((*PinMatrixAck)(nil), "PinMatrixAck")
  2812  	proto.RegisterType((*Cancel)(nil), "Cancel")
  2813  	proto.RegisterType((*PassphraseRequest)(nil), "PassphraseRequest")
  2814  	proto.RegisterType((*PassphraseAck)(nil), "PassphraseAck")
  2815  	proto.RegisterType((*GetEntropy)(nil), "GetEntropy")
  2816  	proto.RegisterType((*Entropy)(nil), "Entropy")
  2817  	proto.RegisterType((*GetPublicKey)(nil), "GetPublicKey")
  2818  	proto.RegisterType((*PublicKey)(nil), "PublicKey")
  2819  	proto.RegisterType((*GetAddress)(nil), "GetAddress")
  2820  	proto.RegisterType((*EthereumGetAddress)(nil), "EthereumGetAddress")
  2821  	proto.RegisterType((*Address)(nil), "Address")
  2822  	proto.RegisterType((*EthereumAddress)(nil), "EthereumAddress")
  2823  	proto.RegisterType((*WipeDevice)(nil), "WipeDevice")
  2824  	proto.RegisterType((*LoadDevice)(nil), "LoadDevice")
  2825  	proto.RegisterType((*ResetDevice)(nil), "ResetDevice")
  2826  	proto.RegisterType((*BackupDevice)(nil), "BackupDevice")
  2827  	proto.RegisterType((*EntropyRequest)(nil), "EntropyRequest")
  2828  	proto.RegisterType((*EntropyAck)(nil), "EntropyAck")
  2829  	proto.RegisterType((*RecoveryDevice)(nil), "RecoveryDevice")
  2830  	proto.RegisterType((*WordRequest)(nil), "WordRequest")
  2831  	proto.RegisterType((*WordAck)(nil), "WordAck")
  2832  	proto.RegisterType((*SignMessage)(nil), "SignMessage")
  2833  	proto.RegisterType((*VerifyMessage)(nil), "VerifyMessage")
  2834  	proto.RegisterType((*MessageSignature)(nil), "MessageSignature")
  2835  	proto.RegisterType((*EncryptMessage)(nil), "EncryptMessage")
  2836  	proto.RegisterType((*EncryptedMessage)(nil), "EncryptedMessage")
  2837  	proto.RegisterType((*DecryptMessage)(nil), "DecryptMessage")
  2838  	proto.RegisterType((*DecryptedMessage)(nil), "DecryptedMessage")
  2839  	proto.RegisterType((*CipherKeyValue)(nil), "CipherKeyValue")
  2840  	proto.RegisterType((*CipheredKeyValue)(nil), "CipheredKeyValue")
  2841  	proto.RegisterType((*EstimateTxSize)(nil), "EstimateTxSize")
  2842  	proto.RegisterType((*TxSize)(nil), "TxSize")
  2843  	proto.RegisterType((*SignTx)(nil), "SignTx")
  2844  	proto.RegisterType((*SimpleSignTx)(nil), "SimpleSignTx")
  2845  	proto.RegisterType((*TxRequest)(nil), "TxRequest")
  2846  	proto.RegisterType((*TxAck)(nil), "TxAck")
  2847  	proto.RegisterType((*EthereumSignTx)(nil), "EthereumSignTx")
  2848  	proto.RegisterType((*EthereumTxRequest)(nil), "EthereumTxRequest")
  2849  	proto.RegisterType((*EthereumTxAck)(nil), "EthereumTxAck")
  2850  	proto.RegisterType((*EthereumSignMessage)(nil), "EthereumSignMessage")
  2851  	proto.RegisterType((*EthereumVerifyMessage)(nil), "EthereumVerifyMessage")
  2852  	proto.RegisterType((*EthereumMessageSignature)(nil), "EthereumMessageSignature")
  2853  	proto.RegisterType((*SignIdentity)(nil), "SignIdentity")
  2854  	proto.RegisterType((*SignedIdentity)(nil), "SignedIdentity")
  2855  	proto.RegisterType((*GetECDHSessionKey)(nil), "GetECDHSessionKey")
  2856  	proto.RegisterType((*ECDHSessionKey)(nil), "ECDHSessionKey")
  2857  	proto.RegisterType((*SetU2FCounter)(nil), "SetU2FCounter")
  2858  	proto.RegisterType((*FirmwareErase)(nil), "FirmwareErase")
  2859  	proto.RegisterType((*FirmwareRequest)(nil), "FirmwareRequest")
  2860  	proto.RegisterType((*FirmwareUpload)(nil), "FirmwareUpload")
  2861  	proto.RegisterType((*SelfTest)(nil), "SelfTest")
  2862  	proto.RegisterType((*DebugLinkDecision)(nil), "DebugLinkDecision")
  2863  	proto.RegisterType((*DebugLinkGetState)(nil), "DebugLinkGetState")
  2864  	proto.RegisterType((*DebugLinkState)(nil), "DebugLinkState")
  2865  	proto.RegisterType((*DebugLinkStop)(nil), "DebugLinkStop")
  2866  	proto.RegisterType((*DebugLinkLog)(nil), "DebugLinkLog")
  2867  	proto.RegisterType((*DebugLinkMemoryRead)(nil), "DebugLinkMemoryRead")
  2868  	proto.RegisterType((*DebugLinkMemory)(nil), "DebugLinkMemory")
  2869  	proto.RegisterType((*DebugLinkMemoryWrite)(nil), "DebugLinkMemoryWrite")
  2870  	proto.RegisterType((*DebugLinkFlashErase)(nil), "DebugLinkFlashErase")
  2871  	proto.RegisterEnum("MessageType", MessageType_name, MessageType_value)
  2872  }
  2873  
  2874  func init() { proto.RegisterFile("messages.proto", fileDescriptor1) }
  2875  
  2876  var fileDescriptor1 = []byte{
  2877  //gzip文件描述符或协议的3424字节
  2878  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5a, 0xcb, 0x6f, 0xdc, 0x46,
  2879  	0x9a, 0x5f, 0x76, 0xb7, 0xfa, 0xf1, 0x35, 0xbb, 0x55, 0xa2, 0x2d, 0xbb, 0x2d, 0x5b, 0xb6, 0x4c,
  2880  	0xc9, 0xb6, 0x64, 0x27, 0xed, 0x44, 0x79, 0x6c, 0xd6, 0xbb, 0x79, 0xc8, 0x7a, 0xd8, 0xde, 0xd8,
  2881  	0x8e, 0xc0, 0x56, 0x9c, 0xdb, 0x12, 0x14, 0x59, 0xea, 0xae, 0x55, 0x37, 0xc9, 0xf0, 0xa1, 0xa8,
  2882  	0x7d, 0xd8, 0xeb, 0xee, 0x65, 0x81, 0xec, 0x69, 0x73, 0x1a, 0xe4, 0x36, 0x19, 0x04, 0x18, 0x0c,
  2883  	0x30, 0x18, 0x60, 0x72, 0x9a, 0x3f, 0x60, 0xfe, 0x8b, 0x39, 0xce, 0x1f, 0x30, 0xe7, 0x41, 0x3d,
  2884  	0x48, 0x16, 0x29, 0xb6, 0x6c, 0x27, 0xc0, 0x5c, 0x04, 0xd6, 0x57, 0xbf, 0xfe, 0xea, 0x7b, 0xd5,
  2885  	0x57, 0x5f, 0x7d, 0x25, 0xe8, 0x4e, 0x70, 0x18, 0x5a, 0x43, 0x1c, 0xf6, 0xfd, 0xc0, 0x8b, 0xbc,
  2886  	0xa5, 0x76, 0x34, 0xf5, 0x93, 0x81, 0xae, 0x02, 0x3c, 0x71, 0x49, 0x44, 0xac, 0x31, 0x79, 0x89,
  2887  	0xf5, 0x0e, 0xb4, 0x1f, 0xe1, 0x68, 0x0f, 0x5b, 0x51, 0x1c, 0xe0, 0x50, 0xff, 0x69, 0x0e, 0x9a,
  2888  	0xc9, 0x40, 0xbb, 0x04, 0xf5, 0x13, 0xec, 0x3a, 0x5e, 0xd0, 0x53, 0x56, 0x94, 0xf5, 0x96, 0x21,
  2889  	0x46, 0xda, 0x2a, 0x74, 0x26, 0xd6, 0x7f, 0x7a, 0x81, 0x79, 0x82, 0x83, 0x90, 0x78, 0x6e, 0xaf,
  2890  	0xb2, 0xa2, 0xac, 0x77, 0x0c, 0x95, 0x11, 0x5f, 0x70, 0x1a, 0x03, 0x11, 0x57, 0x02, 0x55, 0x05,
  2891  	0x88, 0x12, 0x25, 0x90, 0x6f, 0x45, 0xf6, 0x28, 0x05, 0xd5, 0x38, 0x88, 0x11, 0x13, 0xd0, 0x1d,
  2892  	0x98, 0x3f, 0xf4, 0xbc, 0x68, 0xec, 0x59, 0x0e, 0x0e, 0xcc, 0x89, 0xe7, 0xe0, 0xde, 0xdc, 0x8a,
  2893  	0xb2, 0xde, 0x34, 0xba, 0x19, 0xf9, 0x99, 0xe7, 0x60, 0xed, 0x2a, 0xb4, 0x1c, 0x7c, 0x42, 0x6c,
  2894  	0x6c, 0x12, 0xa7, 0x57, 0x67, 0x22, 0x37, 0x39, 0xe1, 0x89, 0xa3, 0xdd, 0x82, 0xae, 0x4f, 0x5c,
  2895  	0x93, 0xda, 0x00, 0xdb, 0x11, 0x5d, 0xab, 0xc1, 0x98, 0x74, 0x7c, 0xe2, 0xee, 0xa7, 0x44, 0xed,
  2896  	0x3d, 0x58, 0xf4, 0xad, 0x30, 0xf4, 0x47, 0x81, 0x15, 0x62, 0x19, 0xdd, 0x64, 0xe8, 0x8b, 0xd9,
  2897  	0xa4, 0xf4, 0xa3, 0x25, 0x68, 0x8e, 0x2d, 0x77, 0x18, 0x5b, 0x43, 0xdc, 0x6b, 0xf1, 0x75, 0x93,
  2898  	0xb1, 0x76, 0x11, 0xe6, 0xc6, 0xd6, 0x21, 0x1e, 0xf7, 0x80, 0x4d, 0xf0, 0x81, 0x76, 0x03, 0xe6,
  2899  	0x6c, 0x8f, 0xb8, 0x61, 0xaf, 0xbd, 0x52, 0x5d, 0x6f, 0x6f, 0xb6, 0xfa, 0xdb, 0x1e, 0x71, 0x0f,
  2900  	0xa6, 0x3e, 0x36, 0x38, 0x5d, 0x5b, 0x81, 0x36, 0x49, 0xbd, 0xe4, 0xf4, 0x54, 0xb6, 0xba, 0x4c,
  2901  	0xa2, 0x8b, 0x06, 0xf8, 0x84, 0x30, 0xb3, 0x75, 0x56, 0x94, 0x75, 0xd5, 0x48, 0xc7, 0x05, 0x93,
  2902  	0x8d, 0xac, 0x70, 0xd4, 0xeb, 0x32, 0x88, 0x64, 0xb2, 0xc7, 0x56, 0x38, 0xa2, 0x4c, 0xc8, 0xc4,
  2903  	0xf7, 0x82, 0x08, 0x3b, 0xbd, 0x79, 0xb6, 0x46, 0x3a, 0xd6, 0x96, 0x01, 0xa8, 0xc5, 0x6c, 0xcb,
  2904  	0x1e, 0x61, 0xa7, 0x87, 0xd8, 0x6c, 0xcb, 0x27, 0xee, 0x36, 0x23, 0x68, 0xf7, 0x60, 0x41, 0xb2,
  2905  	0x94, 0x40, 0x2d, 0x30, 0x14, 0xca, 0x26, 0x04, 0x78, 0x03, 0xd0, 0x11, 0x09, 0x26, 0xdf, 0x58,
  2906  	0x01, 0x35, 0x2a, 0x0e, 0xb1, 0x1b, 0xf5, 0x34, 0x86, 0x9d, 0x4f, 0xe8, 0xfb, 0x9c, 0xac, 0xdd,
  2907  	0x04, 0xd5, 0xc5, 0xd8, 0x09, 0xcd, 0x43, 0xcb, 0x3e, 0x8e, 0xfd, 0xde, 0x05, 0xae, 0x3a, 0xa3,
  2908  	0x3d, 0x64, 0x24, 0x6a, 0xd3, 0xa3, 0xb1, 0x35, 0x0c, 0x7b, 0x17, 0x59, 0xb8, 0xf0, 0x81, 0xde,
  2909  	0x05, 0x75, 0x7b, 0x8c, 0xad, 0x60, 0x80, 0x43, 0x6a, 0x04, 0xfd, 0x7f, 0x14, 0xe8, 0x6c, 0xf9,
  2910  	0xfe, 0x78, 0x3a, 0xc0, 0x51, 0x44, 0xdc, 0x61, 0x98, 0xf3, 0x93, 0x32, 0xcb, 0x4f, 0x15, 0xd9,
  2911  	0x4f, 0xb7, 0xa0, 0x1b, 0xd3, 0x38, 0x48, 0xf5, 0x61, 0x61, 0xdc, 0x34, 0x3a, 0x71, 0x88, 0xf7,
  2912  	0x53, 0xa2, 0x76, 0x1d, 0x60, 0xe4, 0x4d, 0x70, 0x68, 0x07, 0x18, 0xf3, 0x20, 0x56, 0x0d, 0x89,
  2913  	0xa2, 0xeb, 0x00, 0x4c, 0x92, 0x3d, 0x2a, 0x68, 0x26, 0xbe, 0x22, 0x8b, 0xbf, 0x0a, 0xad, 0xed,
  2914  	0x91, 0xe5, 0x0e, 0xf1, 0x3e, 0x71, 0xe9, 0xd6, 0x0b, 0xf0, 0xc4, 0x3b, 0xe1, 0x72, 0x36, 0x0d,
  2915  	0x31, 0xd2, 0x7f, 0xa3, 0x40, 0x6d, 0x9f, 0xb8, 0x43, 0xad, 0x07, 0x0d, 0xb1, 0xc9, 0x85, 0x26,
  2916  	0xc9, 0x90, 0xfa, 0xe5, 0x30, 0x8e, 0x22, 0x2f, 0x17, 0xeb, 0x15, 0xee, 0x17, 0x3e, 0x21, 0x45,
  2917  	0xee, 0xd9, 0x5d, 0x51, 0x7d, 0xa3, 0x5d, 0x51, 0x9b, 0xbd, 0x2b, 0xf4, 0x55, 0x68, 0x0c, 0x62,
  2918  	0xdb, 0xc6, 0x61, 0x38, 0x5b, 0x5a, 0x7d, 0x17, 0x1a, 0x7b, 0x16, 0x19, 0xc7, 0x01, 0xd6, 0x56,
  2919  	0xa0, 0x66, 0xd3, 0xcd, 0x4d, 0x11, 0xdd, 0x4d, 0xb5, 0x2f, 0xe8, 0x6c, 0x57, 0xb0, 0x19, 0x99,
  2920  	0x4d, 0x25, 0xcf, 0xe6, 0x73, 0xe8, 0x3c, 0x64, 0xba, 0x19, 0xf8, 0xeb, 0x18, 0x87, 0x91, 0x76,
  2921  	0x3b, 0xc7, 0x4c, 0xeb, 0xe7, 0x66, 0x25, 0x96, 0x1a, 0xd4, 0x1c, 0x2b, 0xb2, 0x04, 0x3f, 0xf6,
  2922  	0xad, 0xb7, 0xa1, 0xc5, 0xe1, 0x5b, 0xf6, 0xb1, 0xfe, 0x31, 0xa0, 0x7d, 0xe2, 0x3e, 0xb3, 0xa2,
  2923  	0x80, 0x9c, 0x26, 0xcc, 0x37, 0xa0, 0x46, 0x33, 0xaa, 0x60, 0xbe, 0xd8, 0x2f, 0x02, 0x38, 0x7f,
  2924  	0x0a, 0xd1, 0x57, 0x40, 0x4d, 0x67, 0xb7, 0xec, 0x63, 0x0d, 0x41, 0xd5, 0x27, 0x6e, 0x4f, 0x59,
  2925  	0xa9, 0xac, 0xb7, 0x0c, 0xfa, 0xa9, 0x37, 0xa1, 0xbe, 0x6d, 0xb9, 0x36, 0x1e, 0xeb, 0x17, 0x60,
  2926  	0x21, 0x8b, 0x29, 0xc1, 0x4a, 0xbf, 0x0f, 0x9d, 0x8c, 0x48, 0x39, 0x5c, 0x07, 0x90, 0xc2, 0x91,
  2927  	0x33, 0x92, 0x28, 0xfa, 0x0a, 0xc0, 0x23, 0x1c, 0xed, 0xba, 0x51, 0xe0, 0xf9, 0x53, 0xaa, 0x5f,
  2928  	0x48, 0x5e, 0x72, 0x5c, 0xc7, 0x60, 0xdf, 0xd4, 0x31, 0xc9, 0x74, 0x0f, 0x1a, 0x98, 0x7f, 0x32,
  2929  	0x84, 0x6a, 0x24, 0x43, 0xfd, 0x57, 0x0a, 0xa8, 0x8f, 0x70, 0xb4, 0x1f, 0x1f, 0x8e, 0x89, 0xfd,
  2930  	0x39, 0x9e, 0xd2, 0xec, 0x6a, 0x39, 0x4e, 0x80, 0xc3, 0xd0, 0xa4, 0xf2, 0x57, 0xd7, 0x3b, 0x46,
  2931  	0x53, 0x10, 0x9e, 0x6b, 0xeb, 0x80, 0xb0, 0xed, 0x84, 0x96, 0x69, 0xc7, 0xc1, 0x09, 0x36, 0x5d,
  2932  	0x6b, 0x92, 0xb8, 0xa8, 0xcb, 0xe8, 0xdb, 0x94, 0xfc, 0xdc, 0x9a, 0x60, 0xba, 0xbd, 0xc3, 0x91,
  2933  	0xf7, 0x8d, 0xe9, 0x90, 0xd0, 0x1f, 0x5b, 0x53, 0x11, 0x6f, 0x6d, 0x4a, 0xdb, 0xe1, 0x24, 0x6d,
  2934  	0x0d, 0x5a, 0x34, 0x09, 0x72, 0x2e, 0x34, 0xc2, 0x5a, 0x0f, 0x1a, 0x0f, 0x49, 0x44, 0x69, 0x46,
  2935  	0x93, 0xfe, 0xa5, 0x8c, 0xf4, 0xcf, 0xa0, 0x95, 0x09, 0x77, 0x03, 0x6a, 0x2e, 0x77, 0x77, 0x65,
  2936  	0xbd, 0xbd, 0xd9, 0xee, 0x3f, 0xde, 0x79, 0xee, 0x39, 0x22, 0x74, 0x5c, 0xe1, 0xe7, 0x53, 0x3f,
  2937  	0x3e, 0x4c, 0xfc, 0x4c, 0xbf, 0xf5, 0xbf, 0x2a, 0xcc, 0x54, 0x5b, 0x5c, 0x89, 0xf3, 0x15, 0xcc,
  2938  	0xc9, 0x54, 0x99, 0x21, 0xd3, 0xeb, 0x28, 0xf7, 0x01, 0x34, 0x27, 0xf1, 0x38, 0x22, 0x21, 0x19,
  2939  	0x32, 0xdd, 0xda, 0x9b, 0x57, 0xfa, 0xcf, 0x04, 0xc1, 0xc0, 0x0e, 0xc6, 0x93, 0x81, 0x1d, 0x10,
  2940  	0x9f, 0xc7, 0x50, 0x0a, 0xd5, 0x3e, 0x85, 0x76, 0xc8, 0xe8, 0x26, 0x8b, 0xbc, 0x39, 0x16, 0x79,
  2941  	0xa8, 0xff, 0xc4, 0xf5, 0xe3, 0x28, 0xfb, 0xc1, 0x03, 0x75, 0xb0, 0xbf, 0xfb, 0x7c, 0x67, 0x6b,
  2942  	0x67, 0xc7, 0xd8, 0x1d, 0x0c, 0x0c, 0x08, 0xd3, 0x19, 0xfd, 0x00, 0xb4, 0xdd, 0x68, 0x84, 0x03,
  2943  	0x1c, 0x4f, 0x5e, 0x57, 0xe7, 0xa2, 0x36, 0x95, 0x33, 0xda, 0xd0, 0x50, 0x4a, 0x58, 0xf5, 0xa0,
  2944  	0x21, 0x7e, 0x29, 0x82, 0x32, 0x19, 0xea, 0xf7, 0x60, 0x3e, 0x59, 0x7a, 0x06, 0x58, 0xcd, 0xc0,
  2945  	0x2a, 0xc0, 0x57, 0xc4, 0xc7, 0x3b, 0xec, 0xdc, 0xd6, 0xff, 0xaf, 0x02, 0xf0, 0xd4, 0xb3, 0x1c,
  2946  	0x3e, 0xa4, 0x09, 0x7c, 0xe2, 0xe2, 0x89, 0xe7, 0x12, 0x3b, 0x49, 0xe0, 0xc9, 0x38, 0x0d, 0x81,
  2947  	0x0a, 0x33, 0x6a, 0x49, 0x08, 0x88, 0xad, 0x57, 0x65, 0xbf, 0xa3, 0x9f, 0x3f, 0x2b, 0xad, 0x69,
  2948  	0xab, 0xd2, 0x21, 0x32, 0xc7, 0x03, 0x01, 0xbb, 0xc3, 0x31, 0x09, 0x47, 0x65, 0xa7, 0x49, 0x5d,
  2949  	0x3e, 0x4d, 0x56, 0xa1, 0x13, 0x1e, 0x13, 0xdf, 0xb4, 0x47, 0xd8, 0x3e, 0x0e, 0xe3, 0x89, 0x28,
  2950  	0x41, 0x54, 0x4a, 0xdc, 0x16, 0x34, 0xed, 0x06, 0xb4, 0xe3, 0xcd, 0x23, 0xd3, 0xf6, 0x62, 0x37,
  2951  	0xc2, 0x01, 0xab, 0x3b, 0x3a, 0x06, 0xc4, 0x9b, 0x47, 0xdb, 0x9c, 0xa2, 0xff, 0xb6, 0x02, 0x6d,
  2952  	0x03, 0x87, 0x38, 0x12, 0x46, 0xb9, 0x05, 0x5d, 0xe1, 0x21, 0x33, 0xb0, 0x5c, 0xc7, 0x9b, 0x88,
  2953  	0x33, 0xa3, 0x23, 0xa8, 0x06, 0x23, 0x6a, 0x37, 0xa0, 0x19, 0x46, 0x01, 0x76, 0x87, 0xd1, 0x88,
  2954  	0x17, 0x6c, 0x0f, 0xaa, 0x9b, 0x1f, 0x7c, 0x68, 0xa4, 0xc4, 0xd9, 0xd6, 0xa8, 0x9e, 0x63, 0x8d,
  2955  	0xb3, 0x07, 0x48, 0xad, 0xec, 0x00, 0xf9, 0x05, 0x46, 0x2b, 0xd8, 0xa3, 0x51, 0xb4, 0x07, 0x05,
  2956  	0x30, 0xab, 0x8a, 0x7a, 0x81, 0x17, 0x6a, 0x40, 0x49, 0xbc, 0x5c, 0xa0, 0x85, 0x01, 0xff, 0x12,
  2957  	0x41, 0x85, 0xa0, 0x2b, 0xf2, 0x5f, 0x92, 0x64, 0x6f, 0x03, 0x08, 0x0a, 0xcd, 0xb0, 0xb9, 0xa4,
  2958  	0xa8, 0xc8, 0x49, 0xf1, 0x4f, 0x15, 0xe8, 0x1a, 0xd8, 0xf6, 0x4e, 0x70, 0x30, 0x15, 0xd6, 0x5f,
  2959  	0x06, 0xf8, 0xc6, 0x0b, 0x1c, 0x2e, 0x9f, 0x38, 0xd1, 0x5b, 0x94, 0xc2, 0xc4, 0x9b, 0x6d, 0xd4,
  2960  	0xca, 0x1b, 0x19, 0xb5, 0xfa, 0x2a, 0xa3, 0xd6, 0x5e, 0x69, 0xd4, 0x39, 0xd9, 0xa8, 0x1b, 0x80,
  2961  	0xb0, 0x7b, 0xe4, 0x05, 0x36, 0x36, 0xa9, 0xac, 0x63, 0x12, 0x46, 0xcc, 0xea, 0x4d, 0x63, 0x5e,
  2962  	0xd0, 0xbf, 0x12, 0x64, 0x9a, 0x39, 0x59, 0xca, 0xe1, 0x81, 0xc8, 0xbe, 0x8b, 0x3e, 0x69, 0x9d,
  2963  	0xf1, 0xc9, 0x65, 0x68, 0x38, 0xc1, 0xd4, 0x0c, 0x62, 0x97, 0xd5, 0xbd, 0x4d, 0xa3, 0xee, 0x04,
  2964  	0x53, 0x23, 0x76, 0xf5, 0xf7, 0xa0, 0x4d, 0x39, 0x27, 0x27, 0xe9, 0x5a, 0xee, 0x24, 0x45, 0x7d,
  2965  	0x69, 0x4e, 0x3a, 0x44, 0x97, 0xa1, 0x41, 0x27, 0xa8, 0x6f, 0x34, 0xa8, 0x51, 0x81, 0x45, 0x8a,
  2966  	0x61, 0xdf, 0xfa, 0x8f, 0x0a, 0xb4, 0x07, 0x64, 0xe8, 0x3e, 0x13, 0x15, 0xd0, 0xb9, 0x49, 0x2d,
  2967  	0x57, 0x43, 0xb0, 0xcc, 0x93, 0x14, 0x4e, 0xb9, 0x14, 0x5f, 0x9d, 0x95, 0xe2, 0x0b, 0x89, 0xb8,
  2968  	0xf6, 0xc6, 0x89, 0xf8, 0xbf, 0x15, 0xe8, 0xbc, 0xc0, 0x01, 0x39, 0x9a, 0x26, 0xf2, 0xe6, 0x92,
  2969  	0xa1, 0x22, 0x65, 0x4e, 0xed, 0x1a, 0xb4, 0x42, 0x32, 0x74, 0xd9, 0x7d, 0x8c, 0x45, 0x8c, 0x6a,
  2970  	0x64, 0x04, 0x59, 0x95, 0x2a, 0x8f, 0xd3, 0x52, 0x55, 0x66, 0x9e, 0xa0, 0xff, 0x0e, 0x48, 0x88,
  2971  	0x30, 0x90, 0x79, 0xfe, 0x1c, 0x59, 0xf4, 0x1f, 0x14, 0xba, 0xa9, 0xec, 0x60, 0xea, 0x47, 0x89,
  2972  	0x5a, 0x97, 0xa0, 0xee, 0xc7, 0x87, 0xc7, 0x38, 0xd9, 0x45, 0x62, 0x54, 0xac, 0xe2, 0x24, 0xb1,
  2973  	0x6f, 0x82, 0x9a, 0x64, 0x32, 0xcf, 0x1d, 0xa7, 0xc7, 0xa7, 0xa0, 0x7d, 0xe1, 0x8e, 0x0b, 0x55,
  2974  	0x48, 0xed, 0xbc, 0x43, 0x7a, 0x6e, 0x96, 0xda, 0x2f, 0x00, 0x09, 0x49, 0xb1, 0x93, 0xc8, 0x7a,
  2975  	0x11, 0xe6, 0x5c, 0xcf, 0xb5, 0xb1, 0x10, 0x95, 0x0f, 0xce, 0x91, 0x54, 0x83, 0xda, 0x68, 0x62,
  2976  	0xd9, 0xc2, 0xee, 0xec, 0x5b, 0xff, 0x1a, 0xba, 0x3b, 0x38, 0x67, 0x81, 0x73, 0x03, 0x31, 0x5d,
  2977  	0xb2, 0x32, 0x63, 0xc9, 0x6a, 0xf9, 0x92, 0x35, 0x69, 0xc9, 0x3d, 0x40, 0x62, 0xc9, 0x4c, 0x95,
  2978  	0x42, 0xad, 0x2d, 0x71, 0x90, 0x7c, 0x5b, 0xc9, 0xf9, 0x56, 0xff, 0xb3, 0x02, 0xdd, 0x6d, 0xe2,
  2979  	0x8f, 0x70, 0xf0, 0x39, 0x9e, 0xbe, 0xb0, 0xc6, 0xf1, 0x2b, 0x64, 0x47, 0x50, 0xa5, 0x7e, 0xe5,
  2980  	0x5c, 0xe8, 0x27, 0xd5, 0xe6, 0x84, 0xfe, 0x4e, 0x48, 0xcd, 0x07, 0x3c, 0x93, 0x32, 0xf9, 0xc4,
  2981  	0xb1, 0x90, 0x0c, 0xb5, 0x35, 0xe8, 0x5a, 0xe1, 0xb1, 0xe9, 0xb9, 0x66, 0x02, 0xe0, 0x77, 0x7a,
  2982  	0xd5, 0x0a, 0x8f, 0xbf, 0x70, 0x77, 0xcf, 0xa0, 0x1c, 0xae, 0xa6, 0x48, 0x52, 0x1c, 0x25, 0x54,
  2983  	0xd7, 0xba, 0x50, 0x21, 0x27, 0xec, 0x60, 0x50, 0x8d, 0x0a, 0x39, 0xd1, 0xd7, 0x01, 0x71, 0x65,
  2984  	0xb0, 0x93, 0xaa, 0x93, 0xca, 0xa7, 0x48, 0xf2, 0xe9, 0xff, 0x05, 0xdd, 0xdd, 0x30, 0x22, 0x13,
  2985  	0x2b, 0xc2, 0x07, 0xa7, 0x03, 0xf2, 0x12, 0xd3, 0x23, 0xda, 0x8b, 0x23, 0x3f, 0x8e, 0xc2, 0x34,
  2986  	0xa3, 0xd3, 0xc2, 0x59, 0x15, 0x44, 0x9e, 0xd4, 0x6f, 0x82, 0x4a, 0x5c, 0x09, 0x53, 0x61, 0x98,
  2987  	0x36, 0xa7, 0x71, 0xc8, 0x6b, 0x25, 0x13, 0xfd, 0x26, 0xd4, 0xc5, 0xba, 0x97, 0xa1, 0x11, 0x9d,
  2988  	0x9a, 0xa2, 0x54, 0xa7, 0xd9, 0xb4, 0x1e, 0xb1, 0x09, 0xfd, 0xf7, 0x0a, 0xd4, 0xe9, 0xf6, 0x3c,
  2989  	0x38, 0xfd, 0xc7, 0xca, 0xa6, 0x5d, 0x85, 0x46, 0xae, 0x2b, 0xf3, 0x40, 0x79, 0xd7, 0x48, 0x28,
  2990  	0xda, 0x75, 0x68, 0x8d, 0x3d, 0xfb, 0xd8, 0x8c, 0x88, 0xd8, 0x69, 0x9d, 0x07, 0xca, 0x3b, 0x46,
  2991  	0x93, 0xd2, 0x0e, 0xc8, 0x04, 0xeb, 0x7f, 0x53, 0x40, 0x1d, 0x90, 0x89, 0x3f, 0xc6, 0x42, 0xf6,
  2992  	0x35, 0xa8, 0x73, 0x11, 0x58, 0x2c, 0xb5, 0x37, 0xd5, 0xfe, 0xc1, 0x29, 0xcb, 0x99, 0x2c, 0xcd,
  2993  	0x8b, 0x39, 0xed, 0x0e, 0x34, 0x84, 0x32, 0xbd, 0x0a, 0x83, 0x75, 0xfa, 0x07, 0xa7, 0x5f, 0x30,
  2994  	0x0a, 0xc3, 0x25, 0xb3, 0xda, 0xfb, 0xa0, 0x46, 0x81, 0xe5, 0x86, 0x16, 0x3b, 0x09, 0xc3, 0x5e,
  2995  	0x95, 0xa1, 0x51, 0xff, 0x20, 0x23, 0xb2, 0x1f, 0xe4, 0x50, 0xaf, 0x97, 0x16, 0x65, 0xc5, 0xe7,
  2996  	0xce, 0x57, 0xbc, 0x7e, 0x56, 0xf1, 0x5f, 0x2b, 0xd0, 0x3a, 0x48, 0x2f, 0x8a, 0xf7, 0x41, 0x0d,
  2997  	0xf8, 0xa7, 0x29, 0x1d, 0x73, 0x6a, 0x5f, 0x3e, 0xe2, 0xda, 0x41, 0x36, 0xd0, 0xee, 0x43, 0xc3,
  2998  	0xc1, 0x91, 0x45, 0xc6, 0xa1, 0xa8, 0x63, 0x17, 0xfb, 0x29, 0xb7, 0x1d, 0x3e, 0xc1, 0x0d, 0x21,
  2999  	0x50, 0xda, 0x47, 0x00, 0x21, 0x0e, 0x92, 0x36, 0x51, 0x95, 0xfd, 0xa6, 0x97, 0xfd, 0x66, 0x90,
  3000  	0xce, 0xb1, 0x9f, 0x49, 0x58, 0x7d, 0x03, 0xe6, 0x0e, 0xd8, 0x95, 0x74, 0x05, 0x2a, 0xd1, 0x29,
  3001  	0x13, 0xad, 0xcc, 0x82, 0x95, 0xe8, 0x54, 0xff, 0xdf, 0x0a, 0x74, 0x93, 0x0a, 0x5e, 0xf8, 0xf3,
  3002  	0x67, 0xa4, 0xb6, 0xab, 0xd0, 0x1a, 0x5a, 0xa1, 0xe9, 0x07, 0xc4, 0x4e, 0xd2, 0x44, 0x73, 0x68,
  3003  	0x85, 0xfb, 0x74, 0x9c, 0x4c, 0x8e, 0xc9, 0x84, 0x44, 0x22, 0xc5, 0xd1, 0xc9, 0xa7, 0x74, 0x4c,
  3004  	0x37, 0x78, 0xe4, 0x31, 0x67, 0xa8, 0x46, 0x25, 0xf2, 0xb2, 0xcd, 0x5c, 0x97, 0x93, 0xcd, 0x5b,
  3005  	0xa0, 0xd1, 0xeb, 0xbb, 0x29, 0x9a, 0x64, 0xa6, 0x3d, 0x8a, 0xdd, 0x63, 0x91, 0x16, 0x10, 0x9d,
  3006  	0x11, 0x6d, 0xcf, 0x6d, 0x4a, 0xa7, 0x25, 0x0c, 0x43, 0x8f, 0x79, 0x45, 0x2c, 0xca, 0x6c, 0x4a,
  3007  	0x7a, 0xca, 0xcb, 0xe1, 0x2b, 0xd0, 0xb4, 0x47, 0x16, 0x71, 0x4d, 0xe2, 0x88, 0x02, 0xa7, 0xc1,
  3008  	0xc6, 0x4f, 0x1c, 0xfd, 0xff, 0x15, 0x58, 0x48, 0xec, 0x91, 0x39, 0xbb, 0xc0, 0x51, 0x39, 0xc3,
  3009  	0x91, 0x16, 0xaa, 0xc9, 0x81, 0x69, 0x9e, 0x88, 0xae, 0x29, 0xa4, 0xa4, 0x17, 0x79, 0x40, 0x20,
  3010  	0x6c, 0x94, 0x01, 0x8c, 0x3c, 0x20, 0x4c, 0x1a, 0x4d, 0x29, 0x69, 0xa0, 0xf7, 0xa1, 0x93, 0x09,
  3011  	0x46, 0x9d, 0xbb, 0x0c, 0x4c, 0x02, 0x61, 0x0c, 0x9e, 0xfc, 0x5a, 0x94, 0xc2, 0xac, 0xa0, 0x3f,
  3012  	0x85, 0x0b, 0xb2, 0x63, 0x7f, 0x59, 0x05, 0xa5, 0x13, 0x58, 0x4c, 0xb8, 0x9d, 0x5b, 0xe1, 0xa8,
  3013  	0xbf, 0xb8, 0xc2, 0xd1, 0x0d, 0xe8, 0x25, 0x4b, 0xbd, 0xaa, 0x86, 0x79, 0xdd, 0xd5, 0xf4, 0x9f,
  3014  	0x58, 0xd2, 0x1a, 0xba, 0x4f, 0x1c, 0xec, 0x46, 0x24, 0x9a, 0x6a, 0x1b, 0xd0, 0x24, 0xe2, 0x5b,
  3015  	0xec, 0x8f, 0x4e, 0x3f, 0x99, 0xe4, 0xf7, 0x73, 0x92, 0x41, 0x91, 0x3d, 0xb2, 0xc6, 0xd4, 0xf7,
  3016  	0xd8, 0x1c, 0x11, 0xc7, 0xc1, 0xae, 0x58, 0x60, 0x3e, 0xa5, 0x3f, 0x66, 0xe4, 0x3c, 0xf4, 0x84,
  3017  	0x84, 0xb1, 0x35, 0x16, 0x97, 0xd2, 0x0c, 0xfa, 0x82, 0x91, 0x4b, 0xdb, 0x2a, 0xb5, 0xb2, 0xb6,
  3018  	0x8a, 0x3e, 0x84, 0x2e, 0x15, 0x1d, 0x3b, 0xa9, 0xf0, 0xb3, 0x2b, 0xb9, 0x65, 0x00, 0x9f, 0x75,
  3019  	0x4e, 0xcc, 0xe4, 0x10, 0x57, 0x8d, 0x96, 0x9f, 0xf6, 0x52, 0x72, 0x46, 0xaa, 0x16, 0x8d, 0xf4,
  3020  	0xad, 0x02, 0x0b, 0x8f, 0x70, 0xb4, 0xbb, 0xbd, 0xf3, 0x58, 0x34, 0x5a, 0xe9, 0x6f, 0xde, 0xc0,
  3021  	0x52, 0xb7, 0x61, 0xde, 0xc7, 0x38, 0x30, 0xcf, 0x88, 0xd0, 0xa1, 0xe4, 0xac, 0xa5, 0x53, 0xa6,
  3022  	0x7b, 0xb5, 0x54, 0xf7, 0x77, 0xa1, 0x5b, 0x10, 0x87, 0xee, 0x13, 0x3e, 0x32, 0xb3, 0xfa, 0x13,
  3023  	0xc2, 0x14, 0xa0, 0xbf, 0x03, 0x9d, 0x01, 0x8e, 0xbe, 0xdc, 0xdc, 0x93, 0x2e, 0x91, 0xf2, 0x8d,
  3024  	0x46, 0x39, 0x73, 0xeb, 0xbe, 0x03, 0x9d, 0x3d, 0xd1, 0xa9, 0xde, 0x65, 0x3d, 0xdf, 0x4b, 0x50,
  3025  	0xcf, 0xed, 0x74, 0x31, 0xd2, 0xb7, 0x60, 0x3e, 0x01, 0x26, 0x99, 0xe1, 0x12, 0xd4, 0xbd, 0xa3,
  3026  	0xa3, 0x10, 0x27, 0xf7, 0x43, 0x31, 0x92, 0x58, 0x54, 0x72, 0x2c, 0x3e, 0x81, 0x6e, 0xc2, 0xe2,
  3027  	0x4b, 0x7f, 0xec, 0x59, 0x0e, 0x75, 0xa6, 0x6f, 0x4d, 0xe9, 0x67, 0xd2, 0x2f, 0x11, 0x43, 0x56,
  3028  	0x16, 0x5a, 0xe1, 0x48, 0xd8, 0x90, 0x7d, 0xeb, 0x6b, 0xd0, 0x1c, 0xe0, 0xf1, 0xd1, 0x01, 0x5d,
  3029  	0x3b, 0xf7, 0x4b, 0x45, 0xfa, 0xa5, 0x7e, 0x17, 0x16, 0x76, 0xf0, 0x61, 0x3c, 0x7c, 0x4a, 0xdc,
  3030  	0xe3, 0x1d, 0x6c, 0xf3, 0x97, 0x83, 0x45, 0xa8, 0x4f, 0x71, 0x68, 0xba, 0x1e, 0x5b, 0xa7, 0x69,
  3031  	0xcc, 0x4d, 0x71, 0xf8, 0xdc, 0xd3, 0x2f, 0x48, 0xd8, 0x47, 0x38, 0x1a, 0x44, 0x56, 0x84, 0xf5,
  3032  	0xbf, 0x54, 0x68, 0xc5, 0x2b, 0xa8, 0x8c, 0xc4, 0x34, 0xb2, 0xa6, 0x5e, 0x1c, 0x25, 0x35, 0x3f,
  3033  	0x1f, 0x25, 0xbd, 0x97, 0x4a, 0xd6, 0x7b, 0xb9, 0x04, 0xf5, 0x09, 0xeb, 0x8a, 0x0a, 0xa7, 0x8a,
  3034  	0x51, 0xae, 0xc5, 0x53, 0x9b, 0xd1, 0xe2, 0x99, 0x9b, 0xd5, 0xe2, 0x99, 0x79, 0xdb, 0xae, 0x9f,
  3035  	0x73, 0xdb, 0x5e, 0x06, 0x08, 0x70, 0x88, 0x23, 0x76, 0x13, 0x66, 0xe7, 0x45, 0xcb, 0x68, 0x31,
  3036  	0x0a, 0xbd, 0x74, 0xd2, 0xaa, 0x8b, 0x4f, 0x27, 0x3d, 0x81, 0x26, 0xd3, 0x4c, 0x65, 0xc4, 0xa4,
  3037  	0x8f, 0xfa, 0x16, 0x68, 0x81, 0xe8, 0x0b, 0x98, 0x47, 0xd6, 0x31, 0xbf, 0x55, 0x8b, 0xb7, 0x20,
  3038  	0x94, 0xcc, 0xec, 0x59, 0xc7, 0xec, 0x5a, 0xad, 0xdd, 0x85, 0x85, 0x14, 0xcd, 0x9a, 0x07, 0xbe,
  3039  	0x17, 0xb2, 0x7b, 0x72, 0xc7, 0x98, 0x4f, 0x26, 0x28, 0x70, 0xdf, 0x0b, 0xf5, 0x79, 0xe8, 0x48,
  3040  	0x36, 0xf6, 0x7c, 0x7d, 0x1f, 0xd4, 0x94, 0xf0, 0xd4, 0x1b, 0xb2, 0x0b, 0x3e, 0x3e, 0xc1, 0xe3,
  3041  	0xe4, 0x35, 0x81, 0x0d, 0xa8, 0x79, 0x0f, 0x63, 0xfb, 0x18, 0x47, 0xc2, 0xe6, 0x62, 0xc4, 0x6e,
  3042  	0xf3, 0xf8, 0x34, 0x12, 0x46, 0x67, 0xdf, 0xfa, 0x23, 0xb8, 0x90, 0x72, 0x7c, 0x86, 0x27, 0x5e,
  3043  	0x30, 0x35, 0x30, 0x8f, 0x39, 0x39, 0x81, 0x74, 0xb2, 0x04, 0x32, 0x2b, 0x6e, 0x37, 0x60, 0xbe,
  3044  	0xc0, 0x88, 0xb9, 0x99, 0x7d, 0x25, 0x01, 0xc1, 0x47, 0xfa, 0x7f, 0xc0, 0xc5, 0x02, 0xf4, 0xab,
  3045  	0x80, 0x44, 0xf8, 0xfc, 0x45, 0x05, 0xa7, 0x8a, 0xcc, 0x49, 0xbc, 0xa6, 0x84, 0x23, 0x71, 0x5b,
  3046  	0xe4, 0x03, 0xfd, 0x6d, 0x49, 0xa7, 0x3d, 0x4a, 0x49, 0x37, 0x6d, 0x88, 0xed, 0xc8, 0x4b, 0x76,
  3047  	0xb8, 0x18, 0xdd, 0xfd, 0x71, 0x11, 0xda, 0xe2, 0x1c, 0x61, 0x75, 0xd8, 0x0a, 0x5c, 0x92, 0x86,
  3048  	0x66, 0xf6, 0x60, 0x8a, 0xfe, 0x69, 0xa9, 0xf6, 0xed, 0x1f, 0x7a, 0x8a, 0xb6, 0x94, 0x5e, 0x9e,
  3049  	0x19, 0x62, 0x9f, 0xb8, 0x43, 0xa4, 0x88, 0xb9, 0x65, 0xb8, 0x20, 0xcf, 0x89, 0x57, 0x10, 0x54,
  3050  	0x59, 0xaa, 0x7d, 0x57, 0x32, 0x2d, 0xde, 0x39, 0x50, 0x55, 0x4c, 0xdf, 0x80, 0x45, 0x79, 0x3a,
  3051  	0x7d, 0x14, 0x42, 0x35, 0xc1, 0xbe, 0x20, 0x5c, 0xd6, 0x2e, 0x45, 0x73, 0x02, 0x71, 0x07, 0xae,
  3052  	0xe4, 0x56, 0x90, 0x13, 0x17, 0xaa, 0x2f, 0x35, 0x29, 0xe8, 0x8f, 0x14, 0xb8, 0x0e, 0x4b, 0x65,
  3053  	0x40, 0x9e, 0x75, 0x50, 0x43, 0x42, 0x6e, 0xc0, 0xd5, 0x32, 0xa4, 0x48, 0x71, 0xa8, 0xb9, 0xd4,
  3054  	0xfc, 0x2e, 0x81, 0x16, 0xe4, 0xcb, 0x5e, 0x23, 0x50, 0xab, 0xdc, 0x40, 0xc9, 0x34, 0x08, 0x0b,
  3055  	0xe8, 0xd0, 0x2b, 0x30, 0x48, 0x8f, 0x05, 0xd4, 0x16, 0x2c, 0x0a, 0x56, 0xca, 0x00, 0xaa, 0x60,
  3056  	0x52, 0x90, 0x22, 0xeb, 0x22, 0xa3, 0x8e, 0x60, 0x71, 0x13, 0x2e, 0xcb, 0x08, 0xa9, 0xa7, 0x8a,
  3057  	0xba, 0x02, 0x72, 0x0d, 0xb4, 0x9c, 0x27, 0x59, 0xf1, 0x8b, 0xe6, 0xc5, 0xec, 0x5a, 0x5e, 0x4e,
  3058  	0xf9, 0xc2, 0x83, 0xd0, 0x52, 0x9d, 0x62, 0x9a, 0x8a, 0x76, 0x1d, 0x2e, 0xe6, 0x2c, 0x27, 0x9e,
  3059  	0xd7, 0xd1, 0x82, 0x10, 0xf4, 0x36, 0x5c, 0x2b, 0x44, 0x52, 0xee, 0x31, 0x09, 0x69, 0x29, 0xae,
  3060  	0x57, 0x8a, 0xdb, 0xb2, 0x8f, 0xd1, 0x05, 0xee, 0xa9, 0xdf, 0x95, 0xc8, 0xcc, 0x1f, 0x97, 0xd0,
  3061  	0xc5, 0x72, 0xbb, 0xa5, 0xe5, 0x2b, 0x5a, 0x14, 0xcb, 0x5c, 0x85, 0x85, 0x3c, 0x80, 0xf2, 0xbf,
  3062  	0x94, 0x6a, 0x9c, 0x8b, 0x97, 0x7c, 0xcf, 0x00, 0x5d, 0x16, 0xa8, 0x82, 0xff, 0xe4, 0x57, 0x59,
  3063  	0xd4, 0x13, 0x98, 0xd5, 0x7c, 0x88, 0xe6, 0x1e, 0x6a, 0xd1, 0x95, 0x72, 0x50, 0xee, 0x11, 0x0f,
  3064  	0x2d, 0x09, 0x81, 0x57, 0xf3, 0x1a, 0xa5, 0x4f, 0x77, 0xe8, 0xaa, 0x64, 0x94, 0x42, 0x34, 0x64,
  3065  	0xaf, 0xb1, 0xe8, 0x5a, 0xf9, 0xae, 0xca, 0x1e, 0x49, 0xd0, 0x72, 0x79, 0xd4, 0x26, 0xd3, 0xd7,
  3066  	0xd3, 0xa8, 0xcd, 0xf9, 0x39, 0x39, 0x81, 0xd1, 0x8a, 0xb4, 0x8b, 0x0a, 0x96, 0x91, 0xdb, 0xd2,
  3067  	0x48, 0x2f, 0xb7, 0x71, 0xbe, 0x55, 0x8d, 0x56, 0xcb, 0xc3, 0x3b, 0x6b, 0x5f, 0xa3, 0xb5, 0xf2,
  3068  	0xf0, 0x96, 0xea, 0x7b, 0x74, 0xbb, 0xdc, 0xbe, 0xb9, 0xa2, 0x1d, 0xdd, 0x11, 0xa0, 0x42, 0x7c,
  3069  	0x16, 0xcb, 0x6d, 0xb4, 0x2e, 0x24, 0xba, 0x03, 0xcb, 0xb9, 0xf8, 0x2c, 0x3e, 0x65, 0xa2, 0x8d,
  3070  	0x14, 0x78, 0xa5, 0x1c, 0x48, 0xa5, 0xbf, 0x2b, 0x39, 0xed, 0x76, 0xc1, 0x12, 0xb9, 0x56, 0x0d,
  3071  	0xba, 0x27, 0xed, 0x30, 0x2d, 0x1f, 0xb2, 0x6c, 0xfe, 0xad, 0xa5, 0xfa, 0x77, 0x7c, 0xbe, 0x60,
  3072  	0xd1, 0x7c, 0x07, 0x1f, 0xbd, 0x5d, 0x6e, 0x2f, 0xa9, 0x15, 0x8d, 0xfa, 0xe5, 0x99, 0x5b, 0x34,
  3073  	0xa5, 0xd1, 0xfd, 0x72, 0x4b, 0x15, 0x9b, 0x50, 0xe8, 0x9d, 0x74, 0x27, 0x17, 0x3c, 0x2c, 0x77,
  3074  	0x0d, 0xd1, 0xbb, 0xa9, 0x5e, 0xeb, 0x79, 0x7e, 0xc5, 0xae, 0x25, 0xda, 0x4c, 0x35, 0x2c, 0x70,
  3075  	0xcc, 0xf7, 0x21, 0xd1, 0x7b, 0xb3, 0x38, 0x16, 0x9b, 0x87, 0xe8, 0xfd, 0x94, 0xa3, 0x5e, 0xcc,
  3076  	0x6d, 0xd9, 0xbd, 0x08, 0x7d, 0x50, 0x1e, 0xa9, 0xf9, 0x0b, 0x08, 0xfa, 0x50, 0x68, 0x5b, 0xb0,
  3077  	0xab, 0xf4, 0xef, 0x46, 0xe8, 0x9f, 0x05, 0xa3, 0x75, 0xb8, 0x9e, 0x53, 0xf4, 0xcc, 0x43, 0x25,
  3078  	0xfa, 0x48, 0x20, 0x6f, 0xe5, 0x8f, 0xa1, 0xc2, 0xbb, 0x22, 0xfa, 0x17, 0xb1, 0x66, 0x71, 0x0f,
  3079  	0xe5, 0x9a, 0x17, 0xe8, 0x41, 0x7a, 0x4c, 0x2e, 0x97, 0xa1, 0xb2, 0x9c, 0xf8, 0xaf, 0x69, 0x8a,
  3080  	0xb9, 0x52, 0x0e, 0xa4, 0xde, 0xff, 0xb7, 0x72, 0x6e, 0x67, 0x2e, 0x49, 0xe8, 0xe3, 0x19, 0x1b,
  3081  	0x3c, 0x8f, 0xfa, 0xa4, 0x7c, 0xcd, 0xdc, 0x75, 0x05, 0x7d, 0x2a, 0x58, 0x6d, 0xc0, 0x8d, 0x59,
  3082  	0x7a, 0x26, 0x2e, 0xfd, 0x4c, 0x40, 0xef, 0xc1, 0xcd, 0x32, 0x68, 0x7e, 0xcf, 0x6f, 0x09, 0x70,
  3083  	0x1f, 0xd6, 0xca, 0xc0, 0x67, 0xf6, 0xfe, 0x43, 0x21, 0xec, 0xbd, 0xbc, 0xee, 0x67, 0xee, 0x15,
  3084  	0xc8, 0x59, 0x6a, 0x7e, 0x9f, 0x6c, 0xeb, 0x3b, 0x33, 0xc0, 0xc9, 0xc5, 0x02, 0xe1, 0xa5, 0xda,
  3085  	0xf7, 0x25, 0x86, 0xca, 0xdf, 0x35, 0xd0, 0xd1, 0x52, 0xed, 0x87, 0x12, 0x43, 0xe5, 0xaa, 0x65,
  3086  	0x34, 0x14, 0xac, 0x0a, 0xe1, 0x2c, 0x57, 0xd0, 0x68, 0x24, 0x18, 0x15, 0x8c, 0x59, 0x52, 0x13,
  3087  	0x23, 0x57, 0xb0, 0x2b, 0x84, 0x61, 0x01, 0x8a, 0x3c, 0xc1, 0xf1, 0x2e, 0xac, 0x9c, 0x03, 0x63,
  3088  	0x15, 0x2f, 0xf2, 0x05, 0xcb, 0x59, 0xab, 0x67, 0xd5, 0x2b, 0xfa, 0x9a, 0x43, 0x1f, 0xbe, 0x0f,
  3089  	0xab, 0xb6, 0x37, 0xe9, 0x87, 0x56, 0xe4, 0x85, 0x23, 0x32, 0xb6, 0x0e, 0xc3, 0x7e, 0x14, 0xe0,
  3090  	0x97, 0x5e, 0xd0, 0x1f, 0x93, 0x43, 0xfe, 0x6f, 0x7e, 0x87, 0xf1, 0xd1, 0xc3, 0xce, 0x01, 0x23,
  3091  	0x0a, 0xae, 0x7f, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x2a, 0xe4, 0xc0, 0x85, 0x16, 0x28, 0x00, 0x00,
  3092  }
  3093