github.com/kisexp/xdchain@v0.0.0-20211206025815-490d6b732aa7/permission/v1/bind/permission_impl.go (about)

     1  // Code generated - DO NOT EDIT.
     2  // This file is a generated binding and any manual changes will be lost.
     3  
     4  package bind
     5  
     6  import (
     7  	"math/big"
     8  	"strings"
     9  
    10  	ethereum "github.com/kisexp/xdchain"
    11  	"github.com/kisexp/xdchain/accounts/abi"
    12  	"github.com/kisexp/xdchain/accounts/abi/bind"
    13  	"github.com/kisexp/xdchain/common"
    14  	"github.com/kisexp/xdchain/core/types"
    15  	"github.com/kisexp/xdchain/event"
    16  )
    17  
    18  // Reference imports to suppress errors if they are not otherwise used.
    19  var (
    20  	_ = big.NewInt
    21  	_ = strings.NewReader
    22  	_ = ethereum.NotFound
    23  	_ = bind.Bind
    24  	_ = common.Big1
    25  	_ = types.BloomLookup
    26  	_ = event.NewSubscription
    27  )
    28  
    29  // PermImplABI is the input ABI used to generate the binding from.
    30  const PermImplABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_action\",\"type\":\"uint256\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"updateAccountStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_access\",\"type\":\"uint256\"},{\"name\":\"_voter\",\"type\":\"bool\"},{\"name\":\"_admin\",\"type\":\"bool\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"addNewRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nwAdminOrg\",\"type\":\"string\"},{\"name\":\"_nwAdminRole\",\"type\":\"string\"},{\"name\":\"_oAdminRole\",\"type\":\"string\"}],\"name\":\"setPolicy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"startBlacklistedAccountRecovery\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveOrg\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_action\",\"type\":\"uint256\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"updateOrgStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_enodeId\",\"type\":\"string\"}],\"name\":\"addAdminNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"assignAdminRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"updateNetworkBootStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveBlacklistedAccountRecovery\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getNetworkBootStatus\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addAdminAccount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"addNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"removeRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveBlacklistedNodeRecovery\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"validateAccount\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveAdminRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_roleId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"assignAccountRole\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"isOrgAdmin\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_breadth\",\"type\":\"uint256\"},{\"name\":\"_depth\",\"type\":\"uint256\"}],\"name\":\"init\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pOrgId\",\"type\":\"string\"},{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"addSubOrg\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_action\",\"type\":\"uint256\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"approveOrgStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"startBlacklistedNodeRecovery\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getPolicyDetails\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isNetworkAdmin\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_action\",\"type\":\"uint256\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"updateNodeStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"}],\"name\":\"getPendingOp\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nwAdminOrg\",\"type\":\"string\"},{\"name\":\"_nwAdminRole\",\"type\":\"string\"},{\"name\":\"_oAdminRole\",\"type\":\"string\"},{\"name\":\"_networkBootStatus\",\"type\":\"bool\"}],\"name\":\"setMigrationPolicy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_orgId\",\"type\":\"string\"},{\"name\":\"_enodeId\",\"type\":\"string\"},{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_caller\",\"type\":\"address\"}],\"name\":\"addOrg\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_permUpgradable\",\"type\":\"address\"},{\"name\":\"_orgManager\",\"type\":\"address\"},{\"name\":\"_rolesManager\",\"type\":\"address\"},{\"name\":\"_accountManager\",\"type\":\"address\"},{\"name\":\"_voterManager\",\"type\":\"address\"},{\"name\":\"_nodeManager\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_networkBootStatus\",\"type\":\"bool\"}],\"name\":\"PermissionsInitialized\",\"type\":\"event\"}]"
    31  
    32  var PermImplParsedABI, _ = abi.JSON(strings.NewReader(PermImplABI))
    33  
    34  // PermImplBin is the compiled bytecode used for deploying new contracts.
    35  var PermImplBin = "0x60806040526003600955600a805460ff191690553480156200002057600080fd5b5060405160c08062007181833981018060405260c08110156200004257600080fd5b508051602082015160408301516060840151608085015160a090950151600580546001600160a01b039687166001600160a01b03199182161790915560048054958716958216959095179094556001805493861693851693909317909255600080549185169184169190911790556002805494841694831694909417909355600380549290931691161790556170a380620000de6000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063655a8ef511610104578063b5546564116100a2578063dbfad71111610071578063dbfad71114611196578063f346a3a714611263578063f5ad584a146113cf578063f922f802146114df576101cf565b8063b554656414610ed8578063c3dc8e0914610f55578063cc9ba6fa1461101c578063d1aa0c2014611170576101cf565b80638baa8191116100de5780638baa819114610ba65780639bd3810114610cea578063a5843f0814610d9e578063a64d286014610dc1576101cf565b8063655a8ef5146109ac5780636b568d7614610a735780638884304114610b27576101cf565b8063404bf3eb116101715780634cbfa82e1161014b5780634cbfa82e146107f05780634fe57e7a146107f857806359a260a31461081e5780635ca5adbe146108e5576101cf565b8063404bf3eb1461068157806344478e79146107555780634b20f45f14610771576101cf565b80631c249912116101ad5780631c249912146104485780633bc07dea146104c75780633cf5f33b146105965780633f25c28814610613576101cf565b806304e81f1e146101d45780631b04c2761461025d5780631b6102201461033a575b600080fd5b61025b600480360360808110156101ea57600080fd5b810190602081018135600160201b81111561020457600080fd5b82018360208201111561021657600080fd5b803590602001918460018302840111600160201b8311171561023757600080fd5b91935091506001600160a01b038135811691602081013591604090910135166115ae565b005b61025b600480360360c081101561027357600080fd5b810190602081018135600160201b81111561028d57600080fd5b82018360208201111561029f57600080fd5b803590602001918460018302840111600160201b831117156102c057600080fd5b919390929091602081019035600160201b8111156102dd57600080fd5b8201836020820111156102ef57600080fd5b803590602001918460018302840111600160201b8311171561031057600080fd5b919350915080359060208101351515906040810135151590606001356001600160a01b0316611801565b61025b6004803603606081101561035057600080fd5b810190602081018135600160201b81111561036a57600080fd5b82018360208201111561037c57600080fd5b803590602001918460018302840111600160201b8311171561039d57600080fd5b919390929091602081019035600160201b8111156103ba57600080fd5b8201836020820111156103cc57600080fd5b803590602001918460018302840111600160201b831117156103ed57600080fd5b919390929091602081019035600160201b81111561040a57600080fd5b82018360208201111561041c57600080fd5b803590602001918460018302840111600160201b8311171561043d57600080fd5b509092509050611ac3565b61025b6004803603606081101561045e57600080fd5b810190602081018135600160201b81111561047857600080fd5b82018360208201111561048a57600080fd5b803590602001918460018302840111600160201b831117156104ab57600080fd5b91935091506001600160a01b0381358116916020013516611c02565b61025b600480360360808110156104dd57600080fd5b810190602081018135600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b919390929091602081019035600160201b81111561054757600080fd5b82018360208201111561055957600080fd5b803590602001918460018302840111600160201b8311171561057a57600080fd5b91935091506001600160a01b0381358116916020013516611f01565b61025b600480360360608110156105ac57600080fd5b810190602081018135600160201b8111156105c657600080fd5b8201836020820111156105d857600080fd5b803590602001918460018302840111600160201b831117156105f957600080fd5b9193509150803590602001356001600160a01b0316612487565b61025b6004803603602081101561062957600080fd5b810190602081018135600160201b81111561064357600080fd5b82018360208201111561065557600080fd5b803590602001918460018302840111600160201b8311171561067657600080fd5b50909250905061278f565b61025b6004803603608081101561069757600080fd5b810190602081018135600160201b8111156106b157600080fd5b8201836020820111156106c357600080fd5b803590602001918460018302840111600160201b831117156106e457600080fd5b919390926001600160a01b0383351692604081019060200135600160201b81111561070e57600080fd5b82018360208201111561072057600080fd5b803590602001918460018302840111600160201b8311171561074157600080fd5b9193509150356001600160a01b03166129a3565b61075d612d62565b604080519115158252519081900360200190f35b61025b6004803603606081101561078757600080fd5b810190602081018135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91935091506001600160a01b0381358116916020013516612ec0565b61075d613109565b61025b6004803603602081101561080e57600080fd5b50356001600160a01b0316613113565b61025b6004803603606081101561083457600080fd5b810190602081018135600160201b81111561084e57600080fd5b82018360208201111561086057600080fd5b803590602001918460018302840111600160201b8311171561088157600080fd5b919390929091602081019035600160201b81111561089e57600080fd5b8201836020820111156108b057600080fd5b803590602001918460018302840111600160201b831117156108d157600080fd5b9193509150356001600160a01b0316613434565b61025b600480360360608110156108fb57600080fd5b810190602081018135600160201b81111561091557600080fd5b82018360208201111561092757600080fd5b803590602001918460018302840111600160201b8311171561094857600080fd5b919390929091602081019035600160201b81111561096557600080fd5b82018360208201111561097757600080fd5b803590602001918460018302840111600160201b8311171561099857600080fd5b9193509150356001600160a01b03166136b0565b61025b600480360360608110156109c257600080fd5b810190602081018135600160201b8111156109dc57600080fd5b8201836020820111156109ee57600080fd5b803590602001918460018302840111600160201b83111715610a0f57600080fd5b919390929091602081019035600160201b811115610a2c57600080fd5b820183602082011115610a3e57600080fd5b803590602001918460018302840111600160201b83111715610a5f57600080fd5b9193509150356001600160a01b0316613b72565b61075d60048036036040811015610a8957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610ab357600080fd5b820183602082011115610ac557600080fd5b803590602001918460018302840111600160201b83111715610ae657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613dd6945050505050565b61025b60048036036060811015610b3d57600080fd5b810190602081018135600160201b811115610b5757600080fd5b820183602082011115610b6957600080fd5b803590602001918460018302840111600160201b83111715610b8a57600080fd5b91935091506001600160a01b0381358116916020013516613ec4565b61025b60048036036080811015610bbc57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610be657600080fd5b820183602082011115610bf857600080fd5b803590602001918460018302840111600160201b83111715610c1957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610c6b57600080fd5b820183602082011115610c7d57600080fd5b803590602001918460018302840111600160201b83111715610c9e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506143199050565b61075d60048036036040811015610d0057600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610d2a57600080fd5b820183602082011115610d3c57600080fd5b803590602001918460018302840111600160201b83111715610d5d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550614827945050505050565b61025b60048036036040811015610db457600080fd5b5080359060200135614bdf565b61025b60048036036080811015610dd757600080fd5b810190602081018135600160201b811115610df157600080fd5b820183602082011115610e0357600080fd5b803590602001918460018302840111600160201b83111715610e2457600080fd5b919390929091602081019035600160201b811115610e4157600080fd5b820183602082011115610e5357600080fd5b803590602001918460018302840111600160201b83111715610e7457600080fd5b919390929091602081019035600160201b811115610e9157600080fd5b820183602082011115610ea357600080fd5b803590602001918460018302840111600160201b83111715610ec457600080fd5b9193509150356001600160a01b031661509a565b61025b60048036036060811015610eee57600080fd5b810190602081018135600160201b811115610f0857600080fd5b820183602082011115610f1a57600080fd5b803590602001918460018302840111600160201b83111715610f3b57600080fd5b9193509150803590602001356001600160a01b0316615468565b61025b60048036036060811015610f6b57600080fd5b810190602081018135600160201b811115610f8557600080fd5b820183602082011115610f9757600080fd5b803590602001918460018302840111600160201b83111715610fb857600080fd5b919390929091602081019035600160201b811115610fd557600080fd5b820183602082011115610fe757600080fd5b803590602001918460018302840111600160201b8311171561100857600080fd5b9193509150356001600160a01b03166157c1565b611024615add565b604080518215156060820152608080825286519082015285519091829160208084019284019160a08501918a019080838360005b83811015611070578181015183820152602001611058565b50505050905090810190601f16801561109d5780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b838110156110d05781810151838201526020016110b8565b50505050905090810190601f1680156110fd5780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b83811015611130578181015183820152602001611118565b50505050905090810190601f16801561115d5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b61075d6004803603602081101561118657600080fd5b50356001600160a01b0316615cb0565b61025b600480360360808110156111ac57600080fd5b810190602081018135600160201b8111156111c657600080fd5b8201836020820111156111d857600080fd5b803590602001918460018302840111600160201b831117156111f957600080fd5b919390929091602081019035600160201b81111561121657600080fd5b82018360208201111561122857600080fd5b803590602001918460018302840111600160201b8311171561124957600080fd5b9193509150803590602001356001600160a01b0316615eb4565b6112d16004803603602081101561127957600080fd5b810190602081018135600160201b81111561129357600080fd5b8201836020820111156112a557600080fd5b803590602001918460018302840111600160201b831117156112c657600080fd5b50909250905061610c565b604051808060200180602001856001600160a01b03166001600160a01b03168152602001848152602001838103835287818151815260200191508051906020019080838360005b83811015611330578181015183820152602001611318565b50505050905090810190601f16801561135d5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b83811015611390578181015183820152602001611378565b50505050905090810190601f1680156113bd5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61025b600480360360808110156113e557600080fd5b810190602081018135600160201b8111156113ff57600080fd5b82018360208201111561141157600080fd5b803590602001918460018302840111600160201b8311171561143257600080fd5b919390929091602081019035600160201b81111561144f57600080fd5b82018360208201111561146157600080fd5b803590602001918460018302840111600160201b8311171561148257600080fd5b919390929091602081019035600160201b81111561149f57600080fd5b8201836020820111156114b157600080fd5b803590602001918460018302840111600160201b831117156114d257600080fd5b9193509150351515616274565b61025b600480360360808110156114f557600080fd5b810190602081018135600160201b81111561150f57600080fd5b82018360208201111561152157600080fd5b803590602001918460018302840111600160201b8311171561154257600080fd5b919390929091602081019035600160201b81111561155f57600080fd5b82018360208201111561157157600080fd5b803590602001918460018302840111600160201b8311171561159257600080fd5b91935091506001600160a01b0381358116916020013516616363565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d602081101561162657600080fd5b50516001600160a01b0316331461167157604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b8085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506116b59250849150839050614827565b15156001146116f857604051600160e51b62461bcd0281526004018080602001828103825260228152602001806170566022913960400191505060405180910390fd5b83600114806117075750836002145b806117125750836003145b151561175257604051600160e51b62461bcd028152600401808060200182810382526025815260200180616fe36025913960400191505060405180910390fd5b600054604051600160e11b63425bd4250281526001600160a01b03878116602483015260448201879052606060048301908152606483018a90529216916384b7a84a918a918a918a918a918190608401868680828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117e057600080fd5b505af11580156117f4573d6000803e3d6000fd5b5050505050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561184f57600080fd5b505afa158015611863573d6000803e3d6000fd5b505050506040513d602081101561187957600080fd5b50516001600160a01b031633146118c457604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611906925083915061690c9050565b151560011461194d5760408051600160e51b62461bcd02815260206004820152601a6024820152600080516020616fa3833981519152604482015290519081900360640190fd5b8187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506119919250849150839050614827565b15156001146119d457604051600160e51b62461bcd0281526004018080602001828103825260228152602001806170566022913960400191505060405180910390fd5b600154604051600160e01b637b713579028152604481018990528715156064820152861515608482015260a06004820190815260a482018d90526001600160a01b0390921691637b713579918e918e918e918e918e918e918e91908190602481019060c4018a8a80828437600083820152601f01601f191690910184810383528881526020019050888880828437600081840152601f19601f8201169050808301925050509950505050505050505050600060405180830381600087803b158015611a9e57600080fd5b505af1158015611ab2573d6000803e3d6000fd5b505050505050505050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1157600080fd5b505afa158015611b25573d6000803e3d6000fd5b505050506040513d6020811015611b3b57600080fd5b50516001600160a01b03163314611b8657604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b600a5460009060ff1615611bd25760408051600160e51b62461bcd02815260206004820152601d6024820152600080516020616fc3833981519152604482015290519081900360640190fd5b611bde60068888616f14565b50611beb60078686616f14565b50611bf860088484616f14565b5050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c5057600080fd5b505afa158015611c64573d6000803e3d6000fd5b505050506040513d6020811015611c7a57600080fd5b50516001600160a01b03163314611cc557604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b80611ccf81615cb0565b1515600114611d1257604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b600054604051600160e11b63425bd4250281526001600160a01b03858116602483015260046044830181905260608382019081526064840189905291909316926384b7a84a928992899289929091908190608401868680828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611da457600080fd5b505af1158015611db8573d6000803e3d6000fd5b505060028054604051600160e01b63e98ac22d0281526001600160a01b03888116606483015260066084830181905260a060048401908152815460001960018216156101000201169590950460a4840181905291909316955063e98ac22d945091928a928a928a928692909182916024820191604481019160c49091019086908015611e855780601f10611e5a57610100808354040283529160200191611e85565b820191906000526020600020905b815481529060010190602001808311611e6857829003601f168201915b50508481038352878152602001888880828437600081840152601f19601f82011690508083019250505084810382526000815260200160200198505050505050505050600060405180830381600087803b158015611ee257600080fd5b505af1158015611ef6573d6000803e3d6000fd5b505050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4f57600080fd5b505afa158015611f63573d6000803e3d6000fd5b505050506040513d6020811015611f7957600080fd5b50516001600160a01b03163314611fc457604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b80611fce81615cb0565b151560011461201157604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b61205387878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506169fb915050565b15156001146120ac5760408051600160e51b62461bcd02815260206004820152601260248201527f4e6f7468696e6720746f20617070726f76650000000000000000000000000000604482015290519081900360640190fd5b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261214693909290918301828280156121395780601f1061210e57610100808354040283529160200191612139565b820191906000526020600020905b81548152906001019060200180831161211c57829003601f168201915b5050505050836001616a68565b1561247e5760048054604051600160e11b637181418b0281526020928101928352602481018990526001600160a01b039091169163e3028316918a918a918190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156121c557600080fd5b505af11580156121d9573d6000803e3d6000fd5b505060018054600954604051600160e01b637b71357902815260448101829052606481018490526084810184905260a0600482019081526008805460026000198289161561010002019091160460a484018190526001600160a01b039095169750637b7135799650948e948e94939192839290918291602481019160c4909101908a9080156122a95780601f1061227e576101008083540402835291602001916122a9565b820191906000526020600020905b81548152906001019060200180831161228c57829003601f168201915b50508381038252878152602001888880828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b1580156122f757600080fd5b505af115801561230b573d6000803e3d6000fd5b505060035460408051600160e11b63435e1b2902815260048101918252604481018990526001600160a01b0390921693506386bc36529250889188918c918c919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156123b857600080fd5b505af11580156123cc573d6000803e3d6000fd5b505060005460408051600160e01b63c214e5e50281526001600160a01b03888116602483015260048201928352604482018c9052909216935063c214e5e592508a918a9188918190606401858580828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561245457600080fd5b505af1158015612468573d6000803e3d6000fd5b505050506040513d6020811015611ef657600080fd5b50505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124d557600080fd5b505afa1580156124e9573d6000803e3d6000fd5b505050506040513d60208110156124ff57600080fd5b50516001600160a01b0316331461254a57604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b8061255481615cb0565b151560011461259757604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b6004805460408051600160e01b630cc2749302815260248101879052928301908152604483018790526000926001600160a01b0390921691630cc27493918991899189918190606401858580828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561261d57600080fd5b505af1158015612631573d6000803e3d6000fd5b505050506040513d602081101561264757600080fd5b505160028054604051600160e01b63e98ac22d0281526000606482018190526084820185905260a0600483019081526006805460001960018216156101000201169590950460a484018190529596506001600160a01b039093169463e98ac22d94938c938c939289929182916024820191604481019160c4909101908a9080156127125780601f106126e757610100808354040283529160200191612712565b820191906000526020600020905b8154815290600101906020018083116126f557829003601f168201915b50508481038352878152602001888880828437600081840152601f19601f82011690508083019250505084810382526000815260200160200198505050505050505050600060405180830381600087803b15801561276f57600080fd5b505af1158015612783573d6000803e3d6000fd5b50505050505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127dd57600080fd5b505afa1580156127f1573d6000803e3d6000fd5b505050506040513d602081101561280757600080fd5b50516001600160a01b0316331461285257604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b600a5460009060ff161561289e5760408051600160e51b62461bcd02815260206004820152601d6024820152600080516020616fc3833981519152604482015290519081900360640190fd5b60035460408051600160e21b6338ec276102815260048101918252604481018590526001600160a01b039092169163e3b09d84918691869160069181906024810190606401868680828437600083820152601f01601f19169091018481038352855460026000196101006001841615020190911604808252602090910191508590801561296c5780601f106129415761010080835404028352916020019161296c565b820191906000526020600020905b81548152906001019060200180831161294f57829003601f168201915b505095505050505050600060405180830381600087803b15801561298f57600080fd5b505af115801561247e573d6000803e3d6000fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156129f157600080fd5b505afa158015612a05573d6000803e3d6000fd5b505050506040513d6020811015612a1b57600080fd5b50516001600160a01b03163314612a6657604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612aa89250839150616b629050565b1515600114612af95760408051600160e51b62461bcd0281526020600482015260126024820152600160721b711bdc99c8191bd95cc81b9bdd08195e1a5cdd02604482015290519081900360640190fd5b81612b0381615cb0565b1515600114612b4657604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b600054604051600160e01b63e3483a9d0281526001600160a01b0388811660048301908152600160648401819052608060248501908152608485018d9052929094169363e3483a9d938b938e938e938d938d9391929190604481019060a401888880828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b158015612c0957600080fd5b505af1158015612c1d573d6000803e3d6000fd5b505060028054604051600160e01b63e98ac22d0281526001600160a01b038b8116606483015260046084830181905260a08382019081526006805460001960018216156101000201169690960460a4850181905292909416965063e98ac22d95508e938e938e9382916024810191604482019160c401908a908015612ce35780601f10612cb857610100808354040283529160200191612ce3565b820191906000526020600020905b815481529060010190602001808311612cc657829003601f168201915b50508481038352878152602001888880828437600081840152601f19601f82011690508083019250505084810382526000815260200160200198505050505050505050600060405180830381600087803b158015612d4057600080fd5b505af1158015612d54573d6000803e3d6000fd5b505050505050505050505050565b60055460408051600160e21b63395c945702815290516000926001600160a01b03169163e572515c916004808301926020929190829003018186803b158015612daa57600080fd5b505afa158015612dbe573d6000803e3d6000fd5b505050506040513d6020811015612dd457600080fd5b50516001600160a01b03163314612e1f57604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b600a5460009060ff1615612e6b5760408051600160e51b62461bcd02815260206004820152601d6024820152600080516020616fc3833981519152604482015290519081900360640190fd5b600a805460ff1916600117908190556040805160ff9290921615158252517f04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf9181900360200190a1600a5460ff1691505b5090565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f0e57600080fd5b505afa158015612f22573d6000803e3d6000fd5b505050506040513d6020811015612f3857600080fd5b50516001600160a01b03163314612f8357604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b80612f8d81615cb0565b1515600114612fd057604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261306a939092909183018282801561305d5780601f106130325761010080835404028352916020019161305d565b820191906000526020600020905b81548152906001019060200180831161304057829003601f168201915b5050505050836006616a68565b1561310257600054604051600160e11b63425bd4250281526001600160a01b0385811660248301526005604483018190526060600484019081526064840189905291909316926384b7a84a928992899289929091908190608401868680828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611ee257600080fd5b5050505050565b600a5460ff165b90565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561316157600080fd5b505afa158015613175573d6000803e3d6000fd5b505050506040513d602081101561318b57600080fd5b50516001600160a01b031633146131d657604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b600a5460009060ff16156132225760408051600160e51b62461bcd02815260206004820152601d6024820152600080516020616fc3833981519152604482015290519081900360640190fd5b60068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526132bc93909290918301828280156132af5780601f10613284576101008083540402835291602001916132af565b820191906000526020600020905b81548152906001019060200180831161329257829003601f168201915b5050505050836001616c27565b600054604051600160e01b63e3483a9d0281526001600160a01b038481166004830190815260026064840181905260806024850190815260068054600019600182161561010002011683900460848701819052949096169563e3483a9d95899591946007949390929091604481019160a490910190879080156133805780601f1061335557610100808354040283529160200191613380565b820191906000526020600020905b81548152906001019060200180831161336357829003601f168201915b50508381038252855460026000196101006001841615020190911604808252602090910190869080156133f45780601f106133c9576101008083540402835291602001916133f4565b820191906000526020600020905b8154815290600101906020018083116133d757829003601f168201915b50509650505050505050600060405180830381600087803b15801561341857600080fd5b505af115801561342c573d6000803e3d6000fd5b505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561348257600080fd5b505afa158015613496573d6000803e3d6000fd5b505050506040513d60208110156134ac57600080fd5b50516001600160a01b031633146134f757604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613539925083915061690c9050565b15156001146135805760408051600160e51b62461bcd02815260206004820152601a6024820152600080516020616fa3833981519152604482015290519081900360640190fd5b8186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135c49250849150839050614827565b151560011461360757604051600160e51b62461bcd0281526004018080602001828103825260228152602001806170566022913960400191505060405180910390fd5b60035460408051600160e01b633f5e1a4502815260048101918252604481018890526001600160a01b0390921691633f5e1a4591899189918d918d919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015612d4057600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156136fe57600080fd5b505afa158015613712573d6000803e3d6000fd5b505050506040513d602081101561372857600080fd5b50516001600160a01b0316331461377357604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506137b5925083915061690c9050565b15156001146137fc5760408051600160e51b62461bcd02815260206004820152601a6024820152600080516020616fa3833981519152604482015290519081900360640190fd5b8184848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506138409250849150839050614827565b151560011461388357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806170566022913960400191505060405180910390fd5b60408051602080820190815260078054600260001961010060018416150201909116049383018490529290918291606090910190849080156139065780601f106138db57610100808354040283529160200191613906565b820191906000526020600020905b8154815290600101906020018083116138e957829003601f168201915b50509250505060405160208183030381529060405280519060200120888860405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012014158015613a7357506040805160208082019081526008805460026000196101006001841615020190911604938301849052929091829160609091019084908015613a015780601f106139d657610100808354040283529160200191613a01565b820191906000526020600020905b8154815290600101906020018083116139e457829003601f168201915b50509250505060405160208183030381529060405280519060200120888860405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012014155b1515613ac95760408051600160e51b62461bcd02815260206004820152601d60248201527f61646d696e20726f6c65732063616e6e6f742062652072656d6f766564000000604482015290519081900360640190fd5b60015460408051600160e11b63531a180902815260048101918252604481018a90526001600160a01b039092169163a6343012918b918b918b918b919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015612d4057600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015613bc057600080fd5b505afa158015613bd4573d6000803e3d6000fd5b505050506040513d6020811015613bea57600080fd5b50516001600160a01b03163314613c3557604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b80613c3f81615cb0565b1515600114613c8257604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152613d1c9390929091830182828015613d0f5780601f10613ce457610100808354040283529160200191613d0f565b820191906000526020600020905b815481529060010190602001808311613cf257829003601f168201915b5050505050836005616a68565b1561342c57600354604051600160e11b63066280a3028152600560448201819052606060048301908152606483018790526001600160a01b0390931692630cc5014692889288928c928c92919081906024810190608401888880828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f820116905080830192505050975050505050505050600060405180830381600087803b15801561276f57600080fd5b6000805460408051600160e11b6335ab46bb0281526001600160a01b0386811660048301908152602483019384528651604484015286519190941693636b568d76938893889360649091019060208501908083838c5b83811015613e44578181015183820152602001613e2c565b50505050905090810190601f168015613e715780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015613e8f57600080fd5b505afa158015613ea3573d6000803e3d6000fd5b505050506040513d6020811015613eb957600080fd5b505190505b92915050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015613f1257600080fd5b505afa158015613f26573d6000803e3d6000fd5b505050506040513d6020811015613f3c57600080fd5b50516001600160a01b03163314613f8757604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b80613f9181615cb0565b1515600114613fd457604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815261406e93909290918301828280156140615780601f1061403657610100808354040283529160200191614061565b820191906000526020600020905b81548152906001019060200180831161404457829003601f168201915b5050505050836004616a68565b156131025760008054604051600160e01b631d09dc930281526020600482019081526024820188905283926001600160a01b031691631d09dc93918a918a91908190604401848480828437600081840152601f19601f82011690508083019250505093505050506040805180830381600087803b1580156140ee57600080fd5b505af1158015614102573d6000803e3d6000fd5b505050506040513d604081101561411857600080fd5b508051602090910151909250905081156141c65760068054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526141c693909290918301828280156141b95780601f1061418e576101008083540402835291602001916141b9565b820191906000526020600020905b81548152906001019060200180831161419c57829003601f168201915b5050505050826000616c27565b6000805460408051600160e01b63c214e5e50281526001600160a01b03898116602483015260048201928352604482018b90529092169163c214e5e5918b918b918b918190606401858580828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561424b57600080fd5b505af115801561425f573d6000803e3d6000fd5b505050506040513d602081101561427557600080fd5b505190508015611bf85760068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152611bf8939092909183018282801561430c5780601f106142e15761010080835404028352916020019161430c565b820191906000526020600020905b8154815290600101906020018083116142ef57829003601f168201915b5050505050876001616c27565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561436757600080fd5b505afa15801561437b573d6000803e3d6000fd5b505050506040513d602081101561439157600080fd5b50516001600160a01b031633146143dc57604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b80836143e88282614827565b151560011461442b57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806170566022913960400191505060405180910390fd5b846144358161690c565b151560011461447c5760408051600160e51b62461bcd02815260206004820152601a6024820152600080516020616fa3833981519152604482015290519081900360640190fd5b6144868787613dd6565b15156001146144df5760408051600160e51b62461bcd02815260206004820152601d60248201527f6f7065726174696f6e2063616e6e6f7420626520706572666f726d6564000000604482015290519081900360640190fd5b6144e98587616dbd565b15156001146145425760408051600160e51b62461bcd02815260206004820152601460248201527f726f6c6520646f6573206e6f7420657869737473000000000000000000000000604482015290519081900360640190fd5b6001546000906001600160a01b031663be322e54878961456181616dd8565b6040518463ffffffff1660e01b815260040180806020018060200180602001848103845287818151815260200191508051906020019080838360005b838110156145b557818101518382015260200161459d565b50505050905090810190601f1680156145e25780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b838110156146155781810151838201526020016145fd565b50505050905090810190601f1680156146425780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b8381101561467557818101518382015260200161465d565b50505050905090810190601f1680156146a25780820380516001836020036101000a031916815260200191505b50965050505050505060206040518083038186803b1580156146c357600080fd5b505afa1580156146d7573d6000803e3d6000fd5b505050506040513d60208110156146ed57600080fd5b505160008054604051600160e21b63050e95810281526001600160a01b038c81166004830190815285151560648401526080602484019081528d5160848501528d51969750919093169463143a5604948e948e948e948a9492939092604483019260a401916020890191908190849084905b8381101561477757818101518382015260200161475f565b50505050905090810190601f1680156147a45780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156147d75781810151838201526020016147bf565b50505050905090810190601f1680156148045780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b158015612d4057600080fd5b600080546001600160a01b031663e8b42bf4848461484481616dd8565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156148ac578181015183820152602001614894565b50505050905090810190601f1680156148d95780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561490c5781810151838201526020016148f4565b50505050905090810190601f1680156149395780820380516001836020036101000a031916815260200191505b509550505050505060206040518083038186803b15801561495957600080fd5b505afa15801561496d573d6000803e3d6000fd5b505050506040513d602081101561498357600080fd5b50511561499257506001613ebe565b6001546000805460408051600160e01b6381d66b230281526001600160a01b03888116600483015291519482169463be322e549493909216926381d66b2392602480840193829003018186803b1580156149eb57600080fd5b505afa1580156149ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015614a2857600080fd5b810190808051600160201b811115614a3f57600080fd5b82016020810184811115614a5257600080fd5b8151600160201b811182820187101715614a6b57600080fd5b505092919050505084614a7d86616dd8565b6040518463ffffffff1660e01b815260040180806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015614ad1578181015183820152602001614ab9565b50505050905090810190601f168015614afe5780820380516001836020036101000a031916815260200191505b50848103835286518152865160209182019188019080838360005b83811015614b31578181015183820152602001614b19565b50505050905090810190601f168015614b5e5780820380516001836020036101000a031916815260200191505b50848103825285518152855160209182019187019080838360005b83811015614b91578181015183820152602001614b79565b50505050905090810190601f168015614bbe5780820380516001836020036101000a031916815260200191505b50965050505050505060206040518083038186803b158015613e8f57600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015614c2d57600080fd5b505afa158015614c41573d6000803e3d6000fd5b505050506040513d6020811015614c5757600080fd5b50516001600160a01b03163314614ca257604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b600a5460009060ff1615614cee5760408051600160e51b62461bcd02815260206004820152601d6024820152600080516020616fc3833981519152604482015290519081900360640190fd5b60048054604051600160e01b639e58eb9f028152602481018690526044810185905260609281019283526006805460026000196001831615610100020190911604606483018190526001600160a01b0390931693639e58eb9f9391928892889291829160849091019086908015614da65780601f10614d7b57610100808354040283529160200191614da6565b820191906000526020600020905b815481529060010190602001808311614d8957829003601f168201915b5050945050505050600060405180830381600087803b158015614dc857600080fd5b505af1158015614ddc573d6000803e3d6000fd5b505060018054600954604051600160e01b637b71357902815260448101829052606481018490526084810184905260a0600482019081526007805460026000198289161561010002019091160460a484018190526001600160a01b039095169750637b71357996509460069490928392918291602481019160c49091019089908015614ea95780601f10614e7e57610100808354040283529160200191614ea9565b820191906000526020600020905b815481529060010190602001808311614e8c57829003601f168201915b5050838103825287546002600019610100600184161502019091160480825260209091019088908015614f1d5780601f10614ef257610100808354040283529160200191614f1d565b820191906000526020600020905b815481529060010190602001808311614f0057829003601f168201915b5050975050505050505050600060405180830381600087803b158015614f4257600080fd5b505af1158015614f56573d6000803e3d6000fd5b505060005460408051600160e01b63cef7f6af028152600481019182526007805460026000196001831615610100020190911604604483018190526001600160a01b03909416955063cef7f6af945092600892918291602482019160640190869080156150045780601f10614fd957610100808354040283529160200191615004565b820191906000526020600020905b815481529060010190602001808311614fe757829003601f168201915b50508381038252845460026000196101006001841615020190911604808252602090910190859080156150785780601f1061504d57610100808354040283529160200191615078565b820191906000526020600020905b81548152906001019060200180831161505b57829003601f168201915b5050945050505050600060405180830381600087803b15801561298f57600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156150e857600080fd5b505afa1580156150fc573d6000803e3d6000fd5b505050506040513d602081101561511257600080fd5b50516001600160a01b0316331461515d57604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061519f9250839150616b629050565b15156001146151f05760408051600160e51b62461bcd0281526020600482015260126024820152600160721b711bdc99c8191bd95cc81b9bdd08195e1a5cdd02604482015290519081900360640190fd5b8188888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506152349250849150839050614827565b151560011461527757604051600160e51b62461bcd0281526004018080602001828103825260228152602001806170566022913960400191505060405180910390fd5b6004805460408051600160e71b623f2a69028152928301908152604483018c90526001600160a01b0390911691631f953480918d918d918d918d919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561531f57600080fd5b505af1158015615333573d6000803e3d6000fd5b5050505060608a8a8a8a60405160200180858580828437600160f91b6017029201918252506001018383808284376040805191909301818103601f1901825290925250955050891593506117f4925050505760035460408051600160e01b633f5e1a4502815260048101918252604481018990526001600160a01b0390921691633f5e1a45918a918a918691819060248101906064018686808284376000838201819052601f909101601f191690920185810384528651815286516020918201939188019250908190849084905b83811015615419578181015183820152602001615401565b50505050905090810190601f1680156154465780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015611a9e57600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156154b657600080fd5b505afa1580156154ca573d6000803e3d6000fd5b505050506040513d60208110156154e057600080fd5b50516001600160a01b0316331461552b57604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b8061553581615cb0565b151560011461557857604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b82600114806155875750826002145b15156155dd5760408051600160e51b62461bcd02815260206004820152601560248201527f4f7065726174696f6e206e6f7420616c6c6f7765640000000000000000000000604482015290519081900360640190fd5b60008084600114156155f55750600290506003615606565b846002141561560657506003905060055b61564787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508592506169fb915050565b15156001146156a05760408051600160e51b62461bcd02815260206004820152601560248201527f6f7065726174696f6e206e6f7420616c6c6f7765640000000000000000000000604482015290519081900360640190fd5b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152615739939092909183018282801561572d5780601f106157025761010080835404028352916020019161572d565b820191906000526020600020905b81548152906001019060200180831161571057829003601f168201915b50505050508584616a68565b1561247e576004805460408051600160e01b6314f775f902815260248101899052928301908152604483018990526001600160a01b03909116916314f775f9918a918a918a918190606401858580828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b1580156117e057600080fd5b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561580f57600080fd5b505afa158015615823573d6000803e3d6000fd5b505050506040513d602081101561583957600080fd5b50516001600160a01b0316331461588457604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b8061588e81615cb0565b15156001146158d157604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b600354604051600160e11b63066280a30281526004604482018190526060828201908152606483018790526001600160a01b0390931692630cc5014692889288928c928c92919081906024810190608401888880828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f820116905080830192505050975050505050505050600060405180830381600087803b15801561598557600080fd5b505af1158015615999573d6000803e3d6000fd5b505060028054604051600160e01b63e98ac22d02815260006064820181905260056084830181905260a0600484019081526006805460001960018216156101000201169690960460a485018190526001600160a01b03909516975063e98ac22d96508d948d948d948d9490939092909182916024820191604481019160c4909101908c908015615a6a5780601f10615a3f57610100808354040283529160200191615a6a565b820191906000526020600020905b815481529060010190602001808311615a4d57829003601f168201915b505084810383528981526020018a8a80828437600083820152601f01601f191690910185810383528881526020019050888880828437600081840152601f19601f8201169050808301925050509a5050505050505050505050600060405180830381600087803b15801561276f57600080fd5b600a5460068054604080516020601f6002600019600187161561010002019095169490940493840181900481028201810190925282815260609485948594600094919360079360089360ff909116928691830182828015615b7f5780601f10615b5457610100808354040283529160200191615b7f565b820191906000526020600020905b815481529060010190602001808311615b6257829003601f168201915b5050865460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295995088945092508401905082828015615c0d5780601f10615be257610100808354040283529160200191615c0d565b820191906000526020600020905b815481529060010190602001808311615bf057829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295985087945092508401905082828015615c9b5780601f10615c7057610100808354040283529160200191615c9b565b820191906000526020600020905b815481529060010190602001808311615c7e57829003601f168201915b50505050509150935093509350935090919293565b60408051602080820190815260078054600260001961010060018416150201909116049383018490526000939092829160609091019084908015615d355780601f10615d0a57610100808354040283529160200191615d35565b820191906000526020600020905b815481529060010190602001808311615d1857829003601f168201915b505060408051601f19818403018152828252805160209091012060008054600160e01b6381d66b230285526001600160a01b038a8116600487015293519297509290921694506381d66b239350602480840193829003018186803b158015615d9c57600080fd5b505afa158015615db0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015615dd957600080fd5b810190808051600160201b811115615df057600080fd5b82016020810184811115615e0357600080fd5b8151600160201b811182820187101715615e1c57600080fd5b50509291905050506040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015615e64578181015183820152602001615e4c565b50505050905090810190601f168015615e915780820380516001836020036101000a031916815260200191505b509250505060405160208183030381529060405280519060200120149050919050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b158015615f0257600080fd5b505afa158015615f16573d6000803e3d6000fd5b505050506040513d6020811015615f2c57600080fd5b50516001600160a01b03163314615f7757604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b8086868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250615fbb9250849150839050614827565b1515600114615ffe57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806170566022913960400191505060405180910390fd5b836001148061600d5750836002145b806160185750836003145b151561605857604051600160e51b62461bcd028152600401808060200182810382526025815260200180616fe36025913960400191505060405180910390fd5b600354604051600160e11b63066280a302815260448101869052606060048201908152606482018890526001600160a01b0390921691630cc5014691899189918d918d918b919081906024810190608401888880828437600083820152601f01601f191690910184810383528681526020019050868680828437600081840152601f19601f820116905080830192505050975050505050505050600060405180830381600087803b158015612d4057600080fd5b600254604051600160e21b62539ab302815260206004820190815260248201849052606092839260009283926001600160a01b03169163014e6acc9189918991908190604401848480828437600081840152601f19601f820116905080830192505050935050505060006040518083038186803b15801561618c57600080fd5b505afa1580156161a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260808110156161c957600080fd5b810190808051600160201b8111156161e057600080fd5b820160208101848111156161f357600080fd5b8151600160201b81118282018710171561620c57600080fd5b50509291906020018051600160201b81111561622757600080fd5b8201602081018481111561623a57600080fd5b8151600160201b81118282018710171561625357600080fd5b50506020820151604090920151949b909a5090985092965091945050505050565b6005546001600160a01b031633146162d65760408051600160e51b62461bcd02815260206004820152600e60248201527f696e76616c69642063616c6c6572000000000000000000000000000000000000604482015290519081900360640190fd5b600a5460009060ff16156163225760408051600160e51b62461bcd02815260206004820152601d6024820152600080516020616fc3833981519152604482015290519081900360640190fd5b61632e60068989616f14565b5061633b60078787616f14565b5061634860088585616f14565b5050600a805460ff1916911515919091179055505050505050565b600560009054906101000a90046001600160a01b03166001600160a01b031663e572515c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156163b157600080fd5b505afa1580156163c5573d6000803e3d6000fd5b505050506040513d60208110156163db57600080fd5b50516001600160a01b0316331461642657604051600160e51b62461bcd0281526004018080602001828103825260288152602001806170086028913960400191505060405180910390fd5b600a5460019060ff16151581146164755760408051600160e51b62461bcd02815260206004820152601d6024820152600080516020616fc3833981519152604482015290519081900360640190fd5b8161647f81615cb0565b15156001146164c257604051600160e51b62461bcd0281526004018080602001828103825260268152602001806170306026913960400191505060405180910390fd5b60028054604051600160e01b63e98ac22d0281526001600160a01b03878116606483015260016084830181905260a06004840190815260068054600019818516156101000201169690960460a48501819052929094169463e98ac22d9490938e938e938e938e938e9382916024810191604482019160c401908c90801561658a5780601f1061655f5761010080835404028352916020019161658a565b820191906000526020600020905b81548152906001019060200180831161656d57829003601f168201915b505084810383528981526020018a8a80828437600083820152601f01601f191690910185810383528881526020019050888880828437600081840152601f19601f8201169050808301925050509a5050505050505050505050600060405180830381600087803b1580156165fd57600080fd5b505af1158015616611573d6000803e3d6000fd5b505060048054604051600160e01b63f9953de50281526020928101928352602481018c90526001600160a01b03909116935063f9953de592508b918b918190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561668f57600080fd5b505af11580156166a3573d6000803e3d6000fd5b505060035460408051600160e11b6354bd220302815260048101918252604481018a90526001600160a01b03909216935063a97a44069250899189918d918d919081906024810190606401878780828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561675057600080fd5b505af1158015616764573d6000803e3d6000fd5b505050506167a88489898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613dd692505050565b15156001146168015760408051600160e51b62461bcd02815260206004820152601d60248201527f4f7065726174696f6e2063616e6e6f7420626520706572666f726d6564000000604482015290519081900360640190fd5b600054604051600160e01b63e3483a9d0281526001600160a01b0386811660048301908152600160648401819052608060248501908152608485018d9052929094169363e3483a9d9389938e938e93600893909290604481019060a401878780828437600083820152601f01601f1916909101848103835286546002600019610100600184161502019091160480825260209091019150869080156168e75780601f106168bc576101008083540402835291602001916168e7565b820191906000526020600020905b8154815290600101906020018083116168ca57829003601f168201915b5050975050505050505050600060405180830381600087803b158015612d4057600080fd5b6004805460408051600160e01b638c8642df0281526002602482018190529381019182528451604482015284516000946001600160a01b0390941693638c8642df93879391929091829160649091019060208601908083838c5b8381101561697e578181015183820152602001616966565b50505050905090810190601f1680156169ab5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156169c957600080fd5b505afa1580156169dd573d6000803e3d6000fd5b505050506040513d60208110156169f357600080fd5b505192915050565b6004805460408051600160e01b638c8642df028152602481018590529283019081528451604484015284516000936001600160a01b0390931692638c8642df9287928792829160649091019060208601908083838c83811015613e44578181015183820152602001613e2c565b600254604051600160e21b632c084e190281526001600160a01b03848116602483015260448201849052606060048301908152865160648401528651600094929092169263b02138649288928892889282916084019060208701908083838d5b83811015616ae0578181015183820152602001616ac8565b50505050905090810190601f168015616b0d5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015616b2e57600080fd5b505af1158015616b42573d6000803e3d6000fd5b505050506040513d6020811015616b5857600080fd5b5051949350505050565b600480546040517fffe40d1d00000000000000000000000000000000000000000000000000000000815260209281018381528451602483015284516000946001600160a01b039094169363ffe40d1d9387939283926044909201918501908083838b5b83811015616bdd578181015183820152602001616bc5565b50505050905090810190601f168015616c0a5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156169c957600080fd5b8015616d015760025460408051600160e01b635607395b0281526001600160a01b03858116602483015260048201928352865160448301528651931692635607395b9287928792829160640190602086019080838360005b83811015616c97578181015183820152602001616c7f565b50505050905090810190601f168015616cc45780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015616ce457600080fd5b505af1158015616cf8573d6000803e3d6000fd5b50505050616db8565b60025460408051600160e11b632ce5eb7f0281526001600160a01b038581166024830152600482019283528651604483015286519316926359cbd6fe9287928792829160640190602086019080838360005b83811015616d6b578181015183820152602001616d53565b50505050905090810190601f168015616d985780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561298f57600080fd5b505050565b6001546000906001600160a01b031663abf5739f8484614a7d815b60048054604051600160e11b630bbe46c502815260209281018381528451602483015284516060946001600160a01b039094169363177c8d8a93879392839260449092019185019080838360005b83811015616e3e578181015183820152602001616e26565b50505050905090810190601f168015616e6b5780820380516001836020036101000a031916815260200191505b509250505060006040518083038186803b158015616e8857600080fd5b505afa158015616e9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015616ec557600080fd5b810190808051600160201b811115616edc57600080fd5b82016020810184811115616eef57600080fd5b8151600160201b811182820187101715616f0857600080fd5b50909695505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10616f555782800160ff19823516178555616f82565b82800160010185558215616f82579182015b82811115616f82578235825591602001919060010190616f67565b50612ebc926131109250905b80821115612ebc5760008155600101616f8e56fe6f7267206e6f7420696e20617070726f76656420737461747573000000000000496e636f7272656374206e6574776f726b20626f6f7420737461747573000000696e76616c696420616374696f6e2e206f7065726174696f6e206e6f7420616c6c6f77656463616e2062652063616c6c656420627920696e7465726661636520636f6e7472616374206f6e6c796163636f756e74206973206e6f742061206e6574776f726b2061646d696e206163636f756e746163636f756e74206973206e6f742061206f72672061646d696e206163636f756e74a165627a7a7230582047eb5d5106c9085018e51aa9094a706fff1dfed139d9e1e83d83ee3d32fec65b0029"
    36  
    37  // DeployPermImpl deploys a new Ethereum contract, binding an instance of PermImpl to it.
    38  func DeployPermImpl(auth *bind.TransactOpts, backend bind.ContractBackend, _permUpgradable common.Address, _orgManager common.Address, _rolesManager common.Address, _accountManager common.Address, _voterManager common.Address, _nodeManager common.Address) (common.Address, *types.Transaction, *PermImpl, error) {
    39  	parsed, err := abi.JSON(strings.NewReader(PermImplABI))
    40  	if err != nil {
    41  		return common.Address{}, nil, nil, err
    42  	}
    43  
    44  	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PermImplBin), backend, _permUpgradable, _orgManager, _rolesManager, _accountManager, _voterManager, _nodeManager)
    45  	if err != nil {
    46  		return common.Address{}, nil, nil, err
    47  	}
    48  	return address, tx, &PermImpl{PermImplCaller: PermImplCaller{contract: contract}, PermImplTransactor: PermImplTransactor{contract: contract}, PermImplFilterer: PermImplFilterer{contract: contract}}, nil
    49  }
    50  
    51  // PermImpl is an auto generated Go binding around an Ethereum contract.
    52  type PermImpl struct {
    53  	PermImplCaller     // Read-only binding to the contract
    54  	PermImplTransactor // Write-only binding to the contract
    55  	PermImplFilterer   // Log filterer for contract events
    56  }
    57  
    58  // PermImplCaller is an auto generated read-only Go binding around an Ethereum contract.
    59  type PermImplCaller struct {
    60  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    61  }
    62  
    63  // PermImplTransactor is an auto generated write-only Go binding around an Ethereum contract.
    64  type PermImplTransactor struct {
    65  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    66  }
    67  
    68  // PermImplFilterer is an auto generated log filtering Go binding around an Ethereum contract events.
    69  type PermImplFilterer struct {
    70  	contract *bind.BoundContract // Generic contract wrapper for the low level calls
    71  }
    72  
    73  // PermImplSession is an auto generated Go binding around an Ethereum contract,
    74  // with pre-set call and transact options.
    75  type PermImplSession struct {
    76  	Contract     *PermImpl         // Generic contract binding to set the session for
    77  	CallOpts     bind.CallOpts     // Call options to use throughout this session
    78  	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
    79  }
    80  
    81  // PermImplCallerSession is an auto generated read-only Go binding around an Ethereum contract,
    82  // with pre-set call options.
    83  type PermImplCallerSession struct {
    84  	Contract *PermImplCaller // Generic contract caller binding to set the session for
    85  	CallOpts bind.CallOpts   // Call options to use throughout this session
    86  }
    87  
    88  // PermImplTransactorSession is an auto generated write-only Go binding around an Ethereum contract,
    89  // with pre-set transact options.
    90  type PermImplTransactorSession struct {
    91  	Contract     *PermImplTransactor // Generic contract transactor binding to set the session for
    92  	TransactOpts bind.TransactOpts   // Transaction auth options to use throughout this session
    93  }
    94  
    95  // PermImplRaw is an auto generated low-level Go binding around an Ethereum contract.
    96  type PermImplRaw struct {
    97  	Contract *PermImpl // Generic contract binding to access the raw methods on
    98  }
    99  
   100  // PermImplCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract.
   101  type PermImplCallerRaw struct {
   102  	Contract *PermImplCaller // Generic read-only contract binding to access the raw methods on
   103  }
   104  
   105  // PermImplTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract.
   106  type PermImplTransactorRaw struct {
   107  	Contract *PermImplTransactor // Generic write-only contract binding to access the raw methods on
   108  }
   109  
   110  // NewPermImpl creates a new instance of PermImpl, bound to a specific deployed contract.
   111  func NewPermImpl(address common.Address, backend bind.ContractBackend) (*PermImpl, error) {
   112  	contract, err := bindPermImpl(address, backend, backend, backend)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return &PermImpl{PermImplCaller: PermImplCaller{contract: contract}, PermImplTransactor: PermImplTransactor{contract: contract}, PermImplFilterer: PermImplFilterer{contract: contract}}, nil
   117  }
   118  
   119  // NewPermImplCaller creates a new read-only instance of PermImpl, bound to a specific deployed contract.
   120  func NewPermImplCaller(address common.Address, caller bind.ContractCaller) (*PermImplCaller, error) {
   121  	contract, err := bindPermImpl(address, caller, nil, nil)
   122  	if err != nil {
   123  		return nil, err
   124  	}
   125  	return &PermImplCaller{contract: contract}, nil
   126  }
   127  
   128  // NewPermImplTransactor creates a new write-only instance of PermImpl, bound to a specific deployed contract.
   129  func NewPermImplTransactor(address common.Address, transactor bind.ContractTransactor) (*PermImplTransactor, error) {
   130  	contract, err := bindPermImpl(address, nil, transactor, nil)
   131  	if err != nil {
   132  		return nil, err
   133  	}
   134  	return &PermImplTransactor{contract: contract}, nil
   135  }
   136  
   137  // NewPermImplFilterer creates a new log filterer instance of PermImpl, bound to a specific deployed contract.
   138  func NewPermImplFilterer(address common.Address, filterer bind.ContractFilterer) (*PermImplFilterer, error) {
   139  	contract, err := bindPermImpl(address, nil, nil, filterer)
   140  	if err != nil {
   141  		return nil, err
   142  	}
   143  	return &PermImplFilterer{contract: contract}, nil
   144  }
   145  
   146  // bindPermImpl binds a generic wrapper to an already deployed contract.
   147  func bindPermImpl(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
   148  	parsed, err := abi.JSON(strings.NewReader(PermImplABI))
   149  	if err != nil {
   150  		return nil, err
   151  	}
   152  	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
   153  }
   154  
   155  // Call invokes the (constant) contract method with params as input values and
   156  // sets the output to result. The result type might be a single field for simple
   157  // returns, a slice of interfaces for anonymous returns and a struct for named
   158  // returns.
   159  func (_PermImpl *PermImplRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   160  	return _PermImpl.Contract.PermImplCaller.contract.Call(opts, result, method, params...)
   161  }
   162  
   163  // Transfer initiates a plain transaction to move funds to the contract, calling
   164  // its default method if one is available.
   165  func (_PermImpl *PermImplRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   166  	return _PermImpl.Contract.PermImplTransactor.contract.Transfer(opts)
   167  }
   168  
   169  // Transact invokes the (paid) contract method with params as input values.
   170  func (_PermImpl *PermImplRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   171  	return _PermImpl.Contract.PermImplTransactor.contract.Transact(opts, method, params...)
   172  }
   173  
   174  // Call invokes the (constant) contract method with params as input values and
   175  // sets the output to result. The result type might be a single field for simple
   176  // returns, a slice of interfaces for anonymous returns and a struct for named
   177  // returns.
   178  func (_PermImpl *PermImplCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
   179  	return _PermImpl.Contract.contract.Call(opts, result, method, params...)
   180  }
   181  
   182  // Transfer initiates a plain transaction to move funds to the contract, calling
   183  // its default method if one is available.
   184  func (_PermImpl *PermImplTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
   185  	return _PermImpl.Contract.contract.Transfer(opts)
   186  }
   187  
   188  // Transact invokes the (paid) contract method with params as input values.
   189  func (_PermImpl *PermImplTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
   190  	return _PermImpl.Contract.contract.Transact(opts, method, params...)
   191  }
   192  
   193  // GetNetworkBootStatus is a free data retrieval call binding the contract method 0x4cbfa82e.
   194  //
   195  // Solidity: function getNetworkBootStatus() view returns(bool)
   196  func (_PermImpl *PermImplCaller) GetNetworkBootStatus(opts *bind.CallOpts) (bool, error) {
   197  	var out []interface{}
   198  	err := _PermImpl.contract.Call(opts, &out, "getNetworkBootStatus")
   199  
   200  	if err != nil {
   201  		return *new(bool), err
   202  	}
   203  
   204  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   205  
   206  	return out0, err
   207  
   208  }
   209  
   210  // GetNetworkBootStatus is a free data retrieval call binding the contract method 0x4cbfa82e.
   211  //
   212  // Solidity: function getNetworkBootStatus() view returns(bool)
   213  func (_PermImpl *PermImplSession) GetNetworkBootStatus() (bool, error) {
   214  	return _PermImpl.Contract.GetNetworkBootStatus(&_PermImpl.CallOpts)
   215  }
   216  
   217  // GetNetworkBootStatus is a free data retrieval call binding the contract method 0x4cbfa82e.
   218  //
   219  // Solidity: function getNetworkBootStatus() view returns(bool)
   220  func (_PermImpl *PermImplCallerSession) GetNetworkBootStatus() (bool, error) {
   221  	return _PermImpl.Contract.GetNetworkBootStatus(&_PermImpl.CallOpts)
   222  }
   223  
   224  // GetPendingOp is a free data retrieval call binding the contract method 0xf346a3a7.
   225  //
   226  // Solidity: function getPendingOp(string _orgId) view returns(string, string, address, uint256)
   227  func (_PermImpl *PermImplCaller) GetPendingOp(opts *bind.CallOpts, _orgId string) (string, string, common.Address, *big.Int, error) {
   228  	var out []interface{}
   229  	err := _PermImpl.contract.Call(opts, &out, "getPendingOp", _orgId)
   230  
   231  	if err != nil {
   232  		return *new(string), *new(string), *new(common.Address), *new(*big.Int), err
   233  	}
   234  
   235  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   236  	out1 := *abi.ConvertType(out[1], new(string)).(*string)
   237  	out2 := *abi.ConvertType(out[2], new(common.Address)).(*common.Address)
   238  	out3 := *abi.ConvertType(out[3], new(*big.Int)).(**big.Int)
   239  
   240  	return out0, out1, out2, out3, err
   241  
   242  }
   243  
   244  // GetPendingOp is a free data retrieval call binding the contract method 0xf346a3a7.
   245  //
   246  // Solidity: function getPendingOp(string _orgId) view returns(string, string, address, uint256)
   247  func (_PermImpl *PermImplSession) GetPendingOp(_orgId string) (string, string, common.Address, *big.Int, error) {
   248  	return _PermImpl.Contract.GetPendingOp(&_PermImpl.CallOpts, _orgId)
   249  }
   250  
   251  // GetPendingOp is a free data retrieval call binding the contract method 0xf346a3a7.
   252  //
   253  // Solidity: function getPendingOp(string _orgId) view returns(string, string, address, uint256)
   254  func (_PermImpl *PermImplCallerSession) GetPendingOp(_orgId string) (string, string, common.Address, *big.Int, error) {
   255  	return _PermImpl.Contract.GetPendingOp(&_PermImpl.CallOpts, _orgId)
   256  }
   257  
   258  // GetPolicyDetails is a free data retrieval call binding the contract method 0xcc9ba6fa.
   259  //
   260  // Solidity: function getPolicyDetails() view returns(string, string, string, bool)
   261  func (_PermImpl *PermImplCaller) GetPolicyDetails(opts *bind.CallOpts) (string, string, string, bool, error) {
   262  	var out []interface{}
   263  	err := _PermImpl.contract.Call(opts, &out, "getPolicyDetails")
   264  
   265  	if err != nil {
   266  		return *new(string), *new(string), *new(string), *new(bool), err
   267  	}
   268  
   269  	out0 := *abi.ConvertType(out[0], new(string)).(*string)
   270  	out1 := *abi.ConvertType(out[1], new(string)).(*string)
   271  	out2 := *abi.ConvertType(out[2], new(string)).(*string)
   272  	out3 := *abi.ConvertType(out[3], new(bool)).(*bool)
   273  
   274  	return out0, out1, out2, out3, err
   275  
   276  }
   277  
   278  // GetPolicyDetails is a free data retrieval call binding the contract method 0xcc9ba6fa.
   279  //
   280  // Solidity: function getPolicyDetails() view returns(string, string, string, bool)
   281  func (_PermImpl *PermImplSession) GetPolicyDetails() (string, string, string, bool, error) {
   282  	return _PermImpl.Contract.GetPolicyDetails(&_PermImpl.CallOpts)
   283  }
   284  
   285  // GetPolicyDetails is a free data retrieval call binding the contract method 0xcc9ba6fa.
   286  //
   287  // Solidity: function getPolicyDetails() view returns(string, string, string, bool)
   288  func (_PermImpl *PermImplCallerSession) GetPolicyDetails() (string, string, string, bool, error) {
   289  	return _PermImpl.Contract.GetPolicyDetails(&_PermImpl.CallOpts)
   290  }
   291  
   292  // IsNetworkAdmin is a free data retrieval call binding the contract method 0xd1aa0c20.
   293  //
   294  // Solidity: function isNetworkAdmin(address _account) view returns(bool)
   295  func (_PermImpl *PermImplCaller) IsNetworkAdmin(opts *bind.CallOpts, _account common.Address) (bool, error) {
   296  	var out []interface{}
   297  	err := _PermImpl.contract.Call(opts, &out, "isNetworkAdmin", _account)
   298  
   299  	if err != nil {
   300  		return *new(bool), err
   301  	}
   302  
   303  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   304  
   305  	return out0, err
   306  
   307  }
   308  
   309  // IsNetworkAdmin is a free data retrieval call binding the contract method 0xd1aa0c20.
   310  //
   311  // Solidity: function isNetworkAdmin(address _account) view returns(bool)
   312  func (_PermImpl *PermImplSession) IsNetworkAdmin(_account common.Address) (bool, error) {
   313  	return _PermImpl.Contract.IsNetworkAdmin(&_PermImpl.CallOpts, _account)
   314  }
   315  
   316  // IsNetworkAdmin is a free data retrieval call binding the contract method 0xd1aa0c20.
   317  //
   318  // Solidity: function isNetworkAdmin(address _account) view returns(bool)
   319  func (_PermImpl *PermImplCallerSession) IsNetworkAdmin(_account common.Address) (bool, error) {
   320  	return _PermImpl.Contract.IsNetworkAdmin(&_PermImpl.CallOpts, _account)
   321  }
   322  
   323  // IsOrgAdmin is a free data retrieval call binding the contract method 0x9bd38101.
   324  //
   325  // Solidity: function isOrgAdmin(address _account, string _orgId) view returns(bool)
   326  func (_PermImpl *PermImplCaller) IsOrgAdmin(opts *bind.CallOpts, _account common.Address, _orgId string) (bool, error) {
   327  	var out []interface{}
   328  	err := _PermImpl.contract.Call(opts, &out, "isOrgAdmin", _account, _orgId)
   329  
   330  	if err != nil {
   331  		return *new(bool), err
   332  	}
   333  
   334  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   335  
   336  	return out0, err
   337  
   338  }
   339  
   340  // IsOrgAdmin is a free data retrieval call binding the contract method 0x9bd38101.
   341  //
   342  // Solidity: function isOrgAdmin(address _account, string _orgId) view returns(bool)
   343  func (_PermImpl *PermImplSession) IsOrgAdmin(_account common.Address, _orgId string) (bool, error) {
   344  	return _PermImpl.Contract.IsOrgAdmin(&_PermImpl.CallOpts, _account, _orgId)
   345  }
   346  
   347  // IsOrgAdmin is a free data retrieval call binding the contract method 0x9bd38101.
   348  //
   349  // Solidity: function isOrgAdmin(address _account, string _orgId) view returns(bool)
   350  func (_PermImpl *PermImplCallerSession) IsOrgAdmin(_account common.Address, _orgId string) (bool, error) {
   351  	return _PermImpl.Contract.IsOrgAdmin(&_PermImpl.CallOpts, _account, _orgId)
   352  }
   353  
   354  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   355  //
   356  // Solidity: function validateAccount(address _account, string _orgId) view returns(bool)
   357  func (_PermImpl *PermImplCaller) ValidateAccount(opts *bind.CallOpts, _account common.Address, _orgId string) (bool, error) {
   358  	var out []interface{}
   359  	err := _PermImpl.contract.Call(opts, &out, "validateAccount", _account, _orgId)
   360  
   361  	if err != nil {
   362  		return *new(bool), err
   363  	}
   364  
   365  	out0 := *abi.ConvertType(out[0], new(bool)).(*bool)
   366  
   367  	return out0, err
   368  
   369  }
   370  
   371  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   372  //
   373  // Solidity: function validateAccount(address _account, string _orgId) view returns(bool)
   374  func (_PermImpl *PermImplSession) ValidateAccount(_account common.Address, _orgId string) (bool, error) {
   375  	return _PermImpl.Contract.ValidateAccount(&_PermImpl.CallOpts, _account, _orgId)
   376  }
   377  
   378  // ValidateAccount is a free data retrieval call binding the contract method 0x6b568d76.
   379  //
   380  // Solidity: function validateAccount(address _account, string _orgId) view returns(bool)
   381  func (_PermImpl *PermImplCallerSession) ValidateAccount(_account common.Address, _orgId string) (bool, error) {
   382  	return _PermImpl.Contract.ValidateAccount(&_PermImpl.CallOpts, _account, _orgId)
   383  }
   384  
   385  // AddAdminAccount is a paid mutator transaction binding the contract method 0x4fe57e7a.
   386  //
   387  // Solidity: function addAdminAccount(address _account) returns()
   388  func (_PermImpl *PermImplTransactor) AddAdminAccount(opts *bind.TransactOpts, _account common.Address) (*types.Transaction, error) {
   389  	return _PermImpl.contract.Transact(opts, "addAdminAccount", _account)
   390  }
   391  
   392  // AddAdminAccount is a paid mutator transaction binding the contract method 0x4fe57e7a.
   393  //
   394  // Solidity: function addAdminAccount(address _account) returns()
   395  func (_PermImpl *PermImplSession) AddAdminAccount(_account common.Address) (*types.Transaction, error) {
   396  	return _PermImpl.Contract.AddAdminAccount(&_PermImpl.TransactOpts, _account)
   397  }
   398  
   399  // AddAdminAccount is a paid mutator transaction binding the contract method 0x4fe57e7a.
   400  //
   401  // Solidity: function addAdminAccount(address _account) returns()
   402  func (_PermImpl *PermImplTransactorSession) AddAdminAccount(_account common.Address) (*types.Transaction, error) {
   403  	return _PermImpl.Contract.AddAdminAccount(&_PermImpl.TransactOpts, _account)
   404  }
   405  
   406  // AddAdminNode is a paid mutator transaction binding the contract method 0x3f25c288.
   407  //
   408  // Solidity: function addAdminNode(string _enodeId) returns()
   409  func (_PermImpl *PermImplTransactor) AddAdminNode(opts *bind.TransactOpts, _enodeId string) (*types.Transaction, error) {
   410  	return _PermImpl.contract.Transact(opts, "addAdminNode", _enodeId)
   411  }
   412  
   413  // AddAdminNode is a paid mutator transaction binding the contract method 0x3f25c288.
   414  //
   415  // Solidity: function addAdminNode(string _enodeId) returns()
   416  func (_PermImpl *PermImplSession) AddAdminNode(_enodeId string) (*types.Transaction, error) {
   417  	return _PermImpl.Contract.AddAdminNode(&_PermImpl.TransactOpts, _enodeId)
   418  }
   419  
   420  // AddAdminNode is a paid mutator transaction binding the contract method 0x3f25c288.
   421  //
   422  // Solidity: function addAdminNode(string _enodeId) returns()
   423  func (_PermImpl *PermImplTransactorSession) AddAdminNode(_enodeId string) (*types.Transaction, error) {
   424  	return _PermImpl.Contract.AddAdminNode(&_PermImpl.TransactOpts, _enodeId)
   425  }
   426  
   427  // AddNewRole is a paid mutator transaction binding the contract method 0x1b04c276.
   428  //
   429  // Solidity: function addNewRole(string _roleId, string _orgId, uint256 _access, bool _voter, bool _admin, address _caller) returns()
   430  func (_PermImpl *PermImplTransactor) AddNewRole(opts *bind.TransactOpts, _roleId string, _orgId string, _access *big.Int, _voter bool, _admin bool, _caller common.Address) (*types.Transaction, error) {
   431  	return _PermImpl.contract.Transact(opts, "addNewRole", _roleId, _orgId, _access, _voter, _admin, _caller)
   432  }
   433  
   434  // AddNewRole is a paid mutator transaction binding the contract method 0x1b04c276.
   435  //
   436  // Solidity: function addNewRole(string _roleId, string _orgId, uint256 _access, bool _voter, bool _admin, address _caller) returns()
   437  func (_PermImpl *PermImplSession) AddNewRole(_roleId string, _orgId string, _access *big.Int, _voter bool, _admin bool, _caller common.Address) (*types.Transaction, error) {
   438  	return _PermImpl.Contract.AddNewRole(&_PermImpl.TransactOpts, _roleId, _orgId, _access, _voter, _admin, _caller)
   439  }
   440  
   441  // AddNewRole is a paid mutator transaction binding the contract method 0x1b04c276.
   442  //
   443  // Solidity: function addNewRole(string _roleId, string _orgId, uint256 _access, bool _voter, bool _admin, address _caller) returns()
   444  func (_PermImpl *PermImplTransactorSession) AddNewRole(_roleId string, _orgId string, _access *big.Int, _voter bool, _admin bool, _caller common.Address) (*types.Transaction, error) {
   445  	return _PermImpl.Contract.AddNewRole(&_PermImpl.TransactOpts, _roleId, _orgId, _access, _voter, _admin, _caller)
   446  }
   447  
   448  // AddNode is a paid mutator transaction binding the contract method 0x59a260a3.
   449  //
   450  // Solidity: function addNode(string _orgId, string _enodeId, address _caller) returns()
   451  func (_PermImpl *PermImplTransactor) AddNode(opts *bind.TransactOpts, _orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   452  	return _PermImpl.contract.Transact(opts, "addNode", _orgId, _enodeId, _caller)
   453  }
   454  
   455  // AddNode is a paid mutator transaction binding the contract method 0x59a260a3.
   456  //
   457  // Solidity: function addNode(string _orgId, string _enodeId, address _caller) returns()
   458  func (_PermImpl *PermImplSession) AddNode(_orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   459  	return _PermImpl.Contract.AddNode(&_PermImpl.TransactOpts, _orgId, _enodeId, _caller)
   460  }
   461  
   462  // AddNode is a paid mutator transaction binding the contract method 0x59a260a3.
   463  //
   464  // Solidity: function addNode(string _orgId, string _enodeId, address _caller) returns()
   465  func (_PermImpl *PermImplTransactorSession) AddNode(_orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   466  	return _PermImpl.Contract.AddNode(&_PermImpl.TransactOpts, _orgId, _enodeId, _caller)
   467  }
   468  
   469  // AddOrg is a paid mutator transaction binding the contract method 0xf922f802.
   470  //
   471  // Solidity: function addOrg(string _orgId, string _enodeId, address _account, address _caller) returns()
   472  func (_PermImpl *PermImplTransactor) AddOrg(opts *bind.TransactOpts, _orgId string, _enodeId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   473  	return _PermImpl.contract.Transact(opts, "addOrg", _orgId, _enodeId, _account, _caller)
   474  }
   475  
   476  // AddOrg is a paid mutator transaction binding the contract method 0xf922f802.
   477  //
   478  // Solidity: function addOrg(string _orgId, string _enodeId, address _account, address _caller) returns()
   479  func (_PermImpl *PermImplSession) AddOrg(_orgId string, _enodeId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   480  	return _PermImpl.Contract.AddOrg(&_PermImpl.TransactOpts, _orgId, _enodeId, _account, _caller)
   481  }
   482  
   483  // AddOrg is a paid mutator transaction binding the contract method 0xf922f802.
   484  //
   485  // Solidity: function addOrg(string _orgId, string _enodeId, address _account, address _caller) returns()
   486  func (_PermImpl *PermImplTransactorSession) AddOrg(_orgId string, _enodeId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   487  	return _PermImpl.Contract.AddOrg(&_PermImpl.TransactOpts, _orgId, _enodeId, _account, _caller)
   488  }
   489  
   490  // AddSubOrg is a paid mutator transaction binding the contract method 0xa64d2860.
   491  //
   492  // Solidity: function addSubOrg(string _pOrgId, string _orgId, string _enodeId, address _caller) returns()
   493  func (_PermImpl *PermImplTransactor) AddSubOrg(opts *bind.TransactOpts, _pOrgId string, _orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   494  	return _PermImpl.contract.Transact(opts, "addSubOrg", _pOrgId, _orgId, _enodeId, _caller)
   495  }
   496  
   497  // AddSubOrg is a paid mutator transaction binding the contract method 0xa64d2860.
   498  //
   499  // Solidity: function addSubOrg(string _pOrgId, string _orgId, string _enodeId, address _caller) returns()
   500  func (_PermImpl *PermImplSession) AddSubOrg(_pOrgId string, _orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   501  	return _PermImpl.Contract.AddSubOrg(&_PermImpl.TransactOpts, _pOrgId, _orgId, _enodeId, _caller)
   502  }
   503  
   504  // AddSubOrg is a paid mutator transaction binding the contract method 0xa64d2860.
   505  //
   506  // Solidity: function addSubOrg(string _pOrgId, string _orgId, string _enodeId, address _caller) returns()
   507  func (_PermImpl *PermImplTransactorSession) AddSubOrg(_pOrgId string, _orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   508  	return _PermImpl.Contract.AddSubOrg(&_PermImpl.TransactOpts, _pOrgId, _orgId, _enodeId, _caller)
   509  }
   510  
   511  // ApproveAdminRole is a paid mutator transaction binding the contract method 0x88843041.
   512  //
   513  // Solidity: function approveAdminRole(string _orgId, address _account, address _caller) returns()
   514  func (_PermImpl *PermImplTransactor) ApproveAdminRole(opts *bind.TransactOpts, _orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   515  	return _PermImpl.contract.Transact(opts, "approveAdminRole", _orgId, _account, _caller)
   516  }
   517  
   518  // ApproveAdminRole is a paid mutator transaction binding the contract method 0x88843041.
   519  //
   520  // Solidity: function approveAdminRole(string _orgId, address _account, address _caller) returns()
   521  func (_PermImpl *PermImplSession) ApproveAdminRole(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   522  	return _PermImpl.Contract.ApproveAdminRole(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   523  }
   524  
   525  // ApproveAdminRole is a paid mutator transaction binding the contract method 0x88843041.
   526  //
   527  // Solidity: function approveAdminRole(string _orgId, address _account, address _caller) returns()
   528  func (_PermImpl *PermImplTransactorSession) ApproveAdminRole(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   529  	return _PermImpl.Contract.ApproveAdminRole(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   530  }
   531  
   532  // ApproveBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x4b20f45f.
   533  //
   534  // Solidity: function approveBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   535  func (_PermImpl *PermImplTransactor) ApproveBlacklistedAccountRecovery(opts *bind.TransactOpts, _orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   536  	return _PermImpl.contract.Transact(opts, "approveBlacklistedAccountRecovery", _orgId, _account, _caller)
   537  }
   538  
   539  // ApproveBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x4b20f45f.
   540  //
   541  // Solidity: function approveBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   542  func (_PermImpl *PermImplSession) ApproveBlacklistedAccountRecovery(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   543  	return _PermImpl.Contract.ApproveBlacklistedAccountRecovery(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   544  }
   545  
   546  // ApproveBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x4b20f45f.
   547  //
   548  // Solidity: function approveBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   549  func (_PermImpl *PermImplTransactorSession) ApproveBlacklistedAccountRecovery(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   550  	return _PermImpl.Contract.ApproveBlacklistedAccountRecovery(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   551  }
   552  
   553  // ApproveBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0x655a8ef5.
   554  //
   555  // Solidity: function approveBlacklistedNodeRecovery(string _orgId, string _enodeId, address _caller) returns()
   556  func (_PermImpl *PermImplTransactor) ApproveBlacklistedNodeRecovery(opts *bind.TransactOpts, _orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   557  	return _PermImpl.contract.Transact(opts, "approveBlacklistedNodeRecovery", _orgId, _enodeId, _caller)
   558  }
   559  
   560  // ApproveBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0x655a8ef5.
   561  //
   562  // Solidity: function approveBlacklistedNodeRecovery(string _orgId, string _enodeId, address _caller) returns()
   563  func (_PermImpl *PermImplSession) ApproveBlacklistedNodeRecovery(_orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   564  	return _PermImpl.Contract.ApproveBlacklistedNodeRecovery(&_PermImpl.TransactOpts, _orgId, _enodeId, _caller)
   565  }
   566  
   567  // ApproveBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0x655a8ef5.
   568  //
   569  // Solidity: function approveBlacklistedNodeRecovery(string _orgId, string _enodeId, address _caller) returns()
   570  func (_PermImpl *PermImplTransactorSession) ApproveBlacklistedNodeRecovery(_orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   571  	return _PermImpl.Contract.ApproveBlacklistedNodeRecovery(&_PermImpl.TransactOpts, _orgId, _enodeId, _caller)
   572  }
   573  
   574  // ApproveOrg is a paid mutator transaction binding the contract method 0x3bc07dea.
   575  //
   576  // Solidity: function approveOrg(string _orgId, string _enodeId, address _account, address _caller) returns()
   577  func (_PermImpl *PermImplTransactor) ApproveOrg(opts *bind.TransactOpts, _orgId string, _enodeId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   578  	return _PermImpl.contract.Transact(opts, "approveOrg", _orgId, _enodeId, _account, _caller)
   579  }
   580  
   581  // ApproveOrg is a paid mutator transaction binding the contract method 0x3bc07dea.
   582  //
   583  // Solidity: function approveOrg(string _orgId, string _enodeId, address _account, address _caller) returns()
   584  func (_PermImpl *PermImplSession) ApproveOrg(_orgId string, _enodeId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   585  	return _PermImpl.Contract.ApproveOrg(&_PermImpl.TransactOpts, _orgId, _enodeId, _account, _caller)
   586  }
   587  
   588  // ApproveOrg is a paid mutator transaction binding the contract method 0x3bc07dea.
   589  //
   590  // Solidity: function approveOrg(string _orgId, string _enodeId, address _account, address _caller) returns()
   591  func (_PermImpl *PermImplTransactorSession) ApproveOrg(_orgId string, _enodeId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   592  	return _PermImpl.Contract.ApproveOrg(&_PermImpl.TransactOpts, _orgId, _enodeId, _account, _caller)
   593  }
   594  
   595  // ApproveOrgStatus is a paid mutator transaction binding the contract method 0xb5546564.
   596  //
   597  // Solidity: function approveOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   598  func (_PermImpl *PermImplTransactor) ApproveOrgStatus(opts *bind.TransactOpts, _orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   599  	return _PermImpl.contract.Transact(opts, "approveOrgStatus", _orgId, _action, _caller)
   600  }
   601  
   602  // ApproveOrgStatus is a paid mutator transaction binding the contract method 0xb5546564.
   603  //
   604  // Solidity: function approveOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   605  func (_PermImpl *PermImplSession) ApproveOrgStatus(_orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   606  	return _PermImpl.Contract.ApproveOrgStatus(&_PermImpl.TransactOpts, _orgId, _action, _caller)
   607  }
   608  
   609  // ApproveOrgStatus is a paid mutator transaction binding the contract method 0xb5546564.
   610  //
   611  // Solidity: function approveOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   612  func (_PermImpl *PermImplTransactorSession) ApproveOrgStatus(_orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   613  	return _PermImpl.Contract.ApproveOrgStatus(&_PermImpl.TransactOpts, _orgId, _action, _caller)
   614  }
   615  
   616  // AssignAccountRole is a paid mutator transaction binding the contract method 0x8baa8191.
   617  //
   618  // Solidity: function assignAccountRole(address _account, string _orgId, string _roleId, address _caller) returns()
   619  func (_PermImpl *PermImplTransactor) AssignAccountRole(opts *bind.TransactOpts, _account common.Address, _orgId string, _roleId string, _caller common.Address) (*types.Transaction, error) {
   620  	return _PermImpl.contract.Transact(opts, "assignAccountRole", _account, _orgId, _roleId, _caller)
   621  }
   622  
   623  // AssignAccountRole is a paid mutator transaction binding the contract method 0x8baa8191.
   624  //
   625  // Solidity: function assignAccountRole(address _account, string _orgId, string _roleId, address _caller) returns()
   626  func (_PermImpl *PermImplSession) AssignAccountRole(_account common.Address, _orgId string, _roleId string, _caller common.Address) (*types.Transaction, error) {
   627  	return _PermImpl.Contract.AssignAccountRole(&_PermImpl.TransactOpts, _account, _orgId, _roleId, _caller)
   628  }
   629  
   630  // AssignAccountRole is a paid mutator transaction binding the contract method 0x8baa8191.
   631  //
   632  // Solidity: function assignAccountRole(address _account, string _orgId, string _roleId, address _caller) returns()
   633  func (_PermImpl *PermImplTransactorSession) AssignAccountRole(_account common.Address, _orgId string, _roleId string, _caller common.Address) (*types.Transaction, error) {
   634  	return _PermImpl.Contract.AssignAccountRole(&_PermImpl.TransactOpts, _account, _orgId, _roleId, _caller)
   635  }
   636  
   637  // AssignAdminRole is a paid mutator transaction binding the contract method 0x404bf3eb.
   638  //
   639  // Solidity: function assignAdminRole(string _orgId, address _account, string _roleId, address _caller) returns()
   640  func (_PermImpl *PermImplTransactor) AssignAdminRole(opts *bind.TransactOpts, _orgId string, _account common.Address, _roleId string, _caller common.Address) (*types.Transaction, error) {
   641  	return _PermImpl.contract.Transact(opts, "assignAdminRole", _orgId, _account, _roleId, _caller)
   642  }
   643  
   644  // AssignAdminRole is a paid mutator transaction binding the contract method 0x404bf3eb.
   645  //
   646  // Solidity: function assignAdminRole(string _orgId, address _account, string _roleId, address _caller) returns()
   647  func (_PermImpl *PermImplSession) AssignAdminRole(_orgId string, _account common.Address, _roleId string, _caller common.Address) (*types.Transaction, error) {
   648  	return _PermImpl.Contract.AssignAdminRole(&_PermImpl.TransactOpts, _orgId, _account, _roleId, _caller)
   649  }
   650  
   651  // AssignAdminRole is a paid mutator transaction binding the contract method 0x404bf3eb.
   652  //
   653  // Solidity: function assignAdminRole(string _orgId, address _account, string _roleId, address _caller) returns()
   654  func (_PermImpl *PermImplTransactorSession) AssignAdminRole(_orgId string, _account common.Address, _roleId string, _caller common.Address) (*types.Transaction, error) {
   655  	return _PermImpl.Contract.AssignAdminRole(&_PermImpl.TransactOpts, _orgId, _account, _roleId, _caller)
   656  }
   657  
   658  // Init is a paid mutator transaction binding the contract method 0xa5843f08.
   659  //
   660  // Solidity: function init(uint256 _breadth, uint256 _depth) returns()
   661  func (_PermImpl *PermImplTransactor) Init(opts *bind.TransactOpts, _breadth *big.Int, _depth *big.Int) (*types.Transaction, error) {
   662  	return _PermImpl.contract.Transact(opts, "init", _breadth, _depth)
   663  }
   664  
   665  // Init is a paid mutator transaction binding the contract method 0xa5843f08.
   666  //
   667  // Solidity: function init(uint256 _breadth, uint256 _depth) returns()
   668  func (_PermImpl *PermImplSession) Init(_breadth *big.Int, _depth *big.Int) (*types.Transaction, error) {
   669  	return _PermImpl.Contract.Init(&_PermImpl.TransactOpts, _breadth, _depth)
   670  }
   671  
   672  // Init is a paid mutator transaction binding the contract method 0xa5843f08.
   673  //
   674  // Solidity: function init(uint256 _breadth, uint256 _depth) returns()
   675  func (_PermImpl *PermImplTransactorSession) Init(_breadth *big.Int, _depth *big.Int) (*types.Transaction, error) {
   676  	return _PermImpl.Contract.Init(&_PermImpl.TransactOpts, _breadth, _depth)
   677  }
   678  
   679  // RemoveRole is a paid mutator transaction binding the contract method 0x5ca5adbe.
   680  //
   681  // Solidity: function removeRole(string _roleId, string _orgId, address _caller) returns()
   682  func (_PermImpl *PermImplTransactor) RemoveRole(opts *bind.TransactOpts, _roleId string, _orgId string, _caller common.Address) (*types.Transaction, error) {
   683  	return _PermImpl.contract.Transact(opts, "removeRole", _roleId, _orgId, _caller)
   684  }
   685  
   686  // RemoveRole is a paid mutator transaction binding the contract method 0x5ca5adbe.
   687  //
   688  // Solidity: function removeRole(string _roleId, string _orgId, address _caller) returns()
   689  func (_PermImpl *PermImplSession) RemoveRole(_roleId string, _orgId string, _caller common.Address) (*types.Transaction, error) {
   690  	return _PermImpl.Contract.RemoveRole(&_PermImpl.TransactOpts, _roleId, _orgId, _caller)
   691  }
   692  
   693  // RemoveRole is a paid mutator transaction binding the contract method 0x5ca5adbe.
   694  //
   695  // Solidity: function removeRole(string _roleId, string _orgId, address _caller) returns()
   696  func (_PermImpl *PermImplTransactorSession) RemoveRole(_roleId string, _orgId string, _caller common.Address) (*types.Transaction, error) {
   697  	return _PermImpl.Contract.RemoveRole(&_PermImpl.TransactOpts, _roleId, _orgId, _caller)
   698  }
   699  
   700  // SetMigrationPolicy is a paid mutator transaction binding the contract method 0xf5ad584a.
   701  //
   702  // Solidity: function setMigrationPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole, bool _networkBootStatus) returns()
   703  func (_PermImpl *PermImplTransactor) SetMigrationPolicy(opts *bind.TransactOpts, _nwAdminOrg string, _nwAdminRole string, _oAdminRole string, _networkBootStatus bool) (*types.Transaction, error) {
   704  	return _PermImpl.contract.Transact(opts, "setMigrationPolicy", _nwAdminOrg, _nwAdminRole, _oAdminRole, _networkBootStatus)
   705  }
   706  
   707  // SetMigrationPolicy is a paid mutator transaction binding the contract method 0xf5ad584a.
   708  //
   709  // Solidity: function setMigrationPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole, bool _networkBootStatus) returns()
   710  func (_PermImpl *PermImplSession) SetMigrationPolicy(_nwAdminOrg string, _nwAdminRole string, _oAdminRole string, _networkBootStatus bool) (*types.Transaction, error) {
   711  	return _PermImpl.Contract.SetMigrationPolicy(&_PermImpl.TransactOpts, _nwAdminOrg, _nwAdminRole, _oAdminRole, _networkBootStatus)
   712  }
   713  
   714  // SetMigrationPolicy is a paid mutator transaction binding the contract method 0xf5ad584a.
   715  //
   716  // Solidity: function setMigrationPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole, bool _networkBootStatus) returns()
   717  func (_PermImpl *PermImplTransactorSession) SetMigrationPolicy(_nwAdminOrg string, _nwAdminRole string, _oAdminRole string, _networkBootStatus bool) (*types.Transaction, error) {
   718  	return _PermImpl.Contract.SetMigrationPolicy(&_PermImpl.TransactOpts, _nwAdminOrg, _nwAdminRole, _oAdminRole, _networkBootStatus)
   719  }
   720  
   721  // SetPolicy is a paid mutator transaction binding the contract method 0x1b610220.
   722  //
   723  // Solidity: function setPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole) returns()
   724  func (_PermImpl *PermImplTransactor) SetPolicy(opts *bind.TransactOpts, _nwAdminOrg string, _nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   725  	return _PermImpl.contract.Transact(opts, "setPolicy", _nwAdminOrg, _nwAdminRole, _oAdminRole)
   726  }
   727  
   728  // SetPolicy is a paid mutator transaction binding the contract method 0x1b610220.
   729  //
   730  // Solidity: function setPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole) returns()
   731  func (_PermImpl *PermImplSession) SetPolicy(_nwAdminOrg string, _nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   732  	return _PermImpl.Contract.SetPolicy(&_PermImpl.TransactOpts, _nwAdminOrg, _nwAdminRole, _oAdminRole)
   733  }
   734  
   735  // SetPolicy is a paid mutator transaction binding the contract method 0x1b610220.
   736  //
   737  // Solidity: function setPolicy(string _nwAdminOrg, string _nwAdminRole, string _oAdminRole) returns()
   738  func (_PermImpl *PermImplTransactorSession) SetPolicy(_nwAdminOrg string, _nwAdminRole string, _oAdminRole string) (*types.Transaction, error) {
   739  	return _PermImpl.Contract.SetPolicy(&_PermImpl.TransactOpts, _nwAdminOrg, _nwAdminRole, _oAdminRole)
   740  }
   741  
   742  // StartBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x1c249912.
   743  //
   744  // Solidity: function startBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   745  func (_PermImpl *PermImplTransactor) StartBlacklistedAccountRecovery(opts *bind.TransactOpts, _orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   746  	return _PermImpl.contract.Transact(opts, "startBlacklistedAccountRecovery", _orgId, _account, _caller)
   747  }
   748  
   749  // StartBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x1c249912.
   750  //
   751  // Solidity: function startBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   752  func (_PermImpl *PermImplSession) StartBlacklistedAccountRecovery(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   753  	return _PermImpl.Contract.StartBlacklistedAccountRecovery(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   754  }
   755  
   756  // StartBlacklistedAccountRecovery is a paid mutator transaction binding the contract method 0x1c249912.
   757  //
   758  // Solidity: function startBlacklistedAccountRecovery(string _orgId, address _account, address _caller) returns()
   759  func (_PermImpl *PermImplTransactorSession) StartBlacklistedAccountRecovery(_orgId string, _account common.Address, _caller common.Address) (*types.Transaction, error) {
   760  	return _PermImpl.Contract.StartBlacklistedAccountRecovery(&_PermImpl.TransactOpts, _orgId, _account, _caller)
   761  }
   762  
   763  // StartBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xc3dc8e09.
   764  //
   765  // Solidity: function startBlacklistedNodeRecovery(string _orgId, string _enodeId, address _caller) returns()
   766  func (_PermImpl *PermImplTransactor) StartBlacklistedNodeRecovery(opts *bind.TransactOpts, _orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   767  	return _PermImpl.contract.Transact(opts, "startBlacklistedNodeRecovery", _orgId, _enodeId, _caller)
   768  }
   769  
   770  // StartBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xc3dc8e09.
   771  //
   772  // Solidity: function startBlacklistedNodeRecovery(string _orgId, string _enodeId, address _caller) returns()
   773  func (_PermImpl *PermImplSession) StartBlacklistedNodeRecovery(_orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   774  	return _PermImpl.Contract.StartBlacklistedNodeRecovery(&_PermImpl.TransactOpts, _orgId, _enodeId, _caller)
   775  }
   776  
   777  // StartBlacklistedNodeRecovery is a paid mutator transaction binding the contract method 0xc3dc8e09.
   778  //
   779  // Solidity: function startBlacklistedNodeRecovery(string _orgId, string _enodeId, address _caller) returns()
   780  func (_PermImpl *PermImplTransactorSession) StartBlacklistedNodeRecovery(_orgId string, _enodeId string, _caller common.Address) (*types.Transaction, error) {
   781  	return _PermImpl.Contract.StartBlacklistedNodeRecovery(&_PermImpl.TransactOpts, _orgId, _enodeId, _caller)
   782  }
   783  
   784  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x04e81f1e.
   785  //
   786  // Solidity: function updateAccountStatus(string _orgId, address _account, uint256 _action, address _caller) returns()
   787  func (_PermImpl *PermImplTransactor) UpdateAccountStatus(opts *bind.TransactOpts, _orgId string, _account common.Address, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   788  	return _PermImpl.contract.Transact(opts, "updateAccountStatus", _orgId, _account, _action, _caller)
   789  }
   790  
   791  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x04e81f1e.
   792  //
   793  // Solidity: function updateAccountStatus(string _orgId, address _account, uint256 _action, address _caller) returns()
   794  func (_PermImpl *PermImplSession) UpdateAccountStatus(_orgId string, _account common.Address, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   795  	return _PermImpl.Contract.UpdateAccountStatus(&_PermImpl.TransactOpts, _orgId, _account, _action, _caller)
   796  }
   797  
   798  // UpdateAccountStatus is a paid mutator transaction binding the contract method 0x04e81f1e.
   799  //
   800  // Solidity: function updateAccountStatus(string _orgId, address _account, uint256 _action, address _caller) returns()
   801  func (_PermImpl *PermImplTransactorSession) UpdateAccountStatus(_orgId string, _account common.Address, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   802  	return _PermImpl.Contract.UpdateAccountStatus(&_PermImpl.TransactOpts, _orgId, _account, _action, _caller)
   803  }
   804  
   805  // UpdateNetworkBootStatus is a paid mutator transaction binding the contract method 0x44478e79.
   806  //
   807  // Solidity: function updateNetworkBootStatus() returns(bool)
   808  func (_PermImpl *PermImplTransactor) UpdateNetworkBootStatus(opts *bind.TransactOpts) (*types.Transaction, error) {
   809  	return _PermImpl.contract.Transact(opts, "updateNetworkBootStatus")
   810  }
   811  
   812  // UpdateNetworkBootStatus is a paid mutator transaction binding the contract method 0x44478e79.
   813  //
   814  // Solidity: function updateNetworkBootStatus() returns(bool)
   815  func (_PermImpl *PermImplSession) UpdateNetworkBootStatus() (*types.Transaction, error) {
   816  	return _PermImpl.Contract.UpdateNetworkBootStatus(&_PermImpl.TransactOpts)
   817  }
   818  
   819  // UpdateNetworkBootStatus is a paid mutator transaction binding the contract method 0x44478e79.
   820  //
   821  // Solidity: function updateNetworkBootStatus() returns(bool)
   822  func (_PermImpl *PermImplTransactorSession) UpdateNetworkBootStatus() (*types.Transaction, error) {
   823  	return _PermImpl.Contract.UpdateNetworkBootStatus(&_PermImpl.TransactOpts)
   824  }
   825  
   826  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0xdbfad711.
   827  //
   828  // Solidity: function updateNodeStatus(string _orgId, string _enodeId, uint256 _action, address _caller) returns()
   829  func (_PermImpl *PermImplTransactor) UpdateNodeStatus(opts *bind.TransactOpts, _orgId string, _enodeId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   830  	return _PermImpl.contract.Transact(opts, "updateNodeStatus", _orgId, _enodeId, _action, _caller)
   831  }
   832  
   833  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0xdbfad711.
   834  //
   835  // Solidity: function updateNodeStatus(string _orgId, string _enodeId, uint256 _action, address _caller) returns()
   836  func (_PermImpl *PermImplSession) UpdateNodeStatus(_orgId string, _enodeId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   837  	return _PermImpl.Contract.UpdateNodeStatus(&_PermImpl.TransactOpts, _orgId, _enodeId, _action, _caller)
   838  }
   839  
   840  // UpdateNodeStatus is a paid mutator transaction binding the contract method 0xdbfad711.
   841  //
   842  // Solidity: function updateNodeStatus(string _orgId, string _enodeId, uint256 _action, address _caller) returns()
   843  func (_PermImpl *PermImplTransactorSession) UpdateNodeStatus(_orgId string, _enodeId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   844  	return _PermImpl.Contract.UpdateNodeStatus(&_PermImpl.TransactOpts, _orgId, _enodeId, _action, _caller)
   845  }
   846  
   847  // UpdateOrgStatus is a paid mutator transaction binding the contract method 0x3cf5f33b.
   848  //
   849  // Solidity: function updateOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   850  func (_PermImpl *PermImplTransactor) UpdateOrgStatus(opts *bind.TransactOpts, _orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   851  	return _PermImpl.contract.Transact(opts, "updateOrgStatus", _orgId, _action, _caller)
   852  }
   853  
   854  // UpdateOrgStatus is a paid mutator transaction binding the contract method 0x3cf5f33b.
   855  //
   856  // Solidity: function updateOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   857  func (_PermImpl *PermImplSession) UpdateOrgStatus(_orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   858  	return _PermImpl.Contract.UpdateOrgStatus(&_PermImpl.TransactOpts, _orgId, _action, _caller)
   859  }
   860  
   861  // UpdateOrgStatus is a paid mutator transaction binding the contract method 0x3cf5f33b.
   862  //
   863  // Solidity: function updateOrgStatus(string _orgId, uint256 _action, address _caller) returns()
   864  func (_PermImpl *PermImplTransactorSession) UpdateOrgStatus(_orgId string, _action *big.Int, _caller common.Address) (*types.Transaction, error) {
   865  	return _PermImpl.Contract.UpdateOrgStatus(&_PermImpl.TransactOpts, _orgId, _action, _caller)
   866  }
   867  
   868  // PermImplPermissionsInitializedIterator is returned from FilterPermissionsInitialized and is used to iterate over the raw logs and unpacked data for PermissionsInitialized events raised by the PermImpl contract.
   869  type PermImplPermissionsInitializedIterator struct {
   870  	Event *PermImplPermissionsInitialized // Event containing the contract specifics and raw log
   871  
   872  	contract *bind.BoundContract // Generic contract to use for unpacking event data
   873  	event    string              // Event name to use for unpacking event data
   874  
   875  	logs chan types.Log        // Log channel receiving the found contract events
   876  	sub  ethereum.Subscription // Subscription for errors, completion and termination
   877  	done bool                  // Whether the subscription completed delivering logs
   878  	fail error                 // Occurred error to stop iteration
   879  }
   880  
   881  // Next advances the iterator to the subsequent event, returning whether there
   882  // are any more events found. In case of a retrieval or parsing error, false is
   883  // returned and Error() can be queried for the exact failure.
   884  func (it *PermImplPermissionsInitializedIterator) Next() bool {
   885  	// If the iterator failed, stop iterating
   886  	if it.fail != nil {
   887  		return false
   888  	}
   889  	// If the iterator completed, deliver directly whatever's available
   890  	if it.done {
   891  		select {
   892  		case log := <-it.logs:
   893  			it.Event = new(PermImplPermissionsInitialized)
   894  			if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   895  				it.fail = err
   896  				return false
   897  			}
   898  			it.Event.Raw = log
   899  			return true
   900  
   901  		default:
   902  			return false
   903  		}
   904  	}
   905  	// Iterator still in progress, wait for either a data or an error event
   906  	select {
   907  	case log := <-it.logs:
   908  		it.Event = new(PermImplPermissionsInitialized)
   909  		if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
   910  			it.fail = err
   911  			return false
   912  		}
   913  		it.Event.Raw = log
   914  		return true
   915  
   916  	case err := <-it.sub.Err():
   917  		it.done = true
   918  		it.fail = err
   919  		return it.Next()
   920  	}
   921  }
   922  
   923  // Error returns any retrieval or parsing error occurred during filtering.
   924  func (it *PermImplPermissionsInitializedIterator) Error() error {
   925  	return it.fail
   926  }
   927  
   928  // Close terminates the iteration process, releasing any pending underlying
   929  // resources.
   930  func (it *PermImplPermissionsInitializedIterator) Close() error {
   931  	it.sub.Unsubscribe()
   932  	return nil
   933  }
   934  
   935  // PermImplPermissionsInitialized represents a PermissionsInitialized event raised by the PermImpl contract.
   936  type PermImplPermissionsInitialized struct {
   937  	NetworkBootStatus bool
   938  	Raw               types.Log // Blockchain specific contextual infos
   939  }
   940  
   941  // FilterPermissionsInitialized is a free log retrieval operation binding the contract event 0x04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf.
   942  //
   943  // Solidity: event PermissionsInitialized(bool _networkBootStatus)
   944  func (_PermImpl *PermImplFilterer) FilterPermissionsInitialized(opts *bind.FilterOpts) (*PermImplPermissionsInitializedIterator, error) {
   945  
   946  	logs, sub, err := _PermImpl.contract.FilterLogs(opts, "PermissionsInitialized")
   947  	if err != nil {
   948  		return nil, err
   949  	}
   950  	return &PermImplPermissionsInitializedIterator{contract: _PermImpl.contract, event: "PermissionsInitialized", logs: logs, sub: sub}, nil
   951  }
   952  
   953  var PermissionsInitializedTopicHash = "0x04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf"
   954  
   955  // WatchPermissionsInitialized is a free log subscription operation binding the contract event 0x04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf.
   956  //
   957  // Solidity: event PermissionsInitialized(bool _networkBootStatus)
   958  func (_PermImpl *PermImplFilterer) WatchPermissionsInitialized(opts *bind.WatchOpts, sink chan<- *PermImplPermissionsInitialized) (event.Subscription, error) {
   959  
   960  	logs, sub, err := _PermImpl.contract.WatchLogs(opts, "PermissionsInitialized")
   961  	if err != nil {
   962  		return nil, err
   963  	}
   964  	return event.NewSubscription(func(quit <-chan struct{}) error {
   965  		defer sub.Unsubscribe()
   966  		for {
   967  			select {
   968  			case log := <-logs:
   969  				// New log arrived, parse the event and forward to the user
   970  				event := new(PermImplPermissionsInitialized)
   971  				if err := _PermImpl.contract.UnpackLog(event, "PermissionsInitialized", log); err != nil {
   972  					return err
   973  				}
   974  				event.Raw = log
   975  
   976  				select {
   977  				case sink <- event:
   978  				case err := <-sub.Err():
   979  					return err
   980  				case <-quit:
   981  					return nil
   982  				}
   983  			case err := <-sub.Err():
   984  				return err
   985  			case <-quit:
   986  				return nil
   987  			}
   988  		}
   989  	}), nil
   990  }
   991  
   992  // ParsePermissionsInitialized is a log parse operation binding the contract event 0x04f651be6fb8fc575d94591e56e9f6e66e33ef23e949765918b3bdae50c617cf.
   993  //
   994  // Solidity: event PermissionsInitialized(bool _networkBootStatus)
   995  func (_PermImpl *PermImplFilterer) ParsePermissionsInitialized(log types.Log) (*PermImplPermissionsInitialized, error) {
   996  	event := new(PermImplPermissionsInitialized)
   997  	if err := _PermImpl.contract.UnpackLog(event, "PermissionsInitialized", log); err != nil {
   998  		return nil, err
   999  	}
  1000  	return event, nil
  1001  }