func (_Tester *TesterCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _Tester.Contract.contract.Call(opts, result, method, params...)
}
Call invokes the (constant) contract method with params as input values and
sets the output to result. The result type might be a single field for simple
returns, a slice of interfaces for anonymous returns and a struct for named
returns.
package funcparser
import (
	"math/big"
	"strings"
	ethereum "github.com/ethereum/go-ethereum"
	"github.com/ethereum/go-ethereum/accounts/abi"
	"github.com/ethereum/go-ethereum/accounts/abi/bind"
	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/core/types"
	"github.com/ethereum/go-ethereum/event"
)
var (
	_ = big.NewInt
	_ = strings.NewReader
	_ = ethereum.NotFound
	_ = bind.Bind
	_ = common.Big1
	_ = types.BloomLookup
	_ = event.NewSubscription
)
const TesterABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"string[]\"}],\"name\":\"testStringArray\",\"outputs\":[{\"name\":\"\",\"type\":\"string[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint256[][]\"}],\"name\":\"testUint2562DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint256[]\"}],\"name\":\"testUint256Array\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint8[]\"}],\"name\":\"testUint8Array\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int256[]\"}],\"name\":\"testInt256Array\",\"outputs\":[{\"name\":\"\",\"type\":\"int256[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int32[][]\"}],\"name\":\"testInt322DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"int32[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"bool[]\"}],\"name\":\"testBoolArray\",\"outputs\":[{\"name\":\"\",\"type\":\"bool[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int256\"}],\"name\":\"testInt256\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint32[][]\"}],\"name\":\"testUint322DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int128[][]\"}],\"name\":\"testInt1282DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"int128[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"bytes\"}],\"name\":\"testBytes\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"bool[][]\"}],\"name\":\"testBool2DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"bool[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int32[]\"}],\"name\":\"testInt32Array\",\"outputs\":[{\"name\":\"\",\"type\":\"int32[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int256[][]\"}],\"name\":\"testInt2562DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"int256[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int8[]\"}],\"name\":\"testInt8Array\",\"outputs\":[{\"name\":\"\",\"type\":\"int8[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint64\"}],\"name\":\"testUint64\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"address\"}],\"name\":\"testAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint32\"}],\"name\":\"testUint32\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint256\"}],\"name\":\"testUint256\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"bytes[][]\"}],\"name\":\"testBytes2DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint8\"}],\"name\":\"testUint8\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint128[][]\"}],\"name\":\"testUint1282DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"uint128[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int16\"}],\"name\":\"testInt16\",\"outputs\":[{\"name\":\"\",\"type\":\"int16\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint16\"}],\"name\":\"testUint16\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"string\"}],\"name\":\"testString\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int16[][]\"}],\"name\":\"testInt162DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"int16[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int32\"}],\"name\":\"testInt32\",\"outputs\":[{\"name\":\"\",\"type\":\"int32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int64[][]\"}],\"name\":\"testInt642DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"int64[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint16[]\"}],\"name\":\"testUint16Array\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"string[][]\"}],\"name\":\"testString2DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"string[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint64[][]\"}],\"name\":\"testUint642DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int64\"}],\"name\":\"testInt64\",\"outputs\":[{\"name\":\"\",\"type\":\"int64\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint128\"}],\"name\":\"testUint128\",\"outputs\":[{\"name\":\"\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint128[]\"}],\"name\":\"testUint128Array\",\"outputs\":[{\"name\":\"\",\"type\":\"uint128[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"address[]\"}],\"name\":\"testAddressArray\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"address[][]\"}],\"name\":\"testAddress2DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"address[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"bytes[]\"}],\"name\":\"testBytesArray\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint32[]\"}],\"name\":\"testUint32Array\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int8[][]\"}],\"name\":\"testInt82DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"int8[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int8\"}],\"name\":\"testInt8\",\"outputs\":[{\"name\":\"\",\"type\":\"int8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int16[]\"}],\"name\":\"testInt16Array\",\"outputs\":[{\"name\":\"\",\"type\":\"int16[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint64[]\"}],\"name\":\"testUint64Array\",\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int128\"}],\"name\":\"testInt128\",\"outputs\":[{\"name\":\"\",\"type\":\"int128\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int128[]\"}],\"name\":\"testInt128Array\",\"outputs\":[{\"name\":\"\",\"type\":\"int128[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint16[][]\"}],\"name\":\"testUint162DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"uint8[][]\"}],\"name\":\"testUint82DArray\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8[][]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"bool\"}],\"name\":\"testBool\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"arg1\",\"type\":\"int64[]\"}],\"name\":\"testInt64Array\",\"outputs\":[{\"name\":\"\",\"type\":\"int64[]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"test\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}]"
type Tester struct {
	TesterCaller      
	TesterTransactor  
	TesterFilterer    
}
type TesterCaller struct {
	contract *bind.BoundContract  
}
type TesterTransactor struct {
	contract *bind.BoundContract  
}
type TesterFilterer struct {
	contract *bind.BoundContract  
}
type TesterSession struct {
	Contract     *Tester            
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type TesterCallerSession struct {
	Contract *TesterCaller  
	CallOpts bind.CallOpts  
}
type TesterTransactorSession struct {
	Contract     *TesterTransactor  
	TransactOpts bind.TransactOpts  
}
type TesterRaw struct {
	Contract *Tester  
}
type TesterCallerRaw struct {
	Contract *TesterCaller  
}
type TesterTransactorRaw struct {
	Contract *TesterTransactor  
}
func NewTester(address common.Address, backend bind.ContractBackend) (*Tester, error) {
	contract, err := bindTester(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &Tester{TesterCaller: TesterCaller{contract: contract}, TesterTransactor: TesterTransactor{contract: contract}, TesterFilterer: TesterFilterer{contract: contract}}, nil
}
func NewTesterCaller(address common.Address, caller bind.ContractCaller) (*TesterCaller, error) {
	contract, err := bindTester(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &TesterCaller{contract: contract}, nil
}
func NewTesterTransactor(address common.Address, transactor bind.ContractTransactor) (*TesterTransactor, error) {
	contract, err := bindTester(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &TesterTransactor{contract: contract}, nil
}
func NewTesterFilterer(address common.Address, filterer bind.ContractFilterer) (*TesterFilterer, error) {
	contract, err := bindTester(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &TesterFilterer{contract: contract}, nil
}
func bindTester(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(TesterABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
func (_Tester *TesterRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error {
	return _Tester.Contract.TesterCaller.contract.Call(opts, result, method, params...)
}
func (_Tester *TesterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Tester.Contract.TesterTransactor.contract.Transfer(opts)
}
func (_Tester *TesterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _Tester.Contract.TesterTransactor.contract.Transact(opts, method, params...)
}