go-sdk icon indicating copy to clipboard operation
go-sdk copied to clipboard

go-sdk部署合约异常

Open XUPTSunHui opened this issue 2 years ago • 1 comments

用go-sdk部署合约后,合约地址为全零,无法调用;但是利用console部署合约就一切正常,合约地址也是正常的,合约也可以正常调用。

XUPTSunHui avatar Oct 24 '22 03:10 XUPTSunHui

我用v1.0.0测试了下没问题的

package main

import (
	"fmt"
	"log"
	"math/big"
	"strings"

	"github.com/FISCO-BCOS/go-sdk/abi"
	"github.com/FISCO-BCOS/go-sdk/abi/bind"
	"github.com/FISCO-BCOS/go-sdk/client"
	"github.com/FISCO-BCOS/go-sdk/conf"
	"github.com/FISCO-BCOS/go-sdk/core/types"
	ethereum "github.com/ethereum/go-ethereum"
	"github.com/ethereum/go-ethereum/common"
)

// Reference imports to suppress errors if they are not otherwise used.
var (
	_ = big.NewInt
	_ = strings.NewReader
	_ = ethereum.NotFound
	_ = abi.U256
	_ = bind.Bind
	_ = common.Big1
	_ = types.BloomLookup
)

// OneABI is the input ABI used to generate the binding from.
const OneABI = "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InsertDataEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"count\",\"type\":\"int256\"}],\"name\":\"InsertResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"info\",\"type\":\"string\"}],\"name\":\"PrintInfo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"count\",\"type\":\"int256\"}],\"name\":\"SetResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"count\",\"type\":\"int256\"}],\"name\":\"UpdateResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"}],\"name\":\"CancelTicket\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_content\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"creator\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"create_time\",\"type\":\"string\"}],\"name\":\"CheckStepContent\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"}],\"name\":\"CheckStepSequence\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"guarder\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"guard_time\",\"type\":\"string\"}],\"name\":\"GuardTicketResult\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pre_ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"pre_step_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"pre_ticket_sender\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"pre_ticket_receive_time\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"pre_ticket_receiver\",\"type\":\"string\"}],\"name\":\"PreTicketResult\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"}],\"name\":\"QueryGuardTicketResult\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"pre_ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"pre_step_id\",\"type\":\"string\"}],\"name\":\"QueryPreTicketResult\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"}],\"name\":\"QueryRecvStepContent\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"}],\"name\":\"QueryReportTicketResult\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"}],\"name\":\"QuerySendTicketResult\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"}],\"name\":\"QueryStep\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"}],\"name\":\"QueryStepHistory\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"}],\"name\":\"QueryStepbyTicketID\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"}],\"name\":\"QueryTicket\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"}],\"name\":\"QueryTicketExecProgress\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"}],\"name\":\"QueryTicketHistory\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reporter\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"report_time\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"confirmer\",\"type\":\"string\"}],\"name\":\"ReportTicketResult\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"sender\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"send_time\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"receiver\",\"type\":\"string\"}],\"name\":\"SendTicketResult\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_result\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"reason_desp\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"creator\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"create_time\",\"type\":\"string\"}],\"name\":\"StepExecResultStorage\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_info\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_seq\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"creator\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"create_time\",\"type\":\"string\"}],\"name\":\"UploadStep\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"ticket_id\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ticket_info\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"step_count\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"creator\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"create_time\",\"type\":\"string\"}],\"name\":\"UploadTicket\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"

// OneBin is the compiled bytecode used for deploying new contracts.
var OneBin = "0x60806040523480156200001157600080fd5b506110016000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518060400160405280600d81526020017f7469636b65745f646174613131000000000000000000000000000000000000008152506040518263ffffffff1660e01b8152600401620000e5919062000ccc565b602060405180830381600087803b1580156200010057600080fd5b505af115801562000115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013b9190620007b1565b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518060400160405280600b81526020017f737465705f6461746131310000000000000000000000000000000000000000008152506040518263ffffffff1660e01b8152600401620001cd919062000c30565b602060405180830381600087803b158015620001e857600080fd5b505af1158015620001fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002239190620007b1565b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518060400160405280601681526020017f7469636b65745f616c6c5f737465705f646174613131000000000000000000008152506040518263ffffffff1660e01b8152600401620002b5919062000db6565b602060405180830381600087803b158015620002d057600080fd5b505af1158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b9190620007b1565b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518060400160405280601981526020017f737465705f636f6e74656e745f636865636b5f646174613131000000000000008152506040518263ffffffff1660e01b81526004016200039d919062000d68565b602060405180830381600087803b158015620003b857600080fd5b505af1158015620003cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f39190620007b1565b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518060400160405280601881526020017f7072655f7469636b65745f726573756c745f64617461313100000000000000008152506040518263ffffffff1660e01b815260040162000485919062000e04565b602060405180830381600087803b158015620004a057600080fd5b505af1158015620004b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004db9190620007b1565b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518060400160405280601a81526020017f67756172645f7469636b65745f726573756c745f6461746131310000000000008152506040518263ffffffff1660e01b81526004016200056d919062000be2565b602060405180830381600087803b1580156200058857600080fd5b505af11580156200059d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005c39190620007b1565b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518060400160405280601981526020017f73656e645f7469636b65745f726573756c745f646174613131000000000000008152506040518263ffffffff1660e01b815260040162000655919062000d1a565b602060405180830381600087803b1580156200067057600080fd5b505af115801562000685573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006ab9190620007b1565b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356004b6a6040518060400160405280601b81526020017f7265706f72745f7469636b65745f726573756c745f64617461313100000000008152506040518263ffffffff1660e01b81526004016200073d919062000c7e565b602060405180830381600087803b1580156200075857600080fd5b505af11580156200076d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007939190620007b1565b5062000ed9565b600081519050620007ab8162000ebf565b92915050565b600060208284031215620007c457600080fd5b6000620007d4848285016200079a565b91505092915050565b6000620007ea8262000e52565b620007f6818562000e5d565b93506200080881856020860162000e78565b620008138162000eae565b840191505092915050565b60006200082d60098362000e5d565b91507f7469636b65745f696400000000000000000000000000000000000000000000006000830152602082019050919050565b60006200086f601a8362000e5d565b91507f737465705f69642c677561726465722c67756172645f74696d650000000000006000830152602082019050919050565b6000620008b1600d8362000e5d565b91507f7072655f7469636b65745f6964000000000000000000000000000000000000006000830152602082019050919050565b6000620008f3602e8362000e5d565b91507f737465705f69642c737465705f696e666f2c737465705f7365712c637265617460008301527f6f722c6372656174655f74696d650000000000000000000000000000000000006020830152604082019050919050565b60006200095b60268362000e5d565b91507f737465705f69642c7265706f727465722c7265706f72745f74696d652c636f6e60008301527f6669726d657200000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620009c360388362000e5d565b91507f7469636b65745f696e666f2c737465705f636f756e742c63726561746f722c6360008301527f72656174655f74696d652c63616e63656c5f7469636b657400000000000000006020830152604082019050919050565b600062000a2b60498362000e5d565b91507f7072655f737465705f69642c7072655f7469636b65745f73656e6465722c707260008301527f655f7469636b65745f726563656976655f74696d652c7072655f7469636b657460208301527f5f726563656976657200000000000000000000000000000000000000000000006040830152606082019050919050565b600062000ab960218362000e5d565b91507f737465705f69642c73656e6465722c73656e645f74696d652c7265636569766560008301527f72000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600062000b2160288362000e5d565b91507f737465705f69642c737465705f636f6e74656e742c63726561746f722c63726560008301527f6174655f74696d650000000000000000000000000000000000000000000000006020830152604082019050919050565b600062000b8960348362000e5d565b91507f737465705f7365712c737465705f726573756c742c726561736f6e5f6465737060008301527f2c63726561746f722c6372656174655f74696d650000000000000000000000006020830152604082019050919050565b6000606082019050818103600083015262000bfe8184620007dd565b9050818103602083015262000c13816200081e565b9050818103604083015262000c288162000860565b905092915050565b6000606082019050818103600083015262000c4c8184620007dd565b9050818103602083015262000c61816200081e565b9050818103604083015262000c7681620008e4565b905092915050565b6000606082019050818103600083015262000c9a8184620007dd565b9050818103602083015262000caf816200081e565b9050818103604083015262000cc4816200094c565b905092915050565b6000606082019050818103600083015262000ce88184620007dd565b9050818103602083015262000cfd816200081e565b9050818103604083015262000d1281620009b4565b905092915050565b6000606082019050818103600083015262000d368184620007dd565b9050818103602083015262000d4b816200081e565b9050818103604083015262000d608162000aaa565b905092915050565b6000606082019050818103600083015262000d848184620007dd565b9050818103602083015262000d99816200081e565b9050818103604083015262000dae8162000b12565b905092915050565b6000606082019050818103600083015262000dd28184620007dd565b9050818103602083015262000de7816200081e565b9050818103604083015262000dfc8162000b7a565b905092915050565b6000606082019050818103600083015262000e208184620007dd565b9050818103602083015262000e3581620008a2565b9050818103604083015262000e4a8162000a1c565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050919050565b60005b8381101562000e9857808201518184015260208101905062000e7b565b8381111562000ea8576000848401525b50505050565b6000601f19601f8301169050919050565b62000eca8162000e6e565b811462000ed657600080fd5b50565b61a2c58062000ee96000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063838c197b116100b8578063b1a3a74e1161007c578063b1a3a74e14610421578063b595a5f314610454578063c3e954e414610484578063d9e0077b146104b4578063dae4df81146104e6578063f9cbdff91461051657610137565b8063838c197b1461032b5780638ab0d1281461035f5780638e8bf23c146103905780639022cf52146103c05780639fe2f1f7146103f057610137565b80636533ebe8116100ff5780636533ebe8146102325780636f37586014610262578063725030e91461029557806372507461146102c557806375789fbc146102f757610137565b806303429db01461013c5780631d98a66b1461016c5780632d57ba4a1461019f5780633e29ace0146101cf5780635c148b6314610202575b600080fd5b6101566004803603810190610151919061880f565b610548565b604051610163919061944e565b60405180910390f35b6101866004803603810190610181919061880f565b610a4a565b6040516101969493929190619704565b60405180910390f35b6101b960048036038101906101b491906188fd565b611017565b6040516101c69190619562565b60405180910390f35b6101e960048036038101906101e4919061880f565b6114ae565b6040516101f99493929190619470565b60405180910390f35b61021c60048036038101906102179190618aaf565b611da7565b6040516102299190619562565b60405180910390f35b61024c600480360381019061024791906189c0565b61236d565b6040516102599190619562565b60405180910390f35b61027c6004803603810190610277919061880f565b612870565b60405161028c9493929190619470565b60405180910390f35b6102af60048036038101906102aa9190618891565b613169565b6040516102bc9190619547565b60405180910390f35b6102df60048036038101906102da9190618891565b613227565b6040516102ee939291906196b8565b60405180910390f35b610311600480360381019061030c9190618891565b6137ca565b6040516103229594939291906194d1565b60405180910390f35b61034560048036038101906103409190618891565b613943565b604051610356959493929190619765565b60405180910390f35b61037960048036038101906103749190618891565b614071565b604051610387929190619681565b60405180910390f35b6103aa60048036038101906103a5919061880f565b61457e565b6040516103b79190619562565b60405180910390f35b6103da60048036038101906103d591906189c0565b614919565b6040516103e79190619562565b60405180910390f35b61040a600480360381019061040591906189c0565b614e85565b60405161041892919061957d565b60405180910390f35b61043b6004803603810190610436919061880f565b614f23565b60405161044b9493929190619470565b60405180910390f35b61046e600480360381019061046991906189c0565b615887565b60405161047b9190619562565b60405180910390f35b61049e600480360381019061049991906189c0565b615d8a565b6040516104ab9190619562565b60405180910390f35b6104ce60048036038101906104c99190618891565b61628d565b6040516104dd939291906196b8565b60405180910390f35b61050060048036038101906104fb9190618aaf565b616830565b60405161050d9190619562565b60405180910390f35b610530600480360381019061052b9190618891565b6168bb565b60405161053f939291906196b8565b60405180910390f35b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600b81526020017f737465705f6461746131310000000000000000000000000000000000000000008152506040518263ffffffff1660e01b81526004016105db91906195c1565b60206040518083038186803b1580156105f357600080fd5b505afa158015610607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062b91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561067557600080fd5b505afa158015610689573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ad9190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1856040518263ffffffff1660e01b81526004016106e891906197db565b600060405180830381600087803b15801561070257600080fd5b505af1158015610716573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3986846040518363ffffffff1660e01b81526004016107579291906195e3565b60206040518083038186803b15801561076f57600080fd5b505afa158015610783573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a7919061876b565b905060608173ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f157600080fd5b505afa158015610805573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082991906187e6565b67ffffffffffffffff8111801561083f57600080fd5b5060405190808252806020026020018201604052801561087357816020015b606081526020019060019003908161085e5790505b50905060008090505b8273ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156108c257600080fd5b505afa1580156108d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fa91906187e6565b811215610a3d5760008373ffffffffffffffffffffffffffffffffffffffff1663846719e0836040518263ffffffff1660e01b815260040161093c9190619562565b60206040518083038186803b15801561095457600080fd5b505afa158015610968573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098c9190618794565b90508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b81526004016109c590619ef5565b60006040518083038186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610a1a9190618850565b838381518110610a2657fe5b60200260200101819052505080600101905061087c565b5080945050505050919050565b60608060608060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600d81526020017f7469636b65745f646174613131000000000000000000000000000000000000008152506040518263ffffffff1660e01b8152600401610ae191906195c1565b60206040518083038186803b158015610af957600080fd5b505afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3191906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7b57600080fd5b505afa158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1886040518263ffffffff1660e01b8152600401610bee91906197db565b600060405180830381600087803b158015610c0857600080fd5b505af1158015610c1c573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3989846040518363ffffffff1660e01b8152600401610c5d9291906195e3565b60206040518083038186803b158015610c7557600080fd5b505afa158015610c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cad919061876b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663846719e060018473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d1557600080fd5b505afa158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d91906187e6565b036040518263ffffffff1660e01b8152600401610d6a9190619562565b60206040518083038186803b158015610d8257600080fd5b505afa158015610d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dba9190618794565b905060608173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401610df590619a23565b60006040518083038186803b158015610e0d57600080fd5b505afa158015610e21573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610e4a9190618850565b905060608273ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401610e8590619d4c565b60006040518083038186803b158015610e9d57600080fd5b505afa158015610eb1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610eda9190618850565b905060608373ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401610f1590619810565b60006040518083038186803b158015610f2d57600080fd5b505afa158015610f41573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610f6a9190618850565b905060608473ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401610fa590619acd565b60006040518083038186803b158015610fbd57600080fd5b505afa158015610fd1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610ffa9190618850565b9050838383839b509b509b509b5050505050505050509193509193565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601a81526020017f67756172645f7469636b65745f726573756c745f6461746131310000000000008152506040518263ffffffff1660e01b81526004016110a991906195c1565b60206040518083038186803b1580156110c157600080fd5b505afa1580156110d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f991906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b15801561114357600080fd5b505afa158015611157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117b9190618794565b90508073ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff1660e01b81526004016111b691906197db565b600060405180830381600087803b1580156111d057600080fd5b505af11580156111e4573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff1660e01b81526004016112219190619cc2565b600060405180830381600087803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516866040518263ffffffff1660e01b815260040161128c9190619885565b600060405180830381600087803b1580156112a657600080fd5b505af11580156112ba573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516856040518263ffffffff1660e01b81526004016112f79190619c18565b600060405180830381600087803b15801561131157600080fd5b505af1158015611325573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166331afac3689846040518363ffffffff1660e01b8152600401611366929190619613565b602060405180830381600087803b15801561138057600080fd5b505af1158015611394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b891906187e6565b90506000811315611432577faddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d6040518060400160405280601a81526020017f67756172645f7469636b65745f726573756c745f64617461313100000000000081525089604051611429929190619681565b60405180910390a15b7fb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d6816040516114619190619562565b60405180910390a17fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e48860405161149891906195c1565b60405180910390a1809350505050949350505050565b60608060608060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601981526020017f737465705f636f6e74656e745f636865636b5f646174613131000000000000008152506040518263ffffffff1660e01b815260040161154591906195c1565b60206040518083038186803b15801561155d57600080fd5b505afa158015611571573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159591906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b1580156115df57600080fd5b505afa1580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116179190618742565b905060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3989846040518363ffffffff1660e01b81526004016116569291906195e3565b60206040518083038186803b15801561166e57600080fd5b505afa158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a6919061876b565b905060608173ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116f057600080fd5b505afa158015611704573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172891906187e6565b67ffffffffffffffff8111801561173e57600080fd5b5060405190808252806020026020018201604052801561177257816020015b606081526020019060019003908161175d5790505b50905060608273ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117bd57600080fd5b505afa1580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906187e6565b67ffffffffffffffff8111801561180b57600080fd5b5060405190808252806020026020018201604052801561183f57816020015b606081526020019060019003908161182a5790505b50905060608373ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561188a57600080fd5b505afa15801561189e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c291906187e6565b67ffffffffffffffff811180156118d857600080fd5b5060405190808252806020026020018201604052801561190c57816020015b60608152602001906001900390816118f75790505b50905060608473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906187e6565b67ffffffffffffffff811180156119a557600080fd5b506040519080825280602002602001820160405280156119d957816020015b60608152602001906001900390816119c45790505b50905060008090505b8573ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a2857600080fd5b505afa158015611a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6091906187e6565b811215611d8c5760008673ffffffffffffffffffffffffffffffffffffffff1663846719e0836040518263ffffffff1660e01b8152600401611aa29190619562565b60206040518083038186803b158015611aba57600080fd5b505afa158015611ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af29190618794565b90508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401611b2b90619ca2565b60006040518083038186803b158015611b4357600080fd5b505afa158015611b57573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b809190618850565b868381518110611b8c57fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401611bce90619ea0565b60006040518083038186803b158015611be657600080fd5b505afa158015611bfa573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611c239190618850565b858381518110611c2f57fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401611c7190619810565b60006040518083038186803b158015611c8957600080fd5b505afa158015611c9d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611cc69190618850565b848381518110611cd257fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401611d1490619acd565b60006040518083038186803b158015611d2c57600080fd5b505afa158015611d40573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611d699190618850565b838381518110611d7557fe5b6020026020010181905250508060010190506119e2565b50838383839a509a509a509a50505050505050509193509193565b600080611db388616e5e565b90506000811415611dfd577fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e4604051611deb90619cf7565b60405180910390a16000915050612363565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600b81526020017f737465705f6461746131310000000000000000000000000000000000000000008152506040518263ffffffff1660e01b8152600401611e8e91906195c1565b60206040518083038186803b158015611ea657600080fd5b505afa158015611eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ede91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b158015611f2857600080fd5b505afa158015611f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f609190618794565b90508073ffffffffffffffffffffffffffffffffffffffff1663e942b5168a6040518263ffffffff1660e01b8152600401611f9b9190619cc2565b600060405180830381600087803b158015611fb557600080fd5b505af1158015611fc9573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516896040518263ffffffff1660e01b81526004016120069190619f15565b600060405180830381600087803b15801561202057600080fd5b505af1158015612034573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff1660e01b81526004016120719190619f6a565b600060405180830381600087803b15801561208b57600080fd5b505af115801561209f573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b5168b6040518263ffffffff1660e01b81526004016120dc91906197db565b600060405180830381600087803b1580156120f657600080fd5b505af115801561210a573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff1660e01b81526004016121479190619830565b600060405180830381600087803b15801561216157600080fd5b505af1158015612175573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516866040518263ffffffff1660e01b81526004016121b29190619aed565b600060405180830381600087803b1580156121cc57600080fd5b505af11580156121e0573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166331afac368c846040518363ffffffff1660e01b8152600401612221929190619613565b602060405180830381600087803b15801561223b57600080fd5b505af115801561224f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227391906187e6565b905060008113156122ed577faddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d6040518060400160405280600b81526020017f737465705f6461746131310000000000000000000000000000000000000000008152508c6040516122e4929190619681565b60405180910390a15b7fb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d68160405161231c9190619562565b60405180910390a17fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e48a60405161235391906195c1565b60405180910390a1809450505050505b9695505050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601b81526020017f7265706f72745f7469636b65745f726573756c745f64617461313100000000008152506040518263ffffffff1660e01b81526004016123ff91906195c1565b60206040518083038186803b15801561241757600080fd5b505afa15801561242b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244f91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b15801561249957600080fd5b505afa1580156124ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d19190618794565b90508073ffffffffffffffffffffffffffffffffffffffff1663e942b516896040518263ffffffff1660e01b815260040161250c91906197db565b600060405180830381600087803b15801561252657600080fd5b505af115801561253a573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff1660e01b81526004016125779190619cc2565b600060405180830381600087803b15801561259157600080fd5b505af11580156125a5573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff1660e01b81526004016125e29190619984565b600060405180830381600087803b1580156125fc57600080fd5b505af1158015612610573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516866040518263ffffffff1660e01b815260040161264d9190619c6d565b600060405180830381600087803b15801561266757600080fd5b505af115801561267b573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516856040518263ffffffff1660e01b81526004016126b89190619e16565b600060405180830381600087803b1580156126d257600080fd5b505af11580156126e6573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166331afac368a846040518363ffffffff1660e01b8152600401612727929190619613565b602060405180830381600087803b15801561274157600080fd5b505af1158015612755573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277991906187e6565b905060008113156127f3577faddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d6040518060400160405280601b81526020017f7265706f72745f7469636b65745f726573756c745f64617461313100000000008152508a6040516127ea929190619681565b60405180910390a15b7fb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d6816040516128229190619562565b60405180910390a17fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e48960405161285991906195c1565b60405180910390a180935050505095945050505050565b60608060608060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601681526020017f7469636b65745f616c6c5f737465705f646174613131000000000000000000008152506040518263ffffffff1660e01b815260040161290791906195c1565b60206040518083038186803b15801561291f57600080fd5b505afa158015612933573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295791906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b1580156129a157600080fd5b505afa1580156129b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d99190618742565b905060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3989846040518363ffffffff1660e01b8152600401612a189291906195e3565b60206040518083038186803b158015612a3057600080fd5b505afa158015612a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a68919061876b565b905060608173ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ab257600080fd5b505afa158015612ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aea91906187e6565b67ffffffffffffffff81118015612b0057600080fd5b50604051908082528060200260200182016040528015612b3457816020015b6060815260200190600190039081612b1f5790505b50905060608273ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612b7f57600080fd5b505afa158015612b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb791906187e6565b67ffffffffffffffff81118015612bcd57600080fd5b50604051908082528060200260200182016040528015612c0157816020015b6060815260200190600190039081612bec5790505b50905060608373ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c4c57600080fd5b505afa158015612c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8491906187e6565b67ffffffffffffffff81118015612c9a57600080fd5b50604051908082528060200260200182016040528015612cce57816020015b6060815260200190600190039081612cb95790505b50905060608473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612d1957600080fd5b505afa158015612d2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5191906187e6565b67ffffffffffffffff81118015612d6757600080fd5b50604051908082528060200260200182016040528015612d9b57816020015b6060815260200190600190039081612d865790505b50905060008090505b8573ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612dea57600080fd5b505afa158015612dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2291906187e6565b81121561314e5760008673ffffffffffffffffffffffffffffffffffffffff1663846719e0836040518263ffffffff1660e01b8152600401612e649190619562565b60206040518083038186803b158015612e7c57600080fd5b505afa158015612e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb49190618794565b90508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401612eed90619f4a565b60006040518083038186803b158015612f0557600080fd5b505afa158015612f19573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612f429190618850565b868381518110612f4e57fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401612f90906198ba565b60006040518083038186803b158015612fa857600080fd5b505afa158015612fbc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190612fe59190618850565b858381518110612ff157fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b815260040161303390619810565b60006040518083038186803b15801561304b57600080fd5b505afa15801561305f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906130889190618850565b84838151811061309457fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b81526004016130d690619acd565b60006040518083038186803b1580156130ee57600080fd5b505afa158015613102573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061312b9190618850565b83838151811061313757fe5b602002602001018190525050806001019050612da4565b50838383839a509a509a509a50505050505050509193509193565b60008061317584616e5e565b905060008114156131bf577fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e46040516131ad90619cf7565b60405180910390a16000915050613221565b60606131cb8585613943565b50505091505060006131dc82617179565b905060018114156131f35760019350505050613221565b60006131fe87617223565b905081600182011415613218576001945050505050613221565b60009450505050505b92915050565b606080606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601b81526020017f7265706f72745f7469636b65745f726573756c745f64617461313100000000008152506040518263ffffffff1660e01b81526004016132bd91906195c1565b60206040518083038186803b1580156132d557600080fd5b505afa1580156132e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330d91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561335757600080fd5b505afa15801561336b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061338f9190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1886040518263ffffffff1660e01b81526004016133ca91906197db565b600060405180830381600087803b1580156133e457600080fd5b505af11580156133f8573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1876040518263ffffffff1660e01b81526004016134359190619cc2565b600060405180830381600087803b15801561344f57600080fd5b505af1158015613463573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3989846040518363ffffffff1660e01b81526004016134a49291906195e3565b60206040518083038186803b1580156134bc57600080fd5b505afa1580156134d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134f4919061876b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663846719e060018473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561355c57600080fd5b505afa158015613570573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061359491906187e6565b036040518263ffffffff1660e01b81526004016135b19190619562565b60206040518083038186803b1580156135c957600080fd5b505afa1580156135dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136019190618794565b905060608173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b815260040161363c90619964565b60006040518083038186803b15801561365457600080fd5b505afa158015613668573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906136919190618850565b905060608273ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b81526004016136cc90619c4d565b60006040518083038186803b1580156136e457600080fd5b505afa1580156136f8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906137219190618850565b905060608373ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b815260040161375c90619df6565b60006040518083038186803b15801561377457600080fd5b505afa158015613788573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906137b19190618850565b9050828282995099509950505050505050509250925092565b60608060608060608061381388886040518060400160405280600981526020017f737465705f696e666f000000000000000000000000000000000000000000000081525061763b565b9050606061385789896040518060400160405280600881526020017f737465705f73657100000000000000000000000000000000000000000000000081525061763b565b9050606061389b8a8a6040518060400160405280600981526020017f7469636b65745f6964000000000000000000000000000000000000000000000081525061763b565b905060606138df8b8b6040518060400160405280600781526020017f63726561746f720000000000000000000000000000000000000000000000000081525061763b565b905060606139238c8c6040518060400160405280600b81526020017f6372656174655f74696d6500000000000000000000000000000000000000000081525061763b565b905084848484849950995099509950995050505050509295509295909350565b606080606080606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600b81526020017f737465705f6461746131310000000000000000000000000000000000000000008152506040518263ffffffff1660e01b81526004016139dc91906195c1565b60206040518083038186803b1580156139f457600080fd5b505afa158015613a08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a2c91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b158015613a7657600080fd5b505afa158015613a8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aae9190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d18a6040518263ffffffff1660e01b8152600401613ae991906197db565b600060405180830381600087803b158015613b0357600080fd5b505af1158015613b17573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1896040518263ffffffff1660e01b8152600401613b549190619cc2565b600060405180830381600087803b158015613b6e57600080fd5b505af1158015613b82573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e398b846040518363ffffffff1660e01b8152600401613bc39291906195e3565b60206040518083038186803b158015613bdb57600080fd5b505afa158015613bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c13919061876b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663846719e060018473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015613c7b57600080fd5b505afa158015613c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cb391906187e6565b036040518263ffffffff1660e01b8152600401613cd09190619562565b60206040518083038186803b158015613ce857600080fd5b505afa158015613cfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d209190618794565b90506060600467ffffffffffffffff81118015613d3c57600080fd5b50604051908082528060200260200182016040528015613d7057816020015b6060815260200190600190039081613d5b5790505b5090508173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401613daa90619ef5565b60006040518083038186803b158015613dc257600080fd5b505afa158015613dd6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613dff9190618850565b81600081518110613e0c57fe5b60200260200101819052508173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401613e4e90619f4a565b60006040518083038186803b158015613e6657600080fd5b505afa158015613e7a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613ea39190618850565b81600181518110613eb057fe5b60200260200101819052508173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401613ef290619810565b60006040518083038186803b158015613f0a57600080fd5b505afa158015613f1e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613f479190618850565b81600281518110613f5457fe5b60200260200101819052508173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401613f9690619acd565b60006040518083038186803b158015613fae57600080fd5b505afa158015613fc2573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190613feb9190618850565b81600381518110613ff857fe5b60200260200101819052508060008151811061401057fe5b60200260200101518160018151811061402557fe5b60200260200101518d8360028151811061403b57fe5b60200260200101518460038151811061405057fe5b60200260200101519950995099509950995050505050509295509295909350565b60608060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601a81526020017f67756172645f7469636b65745f726573756c745f6461746131310000000000008152506040518263ffffffff1660e01b815260040161410591906195c1565b60206040518083038186803b15801561411d57600080fd5b505afa158015614131573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061415591906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561419f57600080fd5b505afa1580156141b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d79190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1876040518263ffffffff1660e01b815260040161421291906197db565b600060405180830381600087803b15801561422c57600080fd5b505af1158015614240573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1866040518263ffffffff1660e01b815260040161427d9190619cc2565b600060405180830381600087803b15801561429757600080fd5b505af11580156142ab573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3988846040518363ffffffff1660e01b81526004016142ec9291906195e3565b60206040518083038186803b15801561430457600080fd5b505afa158015614318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061433c919061876b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663846719e060018473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156143a457600080fd5b505afa1580156143b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143dc91906187e6565b036040518263ffffffff1660e01b81526004016143f99190619562565b60206040518083038186803b15801561441157600080fd5b505afa158015614425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144499190618794565b905060608173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b815260040161448490619865565b60006040518083038186803b15801561449c57600080fd5b505afa1580156144b0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906144d99190618850565b905060608273ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b815260040161451490619bf8565b60006040518083038186803b15801561452c57600080fd5b505afa158015614540573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906145699190618850565b90508181975097505050505050509250929050565b6000806000905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600d81526020017f7469636b65745f646174613131000000000000000000000000000000000000008152506040518263ffffffff1660e01b815260040161461691906195c1565b60206040518083038186803b15801561462e57600080fd5b505afa158015614642573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061466691906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b1580156146b057600080fd5b505afa1580156146c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146e89190618794565b90508073ffffffffffffffffffffffffffffffffffffffff16638a42ebe9846040518263ffffffff1660e01b81526004016147239190619bca565b600060405180830381600087803b15801561473d57600080fd5b505af1158015614751573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561479d57600080fd5b505afa1580156147b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147d59190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1876040518263ffffffff1660e01b815260040161481091906197db565b600060405180830381600087803b15801561482a57600080fd5b505af115801561483e573d6000803e3d6000fd5b5050505060008373ffffffffffffffffffffffffffffffffffffffff1663bf2b70a18885856040518463ffffffff1660e01b815260040161488193929190619643565b602060405180830381600087803b15801561489b57600080fd5b505af11580156148af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148d391906187e6565b90507f8e5890af40fc24a059396aca2f83d6ce41fcef086876548fa4fb8ec27e9d292a816040516149049190619562565b60405180910390a18095505050505050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600d81526020017f7469636b65745f646174613131000000000000000000000000000000000000008152506040518263ffffffff1660e01b81526004016149ab91906195c1565b60206040518083038186803b1580156149c357600080fd5b505afa1580156149d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149fb91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b158015614a4557600080fd5b505afa158015614a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a7d9190618794565b90508073ffffffffffffffffffffffffffffffffffffffff1663e942b516896040518263ffffffff1660e01b8152600401614ab891906197db565b600060405180830381600087803b158015614ad257600080fd5b505af1158015614ae6573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff1660e01b8152600401614b239190619a43565b600060405180830381600087803b158015614b3d57600080fd5b505af1158015614b51573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff1660e01b8152600401614b8e9190619d6c565b600060405180830381600087803b158015614ba857600080fd5b505af1158015614bbc573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516866040518263ffffffff1660e01b8152600401614bf99190619830565b600060405180830381600087803b158015614c1357600080fd5b505af1158015614c27573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516856040518263ffffffff1660e01b8152600401614c649190619aed565b600060405180830381600087803b158015614c7e57600080fd5b505af1158015614c92573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b5166040518163ffffffff1660e01b8152600401614ccd90619b97565b600060405180830381600087803b158015614ce757600080fd5b505af1158015614cfb573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166331afac368a846040518363ffffffff1660e01b8152600401614d3c929190619613565b602060405180830381600087803b158015614d5657600080fd5b505af1158015614d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d8e91906187e6565b90506000811315614e08577faddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d6040518060400160405280600d81526020017f7469636b65745f646174613131000000000000000000000000000000000000008152508a604051614dff929190619681565b60405180910390a15b7fb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d681604051614e379190619562565b60405180910390a17fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e489604051614e6e91906195c1565b60405180910390a180935050505095945050505050565b6000806000614e9388616e5e565b90506000811415614ee3577fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e4604051614ecb90619cf7565b60405180910390a16000808191509250925050614f19565b6000614ef28989898989617bac565b90506060614f008a8a613943565b50505050905081614f11828a618078565b945094505050505b9550959350505050565b60608060608060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600d81526020017f7469636b65745f646174613131000000000000000000000000000000000000008152506040518263ffffffff1660e01b8152600401614fba91906195c1565b60206040518083038186803b158015614fd257600080fd5b505afa158015614fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061500a91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561505457600080fd5b505afa158015615068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061508c9190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1886040518263ffffffff1660e01b81526004016150c791906197db565b600060405180830381600087803b1580156150e157600080fd5b505af11580156150f5573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3989846040518363ffffffff1660e01b81526004016151369291906195e3565b60206040518083038186803b15801561514e57600080fd5b505afa158015615162573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190615186919061876b565b905060608173ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156151d057600080fd5b505afa1580156151e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061520891906187e6565b67ffffffffffffffff8111801561521e57600080fd5b5060405190808252806020026020018201604052801561525257816020015b606081526020019060019003908161523d5790505b50905060608273ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561529d57600080fd5b505afa1580156152b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906152d591906187e6565b67ffffffffffffffff811180156152eb57600080fd5b5060405190808252806020026020018201604052801561531f57816020015b606081526020019060019003908161530a5790505b50905060608373ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561536a57600080fd5b505afa15801561537e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153a291906187e6565b67ffffffffffffffff811180156153b857600080fd5b506040519080825280602002602001820160405280156153ec57816020015b60608152602001906001900390816153d75790505b50905060608473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561543757600080fd5b505afa15801561544b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061546f91906187e6565b67ffffffffffffffff8111801561548557600080fd5b506040519080825280602002602001820160405280156154b957816020015b60608152602001906001900390816154a45790505b50905060008090505b8573ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561550857600080fd5b505afa15801561551c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061554091906187e6565b81121561586c5760008673ffffffffffffffffffffffffffffffffffffffff1663846719e0836040518263ffffffff1660e01b81526004016155829190619562565b60206040518083038186803b15801561559a57600080fd5b505afa1580156155ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906155d29190618794565b90508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b815260040161560b90619a23565b60006040518083038186803b15801561562357600080fd5b505afa158015615637573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906156609190618850565b86838151811061566c57fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b81526004016156ae90619d4c565b60006040518083038186803b1580156156c657600080fd5b505afa1580156156da573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906157039190618850565b85838151811061570f57fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b815260040161575190619810565b60006040518083038186803b15801561576957600080fd5b505afa15801561577d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906157a69190618850565b8483815181106157b257fe5b60200260200101819052508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b81526004016157f490619acd565b60006040518083038186803b15801561580c57600080fd5b505afa158015615820573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906158499190618850565b83838151811061585557fe5b6020026020010181905250508060010190506154c2565b50838383839a509a509a509a50505050505050509193509193565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601881526020017f7072655f7469636b65745f726573756c745f64617461313100000000000000008152506040518263ffffffff1660e01b815260040161591991906195c1565b60206040518083038186803b15801561593157600080fd5b505afa158015615945573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061596991906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b1580156159b357600080fd5b505afa1580156159c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906159eb9190618794565b90508073ffffffffffffffffffffffffffffffffffffffff1663e942b516896040518263ffffffff1660e01b8152600401615a2691906199b9565b600060405180830381600087803b158015615a4057600080fd5b505af1158015615a54573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff1660e01b8152600401615a9191906199ee565b600060405180830381600087803b158015615aab57600080fd5b505af1158015615abf573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff1660e01b8152600401615afc9190619e6b565b600060405180830381600087803b158015615b1657600080fd5b505af1158015615b2a573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516866040518263ffffffff1660e01b8152600401615b679190619b42565b600060405180830381600087803b158015615b8157600080fd5b505af1158015615b95573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516856040518263ffffffff1660e01b8152600401615bd29190619dc1565b600060405180830381600087803b158015615bec57600080fd5b505af1158015615c00573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166331afac368a846040518363ffffffff1660e01b8152600401615c41929190619613565b602060405180830381600087803b158015615c5b57600080fd5b505af1158015615c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190615c9391906187e6565b90506000811315615d0d577faddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d6040518060400160405280601881526020017f7072655f7469636b65745f726573756c745f64617461313100000000000000008152508a604051615d04929190619681565b60405180910390a15b7fb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d681604051615d3c9190619562565b60405180910390a17fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e489604051615d7391906195c1565b60405180910390a180935050505095945050505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601981526020017f73656e645f7469636b65745f726573756c745f646174613131000000000000008152506040518263ffffffff1660e01b8152600401615e1c91906195c1565b60206040518083038186803b158015615e3457600080fd5b505afa158015615e48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190615e6c91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b158015615eb657600080fd5b505afa158015615eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190615eee9190618794565b90508073ffffffffffffffffffffffffffffffffffffffff1663e942b516896040518263ffffffff1660e01b8152600401615f2991906197db565b600060405180830381600087803b158015615f4357600080fd5b505af1158015615f57573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff1660e01b8152600401615f949190619cc2565b600060405180830381600087803b158015615fae57600080fd5b505af1158015615fc2573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff1660e01b8152600401615fff919061992f565b600060405180830381600087803b15801561601957600080fd5b505af115801561602d573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516866040518263ffffffff1660e01b815260040161606a9190619fbf565b600060405180830381600087803b15801561608457600080fd5b505af1158015616098573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516856040518263ffffffff1660e01b81526004016160d59190619a98565b600060405180830381600087803b1580156160ef57600080fd5b505af1158015616103573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166331afac368a846040518363ffffffff1660e01b8152600401616144929190619613565b602060405180830381600087803b15801561615e57600080fd5b505af1158015616172573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061619691906187e6565b90506000811315616210577faddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d6040518060400160405280601981526020017f73656e645f7469636b65745f726573756c745f646174613131000000000000008152508a604051616207929190619681565b60405180910390a15b7fb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d68160405161623f9190619562565b60405180910390a17fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e48960405161627691906195c1565b60405180910390a180935050505095945050505050565b606080606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601881526020017f7072655f7469636b65745f726573756c745f64617461313100000000000000008152506040518263ffffffff1660e01b815260040161632391906195c1565b60206040518083038186803b15801561633b57600080fd5b505afa15801561634f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061637391906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b1580156163bd57600080fd5b505afa1580156163d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906163f59190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1886040518263ffffffff1660e01b815260040161643091906199b9565b600060405180830381600087803b15801561644a57600080fd5b505af115801561645e573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1876040518263ffffffff1660e01b815260040161649b91906199ee565b600060405180830381600087803b1580156164b557600080fd5b505af11580156164c9573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3989846040518363ffffffff1660e01b815260040161650a9291906195e3565b60206040518083038186803b15801561652257600080fd5b505afa158015616536573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061655a919061876b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663846719e060018473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156165c257600080fd5b505afa1580156165d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906165fa91906187e6565b036040518263ffffffff1660e01b81526004016166179190619562565b60206040518083038186803b15801561662f57600080fd5b505afa158015616643573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906166679190618794565b905060608173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b81526004016166a290619e4b565b60006040518083038186803b1580156166ba57600080fd5b505afa1580156166ce573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906166f79190618850565b905060608273ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b815260040161673290619b22565b60006040518083038186803b15801561674a57600080fd5b505afa15801561675e573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906167879190618850565b905060608373ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b81526004016167c290619da1565b60006040518083038186803b1580156167da57600080fd5b505afa1580156167ee573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906168179190618850565b9050828282995099509950505050505050509250925092565b60008061683c88616e5e565b90506000811415616886577fb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e460405161687490619cf7565b60405180910390a160009150506168b1565b60606168928989613943565b50505091505060006168a88a838a8a8a8a6180e4565b90508093505050505b9695505050505050565b606080606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601981526020017f73656e645f7469636b65745f726573756c745f646174613131000000000000008152506040518263ffffffff1660e01b815260040161695191906195c1565b60206040518083038186803b15801561696957600080fd5b505afa15801561697d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906169a191906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b1580156169eb57600080fd5b505afa1580156169ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616a239190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1886040518263ffffffff1660e01b8152600401616a5e91906197db565b600060405180830381600087803b158015616a7857600080fd5b505af1158015616a8c573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1876040518263ffffffff1660e01b8152600401616ac99190619cc2565b600060405180830381600087803b158015616ae357600080fd5b505af1158015616af7573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3989846040518363ffffffff1660e01b8152600401616b389291906195e3565b60206040518083038186803b158015616b5057600080fd5b505afa158015616b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616b88919061876b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663846719e060018473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015616bf057600080fd5b505afa158015616c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616c2891906187e6565b036040518263ffffffff1660e01b8152600401616c459190619562565b60206040518083038186803b158015616c5d57600080fd5b505afa158015616c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616c959190618794565b905060608173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401616cd09061990f565b60006040518083038186803b158015616ce857600080fd5b505afa158015616cfc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190616d259190618850565b905060608273ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401616d6090619f9f565b60006040518083038186803b158015616d7857600080fd5b505afa158015616d8c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190616db59190618850565b905060608373ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b8152600401616df090619a78565b60006040518083038186803b158015616e0857600080fd5b505afa158015616e1c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190616e459190618850565b9050828282995099509950505050505050509250925092565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600d81526020017f7469636b65745f646174613131000000000000000000000000000000000000008152506040518263ffffffff1660e01b8152600401616ef091906195c1565b60206040518083038186803b158015616f0857600080fd5b505afa158015616f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616f4091906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b158015616f8a57600080fd5b505afa158015616f9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190616fc29190618742565b905060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3986846040518363ffffffff1660e01b81526004016170019291906195e3565b60206040518083038186803b15801561701957600080fd5b505afa15801561702d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617051919061876b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663846719e060006040518263ffffffff1660e01b815260040161708f91906195a6565b60206040518083038186803b1580156170a757600080fd5b505afa1580156170bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906170df9190618794565b905060008173ffffffffffffffffffffffffffffffffffffffff16633536046a6040518163ffffffff1660e01b815260040161711a90619b77565b60206040518083038186803b15801561713257600080fd5b505afa158015617146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061716a9190618bc8565b90508095505050505050919050565b60006060829050600080905060008090505b82518110156172185760308382815181106171a257fe5b602001015160f81c60f81b60f81c60ff16101580156171de575060398382815181106171ca57fe5b602001015160f81c60f81b60f81c60ff1611155b1561720b5760308382815181106171f157fe5b602001015160f81c60f81b60f81c0360ff16600a83020191505b808060010191505061718b565b508092505050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601681526020017f7469636b65745f616c6c5f737465705f646174613131000000000000000000008152506040518263ffffffff1660e01b81526004016172b591906195c1565b60206040518083038186803b1580156172cd57600080fd5b505afa1580156172e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061730591906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561734f57600080fd5b505afa158015617363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906173879190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1856040518263ffffffff1660e01b81526004016173c291906197db565b600060405180830381600087803b1580156173dc57600080fd5b505af11580156173f0573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3986846040518363ffffffff1660e01b81526004016174319291906195e3565b60206040518083038186803b15801561744957600080fd5b505afa15801561745d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617481919061876b565b905060008173ffffffffffffffffffffffffffffffffffffffff1663846719e060018473ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156174e957600080fd5b505afa1580156174fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061752191906187e6565b036040518263ffffffff1660e01b815260040161753e9190619562565b60206040518083038186803b15801561755657600080fd5b505afa15801561756a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061758e9190618794565b905060608173ffffffffffffffffffffffffffffffffffffffff16639c981fcb6040518163ffffffff1660e01b81526004016175c990619f4a565b60006040518083038186803b1580156175e157600080fd5b505afa1580156175f5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061761e9190618850565b9050600061762b82617179565b9050809650505050505050919050565b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280600b81526020017f737465705f6461746131310000000000000000000000000000000000000000008152506040518263ffffffff1660e01b81526004016176ce91906195c1565b60206040518083038186803b1580156176e657600080fd5b505afa1580156176fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061771e91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff16637857d7c96040518163ffffffff1660e01b815260040160206040518083038186803b15801561776857600080fd5b505afa15801561777c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906177a09190618742565b90508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1866040518263ffffffff1660e01b81526004016177db9190619cc2565b600060405180830381600087803b1580156177f557600080fd5b505af1158015617809573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663cd30a1d1876040518263ffffffff1660e01b815260040161784691906197db565b600060405180830381600087803b15801561786057600080fd5b505af1158015617874573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff1663e8434e3988846040518363ffffffff1660e01b81526004016178b59291906195e3565b60206040518083038186803b1580156178cd57600080fd5b505afa1580156178e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617905919061876b565b905060608173ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561794f57600080fd5b505afa158015617963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061798791906187e6565b67ffffffffffffffff8111801561799d57600080fd5b506040519080825280602002602001820160405280156179d157816020015b60608152602001906001900390816179bc5790505b50905060008090505b8273ffffffffffffffffffffffffffffffffffffffff1663949d225d6040518163ffffffff1660e01b815260040160206040518083038186803b158015617a2057600080fd5b505afa158015617a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617a5891906187e6565b811215617b9d5760008373ffffffffffffffffffffffffffffffffffffffff1663846719e0836040518263ffffffff1660e01b8152600401617a9a9190619562565b60206040518083038186803b158015617ab257600080fd5b505afa158015617ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617aea9190618794565b90508073ffffffffffffffffffffffffffffffffffffffff16639c981fcb896040518263ffffffff1660e01b8152600401617b2591906195c1565b60006040518083038186803b158015617b3d57600080fd5b505afa158015617b51573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190617b7a9190618850565b838381518110617b8657fe5b6020026020010181905250508060010190506179da565b50809450505050509392505050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601981526020017f737465705f636f6e74656e745f636865636b5f646174613131000000000000008152506040518263ffffffff1660e01b8152600401617c3e91906195c1565b60206040518083038186803b158015617c5657600080fd5b505afa158015617c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617c8e91906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b158015617cd857600080fd5b505afa158015617cec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617d109190618794565b90508073ffffffffffffffffffffffffffffffffffffffff1663e942b516896040518263ffffffff1660e01b8152600401617d4b91906197db565b600060405180830381600087803b158015617d6557600080fd5b505af1158015617d79573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff1660e01b8152600401617db69190619cc2565b600060405180830381600087803b158015617dd057600080fd5b505af1158015617de4573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff1660e01b8152600401617e219190619ec0565b600060405180830381600087803b158015617e3b57600080fd5b505af1158015617e4f573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516866040518263ffffffff1660e01b8152600401617e8c9190619830565b600060405180830381600087803b158015617ea657600080fd5b505af1158015617eba573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516856040518263ffffffff1660e01b8152600401617ef79190619aed565b600060405180830381600087803b158015617f1157600080fd5b505af1158015617f25573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166331afac368a846040518363ffffffff1660e01b8152600401617f66929190619613565b602060405180830381600087803b158015617f8057600080fd5b505af1158015617f94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190617fb891906187e6565b90506000811315618032577faddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d6040518060400160405280601981526020017f737465705f636f6e74656e745f636865636b5f646174613131000000000000008152508a604051618029929190619681565b60405180910390a15b7fb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d6816040516180619190619562565b60405180910390a180935050505095945050505050565b6000815183511461808c57600090506180de565b8160405160200161809d9190619437565b60405160208183030381529060405280519060200120836040516020016180c49190619437565b604051602081830303815290604052805190602001201490505b92915050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f23f63c96040518060400160405280601681526020017f7469636b65745f616c6c5f737465705f646174613131000000000000000000008152506040518263ffffffff1660e01b815260040161817691906195c1565b60206040518083038186803b15801561818e57600080fd5b505afa1580156181a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906181c691906187bd565b905060008173ffffffffffffffffffffffffffffffffffffffff166313db93466040518163ffffffff1660e01b815260040160206040518083038186803b15801561821057600080fd5b505afa158015618224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906182489190618794565b90508073ffffffffffffffffffffffffffffffffffffffff1663e942b5168a6040518263ffffffff1660e01b815260040161828391906197db565b600060405180830381600087803b15801561829d57600080fd5b505af11580156182b1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516896040518263ffffffff1660e01b81526004016182ee9190619f6a565b600060405180830381600087803b15801561830857600080fd5b505af115801561831c573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516886040518263ffffffff1660e01b815260040161835991906198da565b600060405180830381600087803b15801561837357600080fd5b505af1158015618387573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516876040518263ffffffff1660e01b81526004016183c49190619d17565b600060405180830381600087803b1580156183de57600080fd5b505af11580156183f2573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516866040518263ffffffff1660e01b815260040161842f9190619830565b600060405180830381600087803b15801561844957600080fd5b505af115801561845d573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663e942b516856040518263ffffffff1660e01b815260040161849a9190619aed565b600060405180830381600087803b1580156184b457600080fd5b505af11580156184c8573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166331afac368b846040518363ffffffff1660e01b8152600401618509929190619613565b602060405180830381600087803b15801561852357600080fd5b505af1158015618537573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061855b91906187e6565b905060008113156185d5577faddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d6040518060400160405280601681526020017f7469636b65745f616c6c5f737465705f646174613131000000000000000000008152508b6040516185cc929190619681565b60405180910390a15b7fc57b01fa77f41df77eaab79a0e2623fab2e7ae3e9530d9b1cab225ad65f2b7ce816040516186049190619562565b60405180910390a18093505050509695505050505050565b60008151905061862b8161a205565b92915050565b6000815190506186408161a21c565b92915050565b6000815190506186558161a233565b92915050565b60008151905061866a8161a24a565b92915050565b60008151905061867f8161a261565b92915050565b600082601f83011261869657600080fd5b81356186a96186a48261a021565b619ff4565b915080825260208301602083018583830111156186c557600080fd5b6186d083828461a1b2565b50505092915050565b600082601f8301126186ea57600080fd5b81516186fd6186f88261a021565b619ff4565b9150808252602083016020830185838301111561871957600080fd5b61872483828461a1c1565b50505092915050565b60008151905061873c8161a278565b92915050565b60006020828403121561875457600080fd5b60006187628482850161861c565b91505092915050565b60006020828403121561877d57600080fd5b600061878b84828501618631565b91505092915050565b6000602082840312156187a657600080fd5b60006187b484828501618646565b91505092915050565b6000602082840312156187cf57600080fd5b60006187dd8482850161865b565b91505092915050565b6000602082840312156187f857600080fd5b600061880684828501618670565b91505092915050565b60006020828403121561882157600080fd5b600082013567ffffffffffffffff81111561883b57600080fd5b61884784828501618685565b91505092915050565b60006020828403121561886257600080fd5b600082015167ffffffffffffffff81111561887c57600080fd5b618888848285016186d9565b91505092915050565b600080604083850312156188a457600080fd5b600083013567ffffffffffffffff8111156188be57600080fd5b6188ca85828601618685565b925050602083013567ffffffffffffffff8111156188e757600080fd5b6188f385828601618685565b9150509250929050565b6000806000806080858703121561891357600080fd5b600085013567ffffffffffffffff81111561892d57600080fd5b61893987828801618685565b945050602085013567ffffffffffffffff81111561895657600080fd5b61896287828801618685565b935050604085013567ffffffffffffffff81111561897f57600080fd5b61898b87828801618685565b925050606085013567ffffffffffffffff8111156189a857600080fd5b6189b487828801618685565b91505092959194509250565b600080600080600060a086880312156189d857600080fd5b600086013567ffffffffffffffff8111156189f257600080fd5b6189fe88828901618685565b955050602086013567ffffffffffffffff811115618a1b57600080fd5b618a2788828901618685565b945050604086013567ffffffffffffffff811115618a4457600080fd5b618a5088828901618685565b935050606086013567ffffffffffffffff811115618a6d57600080fd5b618a7988828901618685565b925050608086013567ffffffffffffffff811115618a9657600080fd5b618aa288828901618685565b9150509295509295909350565b60008060008060008060c08789031215618ac857600080fd5b600087013567ffffffffffffffff811115618ae257600080fd5b618aee89828a01618685565b965050602087013567ffffffffffffffff811115618b0b57600080fd5b618b1789828a01618685565b955050604087013567ffffffffffffffff811115618b3457600080fd5b618b4089828a01618685565b945050606087013567ffffffffffffffff811115618b5d57600080fd5b618b6989828a01618685565b935050608087013567ffffffffffffffff811115618b8657600080fd5b618b9289828a01618685565b92505060a087013567ffffffffffffffff811115618baf57600080fd5b618bbb89828a01618685565b9150509295509295509295565b600060208284031215618bda57600080fd5b6000618be88482850161872d565b91505092915050565b6000618bfd8383618cc5565b905092915050565b6000618c108261a05d565b618c1a818561a080565b935083602082028501618c2c8561a04d565b8060005b85811015618c685784840389528151618c498582618bf1565b9450618c548361a073565b925060208a01995050600181019050618c30565b50829750879550505050505092915050565b618c838161a0d0565b82525050565b618c928161a158565b82525050565b618ca18161a17c565b82525050565b618cb08161a124565b82525050565b618cbf8161a1a0565b82525050565b6000618cd08261a068565b618cda818561a091565b9350618cea81856020860161a1c1565b618cf38161a1f4565b840191505092915050565b6000618d098261a068565b618d13818561a0a2565b9350618d2381856020860161a1c1565b618d2c8161a1f4565b840191505092915050565b6000618d428261a068565b618d4c818561a0b3565b9350618d5c81856020860161a1c1565b80840191505092915050565b6000618d7560098361a0a2565b91507f7469636b65745f696400000000000000000000000000000000000000000000006000830152602082019050919050565b6000618db560078361a0a2565b91507f63726561746f72000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000618df560078361a0a2565b91507f67756172646572000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000618e35600b8361a0a2565b91507f737465705f726573756c740000000000000000000000000000000000000000006000830152602082019050919050565b6000618e7560068361a0a2565b91507f73656e64657200000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000618eb560088361a0a2565b91507f7265706f727465720000000000000000000000000000000000000000000000006000830152602082019050919050565b6000618ef5600d8361a0a2565b91507f7072655f7469636b65745f6964000000000000000000000000000000000000006000830152602082019050919050565b6000618f35600b8361a0a2565b91507f7072655f737465705f69640000000000000000000000000000000000000000006000830152602082019050919050565b6000618f75600b8361a0a2565b91507f7469636b65745f696e666f0000000000000000000000000000000000000000006000830152602082019050919050565b6000618fb560088361a0a2565b91507f72656365697665720000000000000000000000000000000000000000000000006000830152602082019050919050565b6000618ff5600b8361a0a2565b91507f6372656174655f74696d650000000000000000000000000000000000000000006000830152602082019050919050565b600061903560178361a0a2565b91507f7072655f7469636b65745f726563656976655f74696d650000000000000000006000830152602082019050919050565b6000619075600d8361a0a2565b91507f63616e63656c5f7469636b6574000000000000000000000000000000000000006000830152602082019050919050565b60006190b5600a8361a0a2565b91507f67756172645f74696d65000000000000000000000000000000000000000000006000830152602082019050919050565b60006190f5600b8361a0a2565b91507f7265706f72745f74696d650000000000000000000000000000000000000000006000830152602082019050919050565b600061913560078361a0a2565b91507f737465705f6964000000000000000000000000000000000000000000000000006000830152602082019050919050565b600061917560198361a0a2565b91507f546865206f7065726174696f6e20697320696e76616c696421000000000000006000830152602082019050919050565b60006191b5600b8361a0a2565b91507f726561736f6e5f646573700000000000000000000000000000000000000000006000830152602082019050919050565b60006191f560018361a0a2565b91507f31000000000000000000000000000000000000000000000000000000000000006000830152602082019050919050565b6000619235600a8361a0a2565b91507f737465705f636f756e74000000000000000000000000000000000000000000006000830152602082019050919050565b600061927560138361a0a2565b91507f7072655f7469636b65745f7265636569766572000000000000000000000000006000830152602082019050919050565b60006192b560098361a0a2565b91507f636f6e6669726d657200000000000000000000000000000000000000000000006000830152602082019050919050565b60006192f560118361a0a2565b91507f7072655f7469636b65745f73656e6465720000000000000000000000000000006000830152602082019050919050565b6000619335600c8361a0a2565b91507f737465705f636f6e74656e7400000000000000000000000000000000000000006000830152602082019050919050565b600061937560098361a0a2565b91507f737465705f696e666f00000000000000000000000000000000000000000000006000830152602082019050919050565b60006193b560088361a0a2565b91507f737465705f7365710000000000000000000000000000000000000000000000006000830152602082019050919050565b60006193f560098361a0a2565b91507f73656e645f74696d6500000000000000000000000000000000000000000000006000830152602082019050919050565b6194318161a14e565b82525050565b60006194438284618d37565b915081905092915050565b600060208201905081810360008301526194688184618c05565b905092915050565b6000608082019050818103600083015261948a8187618c05565b9050818103602083015261949e8186618c05565b905081810360408301526194b28185618c05565b905081810360608301526194c68184618c05565b905095945050505050565b600060a08201905081810360008301526194eb8188618c05565b905081810360208301526194ff8187618c05565b905081810360408301526195138186618c05565b905081810360608301526195278185618c05565b9050818103608083015261953b8184618c05565b90509695505050505050565b600060208201905061955c6000830184618c7a565b92915050565b60006020820190506195776000830184618ca7565b92915050565b60006040820190506195926000830185618ca7565b61959f6020830184618c7a565b9392505050565b60006020820190506195bb6000830184618cb6565b92915050565b600060208201905081810360008301526195db8184618cfe565b905092915050565b600060408201905081810360008301526195fd8185618cfe565b905061960c6020830184618c89565b9392505050565b6000604082019050818103600083015261962d8185618cfe565b905061963c6020830184618c98565b9392505050565b6000606082019050818103600083015261965d8186618cfe565b905061966c6020830185618c98565b6196796040830184618c89565b949350505050565b6000604082019050818103600083015261969b8185618cfe565b905081810360208301526196af8184618cfe565b90509392505050565b600060608201905081810360008301526196d28186618cfe565b905081810360208301526196e68185618cfe565b905081810360408301526196fa8184618cfe565b9050949350505050565b6000608082019050818103600083015261971e8187618cfe565b905081810360208301526197328186618cfe565b905081810360408301526197468185618cfe565b9050818103606083015261975a8184618cfe565b905095945050505050565b600060a082019050818103600083015261977f8188618cfe565b905081810360208301526197938187618cfe565b905081810360408301526197a78186618cfe565b905081810360608301526197bb8185618cfe565b905081810360808301526197cf8184618cfe565b90509695505050505050565b600060408201905081810360008301526197f481618d68565b905081810360208301526198088184618cfe565b905092915050565b6000602082019050818103600083015261982981618da8565b9050919050565b6000604082019050818103600083015261984981618da8565b9050818103602083015261985d8184618cfe565b905092915050565b6000602082019050818103600083015261987e81618de8565b9050919050565b6000604082019050818103600083015261989e81618de8565b905081810360208301526198b28184618cfe565b905092915050565b600060208201905081810360008301526198d381618e28565b9050919050565b600060408201905081810360008301526198f381618e28565b905081810360208301526199078184618cfe565b905092915050565b6000602082019050818103600083015261992881618e68565b9050919050565b6000604082019050818103600083015261994881618e68565b9050818103602083015261995c8184618cfe565b905092915050565b6000602082019050818103600083015261997d81618ea8565b9050919050565b6000604082019050818103600083015261999d81618ea8565b905081810360208301526199b18184618cfe565b905092915050565b600060408201905081810360008301526199d281618ee8565b905081810360208301526199e68184618cfe565b905092915050565b60006040820190508181036000830152619a0781618f28565b90508181036020830152619a1b8184618cfe565b905092915050565b60006020820190508181036000830152619a3c81618f68565b9050919050565b60006040820190508181036000830152619a5c81618f68565b90508181036020830152619a708184618cfe565b905092915050565b60006020820190508181036000830152619a9181618fa8565b9050919050565b60006040820190508181036000830152619ab181618fa8565b90508181036020830152619ac58184618cfe565b905092915050565b60006020820190508181036000830152619ae681618fe8565b9050919050565b60006040820190508181036000830152619b0681618fe8565b90508181036020830152619b1a8184618cfe565b905092915050565b60006020820190508181036000830152619b3b81619028565b9050919050565b60006040820190508181036000830152619b5b81619028565b90508181036020830152619b6f8184618cfe565b905092915050565b60006020820190508181036000830152619b9081619068565b9050919050565b60006040820190508181036000830152619bb081619068565b90508181036020830152619bc3816191e8565b9050919050565b60006040820190508181036000830152619be381619068565b9050619bf26020830184619428565b92915050565b60006020820190508181036000830152619c11816190a8565b9050919050565b60006040820190508181036000830152619c31816190a8565b90508181036020830152619c458184618cfe565b905092915050565b60006020820190508181036000830152619c66816190e8565b9050919050565b60006040820190508181036000830152619c86816190e8565b90508181036020830152619c9a8184618cfe565b905092915050565b60006020820190508181036000830152619cbb81619128565b9050919050565b60006040820190508181036000830152619cdb81619128565b90508181036020830152619cef8184618cfe565b905092915050565b60006020820190508181036000830152619d1081619168565b9050919050565b60006040820190508181036000830152619d30816191a8565b90508181036020830152619d448184618cfe565b905092915050565b60006020820190508181036000830152619d6581619228565b9050919050565b60006040820190508181036000830152619d8581619228565b90508181036020830152619d998184618cfe565b905092915050565b60006020820190508181036000830152619dba81619268565b9050919050565b60006040820190508181036000830152619dda81619268565b90508181036020830152619dee8184618cfe565b905092915050565b60006020820190508181036000830152619e0f816192a8565b9050919050565b60006040820190508181036000830152619e2f816192a8565b90508181036020830152619e438184618cfe565b905092915050565b60006020820190508181036000830152619e64816192e8565b9050919050565b60006040820190508181036000830152619e84816192e8565b90508181036020830152619e988184618cfe565b905092915050565b60006020820190508181036000830152619eb981619328565b9050919050565b60006040820190508181036000830152619ed981619328565b90508181036020830152619eed8184618cfe565b905092915050565b60006020820190508181036000830152619f0e81619368565b9050919050565b60006040820190508181036000830152619f2e81619368565b90508181036020830152619f428184618cfe565b905092915050565b60006020820190508181036000830152619f63816193a8565b9050919050565b60006040820190508181036000830152619f83816193a8565b90508181036020830152619f978184618cfe565b905092915050565b60006020820190508181036000830152619fb8816193e8565b9050919050565b60006040820190508181036000830152619fd8816193e8565b90508181036020830152619fec8184618cfe565b905092915050565b6000604051905081810181811067ffffffffffffffff8211171561a01757600080fd5b8060405250919050565b600067ffffffffffffffff82111561a03857600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061a0c98261a12e565b9050919050565b60008115159050919050565b600061a0e78261a0be565b9050919050565b600061a0f98261a0be565b9050919050565b600061a10b8261a0be565b9050919050565b600061a11d8261a0be565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061a1638261a16a565b9050919050565b600061a1758261a12e565b9050919050565b600061a1878261a18e565b9050919050565b600061a1998261a12e565b9050919050565b600061a1ab8261a124565b9050919050565b82818337600083830152505050565b60005b8381101561a1df57808201518184015260208101905061a1c4565b8381111561a1ee576000848401525b50505050565b6000601f19601f8301169050919050565b61a20e8161a0dc565b811461a21957600080fd5b50565b61a2258161a0ee565b811461a23057600080fd5b50565b61a23c8161a100565b811461a24757600080fd5b50565b61a2538161a112565b811461a25e57600080fd5b50565b61a26a8161a124565b811461a27557600080fd5b50565b61a2818161a14e565b811461a28c57600080fd5b5056fea2646970667358221220e36a8df46086b440c98bb3ee0605a775874e49950efa24e70da4fc25e685847264736f6c634300060a0033"

