0x608060405234801561000f575f5ffd5b506004361061008a575f3560e01c806370a082311161005957806370a08231146101505780637a40624b1461018057806395d89b411461019e578063a9059cbb146101bc5761008b565b806306fdde03146100c657806318160ddd146100e457806323b872dd14610102578063313ce567146101325761008b565b5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd9061056e565b60405180910390fd5b6100ce6101ec565b6040516100db91906105ec565b60405180910390f35b6100ec6101fb565b6040516100f99190610624565b60405180910390f35b61011c600480360381019061011791906106c5565b610201565b604051610129919061072f565b60405180910390f35b61013a610272565b6040516101479190610763565b60405180910390f35b61016a6004803603810190610165919061077c565b610283565b6040516101779190610624565b60405180910390f35b610188610298565b6040516101959190610624565b60405180910390f35b6101a661029e565b6040516101b391906105ec565b60405180910390f35b6101d660048036038101906101d191906107a7565b6102ad565b6040516101e3919061072f565b60405180910390f35b60606101f661031d565b905090565b60015481565b5f8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161025f9190610624565b60405180910390a3600190509392505050565b5f5f9054906101000a900460ff1681565b6003602052805f5260405f205f915090505481565b60025481565b60606102a861031d565b905090565b5f8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161030b9190610624565b60405180910390a36001905092915050565b6060603c60025461032e9190610812565b4211610371576040518060400160405280600581526020017fd58d53444300000000000000000000000000000000000000000000000000000081525090506103be565b6103bb60046001436103839190610845565b405f6020811061039657610395610878565b5b1a60f81b60f81c60ff166103aa91906108d2565b60036103b69190610812565b6103c1565b90505b90565b60605f8267ffffffffffffffff8111156103de576103dd610902565b5b6040519080825280601f01601f1916602001820160405280156104105781602001600182028036833780820191505090505b5090505f6040518060400160405280601a81526020017f4142434445464748494a4b4c4d4e4f505152535455565758595a00000000000081525090505f42335a60405160200161046293929190610994565b604051602081830303815290604052805190602001205f1c90505f5f90505b85811015610508578283518361049791906108d2565b815181106104a8576104a7610878565b5b602001015160f81c60f81b8482815181106104c6576104c5610878565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600582901c91508080600101915050610481565b50829350505050919050565b5f82825260208201905092915050565b7f64656e69656400000000000000000000000000000000000000000000000000005f82015250565b5f610558600683610514565b915061056382610524565b602082019050919050565b5f6020820190508181035f8301526105858161054c565b9050919050565b5f81519050919050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105be8261058c565b6105c88185610514565b93506105d8818560208601610596565b6105e1816105a4565b840191505092915050565b5f6020820190508181035f83015261060481846105b4565b905092915050565b5f819050919050565b61061e8161060c565b82525050565b5f6020820190506106375f830184610615565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61066a82610641565b9050919050565b61067a81610660565b8114610684575f5ffd5b50565b5f8135905061069581610671565b92915050565b6106a48161060c565b81146106ae575f5ffd5b50565b5f813590506106bf8161069b565b92915050565b5f5f5f606084860312156106dc576106db61063d565b5b5f6106e986828701610687565b93505060206106fa86828701610687565b925050604061070b868287016106b1565b9150509250925092565b5f8115159050919050565b61072981610715565b82525050565b5f6020820190506107425f830184610720565b92915050565b5f60ff82169050919050565b61075d81610748565b82525050565b5f6020820190506107765f830184610754565b92915050565b5f602082840312156107915761079061063d565b5b5f61079e84828501610687565b91505092915050565b5f5f604083850312156107bd576107bc61063d565b5b5f6107ca85828601610687565b92505060206107db858286016106b1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61081c8261060c565b91506108278361060c565b925082820190508082111561083f5761083e6107e5565b5b92915050565b5f61084f8261060c565b915061085a8361060c565b9250828203905081811115610872576108716107e5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6108dc8261060c565b91506108e78361060c565b9250826108f7576108f66108a5565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b6109496109448261060c565b61092f565b82525050565b5f8160601b9050919050565b5f6109658261094f565b9050919050565b5f6109768261095b565b9050919050565b61098e61098982610660565b61096c565b82525050565b5f61099f8286610938565b6020820191506109af828561097d565b6014820191506109bf8284610938565b60208201915081905094935050505056fea264697066735822122081a1bbbcd454e28d648eb7b0950b723d56b715bb6a425d656ca0eccc829f1e9064736f6c634300081e0033
0x608060405260125f5f6101000a81548160ff021916908360ff160217905550348015610029575f5ffd5b5060018081905550600160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550426002819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016040516100d99190610131565b60405180910390a361014a565b5f819050919050565b5f819050919050565b5f819050919050565b5f61011b610116610111846100e6565b6100f8565b6100ef565b9050919050565b61012b81610101565b82525050565b5f6020820190506101445f830184610122565b92915050565b610a06806101575f395ff3fe608060405234801561000f575f5ffd5b506004361061008a575f3560e01c806370a082311161005957806370a08231146101505780637a40624b1461018057806395d89b411461019e578063a9059cbb146101bc5761008b565b806306fdde03146100c657806318160ddd146100e457806323b872dd14610102578063313ce567146101325761008b565b5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100bd9061056e565b60405180910390fd5b6100ce6101ec565b6040516100db91906105ec565b60405180910390f35b6100ec6101fb565b6040516100f99190610624565b60405180910390f35b61011c600480360381019061011791906106c5565b610201565b604051610129919061072f565b60405180910390f35b61013a610272565b6040516101479190610763565b60405180910390f35b61016a6004803603810190610165919061077c565b610283565b6040516101779190610624565b60405180910390f35b610188610298565b6040516101959190610624565b60405180910390f35b6101a661029e565b6040516101b391906105ec565b60405180910390f35b6101d660048036038101906101d191906107a7565b6102ad565b6040516101e3919061072f565b60405180910390f35b60606101f661031d565b905090565b60015481565b5f8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161025f9190610624565b60405180910390a3600190509392505050565b5f5f9054906101000a900460ff1681565b6003602052805f5260405f205f915090505481565b60025481565b60606102a861031d565b905090565b5f8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161030b9190610624565b60405180910390a36001905092915050565b6060603c60025461032e9190610812565b4211610371576040518060400160405280600581526020017fd58d53444300000000000000000000000000000000000000000000000000000081525090506103be565b6103bb60046001436103839190610845565b405f6020811061039657610395610878565b5b1a60f81b60f81c60ff166103aa91906108d2565b60036103b69190610812565b6103c1565b90505b90565b60605f8267ffffffffffffffff8111156103de576103dd610902565b5b6040519080825280601f01601f1916602001820160405280156104105781602001600182028036833780820191505090505b5090505f6040518060400160405280601a81526020017f4142434445464748494a4b4c4d4e4f505152535455565758595a00000000000081525090505f42335a60405160200161046293929190610994565b604051602081830303815290604052805190602001205f1c90505f5f90505b85811015610508578283518361049791906108d2565b815181106104a8576104a7610878565b5b602001015160f81c60f81b8482815181106104c6576104c5610878565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600582901c91508080600101915050610481565b50829350505050919050565b5f82825260208201905092915050565b7f64656e69656400000000000000000000000000000000000000000000000000005f82015250565b5f610558600683610514565b915061056382610524565b602082019050919050565b5f6020820190508181035f8301526105858161054c565b9050919050565b5f81519050919050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6105be8261058c565b6105c88185610514565b93506105d8818560208601610596565b6105e1816105a4565b840191505092915050565b5f6020820190508181035f83015261060481846105b4565b905092915050565b5f819050919050565b61061e8161060c565b82525050565b5f6020820190506106375f830184610615565b92915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61066a82610641565b9050919050565b61067a81610660565b8114610684575f5ffd5b50565b5f8135905061069581610671565b92915050565b6106a48161060c565b81146106ae575f5ffd5b50565b5f813590506106bf8161069b565b92915050565b5f5f5f606084860312156106dc576106db61063d565b5b5f6106e986828701610687565b93505060206106fa86828701610687565b925050604061070b868287016106b1565b9150509250925092565b5f8115159050919050565b61072981610715565b82525050565b5f6020820190506107425f830184610720565b92915050565b5f60ff82169050919050565b61075d81610748565b82525050565b5f6020820190506107765f830184610754565b92915050565b5f602082840312156107915761079061063d565b5b5f61079e84828501610687565b91505092915050565b5f5f604083850312156107bd576107bc61063d565b5b5f6107ca85828601610687565b92505060206107db858286016106b1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61081c8261060c565b91506108278361060c565b925082820190508082111561083f5761083e6107e5565b5b92915050565b5f61084f8261060c565b915061085a8361060c565b9250828203905081811115610872576108716107e5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6108dc8261060c565b91506108e78361060c565b9250826108f7576108f66108a5565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b6109496109448261060c565b61092f565b82525050565b5f8160601b9050919050565b5f6109658261094f565b9050919050565b5f6109768261095b565b9050919050565b61098e61098982610660565b61096c565b82525050565b5f61099f8286610938565b6020820191506109af828561097d565b6014820191506109bf8284610938565b60208201915081905094935050505056fea264697066735822122081a1bbbcd454e28d648eb7b0950b723d56b715bb6a425d656ca0eccc829f1e9064736f6c634300081e0033