0x608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b4114610244578063a457c2d714610265578063a9059cbb14610278578063dd62ed3e1461028b578063f2fde38b146102c457600080fd5b806370a08231146101f0578063715018a6146102195780638456cb59146102215780638da5cb5b1461022957600080fd5b8063313ce567116100e9578063313ce5671461019f57806339509351146101ae5780633f4ba83a146101c157806342966c68146101cb5780635c975abb146101de57600080fd5b806306fdde031461011b578063095ea7b31461015757806318160ddd1461017a57806323b872dd1461018c575b600080fd5b60408051808201909152600e81526d13d353925048141c9bdd1bd8dbdb60921b60208201525b60405161014e9190610bfe565b60405180910390f35b61016a610165366004610c6f565b6102d7565b604051901515815260200161014e565b6003545b60405190815260200161014e565b61016a61019a366004610c99565b6102ed565b6040516012815260200161014e565b61016a6101bc366004610c6f565b61039c565b6101c96103d8565b005b6101c96101d9366004610cd5565b61040c565b600054600160a01b900460ff1661016a565b61017e6101fe366004610cee565b6001600160a01b031660009081526001602052604090205490565b6101c9610419565b6101c961044d565b6000546040516001600160a01b03909116815260200161014e565b6040805180820190915260058152644f4d4e494160d81b6020820152610141565b61016a610273366004610c6f565b61047f565b61016a610286366004610c6f565b610518565b61017e610299366004610d10565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101c96102d2366004610cee565b610525565b60006102e43384846105bd565b50600192915050565b60006102fa8484846106e2565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156103845760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61039185338584036105bd565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916102e49185906103d3908690610d59565b6105bd565b6000546001600160a01b031633146104025760405162461bcd60e51b815260040161037b90610d71565b61040a6108b9565b565b6104163382610956565b50565b6000546001600160a01b031633146104435760405162461bcd60e51b815260040161037b90610d71565b61040a6000610aa4565b6000546001600160a01b031633146104775760405162461bcd60e51b815260040161037b90610d71565b61040a610af4565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156105015760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161037b565b61050e33858584036105bd565b5060019392505050565b60006102e43384846106e2565b6000546001600160a01b0316331461054f5760405162461bcd60e51b815260040161037b90610d71565b6001600160a01b0381166105b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161037b565b61041681610aa4565b6001600160a01b03831661061f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161037b565b6001600160a01b0382166106805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161037b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166107465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161037b565b6001600160a01b0382166107a85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161037b565b6107b0610b7c565b6001600160a01b038316600090815260016020526040902054818110156108285760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161037b565b6001600160a01b0380851660009081526001602052604080822085850390559185168152908120805484929061085f908490610d59565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108ab91815260200190565b60405180910390a350505050565b600054600160a01b900460ff166109095760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161037b565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166109b65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161037b565b6109be610b7c565b6001600160a01b03821660009081526001602052604090205481811015610a325760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161037b565b6001600160a01b0383166000908152600160205260408120838303905560038054849290610a61908490610da6565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016106d5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff1615610b415760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161037b565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109393390565b600054600160a01b900460ff161580610b9f57506000546001600160a01b031633145b61040a5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b606482015260840161037b565b600060208083528351808285015260005b81811015610c2b57858101830151858201604001528201610c0f565b81811115610c3d576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610c6a57600080fd5b919050565b60008060408385031215610c8257600080fd5b610c8b83610c53565b946020939093013593505050565b600080600060608486031215610cae57600080fd5b610cb784610c53565b9250610cc560208501610c53565b9150604084013590509250925092565b600060208284031215610ce757600080fd5b5035919050565b600060208284031215610d0057600080fd5b610d0982610c53565b9392505050565b60008060408385031215610d2357600080fd5b610d2c83610c53565b9150610d3a60208401610c53565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610d6c57610d6c610d43565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015610db857610db8610d43565b50039056fea264697066735822122090e00ff7b7dd2267474e2d0cd1a6a87664c9e1edb9c346cd03605cb4407e144a64736f6c63430008090033
0x60806040526a52b7d2dcc80cd2e400000060035534801561001f57600080fd5b506100293361004c565b6000805460ff60a01b19168155600354338252600160205260409091205561009c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610df3806100ab6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b4114610244578063a457c2d714610265578063a9059cbb14610278578063dd62ed3e1461028b578063f2fde38b146102c457600080fd5b806370a08231146101f0578063715018a6146102195780638456cb59146102215780638da5cb5b1461022957600080fd5b8063313ce567116100e9578063313ce5671461019f57806339509351146101ae5780633f4ba83a146101c157806342966c68146101cb5780635c975abb146101de57600080fd5b806306fdde031461011b578063095ea7b31461015757806318160ddd1461017a57806323b872dd1461018c575b600080fd5b60408051808201909152600e81526d13d353925048141c9bdd1bd8dbdb60921b60208201525b60405161014e9190610bfe565b60405180910390f35b61016a610165366004610c6f565b6102d7565b604051901515815260200161014e565b6003545b60405190815260200161014e565b61016a61019a366004610c99565b6102ed565b6040516012815260200161014e565b61016a6101bc366004610c6f565b61039c565b6101c96103d8565b005b6101c96101d9366004610cd5565b61040c565b600054600160a01b900460ff1661016a565b61017e6101fe366004610cee565b6001600160a01b031660009081526001602052604090205490565b6101c9610419565b6101c961044d565b6000546040516001600160a01b03909116815260200161014e565b6040805180820190915260058152644f4d4e494160d81b6020820152610141565b61016a610273366004610c6f565b61047f565b61016a610286366004610c6f565b610518565b61017e610299366004610d10565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101c96102d2366004610cee565b610525565b60006102e43384846105bd565b50600192915050565b60006102fa8484846106e2565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156103845760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61039185338584036105bd565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916102e49185906103d3908690610d59565b6105bd565b6000546001600160a01b031633146104025760405162461bcd60e51b815260040161037b90610d71565b61040a6108b9565b565b6104163382610956565b50565b6000546001600160a01b031633146104435760405162461bcd60e51b815260040161037b90610d71565b61040a6000610aa4565b6000546001600160a01b031633146104775760405162461bcd60e51b815260040161037b90610d71565b61040a610af4565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156105015760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161037b565b61050e33858584036105bd565b5060019392505050565b60006102e43384846106e2565b6000546001600160a01b0316331461054f5760405162461bcd60e51b815260040161037b90610d71565b6001600160a01b0381166105b45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161037b565b61041681610aa4565b6001600160a01b03831661061f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161037b565b6001600160a01b0382166106805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161037b565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166107465760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161037b565b6001600160a01b0382166107a85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161037b565b6107b0610b7c565b6001600160a01b038316600090815260016020526040902054818110156108285760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161037b565b6001600160a01b0380851660009081526001602052604080822085850390559185168152908120805484929061085f908490610d59565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108ab91815260200190565b60405180910390a350505050565b600054600160a01b900460ff166109095760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161037b565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b0382166109b65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161037b565b6109be610b7c565b6001600160a01b03821660009081526001602052604090205481811015610a325760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161037b565b6001600160a01b0383166000908152600160205260408120838303905560038054849290610a61908490610da6565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016106d5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff1615610b415760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161037b565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109393390565b600054600160a01b900460ff161580610b9f57506000546001600160a01b031633145b61040a5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b606482015260840161037b565b600060208083528351808285015260005b81811015610c2b57858101830151858201604001528201610c0f565b81811115610c3d576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610c6a57600080fd5b919050565b60008060408385031215610c8257600080fd5b610c8b83610c53565b946020939093013593505050565b600080600060608486031215610cae57600080fd5b610cb784610c53565b9250610cc560208501610c53565b9150604084013590509250925092565b600060208284031215610ce757600080fd5b5035919050565b600060208284031215610d0057600080fd5b610d0982610c53565b9392505050565b60008060408385031215610d2357600080fd5b610d2c83610c53565b9150610d3a60208401610c53565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610d6c57610d6c610d43565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015610db857610db8610d43565b50039056fea264697066735822122090e00ff7b7dd2267474e2d0cd1a6a87664c9e1edb9c346cd03605cb4407e144a64736f6c63430008090033