// DeployOne deploys a new contract, binding an instance of One to it.
func DeployOne(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *One, error) {
	parsed, err := abi.JSON(strings.NewReader(OneABI))
	if err != nil {
		return common.Address{}, nil, nil, err
	}

	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(OneBin), backend)
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	return address, tx, &One{OneCaller: OneCaller{contract: contract}, OneTransactor: OneTransactor{contract: contract}, OneFilterer: OneFilterer{contract: contract}}, nil
}

func AsyncDeployOne(auth *bind.TransactOpts, handler func(*types.Receipt, error), backend bind.ContractBackend) (*types.Transaction, error) {
	parsed, err := abi.JSON(strings.NewReader(OneABI))
	if err != nil {
		return nil, err
	}

	tx, err := bind.AsyncDeployContract(auth, handler, parsed, common.FromHex(OneBin), backend)
	if err != nil {
		return nil, err
	}
	return tx, nil
}

// One is an auto generated Go binding around a Solidity contract.
type One struct {
	OneCaller     // Read-only binding to the contract
	OneTransactor // Write-only binding to the contract
	OneFilterer   // Log filterer for contract events
}

// OneCaller is an auto generated read-only Go binding around a Solidity contract.
type OneCaller struct {
	contract *bind.BoundContract // Generic contract wrapper for the low level calls
}

// OneTransactor is an auto generated write-only Go binding around a Solidity contract.
type OneTransactor struct {
	contract *bind.BoundContract // Generic contract wrapper for the low level calls
}

// OneFilterer is an auto generated log filtering Go binding around a Solidity contract events.
type OneFilterer struct {
	contract *bind.BoundContract // Generic contract wrapper for the low level calls
}

// OneSession is an auto generated Go binding around a Solidity contract,
// with pre-set call and transact options.
type OneSession struct {
	Contract     *One              // Generic contract binding to set the session for
	CallOpts     bind.CallOpts     // Call options to use throughout this session
	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}

// OneCallerSession is an auto generated read-only Go binding around a Solidity contract,
// with pre-set call options.
type OneCallerSession struct {
	Contract *OneCaller    // Generic contract caller binding to set the session for
	CallOpts bind.CallOpts // Call options to use throughout this session
}

// OneTransactorSession is an auto generated write-only Go binding around a Solidity contract,
// with pre-set transact options.
type OneTransactorSession struct {
	Contract     *OneTransactor    // Generic contract transactor binding to set the session for
	TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session
}

// OneRaw is an auto generated low-level Go binding around a Solidity contract.
type OneRaw struct {
	Contract *One // Generic contract binding to access the raw methods on
}

