0x608060405234801561001057600080fd5b506107f7806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806318947bf7146100515780631dcb489a146100665780634041f2c01461007957806379f2447e1461008c575b600080fd5b61006461005f3660046105ca565b61009f565b005b610064610074366004610640565b6101a3565b610064610087366004610698565b610286565b61006461009a3660046105ca565b610372565b6001600160a01b038316158015906100b8575060008251115b80156100c5575080518251145b6100ea5760405162461bcd60e51b81526004016100e1906106f1565b60405180910390fd5b60005b825181101561019d57836001600160a01b03166323b872dd3385848151811061011857610118610735565b602002602001015185858151811061013257610132610735565b60200260200101516040518463ffffffff1660e01b81526004016101589392919061074b565b600060405180830381600087803b15801561017257600080fd5b505af1158015610186573d6000803e3d6000fd5b5050505080806101959061076f565b9150506100ed565b50505050565b6001600160a01b038316158015906101c357506001600160a01b03821615155b80156101d0575060008151115b6101ec5760405162461bcd60e51b81526004016100e1906106f1565b60005b815181101561019d57836001600160a01b03166323b872dd338585858151811061021b5761021b610735565b60200260200101516040518463ffffffff1660e01b81526004016102419392919061074b565b600060405180830381600087803b15801561025b57600080fd5b505af115801561026f573d6000803e3d6000fd5b50505050808061027e9061076f565b9150506101ef565b6001600160a01b0383161580159061029f575060008251115b80156102ab5750600081115b6102c75760405162461bcd60e51b81526004016100e1906106f1565b60005b825181101561019d57836001600160a01b03166323b872dd338584815181106102f5576102f5610735565b6020026020010151856040518463ffffffff1660e01b815260040161031c9392919061074b565b6020604051808303816000875af115801561033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035f9190610798565b508061036a8161076f565b9150506102ca565b6001600160a01b0383161580159061038b575060008251115b8015610398575080518251145b6103b45760405162461bcd60e51b81526004016100e1906106f1565b60005b825181101561019d57836001600160a01b03166323b872dd338584815181106103e2576103e2610735565b60200260200101518585815181106103fc576103fc610735565b60200260200101516040518463ffffffff1660e01b81526004016104229392919061074b565b6020604051808303816000875af1158015610441573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104659190610798565b50806104708161076f565b9150506103b7565b6001600160a01b038116811461048d57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156104cf576104cf610490565b604052919050565b600067ffffffffffffffff8211156104f1576104f1610490565b5060051b60200190565b600082601f83011261050c57600080fd5b8135602061052161051c836104d7565b6104a6565b82815260059290921b8401810191818101908684111561054057600080fd5b8286015b8481101561056457803561055781610478565b8352918301918301610544565b509695505050505050565b600082601f83011261058057600080fd5b8135602061059061051c836104d7565b82815260059290921b840181019181810190868411156105af57600080fd5b8286015b8481101561056457803583529183019183016105b3565b6000806000606084860312156105df57600080fd5b83356105ea81610478565b9250602084013567ffffffffffffffff8082111561060757600080fd5b610613878388016104fb565b9350604086013591508082111561062957600080fd5b506106368682870161056f565b9150509250925092565b60008060006060848603121561065557600080fd5b833561066081610478565b9250602084013561067081610478565b9150604084013567ffffffffffffffff81111561068c57600080fd5b6106368682870161056f565b6000806000606084860312156106ad57600080fd5b83356106b881610478565b9250602084013567ffffffffffffffff8111156106d457600080fd5b6106e0868287016104fb565b925050604084013590509250925092565b60208082526024908201527f436f6c6c656374696f6e5574696c733a20696e76616c696420706172616d65746040820152636572732160e01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060001982141561079157634e487b7160e01b600052601160045260246000fd5b5060010190565b6000602082840312156107aa57600080fd5b815180151581146107ba57600080fd5b939250505056fea2646970667358221220e407a4c8fd501fabf0330421f6e36624c303214f32ce8abaad995b4ee9d5445a64736f6c634300080a0033