Overview ERC20
PRICE
$0.03314917 @ 0.000009572 ETH (-0.94%)

ON-CHAIN MARKET CAP $311,159,406.98

Total Supply:
9,706,992,814.36 ZENT

Holders:
3,666
Profile Summary
Blockchain:
Ethereum (1)


Decimals:
18
Contract Source Code Verified (Exact Match)
Contract Name:
ZentryToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 999999 runs

Created At:
Sat, 23 Mar 2024 19:55:47 GMT
AccessControl.sol
@openzeppelin
contracts
access
AccessControl.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "AccessControlBadConfirmation",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "bytes32",
        "name": "neededRole",
        "type": "bytes32"
      }
    ],
    "name": "AccessControlUnauthorizedAccount",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ECDSAInvalidSignature",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "length",
        "type": "uint256"
      }
    ],
    "name": "ECDSAInvalidSignatureLength",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "s",
        "type": "bytes32"
      }
    ],
    "name": "ECDSAInvalidSignatureS",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "allowance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientAllowance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "balance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "approver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidApprover",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSpender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "deadline",
        "type": "uint256"
      }
    ],
    "name": "ERC2612ExpiredSignature",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "signer",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "ERC2612InvalidSigner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "currentNonce",
        "type": "uint256"
      }
    ],
    "name": "InvalidAccountNonce",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidShortString",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "str",
        "type": "string"
      }
    ],
    "name": "StringTooLong",
    "type": "error"
  },
  {
    "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": [],
    "name": "EIP712DomainChanged",
    "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"
  },
  {
    "inputs": [],
    "name": "DEFAULT_ADMIN_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "DOMAIN_SEPARATOR",
    "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": [
      {
        "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": "value",
        "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": "value",
        "type": "uint256"
      }
    ],
    "name": "burn",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "burnFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "eip712Domain",
    "outputs": [
      {
        "internalType": "bytes1",
        "name": "fields",
        "type": "bytes1"
      },
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "version",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "chainId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "verifyingContract",
        "type": "address"
      },
      {
        "internalType": "bytes32",
        "name": "salt",
        "type": "bytes32"
      },
      {
        "internalType": "uint256[]",
        "name": "extensions",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "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": "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": "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": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "nonces",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "deadline",
        "type": "uint256"
      },
      {
        "internalType": "uint8",
        "name": "v",
        "type": "uint8"
      },
      {
        "internalType": "bytes32",
        "name": "r",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "s",
        "type": "bytes32"
      }
    ],
    "name": "permit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "callerConfirmation",
        "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": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
