0x60806040523480156200001157600080fd5b50604051620012f2380380620012f2833981810160405260808110156200003757600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200006b57600080fd5b9083019060208201858111156200008157600080fd5b82516401000000008111828201881017156200009c57600080fd5b82525081516020918201929091019080838360005b83811015620000cb578181015183820152602001620000b1565b50505050905090810190601f168015620000f95780820380516001836020036101000a031916815260200191505b506040525050506001600160a01b038416158015906200012157506001600160a01b03831615155b62000173576040805162461bcd60e51b815260206004820152601660248201527f54696d654c6f636b3a207a65726f206164647265737300000000000000000000604482015290519081900360640190fd5b60008211620001c9576040805162461bcd60e51b815260206004820152601f60248201527f54696d654c6f636b3a2066697865645175616e74697479206973207a65726f00604482015290519081900360640190fd5b600580546001600160a01b038087166001600160a01b031992831617909255600080549286169290911691909117905560018290554260025580516200021790600690602084019062000222565b5050505050620002be565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026557805160ff191683800117855562000295565b8280016001018555821562000295579182015b828111156200029557825182559160200191906001019062000278565b50620002a3929150620002a7565b5090565b5b80821115620002a35760008155600101620002a8565b61102480620002ce6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636190c9d51161008c578063dff1624111610066578063dff162411461021c578063eb356d6314610224578063f24c327b14610257578063fc0c546a1461025f576100ea565b80636190c9d51461020457806378e979251461020c578063b4d1d79514610214576100ea565b80631c31f710116100c85780631c31f7101461011957806338af3eed1461014e5780633ccfd60b1461017f5780635da2ebae14610187576100ea565b806303e8fcb5146100ef57806311ae9ed21461010957806312065fe014610111575b600080fd5b6100f7610267565b60408051918252519081900360200190f35b6100f761026d565b6100f761038c565b61014c6004803603602081101561012f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661042f565b005b6101566104fc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61014c610518565b61018f6106df565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c95781810151838201526020016101b1565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100f761078b565b6100f7610791565b6100f7610797565b6100f761079e565b61014c6004803603602081101561023a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107a4565b6100f76108f1565b6101566108f6565b60015481565b6000601460035410158061028357506002544211155b1561029057506000610389565b60006102b462278d006102ae6002544261091290919063ffffffff16565b9061095d565b90506014811061036457600054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561032f57600080fd5b505afa158015610343573d6000803e3d6000fd5b505050506040513d602081101561035957600080fd5b505191506103899050565b61038560015461037f6003548461091290919063ffffffff16565b9061099f565b9150505b90565b60008054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156103fe57600080fd5b505afa158015610412573d6000803e3d6000fd5b505050506040513d602081101561042857600080fd5b5051905090565b60055473ffffffffffffffffffffffffffffffffffffffff1633146104b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742062656e65666963696172790000000000000000000000000000000000604482015290519081900360640190fd5b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b600061052261026d565b60055490915073ffffffffffffffffffffffffffffffffffffffff1633146105ab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742062656e65666963696172790000000000000000000000000000000000604482015290519081900360640190fd5b6000811161061a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f54696d654c6f636b3a206e6f2072657761726400000000000000000000000000604482015290519081900360640190fd5b600061063862278d006102ae6002544261091290919063ffffffff16565b90506014811015610649578061064c565b60145b60035560045461065c9083610a12565b6004556005546000546106899173ffffffffffffffffffffffffffffffffffffffff918216911684610a86565b60055460408051848152905173ffffffffffffffffffffffffffffffffffffffff9092169133917f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb919081900360200190a35050565b6006805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156107835780601f1061075857610100808354040283529160200191610783565b820191906000526020600020905b81548152906001019060200180831161076657829003601f168201915b505050505081565b60035481565b60025481565b62278d0081565b60045481565b60005473ffffffffffffffffffffffffffffffffffffffff8281169116141561082e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6b656e2063616e6e6f74206265204b534600000000000000000000000000604482015290519081900360640190fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561089757600080fd5b505afa1580156108ab573d6000803e3d6000fd5b505050506040513d60208110156108c157600080fd5b50516005549091506108ed9073ffffffffffffffffffffffffffffffffffffffff848116911683610a86565b5050565b601481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061095483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b18565b90505b92915050565b600061095483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610bce565b6000826109ae57506000610957565b828202828482816109bb57fe5b0414610954576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610fa46021913960400191505060405180910390fd5b60008282018381101561095457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610b13908490610c4d565b505050565b60008184841115610bc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b86578181015183820152602001610b6e565b50505050905090810190601f168015610bb35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50508183035b9392505050565b60008183610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315610b86578181015183820152602001610b6e565b506000838581610c4357fe5b0495945050505050565b6060610caf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610d259092919063ffffffff16565b805190915015610b1357808060200190516020811015610cce57600080fd5b5051610b13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610fc5602a913960400191505060405180910390fd5b6060610d348484600085610d3c565b949350505050565b606082471015610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610f7e6026913960400191505060405180910390fd5b610da085610ef7565b610e0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310610e7557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610e38565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610ed7576040519150601f19603f3d011682016040523d82523d6000602084013e610edc565b606091505b5091509150610eec828286610efd565b979650505050505050565b3b151590565b60608315610f0c575081610bc7565b825115610f1c5782518084602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152845160248401528451859391928392604401919085019080838360008315610b86578181015183820152602001610b6e56fe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220ce738943c1b4cfcaa0bfaacef0345933599e81fa0d66fea53f8b3b2f03cde14364736f6c634300060c003300000000000000000000000033810b996dc1eaa3b37fe729c53733679d7a20ba000000000000000000000000755d74d009f656ca1652cbdc135e3b6abfccc45500000000000000000000000000000000000000000000010f0cf064dd5920000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000018467574757265446576656c6f706d656e74507572706f73650000000000000000
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636190c9d51161008c578063dff1624111610066578063dff162411461021c578063eb356d6314610224578063f24c327b14610257578063fc0c546a1461025f576100ea565b80636190c9d51461020457806378e979251461020c578063b4d1d79514610214576100ea565b80631c31f710116100c85780631c31f7101461011957806338af3eed1461014e5780633ccfd60b1461017f5780635da2ebae14610187576100ea565b806303e8fcb5146100ef57806311ae9ed21461010957806312065fe014610111575b600080fd5b6100f7610267565b60408051918252519081900360200190f35b6100f761026d565b6100f761038c565b61014c6004803603602081101561012f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661042f565b005b6101566104fc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61014c610518565b61018f6106df565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c95781810151838201526020016101b1565b50505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100f761078b565b6100f7610791565b6100f7610797565b6100f761079e565b61014c6004803603602081101561023a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107a4565b6100f76108f1565b6101566108f6565b60015481565b6000601460035410158061028357506002544211155b1561029057506000610389565b60006102b462278d006102ae6002544261091290919063ffffffff16565b9061095d565b90506014811061036457600054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561032f57600080fd5b505afa158015610343573d6000803e3d6000fd5b505050506040513d602081101561035957600080fd5b505191506103899050565b61038560015461037f6003548461091290919063ffffffff16565b9061099f565b9150505b90565b60008054604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156103fe57600080fd5b505afa158015610412573d6000803e3d6000fd5b505050506040513d602081101561042857600080fd5b5051905090565b60055473ffffffffffffffffffffffffffffffffffffffff1633146104b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742062656e65666963696172790000000000000000000000000000000000604482015290519081900360640190fd5b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b600061052261026d565b60055490915073ffffffffffffffffffffffffffffffffffffffff1633146105ab57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742062656e65666963696172790000000000000000000000000000000000604482015290519081900360640190fd5b6000811161061a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f54696d654c6f636b3a206e6f2072657761726400000000000000000000000000604482015290519081900360640190fd5b600061063862278d006102ae6002544261091290919063ffffffff16565b90506014811015610649578061064c565b60145b60035560045461065c9083610a12565b6004556005546000546106899173ffffffffffffffffffffffffffffffffffffffff918216911684610a86565b60055460408051848152905173ffffffffffffffffffffffffffffffffffffffff9092169133917f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb919081900360200190a35050565b6006805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f810184900484028201840190925281815292918301828280156107835780601f1061075857610100808354040283529160200191610783565b820191906000526020600020905b81548152906001019060200180831161076657829003601f168201915b505050505081565b60035481565b60025481565b62278d0081565b60045481565b60005473ffffffffffffffffffffffffffffffffffffffff8281169116141561082e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f546f6b656e2063616e6e6f74206265204b534600000000000000000000000000604482015290519081900360640190fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561089757600080fd5b505afa1580156108ab573d6000803e3d6000fd5b505050506040513d60208110156108c157600080fd5b50516005549091506108ed9073ffffffffffffffffffffffffffffffffffffffff848116911683610a86565b5050565b601481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600061095483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b18565b90505b92915050565b600061095483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610bce565b6000826109ae57506000610957565b828202828482816109bb57fe5b0414610954576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610fa46021913960400191505060405180910390fd5b60008282018381101561095457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610b13908490610c4d565b505050565b60008184841115610bc1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b86578181015183820152602001610b6e565b50505050905090810190601f168015610bb35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50508183035b9392505050565b60008183610c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315610b86578181015183820152602001610b6e565b506000838581610c4357fe5b0495945050505050565b6060610caf826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610d259092919063ffffffff16565b805190915015610b1357808060200190516020811015610cce57600080fd5b5051610b13576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610fc5602a913960400191505060405180910390fd5b6060610d348484600085610d3c565b949350505050565b606082471015610d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610f7e6026913960400191505060405180910390fd5b610da085610ef7565b610e0b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310610e7557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610e38565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610ed7576040519150601f19603f3d011682016040523d82523d6000602084013e610edc565b606091505b5091509150610eec828286610efd565b979650505050505050565b3b151590565b60608315610f0c575081610bc7565b825115610f1c5782518084602001fd5b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152845160248401528451859391928392604401919085019080838360008315610b86578181015183820152602001610b6e56fe416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220ce738943c1b4cfcaa0bfaacef0345933599e81fa0d66fea53f8b3b2f03cde14364736f6c634300060c0033