0x60a060405234801561000f575f80fd5b50604051610e1a380380610e1a83398181016040528101906100319190610161565b815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080608081815250503360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061019f565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ec826100c3565b9050919050565b5f6100fd826100e2565b9050919050565b61010d816100f3565b8114610117575f80fd5b50565b5f8151905061012881610104565b92915050565b5f819050919050565b6101408161012e565b811461014a575f80fd5b50565b5f8151905061015b81610137565b92915050565b5f8060408385031215610177576101766100bf565b5b5f6101848582860161011a565b92505060206101958582860161014d565b9150509250929050565b608051610c5c6101be5f395f81816102d901526103f80152610c5c5ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c806308003f78146100645780632eb4a7ab1461006e5780633d13f8741461008c57806373b2e80e146100a85780638da5cb5b146100d8578063fc0c546a146100f6575b5f80fd5b61006c610114565b005b6100766102d7565b60405161008391906106c4565b60405180910390f35b6100a660048036038101906100a191906107d3565b6102fb565b005b6100c260048036038101906100bd9190610844565b6105a5565b6040516100cf9190610889565b60405180910390f35b6100e06105c2565b6040516100ed91906108b1565b60405180910390f35b6100fe6105e7565b60405161010b9190610925565b60405180910390f35b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019a90610998565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60015f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161023891906108b1565b602060405180830381865afa158015610253573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027791906109ca565b6040518363ffffffff1660e01b8152600401610294929190610a04565b6020604051808303815f875af11580156102b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d49190610a55565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037c90610aca565b60405180910390fd5b5f8484604051602001610399929190610b4d565b6040516020818303038152906040528051906020012090505f61041d8484808060200260200160405190810160405280939291908181526020018383602002808284375f81840152601f19601f820116905080830192505050505050507f00000000000000000000000000000000000000000000000000000000000000008461060a565b90508061045f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045690610bc2565b60405180910390fd5b600160025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87876040518363ffffffff1660e01b815260040161050e929190610a04565b6020604051808303815f875af115801561052a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054e9190610a55565b508573ffffffffffffffffffffffffffffffffffffffff167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4866040516105959190610be0565b60405180910390a2505050505050565b6002602052805f5260405f205f915054906101000a900460ff1681565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f826106168584610620565b1490509392505050565b5f808290505f5b8451811015610663576106548286838151811061064757610646610bf9565b5b602002602001015161066e565b91508080600101915050610627565b508091505092915050565b5f818310610685576106808284610698565b610690565b61068f8383610698565b5b905092915050565b5f825f528160205260405f20905092915050565b5f819050919050565b6106be816106ac565b82525050565b5f6020820190506106d75f8301846106b5565b92915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61070e826106e5565b9050919050565b61071e81610704565b8114610728575f80fd5b50565b5f8135905061073981610715565b92915050565b5f819050919050565b6107518161073f565b811461075b575f80fd5b50565b5f8135905061076c81610748565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261079357610792610772565b5b8235905067ffffffffffffffff8111156107b0576107af610776565b5b6020830191508360208202830111156107cc576107cb61077a565b5b9250929050565b5f805f80606085870312156107eb576107ea6106dd565b5b5f6107f88782880161072b565b94505060206108098782880161075e565b935050604085013567ffffffffffffffff81111561082a576108296106e1565b5b6108368782880161077e565b925092505092959194509250565b5f60208284031215610859576108586106dd565b5b5f6108668482850161072b565b91505092915050565b5f8115159050919050565b6108838161086f565b82525050565b5f60208201905061089c5f83018461087a565b92915050565b6108ab81610704565b82525050565b5f6020820190506108c45f8301846108a2565b92915050565b5f819050919050565b5f6108ed6108e86108e3846106e5565b6108ca565b6106e5565b9050919050565b5f6108fe826108d3565b9050919050565b5f61090f826108f4565b9050919050565b61091f81610905565b82525050565b5f6020820190506109385f830184610916565b92915050565b5f82825260208201905092915050565b7f4f6e6c79206f776e65722063616e206275726e20746f6b656e730000000000005f82015250565b5f610982601a8361093e565b915061098d8261094e565b602082019050919050565b5f6020820190508181035f8301526109af81610976565b9050919050565b5f815190506109c481610748565b92915050565b5f602082840312156109df576109de6106dd565b5b5f6109ec848285016109b6565b91505092915050565b6109fe8161073f565b82525050565b5f604082019050610a175f8301856108a2565b610a2460208301846109f5565b9392505050565b610a348161086f565b8114610a3e575f80fd5b50565b5f81519050610a4f81610a2b565b92915050565b5f60208284031215610a6a57610a696106dd565b5b5f610a7784828501610a41565b91505092915050565b7f416c726561647920636c61696d656400000000000000000000000000000000005f82015250565b5f610ab4600f8361093e565b9150610abf82610a80565b602082019050919050565b5f6020820190508181035f830152610ae181610aa8565b9050919050565b5f8160601b9050919050565b5f610afe82610ae8565b9050919050565b5f610b0f82610af4565b9050919050565b610b27610b2282610704565b610b05565b82525050565b5f819050919050565b610b47610b428261073f565b610b2d565b82525050565b5f610b588285610b16565b601482019150610b688284610b36565b6020820191508190509392505050565b7f4e6f7420696e206d65726b6c65000000000000000000000000000000000000005f82015250565b5f610bac600d8361093e565b9150610bb782610b78565b602082019050919050565b5f6020820190508181035f830152610bd981610ba0565b9050919050565b5f602082019050610bf35f8301846109f5565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212203e90e1f37ae1b05b1d7f148613453a56236e2cce62a644047387a0e36d7d6ced64736f6c634300081a00330000000000000000000000004e198da3efc21ffad5c2d1501a439354157b3269eae51523d19111a900d5fa912dde3f32b3f75b92df567251875c84c012f2585d