0x60c060405234801561001057600080fd5b50604051610c11380380610c1183398101604081905261002f91610044565b6001600160a01b03166080523360a052610074565b60006020828403121561005657600080fd5b81516001600160a01b038116811461006d57600080fd5b9392505050565b60805160a051610b6b6100a660003960008181609901526103fc01526000818161018401526101db0152610b6b6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630965d04b146100465780631944799f1461005b578063e53b20171461006e575b600080fd5b61005961005436600461063c565b610081565b005b6100596100693660046106a0565b6101c3565b61005961007c366004610723565b6103e4565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100f0576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008282604051602401610105929190610747565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0965d04b00000000000000000000000000000000000000000000000000000000178152905182519293507f0000000000000000000000000000000000000000000000000000000000000000929091600091839183865af16101bc573d6000823e3d81fd5b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610232576040517f15b3197600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610359576000806102478385018561093d565b9150915060005b82518110156103555760008061027a85848151811061026f5761026f6109f6565b602002602001015190565b73ffffffffffffffffffffffffffffffffffffffff168484815181106102a2576102a26109f6565b60200260200101516040516102b79190610a49565b6000604051808303816000865af19150503d80600081146102f4576040519150601f19603f3d011682016040523d82523d6000602084013e6102f9565b606091505b5091509150816103425782816040517ffac829a0000000000000000000000000000000000000000000000000000000008152600401610339929190610a65565b60405180910390fd5b50508061034e90610abd565b905061024e565b5050505b836040840460005b818110156103da576103c83384848481811061037f5761037f6109f6565b905060400201602001356103ab86868681811061039e5761039e6109f6565b9050604002016000013590565b73ffffffffffffffffffffffffffffffffffffffff169190610538565b806103d281610abd565b915050610361565b5050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c6572206973206e6f74206f776e6572000000000000000000000000006044820152606401610339565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015261053590339073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381865afa1580156104f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105179190610b1c565b73ffffffffffffffffffffffffffffffffffffffff84169190610538565b50565b610564837fa9059cbb00000000000000000000000000000000000000000000000000000000848461059f565b61059a576040517ffb7f507900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60006040518481528360048201528260248201526020600060448360008a5af191505080156105eb573d80156105e157600160005114601f3d111691506105e9565b6000863b1191505b505b949350505050565b60008083601f84011261060557600080fd5b50813567ffffffffffffffff81111561061d57600080fd5b60208301915083602082850101111561063557600080fd5b9250929050565b6000806020838503121561064f57600080fd5b823567ffffffffffffffff81111561066657600080fd5b610672858286016105f3565b90969095509350505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461053557600080fd5b6000806000806000606086880312156106b857600080fd5b85356106c38161067e565b9450602086013567ffffffffffffffff808211156106e057600080fd5b6106ec89838a016105f3565b9096509450604088013591508082111561070557600080fd5b50610712888289016105f3565b969995985093965092949392505050565b60006020828403121561073557600080fd5b81356107408161067e565b9392505050565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561080a5761080a610794565b604052919050565b600067ffffffffffffffff82111561082c5761082c610794565b5060051b60200190565b6000601f838184011261084857600080fd5b8235602061085d61085883610812565b6107c3565b82815260059290921b8501810191818101908784111561087c57600080fd5b8287015b8481101561093157803567ffffffffffffffff808211156108a15760008081fd5b818a0191508a603f8301126108b65760008081fd5b858201356040828211156108cc576108cc610794565b6108fb887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08c850116016107c3565b92508183528c818386010111156109125760008081fd5b8181850189850137506000908201870152845250918301918301610880565b50979650505050505050565b6000806040838503121561095057600080fd5b823567ffffffffffffffff8082111561096857600080fd5b818501915085601f83011261097c57600080fd5b8135602061098c61085883610812565b82815260059290921b840181019181810190898411156109ab57600080fd5b948201945b838610156109c9578535825294820194908201906109b0565b965050860135925050808211156109df57600080fd5b506109ec85828601610836565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60005b83811015610a40578181015183820152602001610a28565b50506000910152565b60008251610a5b818460208701610a25565b9190910192915050565b8281526040602082015260008251806040840152610a8a816060850160208701610a25565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610b15577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b600060208284031215610b2e57600080fd5b505191905056fea2646970667358221220a93e3fd25d9d8d666d7548389458b3ba15186be92454b68d3a73ad0d535a85b564736f6c63430008110033000000000000000000000000a88800cd213da5ae406ce248380802bd53b47647