0x60806040523480156200001157600080fd5b50604051620019293803806200192983398181016040528101906200003791906200043d565b620000576200004b620002cc60201b60201c565b620002d460201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603620000c9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c09062000526565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036200013b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001329062000598565b60405180910390fd5b4283101562000181576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001789062000630565b60405180910390fd5b60008211620001c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001be90620006c8565b60405180910390fd5b600081116200020d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002049062000760565b60405180910390fd5b84600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260038190555081600481905550670de0b6b3a764000081620002b39190620007b1565b60058190555060006006819055505050505050620007fc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003ca826200039d565b9050919050565b620003dc81620003bd565b8114620003e857600080fd5b50565b600081519050620003fc81620003d1565b92915050565b6000819050919050565b620004178162000402565b81146200042357600080fd5b50565b60008151905062000437816200040c565b92915050565b600080600080600060a086880312156200045c576200045b62000398565b5b60006200046c88828901620003eb565b95505060206200047f88828901620003eb565b9450506040620004928882890162000426565b9350506060620004a58882890162000426565b9250506080620004b88882890162000426565b9150509295509295909350565b600082825260208201905092915050565b7f496e76616c696420746f6b656e20636f6e747261637420616464726573732e00600082015250565b60006200050e601f83620004c5565b91506200051b82620004d6565b602082019050919050565b600060208201905081810360008301526200054181620004ff565b9050919050565b7f496e76616c69642062656e656669636961727920616464726573732e00000000600082015250565b600062000580601c83620004c5565b91506200058d8262000548565b602082019050919050565b60006020820190508181036000830152620005b38162000571565b9050919050565b7f537461727420646174652073686f756c6420626520696e20746865206675747560008201527f72652e0000000000000000000000000000000000000000000000000000000000602082015250565b600062000618602383620004c5565b91506200062582620005ba565b604082019050919050565b600060208201905081810360008301526200064b8162000609565b9050919050565b7f506572696f6420636f756e74206d75737420626520677265617465722074686160008201527f6e20302e00000000000000000000000000000000000000000000000000000000602082015250565b6000620006b0602483620004c5565b9150620006bd8262000652565b604082019050919050565b60006020820190508181036000830152620006e381620006a1565b9050919050565b7f556e6c6f636b656420616d6f756e742070657220706572696f64206d7573742060008201527f62652067726561746572207468616e20302e0000000000000000000000000000602082015250565b600062000748603283620004c5565b91506200075582620006ea565b604082019050919050565b600060208201905081810360008301526200077b8162000739565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007be8262000402565b9150620007cb8362000402565b9250828202620007db8162000402565b91508282048414831517620007f557620007f462000782565b5b5092915050565b61111d806200080c6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c5780638da5cb5b116100665780638da5cb5b146101a4578063dce4c9fa146101c2578063f2fde38b146101e0578063f68e5218146101fc576100cf565b8063715018a61461015e5780637f1975191461016857806382edaf9414610186576100cf565b80630b97bc86146100d45780631c31f710146100f2578063205c9cc71461010e57806324ea36261461011857806338af3eed146101365780634e71d92d14610154575b600080fd5b6100dc61021a565b6040516100e99190610aa1565b60405180910390f35b61010c60048036038101906101079190610b1f565b610220565b005b6101166102db565b005b610120610449565b60405161012d9190610aa1565b60405180910390f35b61013e610458565b60405161014b9190610b5b565b60405180910390f35b61015c61047e565b005b6101666107c0565b005b6101706107d4565b60405161017d9190610aa1565b60405180910390f35b61018e6107da565b60405161019b9190610b5b565b60405180910390f35b6101ac610800565b6040516101b99190610b5b565b60405180910390f35b6101ca610829565b6040516101d79190610aa1565b60405180910390f35b6101fa60048036038101906101f59190610b1f565b61082f565b005b6102046108b2565b6040516102119190610aa1565b60405180910390f35b60035481565b6102286108b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028e90610bd3565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6102e36108b8565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016103459190610b5b565b602060405180830381865afa158015610362573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103869190610c1f565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016103c3929190610c4c565b6020604051808303816000875af11580156103e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104069190610cad565b610445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043c90610d26565b60405180910390fd5b5050565b6000610453610936565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461050e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050590610db8565b60405180910390fd5b6000610518610936565b90506000811161055d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055490610e24565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105bf9190610b5b565b602060405180830381865afa1580156105dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106009190610c1f565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161065f929190610c4c565b6020604051808303816000875af115801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a29190610cad565b6106e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d890610d26565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161071c9190610b5b565b602060405180830381865afa158015610739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075d9190610c1f565b9050838261076b9190610e73565b81146107ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a390610ef3565b60405180910390fd5b6107b4610964565b60068190555050505050565b6107c86108b8565b6107d260006109bc565b565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b6108376108b8565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089d90610f85565b60405180910390fd5b6108af816109bc565b50565b60065481565b6108c0610a80565b73ffffffffffffffffffffffffffffffffffffffff166108de610800565b73ffffffffffffffffffffffffffffffffffffffff1614610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90610ff1565b60405180910390fd5b565b600080610941610964565b9050600554600654826109549190610e73565b61095e9190611011565b91505090565b6000600354421161097857600090506109b9565b6000600162278d006003544261098e9190610e73565b6109989190611082565b6109a291906110b3565b90506004548111156109b45760045490505b809150505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b6000819050919050565b610a9b81610a88565b82525050565b6000602082019050610ab66000830184610a92565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610aec82610ac1565b9050919050565b610afc81610ae1565b8114610b0757600080fd5b50565b600081359050610b1981610af3565b92915050565b600060208284031215610b3557610b34610abc565b5b6000610b4384828501610b0a565b91505092915050565b610b5581610ae1565b82525050565b6000602082019050610b706000830184610b4c565b92915050565b600082825260208201905092915050565b7f496e76616c69642062656e656669636961727920616464726573732e00000000600082015250565b6000610bbd601c83610b76565b9150610bc882610b87565b602082019050919050565b60006020820190508181036000830152610bec81610bb0565b9050919050565b610bfc81610a88565b8114610c0757600080fd5b50565b600081519050610c1981610bf3565b92915050565b600060208284031215610c3557610c34610abc565b5b6000610c4384828501610c0a565b91505092915050565b6000604082019050610c616000830185610b4c565b610c6e6020830184610a92565b9392505050565b60008115159050919050565b610c8a81610c75565b8114610c9557600080fd5b50565b600081519050610ca781610c81565b92915050565b600060208284031215610cc357610cc2610abc565b5b6000610cd184828501610c98565b91505092915050565b7f546f6b656e207472616e73666572206661696c65642e00000000000000000000600082015250565b6000610d10601683610b76565b9150610d1b82610cda565b602082019050919050565b60006020820190508181036000830152610d3f81610d03565b9050919050565b7f4f6e6c79207468652062656e65666963696172792063616e2063616c6c20746860008201527f69732066756e6374696f6e2e0000000000000000000000000000000000000000602082015250565b6000610da2602c83610b76565b9150610dad82610d46565b604082019050919050565b60006020820190508181036000830152610dd181610d95565b9050919050565b7f4e6f20746f6b656e7320617661696c61626c6520666f7220636c61696d2e0000600082015250565b6000610e0e601e83610b76565b9150610e1982610dd8565b602082019050919050565b60006020820190508181036000830152610e3d81610e01565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e7e82610a88565b9150610e8983610a88565b9250828203905081811115610ea157610ea0610e44565b5b92915050565b7f546f6b656e207472616e7366657220616d6f756e74206d69736d617463682e00600082015250565b6000610edd601f83610b76565b9150610ee882610ea7565b602082019050919050565b60006020820190508181036000830152610f0c81610ed0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000610f6f602683610b76565b9150610f7a82610f13565b604082019050919050565b60006020820190508181036000830152610f9e81610f62565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610fdb602083610b76565b9150610fe682610fa5565b602082019050919050565b6000602082019050818103600083015261100a81610fce565b9050919050565b600061101c82610a88565b915061102783610a88565b925082820261103581610a88565b9150828204841483151761104c5761104b610e44565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061108d82610a88565b915061109883610a88565b9250826110a8576110a7611053565b5b828204905092915050565b60006110be82610a88565b91506110c983610a88565b92508282019050808211156110e1576110e0610e44565b5b9291505056fea2646970667358221220045e8f46a38885ef0ae5b10e9008607038d1302bf78ab29b6b5cfa0ed8b9a9bb64736f6c63430008120033000000000000000000000000ba1cbed391b341217424272eda5458d32b8bc2460000000000000000000000007797ca13b9535d09d8dc5297345212c03d137b280000000000000000000000000000000000000000000000000000000064db1fdc00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000006dac2c0