0x608060405234801561001057600080fd5b506040516108ca3803806108ca83398101604081905261002f916100dc565b6001600160a01b03821661005e5760405162461bcd60e51b81526004016100559061010e565b60405180910390fd5b6001600160a01b0381166100845760405162461bcd60e51b815260040161005590610145565b600080546001600160a01b03199081163317909155600180546001600160a01b039485169083161790556002805492909316911617905561017c565b80516001600160a01b03811681146100d757600080fd5b919050565b600080604083850312156100ee578182fd5b6100f7836100c0565b9150610105602084016100c0565b90509250929050565b6020808252601d908201527f496e76616c6964206275726e20636f6e74726163742061646472657373000000604082015260600190565b60208082526015908201527f496e76616c696420746f6b656e20616464726573730000000000000000000000604082015260600190565b61073f8061018b6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80636691461a146100675780638da5cb5b1461007c5780639d76ea581461009a578063a8d004fd146100a2578063e8edc816146100b5578063f2fde38b146100bd575b600080fd5b61007a6100753660046104df565b6100d0565b005b61008461014b565b6040516100919190610545565b60405180910390f35b61008461015a565b61007a6100b03660046104df565b610169565b6100846101db565b61007a6100cb3660046104df565b6101ea565b6000546001600160a01b031633146101035760405162461bcd60e51b81526004016100fa906106d9565b60405180910390fd5b6001600160a01b0381166101295760405162461bcd60e51b81526004016100fa90610660565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146101935760405162461bcd60e51b81526004016100fa906106d9565b6001600160a01b0381166101b95760405162461bcd60e51b81526004016100fa90610572565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6000546001600160a01b031633146102145760405162461bcd60e51b81526004016100fa906106d9565b6002546040516370a0823160e01b815282916001600160a01b03169060009082906370a0823190610249908690600401610545565b60206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610299919061052d565b9050600081116102bb5760405162461bcd60e51b81526004016100fa9061068f565b6001600160a01b0384166102e15760405162461bcd60e51b81526004016100fa906105d2565b600080546001600160a01b0319166001600160a01b038681169190911782556002546040516370a0823160e01b81529116906370a0823190610327908890600401610545565b60206040518083038186803b15801561033f57600080fd5b505afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610377919061052d565b905061038281610389565b5050505050565b600254600080546040516370a0823160e01b81526001600160a01b039384169384926370a08231926103c19290911690600401610545565b60206040518083038186803b1580156103d957600080fd5b505afa1580156103ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610411919061052d565b9050828110156104335760405162461bcd60e51b81526004016100fa9061061e565b60015460405163095ea7b360e01b81526000916001600160a01b038086169263095ea7b3926104689216908890600401610559565b602060405180830381600087803b15801561048257600080fd5b505af1158015610496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ba919061050d565b9050806104d95760405162461bcd60e51b81526004016100fa906105a9565b50505050565b6000602082840312156104f0578081fd5b81356001600160a01b0381168114610506578182fd5b9392505050565b60006020828403121561051e578081fd5b81518015158114610506578182fd5b60006020828403121561053e578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252601d908201527f496e76616c6964206275726e20636f6e74726163742061646472657373000000604082015260600190565b6020808252600f908201526e105c1c1c9bdd985b0819985a5b1959608a1b604082015260600190565b6020808252602c908201527f4e6577206f776e657220616464726573732063616e6e6f74206265207468652060408201526b7a65726f206164647265737360a01b606082015260800190565b60208082526022908201527f496e73756666696369656e742062616c616e636520696e207468652077616c6c604082015261195d60f21b606082015260800190565b602080825260159082015274496e76616c696420746f6b656e206164647265737360581b604082015260600190565b6020808252602a908201527f4e6577206f776e6572206d757374206861766520746f6b656e7320696e207468604082015269195a5c881dd85b1b195d60b21b606082015260800190565b6020808252601690820152752737ba103a34329031b7b73a3930b1ba1037bbb732b960511b60408201526060019056fea26469706673582212203dc6aa506c5d852682fa70c1554c66cda1d38dc926a5a0f1654ba299fbc3bf6f64736f6c634300080000330000000000000000000000002958445432e7e60b8ab71a455737f926732b532e000000000000000000000000812ba41e071c7b7fa4ebcfb62df5f45f6fa853ee