[ { "constant": true, "inputs": [ { "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "mintingFinished", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "transferAndCall", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "from", "type": "address" }, { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceOperator", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" } ], "name": "removeMinter", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "approveAndCall", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "cap", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" } ], "name": "transferAndCall", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "mint", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "transferEnabled", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "account", "type": "address" } ], "name": "isOperator", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" }, { "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "finishMinting", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "tokenAddress", "type": "address" }, { "name": "tokenAmount", "type": "uint256" } ], "name": "recoverERC20", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "isOwner", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" } ], "name": "addMinter", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceMinter", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" } ], "name": "addOperator", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "account", "type": "address" } ], "name": "isMinter", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" } ], "name": "removeOperator", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "builtOn", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "from", "type": "address" }, { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" } ], "name": "transferFromAndCall", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "spender", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" } ], "name": "approveAndCall", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "from", "type": "address" }, { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "transferFromAndCall", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "owner", "type": "address" }, { "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "enableTransfer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "decimals", "type": "uint8" }, { "name": "cap", "type": "uint256" }, { "name": "initialSupply", "type": "uint256" }, { "name": "transferEnabled", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [], "name": "MintFinished", "type": "event" }, { "anonymous": false, "inputs": [], "name": "TransferEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "OperatorAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "OperatorRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "MinterRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "owner", "type": "address" }, { "indexed": true, "name": "spender", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" } ]
6009805461ffff60a01b1916905560e0604052602f6080818152906200292e60a03980516200003791600b916020909101906200093f565b503480156200004557600080fd5b506040516200295d3803806200295d833981810160405260c08110156200006b57600080fd5b8101908080516401000000008111156200008457600080fd5b820160208101848111156200009857600080fd5b8151640100000000811182820187101715620000b357600080fd5b50509291906020018051640100000000811115620000d057600080fd5b82016020810184811115620000e457600080fd5b8151640100000000811182820187101715620000ff57600080fd5b5050602080830151604084015160608501516080909501518851949750919550939290918791879187918791879186918691869186918691839187918791879162000150916000918601906200093f565b508151620001669060019060208501906200093f565b506002805460ff191660ff92909216919091179055506200018990503362000359565b60008111620001f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f45524332304361707065643a2063617020697320300000000000000000000000604482015290519081900360640190fd5b60075562000210336001600160e01b03620003ab16565b600980546001600160a01b0319163317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a380156200028a576200028a6200027a6001600160e01b03620003fd16565b826001600160e01b036200040d16565b50620002c693507f01ffc9a7000000000000000000000000000000000000000000000000000000009250506001600160e01b03620004c5169050565b620002fa7f4bbee2df000000000000000000000000000000000000000000000000000000006001600160e01b03620004c516565b6200032e7ffb9ec8ce000000000000000000000000000000000000000000000000000000006001600160e01b03620004c516565b505050505080156200034d576200034d6001600160e01b036200059416565b505050505050620009e1565b620003748160066200066360201b62001c0b1790919060201c565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b620003c68160086200066360201b62001c0b1790919060201c565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6009546001600160a01b03165b90565b6007546200043c82620004286001600160e01b036200070a16565b6200071060201b620013be1790919060201c565b1115620004aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b620004c182826200078c60201b62001c8c1760201c565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156200055757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152600a60205260409020805460ff19166001179055565b620005a76001600160e01b03620008ab16565b6200061357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6009805460ff60a81b191675010000000000000000000000000000000000000000001790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b6200067882826001600160e01b03620008bc16565b15620006e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60055490565b6000828201838110156200078557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b0382166200080257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6200081e816005546200071060201b620013be1790919060201c565b6005556001600160a01b03821660009081526003602090815260409091205462000853918390620013be62000710821b17901c565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6009546001600160a01b0316331490565b60006001600160a01b0382166200091f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806200290c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200098257805160ff1916838001178555620009b2565b82800160010185558215620009b2579182015b82811115620009b257825182559160200191906001019062000995565b50620009c0929150620009c4565b5090565b6200040a91905b80821115620009c05760008155600101620009cb565b611f1b80620009f16000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c806379cc67901161013b578063a9059cbb116100b8578063cae9ca511161007c578063cae9ca511461081d578063d8fbe994146108d8578063dd62ed3e1461090e578063f1b50c1d1461093c578063f2fde38b1461094457610248565b8063a9059cbb146106d7578063aa271e1a14610703578063ac8a584a14610729578063b60b70841461074f578063c1d34b891461075757610248565b806395d89b41116100ff57806395d89b411461064f578063983b2d5614610657578063986502751461067d5780639870d7fe14610685578063a457c2d7146106ab57610248565b806379cc6790146105c35780637d64bcb4146105ef5780638980f11f146105f75780638da5cb5b146106235780638f32d59b1461064757610248565b80633177029f116101c957806342966c681161018d57806342966c681461054a5780634cd412d5146105675780636d70f7ae1461056f57806370a0823114610595578063715018a6146105bb57610248565b80633177029f14610403578063355274ea1461042f57806339509351146104375780634000aea01461046357806340c10f191461051e57610248565b806318160ddd1161021057806318160ddd1461036557806323b872dd1461037f5780632ab6f8db146103b55780633092afd5146103bf578063313ce567146103e557610248565b806301ffc9a71461024d57806305d2035b1461028857806306fdde0314610290578063095ea7b31461030d5780631296ee6214610339575b600080fd5b6102746004803603602081101561026357600080fd5b50356001600160e01b03191661096a565b604080519115158252519081900360200190f35b610274610989565b610298610999565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102d25781810151838201526020016102ba565b50505050905090810190601f1680156102ff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102746004803603604081101561032357600080fd5b506001600160a01b038135169060200135610a2f565b6102746004803603604081101561034f57600080fd5b506001600160a01b038135169060200135610a45565b61036d610a68565b60408051918252519081900360200190f35b6102746004803603606081101561039557600080fd5b506001600160a01b03813581169160208101359091169060400135610a6e565b6103bd610aac565b005b6103bd600480360360208110156103d557600080fd5b50356001600160a01b0316610ab7565b6103ed610b0a565b6040805160ff9092168252519081900360200190f35b6102746004803603604081101561041957600080fd5b506001600160a01b038135169060200135610b13565b61036d610b2f565b6102746004803603604081101561044d57600080fd5b506001600160a01b038135169060200135610b35565b6102746004803603606081101561047957600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156104a957600080fd5b8201836020820111156104bb57600080fd5b803590602001918460018302840111640100000000831117156104dd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b76945050505050565b6102746004803603604081101561053457600080fd5b506001600160a01b038135169060200135610baa565b6103bd6004803603602081101561056057600080fd5b5035610bce565b610274610bd8565b6102746004803603602081101561058557600080fd5b50356001600160a01b0316610be8565b61036d600480360360208110156105ab57600080fd5b50356001600160a01b0316610c01565b6103bd610c1c565b6103bd600480360360408110156105d957600080fd5b506001600160a01b038135169060200135610cad565b6103bd610cbb565b6103bd6004803603604081101561060d57600080fd5b506001600160a01b038135169060200135610d57565b61062b610e35565b604080516001600160a01b039092168252519081900360200190f35b610274610e44565b610298610e55565b6103bd6004803603602081101561066d57600080fd5b50356001600160a01b0316610eb5565b6103bd610f02565b6103bd6004803603602081101561069b57600080fd5b50356001600160a01b0316610f0b565b610274600480360360408110156106c157600080fd5b506001600160a01b038135169060200135610f26565b610274600480360360408110156106ed57600080fd5b506001600160a01b038135169060200135610f62565b6102746004803603602081101561071957600080fd5b50356001600160a01b0316610f9e565b6103bd6004803603602081101561073f57600080fd5b50356001600160a01b0316610fb1565b610298611001565b6102746004803603608081101561076d57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156107a857600080fd5b8201836020820111156107ba57600080fd5b803590602001918460018302840111640100000000831117156107dc57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061108f945050505050565b6102746004803603606081101561083357600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561086357600080fd5b82018360208201111561087557600080fd5b8035906020019184600183028401116401000000008311171561089757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506110c5945050505050565b610274600480360360608110156108ee57600080fd5b506001600160a01b038135811691602081013590911690604001356110dd565b61036d6004803603604081101561092457600080fd5b506001600160a01b03813581169160200135166110fa565b6103bd611125565b6103bd6004803603602081101561095a57600080fd5b50356001600160a01b03166111aa565b6001600160e01b0319166000908152600a602052604090205460ff1690565b600954600160a01b900460ff1690565b60008054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a255780601f106109fa57610100808354040283529160200191610a25565b820191906000526020600020905b815481529060010190602001808311610a0857829003601f168201915b5050505050905090565b6000610a3c3384846111fa565b50600192915050565b6000610a61838360405180602001604052806000815250610b76565b9392505050565b60055490565b6009546000908490600160a81b900460ff1680610a8f5750610a8f81610be8565b610a9857600080fd5b610aa38585856112e6565b95945050505050565b610ab53361132e565b565b610abf610e44565b610afe576040805162461bcd60e51b81526020600482018190526024820152600080516020611e3b833981519152604482015290519081900360640190fd5b610b0781611376565b50565b60025460ff1690565b6000610a618383604051806020016040528060008152506110c5565b60075490565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a3c918590610b71908663ffffffff6113be16565b6111fa565b6000610b828484610f62565b610b8b57600080fd5b610b9733858585611418565b610ba057600080fd5b5060019392505050565b600954600090600160a01b900460ff1615610bc457600080fd5b610a61838361154b565b610b07338261159b565b600954600160a81b900460ff1690565b6000610bfb60088363ffffffff61167616565b92915050565b6001600160a01b031660009081526003602052604090205490565b610c24610e44565b610c63576040805162461bcd60e51b81526020600482018190526024820152600080516020611e3b833981519152604482015290519081900360640190fd5b6009546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600980546001600160a01b0319169055565b610cb782826116dd565b5050565b610cc3610e44565b610d02576040805162461bcd60e51b81526020600482018190526024820152600080516020611e3b833981519152604482015290519081900360640190fd5b600954600160a01b900460ff1615610d1957600080fd5b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b610d5f610e44565b610d9e576040805162461bcd60e51b81526020600482018190526024820152600080516020611e3b833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb610db5610e35565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e0557600080fd5b505af1158015610e19573d6000803e3d6000fd5b505050506040513d6020811015610e2f57600080fd5b50505050565b6009546001600160a01b031690565b6009546001600160a01b0316331490565b60018054604080516020601f60026000196101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a255780601f106109fa57610100808354040283529160200191610a25565b610ebe33610f9e565b610ef95760405162461bcd60e51b8152600401808060200182810382526030815260200180611dea6030913960400191505060405180910390fd5b610b0781611722565b610ab533611376565b610f1433610be8565b610f1d57600080fd5b610b078161176a565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610a3c918590610b71908663ffffffff6117b216565b6009546000903390600160a81b900460ff1680610f835750610f8381610be8565b610f8c57600080fd5b610f96848461180f565b949350505050565b6000610bfb60068363ffffffff61167616565b610fb9610e44565b610ff8576040805162461bcd60e51b81526020600482018190526024820152600080516020611e3b833981519152604482015290519081900360640190fd5b610b078161132e565b600b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110875780601f1061105c57610100808354040283529160200191611087565b820191906000526020600020905b81548152906001019060200180831161106a57829003601f168201915b505050505081565b600061109c858585610a6e565b6110a557600080fd5b6110b185858585611418565b6110ba57600080fd5b506001949350505050565b60006110d18484610a2f565b50610b9784848461181c565b6000610f968484846040518060200160405280600081525061108f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b61112d610e44565b61116c576040805162461bcd60e51b81526020600482018190526024820152600080516020611e3b833981519152604482015290519081900360640190fd5b6009805460ff60a81b1916600160a81b1790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b6111b2610e44565b6111f1576040805162461bcd60e51b81526020600482018190526024820152600080516020611e3b833981519152604482015290519081900360640190fd5b610b0781611941565b6001600160a01b03831661123f5760405162461bcd60e51b8152600401808060200182810382526024815260200180611ec36024913960400191505060405180910390fd5b6001600160a01b0382166112845760405162461bcd60e51b8152600401808060200182810382526022815260200180611dc86022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60006112f38484846119e2565b6001600160a01b038416600090815260046020908152604080832033808552925290912054610ba0918691610b71908663ffffffff6117b216565b61133f60088263ffffffff611b2616565b6040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b61138760068263ffffffff611b2616565b6040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b600082820183811015610a61576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061142c846001600160a01b0316611b8d565b61143857506000610f96565b604051632229f29760e21b815233600482018181526001600160a01b03888116602485015260448401879052608060648501908152865160848601528651600095928a16946388a7ca5c9490938c938b938b939260a4019060208501908083838e5b838110156114b257818101518382015260200161149a565b50505050905090810190601f1680156114df5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561150157600080fd5b505af1158015611515573d6000803e3d6000fd5b505050506040513d602081101561152b57600080fd5b50516001600160e01b031916632229f29760e21b14915050949350505050565b600061155633610f9e565b6115915760405162461bcd60e51b8152600401808060200182810382526030815260200180611dea6030913960400191505060405180910390fd5b610a3c8383611b93565b6001600160a01b0382166115e05760405162461bcd60e51b8152600401808060200182810382526021815260200180611e7d6021913960400191505060405180910390fd5b6005546115f3908263ffffffff6117b216565b6005556001600160a01b03821660009081526003602052604090205461161f908263ffffffff6117b216565b6001600160a01b0383166000818152600360209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b0382166116bd5760405162461bcd60e51b8152600401808060200182810382526022815260200180611e5b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6116e7828261159b565b6001600160a01b038216600090815260046020908152604080832033808552925290912054610cb7918491610b71908563ffffffff6117b216565b61173360068263ffffffff611c0b16565b6040516001600160a01b038216907f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690600090a250565b61177b60088263ffffffff611c0b16565b6040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b600082821115611809576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000610a3c3384846119e2565b6000611830846001600160a01b0316611b8d565b61183c57506000610a61565b6040516307b04a2d60e41b81523360048201818152602483018690526060604484019081528551606485015285516000946001600160a01b038a1694637b04a2d09490938a938a936084019060208501908083838d5b838110156118aa578181015183820152602001611892565b50505050905090810190601f1680156118d75780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156118f857600080fd5b505af115801561190c573d6000803e3d6000fd5b505050506040513d602081101561192257600080fd5b50516001600160e01b0319166307b04a2d60e41b149150509392505050565b6001600160a01b0381166119865760405162461bcd60e51b8152600401808060200182810382526026815260200180611da26026913960400191505060405180910390fd5b6009546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316611a275760405162461bcd60e51b8152600401808060200182810382526025815260200180611e9e6025913960400191505060405180910390fd5b6001600160a01b038216611a6c5760405162461bcd60e51b8152600401808060200182810382526023815260200180611d7f6023913960400191505060405180910390fd5b6001600160a01b038316600090815260036020526040902054611a95908263ffffffff6117b216565b6001600160a01b038085166000908152600360205260408082209390935590841681522054611aca908263ffffffff6113be16565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b611b308282611676565b611b6b5760405162461bcd60e51b8152600401808060200182810382526021815260200180611e1a6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b3b151590565b600754611bae82611ba2610a68565b9063ffffffff6113be16565b1115611c01576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b610cb78282611c8c565b611c158282611676565b15611c67576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001600160a01b038216611ce7576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600554611cfa908263ffffffff6113be16565b6005556001600160a01b038216600090815260036020526040902054611d26908263ffffffff6113be16565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a723058201359c9bceb801b3d66196905914482f61bcc1c25841d9f1784b1bfc7a677141e64736f6c634300050a0032526f6c65733a206163636f756e7420697320746865207a65726f206164647265737368747470733a2f2f766974746f6d696e61636f72692e6769746875622e696f2f65726332302d67656e657261746f7200000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000314dc6448d9338c15b0a000000000000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000074379626572464d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044359464d00000000000000000000000000000000000000000000000000000000