0x60806040523480156200001157600080fd5b506040518060400160405280600381526020017f424e42000000000000000000000000000000000000000000000000000000000081525060039081620000589190620004e3565b506040518060400160405280600381526020017f424e420000000000000000000000000000000000000000000000000000000000815250600490816200009f9190620004e3565b506008600560006101000a81548160ff021916908360ff1602179055506200010b620000d06200011160201b60201c565b600560009054906101000a900460ff16600a620000ee91906200075a565b6305f5e100620000ff9190620007ab565b6200011960201b60201c565b620008e2565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200018b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001829062000857565b60405180910390fd5b80600260008282546200019f919062000879565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620001f6919062000879565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200025d9190620008c5565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002eb57607f821691505b602082108103620003015762000300620002a3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200036b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200032c565b6200037786836200032c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003c4620003be620003b8846200038f565b62000399565b6200038f565b9050919050565b6000819050919050565b620003e083620003a3565b620003f8620003ef82620003cb565b84845462000339565b825550505050565b600090565b6200040f62000400565b6200041c818484620003d5565b505050565b5b8181101562000444576200043860008262000405565b60018101905062000422565b5050565b601f82111562000493576200045d8162000307565b62000468846200031c565b8101602085101562000478578190505b6200049062000487856200031c565b83018262000421565b50505b505050565b600082821c905092915050565b6000620004b86000198460080262000498565b1980831691505092915050565b6000620004d38383620004a5565b9150826002028217905092915050565b620004ee8262000269565b67ffffffffffffffff8111156200050a576200050962000274565b5b620005168254620002d2565b6200052382828562000448565b600060209050601f8311600181146200055b576000841562000546578287015190505b620005528582620004c5565b865550620005c2565b601f1984166200056b8662000307565b60005b8281101562000595578489015182556001820191506020850194506020810190506200056e565b86831015620005b55784890151620005b1601f891682620004a5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006585780860481111562000630576200062f620005ca565b5b6001851615620006405780820291505b80810290506200065085620005f9565b945062000610565b94509492505050565b60008262000673576001905062000746565b8162000683576000905062000746565b81600181146200069c5760028114620006a757620006dd565b600191505062000746565b60ff841115620006bc57620006bb620005ca565b5b8360020a915084821115620006d657620006d5620005ca565b5b5062000746565b5060208310610133831016604e8410600b8410161715620007175782820a905083811115620007115762000710620005ca565b5b62000746565b62000726848484600162000606565b9250905081840481111562000740576200073f620005ca565b5b81810290505b9392505050565b600060ff82169050919050565b600062000767826200038f565b915062000774836200074d565b9250620007a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000661565b905092915050565b6000620007b8826200038f565b9150620007c5836200038f565b9250828202620007d5816200038f565b91508282048414831517620007ef57620007ee620005ca565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200083f601f83620007f6565b91506200084c8262000807565b602082019050919050565b60006020820190508181036000830152620008728162000830565b9050919050565b600062000886826200038f565b915062000893836200038f565b9250828201905080821115620008ae57620008ad620005ca565b5b92915050565b620008bf816200038f565b82525050565b6000602082019050620008dc6000830184620008b4565b92915050565b61108080620008f26000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce5671461013457806370a082311461015257806395d89b4114610182578063a9059cbb146101a0578063dd62ed3e146101d057610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100e657806323b872dd14610104575b600080fd5b6100a0610200565b6040516100ad91906109bb565b60405180910390f35b6100d060048036038101906100cb9190610a76565b610292565b6040516100dd9190610ad1565b60405180910390f35b6100ee6102b0565b6040516100fb9190610afb565b60405180910390f35b61011e60048036038101906101199190610b16565b6102ba565b60405161012b9190610ad1565b60405180910390f35b61013c6102e4565b6040516101499190610b85565b60405180910390f35b61016c60048036038101906101679190610ba0565b6102fb565b6040516101799190610afb565b60405180910390f35b61018a610343565b60405161019791906109bb565b60405180910390f35b6101ba60048036038101906101b59190610a76565b6103d5565b6040516101c79190610ad1565b60405180910390f35b6101ea60048036038101906101e59190610bcd565b6103f3565b6040516101f79190610afb565b60405180910390f35b60606003805461020f90610c3c565b80601f016020809104026020016040519081016040528092919081815260200182805461023b90610c3c565b80156102885780601f1061025d57610100808354040283529160200191610288565b820191906000526020600020905b81548152906001019060200180831161026b57829003601f168201915b5050505050905090565b60006102a661029f61047a565b8484610482565b6001905092915050565b6000600254905090565b60006102ce846102c861047a565b8461064b565b6102d98484846106b8565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461035290610c3c565b80601f016020809104026020016040519081016040528092919081815260200182805461037e90610c3c565b80156103cb5780601f106103a0576101008083540402835291602001916103cb565b820191906000526020600020905b8154815290600101906020018083116103ae57829003601f168201915b5050505050905090565b60006103e96103e261047a565b84846106b8565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e890610cdf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055790610d71565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161063e9190610afb565b60405180910390a3505050565b600061065784846103f3565b90508181101561069c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069390610ddd565b60405180910390fd5b6106b2848484846106ad9190610e2c565b610482565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071e90610ed2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078d90610f64565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e90610ff6565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108659190610e2c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108ba9190611016565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161091e9190610afb565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561096557808201518184015260208101905061094a565b60008484015250505050565b6000601f19601f8301169050919050565b600061098d8261092b565b6109978185610936565b93506109a7818560208601610947565b6109b081610971565b840191505092915050565b600060208201905081810360008301526109d58184610982565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a0d826109e2565b9050919050565b610a1d81610a02565b8114610a2857600080fd5b50565b600081359050610a3a81610a14565b92915050565b6000819050919050565b610a5381610a40565b8114610a5e57600080fd5b50565b600081359050610a7081610a4a565b92915050565b60008060408385031215610a8d57610a8c6109dd565b5b6000610a9b85828601610a2b565b9250506020610aac85828601610a61565b9150509250929050565b60008115159050919050565b610acb81610ab6565b82525050565b6000602082019050610ae66000830184610ac2565b92915050565b610af581610a40565b82525050565b6000602082019050610b106000830184610aec565b92915050565b600080600060608486031215610b2f57610b2e6109dd565b5b6000610b3d86828701610a2b565b9350506020610b4e86828701610a2b565b9250506040610b5f86828701610a61565b9150509250925092565b600060ff82169050919050565b610b7f81610b69565b82525050565b6000602082019050610b9a6000830184610b76565b92915050565b600060208284031215610bb657610bb56109dd565b5b6000610bc484828501610a2b565b91505092915050565b60008060408385031215610be457610be36109dd565b5b6000610bf285828601610a2b565b9250506020610c0385828601610a2b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610c5457607f821691505b602082108103610c6757610c66610c0d565b5b50919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000610cc9602483610936565b9150610cd482610c6d565b604082019050919050565b60006020820190508181036000830152610cf881610cbc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000610d5b602283610936565b9150610d6682610cff565b604082019050919050565b60006020820190508181036000830152610d8a81610d4e565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000610dc7601d83610936565b9150610dd282610d91565b602082019050919050565b60006020820190508181036000830152610df681610dba565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e3782610a40565b9150610e4283610a40565b9250828203905081811115610e5a57610e59610dfd565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000610ebc602583610936565b9150610ec782610e60565b604082019050919050565b60006020820190508181036000830152610eeb81610eaf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000610f4e602383610936565b9150610f5982610ef2565b604082019050919050565b60006020820190508181036000830152610f7d81610f41565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000610fe0602683610936565b9150610feb82610f84565b604082019050919050565b6000602082019050818103600083015261100f81610fd3565b9050919050565b600061102182610a40565b915061102c83610a40565b925082820190508082111561104457611043610dfd565b5b9291505056fea26469706673582212203221f2a87a1c2471cd5af84bca76977f61b941ca3d1fdcc05d447c34a6dfeaf164736f6c63430008140033