0x60806040526040518060400160405280600a81526020017f6f6e636861696e6d643000000000000000000000000000000000000000000000815250600290816100489190610305565b50348015610054575f80fd5b50604051611234380380611234833981810160405281019061007691906104f4565b335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600490816100c49190610305565b505061053b565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061014657607f821691505b60208210810361015957610158610102565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610180565b6101c58683610180565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102096102046101ff846101dd565b6101e6565b6101dd565b9050919050565b5f819050919050565b610222836101ef565b61023661022e82610210565b84845461018c565b825550505050565b5f90565b61024a61023e565b610255818484610219565b505050565b5b818110156102785761026d5f82610242565b60018101905061025b565b5050565b601f8211156102bd5761028e8161015f565b61029784610171565b810160208510156102a6578190505b6102ba6102b285610171565b83018261025a565b50505b505050565b5f82821c905092915050565b5f6102dd5f19846008026102c2565b1980831691505092915050565b5f6102f583836102ce565b9150826002028217905092915050565b61030e826100cb565b67ffffffffffffffff811115610327576103266100d5565b5b610331825461012f565b61033c82828561027c565b5f60209050601f83116001811461036d575f841561035b578287015190505b61036585826102ea565b8655506103cc565b601f19841661037b8661015f565b5f5b828110156103a25784890151825560018201915060208501945060208101905061037d565b868310156103bf57848901516103bb601f8916826102ce565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b610406826103ed565b810181811067ffffffffffffffff82111715610425576104246100d5565b5b80604052505050565b5f6104376103d4565b905061044382826103fd565b919050565b5f67ffffffffffffffff821115610462576104616100d5565b5b61046b826103ed565b9050602081019050919050565b8281835e5f83830152505050565b5f61049861049384610448565b61042e565b9050828152602081018484840111156104b4576104b36103e9565b5b6104bf848285610478565b509392505050565b5f82601f8301126104db576104da6103e5565b5b81516104eb848260208601610486565b91505092915050565b5f60208284031215610509576105086103dd565b5b5f82015167ffffffffffffffff811115610526576105256103e1565b5b610532848285016104c7565b91505092915050565b610cec806105485f395ff3fe608060405234801561000f575f80fd5b506004361061009c575f3560e01c80635aad6a35116100645780635aad6a3514610144578063880cdc31146101625780638da5cb5b1461017e578063a63228191461019c578063b3b4208c146101b85761009c565b8063094cd5ee146100a05780633f8416fb146100bc57806340731c24146100d85780634a79d50c1461010857806351df125314610126575b5f80fd5b6100ba60048036038101906100b59190610680565b6101d6565b005b6100d660048036038101906100d19190610705565b610267565b005b6100f260048036038101906100ed9190610680565b610300565b6040516100ff91906107a0565b60405180910390f35b6101106103ac565b60405161011d91906107a0565b60405180910390f35b61012e610438565b60405161013b91906107cf565b60405180910390f35b61014c610444565b60405161015991906107a0565b60405180910390f35b61017c60048036038101906101779190610705565b6104d0565b005b610186610568565b60405161019391906107f7565b60405180910390f35b6101b660048036038101906101b19190610871565b61058b565b005b6101c0610620565b6040516101cd91906107f7565b60405180910390f35b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461022c575f80fd5b60405180602001604052805f8152506001828154811061024f5761024e6108bc565b5b905f5260205f200190816102639190610b10565b5050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102bd575f80fd5b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060018281548110610316576103156108bc565b5b905f5260205f2001805461032990610943565b80601f016020809104026020016040519081016040528092919081815260200182805461035590610943565b80156103a05780601f10610377576101008083540402835291602001916103a0565b820191905f5260205f20905b81548152906001019060200180831161038357829003601f168201915b50505050509050919050565b600480546103b990610943565b80601f01602080910402602001604051908101604052809291908181526020018280546103e590610943565b80156104305780601f1061040757610100808354040283529160200191610430565b820191905f5260205f20905b81548152906001019060200180831161041357829003601f168201915b505050505081565b5f600180549050905090565b6002805461045190610943565b80601f016020809104026020016040519081016040528092919081815260200182805461047d90610943565b80156104c85780601f1061049f576101008083540402835291602001916104c8565b820191905f5260205f20905b8154815290600101906020018083116104ab57829003601f168201915b505050505081565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610526575f80fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105e1575f80fd5b6001828290918060018154018082558091505060019003905f5260205f20015f90919290919290919290919250918261061b929190610be9565b505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80fd5b5f80fd5b5f819050919050565b61065f8161064d565b8114610669575f80fd5b50565b5f8135905061067a81610656565b92915050565b5f6020828403121561069557610694610645565b5b5f6106a28482850161066c565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106d4826106ab565b9050919050565b6106e4816106ca565b81146106ee575f80fd5b50565b5f813590506106ff816106db565b92915050565b5f6020828403121561071a57610719610645565b5b5f610727848285016106f1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61077282610730565b61077c818561073a565b935061078c81856020860161074a565b61079581610758565b840191505092915050565b5f6020820190508181035f8301526107b88184610768565b905092915050565b6107c98161064d565b82525050565b5f6020820190506107e25f8301846107c0565b92915050565b6107f1816106ca565b82525050565b5f60208201905061080a5f8301846107e8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261083157610830610810565b5b8235905067ffffffffffffffff81111561084e5761084d610814565b5b60208301915083600182028301111561086a57610869610818565b5b9250929050565b5f806020838503121561088757610886610645565b5b5f83013567ffffffffffffffff8111156108a4576108a3610649565b5b6108b08582860161081c565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061095a57607f821691505b60208210810361096d5761096c610916565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610994565b6109d98683610994565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610a14610a0f610a0a8461064d565b6109f1565b61064d565b9050919050565b5f819050919050565b610a2d836109fa565b610a41610a3982610a1b565b8484546109a0565b825550505050565b5f90565b610a55610a49565b610a60818484610a24565b505050565b5b81811015610a8357610a785f82610a4d565b600181019050610a66565b5050565b601f821115610ac857610a9981610973565b610aa284610985565b81016020851015610ab1578190505b610ac5610abd85610985565b830182610a65565b50505b505050565b5f82821c905092915050565b5f610ae85f1984600802610acd565b1980831691505092915050565b5f610b008383610ad9565b9150826002028217905092915050565b610b1982610730565b67ffffffffffffffff811115610b3257610b316108e9565b5b610b3c8254610943565b610b47828285610a87565b5f60209050601f831160018114610b78575f8415610b66578287015190505b610b708582610af5565b865550610bd7565b601f198416610b8686610973565b5f5b82811015610bad57848901518255600182019150602085019450602081019050610b88565b86831015610bca5784890151610bc6601f891682610ad9565b8355505b6001600288020188555050505b505050505050565b5f82905092915050565b610bf38383610bdf565b67ffffffffffffffff811115610c0c57610c0b6108e9565b5b610c168254610943565b610c21828285610a87565b5f601f831160018114610c4e575f8415610c3c578287013590505b610c468582610af5565b865550610cad565b601f198416610c5c86610973565b5f5b82811015610c8357848901358255600182019150602085019450602081019050610c5e565b86831015610ca05784890135610c9c601f891682610ad9565b8355505b6001600288020188555050505b5050505050505056fea264697066735822122052f193cabafb68c3c4234a657c0beafcae44982e5b484873a160365b034ada5064736f6c634300081a00330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a7068696c7a20626c6f6700000000000000000000000000000000000000000000