0x60c06040523480156200001157600080fd5b5060405162001444380380620014448339810160408190526200003491620000d7565b6001600160601b0319606083811b821660a05282901b16608052620000606200005a3390565b62000068565b50506200010e565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b0381168114620000d257600080fd5b919050565b60008060408385031215620000ea578182fd5b620000f583620000ba565b91506200010560208401620000ba565b90509250929050565b60805160601c60a05160601c6112fc62000148600039600081816105220152610c3f0152600081816107540152610c0301526112fc6000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c80638da5cb5b116100b2578063b37217a411610081578063eed8e1ee11610066578063eed8e1ee14610260578063f2fde38b14610269578063fbe5d9171461027c57600080fd5b8063b37217a414610244578063ddca3f431461025757600080fd5b80638da5cb5b146101f257806394985ddd146102105780639854471014610223578063a1c4f55a1461023657600080fd5b80634bf3057d116100ee5780634bf3057d1461018957806361728f39146101ce57806369fe0e2d146101d7578063715018a6146101ea57600080fd5b806306b091f9146101205780631aa46f59146101355780632a332b2a1461015157806342619f6614610164575b600080fd5b61013361012e3660046110cf565b610284565b005b61013e60045481565b6040519081526020015b60405180910390f35b61013361015f3660046110b5565b61032f565b6005546101749063ffffffff1681565b60405163ffffffff9091168152602001610148565b6002546101a99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610148565b61013e60035481565b6101336101e5366004611118565b6103f7565b61013361047d565b60015473ffffffffffffffffffffffffffffffffffffffff166101a9565b61013361021e366004611130565b61050a565b610133610231366004611118565b6105b3565b60055463ffffffff16610174565b610133610252366004611118565b610639565b61013e60065481565b61013e60075481565b6101336102773660046110b5565b610860565b60075461013e565b60015473ffffffffffffffffffffffffffffffffffffffff16331461030a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61032b73ffffffffffffffffffffffffffffffffffffffff83163383610990565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146103b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610301565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff163314610478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610301565b600655565b60015473ffffffffffffffffffffffffffffffffffffffff1633146104fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610301565b6105086000610a22565b565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146105a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c006044820152606401610301565b61032b8282610a99565b60015473ffffffffffffffffffffffffffffffffffffffff163314610634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610301565b600355565b60025473ffffffffffffffffffffffffffffffffffffffff1633146106ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4f6e6c792050616e63616b65537761704c6f74746572790000000000000000006044820152606401610301565b600354610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d75737420686176652076616c6964206b6579206861736800000000000000006044820152606401610301565b6006546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a082319060240160206040518083038186803b1580156107ab57600080fd5b505afa1580156107bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e39190611151565b101561084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4e6f7420656e6f756768204c494e4b20746f6b656e73000000000000000000006044820152606401610301565b61085a60035460065483610bff565b60045550565b60015473ffffffffffffffffffffffffffffffffffffffff1633146108e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610301565b73ffffffffffffffffffffffffffffffffffffffff8116610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610301565b61098d81610a22565b50565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610a1d908490610d96565b505050565b6001805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8160045414610b04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f57726f6e672072657175657374496400000000000000000000000000000000006044820152606401610301565b610b11620f42408261128d565b610b1e90620f4240611220565b600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff92909216919091179055600254604080517f80a06160000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff909216916380a06160916004808201926020929091908290030181600087803b158015610bc057600080fd5b505af1158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf89190611151565b6007555050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634000aea07f0000000000000000000000000000000000000000000000000000000000000000858786604051602001610c7b929190918252602082015260400190565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401610ca8939291906111cf565b602060405180830381600087803b158015610cc257600080fd5b505af1158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa91906110f8565b5060008481526020818152604080832054815180840189905280830187905230606082015260808082018390528351808303909101815260a090910190925281519183019190912087845292909152610d54906001611220565b600086815260208181526040918290209290925580518083018890528082019390935280518084038201815260609093019052815191012090505b9392505050565b6000610df8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610ea29092919063ffffffff16565b805190915015610a1d5780806020019051810190610e1691906110f8565b610a1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610301565b6060610eb18484600085610eb9565b949350505050565b606082471015610f4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610301565b843b610fb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610301565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610fdc91906111b3565b60006040518083038185875af1925050503d8060008114611019576040519150601f19603f3d011682016040523d82523d6000602084013e61101e565b606091505b509150915061102e828286611039565b979650505050505050565b60608315611048575081610d8f565b8251156110585782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610301919061120d565b803573ffffffffffffffffffffffffffffffffffffffff811681146110b057600080fd5b919050565b6000602082840312156110c6578081fd5b610d8f8261108c565b600080604083850312156110e1578081fd5b6110ea8361108c565b946020939093013593505050565b600060208284031215611109578081fd5b81518015158114610d8f578182fd5b600060208284031215611129578081fd5b5035919050565b60008060408385031215611142578182fd5b50508035926020909101359150565b600060208284031215611162578081fd5b5051919050565b6000815180845261118181602086016020860161125d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082516111c581846020870161125d565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006112046060830184611169565b95945050505050565b602081526000610d8f6020830184611169565b60008219821115611258577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b500190565b60005b83811015611278578181015183820152602001611260565b83811115611287576000848401525b50505050565b6000826112c1577f4e487b710000000000000000000000000000000000000000000000000000000081526012600452602481fd5b50069056fea2646970667358221220f88b5bb7b32287da21002035fc725fd263e9821a27f54280fef816e5a1ae4dad64736f6c63430008040033000000000000000000000000f0d54349addcf704f77ae15b96510dea15cb7952000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca