0x608060405234801561001057600080fd5b5061002d61002261003260201b60201c565b61003a60201b60201c565b6100fe565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6110238061010d6000396000f3fe6080604052600436106100705760003560e01c8063a2ea551c1161004e578063a2ea551c146100e0578063f2fde38b1461010b578063f4f3b20014610134578063fa12f6d41461015d57610070565b806310a7319c14610075578063715018a61461009e5780638da5cb5b146100b5575b600080fd5b34801561008157600080fd5b5061009c60048036038101906100979190610a66565b610179565b005b3480156100aa57600080fd5b506100b3610331565b005b3480156100c157600080fd5b506100ca610345565b6040516100d79190610b00565b60405180910390f35b3480156100ec57600080fd5b506100f561036e565b6040516101029190610b2a565b60405180910390f35b34801561011757600080fd5b50610132600480360381019061012d9190610b45565b610379565b005b34801561014057600080fd5b5061015b60048036038101906101569190610b45565b6103fc565b005b61017760048036038101906101729190610b72565b61050c565b005b600083905060005b835181101561032a5782818151811061019d5761019c610bea565b5b60200260200101518273ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016101e0929190610c19565b602060405180830381865afa1580156101fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102219190610c57565b1015610262576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025990610ce1565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3386848151811061029257610291610bea565b5b60200260200101518685815181106102ad576102ac610bea565b5b60200260200101516040518463ffffffff1660e01b81526004016102d393929190610d01565b6020604051808303816000875af11580156102f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103169190610d70565b50808061032290610dcc565b915050610181565b5050505050565b610339610658565b61034360006106d6565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000620b9d9e905090565b610381610658565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036103f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e790610e86565b60405180910390fd5b6103f9816106d6565b50565b610404610658565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61042d610345565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104669190610b00565b602060405180830381865afa158015610483573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a79190610c57565b6040518363ffffffff1660e01b81526004016104c4929190610ea6565b6020604051808303816000875af11580156104e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105079190610d70565b505050565b60005b825181101561060c57600083828151811061052d5761052c610bea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1683838151811061055e5761055d610bea565b5b602002602001015160405161057290610f00565b60006040518083038185875af1925050503d80600081146105af576040519150601f19603f3d011682016040523d82523d6000602084013e6105b4565b606091505b50509050806105f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ef90610f61565b60405180910390fd5b50808061060490610dcc565b91505061050f565b503373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610653573d6000803e3d6000fd5b505050565b61066061079a565b73ffffffffffffffffffffffffffffffffffffffff1661067e610345565b73ffffffffffffffffffffffffffffffffffffffff16146106d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cb90610fcd565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107e1826107b6565b9050919050565b6107f1816107d6565b81146107fc57600080fd5b50565b60008135905061080e816107e8565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61086282610819565b810181811067ffffffffffffffff821117156108815761088061082a565b5b80604052505050565b60006108946107a2565b90506108a08282610859565b919050565b600067ffffffffffffffff8211156108c0576108bf61082a565b5b602082029050602081019050919050565b600080fd5b60006108e96108e4846108a5565b61088a565b9050808382526020820190506020840283018581111561090c5761090b6108d1565b5b835b81811015610935578061092188826107ff565b84526020840193505060208101905061090e565b5050509392505050565b600082601f83011261095457610953610814565b5b81356109648482602086016108d6565b91505092915050565b600067ffffffffffffffff8211156109885761098761082a565b5b602082029050602081019050919050565b6000819050919050565b6109ac81610999565b81146109b757600080fd5b50565b6000813590506109c9816109a3565b92915050565b60006109e26109dd8461096d565b61088a565b90508083825260208201905060208402830185811115610a0557610a046108d1565b5b835b81811015610a2e5780610a1a88826109ba565b845260208401935050602081019050610a07565b5050509392505050565b600082601f830112610a4d57610a4c610814565b5b8135610a5d8482602086016109cf565b91505092915050565b600080600060608486031215610a7f57610a7e6107ac565b5b6000610a8d868287016107ff565b935050602084013567ffffffffffffffff811115610aae57610aad6107b1565b5b610aba8682870161093f565b925050604084013567ffffffffffffffff811115610adb57610ada6107b1565b5b610ae786828701610a38565b9150509250925092565b610afa816107d6565b82525050565b6000602082019050610b156000830184610af1565b92915050565b610b2481610999565b82525050565b6000602082019050610b3f6000830184610b1b565b92915050565b600060208284031215610b5b57610b5a6107ac565b5b6000610b69848285016107ff565b91505092915050565b60008060408385031215610b8957610b886107ac565b5b600083013567ffffffffffffffff811115610ba757610ba66107b1565b5b610bb38582860161093f565b925050602083013567ffffffffffffffff811115610bd457610bd36107b1565b5b610be085828601610a38565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050610c2e6000830185610af1565b610c3b6020830184610af1565b9392505050565b600081519050610c51816109a3565b92915050565b600060208284031215610c6d57610c6c6107ac565b5b6000610c7b84828501610c42565b91505092915050565b600082825260208201905092915050565b7f616c6c6f77616e636520746f6f206c6f77000000000000000000000000000000600082015250565b6000610ccb601183610c84565b9150610cd682610c95565b602082019050919050565b60006020820190508181036000830152610cfa81610cbe565b9050919050565b6000606082019050610d166000830186610af1565b610d236020830185610af1565b610d306040830184610b1b565b949350505050565b60008115159050919050565b610d4d81610d38565b8114610d5857600080fd5b50565b600081519050610d6a81610d44565b92915050565b600060208284031215610d8657610d856107ac565b5b6000610d9484828501610d5b565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610dd782610999565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610e0957610e08610d9d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610e70602683610c84565b9150610e7b82610e14565b604082019050919050565b60006020820190508181036000830152610e9f81610e63565b9050919050565b6000604082019050610ebb6000830185610af1565b610ec86020830184610b1b565b9392505050565b600081905092915050565b50565b6000610eea600083610ecf565b9150610ef582610eda565b600082019050919050565b6000610f0b82610edd565b9150819050919050565b7f7472616e73616374696f6e206661696c65640000000000000000000000000000600082015250565b6000610f4b601283610c84565b9150610f5682610f15565b602082019050919050565b60006020820190508181036000830152610f7a81610f3e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610fb7602083610c84565b9150610fc282610f81565b602082019050919050565b60006020820190508181036000830152610fe681610faa565b905091905056fea2646970667358221220ce9254bb5fa41bd99b41349f8e521e4aefb1bb70065c82f52e4dc5f4a46ec50d64736f6c63430008130033