// OneCallerRaw is an auto generated low-level read-only Go binding around a Solidity contract.
type OneCallerRaw struct {
	Contract *OneCaller // Generic read-only contract binding to access the raw methods on
}

// OneTransactorRaw is an auto generated low-level write-only Go binding around a Solidity contract.
type OneTransactorRaw struct {
	Contract *OneTransactor // Generic write-only contract binding to access the raw methods on
}

// NewOne creates a new instance of One, bound to a specific deployed contract.
func NewOne(address common.Address, backend bind.ContractBackend) (*One, error) {
	contract, err := bindOne(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &One{OneCaller: OneCaller{contract: contract}, OneTransactor: OneTransactor{contract: contract}, OneFilterer: OneFilterer{contract: contract}}, nil
}

// NewOneCaller creates a new read-only instance of One, bound to a specific deployed contract.
func NewOneCaller(address common.Address, caller bind.ContractCaller) (*OneCaller, error) {
	contract, err := bindOne(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &OneCaller{contract: contract}, nil
}

// NewOneTransactor creates a new write-only instance of One, bound to a specific deployed contract.
func NewOneTransactor(address common.Address, transactor bind.ContractTransactor) (*OneTransactor, error) {
	contract, err := bindOne(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &OneTransactor{contract: contract}, nil
}

// NewOneFilterer creates a new log filterer instance of One, bound to a specific deployed contract.
func NewOneFilterer(address common.Address, filterer bind.ContractFilterer) (*OneFilterer, error) {
	contract, err := bindOne(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &OneFilterer{contract: contract}, nil
}

// bindOne binds a generic wrapper to an already deployed contract.
func bindOne(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(OneABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}

// 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.
func (_One *OneRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
	return _One.Contract.OneCaller.contract.Call(opts, result, method, params...)
}

// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func (_One *OneRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.OneTransactor.contract.Transfer(opts)
}

// Transact invokes the (paid) contract method with params as input values.
func (_One *OneRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.OneTransactor.contract.Transact(opts, 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.
func (_One *OneCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
	return _One.Contract.contract.Call(opts, result, method, params...)
}

// Transfer initiates a plain transaction to move funds to the contract, calling
// its default method if one is available.
func (_One *OneTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.contract.Transfer(opts)
}

// Transact invokes the (paid) contract method with params as input values.
func (_One *OneTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.contract.Transact(opts, method, params...)
}

// CancelTicket is a paid mutator transaction binding the contract method 0x8e8bf23c.
//
// Solidity: function CancelTicket(string ticket_id) returns(int256)
func (_One *OneTransactor) CancelTicket(opts *bind.TransactOpts, ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "CancelTicket", ticket_id)
}

func (_One *OneTransactor) AsyncCancelTicket(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "CancelTicket", ticket_id)
}

// CancelTicket is a paid mutator transaction binding the contract method 0x8e8bf23c.
//
// Solidity: function CancelTicket(string ticket_id) returns(int256)
func (_One *OneSession) CancelTicket(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.CancelTicket(&_One.TransactOpts, ticket_id)
}

func (_One *OneSession) AsyncCancelTicket(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncCancelTicket(handler, &_One.TransactOpts, ticket_id)
}

// CancelTicket is a paid mutator transaction binding the contract method 0x8e8bf23c.
//
// Solidity: function CancelTicket(string ticket_id) returns(int256)
func (_One *OneTransactorSession) CancelTicket(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.CancelTicket(&_One.TransactOpts, ticket_id)
}

func (_One *OneTransactorSession) AsyncCancelTicket(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncCancelTicket(handler, &_One.TransactOpts, ticket_id)
}

// CheckStepContent is a paid mutator transaction binding the contract method 0x9fe2f1f7.
//
// Solidity: function CheckStepContent(string ticket_id, string step_id, string step_content, string creator, string create_time) returns(int256, bool)
func (_One *OneTransactor) CheckStepContent(opts *bind.TransactOpts, ticket_id string, step_id string, step_content string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "CheckStepContent", ticket_id, step_id, step_content, creator, create_time)
}

func (_One *OneTransactor) AsyncCheckStepContent(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string, step_content string, creator string, create_time string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "CheckStepContent", ticket_id, step_id, step_content, creator, create_time)
}

// CheckStepContent is a paid mutator transaction binding the contract method 0x9fe2f1f7.
//
// Solidity: function CheckStepContent(string ticket_id, string step_id, string step_content, string creator, string create_time) returns(int256, bool)
func (_One *OneSession) CheckStepContent(ticket_id string, step_id string, step_content string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.CheckStepContent(&_One.TransactOpts, ticket_id, step_id, step_content, creator, create_time)
}

func (_One *OneSession) AsyncCheckStepContent(handler func(*types.Receipt, error), ticket_id string, step_id string, step_content string, creator string, create_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncCheckStepContent(handler, &_One.TransactOpts, ticket_id, step_id, step_content, creator, create_time)
}

// CheckStepContent is a paid mutator transaction binding the contract method 0x9fe2f1f7.
//
// Solidity: function CheckStepContent(string ticket_id, string step_id, string step_content, string creator, string create_time) returns(int256, bool)
func (_One *OneTransactorSession) CheckStepContent(ticket_id string, step_id string, step_content string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.CheckStepContent(&_One.TransactOpts, ticket_id, step_id, step_content, creator, create_time)
}

func (_One *OneTransactorSession) AsyncCheckStepContent(handler func(*types.Receipt, error), ticket_id string, step_id string, step_content string, creator string, create_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncCheckStepContent(handler, &_One.TransactOpts, ticket_id, step_id, step_content, creator, create_time)
}

// CheckStepSequence is a paid mutator transaction binding the contract method 0x725030e9.
//
// Solidity: function CheckStepSequence(string ticket_id, string step_id) returns(bool)
func (_One *OneTransactor) CheckStepSequence(opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "CheckStepSequence", ticket_id, step_id)
}

func (_One *OneTransactor) AsyncCheckStepSequence(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "CheckStepSequence", ticket_id, step_id)
}

