github.com/luckypickle/go-ethereum-vet@v1.14.2/accounts/usbwallet/internal/trezor/messages.pb.go (about)

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