0x61010060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260e05234801561002957600080fd5b50604051610ec9380380610ec983398101604081905261004891610177565b336001600160a01b0382160361008a5760405162461bcd60e51b8152602060048201526002602482015261636f60f01b60448201526064015b60405180910390fd5b6001600160a01b0382811660805281811660c05260e05160405163095ea7b360e01b8152731e0049783f008a0085193e00003d00cd54003c716004820152600019602482015291169063095ea7b3906044016020604051808303816000875af11580156100fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011f91906101aa565b6101505760405162461bcd60e51b815260206004820152600260248201526130b360f11b6044820152606401610081565b50503360a0526101d3565b80516001600160a01b038116811461017257600080fd5b919050565b6000806040838503121561018a57600080fd5b6101938361015b565b91506101a16020840161015b565b90509250929050565b6000602082840312156101bc57600080fd5b815180151581146101cc57600080fd5b9392505050565b60805160a05160c05160e051610ca861022160003960006104480152600061010501526000818161014e015281816103bc0152818161051701526106170152600061023a0152610ca86000f3fe6080604052600436106100405760003560e01c80631626ba7e146100495780632e1a7d4d1461008757806369e9cae1146100a7578063b61d27f6146100c757005b3661004757005b005b34801561005557600080fd5b50610069610064366004610989565b6100f4565b6040516001600160e01b031990911681526020015b60405180910390f35b34801561009357600080fd5b506100476100a2366004610a44565b6103b1565b3480156100b357600080fd5b506100476100c2366004610a79565b61050c565b3480156100d357600080fd5b506100e76100e2366004610ab5565b61060a565b60405161007e9190610b3c565b6000806101018484610725565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03160361014c5750630b135d3f60e11b90506103ab565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161461019657506001600160e01b031990506103ab565b61ffff8416613fff600286901c166003808716908111156101c657506001600160e01b031993506103ab92505050565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106101fc576101fc610b8b565b60209081029190910101526040517f8ad0838d0000000000000000000000000000000000000000000000000000000081526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638ad0838d90610272906002908690600401610ba1565b602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b39190610bf1565b6fffffffffffffffffffffffffffffffff169050821580156102df575069010f0cf064dd592000008110155b156102fa5750630b135d3f60e11b95506103ab945050505050565b826001148015610314575069017b7883c069166000008110155b1561032f5750630b135d3f60e11b95506103ab945050505050565b826002148015610349575069032d26d12e980b6000008110155b156103645750630b135d3f60e11b95506103ab945050505050565b82600314801561037e575069065a4da25d3016c000008110155b156103995750630b135d3f60e11b95506103ab945050505050565b506001600160e01b0319955050505050505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104135760405162461bcd60e51b81526020600482015260026024820152616f6f60f01b60448201526064015b60405180910390fd5b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bd9190610c2a565b6105095760405162461bcd60e51b815260206004820152600e60248201527f7472616e73666572206661696c64000000000000000000000000000000000000604482015260640161040a565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105845760405162461bcd60e51b815260206004820152600a60248201527f6f6e6c79204f776e657200000000000000000000000000000000000000000000604482015260640161040a565b6040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152604482018390528416906342842e0e90606401600060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b50505050505050565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106695760405162461bcd60e51b81526020600482015260026024820152616f6f60f01b604482015260640161040a565b600080866001600160a01b0316868686604051610687929190610c4c565b60006040518083038185875af1925050503d80600081146106c4576040519150601f19603f3d011682016040523d82523d6000602084013e6106c9565b606091505b50915091508161071b5760405162461bcd60e51b815260206004820152601060248201527f457865637574696f6e206661696c656400000000000000000000000000000000604482015260640161040a565b9695505050505050565b600080600080610735868661074f565b925092509250610745828261079c565b5090949350505050565b600080600083516041036107895760208401516040850151606086015160001a61077b888285856108a4565b955095509550505050610795565b50508151600091506002905b9250925092565b60008260038111156107b0576107b0610c5c565b036107b9575050565b60018260038111156107cd576107cd610c5c565b03610804576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600282600381111561081857610818610c5c565b03610852576040517ffce698f70000000000000000000000000000000000000000000000000000000081526004810182905260240161040a565b600382600381111561086657610866610c5c565b036108a0576040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004810182905260240161040a565b5050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156108df5750600091506003905082610969565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610933573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661095f57506000925060019150829050610969565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561099c57600080fd5b82359150602083013567ffffffffffffffff808211156109bb57600080fd5b818501915085601f8301126109cf57600080fd5b8135818111156109e1576109e1610973565b604051601f8201601f19908116603f01168101908382118183101715610a0957610a09610973565b81604052828152886020848701011115610a2257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610a5657600080fd5b5035919050565b80356001600160a01b0381168114610a7457600080fd5b919050565b600080600060608486031215610a8e57600080fd5b610a9784610a5d565b9250610aa560208501610a5d565b9150604084013590509250925092565b60008060008060608587031215610acb57600080fd5b610ad485610a5d565b935060208501359250604085013567ffffffffffffffff80821115610af857600080fd5b818701915087601f830112610b0c57600080fd5b813581811115610b1b57600080fd5b886020828501011115610b2d57600080fd5b95989497505060200194505050565b60006020808352835180602085015260005b81811015610b6a57858101830151858201604001528201610b4e565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b60006040820184835260206040602085015281855180845260608601915060208701935060005b81811015610be457845183529383019391830191600101610bc8565b5090979650505050505050565b600060208284031215610c0357600080fd5b81516fffffffffffffffffffffffffffffffff81168114610c2357600080fd5b9392505050565b600060208284031215610c3c57600080fd5b81518015158114610c2357600080fd5b8183823760009101908152919050565b634e487b7160e01b600052602160045260246000fdfea26469706673582212202f4f48b246d4e3082159e4c692c0e49c44c43820e5d07cab813f32b769c719e464736f6c63430008170033000000000000000000000000b1911d8ffcc2d8ca6c5ea4f4f18be6ea675c1ce70000000000000000000000006fb54e14163c4cb3bc09d9452b12cb53c220f256