60806040523480156200001157600080fd5b5060405162000f3038038062000f308339818101604052810190620000379190620001ee565b81600090805190602001906200004f929190620000b5565b506040518060400160405280600381526020017f4e46540000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009d929190620000b5565b5080600281905550600160038190555050506200039d565b828054620000c390620002ef565b90600052602060002090601f016020900481019282620000e7576000855562000133565b82601f106200010257805160ff191683800117855562000133565b8280016001018555821562000133579182015b828111156200013257825182559160200191906001019062000115565b5b50905062000142919062000146565b5090565b5b808211156200016157600081600090555060010162000147565b5090565b60006200017c62000176846200027c565b62000248565b9050828152602081018484840111156200019557600080fd5b620001a2848285620002b9565b509392505050565b600082601f830112620001bc57600080fd5b8151620001ce84826020860162000165565b91505092915050565b600081519050620001e88162000383565b92915050565b600080604083850312156200020257600080fd5b600083015167ffffffffffffffff8111156200021d57600080fd5b6200022b85828601620001aa565b92505060206200023e85828601620001d7565b9150509250929050565b6000604051905081810181811067ffffffffffffffff8211171562000272576200027162000354565b5b8060405250919050565b600067ffffffffffffffff8211156200029a576200029962000354565b5b601f19601f8301169050602081019050919050565b6000819050919050565b60005b83811015620002d9578082015181840152602081019050620002bc565b83811115620002e9576000848401525b50505050565b600060028204905060018216806200030857607f821691505b602082108114156200031f576200031e62000325565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200038e81620002af565b81146200039a57600080fd5b50565b610b8380620003ad6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80636a627842116100665780636a6278421461013457806370a082311461015057806375794a3c1461018057806395d89b411461019e578063a9059cbb146101bc57610093565b806306fdde031461009857806318160ddd146100b65780631caaa487146100d45780636352211e14610104575b600080fd5b6100a06101d8565b6040516100ad91906108a3565b60405180910390f35b6100be610266565b6040516100cb9190610905565b60405180910390f35b6100ee60048036038101906100e99190610788565b61026c565b6040516100fb9190610888565b60405180910390f35b61011e60048036038101906101199190610788565b61029f565b60405161012b9190610888565b60405180910390f35b61014e60048036038101906101499190610723565b6102dc565b005b61016a60048036038101906101659190610723565b610447565b6040516101779190610905565b60405180910390f35b61018861045f565b6040516101959190610905565b60405180910390f35b6101a6610465565b6040516101b391906108a3565b60405180910390f35b6101d660048036038101906101d1919061074c565b6104f3565b005b600080546101e590610a35565b80601f016020809104026020016040519081016040528092919081815260200182805461021190610a35565b801561025e5780601f106102335761010080835404028352916020019161025e565b820191906000526020600020905b81548152906001019060200180831161024157829003601f168201915b505050505081565b60025481565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6002546003541115610323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031a906108e5565b60405180910390fd5b8060046000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103c7919061093c565b925050819055506003548173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46003600081548092919061043f90610a67565b919050555050565b60056020528060005260406000206000915090505481565b60035481565b6001805461047290610a35565b80601f016020809104026020016040519081016040528092919081815260200182805461049e90610a35565b80156104eb5780601f106104c0576101008083540402835291602001916104eb565b820191906000526020600020905b8154815290600101906020018083116104ce57829003601f168201915b505050505081565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610599576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610590906108c5565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461063b9190610992565b925050819055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610692919061093c565b92505081905550818373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008135905061070881610b1f565b92915050565b60008135905061071d81610b36565b92915050565b60006020828403121561073557600080fd5b6000610743848285016106f9565b91505092915050565b6000806040838503121561075f57600080fd5b600061076d858286016106f9565b925050602061077e8582860161070e565b9150509250929050565b60006020828403121561079a57600080fd5b60006107a88482850161070e565b91505092915050565b6107ba816109c6565b82525050565b60006107cb82610920565b6107d5818561092b565b93506107e5818560208601610a02565b6107ee81610b0e565b840191505092915050565b600061080660158361092b565b91507f596f7520617265206e6f7420746865206f776e657200000000000000000000006000830152602082019050919050565b600061084660148361092b565b91507f4578636565647320746f74616c20737570706c790000000000000000000000006000830152602082019050919050565b610882816109f8565b82525050565b600060208201905061089d60008301846107b1565b92915050565b600060208201905081810360008301526108bd81846107c0565b905092915050565b600060208201905081810360008301526108de816107f9565b9050919050565b600060208201905081810360008301526108fe81610839565b9050919050565b600060208201905061091a6000830184610879565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610947826109f8565b9150610952836109f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561098757610986610ab0565b5b828201905092915050565b600061099d826109f8565b91506109a8836109f8565b9250828210156109bb576109ba610ab0565b5b828203905092915050565b60006109d1826109d8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610a20578082015181840152602081019050610a05565b83811115610a2f576000848401525b50505050565b60006002820490506001821680610a4d57607f821691505b60208210811415610a6157610a60610adf565b5b50919050565b6000610a72826109f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610aa557610aa4610ab0565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b610b28816109c6565b8114610b3357600080fd5b50565b610b3f816109f8565b8114610b4a57600080fd5b5056fea26469706673582212207df3dc9924867ef79a223f50e9dd0e607b72b19fe15ccfbac46cc8f667bf610264736f6c63430008000033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000007334f57424f4a5400000000000000000000000000000000000000000000000000