0x608060405234801561001057600080fd5b506000600181905550610c76806100286000396000f3fe60806040526004361061003f5760003560e01c80636bfb0d01146100445780638c5517421461006f578063bfb231d214610098578063d38ea5bf146100d7575b600080fd5b34801561005057600080fd5b506100596100f3565b60405161006691906104bb565b60405180910390f35b34801561007b57600080fd5b506100966004803603810190610091919061065c565b6100f9565b005b3480156100a457600080fd5b506100bf60048036038101906100ba91906106b8565b610200565b6040516100ce939291906107a5565b60405180910390f35b6100f160048036038101906100ec91906106b8565b6102d2565b005b60015481565b6001600081548092919061010c90610812565b919050555060405180606001604052808381526020018281526020013373ffffffffffffffffffffffffffffffffffffffff168152506000806001548152602001908152602001600020600082015181600001908161016b9190610a66565b506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001547f9d997020c99a3f8b66a77e449bcdec38768a88e3470145435115473eece3cb5883836040516101f4929190610b38565b60405180910390a25050565b600060205280600052604060002060009150905080600001805461022390610889565b80601f016020809104026020016040519081016040528092919081815260200182805461024f90610889565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000811180156102e457506001548111155b610323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031a90610bb4565b60405180910390fd5b600080600083815260200190815260200160002090508060010154341015610380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037790610c20565b60405180910390fd5b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050338260020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610432573d6000803e3d6000fd5b508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16847f3e2a5a5ee3a24b1b9d330b0bc0946a7d0eb9c99f453f93a45348a9a8e29a94fb856001015460405161049591906104bb565b60405180910390a4505050565b6000819050919050565b6104b5816104a2565b82525050565b60006020820190506104d060008301846104ac565b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61053d826104f4565b810181811067ffffffffffffffff8211171561055c5761055b610505565b5b80604052505050565b600061056f6104d6565b905061057b8282610534565b919050565b600067ffffffffffffffff82111561059b5761059a610505565b5b6105a4826104f4565b9050602081019050919050565b82818337600083830152505050565b60006105d36105ce84610580565b610565565b9050828152602081018484840111156105ef576105ee6104ef565b5b6105fa8482856105b1565b509392505050565b600082601f830112610617576106166104ea565b5b81356106278482602086016105c0565b91505092915050565b610639816104a2565b811461064457600080fd5b50565b60008135905061065681610630565b92915050565b60008060408385031215610673576106726104e0565b5b600083013567ffffffffffffffff811115610691576106906104e5565b5b61069d85828601610602565b92505060206106ae85828601610647565b9150509250929050565b6000602082840312156106ce576106cd6104e0565b5b60006106dc84828501610647565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561071f578082015181840152602081019050610704565b60008484015250505050565b6000610736826106e5565b61074081856106f0565b9350610750818560208601610701565b610759816104f4565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061078f82610764565b9050919050565b61079f81610784565b82525050565b600060608201905081810360008301526107bf818661072b565b90506107ce60208301856104ac565b6107db6040830184610796565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061081d826104a2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361084f5761084e6107e3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806108a157607f821691505b6020821081036108b4576108b361085a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261091c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826108df565b61092686836108df565b95508019841693508086168417925050509392505050565b6000819050919050565b600061096361095e610959846104a2565b61093e565b6104a2565b9050919050565b6000819050919050565b61097d83610948565b6109916109898261096a565b8484546108ec565b825550505050565b600090565b6109a6610999565b6109b1818484610974565b505050565b5b818110156109d5576109ca60008261099e565b6001810190506109b7565b5050565b601f821115610a1a576109eb816108ba565b6109f4846108cf565b81016020851015610a03578190505b610a17610a0f856108cf565b8301826109b6565b50505b505050565b600082821c905092915050565b6000610a3d60001984600802610a1f565b1980831691505092915050565b6000610a568383610a2c565b9150826002028217905092915050565b610a6f826106e5565b67ffffffffffffffff811115610a8857610a87610505565b5b610a928254610889565b610a9d8282856109d9565b600060209050601f831160018114610ad05760008415610abe578287015190505b610ac88582610a4a565b865550610b30565b601f198416610ade866108ba565b60005b82811015610b0657848901518255600182019150602085019450602081019050610ae1565b86831015610b235784890151610b1f601f891682610a2c565b8355505b6001600288020188555050505b505050505050565b60006040820190508181036000830152610b52818561072b565b9050610b6160208301846104ac565b9392505050565b7f496e76616c6964206974656d2049440000000000000000000000000000000000600082015250565b6000610b9e600f836106f0565b9150610ba982610b68565b602082019050919050565b60006020820190508181036000830152610bcd81610b91565b9050919050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b6000610c0a6012836106f0565b9150610c1582610bd4565b602082019050919050565b60006020820190508181036000830152610c3981610bfd565b905091905056fea26469706673582212206e6e5371406d3f4e2d10bbe7ed03d4696794a70545e507d9dd409cab1e5a271164736f6c63430008120033