0x608060405234801561001057600080fd5b5060405161077b38038061077b83398101604081905261002f9161008c565b6001600055600280546001600160a01b03199081163317909155600380546001600160a01b03948516908316179055600480549290931691161790556100bf565b80516001600160a01b038116811461008757600080fd5b919050565b6000806040838503121561009f57600080fd5b6100a883610070565b91506100b660208401610070565b90509250929050565b6106ad806100ce6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80633849f410146100675780634c19eb68146100905780638da5cb5b146100c3578063d0ebdbe7146100d6578063d1ad17bf146100eb578063fc879190146100fe575b600080fd5b60045461007a906001600160a01b031681565b60405161008791906102c9565b60405180910390f35b6100b361009e3660046102dd565b60056020526000908152604090205460ff1681565b6040519015158152602001610087565b60025461007a906001600160a01b031681565b6100e96100e43660046102dd565b610111565b005b60035461007a906001600160a01b031681565b6100e961010c36600461030d565b61014a565b6002546001600160a01b0316331461012857600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600260005414156101a15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640160405180910390fd5b600260009081556004546040516001600160a01b03909116906101c3906102af565b6101cd91906102c9565b604051809103906000f0801580156101e9573d6000803e3d6000fd5b5060015460035460405163189cf22d60e21b815292935083926001600160a01b0380851693636273c8b493610229938993339381169216906004016103e5565b600060405180830381600087803b15801561024357600080fd5b505af1158015610257573d6000803e3d6000fd5b5050506001600160a01b038216600081815260056020526040808220805460ff19166001179055519192507f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b91a25050600160005550565b6101198061055f83390190565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6000602082840312156102ef57600080fd5b81356001600160a01b038116811461030657600080fd5b9392505050565b60006020828403121561031f57600080fd5b81356001600160401b0381111561033557600080fd5b8201610160818503121561030657600080fd5b6000808335601e1984360301811261035f57600080fd5b83016020810192503590506001600160401b0381111561037e57600080fd5b80360383131561038d57600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803562ffffff811681146103d057600080fd5b919050565b803580151581146103d057600080fd5b6080815260006103f58687610348565b61016080608086015261040d6101e086018385610394565b925061041c60208a018a610348565b9250607f19808786030160a0880152610436858584610394565b945061044560408c018c610348565b94509150808786030160c088015261045e858584610394565b945061046d60608c018c610348565b94509150808786030160e088015250610487848483610394565b93505061049660808a016103bd565b91506101006104ab8187018462ffffff169052565b6104b760a08b016103d5565b92506101206104c98188018515159052565b6104d560c08c016103bd565b93506101406104ea8189018662ffffff169052565b60e08c0135848901526104fe838d016103d5565b8015156101808a01529450610514828d016103d5565b15156101a08901528b01356101c08801525092935061053b925050602084019050866102bc565b61054860408301856102bc565b61055560608301846102bc565b9594505050505056fe608060405234801561001057600080fd5b5060405161011938038061011983398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6087806100926000396000f3fe608060405236601d57600054601b906001600160a01b0316602d565b005b600054601b906001600160a01b03165b60405136600082376000803683855af43d806000843e818015604d578184f35b8184fdfea2646970667358221220600f90c0e59ddffb769074d4cc74283ea59df1a89099816dd6169b248142b48764736f6c63430008090033a264697066735822122048afd717900e93b31922a6c1952ebe6c0c810a6b33fe891f22eb755c290c7b6664736f6c634300080900330000000000000000000000007b46c5e9af7d9979eb2062706dad9292ffccd8f4000000000000000000000000e7c37ffa1c217466816332444ef74c07f159653a