UNPKG

@openzeppelin/contracts-upgradeable

Version:
675 lines (674 loc) 45.7 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ERC20PresetMinterPauserUpgradeable", "sourceName": "contracts/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable.sol", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burnFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611f06806100206000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635c975abb11610104578063a217fddf116100a2578063d539139311610071578063d5391393146103ce578063d547741f146103f5578063dd62ed3e14610408578063e63ab1e914610441576101cf565b8063a217fddf1461038d578063a457c2d714610395578063a9059cbb146103a8578063ca15c873146103bb576101cf565b80638456cb59116100de5780638456cb591461033f5780639010d07c1461034757806391d148541461037257806395d89b4114610385576101cf565b80635c975abb146102f757806370a082311461030357806379cc67901461032c576101cf565b8063313ce567116101715780633f4ba83a1161014b5780633f4ba83a146102b657806340c10f19146102be57806342966c68146102d15780634cd88b76146102e4576101cf565b8063313ce5671461028157806336568abe1461029057806339509351146102a3576101cf565b806318160ddd116101ad57806318160ddd1461022457806323b872dd14610236578063248a9ca3146102495780632f2ff15d1461026c576101cf565b806301ffc9a7146101d457806306fdde03146101fc578063095ea7b314610211575b600080fd5b6101e76101e2366004611c39565b610456565b60405190151581526020015b60405180910390f35b610204610483565b6040516101f39190611d37565b6101e761021f366004611bb5565b610515565b60cb545b6040519081526020016101f3565b6101e7610244366004611b7a565b61052c565b610228610257366004611bde565b60009081526065602052604090206001015490565b61027f61027a366004611bf6565b6105db565b005b604051601281526020016101f3565b61027f61029e366004611bf6565b610602565b6101e76102b1366004611bb5565b610624565b61027f610660565b61027f6102cc366004611bb5565b6106f4565b61027f6102df366004611bde565b610797565b61027f6102f2366004611c61565b6107a4565b61012d5460ff166101e7565b610228610311366004611b2e565b6001600160a01b0316600090815260c9602052604090205490565b61027f61033a366004611bb5565b61081b565b61027f61089c565b61035a610355366004611c18565b61092e565b6040516001600160a01b0390911681526020016101f3565b6101e7610380366004611bf6565b61094d565b610204610978565b610228600081565b6101e76103a3366004611bb5565b610987565b6101e76103b6366004611bb5565b610a20565b6102286103c9366004611bde565b610a2d565b6102287f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61027f610403366004611bf6565b610a44565b610228610416366004611b48565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b610228600080516020611eb183398151915281565b60006001600160e01b03198216635a05180f60e01b148061047b575061047b82610a4e565b90505b919050565b606060cc805461049290611e49565b80601f01602080910402602001604051908101604052809291908181526020018280546104be90611e49565b801561050b5780601f106104e05761010080835404028352916020019161050b565b820191906000526020600020905b8154815290600101906020018083116104ee57829003601f168201915b5050505050905090565b6000610522338484610a83565b5060015b92915050565b6000610539848484610ba7565b6001600160a01b038416600090815260ca60209081526040808320338452909152902054828110156105c35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105d08533858403610a83565b506001949350505050565b6105e58282610d82565b60008281526097602052604090206105fd9082610da9565b505050565b61060c8282610dbe565b60008281526097602052604090206105fd9082610e38565b33600081815260ca602090815260408083206001600160a01b0387168452909152812054909161052291859061065b908690611db8565b610a83565b610678600080516020611eb183398151915233610380565b6106ea5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105ba565b6106f2610e4d565b565b61071e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610380565b6107895760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105ba565b6107938282610ee2565b5050565b6107a13382610fce565b50565b600054610100900460ff16806107bd575060005460ff16155b6107d95760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff161580156107fb576000805461ffff19166101011790555b6108058383611128565b80156105fd576000805461ff0019169055505050565b60006108278333610416565b9050818110156108855760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b60648201526084016105ba565b6108928333848403610a83565b6105fd8383610fce565b6108b4600080516020611eb183398151915233610380565b6109265760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105ba565b6106f26111cb565b60008281526097602052604081206109469083611248565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060cd805461049290611e49565b33600090815260ca602090815260408083206001600160a01b038616845290915281205482811015610a095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105ba565b610a163385858403610a83565b5060019392505050565b6000610522338484610ba7565b600081815260976020526040812061047b90611254565b61060c828261125e565b60006001600160e01b03198216637965db0b60e01b148061047b57506301ffc9a760e01b6001600160e01b031983161461047b565b6001600160a01b038316610ae55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ba565b6001600160a01b038216610b465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ba565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c0b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ba565b6001600160a01b038216610c6d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ba565b610c78838383611284565b6001600160a01b038316600090815260c9602052604090205481811015610cf05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105ba565b6001600160a01b03808516600090815260c96020526040808220858503905591851681529081208054849290610d27908490611db8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d7391815260200190565b60405180910390a35b50505050565b600082815260656020526040902060010154610d9f81335b61128f565b6105fd83836112f3565b6000610946836001600160a01b038416611379565b6001600160a01b0381163314610e2e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105ba565b61079382826113c8565b6000610946836001600160a01b03841661142f565b61012d5460ff16610e975760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105ba565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610f385760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ba565b610f4460008383611284565b8060cb6000828254610f569190611db8565b90915550506001600160a01b038216600090815260c9602052604081208054839290610f83908490611db8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610793565b6001600160a01b03821661102e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105ba565b61103a82600083611284565b6001600160a01b038216600090815260c96020526040902054818110156110ae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105ba565b6001600160a01b038316600090815260c960205260408120838303905560cb80548492906110dd908490611def565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36105fd565b600054610100900460ff1680611141575060005460ff16155b61115d5760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff1615801561117f576000805461ffff19166101011790555b61118761154c565b61118f61154c565b61119761154c565b61119f61154c565b6111a983836115b7565b6111b161154c565b6111b961164c565b6111c161154c565b61080583836116c2565b61012d5460ff16156112125760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105ba565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ec53390565b60006109468383611767565b600061047b825490565b60008281526065602052604090206001015461127a8133610d9a565b6105fd83836113c8565b6105fd83838361179f565b611299828261094d565b610793576112b1816001600160a01b03166014611806565b6112bc836020611806565b6040516020016112cd929190611cc2565b60408051601f198184030181529082905262461bcd60e51b82526105ba91600401611d37565b6112fd828261094d565b6107935760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113353390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008181526001830160205260408120546113c057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610526565b506000610526565b6113d2828261094d565b156107935760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008181526001830160205260408120548015611542576000611453600183611def565b855490915060009061146790600190611def565b90508181146114e857600086600001828154811061149557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106114c657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061150757634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610526565b6000915050610526565b600054610100900460ff1680611565575060005460ff16155b6115815760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff161580156115a3576000805461ffff19166101011790555b80156107a1576000805461ff001916905550565b600054610100900460ff16806115d0575060005460ff16155b6115ec5760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff1615801561160e576000805461ffff19166101011790555b82516116219060cc9060208601906119f7565b5081516116359060cd9060208501906119f7565b5080156105fd576000805461ff0019169055505050565b600054610100900460ff1680611665575060005460ff16155b6116815760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff161580156116a3576000805461ffff19166101011790555b61012d805460ff1916905580156107a1576000805461ff001916905550565b600054610100900460ff16806116db575060005460ff16155b6116f75760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff16158015611719576000805461ffff19166101011790555b6117256000335b6119e8565b61174f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633611720565b610805600080516020611eb183398151915233611720565b600082600001828154811061178c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b61012d5460ff16156105fd5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105ba565b60606000611815836002611dd0565b611820906002611db8565b67ffffffffffffffff81111561184657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611870576020820181803683370190505b509050600360fc1b8160008151811061189957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106118d657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006118fa846002611dd0565b611905906001611db8565b90505b6001811115611999576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061194757634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061196b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361199281611e32565b9050611908565b5083156109465760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ba565b6105e5828261079382826112f3565b828054611a0390611e49565b90600052602060002090601f016020900481019282611a255760008555611a6b565b82601f10611a3e57805160ff1916838001178555611a6b565b82800160010185558215611a6b579182015b82811115611a6b578251825591602001919060010190611a50565b50611a77929150611a7b565b5090565b5b80821115611a775760008155600101611a7c565b80356001600160a01b038116811461047e57600080fd5b600082601f830112611ab7578081fd5b813567ffffffffffffffff80821115611ad257611ad2611e9a565b604051601f8301601f19908116603f01168101908282118183101715611afa57611afa611e9a565b81604052838152866020858801011115611b12578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611b3f578081fd5b61094682611a90565b60008060408385031215611b5a578081fd5b611b6383611a90565b9150611b7160208401611a90565b90509250929050565b600080600060608486031215611b8e578081fd5b611b9784611a90565b9250611ba560208501611a90565b9150604084013590509250925092565b60008060408385031215611bc7578182fd5b611bd083611a90565b946020939093013593505050565b600060208284031215611bef578081fd5b5035919050565b60008060408385031215611c08578182fd5b82359150611b7160208401611a90565b60008060408385031215611c2a578182fd5b50508035926020909101359150565b600060208284031215611c4a578081fd5b81356001600160e01b031981168114610946578182fd5b60008060408385031215611c73578182fd5b823567ffffffffffffffff80821115611c8a578384fd5b611c9686838701611aa7565b93506020850135915080821115611cab578283fd5b50611cb885828601611aa7565b9150509250929050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351611cfa816017850160208801611e06565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d2b816028840160208801611e06565b01602801949350505050565b6000602082528251806020840152611d56816040850160208701611e06565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008219821115611dcb57611dcb611e84565b500190565b6000816000190483118215151615611dea57611dea611e84565b500290565b600082821015611e0157611e01611e84565b500390565b60005b83811015611e21578181015183820152602001611e09565b83811115610d7c5750506000910152565b600081611e4157611e41611e84565b506000190190565b600181811c90821680611e5d57607f821691505b60208210811415611e7e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa264697066735822122086168a4b2d9780c231093dd426eed91507d565b9099aba8a54125a0f72de50f664736f6c63430008030033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635c975abb11610104578063a217fddf116100a2578063d539139311610071578063d5391393146103ce578063d547741f146103f5578063dd62ed3e14610408578063e63ab1e914610441576101cf565b8063a217fddf1461038d578063a457c2d714610395578063a9059cbb146103a8578063ca15c873146103bb576101cf565b80638456cb59116100de5780638456cb591461033f5780639010d07c1461034757806391d148541461037257806395d89b4114610385576101cf565b80635c975abb146102f757806370a082311461030357806379cc67901461032c576101cf565b8063313ce567116101715780633f4ba83a1161014b5780633f4ba83a146102b657806340c10f19146102be57806342966c68146102d15780634cd88b76146102e4576101cf565b8063313ce5671461028157806336568abe1461029057806339509351146102a3576101cf565b806318160ddd116101ad57806318160ddd1461022457806323b872dd14610236578063248a9ca3146102495780632f2ff15d1461026c576101cf565b806301ffc9a7146101d457806306fdde03146101fc578063095ea7b314610211575b600080fd5b6101e76101e2366004611c39565b610456565b60405190151581526020015b60405180910390f35b610204610483565b6040516101f39190611d37565b6101e761021f366004611bb5565b610515565b60cb545b6040519081526020016101f3565b6101e7610244366004611b7a565b61052c565b610228610257366004611bde565b60009081526065602052604090206001015490565b61027f61027a366004611bf6565b6105db565b005b604051601281526020016101f3565b61027f61029e366004611bf6565b610602565b6101e76102b1366004611bb5565b610624565b61027f610660565b61027f6102cc366004611bb5565b6106f4565b61027f6102df366004611bde565b610797565b61027f6102f2366004611c61565b6107a4565b61012d5460ff166101e7565b610228610311366004611b2e565b6001600160a01b0316600090815260c9602052604090205490565b61027f61033a366004611bb5565b61081b565b61027f61089c565b61035a610355366004611c18565b61092e565b6040516001600160a01b0390911681526020016101f3565b6101e7610380366004611bf6565b61094d565b610204610978565b610228600081565b6101e76103a3366004611bb5565b610987565b6101e76103b6366004611bb5565b610a20565b6102286103c9366004611bde565b610a2d565b6102287f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61027f610403366004611bf6565b610a44565b610228610416366004611b48565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b610228600080516020611eb183398151915281565b60006001600160e01b03198216635a05180f60e01b148061047b575061047b82610a4e565b90505b919050565b606060cc805461049290611e49565b80601f01602080910402602001604051908101604052809291908181526020018280546104be90611e49565b801561050b5780601f106104e05761010080835404028352916020019161050b565b820191906000526020600020905b8154815290600101906020018083116104ee57829003601f168201915b5050505050905090565b6000610522338484610a83565b5060015b92915050565b6000610539848484610ba7565b6001600160a01b038416600090815260ca60209081526040808320338452909152902054828110156105c35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6105d08533858403610a83565b506001949350505050565b6105e58282610d82565b60008281526097602052604090206105fd9082610da9565b505050565b61060c8282610dbe565b60008281526097602052604090206105fd9082610e38565b33600081815260ca602090815260408083206001600160a01b0387168452909152812054909161052291859061065b908690611db8565b610a83565b610678600080516020611eb183398151915233610380565b6106ea5760405162461bcd60e51b815260206004820152603960248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20756e70617573650000000000000060648201526084016105ba565b6106f2610e4d565b565b61071e7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610380565b6107895760405162461bcd60e51b815260206004820152603660248201527f45524332305072657365744d696e7465725061757365723a206d7573742068616044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105ba565b6107938282610ee2565b5050565b6107a13382610fce565b50565b600054610100900460ff16806107bd575060005460ff16155b6107d95760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff161580156107fb576000805461ffff19166101011790555b6108058383611128565b80156105fd576000805461ff0019169055505050565b60006108278333610416565b9050818110156108855760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b60648201526084016105ba565b6108928333848403610a83565b6105fd8383610fce565b6108b4600080516020611eb183398151915233610380565b6109265760405162461bcd60e51b815260206004820152603760248201527f45524332305072657365744d696e7465725061757365723a206d75737420686160448201527f76652070617573657220726f6c6520746f20706175736500000000000000000060648201526084016105ba565b6106f26111cb565b60008281526097602052604081206109469083611248565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060cd805461049290611e49565b33600090815260ca602090815260408083206001600160a01b038616845290915281205482811015610a095760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105ba565b610a163385858403610a83565b5060019392505050565b6000610522338484610ba7565b600081815260976020526040812061047b90611254565b61060c828261125e565b60006001600160e01b03198216637965db0b60e01b148061047b57506301ffc9a760e01b6001600160e01b031983161461047b565b6001600160a01b038316610ae55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105ba565b6001600160a01b038216610b465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105ba565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c0b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105ba565b6001600160a01b038216610c6d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105ba565b610c78838383611284565b6001600160a01b038316600090815260c9602052604090205481811015610cf05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105ba565b6001600160a01b03808516600090815260c96020526040808220858503905591851681529081208054849290610d27908490611db8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d7391815260200190565b60405180910390a35b50505050565b600082815260656020526040902060010154610d9f81335b61128f565b6105fd83836112f3565b6000610946836001600160a01b038416611379565b6001600160a01b0381163314610e2e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105ba565b61079382826113c8565b6000610946836001600160a01b03841661142f565b61012d5460ff16610e975760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105ba565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b038216610f385760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105ba565b610f4460008383611284565b8060cb6000828254610f569190611db8565b90915550506001600160a01b038216600090815260c9602052604081208054839290610f83908490611db8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610793565b6001600160a01b03821661102e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105ba565b61103a82600083611284565b6001600160a01b038216600090815260c96020526040902054818110156110ae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105ba565b6001600160a01b038316600090815260c960205260408120838303905560cb80548492906110dd908490611def565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36105fd565b600054610100900460ff1680611141575060005460ff16155b61115d5760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff1615801561117f576000805461ffff19166101011790555b61118761154c565b61118f61154c565b61119761154c565b61119f61154c565b6111a983836115b7565b6111b161154c565b6111b961164c565b6111c161154c565b61080583836116c2565b61012d5460ff16156112125760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105ba565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ec53390565b60006109468383611767565b600061047b825490565b60008281526065602052604090206001015461127a8133610d9a565b6105fd83836113c8565b6105fd83838361179f565b611299828261094d565b610793576112b1816001600160a01b03166014611806565b6112bc836020611806565b6040516020016112cd929190611cc2565b60408051601f198184030181529082905262461bcd60e51b82526105ba91600401611d37565b6112fd828261094d565b6107935760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113353390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008181526001830160205260408120546113c057508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610526565b506000610526565b6113d2828261094d565b156107935760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008181526001830160205260408120548015611542576000611453600183611def565b855490915060009061146790600190611def565b90508181146114e857600086600001828154811061149557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106114c657634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061150757634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610526565b6000915050610526565b600054610100900460ff1680611565575060005460ff16155b6115815760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff161580156115a3576000805461ffff19166101011790555b80156107a1576000805461ff001916905550565b600054610100900460ff16806115d0575060005460ff16155b6115ec5760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff1615801561160e576000805461ffff19166101011790555b82516116219060cc9060208601906119f7565b5081516116359060cd9060208501906119f7565b5080156105fd576000805461ff0019169055505050565b600054610100900460ff1680611665575060005460ff16155b6116815760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff161580156116a3576000805461ffff19166101011790555b61012d805460ff1916905580156107a1576000805461ff001916905550565b600054610100900460ff16806116db575060005460ff16155b6116f75760405162461bcd60e51b81526004016105ba90611d6a565b600054610100900460ff16158015611719576000805461ffff19166101011790555b6117256000335b6119e8565b61174f7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633611720565b610805600080516020611eb183398151915233611720565b600082600001828154811061178c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b61012d5460ff16156105fd5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105ba565b60606000611815836002611dd0565b611820906002611db8565b67ffffffffffffffff81111561184657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611870576020820181803683370190505b509050600360fc1b8160008151811061189957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106118d657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006118fa846002611dd0565b611905906001611db8565b90505b6001811115611999576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061194757634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061196b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361199281611e32565b9050611908565b5083156109465760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105ba565b6105e5828261079382826112f3565b828054611a0390611e49565b90600052602060002090601f016020900481019282611a255760008555611a6b565b82601f10611a3e57805160ff1916838001178555611a6b565b82800160010185558215611a6b579182015b82811115611a6b578251825591602001919060010190611a50565b50611a77929150611a7b565b5090565b5b80821115611a775760008155600101611a7c565b80356001600160a01b038116811461047e57600080fd5b600082601f830112611ab7578081fd5b813567ffffffffffffffff80821115611ad257611ad2611e9a565b604051601f8301601f19908116603f01168101908282118183101715611afa57611afa611e9a565b81604052838152866020858801011115611b12578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215611b3f578081fd5b61094682611a90565b60008060408385031215611b5a578081fd5b611b6383611a90565b9150611b7160208401611a90565b90509250929050565b600080600060608486031215611b8e578081fd5b611b9784611a90565b9250611ba560208501611a90565b9150604084013590509250925092565b60008060408385031215611bc7578182fd5b611bd083611a90565b946020939093013593505050565b600060208284031215611bef578081fd5b5035919050565b60008060408385031215611c08578182fd5b82359150611b7160208401611a90565b60008060408385031215611c2a578182fd5b50508035926020909101359150565b600060208284031215611c4a578081fd5b81356001600160e01b031981168114610946578182fd5b60008060408385031215611c73578182fd5b823567ffffffffffffffff80821115611c8a578384fd5b611c9686838701611aa7565b93506020850135915080821115611cab578283fd5b50611cb885828601611aa7565b9150509250929050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351611cfa816017850160208801611e06565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d2b816028840160208801611e06565b01602801949350505050565b6000602082528251806020840152611d56816040850160208701611e06565b601f01601f19169190910160400192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008219821115611dcb57611dcb611e84565b500190565b6000816000190483118215151615611dea57611dea611e84565b500290565b600082821015611e0157611e01611e84565b500390565b60005b83811015611e21578181015183820152602001611e09565b83811115610d7c5750506000910152565b600081611e4157611e41611e84565b506000190190565b600181811c90821680611e5d57607f821691505b60208210811415611e7e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862aa264697066735822122086168a4b2d9780c231093dd426eed91507d565b9099aba8a54125a0f72de50f664736f6c63430008030033", "linkReferences": {}, "deployedLinkReferences": {} }