6080604052600060015534801561001557600080fd5b506000805433610100026001600160a81b0319909116179055610e378061003d6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636618846311610097578063aa271e1a11610066578063aa271e1a1461032c578063d73dd6231461035f578063dd62ed3e14610398578063fca3b5aa146103d3576100f5565b8063661884631461027f57806370a08231146102b857806395d89b41146102eb578063a9059cbb146102f3576100f5565b806323b872dd116100d357806323b872dd146101de578063313ce5671461022157806340c10f191461022957806342966c6814610262576100f5565b806306fdde03146100fa578063095ea7b31461017757806318160ddd146101c4575b600080fd5b610102610408565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561013c578181015183820152602001610124565b50505050905090810190601f1680156101695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b06004803603604081101561018d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610441565b604080519115158252519081900360200190f35b6101cc6104b4565b60408051918252519081900360200190f35b6101b0600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104ba565b6101cc61067a565b6101b06004803603604081101561023f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561067f565b6101b06004803603602081101561027857600080fd5b5035610799565b6101b06004803603604081101561029557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561088e565b6101cc600480360360208110156102ce57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109ac565b6101026109d4565b6101b06004803603604081101561030957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610a0d565b6101b06004803603602081101561034257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610bcd565b6101b06004803603604081101561037557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bf3565b6101cc600480360360408110156103ae57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610ca0565b610406600480360360208110156103e957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610cd8565b005b6040518060400160405280600a81526020017f4e6f646f6b61204554480000000000000000000000000000000000000000000081525081565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60015481565b600073ffffffffffffffffffffffffffffffffffffffff83166104dc57600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526002602052604090205482111561050e57600080fd5b73ffffffffffffffffffffffffffffffffffffffff8416600090815260036020908152604080832033845290915290205482111561054b57600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526002602052604090205461057b9083610da7565b73ffffffffffffffffffffffffffffffffffffffff80861660009081526002602052604080822093909355908516815220546105b79083610db9565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526002602090815260408083209490945591871681526003825282812033825290915220546106029083610da7565b73ffffffffffffffffffffffffffffffffffffffff808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b601281565b600061068a33610bcd565b6106df576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610dd06032913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090205461070f9083610db9565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600260205260409020556001546107429083610db9565b60015560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a392915050565b3360009081526002602052604081205482111561081757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e73756666696369656e742066756e64000000000000000000000000000000604482015290519081900360640190fd5b336000908152600260205260409020546108319083610da7565b3360009081526002602052604090205560015461084e9083610da7565b60015560408051838152905160009133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3919050565b33600090815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054808311156108fd5733600090815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff88168452909152812055610939565b6109078184610da7565b33600090815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff891684529091529020555b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b73ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205490565b6040518060400160405280600481526020017f4e4554480000000000000000000000000000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff8316610a9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f43616e6e6f742073656e6420746f207a65726f20616464726573730000000000604482015290519081900360640190fd5b33600090815260026020526040902054821115610b0f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e73756666696369656e742066756e64000000000000000000000000000000604482015290519081900360640190fd5b33600090815260026020526040902054610b299083610da7565b336000908152600260205260408082209290925573ffffffffffffffffffffffffffffffffffffffff851681522054610b629083610db9565b73ffffffffffffffffffffffffffffffffffffffff84166000818152600260209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600054610100900473ffffffffffffffffffffffffffffffffffffffff90811691161490565b33600090815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054610c2e9083610db9565b33600081815260036020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260036020908152604080832093909416825291909152205490565b610ce133610bcd565b610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610dd06032913960400191505060405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0073ffffffffffffffffffffffffffffffffffffffff909316610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff90911617919091166001179055565b600082821115610db357fe5b50900390565b600082820183811015610dc857fe5b939250505056fe4d696e7461626c653a206d73672e73656e64657220646f6573206e6f74206861766520746865204d696e74657220726f6c65a2646970667358221220da97580101a27e26ae774e3090cefc7f467b58170be3b2b05d1e401c21a38e7464736f6c634300060c0033