6101606040818152346200042c57620000188262000431565b6006825260209182810191655a656e74727960d01b938484528151946200003f8662000431565b6006865281860152815190620000558262000431565b600495868352631691539560e21b82840152835192620000758462000431565b6001808552603160f81b84860190815283516001600160401b039491939185821162000417576003918254918583811c931680156200040c575b898410146200030e578190601f93848111620003b6575b5089908483116001146200034f5760009262000343575b505060001982851b1c191690851b1782555b8251928684116200032e578c548581811c9116801562000323575b898210146200030e57828111620002c3575b508791841160011462000258579383949184926000956200024c575b50501b92600019911b1c19161788555b6200015386620004f5565b966101209788526200016585620006d2565b96610140978852519020938460e05251902096610100978089524660a0528551938401947f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f86528685015260608401524660808401523060a084015260a0835260c08301918383109083111762000237575083525190206080523060c052620001ee3362000463565b505191611b3e93846200088b85396080518461182a015260a051846118f6015260c051846117fb015260e051846118790152518361189f015251826106ad015251816106d70152f35b604190634e487b7160e01b6000525260246000fd5b01519350388062000138565b9190601f198416928d60005284896000209460005b8b89838310620002ab575050501062000290575b50505050811b01885562000148565b01519060f884600019921b161c191690553880808062000281565b8686015189559097019694850194889350016200026d565b8d600052886000208380870160051c8201928b881062000304575b0160051c019086905b828110620002f75750506200011c565b60008155018690620002e7565b92508192620002de565b60228e634e487b7160e01b6000525260246000fd5b90607f16906200010a565b60418d634e487b7160e01b6000525260246000fd5b015190503880620000dd565b90879350601f19831691866000528b6000209260005b8d8282106200039f575050841162000386575b505050811b018255620000ef565b015160001983871b60f8161c1916905538808062000378565b8385015186558b9790950194938401930162000365565b90915084600052896000208480850160051c8201928c861062000402575b918991869594930160051c01915b828110620003f2575050620000c6565b60008155859450899101620003e2565b92508192620003d4565b92607f1692620000af565b60418c634e487b7160e01b6000525260246000fd5b600080fd5b604081019081106001600160401b038211176200044d57604052565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b031660008181527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc602052604081205490919060ff16620004f15781805260056020526040822081835260205260408220600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5090565b805160209081811015620005925750601f8251116200053157808251920151908083106200052257501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000578575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000554565b906001600160401b0382116200044d57600654926001938481811c91168015620006c7575b83821014620006b157601f811162000677575b5081601f84116001146200060b5750928293918392600094620005ff575b50501b916000199060031b1c19161760065560ff90565b015192503880620005e8565b919083601f198116600660005284600020946000905b888383106200065c575050501062000642575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000634565b85870151885590960195948501948793509081019062000621565b600660005284601f84600020920160051c820191601f860160051c015b828110620006a4575050620005ca565b6000815501859062000694565b634e487b7160e01b600052602260045260246000fd5b90607f1690620005b7565b805160209081811015620007605750601f825111620006ff57808251920151908083106200052257501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000746575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000722565b906001600160401b0382116200044d57600754926001938481811c911680156200087f575b83821014620006b157601f811162000845575b5081601f8411600114620007d95750928293918392600094620007cd575b50501b916000199060031b1c19161760075560ff90565b015192503880620007b6565b919083601f198116600760005284600020946000905b888383106200082a575050501062000810575b505050811b0160075560ff90565b015160001960f88460031b161c1916905538808062000802565b858701518855909601959485019487935090810190620007ef565b600760005284601f84600020920160051c820191601f860160051c015b8281106200087257505062000798565b6000815501859062000862565b90607f16906200078556fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610e385750816306fdde0314610d29578163095ea7b314610ce157816318160ddd14610ca457816323b872dd14610c49578163248a9ca314610c005781632f2ff15d14610bb8578163313ce56714610b7e5781633644e51514610b3c57816336568abe14610ab257816340c10f191461093857816342966c68146108fc57816370a082311461089b57816379cc67901461084a5781637ecebe00146107e857816384b0196e1461067757816391d148541461060657816395d89b41146104df578163a217fddf146104a6578163a9059cbb14610457578163d505accf1461025e578163d539139314610205578163d547741f146101a3575063dd62ed3e1461012d57600080fd5b3461019f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f5780602092610167610f52565b61016f610f7a565b73ffffffffffffffffffffffffffffffffffffffff91821683526001865283832091168252845220549051908152f35b5080fd5b9190503461020157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610201576101fd91356101f860016101e6610f7a565b93838752600560205286200154610f9d565b6110a6565b5080f35b8280fd5b50503461019f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f57602090517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68152f35b8391503461019f5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f57610298610f52565b6102a0610f7a565b906044359260643560843560ff81168103610453578142116104245773ffffffffffffffffffffffffffffffffffffffff90818516928389526008602052898920908154916001830190558a519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452868d840152858a1660608401528a608084015260a083015260c082015260c0815260e0810181811067ffffffffffffffff8211176103f8578b525190206103ad916103a4916103636117e4565b908c51917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015260c43591604260a4359220611660565b909291926116fd565b168181036103c457866103c1878787611369565b80f35b604493508751927f4b800e460000000000000000000000000000000000000000000000000000000084528301526024820152fd5b60248b6041897f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b602483838a51917f62791302000000000000000000000000000000000000000000000000000000008352820152fd5b8680fd5b50503461019f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f5760209061049f610495610f52565b6024359033611228565b5160018152f35b50503461019f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f5751908152602090f35b9190503461020157827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610201578051918381549061052082611149565b808652926001928084169081156105bd5750600114610561575b61055d868661054b828b03836111e7565b51918291602083526020830190610ef4565b0390f35b815294507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8286106105a55750505061054b82602061055d95820101943861053a565b80546020878701810191909152909501948101610587565b61055d98508794506020935061054b9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b820101943861053a565b90503461020157817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610201578160209360ff92610645610f7a565b903582526005865273ffffffffffffffffffffffffffffffffffffffff83832091168252855220541690519015158152f35b9190503461020157827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610201576106d17f000000000000000000000000000000000000000000000000000000000000000061191c565b926106fb7f0000000000000000000000000000000000000000000000000000000000000000611a4e565b908251926020928385019585871067ffffffffffffffff8811176107bc57509280610772838896610765998b9996528686528151998a997f0f000000000000000000000000000000000000000000000000000000000000008b5260e0868c015260e08b0190610ef4565b91898303908a0152610ef4565b924660608801523060808801528460a088015286840360c088015251928381520193925b8281106107a557505050500390f35b835185528695509381019392810192600101610796565b8360416024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b50503461019f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f578060209273ffffffffffffffffffffffffffffffffffffffff61083a610f52565b1681526008845220549051908152f35b50503461019f577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610898576103c1610884610f52565b60243590610893823383611439565b61158e565b80fd5b50503461019f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f578060209273ffffffffffffffffffffffffffffffffffffffff6108ed610f52565b16815280845220549051908152f35b83903461019f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f576103c190353361158e565b9190503461020157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020157610971610f52565b90602435917f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6808652600560205282862033875260205260ff838720541615610a7c575073ffffffffffffffffffffffffffffffffffffffff16928315610a4e5760025490838201809211610a22575084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209260025585855284835280852082815401905551908152a380f35b8560116024927f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8460249251917fec442f05000000000000000000000000000000000000000000000000000000008352820152fd5b846044918451917fe2517d3f00000000000000000000000000000000000000000000000000000000835233908301526024820152fd5b83833461019f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f57610aea610f7a565b903373ffffffffffffffffffffffffffffffffffffffff831603610b1457506101fd9192356110a6565b8390517f6697b232000000000000000000000000000000000000000000000000000000008152fd5b50503461019f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f57602090610b776117e4565b9051908152f35b50503461019f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f576020905160128152f35b9190503461020157807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610201576101fd9135610bfb60016101e6610f7a565b610ffa565b9050346102015760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102015781602093600192358152600585522001549051908152f35b50503461019f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f5760209061049f610c88610f52565b610c90610f7a565b60443591610c9f833383611439565b611228565b50503461019f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f576020906002549051908152f35b50503461019f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f5760209061049f610d1f610f52565b6024359033611369565b50503461019f57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261019f5780519082600354610d6981611149565b80855291600191808316908115610df25750600114610d95575b50505061054b8261055d9403836111e7565b9450600385527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b828610610dda5750505061054b82602061055d9582010194610d83565b80546020878701810191909152909501948101610dbd565b61055d97508693506020925061054b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010194610d83565b8491346102015760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020157357fffffffff00000000000000000000000000000000000000000000000000000000811680910361020157602092507f7965db0b000000000000000000000000000000000000000000000000000000008114908115610eca575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610ec3565b919082519283825260005b848110610f3e5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b602081830181015184830182015201610eff565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610f7557565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610f7557565b80600052600560205260406000203360005260205260ff6040600020541615610fc35750565b604490604051907fe2517d3f0000000000000000000000000000000000000000000000000000000082523360048301526024820152fd5b90600091808352600560205273ffffffffffffffffffffffffffffffffffffffff6040842092169182845260205260ff604084205416156000146110a1578083526005602052604083208284526020526040832060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b90600091808352600560205273ffffffffffffffffffffffffffffffffffffffff6040842092169182845260205260ff6040842054166000146110a157808352600560205260408320828452602052604083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b90600182811c92168015611192575b602083101461116357565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691611158565b6040810190811067ffffffffffffffff8211176111b857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176111b857604052565b9173ffffffffffffffffffffffffffffffffffffffff808416928315611338571692831561130757600090838252816020526040822054908382106112af575091604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815220818154019055604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101839052606490fd5b60246040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152fd5b73ffffffffffffffffffffffffffffffffffffffff80911691821561140857169182156113d75760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a3565b60246040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152fd5b60246040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152fd5b9173ffffffffffffffffffffffffffffffffffffffff8093169160009383855260016020526040938486209183169182875260205284862054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84036114a4575b50505050505050565b848410611538575080156115085781156114d85785526001602052838520908552602052039120553880808080808061149b565b6024868651907f94280d620000000000000000000000000000000000000000000000000000000082526004820152fd5b6024868651907fe602df050000000000000000000000000000000000000000000000000000000082526004820152fd5b85517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9190911660048201526024810184905260448101859052606490fd5b9073ffffffffffffffffffffffffffffffffffffffff821690811561133857600092828452836020526040842054908282106116085750817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926020928587528684520360408620558060025403600255604051908152a3565b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff919091166004820152602481019190915260448101829052606490fd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116116f157926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156116e557805173ffffffffffffffffffffffffffffffffffffffff8116156116dc57918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b60048110156117b5578061170f575050565b600181036117415760046040517ff645eedf000000000000000000000000000000000000000000000000000000008152fd5b6002810361177a57602482604051907ffce698f70000000000000000000000000000000000000000000000000000000082526004820152fd5b6003146117845750565b602490604051907fd78bce0c0000000000000000000000000000000000000000000000000000000082526004820152fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163014806118f3575b1561184c577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176111b85760405251902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611823565b60ff81146119725760ff811690601f8211611948576040519161193e8361119c565b8252602082015290565b60046040517fb3512b0c000000000000000000000000000000000000000000000000000000008152fd5b5060405160065481600061198583611149565b80835292600190818116908115611a0e57506001146119af575b506119ac925003826111e7565b90565b6006600090815291507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b8483106119f357506119ac93505081016020013861199f565b819350908160209254838589010152019101909184926119da565b602093506119ac9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861199f565b60ff8114611a705760ff811690601f8211611948576040519161193e8361119c565b50604051600754816000611a8383611149565b80835292600190818116908115611a0e5750600114611aa957506119ac925003826111e7565b6007600090815291507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b848310611aed57506119ac93505081016020013861199f565b81935090816020925483858901015201910190918492611ad456fea26469706673582212208f31c5714fe8e0944d215f791451a16ad0c2673115aa1db79ef6f10c88f63c4e64736f6c63430008140033