// CheckStepSequence is a paid mutator transaction binding the contract method 0x725030e9.
//
// Solidity: function CheckStepSequence(string ticket_id, string step_id) returns(bool)
func (_One *OneSession) CheckStepSequence(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.CheckStepSequence(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneSession) AsyncCheckStepSequence(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncCheckStepSequence(handler, &_One.TransactOpts, ticket_id, step_id)
}

// CheckStepSequence is a paid mutator transaction binding the contract method 0x725030e9.
//
// Solidity: function CheckStepSequence(string ticket_id, string step_id) returns(bool)
func (_One *OneTransactorSession) CheckStepSequence(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.CheckStepSequence(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneTransactorSession) AsyncCheckStepSequence(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncCheckStepSequence(handler, &_One.TransactOpts, ticket_id, step_id)
}

// GuardTicketResult is a paid mutator transaction binding the contract method 0x2d57ba4a.
//
// Solidity: function GuardTicketResult(string ticket_id, string step_id, string guarder, string guard_time) returns(int256)
func (_One *OneTransactor) GuardTicketResult(opts *bind.TransactOpts, ticket_id string, step_id string, guarder string, guard_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "GuardTicketResult", ticket_id, step_id, guarder, guard_time)
}

func (_One *OneTransactor) AsyncGuardTicketResult(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string, guarder string, guard_time string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "GuardTicketResult", ticket_id, step_id, guarder, guard_time)
}

// GuardTicketResult is a paid mutator transaction binding the contract method 0x2d57ba4a.
//
// Solidity: function GuardTicketResult(string ticket_id, string step_id, string guarder, string guard_time) returns(int256)
func (_One *OneSession) GuardTicketResult(ticket_id string, step_id string, guarder string, guard_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.GuardTicketResult(&_One.TransactOpts, ticket_id, step_id, guarder, guard_time)
}

func (_One *OneSession) AsyncGuardTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string, guarder string, guard_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncGuardTicketResult(handler, &_One.TransactOpts, ticket_id, step_id, guarder, guard_time)
}

// GuardTicketResult is a paid mutator transaction binding the contract method 0x2d57ba4a.
//
// Solidity: function GuardTicketResult(string ticket_id, string step_id, string guarder, string guard_time) returns(int256)
func (_One *OneTransactorSession) GuardTicketResult(ticket_id string, step_id string, guarder string, guard_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.GuardTicketResult(&_One.TransactOpts, ticket_id, step_id, guarder, guard_time)
}

func (_One *OneTransactorSession) AsyncGuardTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string, guarder string, guard_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncGuardTicketResult(handler, &_One.TransactOpts, ticket_id, step_id, guarder, guard_time)
}

// PreTicketResult is a paid mutator transaction binding the contract method 0xb595a5f3.
//
// Solidity: function PreTicketResult(string pre_ticket_id, string pre_step_id, string pre_ticket_sender, string pre_ticket_receive_time, string pre_ticket_receiver) returns(int256)
func (_One *OneTransactor) PreTicketResult(opts *bind.TransactOpts, pre_ticket_id string, pre_step_id string, pre_ticket_sender string, pre_ticket_receive_time string, pre_ticket_receiver string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "PreTicketResult", pre_ticket_id, pre_step_id, pre_ticket_sender, pre_ticket_receive_time, pre_ticket_receiver)
}

func (_One *OneTransactor) AsyncPreTicketResult(handler func(*types.Receipt, error), opts *bind.TransactOpts, pre_ticket_id string, pre_step_id string, pre_ticket_sender string, pre_ticket_receive_time string, pre_ticket_receiver string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "PreTicketResult", pre_ticket_id, pre_step_id, pre_ticket_sender, pre_ticket_receive_time, pre_ticket_receiver)
}

// PreTicketResult is a paid mutator transaction binding the contract method 0xb595a5f3.
//
// Solidity: function PreTicketResult(string pre_ticket_id, string pre_step_id, string pre_ticket_sender, string pre_ticket_receive_time, string pre_ticket_receiver) returns(int256)
func (_One *OneSession) PreTicketResult(pre_ticket_id string, pre_step_id string, pre_ticket_sender string, pre_ticket_receive_time string, pre_ticket_receiver string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.PreTicketResult(&_One.TransactOpts, pre_ticket_id, pre_step_id, pre_ticket_sender, pre_ticket_receive_time, pre_ticket_receiver)
}

func (_One *OneSession) AsyncPreTicketResult(handler func(*types.Receipt, error), pre_ticket_id string, pre_step_id string, pre_ticket_sender string, pre_ticket_receive_time string, pre_ticket_receiver string) (*types.Transaction, error) {
	return _One.Contract.AsyncPreTicketResult(handler, &_One.TransactOpts, pre_ticket_id, pre_step_id, pre_ticket_sender, pre_ticket_receive_time, pre_ticket_receiver)
}

// PreTicketResult is a paid mutator transaction binding the contract method 0xb595a5f3.
//
// Solidity: function PreTicketResult(string pre_ticket_id, string pre_step_id, string pre_ticket_sender, string pre_ticket_receive_time, string pre_ticket_receiver) returns(int256)
func (_One *OneTransactorSession) PreTicketResult(pre_ticket_id string, pre_step_id string, pre_ticket_sender string, pre_ticket_receive_time string, pre_ticket_receiver string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.PreTicketResult(&_One.TransactOpts, pre_ticket_id, pre_step_id, pre_ticket_sender, pre_ticket_receive_time, pre_ticket_receiver)
}

func (_One *OneTransactorSession) AsyncPreTicketResult(handler func(*types.Receipt, error), pre_ticket_id string, pre_step_id string, pre_ticket_sender string, pre_ticket_receive_time string, pre_ticket_receiver string) (*types.Transaction, error) {
	return _One.Contract.AsyncPreTicketResult(handler, &_One.TransactOpts, pre_ticket_id, pre_step_id, pre_ticket_sender, pre_ticket_receive_time, pre_ticket_receiver)
}

// QueryGuardTicketResult is a paid mutator transaction binding the contract method 0x8ab0d128.
//
// Solidity: function QueryGuardTicketResult(string ticket_id, string step_id) returns(string, string)
func (_One *OneTransactor) QueryGuardTicketResult(opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryGuardTicketResult", ticket_id, step_id)
}

func (_One *OneTransactor) AsyncQueryGuardTicketResult(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryGuardTicketResult", ticket_id, step_id)
}

