0x608060405234801561001057600080fd5b50610519806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063bfb7f05e14610030575b600080fd5b61004a6004803603810190610045919061026a565b61004c565b005b60008151905060005b818110156101a3578473ffffffffffffffffffffffffffffffffffffffff1633858584815181106100af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040516024016100c993929190610337565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516101539190610320565b6000604051808303816000865af19150503d8060008114610190576040519150601f19603f3d011682016040523d82523d6000602084013e610195565b606091505b505050806001019050610055565b5050505050565b60006101bd6101b884610393565b61036e565b905080838252602082019050828560208602820111156101dc57600080fd5b60005b8581101561020c57816101f28882610255565b8452602084019350602083019250506001810190506101df565b5050509392505050565b600081359050610225816104b5565b92915050565b600082601f83011261023c57600080fd5b813561024c8482602086016101aa565b91505092915050565b600081359050610264816104cc565b92915050565b60008060006060848603121561027f57600080fd5b600061028d86828701610216565b935050602061029e86828701610216565b925050604084013567ffffffffffffffff8111156102bb57600080fd5b6102c78682870161022b565b9150509250925092565b6102da816103d5565b82525050565b60006102eb826103bf565b6102f581856103ca565b9350610305818560208601610411565b80840191505092915050565b61031a81610407565b82525050565b600061032c82846102e0565b915081905092915050565b600060608201905061034c60008301866102d1565b61035960208301856102d1565b6103666040830184610311565b949350505050565b6000610378610389565b90506103848282610444565b919050565b6000604051905090565b600067ffffffffffffffff8211156103ae576103ad610475565b5b602082029050602081019050919050565b600081519050919050565b600081905092915050565b60006103e0826103e7565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561042f578082015181840152602081019050610414565b8381111561043e576000848401525b50505050565b61044d826104a4565b810181811067ffffffffffffffff8211171561046c5761046b610475565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6104be816103d5565b81146104c957600080fd5b50565b6104d581610407565b81146104e057600080fd5b5056fea2646970667358221220c44e1a8240f1040ba8a6cfd948d655fadc9c78ae7e46a0453f4ad342f43f790e64736f6c63430008040033