0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80638980f11f116100715780638980f11f146101815780638da5cb5b14610194578063b61d27f6146101a7578063bdacb303146101c8578063dc6663c7146101db578063fc0c546a146101ee57600080fd5b80631627540c146100b95780632eb4a7ab146100ce5780633d13f8741461010857806353a47bb71461011b57806373b2e80e1461014657806379ba509714610179575b600080fd5b6100cc6100c73660046109fc565b610215565b005b6100f57f1cc89145d7ddfb4a255e327ab01d1f98259db2b14430efdc24124d5cdb169ba181565b6040519081526020015b60405180910390f35b6100cc610116366004610a48565b6102e0565b60015461012e906001600160a01b031681565b6040516001600160a01b0390911681526020016100ff565b6101696101543660046109fc565b60036020526000908152604090205460ff1681565b60405190151581526020016100ff565b6100cc6105a0565b6100cc61018f366004610a1e565b61068a565b60005461012e906001600160a01b031681565b6101ba6101b5366004610ad2565b610727565b6040516100ff929190610bb1565b6100cc6101d63660046109fc565b6107da565b60025461012e906001600160a01b031681565b61012e7f000000000000000000000000c2544a32872a91f4a553b404c6950e89de901fdb81565b6000546001600160a01b0316331461028c5760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229060200160405180910390a150565b6001600160a01b03841660009081526003602052604090205460ff161561031a57604051630c8d9eab60e31b815260040160405180910390fd5b6040516bffffffffffffffffffffffff19606086901b1660208201526034810184905260009060540160405160208183030381529060405280519060200120905060006103bd8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f1cc89145d7ddfb4a255e327ab01d1f98259db2b14430efdc24124d5cdb169ba1925086915061083b9050565b9050806103dd5760405163452c2df160e11b815260040160405180910390fd5b6040516370a0823160e01b81523060048201527f000000000000000000000000c2544a32872a91f4a553b404c6950e89de901fdb6001600160a01b0316906370a082319060240160206040518083038186803b15801561043c57600080fd5b505afa158015610450573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104749190610b6c565b8511156104945760405163963c0ffb60e01b815260040160405180910390fd5b6001600160a01b0386811660008181526003602052604090819020805460ff191660011790555163a9059cbb60e01b81526004810191909152602481018790527f000000000000000000000000c2544a32872a91f4a553b404c6950e89de901fdb9091169063a9059cbb90604401602060405180830381600087803b15801561051c57600080fd5b505af1158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190610b4a565b50856001600160a01b03167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d48660405161059091815260200190565b60405180910390a2505050505050565b6001546001600160a01b031633146106185760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610283565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b03163314806106ad57506002546001600160a01b031633145b6106c95760405162461bcd60e51b815260040161028390610bed565b6000546106e19083906001600160a01b031683610851565b604080516001600160a01b0384168152602081018390527f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28910160405180910390a15050565b600080546060906001600160a01b031633148061074e57506002546001600160a01b031633145b61076a5760405162461bcd60e51b815260040161028390610bed565b600080876001600160a01b0316878787604051610788929190610b85565b60006040518083038185875af1925050503d80600081146107c5576040519150601f19603f3d011682016040523d82523d6000602084013e6107ca565b606091505b5090999098509650505050505050565b6000546001600160a01b03163314806107fd57506002546001600160a01b031633145b6108195760405162461bcd60e51b815260040161028390610bed565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600082610848858461096c565b14949350505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916108ad9190610b95565b6000604051808303816000865af19150503d80600081146108ea576040519150601f19603f3d011682016040523d82523d6000602084013e6108ef565b606091505b50915091508180156109195750805115806109195750808060200190518101906109199190610b4a565b6109655760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606401610283565b5050505050565b600081815b84518110156109d857600085828151811061098e5761098e610c75565b602002602001015190508083116109b457600083815260208290526040902092506109c5565b600081815260208490526040902092505b50806109d081610c4c565b915050610971565b509392505050565b80356001600160a01b03811681146109f757600080fd5b919050565b600060208284031215610a0e57600080fd5b610a17826109e0565b9392505050565b60008060408385031215610a3157600080fd5b610a3a836109e0565b946020939093013593505050565b60008060008060608587031215610a5e57600080fd5b610a67856109e0565b935060208501359250604085013567ffffffffffffffff80821115610a8b57600080fd5b818701915087601f830112610a9f57600080fd5b813581811115610aae57600080fd5b8860208260051b8501011115610ac357600080fd5b95989497505060200194505050565b60008060008060608587031215610ae857600080fd5b610af1856109e0565b935060208501359250604085013567ffffffffffffffff80821115610b1557600080fd5b818701915087601f830112610b2957600080fd5b813581811115610b3857600080fd5b886020828501011115610ac357600080fd5b600060208284031215610b5c57600080fd5b81518015158114610a1757600080fd5b600060208284031215610b7e57600080fd5b5051919050565b8183823760009101908152919050565b60008251610ba7818460208701610c1c565b9190910192915050565b82151581526040602082015260008251806040840152610bd8816060850160208701610c1c565b601f01601f1916919091016060019392505050565b6020808252601590820152744e6f74206f776e6572206f722074696d656c6f636b60581b604082015260600190565b60005b83811015610c37578181015183820152602001610c1f565b83811115610c46576000848401525b50505050565b6000600019821415610c6e57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212204fc6d05bc691befe0e143b1ae54c331968b54a7e1a621d9d8027e738ba38a96664736f6c63430008070033
0x60c060405234801561001057600080fd5b50604051610e86380380610e8683398101604081905261002f9161013c565b816001600160a01b03811661008a5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1506080929092525060609190911b6001600160601b03191660a052600280546001600160a01b0319166001600160a01b03909216919091179055610189565b80516001600160a01b038116811461013757600080fd5b919050565b6000806000806080858703121561015257600080fd5b61015b85610120565b93506020850151925061017060408601610120565b915061017e60608601610120565b905092959194509250565b60805160a05160601c610cc16101c5600039600081816101f3015281816103f201526104d601526000818160d301526103920152610cc16000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638980f11f116100715780638980f11f146101815780638da5cb5b14610194578063b61d27f6146101a7578063bdacb303146101c8578063dc6663c7146101db578063fc0c546a146101ee57600080fd5b80631627540c146100b95780632eb4a7ab146100ce5780633d13f8741461010857806353a47bb71461011b57806373b2e80e1461014657806379ba509714610179575b600080fd5b6100cc6100c73660046109fc565b610215565b005b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100cc610116366004610a48565b6102e0565b60015461012e906001600160a01b031681565b6040516001600160a01b0390911681526020016100ff565b6101696101543660046109fc565b60036020526000908152604090205460ff1681565b60405190151581526020016100ff565b6100cc6105a0565b6100cc61018f366004610a1e565b61068a565b60005461012e906001600160a01b031681565b6101ba6101b5366004610ad2565b610727565b6040516100ff929190610bb1565b6100cc6101d63660046109fc565b6107da565b60025461012e906001600160a01b031681565b61012e7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b0316331461028c5760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b60648201526084015b60405180910390fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229060200160405180910390a150565b6001600160a01b03841660009081526003602052604090205460ff161561031a57604051630c8d9eab60e31b815260040160405180910390fd5b6040516bffffffffffffffffffffffff19606086901b1660208201526034810184905260009060540160405160208183030381529060405280519060200120905060006103bd8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925086915061083b9050565b9050806103dd5760405163452c2df160e11b815260040160405180910390fd5b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561043c57600080fd5b505afa158015610450573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104749190610b6c565b8511156104945760405163963c0ffb60e01b815260040160405180910390fd5b6001600160a01b0386811660008181526003602052604090819020805460ff191660011790555163a9059cbb60e01b81526004810191909152602481018790527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb90604401602060405180830381600087803b15801561051c57600080fd5b505af1158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190610b4a565b50856001600160a01b03167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d48660405161059091815260200190565b60405180910390a2505050505050565b6001546001600160a01b031633146106185760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610283565b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b03163314806106ad57506002546001600160a01b031633145b6106c95760405162461bcd60e51b815260040161028390610bed565b6000546106e19083906001600160a01b031683610851565b604080516001600160a01b0384168152602081018390527f8c1256b8896378cd5044f80c202f9772b9d77dc85c8a6eb51967210b09bfaa28910160405180910390a15050565b600080546060906001600160a01b031633148061074e57506002546001600160a01b031633145b61076a5760405162461bcd60e51b815260040161028390610bed565b600080876001600160a01b0316878787604051610788929190610b85565b60006040518083038185875af1925050503d80600081146107c5576040519150601f19603f3d011682016040523d82523d6000602084013e6107ca565b606091505b5090999098509650505050505050565b6000546001600160a01b03163314806107fd57506002546001600160a01b031633145b6108195760405162461bcd60e51b815260040161028390610bed565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600082610848858461096c565b14949350505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291516000928392908716916108ad9190610b95565b6000604051808303816000865af19150503d80600081146108ea576040519150601f19603f3d011682016040523d82523d6000602084013e6108ef565b606091505b50915091508180156109195750805115806109195750808060200190518101906109199190610b4a565b6109655760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606401610283565b5050505050565b600081815b84518110156109d857600085828151811061098e5761098e610c75565b602002602001015190508083116109b457600083815260208290526040902092506109c5565b600081815260208490526040902092505b50806109d081610c4c565b915050610971565b509392505050565b80356001600160a01b03811681146109f757600080fd5b919050565b600060208284031215610a0e57600080fd5b610a17826109e0565b9392505050565b60008060408385031215610a3157600080fd5b610a3a836109e0565b946020939093013593505050565b60008060008060608587031215610a5e57600080fd5b610a67856109e0565b935060208501359250604085013567ffffffffffffffff80821115610a8b57600080fd5b818701915087601f830112610a9f57600080fd5b813581811115610aae57600080fd5b8860208260051b8501011115610ac357600080fd5b95989497505060200194505050565b60008060008060608587031215610ae857600080fd5b610af1856109e0565b935060208501359250604085013567ffffffffffffffff80821115610b1557600080fd5b818701915087601f830112610b2957600080fd5b813581811115610b3857600080fd5b886020828501011115610ac357600080fd5b600060208284031215610b5c57600080fd5b81518015158114610a1757600080fd5b600060208284031215610b7e57600080fd5b5051919050565b8183823760009101908152919050565b60008251610ba7818460208701610c1c565b9190910192915050565b82151581526040602082015260008251806040840152610bd8816060850160208701610c1c565b601f01601f1916919091016060019392505050565b6020808252601590820152744e6f74206f776e6572206f722074696d656c6f636b60581b604082015260600190565b60005b83811015610c37578181015183820152602001610c1f565b83811115610c46576000848401525b50505050565b6000600019821415610c6e57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212204fc6d05bc691befe0e143b1ae54c331968b54a7e1a621d9d8027e738ba38a96664736f6c63430008070033000000000000000000000000c2544a32872a91f4a553b404c6950e89de901fdb1cc89145d7ddfb4a255e327ab01d1f98259db2b14430efdc24124d5cdb169ba10000000000000000000000003ce4d19c155d977b04c8560ed1cc9c6f38ee3d320000000000000000000000008412ebf45bac1b340bbe8f318b928c466c4e39ca