0x60806040523480156200001157600080fd5b5060405162000c4b38038062000c4b8339810160408190526200003491620001a9565b60405180604001604052806006815260200165526f6d61786160d01b815250604051806040016040528060038152602001620a49ab60eb1b81525069152d02c7e14af680000082600490816200008b91906200027f565b5060056200009a83826200027f565b50600180546001600160a01b03191633908117909155620000bd908290620000c7565b5050505062000373565b6001546001600160a01b03163314620001165760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420616e206f776e65722160981b604482015260640160405180910390fd5b6001600160a01b03811660009081526002602052604081208054849290620001409084906200034b565b92505081905550816000808282546200015a91906200034b565b90915550506040518281526001600160a01b038216906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b600060208284031215620001bc57600080fd5b81516001600160a01b0381168114620001d457600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200020657607f821691505b6020821081036200022757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001a457600081815260208120601f850160051c81016020861015620002565750805b601f850160051c820191505b81811015620002775782815560010162000262565b505050505050565b81516001600160401b038111156200029b576200029b620001db565b620002b381620002ac8454620001f1565b846200022d565b602080601f831160018114620002eb5760008415620002d25750858301515b600019600386901b1c1916600185901b17855562000277565b600085815260208120601f198616915b828110156200031c57888601518255948401946001909101908401620002fb565b50858210156200033b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200036d57634e487b7160e01b600052601160045260246000fd5b92915050565b6108c880620003836000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806370a082311161007157806370a082311461010d57806394bf804d1461013657806395d89b41146101495780639dc29fac14610151578063a9059cbb14610164578063dd62ed3e1461017757600080fd5b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100e157806323b872dd146100f3578063313ce56714610106575b600080fd5b6100b661018a565b6040516100c391906106d4565b60405180910390f35b6100df6100da36600461073e565b61021c565b005b6000545b6040519081526020016100c3565b6100df610101366004610768565b61022b565b60126100e5565b6100e561011b3660046107a4565b6001600160a01b031660009081526002602052604090205490565b6100df6101443660046107c6565b6103e3565b6100b66104b7565b6100df61015f36600461073e565b6104c6565b6100df61017236600461073e565b610559565b6100e56101853660046107f2565b610646565b6060600480546101999061081c565b80601f01602080910402602001604051908101604052809291908181526020018280546101c59061081c565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b610227338383610673565b5050565b82818061024d836001600160a01b031660009081526002602052604090205490565b10156102955760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f75676820746f6b656e732160701b60448201526064015b60405180910390fd5b6001600160a01b03851660009081526003602090815260408083203384529091529020548311156102fb5760405162461bcd60e51b815260206004820152601060248201526f636865636b20616c6c6f77616e63652160801b604482015260640161028c565b6001600160a01b03851660009081526003602090815260408083203384529091528120805485929061032e90849061086c565b90915550506001600160a01b0385166000908152600260205260408120805485929061035b90849061086c565b90915550506001600160a01b0384166000908152600260205260408120805485929061038890849061087f565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516103d491815260200190565b60405180910390a35050505050565b6001546001600160a01b0316331461042d5760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420616e206f776e65722160981b604482015260640161028c565b6001600160a01b0381166000908152600260205260408120805484929061045590849061087f565b925050819055508160008082825461046d919061087f565b90915550506040518281526001600160a01b038216906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6060600580546101999061081c565b6001546001600160a01b031633146105105760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420616e206f776e65722160981b604482015260640161028c565b6001600160a01b0382166000908152600260205260408120805483929061053890849061086c565b9250508190555080600080828254610550919061086c565b90915550505050565b3360008181526002602052604090205482908111156105af5760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f75676820746f6b656e732160701b604482015260640161028c565b33600090815260026020526040812080548592906105ce90849061086c565b90915550506001600160a01b038416600090815260026020526040812080548592906105fb90849061087f565b90915550506040518381526001600160a01b0385169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b6001600160a01b038083166000908152600360209081526040808320938516835292905220545b92915050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f6e11fb1b7f119e3f2fa29896ef5fdf8b8a2d0d4df6fe90ba8668e7d8b2ffa25e910160405180910390a3505050565b600060208083528351808285015260005b81811015610701578581018301518582016040015282016106e5565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461073957600080fd5b919050565b6000806040838503121561075157600080fd5b61075a83610722565b946020939093013593505050565b60008060006060848603121561077d57600080fd5b61078684610722565b925061079460208501610722565b9150604084013590509250925092565b6000602082840312156107b657600080fd5b6107bf82610722565b9392505050565b600080604083850312156107d957600080fd5b823591506107e960208401610722565b90509250929050565b6000806040838503121561080557600080fd5b61080e83610722565b91506107e960208401610722565b600181811c9082168061083057607f821691505b60208210810361085057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561066d5761066d610856565b8082018082111561066d5761066d61085656fea264697066735822122035a1f3148868c6a5c7692c40b1020f4ac38eed115b748d95ba4652c3fb4c7fc664736f6c634300081200330000000000000000000000007100ab6dcb831ad73a0fda7cf6f4ff6e058eee1e