0x6080604052348015600e575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e8d8061005b5f395ff3fe608060405260043610610037575f3560e01c80638da5cb5b14610040578063b4184d6b1461006a578063e9cbafb0146100865761003e565b3661003e57005b005b34801561004b575f80fd5b506100546100ae565b60405161006191906105ee565b60405180910390f35b610084600480360381019061007f91906107ec565b6100d1565b005b348015610091575f80fd5b506100ac60048036038101906100a7919061090f565b61020b565b005b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018460ff1603610172578273ffffffffffffffffffffffffffffffffffffffff1663490e6cbc305f888989888860405160200161011294939291906109fe565b6040516020818303038152906040526040518563ffffffff1660e01b81526004016101409493929190610aba565b5f604051808303815f87803b158015610157575f80fd5b505af1158015610169573d5f803e3d5ffd5b50505050610204565b8273ffffffffffffffffffffffffffffffffffffffff1663490e6cbc30875f898988886040516020016101a894939291906109fe565b6040516020818303038152906040526040518563ffffffff1660e01b81526004016101d69493929190610b04565b5f604051808303815f87803b1580156101ed575f80fd5b505af11580156101ff573d5f803e3d5ffd5b505050505b5050505050565b5f805f80858581019061021e9190610b89565b935093509350935060018360ff16036102d6578173ffffffffffffffffffffffffffffffffffffffff1663095ea7b37368b3465833fb72a70ecdf485e0e4c7bd8665fc45898762ffffff166102739190610c36565b6040518363ffffffff1660e01b8152600401610290929190610c78565b6020604051808303815f875af11580156102ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d09190610cd4565b50610377565b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b37368b3465833fb72a70ecdf485e0e4c7bd8665fc458a8762ffffff166103189190610c36565b6040518363ffffffff1660e01b8152600401610335929190610c78565b6020604051808303815f875af1158015610351573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103759190610cd4565b505b5f60405180608001604052808381526020013073ffffffffffffffffffffffffffffffffffffffff1681526020018662ffffff1681526020015f81525090505f7368b3465833fb72a70ecdf485e0e4c7bd8665fc4573ffffffffffffffffffffffffffffffffffffffff1663b858183f5f846040518363ffffffff1660e01b81526004016104059190610dc5565b60206040518083038185885af1158015610421573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906104469190610df9565b90505f60018660ff160361046c57898762ffffff166104659190610c36565b9050610480565b8a8762ffffff1661047d9190610c36565b90505b8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016104bb929190610c78565b6020604051808303815f875af11580156104d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb9190610cd4565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683856105449190610e24565b6040518363ffffffff1660e01b8152600401610561929190610c78565b6020604051808303815f875af115801561057d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a19190610cd4565b505050505050505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105d8826105af565b9050919050565b6105e8816105ce565b82525050565b5f6020820190506106015f8301846105df565b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f62ffffff82169050919050565b61062f81610618565b8114610639575f80fd5b50565b5f8135905061064a81610626565b92915050565b5f60ff82169050919050565b61066581610650565b811461066f575f80fd5b50565b5f813590506106808161065c565b92915050565b61068f816105ce565b8114610699575f80fd5b50565b5f813590506106aa81610686565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6106fe826106b8565b810181811067ffffffffffffffff8211171561071d5761071c6106c8565b5b80604052505050565b5f61072f610607565b905061073b82826106f5565b919050565b5f67ffffffffffffffff82111561075a576107596106c8565b5b610763826106b8565b9050602081019050919050565b828183375f83830152505050565b5f61079061078b84610740565b610726565b9050828152602081018484840111156107ac576107ab6106b4565b5b6107b7848285610770565b509392505050565b5f82601f8301126107d3576107d26106b0565b5b81356107e384826020860161077e565b91505092915050565b5f805f805f60a0868803121561080557610804610610565b5b5f6108128882890161063c565b955050602061082388828901610672565b94505060406108348882890161069c565b93505060606108458882890161069c565b925050608086013567ffffffffffffffff81111561086657610865610614565b5b610872888289016107bf565b9150509295509295909350565b5f819050919050565b6108918161087f565b811461089b575f80fd5b50565b5f813590506108ac81610888565b92915050565b5f80fd5b5f80fd5b5f8083601f8401126108cf576108ce6106b0565b5b8235905067ffffffffffffffff8111156108ec576108eb6108b2565b5b602083019150836001820283011115610908576109076108b6565b5b9250929050565b5f805f806060858703121561092757610926610610565b5b5f6109348782880161089e565b94505060206109458782880161089e565b935050604085013567ffffffffffffffff81111561096657610965610614565b5b610972878288016108ba565b925092505092959194509250565b61098981610618565b82525050565b61099881610650565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6109d08261099e565b6109da81856109a8565b93506109ea8185602086016109b8565b6109f3816106b8565b840191505092915050565b5f608082019050610a115f830187610980565b610a1e602083018661098f565b610a2b60408301856105df565b8181036060830152610a3d81846109c6565b905095945050505050565b5f819050919050565b5f819050919050565b5f610a74610a6f610a6a84610a48565b610a51565b61087f565b9050919050565b610a8481610a5a565b82525050565b5f610aa4610a9f610a9a84610618565b610a51565b61087f565b9050919050565b610ab481610a8a565b82525050565b5f608082019050610acd5f8301876105df565b610ada6020830186610a7b565b610ae76040830185610aab565b8181036060830152610af981846109c6565b905095945050505050565b5f608082019050610b175f8301876105df565b610b246020830186610aab565b610b316040830185610a7b565b8181036060830152610b4381846109c6565b905095945050505050565b5f610b58826105af565b9050919050565b610b6881610b4e565b8114610b72575f80fd5b50565b5f81359050610b8381610b5f565b92915050565b5f805f8060808587031215610ba157610ba0610610565b5b5f610bae8782880161063c565b9450506020610bbf87828801610672565b9350506040610bd087828801610b75565b925050606085013567ffffffffffffffff811115610bf157610bf0610614565b5b610bfd878288016107bf565b91505092959194509250565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610c408261087f565b9150610c4b8361087f565b9250828201905080821115610c6357610c62610c09565b5b92915050565b610c728161087f565b82525050565b5f604082019050610c8b5f8301856105df565b610c986020830184610c69565b9392505050565b5f8115159050919050565b610cb381610c9f565b8114610cbd575f80fd5b50565b5f81519050610cce81610caa565b92915050565b5f60208284031215610ce957610ce8610610565b5b5f610cf684828501610cc0565b91505092915050565b5f82825260208201905092915050565b5f610d198261099e565b610d238185610cff565b9350610d338185602086016109b8565b610d3c816106b8565b840191505092915050565b610d50816105ce565b82525050565b610d5f8161087f565b82525050565b5f608083015f8301518482035f860152610d7f8282610d0f565b9150506020830151610d946020860182610d47565b506040830151610da76040860182610d56565b506060830151610dba6060860182610d56565b508091505092915050565b5f6020820190508181035f830152610ddd8184610d65565b905092915050565b5f81519050610df381610888565b92915050565b5f60208284031215610e0e57610e0d610610565b5b5f610e1b84828501610de5565b91505092915050565b5f610e2e8261087f565b9150610e398361087f565b9250828203905081811115610e5157610e50610c09565b5b9291505056fea2646970667358221220165e37aaf5b5f9ad29bb7f81305431d979019747248244c13a0827e0079df69d64736f6c634300081a0033