// QueryGuardTicketResult is a paid mutator transaction binding the contract method 0x8ab0d128.
//
// Solidity: function QueryGuardTicketResult(string ticket_id, string step_id) returns(string, string)
func (_One *OneSession) QueryGuardTicketResult(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryGuardTicketResult(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneSession) AsyncQueryGuardTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryGuardTicketResult(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QueryGuardTicketResult is a paid mutator transaction binding the contract method 0x8ab0d128.
//
// Solidity: function QueryGuardTicketResult(string ticket_id, string step_id) returns(string, string)
func (_One *OneTransactorSession) QueryGuardTicketResult(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryGuardTicketResult(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneTransactorSession) AsyncQueryGuardTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryGuardTicketResult(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QueryPreTicketResult is a paid mutator transaction binding the contract method 0xd9e0077b.
//
// Solidity: function QueryPreTicketResult(string pre_ticket_id, string pre_step_id) returns(string, string, string)
func (_One *OneTransactor) QueryPreTicketResult(opts *bind.TransactOpts, pre_ticket_id string, pre_step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryPreTicketResult", pre_ticket_id, pre_step_id)
}

func (_One *OneTransactor) AsyncQueryPreTicketResult(handler func(*types.Receipt, error), opts *bind.TransactOpts, pre_ticket_id string, pre_step_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryPreTicketResult", pre_ticket_id, pre_step_id)
}

// QueryPreTicketResult is a paid mutator transaction binding the contract method 0xd9e0077b.
//
// Solidity: function QueryPreTicketResult(string pre_ticket_id, string pre_step_id) returns(string, string, string)
func (_One *OneSession) QueryPreTicketResult(pre_ticket_id string, pre_step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryPreTicketResult(&_One.TransactOpts, pre_ticket_id, pre_step_id)
}

func (_One *OneSession) AsyncQueryPreTicketResult(handler func(*types.Receipt, error), pre_ticket_id string, pre_step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryPreTicketResult(handler, &_One.TransactOpts, pre_ticket_id, pre_step_id)
}

// QueryPreTicketResult is a paid mutator transaction binding the contract method 0xd9e0077b.
//
// Solidity: function QueryPreTicketResult(string pre_ticket_id, string pre_step_id) returns(string, string, string)
func (_One *OneTransactorSession) QueryPreTicketResult(pre_ticket_id string, pre_step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryPreTicketResult(&_One.TransactOpts, pre_ticket_id, pre_step_id)
}

func (_One *OneTransactorSession) AsyncQueryPreTicketResult(handler func(*types.Receipt, error), pre_ticket_id string, pre_step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryPreTicketResult(handler, &_One.TransactOpts, pre_ticket_id, pre_step_id)
}

// QueryRecvStepContent is a paid mutator transaction binding the contract method 0x3e29ace0.
//
// Solidity: function QueryRecvStepContent(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneTransactor) QueryRecvStepContent(opts *bind.TransactOpts, ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryRecvStepContent", ticket_id)
}

func (_One *OneTransactor) AsyncQueryRecvStepContent(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryRecvStepContent", ticket_id)
}

// QueryRecvStepContent is a paid mutator transaction binding the contract method 0x3e29ace0.
//
// Solidity: function QueryRecvStepContent(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneSession) QueryRecvStepContent(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryRecvStepContent(&_One.TransactOpts, ticket_id)
}

func (_One *OneSession) AsyncQueryRecvStepContent(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryRecvStepContent(handler, &_One.TransactOpts, ticket_id)
}

// QueryRecvStepContent is a paid mutator transaction binding the contract method 0x3e29ace0.
//
// Solidity: function QueryRecvStepContent(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneTransactorSession) QueryRecvStepContent(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryRecvStepContent(&_One.TransactOpts, ticket_id)
}

func (_One *OneTransactorSession) AsyncQueryRecvStepContent(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryRecvStepContent(handler, &_One.TransactOpts, ticket_id)
}

// QueryReportTicketResult is a paid mutator transaction binding the contract method 0x72507461.
//
// Solidity: function QueryReportTicketResult(string ticket_id, string step_id) returns(string, string, string)
func (_One *OneTransactor) QueryReportTicketResult(opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryReportTicketResult", ticket_id, step_id)
}

func (_One *OneTransactor) AsyncQueryReportTicketResult(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryReportTicketResult", ticket_id, step_id)
}

// QueryReportTicketResult is a paid mutator transaction binding the contract method 0x72507461.
//
// Solidity: function QueryReportTicketResult(string ticket_id, string step_id) returns(string, string, string)
func (_One *OneSession) QueryReportTicketResult(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryReportTicketResult(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneSession) AsyncQueryReportTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryReportTicketResult(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QueryReportTicketResult is a paid mutator transaction binding the contract method 0x72507461.
//
// Solidity: function QueryReportTicketResult(string ticket_id, string step_id) returns(string, string, string)
func (_One *OneTransactorSession) QueryReportTicketResult(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryReportTicketResult(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneTransactorSession) AsyncQueryReportTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryReportTicketResult(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QuerySendTicketResult is a paid mutator transaction binding the contract method 0xf9cbdff9.
//
// Solidity: function QuerySendTicketResult(string ticket_id, string step_id) returns(string, string, string)
func (_One *OneTransactor) QuerySendTicketResult(opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QuerySendTicketResult", ticket_id, step_id)
}

func (_One *OneTransactor) AsyncQuerySendTicketResult(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QuerySendTicketResult", ticket_id, step_id)
}

// QuerySendTicketResult is a paid mutator transaction binding the contract method 0xf9cbdff9.
//
// Solidity: function QuerySendTicketResult(string ticket_id, string step_id) returns(string, string, string)
func (_One *OneSession) QuerySendTicketResult(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QuerySendTicketResult(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneSession) AsyncQuerySendTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQuerySendTicketResult(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QuerySendTicketResult is a paid mutator transaction binding the contract method 0xf9cbdff9.
//
// Solidity: function QuerySendTicketResult(string ticket_id, string step_id) returns(string, string, string)
func (_One *OneTransactorSession) QuerySendTicketResult(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QuerySendTicketResult(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneTransactorSession) AsyncQuerySendTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQuerySendTicketResult(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QueryStep is a paid mutator transaction binding the contract method 0x838c197b.
//
// Solidity: function QueryStep(string ticket_id, string step_id) returns(string, string, string, string, string)
func (_One *OneTransactor) QueryStep(opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryStep", ticket_id, step_id)
}

func (_One *OneTransactor) AsyncQueryStep(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryStep", ticket_id, step_id)
}

// QueryStep is a paid mutator transaction binding the contract method 0x838c197b.
//
// Solidity: function QueryStep(string ticket_id, string step_id) returns(string, string, string, string, string)
func (_One *OneSession) QueryStep(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryStep(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneSession) AsyncQueryStep(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryStep(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QueryStep is a paid mutator transaction binding the contract method 0x838c197b.
//
// Solidity: function QueryStep(string ticket_id, string step_id) returns(string, string, string, string, string)
func (_One *OneTransactorSession) QueryStep(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryStep(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneTransactorSession) AsyncQueryStep(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryStep(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QueryStepHistory is a paid mutator transaction binding the contract method 0x75789fbc.
//
// Solidity: function QueryStepHistory(string ticket_id, string step_id) returns(string[], string[], string[], string[], string[])
func (_One *OneTransactor) QueryStepHistory(opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryStepHistory", ticket_id, step_id)
}

func (_One *OneTransactor) AsyncQueryStepHistory(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryStepHistory", ticket_id, step_id)
}

// QueryStepHistory is a paid mutator transaction binding the contract method 0x75789fbc.
//
// Solidity: function QueryStepHistory(string ticket_id, string step_id) returns(string[], string[], string[], string[], string[])
func (_One *OneSession) QueryStepHistory(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryStepHistory(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneSession) AsyncQueryStepHistory(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryStepHistory(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QueryStepHistory is a paid mutator transaction binding the contract method 0x75789fbc.
//
// Solidity: function QueryStepHistory(string ticket_id, string step_id) returns(string[], string[], string[], string[], string[])
func (_One *OneTransactorSession) QueryStepHistory(ticket_id string, step_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryStepHistory(&_One.TransactOpts, ticket_id, step_id)
}

func (_One *OneTransactorSession) AsyncQueryStepHistory(handler func(*types.Receipt, error), ticket_id string, step_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryStepHistory(handler, &_One.TransactOpts, ticket_id, step_id)
}

// QueryStepbyTicketID is a paid mutator transaction binding the contract method 0x03429db0.
//
// Solidity: function QueryStepbyTicketID(string ticket_id) returns(string[])
func (_One *OneTransactor) QueryStepbyTicketID(opts *bind.TransactOpts, ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryStepbyTicketID", ticket_id)
}

func (_One *OneTransactor) AsyncQueryStepbyTicketID(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryStepbyTicketID", ticket_id)
}

// QueryStepbyTicketID is a paid mutator transaction binding the contract method 0x03429db0.
//
// Solidity: function QueryStepbyTicketID(string ticket_id) returns(string[])
func (_One *OneSession) QueryStepbyTicketID(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryStepbyTicketID(&_One.TransactOpts, ticket_id)
}

func (_One *OneSession) AsyncQueryStepbyTicketID(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryStepbyTicketID(handler, &_One.TransactOpts, ticket_id)
}

// QueryStepbyTicketID is a paid mutator transaction binding the contract method 0x03429db0.
//
// Solidity: function QueryStepbyTicketID(string ticket_id) returns(string[])
func (_One *OneTransactorSession) QueryStepbyTicketID(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryStepbyTicketID(&_One.TransactOpts, ticket_id)
}

func (_One *OneTransactorSession) AsyncQueryStepbyTicketID(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryStepbyTicketID(handler, &_One.TransactOpts, ticket_id)
}

// QueryTicket is a paid mutator transaction binding the contract method 0x1d98a66b.
//
// Solidity: function QueryTicket(string ticket_id) returns(string, string, string, string)
func (_One *OneTransactor) QueryTicket(opts *bind.TransactOpts, ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryTicket", ticket_id)
}

func (_One *OneTransactor) AsyncQueryTicket(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryTicket", ticket_id)
}

// QueryTicket is a paid mutator transaction binding the contract method 0x1d98a66b.
//
// Solidity: function QueryTicket(string ticket_id) returns(string, string, string, string)
func (_One *OneSession) QueryTicket(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryTicket(&_One.TransactOpts, ticket_id)
}

func (_One *OneSession) AsyncQueryTicket(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryTicket(handler, &_One.TransactOpts, ticket_id)
}

// QueryTicket is a paid mutator transaction binding the contract method 0x1d98a66b.
//
// Solidity: function QueryTicket(string ticket_id) returns(string, string, string, string)
func (_One *OneTransactorSession) QueryTicket(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryTicket(&_One.TransactOpts, ticket_id)
}

func (_One *OneTransactorSession) AsyncQueryTicket(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryTicket(handler, &_One.TransactOpts, ticket_id)
}

// QueryTicketExecProgress is a paid mutator transaction binding the contract method 0x6f375860.
//
// Solidity: function QueryTicketExecProgress(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneTransactor) QueryTicketExecProgress(opts *bind.TransactOpts, ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryTicketExecProgress", ticket_id)
}

func (_One *OneTransactor) AsyncQueryTicketExecProgress(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryTicketExecProgress", ticket_id)
}

// QueryTicketExecProgress is a paid mutator transaction binding the contract method 0x6f375860.
//
// Solidity: function QueryTicketExecProgress(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneSession) QueryTicketExecProgress(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryTicketExecProgress(&_One.TransactOpts, ticket_id)
}

func (_One *OneSession) AsyncQueryTicketExecProgress(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryTicketExecProgress(handler, &_One.TransactOpts, ticket_id)
}

// QueryTicketExecProgress is a paid mutator transaction binding the contract method 0x6f375860.
//
// Solidity: function QueryTicketExecProgress(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneTransactorSession) QueryTicketExecProgress(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryTicketExecProgress(&_One.TransactOpts, ticket_id)
}

func (_One *OneTransactorSession) AsyncQueryTicketExecProgress(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryTicketExecProgress(handler, &_One.TransactOpts, ticket_id)
}

// QueryTicketHistory is a paid mutator transaction binding the contract method 0xb1a3a74e.
//
// Solidity: function QueryTicketHistory(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneTransactor) QueryTicketHistory(opts *bind.TransactOpts, ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "QueryTicketHistory", ticket_id)
}

func (_One *OneTransactor) AsyncQueryTicketHistory(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "QueryTicketHistory", ticket_id)
}

// QueryTicketHistory is a paid mutator transaction binding the contract method 0xb1a3a74e.
//
// Solidity: function QueryTicketHistory(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneSession) QueryTicketHistory(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryTicketHistory(&_One.TransactOpts, ticket_id)
}

func (_One *OneSession) AsyncQueryTicketHistory(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryTicketHistory(handler, &_One.TransactOpts, ticket_id)
}

// QueryTicketHistory is a paid mutator transaction binding the contract method 0xb1a3a74e.
//
// Solidity: function QueryTicketHistory(string ticket_id) returns(string[], string[], string[], string[])
func (_One *OneTransactorSession) QueryTicketHistory(ticket_id string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.QueryTicketHistory(&_One.TransactOpts, ticket_id)
}

func (_One *OneTransactorSession) AsyncQueryTicketHistory(handler func(*types.Receipt, error), ticket_id string) (*types.Transaction, error) {
	return _One.Contract.AsyncQueryTicketHistory(handler, &_One.TransactOpts, ticket_id)
}

// ReportTicketResult is a paid mutator transaction binding the contract method 0x6533ebe8.
//
// Solidity: function ReportTicketResult(string ticket_id, string step_id, string reporter, string report_time, string confirmer) returns(int256)
func (_One *OneTransactor) ReportTicketResult(opts *bind.TransactOpts, ticket_id string, step_id string, reporter string, report_time string, confirmer string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "ReportTicketResult", ticket_id, step_id, reporter, report_time, confirmer)
}

func (_One *OneTransactor) AsyncReportTicketResult(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string, reporter string, report_time string, confirmer string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "ReportTicketResult", ticket_id, step_id, reporter, report_time, confirmer)
}

// ReportTicketResult is a paid mutator transaction binding the contract method 0x6533ebe8.
//
// Solidity: function ReportTicketResult(string ticket_id, string step_id, string reporter, string report_time, string confirmer) returns(int256)
func (_One *OneSession) ReportTicketResult(ticket_id string, step_id string, reporter string, report_time string, confirmer string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.ReportTicketResult(&_One.TransactOpts, ticket_id, step_id, reporter, report_time, confirmer)
}

func (_One *OneSession) AsyncReportTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string, reporter string, report_time string, confirmer string) (*types.Transaction, error) {
	return _One.Contract.AsyncReportTicketResult(handler, &_One.TransactOpts, ticket_id, step_id, reporter, report_time, confirmer)
}

// ReportTicketResult is a paid mutator transaction binding the contract method 0x6533ebe8.
//
// Solidity: function ReportTicketResult(string ticket_id, string step_id, string reporter, string report_time, string confirmer) returns(int256)
func (_One *OneTransactorSession) ReportTicketResult(ticket_id string, step_id string, reporter string, report_time string, confirmer string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.ReportTicketResult(&_One.TransactOpts, ticket_id, step_id, reporter, report_time, confirmer)
}

func (_One *OneTransactorSession) AsyncReportTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string, reporter string, report_time string, confirmer string) (*types.Transaction, error) {
	return _One.Contract.AsyncReportTicketResult(handler, &_One.TransactOpts, ticket_id, step_id, reporter, report_time, confirmer)
}

// SendTicketResult is a paid mutator transaction binding the contract method 0xc3e954e4.
//
// Solidity: function SendTicketResult(string ticket_id, string step_id, string sender, string send_time, string receiver) returns(int256)
func (_One *OneTransactor) SendTicketResult(opts *bind.TransactOpts, ticket_id string, step_id string, sender string, send_time string, receiver string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "SendTicketResult", ticket_id, step_id, sender, send_time, receiver)
}

func (_One *OneTransactor) AsyncSendTicketResult(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string, sender string, send_time string, receiver string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "SendTicketResult", ticket_id, step_id, sender, send_time, receiver)
}

// SendTicketResult is a paid mutator transaction binding the contract method 0xc3e954e4.
//
// Solidity: function SendTicketResult(string ticket_id, string step_id, string sender, string send_time, string receiver) returns(int256)
func (_One *OneSession) SendTicketResult(ticket_id string, step_id string, sender string, send_time string, receiver string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.SendTicketResult(&_One.TransactOpts, ticket_id, step_id, sender, send_time, receiver)
}

func (_One *OneSession) AsyncSendTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string, sender string, send_time string, receiver string) (*types.Transaction, error) {
	return _One.Contract.AsyncSendTicketResult(handler, &_One.TransactOpts, ticket_id, step_id, sender, send_time, receiver)
}

// SendTicketResult is a paid mutator transaction binding the contract method 0xc3e954e4.
//
// Solidity: function SendTicketResult(string ticket_id, string step_id, string sender, string send_time, string receiver) returns(int256)
func (_One *OneTransactorSession) SendTicketResult(ticket_id string, step_id string, sender string, send_time string, receiver string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.SendTicketResult(&_One.TransactOpts, ticket_id, step_id, sender, send_time, receiver)
}

func (_One *OneTransactorSession) AsyncSendTicketResult(handler func(*types.Receipt, error), ticket_id string, step_id string, sender string, send_time string, receiver string) (*types.Transaction, error) {
	return _One.Contract.AsyncSendTicketResult(handler, &_One.TransactOpts, ticket_id, step_id, sender, send_time, receiver)
}

// StepExecResultStorage is a paid mutator transaction binding the contract method 0xdae4df81.
//
// Solidity: function StepExecResultStorage(string ticket_id, string step_id, string step_result, string reason_desp, string creator, string create_time) returns(int256)
func (_One *OneTransactor) StepExecResultStorage(opts *bind.TransactOpts, ticket_id string, step_id string, step_result string, reason_desp string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "StepExecResultStorage", ticket_id, step_id, step_result, reason_desp, creator, create_time)
}

func (_One *OneTransactor) AsyncStepExecResultStorage(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string, step_result string, reason_desp string, creator string, create_time string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "StepExecResultStorage", ticket_id, step_id, step_result, reason_desp, creator, create_time)
}

// StepExecResultStorage is a paid mutator transaction binding the contract method 0xdae4df81.
//
// Solidity: function StepExecResultStorage(string ticket_id, string step_id, string step_result, string reason_desp, string creator, string create_time) returns(int256)
func (_One *OneSession) StepExecResultStorage(ticket_id string, step_id string, step_result string, reason_desp string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.StepExecResultStorage(&_One.TransactOpts, ticket_id, step_id, step_result, reason_desp, creator, create_time)
}

func (_One *OneSession) AsyncStepExecResultStorage(handler func(*types.Receipt, error), ticket_id string, step_id string, step_result string, reason_desp string, creator string, create_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncStepExecResultStorage(handler, &_One.TransactOpts, ticket_id, step_id, step_result, reason_desp, creator, create_time)
}

// StepExecResultStorage is a paid mutator transaction binding the contract method 0xdae4df81.
//
// Solidity: function StepExecResultStorage(string ticket_id, string step_id, string step_result, string reason_desp, string creator, string create_time) returns(int256)
func (_One *OneTransactorSession) StepExecResultStorage(ticket_id string, step_id string, step_result string, reason_desp string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.StepExecResultStorage(&_One.TransactOpts, ticket_id, step_id, step_result, reason_desp, creator, create_time)
}

func (_One *OneTransactorSession) AsyncStepExecResultStorage(handler func(*types.Receipt, error), ticket_id string, step_id string, step_result string, reason_desp string, creator string, create_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncStepExecResultStorage(handler, &_One.TransactOpts, ticket_id, step_id, step_result, reason_desp, creator, create_time)
}

// UploadStep is a paid mutator transaction binding the contract method 0x5c148b63.
//
// Solidity: function UploadStep(string ticket_id, string step_id, string step_info, string step_seq, string creator, string create_time) returns(int256)
func (_One *OneTransactor) UploadStep(opts *bind.TransactOpts, ticket_id string, step_id string, step_info string, step_seq string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "UploadStep", ticket_id, step_id, step_info, step_seq, creator, create_time)
}

func (_One *OneTransactor) AsyncUploadStep(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, step_id string, step_info string, step_seq string, creator string, create_time string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "UploadStep", ticket_id, step_id, step_info, step_seq, creator, create_time)
}

// UploadStep is a paid mutator transaction binding the contract method 0x5c148b63.
//
// Solidity: function UploadStep(string ticket_id, string step_id, string step_info, string step_seq, string creator, string create_time) returns(int256)
func (_One *OneSession) UploadStep(ticket_id string, step_id string, step_info string, step_seq string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.UploadStep(&_One.TransactOpts, ticket_id, step_id, step_info, step_seq, creator, create_time)
}

func (_One *OneSession) AsyncUploadStep(handler func(*types.Receipt, error), ticket_id string, step_id string, step_info string, step_seq string, creator string, create_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncUploadStep(handler, &_One.TransactOpts, ticket_id, step_id, step_info, step_seq, creator, create_time)
}

// UploadStep is a paid mutator transaction binding the contract method 0x5c148b63.
//
// Solidity: function UploadStep(string ticket_id, string step_id, string step_info, string step_seq, string creator, string create_time) returns(int256)
func (_One *OneTransactorSession) UploadStep(ticket_id string, step_id string, step_info string, step_seq string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.UploadStep(&_One.TransactOpts, ticket_id, step_id, step_info, step_seq, creator, create_time)
}

func (_One *OneTransactorSession) AsyncUploadStep(handler func(*types.Receipt, error), ticket_id string, step_id string, step_info string, step_seq string, creator string, create_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncUploadStep(handler, &_One.TransactOpts, ticket_id, step_id, step_info, step_seq, creator, create_time)
}

// UploadTicket is a paid mutator transaction binding the contract method 0x9022cf52.
//
// Solidity: function UploadTicket(string ticket_id, string ticket_info, string step_count, string creator, string create_time) returns(int256)
func (_One *OneTransactor) UploadTicket(opts *bind.TransactOpts, ticket_id string, ticket_info string, step_count string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.contract.Transact(opts, "UploadTicket", ticket_id, ticket_info, step_count, creator, create_time)
}

func (_One *OneTransactor) AsyncUploadTicket(handler func(*types.Receipt, error), opts *bind.TransactOpts, ticket_id string, ticket_info string, step_count string, creator string, create_time string) (*types.Transaction, error) {
	return _One.contract.AsyncTransact(opts, handler, "UploadTicket", ticket_id, ticket_info, step_count, creator, create_time)
}

// UploadTicket is a paid mutator transaction binding the contract method 0x9022cf52.
//
// Solidity: function UploadTicket(string ticket_id, string ticket_info, string step_count, string creator, string create_time) returns(int256)
func (_One *OneSession) UploadTicket(ticket_id string, ticket_info string, step_count string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.UploadTicket(&_One.TransactOpts, ticket_id, ticket_info, step_count, creator, create_time)
}

func (_One *OneSession) AsyncUploadTicket(handler func(*types.Receipt, error), ticket_id string, ticket_info string, step_count string, creator string, create_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncUploadTicket(handler, &_One.TransactOpts, ticket_id, ticket_info, step_count, creator, create_time)
}

// UploadTicket is a paid mutator transaction binding the contract method 0x9022cf52.
//
// Solidity: function UploadTicket(string ticket_id, string ticket_info, string step_count, string creator, string create_time) returns(int256)
func (_One *OneTransactorSession) UploadTicket(ticket_id string, ticket_info string, step_count string, creator string, create_time string) (*types.Transaction, *types.Receipt, error) {
	return _One.Contract.UploadTicket(&_One.TransactOpts, ticket_id, ticket_info, step_count, creator, create_time)
}

func (_One *OneTransactorSession) AsyncUploadTicket(handler func(*types.Receipt, error), ticket_id string, ticket_info string, step_count string, creator string, create_time string) (*types.Transaction, error) {
	return _One.Contract.AsyncUploadTicket(handler, &_One.TransactOpts, ticket_id, ticket_info, step_count, creator, create_time)
}

// OneInsertDataEvent represents a InsertDataEvent event raised by the One contract.
type OneInsertDataEvent struct {
	Arg0 string
	Arg1 string
	Raw  types.Log // Blockchain specific contextual infos
}

// WatchInsertDataEvent is a free log subscription operation binding the contract event 0xaddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d.
//
// Solidity: event InsertDataEvent(string , string )
func (_One *OneFilterer) WatchInsertDataEvent(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "InsertDataEvent")
}

func (_One *OneFilterer) WatchAllInsertDataEvent(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "InsertDataEvent")
}

// ParseInsertDataEvent is a log parse operation binding the contract event 0xaddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d.
//
// Solidity: event InsertDataEvent(string , string )
func (_One *OneFilterer) ParseInsertDataEvent(log types.Log) (*OneInsertDataEvent, error) {
	event := new(OneInsertDataEvent)
	if err := _One.contract.UnpackLog(event, "InsertDataEvent", log); err != nil {
		return nil, err
	}
	return event, nil
}

// WatchInsertDataEvent is a free log subscription operation binding the contract event 0xaddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d.
//
// Solidity: event InsertDataEvent(string , string )
func (_One *OneSession) WatchInsertDataEvent(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchInsertDataEvent(fromBlock, handler)
}

func (_One *OneSession) WatchAllInsertDataEvent(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchAllInsertDataEvent(fromBlock, handler)
}

// ParseInsertDataEvent is a log parse operation binding the contract event 0xaddd6e9e62e03b81dd0092854b605fa82b15c6a4c95ceeed8034ac3d8f7cc57d.
//
// Solidity: event InsertDataEvent(string , string )
func (_One *OneSession) ParseInsertDataEvent(log types.Log) (*OneInsertDataEvent, error) {
	return _One.Contract.ParseInsertDataEvent(log)
}

// OneInsertResult represents a InsertResult event raised by the One contract.
type OneInsertResult struct {
	Count *big.Int
	Raw   types.Log // Blockchain specific contextual infos
}

// WatchInsertResult is a free log subscription operation binding the contract event 0xc57b01fa77f41df77eaab79a0e2623fab2e7ae3e9530d9b1cab225ad65f2b7ce.
//
// Solidity: event InsertResult(int256 count)
func (_One *OneFilterer) WatchInsertResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "InsertResult")
}

func (_One *OneFilterer) WatchAllInsertResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "InsertResult")
}

// ParseInsertResult is a log parse operation binding the contract event 0xc57b01fa77f41df77eaab79a0e2623fab2e7ae3e9530d9b1cab225ad65f2b7ce.
//
// Solidity: event InsertResult(int256 count)
func (_One *OneFilterer) ParseInsertResult(log types.Log) (*OneInsertResult, error) {
	event := new(OneInsertResult)
	if err := _One.contract.UnpackLog(event, "InsertResult", log); err != nil {
		return nil, err
	}
	return event, nil
}

// WatchInsertResult is a free log subscription operation binding the contract event 0xc57b01fa77f41df77eaab79a0e2623fab2e7ae3e9530d9b1cab225ad65f2b7ce.
//
// Solidity: event InsertResult(int256 count)
func (_One *OneSession) WatchInsertResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchInsertResult(fromBlock, handler)
}

func (_One *OneSession) WatchAllInsertResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchAllInsertResult(fromBlock, handler)
}

// ParseInsertResult is a log parse operation binding the contract event 0xc57b01fa77f41df77eaab79a0e2623fab2e7ae3e9530d9b1cab225ad65f2b7ce.
//
// Solidity: event InsertResult(int256 count)
func (_One *OneSession) ParseInsertResult(log types.Log) (*OneInsertResult, error) {
	return _One.Contract.ParseInsertResult(log)
}

// OnePrintInfo represents a PrintInfo event raised by the One contract.
type OnePrintInfo struct {
	Info string
	Raw  types.Log // Blockchain specific contextual infos
}

// WatchPrintInfo is a free log subscription operation binding the contract event 0xb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e4.
//
// Solidity: event PrintInfo(string info)
func (_One *OneFilterer) WatchPrintInfo(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "PrintInfo")
}

func (_One *OneFilterer) WatchAllPrintInfo(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "PrintInfo")
}

// ParsePrintInfo is a log parse operation binding the contract event 0xb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e4.
//
// Solidity: event PrintInfo(string info)
func (_One *OneFilterer) ParsePrintInfo(log types.Log) (*OnePrintInfo, error) {
	event := new(OnePrintInfo)
	if err := _One.contract.UnpackLog(event, "PrintInfo", log); err != nil {
		return nil, err
	}
	return event, nil
}

// WatchPrintInfo is a free log subscription operation binding the contract event 0xb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e4.
//
// Solidity: event PrintInfo(string info)
func (_One *OneSession) WatchPrintInfo(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchPrintInfo(fromBlock, handler)
}

func (_One *OneSession) WatchAllPrintInfo(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchAllPrintInfo(fromBlock, handler)
}

// ParsePrintInfo is a log parse operation binding the contract event 0xb5a3052a466f1117eddf5fdeb19edc8ff4b0202c305d8a1a41c5cbae3d5c89e4.
//
// Solidity: event PrintInfo(string info)
func (_One *OneSession) ParsePrintInfo(log types.Log) (*OnePrintInfo, error) {
	return _One.Contract.ParsePrintInfo(log)
}

// OneSetResult represents a SetResult event raised by the One contract.
type OneSetResult struct {
	Count *big.Int
	Raw   types.Log // Blockchain specific contextual infos
}

// WatchSetResult is a free log subscription operation binding the contract event 0xb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d6.
//
// Solidity: event SetResult(int256 count)
func (_One *OneFilterer) WatchSetResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "SetResult")
}

func (_One *OneFilterer) WatchAllSetResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "SetResult")
}

// ParseSetResult is a log parse operation binding the contract event 0xb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d6.
//
// Solidity: event SetResult(int256 count)
func (_One *OneFilterer) ParseSetResult(log types.Log) (*OneSetResult, error) {
	event := new(OneSetResult)
	if err := _One.contract.UnpackLog(event, "SetResult", log); err != nil {
		return nil, err
	}
	return event, nil
}

// WatchSetResult is a free log subscription operation binding the contract event 0xb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d6.
//
// Solidity: event SetResult(int256 count)
func (_One *OneSession) WatchSetResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchSetResult(fromBlock, handler)
}

func (_One *OneSession) WatchAllSetResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchAllSetResult(fromBlock, handler)
}

// ParseSetResult is a log parse operation binding the contract event 0xb103249d88cd818b10c5cd6889874103a7699c5834cb078d8f35925dca8a62d6.
//
// Solidity: event SetResult(int256 count)
func (_One *OneSession) ParseSetResult(log types.Log) (*OneSetResult, error) {
	return _One.Contract.ParseSetResult(log)
}

// OneUpdateResult represents a UpdateResult event raised by the One contract.
type OneUpdateResult struct {
	Count *big.Int
	Raw   types.Log // Blockchain specific contextual infos
}

// WatchUpdateResult is a free log subscription operation binding the contract event 0x8e5890af40fc24a059396aca2f83d6ce41fcef086876548fa4fb8ec27e9d292a.
//
// Solidity: event UpdateResult(int256 count)
func (_One *OneFilterer) WatchUpdateResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "UpdateResult")
}

func (_One *OneFilterer) WatchAllUpdateResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.contract.WatchLogs(fromBlock, handler, "UpdateResult")
}

// ParseUpdateResult is a log parse operation binding the contract event 0x8e5890af40fc24a059396aca2f83d6ce41fcef086876548fa4fb8ec27e9d292a.
//
// Solidity: event UpdateResult(int256 count)
func (_One *OneFilterer) ParseUpdateResult(log types.Log) (*OneUpdateResult, error) {
	event := new(OneUpdateResult)
	if err := _One.contract.UnpackLog(event, "UpdateResult", log); err != nil {
		return nil, err
	}
	return event, nil
}

// WatchUpdateResult is a free log subscription operation binding the contract event 0x8e5890af40fc24a059396aca2f83d6ce41fcef086876548fa4fb8ec27e9d292a.
//
// Solidity: event UpdateResult(int256 count)
func (_One *OneSession) WatchUpdateResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchUpdateResult(fromBlock, handler)
}

func (_One *OneSession) WatchAllUpdateResult(fromBlock *uint64, handler func(int, []types.Log)) error {
	return _One.Contract.WatchAllUpdateResult(fromBlock, handler)
}

// ParseUpdateResult is a log parse operation binding the contract event 0x8e5890af40fc24a059396aca2f83d6ce41fcef086876548fa4fb8ec27e9d292a.
//
// Solidity: event UpdateResult(int256 count)
func (_One *OneSession) ParseUpdateResult(log types.Log) (*OneUpdateResult, error) {
	return _One.Contract.ParseUpdateResult(log)
}

func main() {
	configs, err := conf.ParseConfigFile("config.toml")
	if err != nil {
		log.Fatalf("ParseConfigFile failed, err: %v", err)
	}
	client, err := client.Dial(&configs[0])
	if err != nil {
		fmt.Printf("Dial Client failed, err:%v", err)
		return
	}
	address, tx, _, err := DeployOne(client.GetTransactOpts(), client)
	if err != nil {
		fmt.Printf("Deploy failed, err:%v", err)
		return
	}
	fmt.Println("contract address: ", address.Hex()) // the address should be saved
	fmt.Println("transaction hash: ", tx.Hash().Hex())

}

bxq2011hust avatar Nov 02 '22 11:11 bxq2011hust