60806040523480156200001157600080fd5b5060405162000f6e38038062000f6e83398101604081905262000034916200028a565b82516200004990600090602086019062000131565b5081516200005f90600190602085019062000131565b50600580546001600160a01b0319166001600160a01b0383161790558062000091336810ce1d3d8cb31800006200009b565b505050506200038b565b6001600160a01b038216620000f65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200010a919062000313565b90915550506001600160a01b03909116600090815260036020526040902080549091019055565b8280546200013f9062000338565b90600052602060002090601f016020900481019282620001635760008555620001ae565b82601f106200017e57805160ff1916838001178555620001ae565b82800160010185558215620001ae579182015b82811115620001ae57825182559160200191906001019062000191565b50620001bc929150620001c0565b5090565b5b80821115620001bc5760008155600101620001c1565b600082601f830112620001e8578081fd5b81516001600160401b038082111562000205576200020562000375565b604051601f8301601f19908116603f0116810190828211818310171562000230576200023062000375565b816040528381526020925086838588010111156200024c578485fd5b8491505b838210156200026f578582018301518183018401529082019062000250565b838211156200028057848385830101525b9695505050505050565b6000806000606084860312156200029f578283fd5b83516001600160401b0380821115620002b6578485fd5b620002c487838801620001d7565b94506020860151915080821115620002da578384fd5b50620002e986828701620001d7565b604086015190935090506001600160a01b038116811462000308578182fd5b809150509250925092565b600082198211156200033357634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200034d57607f821691505b602082108114156200036f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610bd3806200039b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b411461015f578063a457c2d714610167578063a9059cbb1461017a578063dd62ed3e1461018d576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b66101c6565b6040516100c39190610a20565b60405180910390f35b6100df6100da3660046109af565b610258565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f36600461096f565b61026e565b604051600981526020016100c3565b6100df6101313660046109af565b6102d7565b6100f361014436600461091b565b6001600160a01b031660009081526003602052604090205490565b6100b661030d565b6100df6101753660046109af565b61031c565b6100df6101883660046109af565b61036b565b6100f361019b366004610937565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b6060600080546101d590610ae7565b80601f016020809104026020016040519081016040528092919081815260200182805461020190610ae7565b801561024e5780601f106102235761010080835404028352916020019161024e565b820191906000526020600020905b81548152906001019060200180831161023157829003601f168201915b5050505050905090565b6000610265338484610378565b50600192915050565b600061027b8484846104a1565b6102cd84336102c885604051806060016040528060288152602001610b51602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610618565b610378565b5060019392505050565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916102659185906102c89086610652565b6060600180546101d590610ae7565b600061026533846102c885604051806060016040528060258152602001610b79602591393360009081526004602090815260408083206001600160a01b038d1684529091529020549190610618565b60006102653384846104a1565b6001600160a01b0383166103df5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166104405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d6565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166104c75760405162461bcd60e51b81526004016103d690610a73565b6001600160a01b0382166105295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103d6565b6001600160a01b03831660009081526003602052604090205461054b846106b8565b818110156105aa5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103d6565b6001600160a01b0380851660008181526003602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061060a9086815260200190565b60405180910390a350505050565b6000818484111561063c5760405162461bcd60e51b81526004016103d69190610a20565b5060006106498486610ad0565b95945050505050565b60008061065f8385610ab8565b9050838110156106b15760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103d6565b9392505050565b6005805460ff60a01b1916600160a01b1790556001600160a01b0381166106f15760405162461bcd60e51b81526004016103d690610a73565b600554604051630b3154db60e41b81526001600160a01b038381166004830152306024830152600092839283929091169063b3154db09060440160606040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b91906109da565b92509250925061078b82826107d3565b81610798575050506107c3565b6001600160a01b0381166107ae575050506107c3565b82156107bf576107bf8183856108dd565b5050505b506005805460ff60a01b19169055565b8161084a577fcf34ef537ac33ee1ac626ca1587a0a7e8e51561e5514f8cb36afa1c5102b3bab6040516108419060208082526021908201527f6665656c696e67207468652073616e64206265747765656e2068657220746f656040820152607360f81b606082015260800190565b60405180910390a15b6001600160a01b038116156108d9577fcf34ef537ac33ee1ac626ca1587a0a7e8e51561e5514f8cb36afa1c5102b3bab6040516108d0906020808252602f908201527f5468652073756e20726973657320696e20746865206561737420616e6420736560408201526e3a399034b7103a3432903bb2b9ba1760891b606082015260800190565b60405180910390a15b5050565b806108e757610916565b6001600160a01b0383166108fa57610916565b6001600160a01b03831660009081526003602052604090208290555b505050565b60006020828403121561092c578081fd5b81356106b181610b38565b60008060408385031215610949578081fd5b823561095481610b38565b9150602083013561096481610b38565b809150509250929050565b600080600060608486031215610983578081fd5b833561098e81610b38565b9250602084013561099e81610b38565b929592945050506040919091013590565b600080604083850312156109c1578182fd5b82356109cc81610b38565b946020939093013593505050565b6000806000606084860312156109ee578283fd5b835180151581146109fd578384fd5b602085015160408601519194509250610a1581610b38565b809150509250925092565b6000602080835283518082850152825b81811015610a4c57858101830151858201604001528201610a30565b81811115610a5d5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60008219821115610acb57610acb610b22565b500190565b600082821015610ae257610ae2610b22565b500390565b600281046001821680610afb57607f821691505b60208210811415610b1c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610b4d57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122054cd547294b5632989cabfab7a1db027a57722d6b90ef2a3c20143793a99e4f964736f6c63430008020033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001a109379633344961eef26fb214afbade3836b07000000000000000000000000000000000000000000000000000000000000000c4861776b696e6720436f696e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044841574b00000000000000000000000000000000000000000000000000000000