0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806377b54bad11610097578063d218c1b211610066578063d218c1b214610205578063e65f17bb1461020d578063f2fde38b14610220578063fda311781461023357600080fd5b806377b54bad146101735780638da5cb5b14610196578063c437a0cd146101b1578063c5a6d9b0146101c457600080fd5b80633a7e4341116100d35780633a7e43411461013d5780634e71d92d146101505780635e3040b814610158578063715018a61461016b57600080fd5b8063021bc974146100fa57806310906939146101155780631da1db5e1461012a575b600080fd5b610102610246565b6040519081526020015b60405180910390f35b610128610123366004610d6b565b6102b8565b005b610128610138366004610d88565b6102fb565b61012861014b366004610db7565b61036d565b6101286103b7565b610128610166366004610df8565b6104e9565b610128610547565b610186610181366004610e34565b6105bb565b604051901515815260200161010c565b6000546040516001600160a01b03909116815260200161010c565b6101286101bf366004610e50565b6106d3565b6101ee6101d2366004610e7c565b6002602052600090815260409020805460019091015460ff1682565b6040805192835260ff90911660208301520161010c565b610128610974565b61012861021b366004610d6b565b610a4b565b61012861022e366004610e7c565b610a8e565b610128610241366004610e97565b610b3f565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b39190610eb2565b905090565b60055461010090046001600160a01b0316336001600160a01b0316146102dd57600080fd5b60038054911515600160b01b0260ff60b01b19909216919091179055565b60055461010090046001600160a01b0316336001600160a01b03161461032057600080fd5b6000606461032e4784610ee1565b6103389190610ef8565b604051909150339082156108fc029083906000818181858888f19350505050158015610368573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146103a05760405162461bcd60e51b815260040161039790610f1a565b60405180910390fd5b8160ff166001036103b15760065550565b60075550565b600354600160b01b900460ff16156103ce57600080fd5b60055460ff166103dd57600080fd5b6005543360009081526002602052604090206001015460ff9182169116036104e7576005546000906104419060ff1660011461041b5760075461041f565b6006545b3360009081526002602052604090205460045461043b91610c00565b90610c82565b6003549091506001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156104a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c79190610f51565b5050336000908152600260205260408120908155600101805460ff191690555b565b6000546001600160a01b031633146105135760405162461bcd60e51b815260040161039790610f1a565b6001600160a01b03909216600090815260026020526040902060018101805460ff90931660ff199093169290921790915555565b6000546001600160a01b031633146105715760405162461bcd60e51b815260040161039790610f1a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b031633146105e65760405162461bcd60e51b815260040161039790610f1a565b81600003610659576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610632573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106569190610eb2565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156106a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ca9190610f51565b90505b92915050565b6000821180156106e6575060008160ff16115b80156106f6575060028160ff1611155b6106ff57600080fd5b60035482906001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190610eb2565b10158015610809575060035482906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa1580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108069190610eb2565b10155b61081257600080fd5b600354600160b01b900460ff1661082857600080fd5b3360009081526002602052604081206001015460ff16900361086b57336000908152600260205260409020828155600101805460ff191660ff83161790556108ba565b3360009081526002602052604090206001015460ff82811691161461088f57600080fd5b336000908152600260205260409020546108a99083610cc4565b336000908152600260205260409020555b8060ff166001036108da576006546108d29083610cc4565b6006556108eb565b6007546108e79083610cc4565b6007555b6003546001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018590526064016020604051808303816000875af1158015610950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103689190610f51565b600354600160a81b900460ff1661098a57600080fd5b336000908152600260205260409020546109a357600080fd5b60035433600081815260026020908152604080832054815163a9059cbb60e01b815260048101959095526024850152516001600160a01b039094169363a9059cbb936044808201949183900301908290875af1158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190610f51565b50336000908152600260205260408120908155600101805460ff19169055565b60055461010090046001600160a01b0316336001600160a01b031614610a7057600080fd5b60038054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610ab85760405162461bcd60e51b815260040161039790610f1a565b6001600160a01b038116610b1d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610397565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60055461010090046001600160a01b0316336001600160a01b031614610b6457600080fd5b600354600160b01b900460ff1615610b7b57600080fd5b6003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be79190610eb2565b6004556005805460ff191660ff92909216919091179055565b600082600003610c12575060006106cd565b6000610c1e8385610ee1565b905082610c2b8583610ef8565b146106ca5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610397565b60006106ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d23565b600080610cd18385610f6e565b9050838110156106ca5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610397565b60008183610d445760405162461bcd60e51b81526004016103979190610f81565b506000610d518486610ef8565b95945050505050565b8015158114610d6857600080fd5b50565b600060208284031215610d7d57600080fd5b81356106ca81610d5a565b600060208284031215610d9a57600080fd5b5035919050565b803560ff81168114610db257600080fd5b919050565b60008060408385031215610dca57600080fd5b610dd383610da1565b946020939093013593505050565b80356001600160a01b0381168114610db257600080fd5b600080600060608486031215610e0d57600080fd5b610e1684610de1565b9250610e2460208501610da1565b9150604084013590509250925092565b60008060408385031215610e4757600080fd5b610dd383610de1565b60008060408385031215610e6357600080fd5b82359150610e7360208401610da1565b90509250929050565b600060208284031215610e8e57600080fd5b6106ca82610de1565b600060208284031215610ea957600080fd5b6106ca82610da1565b600060208284031215610ec457600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106cd576106cd610ecb565b600082610f1557634e487b7160e01b600052601260045260246000fd5b500490565b6020808252601e908201527f4f776e657261626c653a2063616c6c6572206973206e6f74206f776e65720000604082015260600190565b600060208284031215610f6357600080fd5b81516106ca81610d5a565b808201808211156106cd576106cd610ecb565b600060208083528351808285015260005b81811015610fae57858101830151858201604001528201610f92565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212209b88b8a9bf611846efc70a9915b9a2f2517dca08cfe613c4bc75365fbcf2b43b64736f6c63430008110033
0x60806040526003805461ffff60a81b191690556005805460ff191690556000600681905560075534801561003257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600380546001600160a01b031916731a85d5ced52d39e00559265e3e3535090d8de6ed1790556100a13390565b600560016101000a8154816001600160a01b0302191690836001600160a01b03160217905550611005806100d66000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806377b54bad11610097578063d218c1b211610066578063d218c1b214610205578063e65f17bb1461020d578063f2fde38b14610220578063fda311781461023357600080fd5b806377b54bad146101735780638da5cb5b14610196578063c437a0cd146101b1578063c5a6d9b0146101c457600080fd5b80633a7e4341116100d35780633a7e43411461013d5780634e71d92d146101505780635e3040b814610158578063715018a61461016b57600080fd5b8063021bc974146100fa57806310906939146101155780631da1db5e1461012a575b600080fd5b610102610246565b6040519081526020015b60405180910390f35b610128610123366004610d6b565b6102b8565b005b610128610138366004610d88565b6102fb565b61012861014b366004610db7565b61036d565b6101286103b7565b610128610166366004610df8565b6104e9565b610128610547565b610186610181366004610e34565b6105bb565b604051901515815260200161010c565b6000546040516001600160a01b03909116815260200161010c565b6101286101bf366004610e50565b6106d3565b6101ee6101d2366004610e7c565b6002602052600090815260409020805460019091015460ff1682565b6040805192835260ff90911660208301520161010c565b610128610974565b61012861021b366004610d6b565b610a4b565b61012861022e366004610e7c565b610a8e565b610128610241366004610e97565b610b3f565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b39190610eb2565b905090565b60055461010090046001600160a01b0316336001600160a01b0316146102dd57600080fd5b60038054911515600160b01b0260ff60b01b19909216919091179055565b60055461010090046001600160a01b0316336001600160a01b03161461032057600080fd5b6000606461032e4784610ee1565b6103389190610ef8565b604051909150339082156108fc029083906000818181858888f19350505050158015610368573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146103a05760405162461bcd60e51b815260040161039790610f1a565b60405180910390fd5b8160ff166001036103b15760065550565b60075550565b600354600160b01b900460ff16156103ce57600080fd5b60055460ff166103dd57600080fd5b6005543360009081526002602052604090206001015460ff9182169116036104e7576005546000906104419060ff1660011461041b5760075461041f565b6006545b3360009081526002602052604090205460045461043b91610c00565b90610c82565b6003549091506001600160a01b031663a9059cbb336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156104a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c79190610f51565b5050336000908152600260205260408120908155600101805460ff191690555b565b6000546001600160a01b031633146105135760405162461bcd60e51b815260040161039790610f1a565b6001600160a01b03909216600090815260026020526040902060018101805460ff90931660ff199093169290921790915555565b6000546001600160a01b031633146105715760405162461bcd60e51b815260040161039790610f1a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b031633146105e65760405162461bcd60e51b815260040161039790610f1a565b81600003610659576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610632573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106569190610eb2565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af11580156106a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ca9190610f51565b90505b92915050565b6000821180156106e6575060008160ff16115b80156106f6575060028160ff1611155b6106ff57600080fd5b60035482906001600160a01b03166370a08231336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190610eb2565b10158015610809575060035482906001600160a01b031663dd62ed3e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa1580156107e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108069190610eb2565b10155b61081257600080fd5b600354600160b01b900460ff1661082857600080fd5b3360009081526002602052604081206001015460ff16900361086b57336000908152600260205260409020828155600101805460ff191660ff83161790556108ba565b3360009081526002602052604090206001015460ff82811691161461088f57600080fd5b336000908152600260205260409020546108a99083610cc4565b336000908152600260205260409020555b8060ff166001036108da576006546108d29083610cc4565b6006556108eb565b6007546108e79083610cc4565b6007555b6003546001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018590526064016020604051808303816000875af1158015610950573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103689190610f51565b600354600160a81b900460ff1661098a57600080fd5b336000908152600260205260409020546109a357600080fd5b60035433600081815260026020908152604080832054815163a9059cbb60e01b815260048101959095526024850152516001600160a01b039094169363a9059cbb936044808201949183900301908290875af1158015610a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2b9190610f51565b50336000908152600260205260408120908155600101805460ff19169055565b60055461010090046001600160a01b0316336001600160a01b031614610a7057600080fd5b60038054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610ab85760405162461bcd60e51b815260040161039790610f1a565b6001600160a01b038116610b1d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610397565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60055461010090046001600160a01b0316336001600160a01b031614610b6457600080fd5b600354600160b01b900460ff1615610b7b57600080fd5b6003546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be79190610eb2565b6004556005805460ff191660ff92909216919091179055565b600082600003610c12575060006106cd565b6000610c1e8385610ee1565b905082610c2b8583610ef8565b146106ca5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610397565b60006106ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d23565b600080610cd18385610f6e565b9050838110156106ca5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610397565b60008183610d445760405162461bcd60e51b81526004016103979190610f81565b506000610d518486610ef8565b95945050505050565b8015158114610d6857600080fd5b50565b600060208284031215610d7d57600080fd5b81356106ca81610d5a565b600060208284031215610d9a57600080fd5b5035919050565b803560ff81168114610db257600080fd5b919050565b60008060408385031215610dca57600080fd5b610dd383610da1565b946020939093013593505050565b80356001600160a01b0381168114610db257600080fd5b600080600060608486031215610e0d57600080fd5b610e1684610de1565b9250610e2460208501610da1565b9150604084013590509250925092565b60008060408385031215610e4757600080fd5b610dd383610de1565b60008060408385031215610e6357600080fd5b82359150610e7360208401610da1565b90509250929050565b600060208284031215610e8e57600080fd5b6106ca82610de1565b600060208284031215610ea957600080fd5b6106ca82610da1565b600060208284031215610ec457600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106cd576106cd610ecb565b600082610f1557634e487b7160e01b600052601260045260246000fd5b500490565b6020808252601e908201527f4f776e657261626c653a2063616c6c6572206973206e6f74206f776e65720000604082015260600190565b600060208284031215610f6357600080fd5b81516106ca81610d5a565b808201808211156106cd576106cd610ecb565b600060208083528351808285015260005b81811015610fae57858101830151858201604001528201610f92565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212209b88b8a9bf611846efc70a9915b9a2f2517dca08cfe613c4bc75365fbcf2b43b64736f6c63430008110033