0x60806040525f5f5f6101000a81548160ff0219169083151502179055503480156026575f5ffd5b50335f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bcb806100745f395ff3fe608060405234801561000f575f5ffd5b506004361061007b575f3560e01c80638da5cb5b116100595780638da5cb5b146100fb578063c0776ce914610119578063d02af82414610149578063f2fde38b146101795761007b565b80633b111c251461007f57806370fc338f1461009b5780638b6b7e36146100cb575b5f5ffd5b610099600480360381019061009491906105d5565b610195565b005b6100b560048036038101906100b09190610784565b61033f565b6040516100c291906107ed565b60405180910390f35b6100e560048036038101906100e09190610806565b610349565b6040516100f291906107ed565b60405180910390f35b610103610352565b60405161011091906107ed565b60405180910390f35b610133600480360381019061012e9190610831565b610377565b60405161014091906108d8565b60405180910390f35b610163600480360381019061015e91906108f8565b6103b6565b60405161017091906108d8565b60405180910390f35b610193600480360381019061018e9190610948565b6103f7565b005b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610203576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fa906109bd565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16828360405160240161022d91906109ea565b6040516020818303038152906040527fa6b206bf000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516102b79190610a47565b5f6040518083038185875af1925050503d805f81146102f1576040519150601f19603f3d011682016040523d82523d5f602084013e6102f6565b606091505b505090508061033a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033190610aa7565b60405180910390fd5b505050565b5f5f905092915050565b5f5f9050919050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600781526020017f53756363657373000000000000000000000000000000000000000000000000008152509050919050565b60606040518060400160405280600781526020017f537563636573730000000000000000000000000000000000000000000000000081525090509392505050565b5f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047d90610b0f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036104f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104eb90610b77565b60405180910390fd5b805f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61057182610548565b9050919050565b61058181610567565b811461058b575f5ffd5b50565b5f8135905061059c81610578565b92915050565b5f819050919050565b6105b4816105a2565b81146105be575f5ffd5b50565b5f813590506105cf816105ab565b92915050565b5f5f604083850312156105eb576105ea610540565b5b5f6105f88582860161058e565b9250506020610609858286016105c1565b9150509250929050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106618261061b565b810181811067ffffffffffffffff821117156106805761067f61062b565b5b80604052505050565b5f610692610537565b905061069e8282610658565b919050565b5f67ffffffffffffffff8211156106bd576106bc61062b565b5b6106c68261061b565b9050602081019050919050565b828183375f83830152505050565b5f6106f36106ee846106a3565b610689565b90508281526020810184848401111561070f5761070e610617565b5b61071a8482856106d3565b509392505050565b5f82601f83011261073657610735610613565b5b81356107468482602086016106e1565b91505092915050565b5f8115159050919050565b6107638161074f565b811461076d575f5ffd5b50565b5f8135905061077e8161075a565b92915050565b5f5f6040838503121561079a57610799610540565b5b5f83013567ffffffffffffffff8111156107b7576107b6610544565b5b6107c385828601610722565b92505060206107d485828601610770565b9150509250929050565b6107e781610567565b82525050565b5f6020820190506108005f8301846107de565b92915050565b5f6020828403121561081b5761081a610540565b5b5f610828848285016105c1565b91505092915050565b5f6020828403121561084657610845610540565b5b5f82013567ffffffffffffffff81111561086357610862610544565b5b61086f84828501610722565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6108aa82610878565b6108b48185610882565b93506108c4818560208601610892565b6108cd8161061b565b840191505092915050565b5f6020820190508181035f8301526108f081846108a0565b905092915050565b5f5f5f6060848603121561090f5761090e610540565b5b5f61091c868287016105c1565b935050602061092d8682870161058e565b925050604061093e8682870161058e565b9150509250925092565b5f6020828403121561095d5761095c610540565b5b5f61096a8482850161058e565b91505092915050565b7f496e76616c696420636f6e7472616374206164647265737300000000000000005f82015250565b5f6109a7601883610882565b91506109b282610973565b602082019050919050565b5f6020820190508181035f8301526109d48161099b565b9050919050565b6109e4816105a2565b82525050565b5f6020820190506109fd5f8301846109db565b92915050565b5f81519050919050565b5f81905092915050565b5f610a2182610a03565b610a2b8185610a0d565b9350610a3b818560208601610892565b80840191505092915050565b5f610a528284610a17565b915081905092915050565b7f4661696c656420746f2063616c6c206f7468657220636f6e74726163740000005f82015250565b5f610a91601d83610882565b9150610a9c82610a5d565b602082019050919050565b5f6020820190508181035f830152610abe81610a85565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f610af9601783610882565b9150610b0482610ac5565b602082019050919050565b5f6020820190508181035f830152610b2681610aed565b9050919050565b7f496e76616c6964206164647265737320666f72206e6577206f776e65720000005f82015250565b5f610b61601d83610882565b9150610b6c82610b2d565b602082019050919050565b5f6020820190508181035f830152610b8e81610b55565b905091905056fea2646970667358221220582a8193e4e9fedb2fcf1bb63e4deed3e74c5d0606a2b30fe5e67c72b0e8a6fb64736f6c634300081c0033