60806040526012600a62000014919062000308565b63017d784062000025919062000445565b6000553480156200003557600080fd5b506012600a62000046919062000308565b621e848062000056919062000445565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600054620000e89190620004a6565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620001ca919062000290565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460405162000271919062000290565b60405180910390a362000534565b6200028a81620004e1565b82525050565b6000602082019050620002a760008301846200027f565b92915050565b6000808291508390505b6001851115620002ff57808604811115620002d757620002d6620004f8565b5b6001851615620002e75780820291505b8081029050620002f78562000527565b9450620002b7565b94509492505050565b60006200031582620004e1565b91506200032283620004eb565b9250620003517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000359565b905092915050565b6000826200036b57600190506200043e565b816200037b57600090506200043e565b81600181146200039457600281146200039f57620003d5565b60019150506200043e565b60ff841115620003b457620003b3620004f8565b5b8360020a915084821115620003ce57620003cd620004f8565b5b506200043e565b5060208310610133831016604e8410600b84101617156200040f5782820a905083811115620004095762000408620004f8565b5b6200043e565b6200041e8484846001620002ad565b92509050818404811115620004385762000437620004f8565b5b81810290505b9392505050565b60006200045282620004e1565b91506200045f83620004e1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200049b576200049a620004f8565b5b828202905092915050565b6000620004b382620004e1565b9150620004c083620004e1565b925082821015620004d657620004d5620004f8565b5b828203905092915050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b610d1f80620005446000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad9190610ab5565b60405180910390f35b6100d060048036038101906100cb919061092c565b610239565b6040516100dd9190610a9a565b60405180910390f35b6100ee61032b565b6040516100fb9190610b17565b60405180910390f35b61011e600480360381019061011991906108dd565b610331565b60405161012b9190610a9a565b60405180910390f35b61013c6105a1565b6040516101499190610b32565b60405180910390f35b61016c60048036038101906101679190610878565b6105a6565b6040516101799190610b17565b60405180910390f35b61018a6105ef565b6040516101979190610ab5565b60405180910390f35b6101ba60048036038101906101b5919061092c565b610628565b6040516101c79190610a9a565b60405180910390f35b6101ea60048036038101906101e591906108a1565b6107c7565b6040516101f79190610b17565b60405180910390f35b6040518060400160405280601081526020017f536372756220446164647920436f696e0000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103199190610b17565b60405180910390a36001905092915050565b60005481565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156103f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103e990610af7565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104419190610bbf565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104979190610b69565b9250508190555081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461052a9190610bbf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161058e9190610b17565b60405180910390a3600190509392505050565b601281565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600581526020017f534352554200000000000000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a390610ad7565b60405180910390fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106fb9190610bbf565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107519190610b69565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107b59190610b17565b60405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061085d81610cbb565b92915050565b60008135905061087281610cd2565b92915050565b60006020828403121561088a57600080fd5b60006108988482850161084e565b91505092915050565b600080604083850312156108b457600080fd5b60006108c28582860161084e565b92505060206108d38582860161084e565b9150509250929050565b6000806000606084860312156108f257600080fd5b60006109008682870161084e565b93505060206109118682870161084e565b925050604061092286828701610863565b9150509250925092565b6000806040838503121561093f57600080fd5b600061094d8582860161084e565b925050602061095e85828601610863565b9150509250929050565b61097181610c05565b82525050565b600061098282610b4d565b61098c8185610b58565b935061099c818560208601610c48565b6109a581610caa565b840191505092915050565b60006109bd602683610b58565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610a23602883610b58565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b610a8581610c31565b82525050565b610a9481610c3b565b82525050565b6000602082019050610aaf6000830184610968565b92915050565b60006020820190508181036000830152610acf8184610977565b905092915050565b60006020820190508181036000830152610af0816109b0565b9050919050565b60006020820190508181036000830152610b1081610a16565b9050919050565b6000602082019050610b2c6000830184610a7c565b92915050565b6000602082019050610b476000830184610a8b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610b7482610c31565b9150610b7f83610c31565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610bb457610bb3610c7b565b5b828201905092915050565b6000610bca82610c31565b9150610bd583610c31565b925082821015610be857610be7610c7b565b5b828203905092915050565b6000610bfe82610c11565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610c66578082015181840152602081019050610c4b565b83811115610c75576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000601f19601f8301169050919050565b610cc481610bf3565b8114610ccf57600080fd5b50565b610cdb81610c31565b8114610ce657600080fd5b5056fea264697066735822122030649938b74dfa00e53c16a974f2347f4049ce57440c2010b337f7b0a283cf0b64736f6c63430008000033