0x6080604052600436106100fd575f3560e01c8063715018a61161009457806395d89b411161006357806395d89b41146102e5578063a9059cbb1461030f578063bd3733fe1461034b578063d737d0c714610375578063dd62ed3e1461039f576100fd565b8063715018a614610285578063751039fc1461029b5780638a8c523c146102b15780638da5cb5b146102bb576100fd565b806323b872dd116100d057806323b872dd146101bb5780632ccb1b30146101f7578063313ce5671461021f57806370a0823114610249576100fd565b806306fdde0314610101578063095ea7b31461012b5780630c1930451461016757806318160ddd14610191575b5f5ffd5b34801561010c575f5ffd5b506101156103db565b6040516101229190611308565b60405180910390f35b348015610136575f5ffd5b50610151600480360381019061014c91906113b9565b610418565b60405161015e9190611411565b60405180910390f35b348015610172575f5ffd5b5061017b61042e565b6040516101889190611439565b60405180910390f35b34801561019c575f5ffd5b506101a5610434565b6040516101b29190611439565b60405180910390f35b3480156101c6575f5ffd5b506101e160048036038101906101dc9190611452565b61043d565b6040516101ee9190611411565b60405180910390f35b348015610202575f5ffd5b5061021d600480360381019061021891906113b9565b6104e9565b005b34801561022a575f5ffd5b506102336105a6565b60405161024091906114bd565b60405180910390f35b348015610254575f5ffd5b5061026f600480360381019061026a91906114d6565b6105bb565b60405161027c9190611439565b60405180910390f35b348015610290575f5ffd5b50610299610601565b005b3480156102a6575f5ffd5b506102af610731565b005b6102b96107a8565b005b3480156102c6575f5ffd5b506102cf610bf0565b6040516102dc9190611510565b60405180910390f35b3480156102f0575f5ffd5b506102f9610c17565b6040516103069190611308565b60405180910390f35b34801561031a575f5ffd5b50610335600480360381019061033091906113b9565b610c54565b6040516103429190611411565b60405180910390f35b348015610356575f5ffd5b5061035f610c6a565b60405161036c9190611510565b60405180910390f35b348015610380575f5ffd5b50610389610c90565b6040516103969190611510565b60405180910390f35b3480156103aa575f5ffd5b506103c560048036038101906103c09190611529565b610c97565b6040516103d29190611439565b60405180910390f35b60606040518060400160405280600881526020017f47616d6553746f70000000000000000000000000000000000000000000000000815250905090565b5f610424338484610d19565b6001905092915050565b60095481565b5f600154905090565b5f610449848484610edc565b6104de84336104d98560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461118690919063ffffffff16565b610d19565b600190509392505050565b6104f2336111e3565b1561059c575f8160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105419190611594565b90508060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461058f9190611594565b92505081905550506105a2565b5f5f9050505b5050565b5f5f60149054906101000a900460ff16905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610620610bf0565b73ffffffffffffffffffffffffffffffffffffffff1614610676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066d90611611565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16610750610bf0565b73ffffffffffffffffffffffffffffffffffffffff16146107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90611611565b60405180910390fd5b565b3373ffffffffffffffffffffffffffffffffffffffff166107c7610bf0565b73ffffffffffffffffffffffffffffffffffffffff161461081d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081490611611565b60405180910390fd5b600d5f9054906101000a900460ff1615610835575f5ffd5b6108633060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154610d19565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190611643565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610977573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099b9190611643565b6040518363ffffffff1660e01b81526004016109b892919061166e565b6020604051808303815f875af11580156109d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f89190611643565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f42905060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610a84306105bb565b5f5f610a8e610bf0565b886040518863ffffffff1660e01b8152600401610ab0969594939291906116d7565b60606040518083038185885af1158015610acc573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610af1919061174a565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610b9292919061179a565b6020604051808303815f875af1158015610bae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd291906117eb565b506001600d5f6101000a81548160ff02191690831515021790555050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f474d450000000000000000000000000000000000000000000000000000000000815250905090565b5f610c60338484610edc565b6001905092915050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e90611886565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90611914565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ecf9190611439565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f419061197c565b60405180910390fd5b5f8111610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390611a0a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190611a98565b60405180910390fd5b61104a8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461118690919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506110db8160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461123b90919063ffffffff16565b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111799190611439565b60405180910390a3505050565b5f828211156111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190611b00565b60405180910390fd5b5f82846111d79190611594565b90508091505092915050565b5f8173ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f5f82846112499190611b1e565b90508381101561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590611b9b565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112da82611298565b6112e481856112a2565b93506112f48185602086016112b2565b6112fd816112c0565b840191505092915050565b5f6020820190508181035f83015261132081846112d0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113558261132c565b9050919050565b6113658161134b565b811461136f575f5ffd5b50565b5f813590506113808161135c565b92915050565b5f819050919050565b61139881611386565b81146113a2575f5ffd5b50565b5f813590506113b38161138f565b92915050565b5f5f604083850312156113cf576113ce611328565b5b5f6113dc85828601611372565b92505060206113ed858286016113a5565b9150509250929050565b5f8115159050919050565b61140b816113f7565b82525050565b5f6020820190506114245f830184611402565b92915050565b61143381611386565b82525050565b5f60208201905061144c5f83018461142a565b92915050565b5f5f5f6060848603121561146957611468611328565b5b5f61147686828701611372565b935050602061148786828701611372565b9250506040611498868287016113a5565b9150509250925092565b5f60ff82169050919050565b6114b7816114a2565b82525050565b5f6020820190506114d05f8301846114ae565b92915050565b5f602082840312156114eb576114ea611328565b5b5f6114f884828501611372565b91505092915050565b61150a8161134b565b82525050565b5f6020820190506115235f830184611501565b92915050565b5f5f6040838503121561153f5761153e611328565b5b5f61154c85828601611372565b925050602061155d85828601611372565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61159e82611386565b91506115a983611386565b92508282039050818111156115c1576115c0611567565b5b92915050565b7f4e6f7420616e206f776e657200000000000000000000000000000000000000005f82015250565b5f6115fb600c836112a2565b9150611606826115c7565b602082019050919050565b5f6020820190508181035f830152611628816115ef565b9050919050565b5f8151905061163d8161135c565b92915050565b5f6020828403121561165857611657611328565b5b5f6116658482850161162f565b91505092915050565b5f6040820190506116815f830185611501565b61168e6020830184611501565b9392505050565b5f819050919050565b5f819050919050565b5f6116c16116bc6116b784611695565b61169e565b611386565b9050919050565b6116d1816116a7565b82525050565b5f60c0820190506116ea5f830189611501565b6116f7602083018861142a565b61170460408301876116c8565b61171160608301866116c8565b61171e6080830185611501565b61172b60a083018461142a565b979650505050505050565b5f815190506117448161138f565b92915050565b5f5f5f6060848603121561176157611760611328565b5b5f61176e86828701611736565b935050602061177f86828701611736565b925050604061179086828701611736565b9150509250925092565b5f6040820190506117ad5f830185611501565b6117ba602083018461142a565b9392505050565b6117ca816113f7565b81146117d4575f5ffd5b50565b5f815190506117e5816117c1565b92915050565b5f60208284031215611800576117ff611328565b5b5f61180d848285016117d7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6118706024836112a2565b915061187b82611816565b604082019050919050565b5f6020820190508181035f83015261189d81611864565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6118fe6022836112a2565b9150611909826118a4565b604082019050919050565b5f6020820190508181035f83015261192b816118f2565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611966601c836112a2565b915061197182611932565b602082019050919050565b5f6020820190508181035f8301526119938161195a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6119f46029836112a2565b91506119ff8261199a565b604082019050919050565b5f6020820190508181035f830152611a21816119e8565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f2061645f8201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b5f611a826026836112a2565b9150611a8d82611a28565b604082019050919050565b5f6020820190508181035f830152611aaf81611a76565b9050919050565b7f536166654d6174683a20207375627472616374696f6e206f766572666c6f772e5f82015250565b5f611aea6020836112a2565b9150611af582611ab6565b602082019050919050565b5f6020820190508181035f830152611b1781611ade565b9050919050565b5f611b2882611386565b9150611b3383611386565b9250828201905080821115611b4b57611b4a611567565b5b92915050565b7f536166654d6174683a20206164646974696f6e206f766572666c6f772e0000005f82015250565b5f611b85601d836112a2565b9150611b9082611b51565b602082019050919050565b5f6020820190508181035f830152611bb281611b79565b905091905056fea2646970667358221220cd2bc0b0aa25e9dae0af72279b397aa558d25a34db4f67744eccafd28e88cc9064736f6c634300081c0033
0x608060405260095f60146101000a81548160ff021916908360ff1602179055505f60149054906101000a900460ff16600a61003a9190610397565b633b9aca0061004991906103e1565b600155737a250d5630b4cf539739df2c5dacb4c659f2488d60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734ebc5685c735ce4527d7017883f4dfeb3073e3cd60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6006555f6007555f60085560056009555f600a556005600b555f600c555f600d5f6101000a81548160ff021916908315150217905550348015610136575f5ffd5b50335f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516101d59190610431565b60405180910390a360015460055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061044a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156102a85780860481111561028457610283610226565b5b60018516156102935780820291505b80810290506102a185610253565b9450610268565b94509492505050565b5f826102c0576001905061037b565b816102cd575f905061037b565b81600181146102e357600281146102ed5761031c565b600191505061037b565b60ff8411156102ff576102fe610226565b5b8360020a91508482111561031657610315610226565b5b5061037b565b5060208310610133831016604e8410600b84101617156103515782820a90508381111561034c5761034b610226565b5b61037b565b61035e848484600161025f565b9250905081840481111561037557610374610226565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6103a182610382565b91506103ac8361038b565b92506103d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846102b1565b905092915050565b5f6103eb82610382565b91506103f683610382565b925082820261040481610382565b9150828204841483151761041b5761041a610226565b5b5092915050565b61042b81610382565b82525050565b5f6020820190506104445f830184610422565b92915050565b611bef806104575f395ff3fe6080604052600436106100fd575f3560e01c8063715018a61161009457806395d89b411161006357806395d89b41146102e5578063a9059cbb1461030f578063bd3733fe1461034b578063d737d0c714610375578063dd62ed3e1461039f576100fd565b8063715018a614610285578063751039fc1461029b5780638a8c523c146102b15780638da5cb5b146102bb576100fd565b806323b872dd116100d057806323b872dd146101bb5780632ccb1b30146101f7578063313ce5671461021f57806370a0823114610249576100fd565b806306fdde0314610101578063095ea7b31461012b5780630c1930451461016757806318160ddd14610191575b5f5ffd5b34801561010c575f5ffd5b506101156103db565b6040516101229190611308565b60405180910390f35b348015610136575f5ffd5b50610151600480360381019061014c91906113b9565b610418565b60405161015e9190611411565b60405180910390f35b348015610172575f5ffd5b5061017b61042e565b6040516101889190611439565b60405180910390f35b34801561019c575f5ffd5b506101a5610434565b6040516101b29190611439565b60405180910390f35b3480156101c6575f5ffd5b506101e160048036038101906101dc9190611452565b61043d565b6040516101ee9190611411565b60405180910390f35b348015610202575f5ffd5b5061021d600480360381019061021891906113b9565b6104e9565b005b34801561022a575f5ffd5b506102336105a6565b60405161024091906114bd565b60405180910390f35b348015610254575f5ffd5b5061026f600480360381019061026a91906114d6565b6105bb565b60405161027c9190611439565b60405180910390f35b348015610290575f5ffd5b50610299610601565b005b3480156102a6575f5ffd5b506102af610731565b005b6102b96107a8565b005b3480156102c6575f5ffd5b506102cf610bf0565b6040516102dc9190611510565b60405180910390f35b3480156102f0575f5ffd5b506102f9610c17565b6040516103069190611308565b60405180910390f35b34801561031a575f5ffd5b50610335600480360381019061033091906113b9565b610c54565b6040516103429190611411565b60405180910390f35b348015610356575f5ffd5b5061035f610c6a565b60405161036c9190611510565b60405180910390f35b348015610380575f5ffd5b50610389610c90565b6040516103969190611510565b60405180910390f35b3480156103aa575f5ffd5b506103c560048036038101906103c09190611529565b610c97565b6040516103d29190611439565b60405180910390f35b60606040518060400160405280600881526020017f47616d6553746f70000000000000000000000000000000000000000000000000815250905090565b5f610424338484610d19565b6001905092915050565b60095481565b5f600154905090565b5f610449848484610edc565b6104de84336104d98560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461118690919063ffffffff16565b610d19565b600190509392505050565b6104f2336111e3565b1561059c575f8160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546105419190611594565b90508060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461058f9190611594565b92505081905550506105a2565b5f5f9050505b5050565b5f5f60149054906101000a900460ff16905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16610620610bf0565b73ffffffffffffffffffffffffffffffffffffffff1614610676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066d90611611565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16610750610bf0565b73ffffffffffffffffffffffffffffffffffffffff16146107a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079d90611611565b60405180910390fd5b565b3373ffffffffffffffffffffffffffffffffffffffff166107c7610bf0565b73ffffffffffffffffffffffffffffffffffffffff161461081d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081490611611565b60405180910390fd5b600d5f9054906101000a900460ff1615610835575f5ffd5b6108633060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154610d19565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190611643565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610977573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099b9190611643565b6040518363ffffffff1660e01b81526004016109b892919061166e565b6020604051808303815f875af11580156109d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f89190611643565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f42905060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610a84306105bb565b5f5f610a8e610bf0565b886040518863ffffffff1660e01b8152600401610ab0969594939291906116d7565b60606040518083038185885af1158015610acc573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610af1919061174a565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610b9292919061179a565b6020604051808303815f875af1158015610bae573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd291906117eb565b506001600d5f6101000a81548160ff02191690831515021790555050565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f474d450000000000000000000000000000000000000000000000000000000000815250905090565b5f610c60338484610edc565b6001905092915050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7e90611886565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90611914565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ecf9190611439565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f419061197c565b60405180910390fd5b5f8111610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8390611a0a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190611a98565b60405180910390fd5b61104a8160055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461118690919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506110db8160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461123b90919063ffffffff16565b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111799190611439565b60405180910390a3505050565b5f828211156111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190611b00565b60405180910390fd5b5f82846111d79190611594565b90508091505092915050565b5f8173ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f5f82846112499190611b1e565b90508381101561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128590611b9b565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112da82611298565b6112e481856112a2565b93506112f48185602086016112b2565b6112fd816112c0565b840191505092915050565b5f6020820190508181035f83015261132081846112d0565b905092915050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6113558261132c565b9050919050565b6113658161134b565b811461136f575f5ffd5b50565b5f813590506113808161135c565b92915050565b5f819050919050565b61139881611386565b81146113a2575f5ffd5b50565b5f813590506113b38161138f565b92915050565b5f5f604083850312156113cf576113ce611328565b5b5f6113dc85828601611372565b92505060206113ed858286016113a5565b9150509250929050565b5f8115159050919050565b61140b816113f7565b82525050565b5f6020820190506114245f830184611402565b92915050565b61143381611386565b82525050565b5f60208201905061144c5f83018461142a565b92915050565b5f5f5f6060848603121561146957611468611328565b5b5f61147686828701611372565b935050602061148786828701611372565b9250506040611498868287016113a5565b9150509250925092565b5f60ff82169050919050565b6114b7816114a2565b82525050565b5f6020820190506114d05f8301846114ae565b92915050565b5f602082840312156114eb576114ea611328565b5b5f6114f884828501611372565b91505092915050565b61150a8161134b565b82525050565b5f6020820190506115235f830184611501565b92915050565b5f5f6040838503121561153f5761153e611328565b5b5f61154c85828601611372565b925050602061155d85828601611372565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61159e82611386565b91506115a983611386565b92508282039050818111156115c1576115c0611567565b5b92915050565b7f4e6f7420616e206f776e657200000000000000000000000000000000000000005f82015250565b5f6115fb600c836112a2565b9150611606826115c7565b602082019050919050565b5f6020820190508181035f830152611628816115ef565b9050919050565b5f8151905061163d8161135c565b92915050565b5f6020828403121561165857611657611328565b5b5f6116658482850161162f565b91505092915050565b5f6040820190506116815f830185611501565b61168e6020830184611501565b9392505050565b5f819050919050565b5f819050919050565b5f6116c16116bc6116b784611695565b61169e565b611386565b9050919050565b6116d1816116a7565b82525050565b5f60c0820190506116ea5f830189611501565b6116f7602083018861142a565b61170460408301876116c8565b61171160608301866116c8565b61171e6080830185611501565b61172b60a083018461142a565b979650505050505050565b5f815190506117448161138f565b92915050565b5f5f5f6060848603121561176157611760611328565b5b5f61176e86828701611736565b935050602061177f86828701611736565b925050604061179086828701611736565b9150509250925092565b5f6040820190506117ad5f830185611501565b6117ba602083018461142a565b9392505050565b6117ca816113f7565b81146117d4575f5ffd5b50565b5f815190506117e5816117c1565b92915050565b5f60208284031215611800576117ff611328565b5b5f61180d848285016117d7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6118706024836112a2565b915061187b82611816565b604082019050919050565b5f6020820190508181035f83015261189d81611864565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6118fe6022836112a2565b9150611909826118a4565b604082019050919050565b5f6020820190508181035f83015261192b816118f2565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f611966601c836112a2565b915061197182611932565b602082019050919050565b5f6020820190508181035f8301526119938161195a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6119f46029836112a2565b91506119ff8261199a565b604082019050919050565b5f6020820190508181035f830152611a21816119e8565b9050919050565b7f45524332303a205472616e736665722066726f6d20746865207a65726f2061645f8201527f64726573732e0000000000000000000000000000000000000000000000000000602082015250565b5f611a826026836112a2565b9150611a8d82611a28565b604082019050919050565b5f6020820190508181035f830152611aaf81611a76565b9050919050565b7f536166654d6174683a20207375627472616374696f6e206f766572666c6f772e5f82015250565b5f611aea6020836112a2565b9150611af582611ab6565b602082019050919050565b5f6020820190508181035f830152611b1781611ade565b9050919050565b5f611b2882611386565b9150611b3383611386565b9250828201905080821115611b4b57611b4a611567565b5b92915050565b7f536166654d6174683a20206164646974696f6e206f766572666c6f772e0000005f82015250565b5f611b85601d836112a2565b9150611b9082611b51565b602082019050919050565b5f6020820190508181035f830152611bb281611b79565b905091905056fea2646970667358221220cd2bc0b0aa25e9dae0af72279b397aa558d25a34db4f67744eccafd28e88cc9064736f6c634300081c0033