0x608060405234801561000f575f80fd5b506105cb8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063e52f961b1461002d575b5f80fd5b61004061003b36600461033d565b610057565b60405161004e929190610486565b60405180910390f35b606080825167ffffffffffffffff811115610074576100746102f8565b6040519080825280602002602001820160405280156100a757816020015b60608152602001906001900390816100925790505b509150825167ffffffffffffffff8111156100c4576100c46102f8565b6040519080825280602002602001820160405280156100f757816020015b60608152602001906001900390816100e25790505b5090505f5b83518110156102f2576040805160048152602481019091526020810180516001600160e01b03166306fdde0360e01b17905284515f908190879085908110610146576101466104b3565b60200260200101516001600160a01b03168360405161016591906104c7565b5f60405180830381855afa9150503d805f811461019d576040519150601f19603f3d011682016040523d82523d5f602084013e6101a2565b606091505b50915091508180156101b45750805115155b156102dc575f818060200190518101906101ce91906104e2565b6040805160048152602481019091526020810180516001600160e01b03166395d89b4160e01b1790528951909550909150889086908110610211576102116104b3565b60200260200101516001600160a01b03168460405161023091906104c7565b5f60405180830381855afa9150503d805f8114610268576040519150601f19603f3d011682016040523d82523d5f602084013e61026d565b606091505b5090935091508280156102805750815115155b156102da575f8280602001905181019061029a91906104e2565b9050818887815181106102af576102af6104b3565b6020026020010181905250808787815181106102cd576102cd6104b3565b6020026020010181905250505b505b50505080806102ea90610571565b9150506100fc565b50915091565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610335576103356102f8565b604052919050565b5f602080838503121561034e575f80fd5b823567ffffffffffffffff80821115610365575f80fd5b818501915085601f830112610378575f80fd5b81358181111561038a5761038a6102f8565b8060051b915061039b84830161030c565b81815291830184019184810190888411156103b4575f80fd5b938501935b838510156103ea57843592506001600160a01b03831683146103da575f8081fd5b82825293850193908501906103b9565b98975050505050505050565b5f5b838110156104105781810151838201526020016103f8565b50505f910152565b5f82825180855260208086019550808260051b8401018186015f5b8481101561047957601f1980878503018a528251805180865261045b818888018985016103f6565b9a86019a601f01909116939093018401925090830190600101610433565b5090979650505050505050565b604081525f6104986040830185610418565b82810360208401526104aa8185610418565b95945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82516104d88184602087016103f6565b9190910192915050565b5f602082840312156104f2575f80fd5b815167ffffffffffffffff80821115610509575f80fd5b818401915084601f83011261051c575f80fd5b81518181111561052e5761052e6102f8565b610541601f8201601f191660200161030c565b9150808252856020828501011115610557575f80fd5b6105688160208401602086016103f6565b50949350505050565b5f6001820161058e57634e487b7160e01b5f52601160045260245ffd5b506001019056fea2646970667358221220e3ef967bdd915a812610bb620b05c4f3ce673a6fb80c5aaa7faeebd2b0a181a964736f6c63430008140033