Skip to content

Instantly share code, notes, and snippets.

@metaversedogebsc
Created November 23, 2021 21:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save metaversedogebsc/f5b62d37c3fc2478dbf3c2300a2cba5c to your computer and use it in GitHub Desktop.
Save metaversedogebsc/f5b62d37c3fc2478dbf3c2300a2cba5c to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122010eed72579d4e7b493d9d0f888f02e7e6ede285b9e49a84e366d31ae8d84bb0b64736f6c63430008040033",
"opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0xEE 0xD7 0x25 PUSH26 0xD4E7B493D9D0F888F02E7E6EDE285B9E49A84E366D31AE8D84BB SIGNEXTEND PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "2766:2653:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2766:2653:0;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122010eed72579d4e7b493d9d0f888f02e7e6ede285b9e49a84e366d31ae8d84bb0b64736f6c63430008040033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0xEE 0xD7 0x25 PUSH26 0xD4E7B493D9D0F888F02E7E6EDE285B9E49A84E366D31AE8D84BB SIGNEXTEND PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "2766:2653:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "103",
"totalCost": "17303"
},
"internal": {
"_functionCallWithValue(address,bytes memory,uint256,string memory)": "infinite",
"functionCall(address,bytes memory)": "infinite",
"functionCall(address,bytes memory,string memory)": "infinite",
"functionCallWithValue(address,bytes memory,uint256)": "infinite",
"functionCallWithValue(address,bytes memory,uint256,string memory)": "infinite",
"isContract(address)": "infinite",
"sendValue(address payable,uint256)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "Address"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "Context"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"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": 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": [
{
"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": [],
"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"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"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": 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": [
{
"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": [],
"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"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "IERC20"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"allPairs(uint256)": "1e3dd18b",
"allPairsLength()": "574f2ba3",
"createPair(address,address)": "c9c65396",
"feeTo()": "017e7e58",
"feeToSetter()": "094b7415",
"getPair(address,address)": "e6a43905",
"setFeeTo(address)": "f46901ed",
"setFeeToSetter(address)": "a2e74af6"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "pair",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "PairCreated",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "allPairs",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "allPairsLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "createPair",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "feeTo",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "feeToSetter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "getPair",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "setFeeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "setFeeToSetter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "pair",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "PairCreated",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "allPairs",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "allPairsLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "createPair",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "feeTo",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "feeToSetter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "getPair",
"outputs": [
{
"internalType": "address",
"name": "pair",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "setFeeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "setFeeToSetter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "IUniswapV2Factory"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"DOMAIN_SEPARATOR()": "3644e515",
"MINIMUM_LIQUIDITY()": "ba9a7a56",
"PERMIT_TYPEHASH()": "30adf81f",
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"burn(address)": "89afcb44",
"decimals()": "313ce567",
"factory()": "c45a0155",
"getReserves()": "0902f1ac",
"initialize(address,address)": "485cc955",
"kLast()": "7464fc3d",
"name()": "06fdde03",
"nonces(address)": "7ecebe00",
"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf",
"price0CumulativeLast()": "5909c0d5",
"price1CumulativeLast()": "5a3d5493",
"skim(address)": "bc25cf77",
"swap(uint256,uint256,address,bytes)": "022c0d9f",
"symbol()": "95d89b41",
"sync()": "fff6cae9",
"token0()": "0dfe1681",
"token1()": "d21220a7",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"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": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "Burn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0In",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1In",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0Out",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1Out",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "Swap",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint112",
"name": "reserve0",
"type": "uint112"
},
{
"indexed": false,
"internalType": "uint112",
"name": "reserve1",
"type": "uint112"
}
],
"name": "Sync",
"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": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MINIMUM_LIQUIDITY",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "PERMIT_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"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": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "burn",
"outputs": [
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getReserves",
"outputs": [
{
"internalType": "uint112",
"name": "reserve0",
"type": "uint112"
},
{
"internalType": "uint112",
"name": "reserve1",
"type": "uint112"
},
{
"internalType": "uint32",
"name": "blockTimestampLast",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "kLast",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"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": [],
"name": "price0CumulativeLast",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "price1CumulativeLast",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "skim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount0Out",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Out",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "swap",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "sync",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "token0",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "token1",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"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"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"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": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "Burn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0In",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1In",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount0Out",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount1Out",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "Swap",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint112",
"name": "reserve0",
"type": "uint112"
},
{
"indexed": false,
"internalType": "uint112",
"name": "reserve1",
"type": "uint112"
}
],
"name": "Sync",
"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": "DOMAIN_SEPARATOR",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MINIMUM_LIQUIDITY",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "PERMIT_TYPEHASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"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": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "burn",
"outputs": [
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getReserves",
"outputs": [
{
"internalType": "uint112",
"name": "reserve0",
"type": "uint112"
},
{
"internalType": "uint112",
"name": "reserve1",
"type": "uint112"
},
{
"internalType": "uint32",
"name": "blockTimestampLast",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "kLast",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"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": [],
"name": "price0CumulativeLast",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "price1CumulativeLast",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "skim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount0Out",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Out",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "swap",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "sync",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "token0",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "token1",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"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"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "IUniswapV2Pair"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"WETH()": "ad5c4648",
"addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700",
"addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719",
"factory()": "c45a0155",
"getAmountIn(uint256,uint256,uint256)": "85f8c259",
"getAmountOut(uint256,uint256,uint256)": "054d50d4",
"getAmountsIn(uint256,address[])": "1f00ca74",
"getAmountsOut(uint256,address[])": "d06ca61f",
"quote(uint256,uint256,uint256)": "ad615dec",
"removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde",
"removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec",
"removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a",
"removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c",
"swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41",
"swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5",
"swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5",
"swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739",
"swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a",
"swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee"
}
},
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "IUniswapV2Router01"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"WETH()": "ad5c4648",
"addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700",
"addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719",
"factory()": "c45a0155",
"getAmountIn(uint256,uint256,uint256)": "85f8c259",
"getAmountOut(uint256,uint256,uint256)": "054d50d4",
"getAmountsIn(uint256,address[])": "1f00ca74",
"getAmountsOut(uint256,address[])": "d06ca61f",
"quote(uint256,uint256,uint256)": "ad615dec",
"removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde",
"removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec",
"removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": "af2979eb",
"removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a",
"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "5b0d5984",
"removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c",
"swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41",
"swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5",
"swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": "b6f9de95",
"swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5",
"swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "791ac947",
"swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739",
"swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "5c11d795",
"swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a",
"swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee"
}
},
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETHSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountADesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountTokenDesired",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "addLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "factory",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountIn",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveOut",
"type": "uint256"
}
],
"name": "getAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsIn",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "getAmountsOut",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "reserveB",
"type": "uint256"
}
],
"name": "quote",
"outputs": [
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidity",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETH",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "removeLiquidityETHSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountToken",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountTokenMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountETHMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
"outputs": [
{
"internalType": "uint256",
"name": "amountETH",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "liquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountAMin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountBMin",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "bool",
"name": "approveMax",
"type": "bool"
},
{
"internalType": "uint8",
"name": "v",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "removeLiquidityWithPermit",
"outputs": [
{
"internalType": "uint256",
"name": "amountA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountB",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapETHForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactETH",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "path",
"type": "address[]"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
}
],
"name": "swapTokensForExactTokens",
"outputs": [
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "IUniswapV2Router02"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1792:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "95:229:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "141:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "150:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "158:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "143:6:1"
},
"nodeType": "YulFunctionCall",
"src": "143:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "143:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "116:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "125:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "112:3:1"
},
"nodeType": "YulFunctionCall",
"src": "112:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "137:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "108:3:1"
},
"nodeType": "YulFunctionCall",
"src": "108:32:1"
},
"nodeType": "YulIf",
"src": "105:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "176:29:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "195:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "189:5:1"
},
"nodeType": "YulFunctionCall",
"src": "189:16:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "180:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "268:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "277:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "285:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "270:6:1"
},
"nodeType": "YulFunctionCall",
"src": "270:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "270:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "227:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "238:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "253:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "258:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "249:3:1"
},
"nodeType": "YulFunctionCall",
"src": "249:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "245:3:1"
},
"nodeType": "YulFunctionCall",
"src": "245:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "234:3:1"
},
"nodeType": "YulFunctionCall",
"src": "234:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "224:2:1"
},
"nodeType": "YulFunctionCall",
"src": "224:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "217:50:1"
},
"nodeType": "YulIf",
"src": "214:2:1"
},
{
"nodeType": "YulAssignment",
"src": "303:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "313:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "303:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "61:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "72:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "84:6:1",
"type": ""
}
],
"src": "14:310:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "458:175:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "468:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "480:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "491:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "476:3:1"
},
"nodeType": "YulFunctionCall",
"src": "476:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "468:4:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "503:29:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "521:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "517:3:1"
},
"nodeType": "YulFunctionCall",
"src": "517:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "530:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "513:3:1"
},
"nodeType": "YulFunctionCall",
"src": "513:19:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "507:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "548:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "563:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "571:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "559:3:1"
},
"nodeType": "YulFunctionCall",
"src": "559:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "541:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "595:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "606:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "591:3:1"
},
"nodeType": "YulFunctionCall",
"src": "591:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "615:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "623:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "611:3:1"
},
"nodeType": "YulFunctionCall",
"src": "611:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "584:6:1"
},
"nodeType": "YulFunctionCall",
"src": "584:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "584:43:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "419:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "430:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "438:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "449:4:1",
"type": ""
}
],
"src": "329:304:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "812:177:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "829:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "840:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "822:6:1"
},
"nodeType": "YulFunctionCall",
"src": "822:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "822:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "863:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "874:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "859:3:1"
},
"nodeType": "YulFunctionCall",
"src": "859:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "879:2:1",
"type": "",
"value": "27"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "852:6:1"
},
"nodeType": "YulFunctionCall",
"src": "852:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "852:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "902:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "913:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "898:3:1"
},
"nodeType": "YulFunctionCall",
"src": "898:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "918:29:1",
"type": "",
"value": "SafeMath: addition overflow"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "891:6:1"
},
"nodeType": "YulFunctionCall",
"src": "891:57:1"
},
"nodeType": "YulExpressionStatement",
"src": "891:57:1"
},
{
"nodeType": "YulAssignment",
"src": "957:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "969:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "980:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "965:3:1"
},
"nodeType": "YulFunctionCall",
"src": "965:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "957:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "789:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "803:4:1",
"type": ""
}
],
"src": "638:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1095:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1105:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1117:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1128:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1113:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1113:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1105:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1147:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1158:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1140:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1140:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "1140:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1064:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1075:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1086:4:1",
"type": ""
}
],
"src": "994:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1224:181:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1259:115:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1280:3:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1289:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1294:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1285:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1285:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1273:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1273:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1273:33:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1326:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1329:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1319:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1319:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1319:15:1"
},
{
"expression": {
"arguments": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1354:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1359:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1347:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1347:17:1"
},
"nodeType": "YulExpressionStatement",
"src": "1347:17:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1240:1:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1247:1:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1243:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1243:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1237:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1237:13:1"
},
"nodeType": "YulIf",
"src": "1234:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1383:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1394:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1397:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1390:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1383:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1207:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1210:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "1216:3:1",
"type": ""
}
],
"src": "1176:229:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1465:325:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1475:22:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1489:1:1",
"type": "",
"value": "1"
},
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1492:4:1"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "1485:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1485:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1475:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1506:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1536:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1542:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1532:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1532:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "1510:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1583:31:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1585:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1599:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1607:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1595:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1595:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1585:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1563:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1556:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1556:26:1"
},
"nodeType": "YulIf",
"src": "1553:2:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1673:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1694:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1701:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1706:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1697:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1697:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1687:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1687:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1687:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1738:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1741:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1731:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1731:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1731:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1766:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1769:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1759:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1759:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1759:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1629:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1652:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1660:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1649:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1649:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1626:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1626:38:1"
},
"nodeType": "YulIf",
"src": "1623:2:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1445:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1454:6:1",
"type": ""
}
],
"src": "1410:380:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60e0604052600e60a08190526d4d657461766572736520446f676560901b60c09081526200003191600291906200062d565b5060408051808201909152600780825266244d56444f474560c81b602090920191825262000062916003916200062d565b50600480546001600160a81b031916747d0a462f1cd4d4fbb49e919310b920fcb613289809178155600580547358ef8b6f341506118ed3019c84ab2ad0f08b58756001600160a01b03199091161781556ddead0000000000000000000000006080526002600c8190556003600d556001600e55600f819055601082905560119290925560129190915560086013556014556000601581905560168190556017819055670de0b6b3a764000060185560195566470de4df820000601a556516bcc41e9000601b55601d805462ffffff60a81b19166201000160a81b1790553480156200014c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060007310ed43c718714eb63d5aa57b78b54704e256024e9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001e157600080fd5b505afa158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c9190620006d3565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026557600080fd5b505afa1580156200027a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a09190620006d3565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002e957600080fd5b505af1158015620002fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003249190620006d3565b601d80546001600160a01b039283166001600160a01b031991821617909155601c80549284169290911682179055601854306000908152600760209081526040808320948352939052918220556001906008906200038a6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260088352208054909216600117909155600e54600d54600c546200040093620003ec9290620016ae620005c0821b17901c565b620005c060201b620016ae1790919060201c565b6015819055506200042b601154620003ec601054600f54620005c060201b620016ae1790919060201c565b60168190555062000456601454620003ec601354601254620005c060201b620016ae1790919060201c565b601755600160096000620004726000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601d549091168152600990925280822080548416600190811790915530835290822080549093168117909255600a90620004e26000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600a8452828120805486166001908117909155601d549092168152600b909352908220805490931617909155601854906006906200054e3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601854604051620005b191815260200190565b60405180910390a3506200075e565b600080620005cf8385620006fc565b905083811015620006265760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b9392505050565b8280546200063b9062000721565b90600052602060002090601f0160209004810192826200065f5760008555620006aa565b82601f106200067a57805160ff1916838001178555620006aa565b82800160010185558215620006aa579182015b82811115620006aa5782518255916020019190600101906200068d565b50620006b8929150620006bc565b5090565b5b80821115620006b85760008155600101620006bd565b600060208284031215620006e5578081fd5b81516001600160a01b038116811462000626578182fd5b600082198211156200071c57634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200073657607f821691505b602082108114156200075857634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c61279f62000784600039600081816105020152610d25015261279f6000f3fe60806040526004361061037a5760003560e01c806382eefb43116101d1578063c816841b11610102578063e207a92b116100a0578063f1d5f5171161006f578063f1d5f51714610a44578063f2fde38b14610a64578063f84ba65d14610a84578063f872858a14610aa457600080fd5b8063e207a92b146109ce578063ec28438a146109ee578063ef422a1814610a0e578063f0cd1dac14610a2e57600080fd5b8063d158272d116100dc578063d158272d1461092c578063da00097d14610951578063dc44b6a014610972578063dd62ed3e1461098857600080fd5b8063c816841b146108c6578063c8607952146108e6578063c867d60b146108fc57600080fd5b8063a457c2d71161016f578063b831671911610149578063b83167191461085a578063c2d4640e14610870578063c49b9a8014610890578063c5d24189146108b057600080fd5b8063a457c2d7146107fa578063a5d69d1f1461081a578063a9059cbb1461083a57600080fd5b80638da5cb5b116101ab5780638da5cb5b1461079c578063914eb66a146107ba57806395d89b41146107cf578063a08e671f146107e457600080fd5b806382eefb431461074057806388790a68146107565780638b42507f1461076c57600080fd5b80633b97084a116102ab5780635881f3ef1161024957806370a082311161022357806370a08231146106be57806375b08937146106f45780637d1db4a514610714578063807c2d9c1461072a57600080fd5b80635881f3ef14610672578063619e1e361461069257806361a23c69146106a857600080fd5b80634b06049a116102855780634b06049a146105ec5780634cb80fd51461060c5780635342acb41461062c57806357a5802f1461065c57600080fd5b80633b97084a1461057b5780633ecad2711461059b5780634a74bb02146105cb57600080fd5b80632198cf6c1161031857806327c8f835116102f257806327c8f835146104f05780632b112e4914610524578063313ce56714610539578063395093511461055b57600080fd5b80632198cf6c1461049057806323b872dd146104b05780632563ae83146104d057600080fd5b8063095ea7b311610354578063095ea7b3146103f35780631694505e1461042357806318160ddd1461045b5780631870517a1461047057600080fd5b80630432ba341461038657806306fdde03146103af57806308733214146103d157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c60145481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b506103c4610ac5565b6040516103a69190612560565b3480156103dd57600080fd5b506103f16103ec3660046124c5565b610b57565b005b3480156103ff57600080fd5b5061041361040e366004612468565b610bb5565b60405190151581526020016103a6565b34801561042f57600080fd5b50601c54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561046757600080fd5b5060185461039c565b34801561047c57600080fd5b506103f161048b3660046124c5565b610bcc565b34801561049c57600080fd5b506103f16104ab366004612434565b610c1b565b3480156104bc57600080fd5b506104136104cb3660046123f4565b610c70565b3480156104dc57600080fd5b506103f16104eb366004612493565b610cdb565b3480156104fc57600080fd5b506104437f000000000000000000000000000000000000000000000000000000000000000081565b34801561053057600080fd5b5061039c610d23565b34801561054557600080fd5b5060045460405160ff90911681526020016103a6565b34801561056757600080fd5b50610413610576366004612468565b610d6d565b34801561058757600080fd5b506103f16105963660046124ad565b610da3565b3480156105a757600080fd5b506104136105b6366004612384565b600b6020526000908152604090205460ff1681565b3480156105d757600080fd5b50601d5461041390600160a81b900460ff1681565b3480156105f857600080fd5b50600554610443906001600160a01b031681565b34801561061857600080fd5b506103f1610627366004612384565b610dd2565b34801561063857600080fd5b50610413610647366004612384565b60086020526000908152604090205460ff1681565b34801561066857600080fd5b5061039c60125481565b34801561067e57600080fd5b5061044361068d366004612384565b610e24565b34801561069e57600080fd5b5061039c60115481565b3480156106b457600080fd5b5061039c60135481565b3480156106ca57600080fd5b5061039c6106d9366004612384565b6001600160a01b031660009081526006602052604090205490565b34801561070057600080fd5b506103f161070f366004612384565b6111b6565b34801561072057600080fd5b5061039c60195481565b34801561073657600080fd5b5061039c601a5481565b34801561074c57600080fd5b5061039c60165481565b34801561076257600080fd5b5061039c600f5481565b34801561077857600080fd5b50610413610787366004612384565b600a6020526000908152604090205460ff1681565b3480156107a857600080fd5b506000546001600160a01b0316610443565b3480156107c657600080fd5b506103f1611202565b3480156107db57600080fd5b506103c4611276565b3480156107f057600080fd5b5061039c60175481565b34801561080657600080fd5b50610413610815366004612468565b611285565b34801561082657600080fd5b506103f1610835366004612493565b6112d4565b34801561084657600080fd5b50610413610855366004612468565b61131c565b34801561086657600080fd5b5061039c600e5481565b34801561087c57600080fd5b506103f161088b3660046124c5565b611329565b34801561089c57600080fd5b506103f16108ab366004612493565b611378565b3480156108bc57600080fd5b5061039c600d5481565b3480156108d257600080fd5b50601d54610443906001600160a01b031681565b3480156108f257600080fd5b5061039c60105481565b34801561090857600080fd5b50610413610917366004612384565b60096020526000908152604090205460ff1681565b34801561093857600080fd5b506004546104439061010090046001600160a01b031681565b34801561095d57600080fd5b50601d5461041390600160b01b900460ff1681565b34801561097e57600080fd5b5061039c600c5481565b34801561099457600080fd5b5061039c6109a33660046123bc565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156109da57600080fd5b506103f16109e9366004612384565b6113fa565b3480156109fa57600080fd5b506103f1610a093660046124ad565b611448565b348015610a1a57600080fd5b506103f1610a29366004612434565b6114eb565b348015610a3a57600080fd5b5061039c60155481565b348015610a5057600080fd5b506103f1610a5f3660046124ad565b611540565b348015610a7057600080fd5b506103f1610a7f366004612384565b61156f565b348015610a9057600080fd5b506103f1610a9f366004612434565b611659565b348015610ab057600080fd5b50601d5461041390600160b81b900460ff1681565b606060028054610ad4906126b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b00906126b3565b8015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050905090565b6000546001600160a01b03163314610b8a5760405162461bcd60e51b8152600401610b81906125b3565b60405180910390fd5b600f83905560108290556011819055610bad81610ba785856116ae565b906116ae565b601655505050565b6000610bc233848461170d565b5060015b92915050565b6000546001600160a01b03163314610bf65760405162461bcd60e51b8152600401610b81906125b3565b600c839055600d829055600e819055610c1381610ba785856116ae565b601555505050565b6000546001600160a01b03163314610c455760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c7d848484611831565b50610cd08433610ccb8560405180606001604052806028815260200161271d602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611c00565b61170d565b5060015b9392505050565b6000546001600160a01b03163314610d055760405162461bcd60e51b8152600401610b81906125b3565b601d8054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260066020526040812054601854610d6891611c3a565b905090565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610bc2918590610ccb90866116ae565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b8152600401610b81906125b3565b601b55565b6000546001600160a01b03163314610dfc5760405162461bcd60e51b8152600401610b81906125b3565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610e4f5760405162461bcd60e51b8152600401610b81906125b3565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8d57600080fd5b505afa158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec591906123a0565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0d57600080fd5b505afa158015610f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4591906123a0565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610f8b57600080fd5b505afa158015610f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc391906123a0565b91506001600160a01b03821661114757806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561100c57600080fd5b505afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104491906123a0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108c57600080fd5b505afa1580156110a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c491906123a0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561110c57600080fd5b505af1158015611120573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114491906123a0565b91505b601d80546001600160a01b03199081166001600160a01b038581169182178455601c8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146111e05760405162461bcd60e51b8152600401610b81906125b3565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461122c5760405162461bcd60e51b8152600401610b81906125b3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610ad4906126b3565b6000610bc23384610ccb85604051806060016040528060258152602001612745602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611c00565b6000546001600160a01b031633146112fe5760405162461bcd60e51b8152600401610b81906125b3565b601d8054911515600160b01b0260ff60b01b19909216919091179055565b6000610cd0338484611831565b6000546001600160a01b031633146113535760405162461bcd60e51b8152600401610b81906125b3565b60128390556013829055601481905561137081610ba785856116ae565b601755505050565b6000546001600160a01b031633146113a25760405162461bcd60e51b8152600401610b81906125b3565b601d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906113ef90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114245760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146114725760405162461bcd60e51b8152600401610b81906125b3565b668e1bc9bf0400008111156114e65760405162461bcd60e51b815260206004820152603460248201527f4d61782077616c6c65742073686f756c64206265206c657373206f7220657571604482015273616c20746f20342520746f74616c537570706c7960601b6064820152608401610b81565b601955565b6000546001600160a01b031633146115155760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461156a5760405162461bcd60e51b8152600401610b81906125b3565b601a55565b6000546001600160a01b031633146115995760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b0381166115fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b81565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146116835760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000806116bb8385612645565b905083811015610cd45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b81565b6001600160a01b03831661176f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b81565b6001600160a01b0382166117d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b81565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166118975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b81565b6001600160a01b0383166118f95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b81565b601d54600160a01b900460ff161561191d57611916848484611c7c565b9050610cd4565b6001600160a01b0384166000908152600a602052604090205460ff1615801561195f57506001600160a01b0383166000908152600a602052604090205460ff16155b156119c7576019548211156119c75760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b81565b30600090815260066020526040902054601b54811080159081906119f55750601d54600160a01b900460ff16155b8015611a1a57506001600160a01b0386166000908152600b602052604090205460ff16155b8015611a2f5750601d54600160a81b900460ff165b15611a5557601d54600160b01b900460ff1615611a4c57601b5491505b611a5582611d62565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611aa7918690611c00565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611af457506001600160a01b03861660009081526008602052604090205460ff165b611b0857611b03878787611e9d565b611b0a565b845b601d54909150600160b81b900460ff168015611b3f57506001600160a01b03861660009081526009602052604090205460ff16155b15611b7557601a54611b6a82610ba7896001600160a01b031660009081526006602052604090205490565b1115611b7557600080fd5b6001600160a01b038616600090815260066020526040902054611b9890826116ae565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bec9085815260200190565b60405180910390a360019350505050610cd4565b60008184841115611c245760405162461bcd60e51b8152600401610b819190612560565b506000611c31848661269c565b95945050505050565b6000610cd483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c00565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611ccd918490611c00565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611cfc90836116ae565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d509086815260200190565b60405180910390a35060019392505050565b601d805460ff60a01b1916600160a01b179055601754601254600091611d9891600291611d929182908790611fa3565b90612022565b90506000611da68383611c3a565b9050611db181612064565b6012544790600090611dd190611dc8906002612022565b60175490611c3a565b90506000611df36002611d9284611d9260125488611fa390919063ffffffff16565b90506000611e1083611d9260145487611fa390919063ffffffff16565b90506000611e2882611e228786611c3a565b90611c3a565b90508015611e4b57600454611e4b9061010090046001600160a01b031682612222565b8115611e6757600554611e67906001600160a01b031683612222565b600083118015611e775750600087115b15611e8657611e86878461225d565b5050601d805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611ee157611eda6064611d9260155486611fa390919063ffffffff16565b9050611f1f565b6001600160a01b0384166000908152600b602052604090205460ff1615611f1f57611f1c6064611d9260165486611fa390919063ffffffff16565b90505b8015611f995730600090815260066020526040902054611f3f90826116ae565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f909085815260200190565b60405180910390a35b611c318382611c3a565b600082611fb257506000610bc6565b6000611fbe838561267d565b905082611fcb858361265d565b14610cd45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b81565b6000610cd483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612341565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120a757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120fb57600080fd5b505afa15801561210f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213391906123a0565b8160018151811061215457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601c5461217a913091168461170d565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906121b3908590600090869030904290600401612609565b600060405180830381600087803b1580156121cd57600080fd5b505af11580156121e1573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516122169291906125e8565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612258573d6000803e3d6000fd5b505050565b601c546122759030906001600160a01b03168461170d565b601c546001600160a01b031663f305d71982308560008061229e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561230157600080fd5b505af1158015612315573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061233a91906124f0565b5050505050565b600081836123625760405162461bcd60e51b8152600401610b819190612560565b506000611c31848661265d565b8035801515811461237f57600080fd5b919050565b600060208284031215612395578081fd5b8135610cd481612704565b6000602082840312156123b1578081fd5b8151610cd481612704565b600080604083850312156123ce578081fd5b82356123d981612704565b915060208301356123e981612704565b809150509250929050565b600080600060608486031215612408578081fd5b833561241381612704565b9250602084013561242381612704565b929592945050506040919091013590565b60008060408385031215612446578182fd5b823561245181612704565b915061245f6020840161236f565b90509250929050565b6000806040838503121561247a578182fd5b823561248581612704565b946020939093013593505050565b6000602082840312156124a4578081fd5b610cd48261236f565b6000602082840312156124be578081fd5b5035919050565b6000806000606084860312156124d9578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215612504578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156125555781516001600160a01b031687529582019590820190600101612530565b509495945050505050565b6000602080835283518082850152825b8181101561258c57858101830151858201604001528201612570565b8181111561259d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612601604083018461251d565b949350505050565b85815284602082015260a06040820152600061262860a083018661251d565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612658576126586126ee565b500190565b60008261267857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612697576126976126ee565b500290565b6000828210156126ae576126ae6126ee565b500390565b600181811c908216806126c757607f821691505b602082108114156126e857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461271957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205ed1a2e63ccb3b0f8427b21cb176a30b5804c82660c7dc3a647b43fd8281213964736f6c63430008040033",
"opcodes": "PUSH1 0xE0 PUSH1 0x40 MSTORE PUSH1 0xE PUSH1 0xA0 DUP2 SWAP1 MSTORE PUSH14 0x4D657461766572736520446F6765 PUSH1 0x90 SHL PUSH1 0xC0 SWAP1 DUP2 MSTORE PUSH3 0x31 SWAP2 PUSH1 0x2 SWAP2 SWAP1 PUSH3 0x62D JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP1 DUP3 MSTORE PUSH7 0x244D56444F4745 PUSH1 0xC8 SHL PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 DUP3 MSTORE PUSH3 0x62 SWAP2 PUSH1 0x3 SWAP2 PUSH3 0x62D JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH21 0x7D0A462F1CD4D4FBB49E919310B920FCB613289809 OR DUP2 SSTORE PUSH1 0x5 DUP1 SLOAD PUSH20 0x58EF8B6F341506118ED3019C84AB2AD0F08B5875 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND OR DUP2 SSTORE PUSH14 0xDEAD000000000000000000000000 PUSH1 0x80 MSTORE PUSH1 0x2 PUSH1 0xC DUP2 SWAP1 SSTORE PUSH1 0x3 PUSH1 0xD SSTORE PUSH1 0x1 PUSH1 0xE SSTORE PUSH1 0xF DUP2 SWAP1 SSTORE PUSH1 0x10 DUP3 SWAP1 SSTORE PUSH1 0x11 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x12 SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x8 PUSH1 0x13 SSTORE PUSH1 0x14 SSTORE PUSH1 0x0 PUSH1 0x15 DUP2 SWAP1 SSTORE PUSH1 0x16 DUP2 SWAP1 SSTORE PUSH1 0x17 DUP2 SWAP1 SSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x18 SSTORE PUSH1 0x19 SSTORE PUSH7 0x470DE4DF820000 PUSH1 0x1A SSTORE PUSH6 0x16BCC41E9000 PUSH1 0x1B SSTORE PUSH1 0x1D DUP1 SLOAD PUSH3 0xFFFFFF PUSH1 0xA8 SHL NOT AND PUSH3 0x10001 PUSH1 0xA8 SHL OR SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x14C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP3 SWAP1 LOG3 POP PUSH1 0x0 PUSH20 0x10ED43C718714EB63D5AA57B78B54704E256024E SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC45A0155 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x1E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x1F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x21C SWAP2 SWAP1 PUSH3 0x6D3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC9C65396 ADDRESS DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x27A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x2A0 SWAP2 SWAP1 PUSH3 0x6D3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x2FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x324 SWAP2 SWAP1 PUSH3 0x6D3 JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x1C DUP1 SLOAD SWAP3 DUP5 AND SWAP3 SWAP1 SWAP2 AND DUP3 OR SWAP1 SSTORE PUSH1 0x18 SLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 DUP3 KECCAK256 SSTORE PUSH1 0x1 SWAP1 PUSH1 0x8 SWAP1 PUSH3 0x38A PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 DUP2 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP5 ISZERO ISZERO PUSH1 0xFF NOT SWAP6 DUP7 AND OR SWAP1 SSTORE ADDRESS DUP2 MSTORE PUSH1 0x8 DUP4 MSTORE KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND PUSH1 0x1 OR SWAP1 SWAP2 SSTORE PUSH1 0xE SLOAD PUSH1 0xD SLOAD PUSH1 0xC SLOAD PUSH3 0x400 SWAP4 PUSH3 0x3EC SWAP3 SWAP1 PUSH3 0x16AE PUSH3 0x5C0 DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH3 0x5C0 PUSH1 0x20 SHL PUSH3 0x16AE OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x15 DUP2 SWAP1 SSTORE POP PUSH3 0x42B PUSH1 0x11 SLOAD PUSH3 0x3EC PUSH1 0x10 SLOAD PUSH1 0xF SLOAD PUSH3 0x5C0 PUSH1 0x20 SHL PUSH3 0x16AE OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x16 DUP2 SWAP1 SSTORE POP PUSH3 0x456 PUSH1 0x14 SLOAD PUSH3 0x3EC PUSH1 0x13 SLOAD PUSH1 0x12 SLOAD PUSH3 0x5C0 PUSH1 0x20 SHL PUSH3 0x16AE OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x17 SSTORE PUSH1 0x1 PUSH1 0x9 PUSH1 0x0 PUSH3 0x472 PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP6 ISZERO ISZERO PUSH1 0xFF NOT SWAP7 DUP8 AND OR SWAP1 SSTORE PUSH1 0x1D SLOAD SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x9 SWAP1 SWAP3 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP5 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE ADDRESS DUP4 MSTORE SWAP1 DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP4 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0xA SWAP1 PUSH3 0x4E2 PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD PUSH1 0x0 SWAP1 DUP2 KECCAK256 DUP1 SLOAD SWAP6 ISZERO ISZERO PUSH1 0xFF NOT SWAP7 DUP8 AND OR SWAP1 SSTORE ADDRESS DUP2 MSTORE PUSH1 0xA DUP5 MSTORE DUP3 DUP2 KECCAK256 DUP1 SLOAD DUP7 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x1D SLOAD SWAP1 SWAP3 AND DUP2 MSTORE PUSH1 0xB SWAP1 SWAP4 MSTORE SWAP1 DUP3 KECCAK256 DUP1 SLOAD SWAP1 SWAP4 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x18 SLOAD SWAP1 PUSH1 0x6 SWAP1 PUSH3 0x54E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SSTORE CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH3 0x5B1 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH3 0x75E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH3 0x5CF DUP4 DUP6 PUSH3 0x6FC JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH3 0x626 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x63B SWAP1 PUSH3 0x721 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x65F JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x6AA JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x67A JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x6AA JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x6AA JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x6AA JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x68D JUMP JUMPDEST POP PUSH3 0x6B8 SWAP3 SWAP2 POP PUSH3 0x6BC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x6B8 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x6BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x6E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x626 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x71C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x736 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x758 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x279F PUSH3 0x784 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x502 ADD MSTORE PUSH2 0xD25 ADD MSTORE PUSH2 0x279F PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x82EEFB43 GT PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xC816841B GT PUSH2 0x102 JUMPI DUP1 PUSH4 0xE207A92B GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xF1D5F517 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xF1D5F517 EQ PUSH2 0xA44 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA64 JUMPI DUP1 PUSH4 0xF84BA65D EQ PUSH2 0xA84 JUMPI DUP1 PUSH4 0xF872858A EQ PUSH2 0xAA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE207A92B EQ PUSH2 0x9CE JUMPI DUP1 PUSH4 0xEC28438A EQ PUSH2 0x9EE JUMPI DUP1 PUSH4 0xEF422A18 EQ PUSH2 0xA0E JUMPI DUP1 PUSH4 0xF0CD1DAC EQ PUSH2 0xA2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD158272D GT PUSH2 0xDC JUMPI DUP1 PUSH4 0xD158272D EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xDA00097D EQ PUSH2 0x951 JUMPI DUP1 PUSH4 0xDC44B6A0 EQ PUSH2 0x972 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x988 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC816841B EQ PUSH2 0x8C6 JUMPI DUP1 PUSH4 0xC8607952 EQ PUSH2 0x8E6 JUMPI DUP1 PUSH4 0xC867D60B EQ PUSH2 0x8FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x16F JUMPI DUP1 PUSH4 0xB8316719 GT PUSH2 0x149 JUMPI DUP1 PUSH4 0xB8316719 EQ PUSH2 0x85A JUMPI DUP1 PUSH4 0xC2D4640E EQ PUSH2 0x870 JUMPI DUP1 PUSH4 0xC49B9A80 EQ PUSH2 0x890 JUMPI DUP1 PUSH4 0xC5D24189 EQ PUSH2 0x8B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x7FA JUMPI DUP1 PUSH4 0xA5D69D1F EQ PUSH2 0x81A JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x83A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1AB JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x79C JUMPI DUP1 PUSH4 0x914EB66A EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x7CF JUMPI DUP1 PUSH4 0xA08E671F EQ PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x82EEFB43 EQ PUSH2 0x740 JUMPI DUP1 PUSH4 0x88790A68 EQ PUSH2 0x756 JUMPI DUP1 PUSH4 0x8B42507F EQ PUSH2 0x76C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3B97084A GT PUSH2 0x2AB JUMPI DUP1 PUSH4 0x5881F3EF GT PUSH2 0x249 JUMPI DUP1 PUSH4 0x70A08231 GT PUSH2 0x223 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x6BE JUMPI DUP1 PUSH4 0x75B08937 EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0x7D1DB4A5 EQ PUSH2 0x714 JUMPI DUP1 PUSH4 0x807C2D9C EQ PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5881F3EF EQ PUSH2 0x672 JUMPI DUP1 PUSH4 0x619E1E36 EQ PUSH2 0x692 JUMPI DUP1 PUSH4 0x61A23C69 EQ PUSH2 0x6A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4B06049A GT PUSH2 0x285 JUMPI DUP1 PUSH4 0x4B06049A EQ PUSH2 0x5EC JUMPI DUP1 PUSH4 0x4CB80FD5 EQ PUSH2 0x60C JUMPI DUP1 PUSH4 0x5342ACB4 EQ PUSH2 0x62C JUMPI DUP1 PUSH4 0x57A5802F EQ PUSH2 0x65C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3B97084A EQ PUSH2 0x57B JUMPI DUP1 PUSH4 0x3ECAD271 EQ PUSH2 0x59B JUMPI DUP1 PUSH4 0x4A74BB02 EQ PUSH2 0x5CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2198CF6C GT PUSH2 0x318 JUMPI DUP1 PUSH4 0x27C8F835 GT PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x27C8F835 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0x2B112E49 EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x539 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2198CF6C EQ PUSH2 0x490 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x4B0 JUMPI DUP1 PUSH4 0x2563AE83 EQ PUSH2 0x4D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x354 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x1694505E EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x45B JUMPI DUP1 PUSH4 0x1870517A EQ PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x432BA34 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x8733214 EQ PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x381 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x14 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C4 PUSH2 0xAC5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A6 SWAP2 SWAP1 PUSH2 0x2560 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x3EC CALLDATASIZE PUSH1 0x4 PUSH2 0x24C5 JUMP JUMPDEST PUSH2 0xB57 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x2468 JUMP JUMPDEST PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1C SLOAD PUSH2 0x443 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x18 SLOAD PUSH2 0x39C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x48B CALLDATASIZE PUSH1 0x4 PUSH2 0x24C5 JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x4AB CALLDATASIZE PUSH1 0x4 PUSH2 0x2434 JUMP JUMPDEST PUSH2 0xC1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x4CB CALLDATASIZE PUSH1 0x4 PUSH2 0x23F4 JUMP JUMPDEST PUSH2 0xC70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x4EB CALLDATASIZE PUSH1 0x4 PUSH2 0x2493 JUMP JUMPDEST PUSH2 0xCDB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0xD23 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x545 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x576 CALLDATASIZE PUSH1 0x4 PUSH2 0x2468 JUMP JUMPDEST PUSH2 0xD6D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x596 CALLDATASIZE PUSH1 0x4 PUSH2 0x24AD JUMP JUMPDEST PUSH2 0xDA3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x5B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1D SLOAD PUSH2 0x413 SWAP1 PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH2 0x443 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x618 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x627 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0xDD2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x638 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x647 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x668 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x12 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x68D CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0xE24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x6D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x70F CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0x11B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x19 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x1A SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x787 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x443 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x1202 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C4 PUSH2 0x1276 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x17 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x806 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x815 CALLDATASIZE PUSH1 0x4 PUSH2 0x2468 JUMP JUMPDEST PUSH2 0x1285 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x835 CALLDATASIZE PUSH1 0x4 PUSH2 0x2493 JUMP JUMPDEST PUSH2 0x12D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x855 CALLDATASIZE PUSH1 0x4 PUSH2 0x2468 JUMP JUMPDEST PUSH2 0x131C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x88B CALLDATASIZE PUSH1 0x4 PUSH2 0x24C5 JUMP JUMPDEST PUSH2 0x1329 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x8AB CALLDATASIZE PUSH1 0x4 PUSH2 0x2493 JUMP JUMPDEST PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0xD SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1D SLOAD PUSH2 0x443 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x908 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x917 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x443 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1D SLOAD PUSH2 0x413 SWAP1 PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x9A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23BC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x9E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0x13FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA09 CALLDATASIZE PUSH1 0x4 PUSH2 0x24AD JUMP JUMPDEST PUSH2 0x1448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA29 CALLDATASIZE PUSH1 0x4 PUSH2 0x2434 JUMP JUMPDEST PUSH2 0x14EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x15 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA5F CALLDATASIZE PUSH1 0x4 PUSH2 0x24AD JUMP JUMPDEST PUSH2 0x1540 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA7F CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0x156F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA9F CALLDATASIZE PUSH1 0x4 PUSH2 0x2434 JUMP JUMPDEST PUSH2 0x1659 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1D SLOAD PUSH2 0x413 SWAP1 PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0xAD4 SWAP1 PUSH2 0x26B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB00 SWAP1 PUSH2 0x26B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB4D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB22 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB4D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB30 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP4 SWAP1 SSTORE PUSH1 0x10 DUP3 SWAP1 SSTORE PUSH1 0x11 DUP2 SWAP1 SSTORE PUSH2 0xBAD DUP2 PUSH2 0xBA7 DUP6 DUP6 PUSH2 0x16AE JUMP JUMPDEST SWAP1 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x16 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC2 CALLER DUP5 DUP5 PUSH2 0x170D JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0xC DUP4 SWAP1 SSTORE PUSH1 0xD DUP3 SWAP1 SSTORE PUSH1 0xE DUP2 SWAP1 SSTORE PUSH2 0xC13 DUP2 PUSH2 0xBA7 DUP6 DUP6 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x15 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7D DUP5 DUP5 DUP5 PUSH2 0x1831 JUMP JUMPDEST POP PUSH2 0xCD0 DUP5 CALLER PUSH2 0xCCB DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x271D PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1C00 JUMP JUMPDEST PUSH2 0x170D JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0xB8 SHL MUL PUSH1 0xFF PUSH1 0xB8 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x18 SLOAD PUSH2 0xD68 SWAP2 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0xBC2 SWAP2 DUP6 SWAP1 PUSH2 0xCCB SWAP1 DUP7 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDCD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1B SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDFC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xE4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC45A0155 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEC5 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE6A43905 ADDRESS DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF21 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF45 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFC3 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1147 JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC45A0155 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x100C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1020 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1044 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC9C65396 ADDRESS DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x108C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C4 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x110C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1120 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH1 0x1D DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x1C DUP1 SLOAD SWAP1 SWAP4 AND SWAP5 DUP2 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP2 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP3 SSTORE SWAP5 SLOAD SWAP1 SWAP6 AND DUP4 MSTORE PUSH1 0xB SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x122C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP4 SWAP1 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0xAD4 SWAP1 PUSH2 0x26B3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC2 CALLER DUP5 PUSH2 0xCCB DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2745 PUSH1 0x25 SWAP2 CODECOPY CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1C00 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x12FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH1 0xFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD0 CALLER DUP5 DUP5 PUSH2 0x1831 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1353 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x12 DUP4 SWAP1 SSTORE PUSH1 0x13 DUP3 SWAP1 SSTORE PUSH1 0x14 DUP2 SWAP1 SSTORE PUSH2 0x1370 DUP2 PUSH2 0xBA7 DUP6 DUP6 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x17 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD DUP3 ISZERO ISZERO PUSH1 0x1 PUSH1 0xA8 SHL MUL PUSH1 0xFF PUSH1 0xA8 SHL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x53726DFCAF90650AA7EB35524F4D3220F07413C8D6CB404CC8C18BF5591BC159 SWAP1 PUSH2 0x13EF SWAP1 DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1424 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1472 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH7 0x8E1BC9BF040000 DUP2 GT ISZERO PUSH2 0x14E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D61782077616C6C65742073686F756C64206265206C657373206F7220657571 PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x616C20746F20342520746F74616C537570706C79 PUSH1 0x60 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x19 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1515 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x156A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1A SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1599 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1683 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x16BB DUP4 DUP6 PUSH2 0x2645 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x176F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x17D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x18F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1D SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x191D JUMPI PUSH2 0x1916 DUP5 DUP5 DUP5 PUSH2 0x1C7C JUMP JUMPDEST SWAP1 POP PUSH2 0xCD4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x195F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x19C7 JUMPI PUSH1 0x19 SLOAD DUP3 GT ISZERO PUSH2 0x19C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657220616D6F756E74206578636565647320746865206D617854 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x3C20B6B7BAB73A17 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1B SLOAD DUP2 LT DUP1 ISZERO SWAP1 DUP2 SWAP1 PUSH2 0x19F5 JUMPI POP PUSH1 0x1D SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1A1A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1A2F JUMPI POP PUSH1 0x1D SLOAD PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1A55 JUMPI PUSH1 0x1D SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1A4C JUMPI PUSH1 0x1B SLOAD SWAP2 POP JUMPDEST PUSH2 0x1A55 DUP3 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH20 0x496E73756666696369656E742042616C616E6365 PUSH1 0x60 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x1AA7 SWAP2 DUP7 SWAP1 PUSH2 0x1C00 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 PUSH2 0x1AF4 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST PUSH2 0x1B08 JUMPI PUSH2 0x1B03 DUP8 DUP8 DUP8 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1B0A JUMP JUMPDEST DUP5 JUMPDEST PUSH1 0x1D SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x1B3F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x1B75 JUMPI PUSH1 0x1A SLOAD PUSH2 0x1B6A DUP3 PUSH2 0xBA7 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST GT ISZERO PUSH2 0x1B75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1B98 SWAP1 DUP3 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD SWAP1 DUP10 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x1BEC SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xCD4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x1C24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP2 SWAP1 PUSH2 0x2560 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1C31 DUP5 DUP7 PUSH2 0x269C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1C00 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH20 0x496E73756666696369656E742042616C616E6365 PUSH1 0x60 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP2 DUP3 KECCAK256 SLOAD PUSH2 0x1CCD SWAP2 DUP5 SWAP1 PUSH2 0x1C00 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x1CFC SWAP1 DUP4 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD SWAP1 DUP7 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x1D50 SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH1 0x17 SLOAD PUSH1 0x12 SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1D98 SWAP2 PUSH1 0x2 SWAP2 PUSH2 0x1D92 SWAP2 DUP3 SWAP1 DUP8 SWAP1 PUSH2 0x1FA3 JUMP JUMPDEST SWAP1 PUSH2 0x2022 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DA6 DUP4 DUP4 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 POP PUSH2 0x1DB1 DUP2 PUSH2 0x2064 JUMP JUMPDEST PUSH1 0x12 SLOAD SELFBALANCE SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1DD1 SWAP1 PUSH2 0x1DC8 SWAP1 PUSH1 0x2 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x17 SLOAD SWAP1 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DF3 PUSH1 0x2 PUSH2 0x1D92 DUP5 PUSH2 0x1D92 PUSH1 0x12 SLOAD DUP9 PUSH2 0x1FA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1E10 DUP4 PUSH2 0x1D92 PUSH1 0x14 SLOAD DUP8 PUSH2 0x1FA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1E28 DUP3 PUSH2 0x1E22 DUP8 DUP7 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1E4B JUMPI PUSH1 0x4 SLOAD PUSH2 0x1E4B SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH2 0x2222 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1E67 JUMPI PUSH1 0x5 SLOAD PUSH2 0x1E67 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x2222 JUMP JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x1E77 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO PUSH2 0x1E86 JUMPI PUSH2 0x1E86 DUP8 DUP5 PUSH2 0x225D JUMP JUMPDEST POP POP PUSH1 0x1D DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x1EE1 JUMPI PUSH2 0x1EDA PUSH1 0x64 PUSH2 0x1D92 PUSH1 0x15 SLOAD DUP7 PUSH2 0x1FA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x1F1F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1F1F JUMPI PUSH2 0x1F1C PUSH1 0x64 PUSH2 0x1D92 PUSH1 0x16 SLOAD DUP7 PUSH2 0x1FA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP JUMPDEST DUP1 ISZERO PUSH2 0x1F99 JUMPI ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F3F SWAP1 DUP3 PUSH2 0x16AE JUMP JUMPDEST ADDRESS PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x1F90 SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST PUSH2 0x1C31 DUP4 DUP3 PUSH2 0x1C3A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1FB2 JUMPI POP PUSH1 0x0 PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FBE DUP4 DUP6 PUSH2 0x267D JUMP JUMPDEST SWAP1 POP DUP3 PUSH2 0x1FCB DUP6 DUP4 PUSH2 0x265D JUMP JUMPDEST EQ PUSH2 0xCD4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206D756C7469706C69636174696F6E206F766572666C6F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x77 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH2 0x2341 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD DUP4 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP ADDRESS DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x20A7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1C SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x15AB88C9 PUSH1 0xE3 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP4 AND SWAP3 PUSH4 0xAD5C4648 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x210F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2133 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2154 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD ADD MSTORE PUSH1 0x1C SLOAD PUSH2 0x217A SWAP2 ADDRESS SWAP2 AND DUP5 PUSH2 0x170D JUMP JUMPDEST PUSH1 0x1C SLOAD PUSH1 0x40 MLOAD PUSH4 0x791AC947 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x791AC947 SWAP1 PUSH2 0x21B3 SWAP1 DUP6 SWAP1 PUSH1 0x0 SWAP1 DUP7 SWAP1 ADDRESS SWAP1 TIMESTAMP SWAP1 PUSH1 0x4 ADD PUSH2 0x2609 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x32CDE87EB454F3A0B875AB23547023107CFAD454363EC88BA5695E2C24AA52A7 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2216 SWAP3 SWAP2 SWAP1 PUSH2 0x25E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP3 ISZERO PUSH2 0x8FC MUL SWAP1 DUP4 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2258 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1C SLOAD PUSH2 0x2275 SWAP1 ADDRESS SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH2 0x170D JUMP JUMPDEST PUSH1 0x1C SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF305D719 DUP3 ADDRESS DUP6 PUSH1 0x0 DUP1 PUSH2 0x229E PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP9 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x44 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x64 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x84 DUP3 ADD MSTORE TIMESTAMP PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2315 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x233A SWAP2 SWAP1 PUSH2 0x24F0 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP2 SWAP1 PUSH2 0x2560 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1C31 DUP5 DUP7 PUSH2 0x265D JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x237F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2395 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCD4 DUP2 PUSH2 0x2704 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCD4 DUP2 PUSH2 0x2704 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23CE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x23D9 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23E9 DUP2 PUSH2 0x2704 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2408 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x2413 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2423 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2446 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2451 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP2 POP PUSH2 0x245F PUSH1 0x20 DUP5 ADD PUSH2 0x236F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x247A JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2485 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24A4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCD4 DUP3 PUSH2 0x236F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24BE JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24D9 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2504 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2555 JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2530 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x2570 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x259D JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2601 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x251D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP6 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2628 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x251D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2658 JUMPI PUSH2 0x2658 PUSH2 0x26EE JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2678 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2697 JUMPI PUSH2 0x2697 PUSH2 0x26EE JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x26AE JUMPI PUSH2 0x26AE PUSH2 0x26EE JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x26C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x26E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 0x5E 0xD1 LOG2 0xE6 EXTCODECOPY 0xCB EXTCODESIZE 0xF DUP5 0x27 0xB2 SHR 0xB1 PUSH23 0xA30B5804C82660C7DC3A647B43FD8281213964736F6C63 NUMBER STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "14136:39:0:-:0;14006:14453;14136:39;;14006:14453;14136:39;;;-1:-1:-1;;;14136:39:0;;;;;;;;;;:::i;:::-;-1:-1:-1;14181:34:0;;;;;;;;;;;;;-1:-1:-1;;;14181:34:0;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14221:27:0;;;-1:-1:-1;;;;;;14255:99:0;;;;;14381:97;;;14435:42;-1:-1:-1;;;;;;14381:97:0;;;;;;14503:81;;;14973:1;14939:35;;;;15014:1;14980:35;;-1:-1:-1;15021:33:0;;15060:36;;;;15102;;;;15144:34;;;;;15185;;;;;15258:1;15225:34;;15265:32;;-1:-1:-1;15304:36:0;;;;15346:37;;;;15389:43;;;;15470:20;15439:51;;15496:31;;15582:18;15554:46;;15648:13;15606:55;;15780:40;;;-1:-1:-1;;;;15877:35:0;-1:-1:-1;;;15877:35:0;;;16400:1188;;;;;;;;;-1:-1:-1;5635:17:0;5677:18;;-1:-1:-1;;;;;;5677:18:0;340:10;5677:18;;;;;5710:43;;340:10;;;;5710:43;;5635:17;;5710:43;5610:150;16434:35;16491:42;16434:100;;16578:16;-1:-1:-1;;;;;16578:24:0;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16560:69:0;;16638:4;16645:16;-1:-1:-1;;;;;16645:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16560:109;;-1:-1:-1;;;;;;16560:109:0;;;;;;;-1:-1:-1;;;;;559:15:1;;;16560:109:0;;;541:34:1;611:15;;591:18;;;584:43;476:18;;16560:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16546:11;:123;;-1:-1:-1;;;;;16546:123:0;;;-1:-1:-1;;;;;;16546:123:0;;;;;;;16680:15;:34;;;;;;;;;;;;;16779:12;;16744:4;16546:11;16724:26;;;:11;:26;;;;;;;;:52;;;;;;;;;:67;16546:123;;16802:17;;16820:7;5804;5830:6;-1:-1:-1;;;;;5830:6:0;;5766:77;16820:7;-1:-1:-1;;;;;16802:26:0;;;;;;;;;;;;;;;-1:-1:-1;16802:26:0;;;:33;;;;;-1:-1:-1;;16802:33:0;;;;;;16871:4;16845:32;;:17;:32;;;:39;;;;;16802:33;16845:39;;;;16966:14;;16944:16;;16923;;:58;;:38;;16944:16;16923:20;;;;;:38;;:::i;:::-;:42;;;;;;:58;;;;:::i;:::-;16903:17;:78;;;;17012:61;17057:15;;17012:40;17034:17;;17012;;:21;;;;;;:40;;;;:::i;:61::-;16991:18;:82;;;;17110:55;17151:13;;17110:36;17130:15;;17110;;:19;;;;;;:36;;;;:::i;:55::-;17083:24;:82;17207:4;17176:19;:28;17196:7;5804;5830:6;-1:-1:-1;;;;;5830:6:0;;5766:77;17196:7;-1:-1:-1;;;;;17176:28:0;;;;;;;;;;;;;;;;;-1:-1:-1;17176:28:0;;;:35;;;;;-1:-1:-1;;17176:35:0;;;;;;17249:11;;;;;17221:41;;:19;:41;;;;;;:48;;;;17176:35;17221:48;;;;;;17307:4;17279:34;;;;;:41;;;;;;;;;;17339:15;;17355:7;5804;5830:6;-1:-1:-1;;;;;5830:6:0;;5766:77;17355:7;-1:-1:-1;;;;;17339:24:0;;;;;;;;;;;;;;;;;-1:-1:-1;17339:24:0;;;:31;;;;;-1:-1:-1;;17339:31:0;;;;;;17404:4;17380:30;;:15;:30;;;;;:37;;;;17339:31;17380:37;;;;;;17449:11;;;;;17428:34;;:12;:34;;;;;;:41;;;;;;;;;17506:12;;;17480:9;;17490:12;340:10;;245:113;17490:12;-1:-1:-1;;;;;17480:23:0;;;;;;;;;;;;-1:-1:-1;17480:23:0;:38;340:10;-1:-1:-1;;;;;17533:48:0;17550:1;-1:-1:-1;;;;;17533:48:0;;17568:12;;17533:48;;;;1140:25:1;;1128:2;1113:18;;1095:76;17533:48:0;;;;;;;;16400:1188;14006:14453;;1289:176;1347:7;;1378:5;1382:1;1378;:5;:::i;:::-;1366:17;;1406:1;1401;:6;;1393:46;;;;-1:-1:-1;;;1393:46:0;;840:2:1;1393:46:0;;;822:21:1;879:2;859:18;;;852:30;918:29;898:18;;;891:57;965:18;;1393:46:0;;;;;;;;1457:1;1289:176;-1:-1:-1;;;1289:176:0:o;14006:14453::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14006:14453:0;;;-1:-1:-1;14006:14453:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:310:1;84:6;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:1;;224:42;;214:2;;285:6;277;270:22;1176:229;1216:3;1247:1;1243:6;1240:1;1237:13;1234:2;;;-1:-1:-1;;;1273:33:1;;1329:4;1326:1;1319:15;1359:4;1280:3;1347:17;1234:2;-1:-1:-1;1390:9:1;;1224:181::o;1410:380::-;1489:1;1485:12;;;;1532;;;1553:2;;1607:4;1599:6;1595:17;1585:27;;1553:2;1660;1652:6;1649:14;1629:18;1626:38;1623:2;;;1706:10;1701:3;1697:20;1694:1;1687:31;1741:4;1738:1;1731:15;1769:4;1766:1;1759:15;1623:2;;1465:325;;;:::o;:::-;14006:14453:0;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:12716:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "60:114:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "70:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "92:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "79:12:1"
},
"nodeType": "YulFunctionCall",
"src": "79:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "70:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "152:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "161:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "164:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "154:6:1"
},
"nodeType": "YulFunctionCall",
"src": "154:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "154:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "121:5:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "142:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "135:6:1"
},
"nodeType": "YulFunctionCall",
"src": "135:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "128:6:1"
},
"nodeType": "YulFunctionCall",
"src": "128:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "118:2:1"
},
"nodeType": "YulFunctionCall",
"src": "118:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "111:6:1"
},
"nodeType": "YulFunctionCall",
"src": "111:40:1"
},
"nodeType": "YulIf",
"src": "108:2:1"
}
]
},
"name": "abi_decode_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "39:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "50:5:1",
"type": ""
}
],
"src": "14:160:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "249:187:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "295:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "304:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "312:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "297:6:1"
},
"nodeType": "YulFunctionCall",
"src": "297:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "297:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "270:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "279:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "266:3:1"
},
"nodeType": "YulFunctionCall",
"src": "266:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "291:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "262:3:1"
},
"nodeType": "YulFunctionCall",
"src": "262:32:1"
},
"nodeType": "YulIf",
"src": "259:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "330:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "356:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "343:12:1"
},
"nodeType": "YulFunctionCall",
"src": "343:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "334:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "375:24:1"
},
"nodeType": "YulFunctionCall",
"src": "375:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "375:31:1"
},
{
"nodeType": "YulAssignment",
"src": "415:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "425:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "415:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "215:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "226:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "238:6:1",
"type": ""
}
],
"src": "179:257:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "522:180:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "568:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "577:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "585:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "570:6:1"
},
"nodeType": "YulFunctionCall",
"src": "570:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "570:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "543:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "552:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "539:3:1"
},
"nodeType": "YulFunctionCall",
"src": "539:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "564:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "535:3:1"
},
"nodeType": "YulFunctionCall",
"src": "535:32:1"
},
"nodeType": "YulIf",
"src": "532:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "603:29:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "622:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "616:5:1"
},
"nodeType": "YulFunctionCall",
"src": "616:16:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "607:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "666:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "641:24:1"
},
"nodeType": "YulFunctionCall",
"src": "641:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "641:31:1"
},
{
"nodeType": "YulAssignment",
"src": "681:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "691:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "681:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "488:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "499:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "511:6:1",
"type": ""
}
],
"src": "441:261:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:311:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "840:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "849:6:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "857:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "842:6:1"
},
"nodeType": "YulFunctionCall",
"src": "842:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "842:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "815:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "824:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "811:3:1"
},
"nodeType": "YulFunctionCall",
"src": "811:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "836:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "807:32:1"
},
"nodeType": "YulIf",
"src": "804:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "875:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "901:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "888:12:1"
},
"nodeType": "YulFunctionCall",
"src": "888:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "879:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "945:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "920:24:1"
},
"nodeType": "YulFunctionCall",
"src": "920:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "920:31:1"
},
{
"nodeType": "YulAssignment",
"src": "960:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "970:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "960:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "984:47:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1016:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1027:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1012:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1012:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "999:12:1"
},
"nodeType": "YulFunctionCall",
"src": "999:32:1"
},
"variables": [
{
"name": "value_1",
"nodeType": "YulTypedName",
"src": "988:7:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "1065:7:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1040:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1040:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1040:33:1"
},
{
"nodeType": "YulAssignment",
"src": "1082:17:1",
"value": {
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "1092:7:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1082:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "752:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "763:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "775:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "783:6:1",
"type": ""
}
],
"src": "707:398:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1214:362:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1260:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1269:6:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1277:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1262:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1262:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1262:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1235:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1244:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1231:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1231:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1256:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1227:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1227:32:1"
},
"nodeType": "YulIf",
"src": "1224:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1295:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1321:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1308:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1308:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1299:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1365:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1340:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1340:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1340:31:1"
},
{
"nodeType": "YulAssignment",
"src": "1380:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1390:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1380:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1404:47:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1436:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1447:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1432:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1432:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1419:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1419:32:1"
},
"variables": [
{
"name": "value_1",
"nodeType": "YulTypedName",
"src": "1408:7:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "1485:7:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1460:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1460:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1460:33:1"
},
{
"nodeType": "YulAssignment",
"src": "1502:17:1",
"value": {
"name": "value_1",
"nodeType": "YulIdentifier",
"src": "1512:7:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1502:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1528:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1555:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1566:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1551:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1551:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1538:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1538:32:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1528:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1164:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1175:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1187:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1195:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "1203:6:1",
"type": ""
}
],
"src": "1110:466:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1665:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1711:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1720:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1728:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1713:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1713:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1713:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1686:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1695:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1682:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1682:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1707:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1678:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1678:32:1"
},
"nodeType": "YulIf",
"src": "1675:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1746:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1772:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1759:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1759:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1750:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1816:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "1791:24:1"
},
"nodeType": "YulFunctionCall",
"src": "1791:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "1791:31:1"
},
{
"nodeType": "YulAssignment",
"src": "1831:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1841:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1831:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1855:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1885:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1896:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1881:18:1"
}
],
"functionName": {
"name": "abi_decode_bool",
"nodeType": "YulIdentifier",
"src": "1865:15:1"
},
"nodeType": "YulFunctionCall",
"src": "1865:35:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1855:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1623:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1634:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1646:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1654:6:1",
"type": ""
}
],
"src": "1581:325:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1998:238:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2044:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2053:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2061:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2046:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2046:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "2046:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2019:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2028:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2015:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2015:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2040:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2011:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2011:32:1"
},
"nodeType": "YulIf",
"src": "2008:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2079:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2105:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2092:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2092:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2083:5:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2149:5:1"
}
],
"functionName": {
"name": "validator_revert_address",
"nodeType": "YulIdentifier",
"src": "2124:24:1"
},
"nodeType": "YulFunctionCall",
"src": "2124:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "2124:31:1"
},
{
"nodeType": "YulAssignment",
"src": "2164:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2174:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2164:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2188:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2215:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2226:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2211:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2198:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2198:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2188:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1956:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1967:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1979:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1987:6:1",
"type": ""
}
],
"src": "1911:325:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2308:123:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2354:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2363:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2371:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2356:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2356:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "2356:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2329:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2338:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2325:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2325:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2350:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2321:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2321:32:1"
},
"nodeType": "YulIf",
"src": "2318:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2389:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2415:9:1"
}
],
"functionName": {
"name": "abi_decode_bool",
"nodeType": "YulIdentifier",
"src": "2399:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2399:26:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2389:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2274:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2285:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2297:6:1",
"type": ""
}
],
"src": "2241:190:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2506:120:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2552:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2561:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2569:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2554:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2554:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "2554:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2527:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2536:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2523:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2523:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2548:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2519:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2519:32:1"
},
"nodeType": "YulIf",
"src": "2516:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2587:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2610:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2597:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2597:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2587:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2472:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2483:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2495:6:1",
"type": ""
}
],
"src": "2436:190:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2735:222:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2781:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2790:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2798:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2783:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2783:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "2783:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2756:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2765:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2752:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2752:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2777:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2748:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2748:32:1"
},
"nodeType": "YulIf",
"src": "2745:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2816:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2839:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2826:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2826:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2816:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2858:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2885:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2896:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2881:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2868:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2868:32:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2858:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2909:42:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2936:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2947:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2932:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2932:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2919:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2919:32:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "2909:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2685:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2696:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2708:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2716:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2724:6:1",
"type": ""
}
],
"src": "2631:326:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3077:201:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3123:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3132:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3140:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3125:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3125:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "3125:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3098:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3107:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3094:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3094:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3119:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3090:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3090:32:1"
},
"nodeType": "YulIf",
"src": "3087:2:1"
},
{
"nodeType": "YulAssignment",
"src": "3158:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3174:9:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3168:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3168:16:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3158:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3193:35:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3213:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3224:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3209:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3209:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3203:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3203:25:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3193:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3237:35:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3257:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3268:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3253:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3253:18:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3247:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3247:25:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3237:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3027:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3038:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3050:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3058:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3066:6:1",
"type": ""
}
],
"src": "2962:316:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3344:402:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3354:26:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3374:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3368:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3368:12:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3358:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3396:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3401:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3389:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3389:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "3389:19:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3417:14:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3427:4:1",
"type": "",
"value": "0x20"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "3421:2:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3440:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3451:3:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "3456:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3447:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3447:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3440:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3468:28:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3486:5:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "3493:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3482:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3482:14:1"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "3472:6:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "3505:12:1",
"value": {
"name": "end",
"nodeType": "YulIdentifier",
"src": "3514:3:1"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "3509:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3575:146:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3596:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "3611:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3605:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3605:13:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3628:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3633:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "3624:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3624:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3637:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3620:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3620:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3601:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3601:39:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3589:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3589:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "3589:52:1"
},
{
"nodeType": "YulAssignment",
"src": "3654:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3665:3:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "3670:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3661:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3661:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3654:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3686:25:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "3700:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "3708:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3696:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3696:15:1"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "3686:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3537:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3540:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "3534:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3534:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "3548:18:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3550:14:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3559:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3562:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3555:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3555:9:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "3550:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "3530:3:1",
"statements": []
},
"src": "3526:195:1"
},
{
"nodeType": "YulAssignment",
"src": "3730:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3737:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3730:3:1"
}
]
}
]
},
"name": "abi_encode_array_address_dyn",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3321:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3328:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3336:3:1",
"type": ""
}
],
"src": "3283:463:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3852:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3862:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3874:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3885:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3870:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3870:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3862:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3904:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3919:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3935:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3940:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "3931:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3931:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3944:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3927:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3927:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3915:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3915:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3897:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3897:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "3897:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3821:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3832:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3843:4:1",
"type": ""
}
],
"src": "3751:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4076:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4086:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4098:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4109:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4094:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4094:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4086:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4128:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4143:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4159:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4164:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4155:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4155:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4168:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4151:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4151:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4139:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4139:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4121:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4121:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "4121:51:1"
}
]
},
"name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4045:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4056:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4067:4:1",
"type": ""
}
],
"src": "3959:219:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4312:175:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4345:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4322:4:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4357:29:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4375:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4380:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4371:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4371:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4384:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4367:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4367:19:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "4361:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4402:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4417:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4425:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4413:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4413:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4395:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4395:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "4395:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4449:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4460:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4445:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4445:18:1"
},
{
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4469:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4477:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4465:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4465:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4438:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4438:43:1"
},
"nodeType": "YulExpressionStatement",
"src": "4438:43:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4273:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4284:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4292:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4303:4:1",
"type": ""
}
],
"src": "4183:304:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4749:350:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4759:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4771:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4782:3:1",
"type": "",
"value": "192"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4767:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4767:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4759:4:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "4795:29:1",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4813:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4818:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "4809:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4809:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4822:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4805:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4805:19:1"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "4799:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4840:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4855:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "4863:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4851:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4851:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4833:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4833:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "4833:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4887:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4898:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4883:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4883:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4903:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4876:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4876:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "4876:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4930:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4941:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4926:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4926:18:1"
},
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "4946:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4919:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4919:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "4919:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4973:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4984:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4969:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4969:18:1"
},
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "4989:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4962:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4962:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "4962:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5016:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5027:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5012:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5012:19:1"
},
{
"arguments": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "5037:6:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "5045:2:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5033:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5033:15:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5005:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5005:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "5005:44:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5069:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5080:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5065:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5065:19:1"
},
{
"name": "value5",
"nodeType": "YulIdentifier",
"src": "5086:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5058:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5058:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "5058:35:1"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_rational_0_by_1_t_address_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4678:9:1",
"type": ""
},
{
"name": "value5",
"nodeType": "YulTypedName",
"src": "4689:6:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "4697:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "4705:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "4713:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4721:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4729:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4740:4:1",
"type": ""
}
],
"src": "4492:607:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5199:92:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5209:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5221:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5232:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5217:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5217:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5209:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5251:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5276:6:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5269:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5269:14:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5262:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5262:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5244:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5244:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "5244:41:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5168:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5179:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5190:4:1",
"type": ""
}
],
"src": "5104:187:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5424:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5434:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5446:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5457:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5442:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5442:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5434:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5476:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5491:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5507:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5512:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "5503:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5503:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5516:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5499:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5499:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5487:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5487:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5469:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5469:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "5469:51:1"
}
]
},
"name": "abi_encode_tuple_t_contract$_IUniswapV2Router02_$1251__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5393:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5404:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5415:4:1",
"type": ""
}
],
"src": "5296:230:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5652:482:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5662:12:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5672:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "5666:2:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5690:9:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "5701:2:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5683:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5683:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "5683:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5713:27:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5733:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5727:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5727:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5717:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5760:9:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "5771:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5756:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5756:18:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5776:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5749:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5749:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "5749:34:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5792:13:1",
"value": {
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5801:4:1"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "5796:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5864:90:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5893:9:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5904:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5889:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5889:17:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5908:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5885:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5885:26:1"
},
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5927:6:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5935:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5923:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5923:14:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "5939:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5919:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5919:23:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5913:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5913:30:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5878:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5878:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "5878:66:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5825:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5828:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5822:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5822:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "5836:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5838:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5847:1:1"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "5850:2:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5843:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5838:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "5818:3:1",
"statements": []
},
"src": "5814:140:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5988:69:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6017:9:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6028:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6013:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6013:22:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6037:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6009:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6009:31:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6042:4:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6002:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6002:45:1"
},
"nodeType": "YulExpressionStatement",
"src": "6002:45:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5969:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5972:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5966:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5966:13:1"
},
"nodeType": "YulIf",
"src": "5963:2:1"
},
{
"nodeType": "YulAssignment",
"src": "6066:62:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6082:9:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6101:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6109:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6097:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6097:15:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6118:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "6114:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6114:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "6093:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6093:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6078:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6078:45:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6125:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6074:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6074:54:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6066:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5621:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5632:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5643:4:1",
"type": ""
}
],
"src": "5531:603:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6313:225:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6330:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6341:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6323:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6323:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6323:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6364:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6375:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6360:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6360:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6380:2:1",
"type": "",
"value": "35"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6353:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6353:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6353:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6403:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6414:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6399:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6399:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "6419:34:1",
"type": "",
"value": "ERC20: transfer to the zero addr"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6392:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6392:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "6392:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6474:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6485:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6470:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6470:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "6490:5:1",
"type": "",
"value": "ess"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6463:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6463:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "6463:33:1"
},
{
"nodeType": "YulAssignment",
"src": "6505:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6517:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6528:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6513:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6513:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6505:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6290:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6304:4:1",
"type": ""
}
],
"src": "6139:399:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6717:242:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6734:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6745:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6727:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6727:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "6727:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6768:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6779:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6764:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6764:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6784:2:1",
"type": "",
"value": "52"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6757:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6757:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "6757:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6807:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6818:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6803:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6803:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "6823:34:1",
"type": "",
"value": "Max wallet should be less or euq"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6796:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6796:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "6796:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6878:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6889:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6874:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6874:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "6894:22:1",
"type": "",
"value": "al to 4% totalSupply"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6867:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6867:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "6867:50:1"
},
{
"nodeType": "YulAssignment",
"src": "6926:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6938:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6949:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6934:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6934:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6926:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_1c7d166bc69d3cedbc6a61de419ede10cb5a13e187285dc0ee885fba93dc1b79__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6694:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6708:4:1",
"type": ""
}
],
"src": "6543:416:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7138:228:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7155:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7166:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7148:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7148:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7148:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7189:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7200:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7185:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7185:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7205:2:1",
"type": "",
"value": "38"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7178:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7178:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7178:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7228:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7239:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7224:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7224:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "7244:34:1",
"type": "",
"value": "Ownable: new owner is the zero a"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7217:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7217:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7299:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7310:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7295:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7295:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "7315:8:1",
"type": "",
"value": "ddress"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7288:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7288:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "7288:36:1"
},
{
"nodeType": "YulAssignment",
"src": "7333:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7345:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7356:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7341:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7341:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7333:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7115:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7129:4:1",
"type": ""
}
],
"src": "6964:402:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7545:224:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7562:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7573:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7555:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7555:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7555:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7596:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7607:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7592:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7592:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7612:2:1",
"type": "",
"value": "34"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7585:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7585:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7585:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7635:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7646:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7631:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7631:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "7651:34:1",
"type": "",
"value": "ERC20: approve to the zero addre"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7624:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7624:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "7624:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7706:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7717:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7702:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7702:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "7722:4:1",
"type": "",
"value": "ss"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7695:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7695:32:1"
},
"nodeType": "YulExpressionStatement",
"src": "7695:32:1"
},
{
"nodeType": "YulAssignment",
"src": "7736:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7748:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7759:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7744:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7744:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7736:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7522:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7536:4:1",
"type": ""
}
],
"src": "7371:398:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7948:177:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7965:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7976:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7958:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7958:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "7958:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7999:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8010:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7995:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7995:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8015:2:1",
"type": "",
"value": "27"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7988:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7988:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "7988:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8038:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8049:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8034:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8034:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "8054:29:1",
"type": "",
"value": "SafeMath: addition overflow"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8027:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8027:57:1"
},
"nodeType": "YulExpressionStatement",
"src": "8027:57:1"
},
{
"nodeType": "YulAssignment",
"src": "8093:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8105:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8116:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8101:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8093:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7925:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7939:4:1",
"type": ""
}
],
"src": "7774:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8304:230:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8321:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8332:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8314:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8314:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8314:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8355:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8366:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8351:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8351:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8371:2:1",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8344:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8344:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8344:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8394:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8405:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8390:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8390:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "8410:34:1",
"type": "",
"value": "Transfer amount exceeds the maxT"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8383:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8383:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "8383:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8465:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8476:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8461:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8461:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "8481:10:1",
"type": "",
"value": "xAmount."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8454:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8454:38:1"
},
"nodeType": "YulExpressionStatement",
"src": "8454:38:1"
},
{
"nodeType": "YulAssignment",
"src": "8501:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8513:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8524:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8509:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8509:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8501:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_72052210969ce5fd88e52b5e685de9548acef9bb1b6d02e29c1765d0674948dd__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8281:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8295:4:1",
"type": ""
}
],
"src": "8130:404:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8713:223:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8730:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8741:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8723:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8723:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "8723:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8764:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8775:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8760:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8760:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8780:2:1",
"type": "",
"value": "33"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8753:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8753:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "8753:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8803:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8814:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8799:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8799:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "8819:34:1",
"type": "",
"value": "SafeMath: multiplication overflo"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8792:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8792:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "8792:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8874:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8885:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8870:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8870:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "8890:3:1",
"type": "",
"value": "w"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8863:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8863:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "8863:31:1"
},
{
"nodeType": "YulAssignment",
"src": "8903:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8915:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8926:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8911:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8911:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8903:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8690:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8704:4:1",
"type": ""
}
],
"src": "8539:397:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9115:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9132:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9143:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9125:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9125:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9125:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9166:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9177:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9162:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9162:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9182:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9155:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9155:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "9155:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9205:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9216:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9201:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9201:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "9221:34:1",
"type": "",
"value": "Ownable: caller is not the owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9194:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9194:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "9194:62:1"
},
{
"nodeType": "YulAssignment",
"src": "9265:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9277:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9288:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9273:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9273:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9265:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9092:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9106:4:1",
"type": ""
}
],
"src": "8941:356:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9476:227:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9493:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9504:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9486:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9486:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9486:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9527:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9538:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9523:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9523:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9543:2:1",
"type": "",
"value": "37"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9516:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9516:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "9516:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9566:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9577:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9562:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9562:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "9582:34:1",
"type": "",
"value": "ERC20: transfer from the zero ad"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9555:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9555:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "9555:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9637:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9648:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9633:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9633:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "9653:7:1",
"type": "",
"value": "dress"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9626:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9626:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "9626:35:1"
},
{
"nodeType": "YulAssignment",
"src": "9670:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9682:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9693:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9678:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9678:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9670:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9453:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9467:4:1",
"type": ""
}
],
"src": "9302:401:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9882:226:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9899:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9910:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9892:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9892:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "9892:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9933:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9944:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9929:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9929:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9949:2:1",
"type": "",
"value": "36"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9922:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9922:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "9922:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9972:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9983:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9968:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9968:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "9988:34:1",
"type": "",
"value": "ERC20: approve from the zero add"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9961:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9961:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "9961:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10043:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10054:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10039:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10039:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "10059:6:1",
"type": "",
"value": "ress"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10032:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10032:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "10032:34:1"
},
{
"nodeType": "YulAssignment",
"src": "10075:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10087:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10098:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10083:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10083:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10075:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9859:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9873:4:1",
"type": ""
}
],
"src": "9708:400:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10214:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10224:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10236:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10247:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10232:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10232:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10224:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10266:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10277:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10259:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10259:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "10259:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10183:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10194:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10205:4:1",
"type": ""
}
],
"src": "10113:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10474:153:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10491:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10502:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10484:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10484:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "10484:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10529:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10540:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10525:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10525:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10545:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10518:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10518:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "10518:30:1"
},
{
"nodeType": "YulAssignment",
"src": "10557:64:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10594:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10606:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10617:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10602:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10602:18:1"
}
],
"functionName": {
"name": "abi_encode_array_address_dyn",
"nodeType": "YulIdentifier",
"src": "10565:28:1"
},
"nodeType": "YulFunctionCall",
"src": "10565:56:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10557:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_uint256_t_array$_t_address_$dyn_memory_ptr__to_t_uint256_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10435:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "10446:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10454:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10465:4:1",
"type": ""
}
],
"src": "10295:332:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10903:311:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10920:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10931:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10913:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10913:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "10913:25:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10958:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10969:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10954:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10954:18:1"
},
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "10974:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10947:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10947:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "10947:34:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11001:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11012:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10997:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10997:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11017:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10990:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10990:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "10990:31:1"
},
{
"nodeType": "YulAssignment",
"src": "11030:65:1",
"value": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "11067:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11079:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11090:3:1",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11075:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11075:19:1"
}
],
"functionName": {
"name": "abi_encode_array_address_dyn",
"nodeType": "YulIdentifier",
"src": "11038:28:1"
},
"nodeType": "YulFunctionCall",
"src": "11038:57:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11030:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11115:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11126:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11111:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11111:18:1"
},
{
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "11135:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11151:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11156:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "11147:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11147:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11160:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11143:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11143:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "11131:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11131:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11104:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11104:60:1"
},
"nodeType": "YulExpressionStatement",
"src": "11104:60:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11184:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11195:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11180:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11180:19:1"
},
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "11201:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11173:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11173:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "11173:35:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_rational_0_by_1_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__to_t_uint256_t_uint256_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10840:9:1",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "10851:6:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "10859:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "10867:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "10875:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10883:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10894:4:1",
"type": ""
}
],
"src": "10632:582:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11316:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11326:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11338:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11349:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11334:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11334:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11326:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11368:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11383:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11391:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "11379:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11379:17:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11361:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11361:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "11361:36:1"
}
]
},
"name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11285:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11307:4:1",
"type": ""
}
],
"src": "11219:184:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11456:80:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11483:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "11485:16:1"
},
"nodeType": "YulFunctionCall",
"src": "11485:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "11485:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "11472:1:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "11479:1:1"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "11475:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11475:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "11469:2:1"
},
"nodeType": "YulFunctionCall",
"src": "11469:13:1"
},
"nodeType": "YulIf",
"src": "11466:2:1"
},
{
"nodeType": "YulAssignment",
"src": "11514:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "11525:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "11528:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11521:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11521:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "11514:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "11439:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "11442:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "11448:3:1",
"type": ""
}
],
"src": "11408:128:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11587:171:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11618:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "11639:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11646:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11651:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "11642:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11642:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11632:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11632:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "11632:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11683:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11686:4:1",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11676:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11676:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "11676:15:1"
},
{
"expression": {
"arguments": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "11711:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11714:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11704:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11704:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "11704:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "11607:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11600:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11600:9:1"
},
"nodeType": "YulIf",
"src": "11597:2:1"
},
{
"nodeType": "YulAssignment",
"src": "11738:14:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "11747:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "11750:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "11743:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11743:9:1"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "11738:1:1"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "11572:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "11575:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "11581:1:1",
"type": ""
}
],
"src": "11541:217:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11815:116:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11874:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "11876:16:1"
},
"nodeType": "YulFunctionCall",
"src": "11876:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "11876:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "11846:1:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11839:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11839:9:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11832:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11832:17:1"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "11854:1:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11865:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "11861:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11861:6:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "11869:1:1"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "11857:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11857:14:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "11851:2:1"
},
"nodeType": "YulFunctionCall",
"src": "11851:21:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "11828:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11828:45:1"
},
"nodeType": "YulIf",
"src": "11825:2:1"
},
{
"nodeType": "YulAssignment",
"src": "11905:20:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "11920:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "11923:1:1"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "11916:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11916:9:1"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "11905:7:1"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "11794:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "11797:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "11803:7:1",
"type": ""
}
],
"src": "11763:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11985:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12007:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "12009:16:1"
},
"nodeType": "YulFunctionCall",
"src": "12009:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "12009:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12001:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12004:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "11998:2:1"
},
"nodeType": "YulFunctionCall",
"src": "11998:8:1"
},
"nodeType": "YulIf",
"src": "11995:2:1"
},
{
"nodeType": "YulAssignment",
"src": "12038:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12050:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12053:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12046:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12046:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "12038:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "11967:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "11970:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "11976:4:1",
"type": ""
}
],
"src": "11936:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12121:325:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12131:22:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12145:1:1",
"type": "",
"value": "1"
},
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "12148:4:1"
}
],
"functionName": {
"name": "shr",
"nodeType": "YulIdentifier",
"src": "12141:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12141:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12131:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "12162:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "12192:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12198:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "12188:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12188:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "12166:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12239:31:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12241:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12255:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12263:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "12251:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12251:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12241:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "12219:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12212:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12212:26:1"
},
"nodeType": "YulIf",
"src": "12209:2:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12329:111:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12350:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12357:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12362:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "12353:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12353:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12343:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12343:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "12343:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12394:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12397:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12387:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12387:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "12387:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12422:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12425:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12415:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12415:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "12415:15:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "12285:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "12308:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12316:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "12305:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12305:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "12282:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12282:38:1"
},
"nodeType": "YulIf",
"src": "12279:2:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "12101:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "12110:6:1",
"type": ""
}
],
"src": "12066:380:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12483:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12500:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12507:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12512:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "12503:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12503:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12493:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12493:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "12493:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12540:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12543:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12533:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12533:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "12533:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12564:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12567:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12557:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12557:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "12557:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "12451:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12628:86:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12692:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12701:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12704:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12694:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12694:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "12694:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12651:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12662:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12677:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12682:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "12673:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12673:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12686:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12669:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12669:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "12658:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12658:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "12648:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12648:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12641:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12641:50:1"
},
"nodeType": "YulIf",
"src": "12638:2:1"
}
]
},
"name": "validator_revert_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12617:5:1",
"type": ""
}
],
"src": "12583:131:1"
}
]
},
"contents": "{\n { }\n function abi_decode_bool(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := abi_decode_bool(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_bool(headStart)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_encode_array_address_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_address_t_uint256_t_rational_0_by_1_t_rational_0_by_1_t_address_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_contract$_IUniswapV2Router02_$1251__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1c7d166bc69d3cedbc6a61de419ede10cb5a13e187285dc0ee885fba93dc1b79__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 52)\n mstore(add(headStart, 64), \"Max wallet should be less or euq\")\n mstore(add(headStart, 96), \"al to 4% totalSupply\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"SafeMath: addition overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_72052210969ce5fd88e52b5e685de9548acef9bb1b6d02e29c1765d0674948dd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"Transfer amount exceeds the maxT\")\n mstore(add(headStart, 96), \"xAmount.\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"SafeMath: multiplication overflo\")\n mstore(add(headStart, 96), \"w\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_array$_t_address_$dyn_memory_ptr__to_t_uint256_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 64)\n tail := abi_encode_array_address_dyn(value1, add(headStart, 64))\n }\n function abi_encode_tuple_t_uint256_t_rational_0_by_1_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__to_t_uint256_t_uint256_t_array$_t_address_$dyn_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 160)\n tail := abi_encode_array_address_dyn(value2, add(headStart, 160))\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {
"1287": [
{
"length": 32,
"start": 1282
},
{
"length": 32,
"start": 3365
}
]
},
"linkReferences": {},
"object": "60806040526004361061037a5760003560e01c806382eefb43116101d1578063c816841b11610102578063e207a92b116100a0578063f1d5f5171161006f578063f1d5f51714610a44578063f2fde38b14610a64578063f84ba65d14610a84578063f872858a14610aa457600080fd5b8063e207a92b146109ce578063ec28438a146109ee578063ef422a1814610a0e578063f0cd1dac14610a2e57600080fd5b8063d158272d116100dc578063d158272d1461092c578063da00097d14610951578063dc44b6a014610972578063dd62ed3e1461098857600080fd5b8063c816841b146108c6578063c8607952146108e6578063c867d60b146108fc57600080fd5b8063a457c2d71161016f578063b831671911610149578063b83167191461085a578063c2d4640e14610870578063c49b9a8014610890578063c5d24189146108b057600080fd5b8063a457c2d7146107fa578063a5d69d1f1461081a578063a9059cbb1461083a57600080fd5b80638da5cb5b116101ab5780638da5cb5b1461079c578063914eb66a146107ba57806395d89b41146107cf578063a08e671f146107e457600080fd5b806382eefb431461074057806388790a68146107565780638b42507f1461076c57600080fd5b80633b97084a116102ab5780635881f3ef1161024957806370a082311161022357806370a08231146106be57806375b08937146106f45780637d1db4a514610714578063807c2d9c1461072a57600080fd5b80635881f3ef14610672578063619e1e361461069257806361a23c69146106a857600080fd5b80634b06049a116102855780634b06049a146105ec5780634cb80fd51461060c5780635342acb41461062c57806357a5802f1461065c57600080fd5b80633b97084a1461057b5780633ecad2711461059b5780634a74bb02146105cb57600080fd5b80632198cf6c1161031857806327c8f835116102f257806327c8f835146104f05780632b112e4914610524578063313ce56714610539578063395093511461055b57600080fd5b80632198cf6c1461049057806323b872dd146104b05780632563ae83146104d057600080fd5b8063095ea7b311610354578063095ea7b3146103f35780631694505e1461042357806318160ddd1461045b5780631870517a1461047057600080fd5b80630432ba341461038657806306fdde03146103af57806308733214146103d157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c60145481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b506103c4610ac5565b6040516103a69190612560565b3480156103dd57600080fd5b506103f16103ec3660046124c5565b610b57565b005b3480156103ff57600080fd5b5061041361040e366004612468565b610bb5565b60405190151581526020016103a6565b34801561042f57600080fd5b50601c54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561046757600080fd5b5060185461039c565b34801561047c57600080fd5b506103f161048b3660046124c5565b610bcc565b34801561049c57600080fd5b506103f16104ab366004612434565b610c1b565b3480156104bc57600080fd5b506104136104cb3660046123f4565b610c70565b3480156104dc57600080fd5b506103f16104eb366004612493565b610cdb565b3480156104fc57600080fd5b506104437f000000000000000000000000000000000000000000000000000000000000000081565b34801561053057600080fd5b5061039c610d23565b34801561054557600080fd5b5060045460405160ff90911681526020016103a6565b34801561056757600080fd5b50610413610576366004612468565b610d6d565b34801561058757600080fd5b506103f16105963660046124ad565b610da3565b3480156105a757600080fd5b506104136105b6366004612384565b600b6020526000908152604090205460ff1681565b3480156105d757600080fd5b50601d5461041390600160a81b900460ff1681565b3480156105f857600080fd5b50600554610443906001600160a01b031681565b34801561061857600080fd5b506103f1610627366004612384565b610dd2565b34801561063857600080fd5b50610413610647366004612384565b60086020526000908152604090205460ff1681565b34801561066857600080fd5b5061039c60125481565b34801561067e57600080fd5b5061044361068d366004612384565b610e24565b34801561069e57600080fd5b5061039c60115481565b3480156106b457600080fd5b5061039c60135481565b3480156106ca57600080fd5b5061039c6106d9366004612384565b6001600160a01b031660009081526006602052604090205490565b34801561070057600080fd5b506103f161070f366004612384565b6111b6565b34801561072057600080fd5b5061039c60195481565b34801561073657600080fd5b5061039c601a5481565b34801561074c57600080fd5b5061039c60165481565b34801561076257600080fd5b5061039c600f5481565b34801561077857600080fd5b50610413610787366004612384565b600a6020526000908152604090205460ff1681565b3480156107a857600080fd5b506000546001600160a01b0316610443565b3480156107c657600080fd5b506103f1611202565b3480156107db57600080fd5b506103c4611276565b3480156107f057600080fd5b5061039c60175481565b34801561080657600080fd5b50610413610815366004612468565b611285565b34801561082657600080fd5b506103f1610835366004612493565b6112d4565b34801561084657600080fd5b50610413610855366004612468565b61131c565b34801561086657600080fd5b5061039c600e5481565b34801561087c57600080fd5b506103f161088b3660046124c5565b611329565b34801561089c57600080fd5b506103f16108ab366004612493565b611378565b3480156108bc57600080fd5b5061039c600d5481565b3480156108d257600080fd5b50601d54610443906001600160a01b031681565b3480156108f257600080fd5b5061039c60105481565b34801561090857600080fd5b50610413610917366004612384565b60096020526000908152604090205460ff1681565b34801561093857600080fd5b506004546104439061010090046001600160a01b031681565b34801561095d57600080fd5b50601d5461041390600160b01b900460ff1681565b34801561097e57600080fd5b5061039c600c5481565b34801561099457600080fd5b5061039c6109a33660046123bc565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156109da57600080fd5b506103f16109e9366004612384565b6113fa565b3480156109fa57600080fd5b506103f1610a093660046124ad565b611448565b348015610a1a57600080fd5b506103f1610a29366004612434565b6114eb565b348015610a3a57600080fd5b5061039c60155481565b348015610a5057600080fd5b506103f1610a5f3660046124ad565b611540565b348015610a7057600080fd5b506103f1610a7f366004612384565b61156f565b348015610a9057600080fd5b506103f1610a9f366004612434565b611659565b348015610ab057600080fd5b50601d5461041390600160b81b900460ff1681565b606060028054610ad4906126b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b00906126b3565b8015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050505050905090565b6000546001600160a01b03163314610b8a5760405162461bcd60e51b8152600401610b81906125b3565b60405180910390fd5b600f83905560108290556011819055610bad81610ba785856116ae565b906116ae565b601655505050565b6000610bc233848461170d565b5060015b92915050565b6000546001600160a01b03163314610bf65760405162461bcd60e51b8152600401610b81906125b3565b600c839055600d829055600e819055610c1381610ba785856116ae565b601555505050565b6000546001600160a01b03163314610c455760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c7d848484611831565b50610cd08433610ccb8560405180606001604052806028815260200161271d602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611c00565b61170d565b5060015b9392505050565b6000546001600160a01b03163314610d055760405162461bcd60e51b8152600401610b81906125b3565b601d8054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260066020526040812054601854610d6891611c3a565b905090565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610bc2918590610ccb90866116ae565b6000546001600160a01b03163314610dcd5760405162461bcd60e51b8152600401610b81906125b3565b601b55565b6000546001600160a01b03163314610dfc5760405162461bcd60e51b8152600401610b81906125b3565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610e4f5760405162461bcd60e51b8152600401610b81906125b3565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8d57600080fd5b505afa158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec591906123a0565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0d57600080fd5b505afa158015610f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4591906123a0565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610f8b57600080fd5b505afa158015610f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc391906123a0565b91506001600160a01b03821661114757806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561100c57600080fd5b505afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104491906123a0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561108c57600080fd5b505afa1580156110a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c491906123a0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561110c57600080fd5b505af1158015611120573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114491906123a0565b91505b601d80546001600160a01b03199081166001600160a01b038581169182178455601c8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146111e05760405162461bcd60e51b8152600401610b81906125b3565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461122c5760405162461bcd60e51b8152600401610b81906125b3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610ad4906126b3565b6000610bc23384610ccb85604051806060016040528060258152602001612745602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611c00565b6000546001600160a01b031633146112fe5760405162461bcd60e51b8152600401610b81906125b3565b601d8054911515600160b01b0260ff60b01b19909216919091179055565b6000610cd0338484611831565b6000546001600160a01b031633146113535760405162461bcd60e51b8152600401610b81906125b3565b60128390556013829055601481905561137081610ba785856116ae565b601755505050565b6000546001600160a01b031633146113a25760405162461bcd60e51b8152600401610b81906125b3565b601d8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906113ef90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146114245760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146114725760405162461bcd60e51b8152600401610b81906125b3565b668e1bc9bf0400008111156114e65760405162461bcd60e51b815260206004820152603460248201527f4d61782077616c6c65742073686f756c64206265206c657373206f7220657571604482015273616c20746f20342520746f74616c537570706c7960601b6064820152608401610b81565b601955565b6000546001600160a01b031633146115155760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461156a5760405162461bcd60e51b8152600401610b81906125b3565b601a55565b6000546001600160a01b031633146115995760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b0381166115fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b81565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146116835760405162461bcd60e51b8152600401610b81906125b3565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000806116bb8385612645565b905083811015610cd45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b81565b6001600160a01b03831661176f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b81565b6001600160a01b0382166117d05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b81565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166118975760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b81565b6001600160a01b0383166118f95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b81565b601d54600160a01b900460ff161561191d57611916848484611c7c565b9050610cd4565b6001600160a01b0384166000908152600a602052604090205460ff1615801561195f57506001600160a01b0383166000908152600a602052604090205460ff16155b156119c7576019548211156119c75760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b81565b30600090815260066020526040902054601b54811080159081906119f55750601d54600160a01b900460ff16155b8015611a1a57506001600160a01b0386166000908152600b602052604090205460ff16155b8015611a2f5750601d54600160a81b900460ff165b15611a5557601d54600160b01b900460ff1615611a4c57601b5491505b611a5582611d62565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611aa7918690611c00565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611af457506001600160a01b03861660009081526008602052604090205460ff165b611b0857611b03878787611e9d565b611b0a565b845b601d54909150600160b81b900460ff168015611b3f57506001600160a01b03861660009081526009602052604090205460ff16155b15611b7557601a54611b6a82610ba7896001600160a01b031660009081526006602052604090205490565b1115611b7557600080fd5b6001600160a01b038616600090815260066020526040902054611b9890826116ae565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bec9085815260200190565b60405180910390a360019350505050610cd4565b60008184841115611c245760405162461bcd60e51b8152600401610b819190612560565b506000611c31848661269c565b95945050505050565b6000610cd483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c00565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611ccd918490611c00565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611cfc90836116ae565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611d509086815260200190565b60405180910390a35060019392505050565b601d805460ff60a01b1916600160a01b179055601754601254600091611d9891600291611d929182908790611fa3565b90612022565b90506000611da68383611c3a565b9050611db181612064565b6012544790600090611dd190611dc8906002612022565b60175490611c3a565b90506000611df36002611d9284611d9260125488611fa390919063ffffffff16565b90506000611e1083611d9260145487611fa390919063ffffffff16565b90506000611e2882611e228786611c3a565b90611c3a565b90508015611e4b57600454611e4b9061010090046001600160a01b031682612222565b8115611e6757600554611e67906001600160a01b031683612222565b600083118015611e775750600087115b15611e8657611e86878461225d565b5050601d805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611ee157611eda6064611d9260155486611fa390919063ffffffff16565b9050611f1f565b6001600160a01b0384166000908152600b602052604090205460ff1615611f1f57611f1c6064611d9260165486611fa390919063ffffffff16565b90505b8015611f995730600090815260066020526040902054611f3f90826116ae565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f909085815260200190565b60405180910390a35b611c318382611c3a565b600082611fb257506000610bc6565b6000611fbe838561267d565b905082611fcb858361265d565b14610cd45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b81565b6000610cd483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612341565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120a757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601c54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156120fb57600080fd5b505afa15801561210f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213391906123a0565b8160018151811061215457634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601c5461217a913091168461170d565b601c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906121b3908590600090869030904290600401612609565b600060405180830381600087803b1580156121cd57600080fd5b505af11580156121e1573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516122169291906125e8565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612258573d6000803e3d6000fd5b505050565b601c546122759030906001600160a01b03168461170d565b601c546001600160a01b031663f305d71982308560008061229e6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561230157600080fd5b505af1158015612315573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061233a91906124f0565b5050505050565b600081836123625760405162461bcd60e51b8152600401610b819190612560565b506000611c31848661265d565b8035801515811461237f57600080fd5b919050565b600060208284031215612395578081fd5b8135610cd481612704565b6000602082840312156123b1578081fd5b8151610cd481612704565b600080604083850312156123ce578081fd5b82356123d981612704565b915060208301356123e981612704565b809150509250929050565b600080600060608486031215612408578081fd5b833561241381612704565b9250602084013561242381612704565b929592945050506040919091013590565b60008060408385031215612446578182fd5b823561245181612704565b915061245f6020840161236f565b90509250929050565b6000806040838503121561247a578182fd5b823561248581612704565b946020939093013593505050565b6000602082840312156124a4578081fd5b610cd48261236f565b6000602082840312156124be578081fd5b5035919050565b6000806000606084860312156124d9578283fd5b505081359360208301359350604090920135919050565b600080600060608486031215612504578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156125555781516001600160a01b031687529582019590820190600101612530565b509495945050505050565b6000602080835283518082850152825b8181101561258c57858101830151858201604001528201612570565b8181111561259d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000612601604083018461251d565b949350505050565b85815284602082015260a06040820152600061262860a083018661251d565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612658576126586126ee565b500190565b60008261267857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612697576126976126ee565b500290565b6000828210156126ae576126ae6126ee565b500390565b600181811c908216806126c757607f821691505b602082108114156126e857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461271957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205ed1a2e63ccb3b0f8427b21cb176a30b5804c82660c7dc3a647b43fd8281213964736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x82EEFB43 GT PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xC816841B GT PUSH2 0x102 JUMPI DUP1 PUSH4 0xE207A92B GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xF1D5F517 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xF1D5F517 EQ PUSH2 0xA44 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA64 JUMPI DUP1 PUSH4 0xF84BA65D EQ PUSH2 0xA84 JUMPI DUP1 PUSH4 0xF872858A EQ PUSH2 0xAA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE207A92B EQ PUSH2 0x9CE JUMPI DUP1 PUSH4 0xEC28438A EQ PUSH2 0x9EE JUMPI DUP1 PUSH4 0xEF422A18 EQ PUSH2 0xA0E JUMPI DUP1 PUSH4 0xF0CD1DAC EQ PUSH2 0xA2E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD158272D GT PUSH2 0xDC JUMPI DUP1 PUSH4 0xD158272D EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xDA00097D EQ PUSH2 0x951 JUMPI DUP1 PUSH4 0xDC44B6A0 EQ PUSH2 0x972 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x988 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC816841B EQ PUSH2 0x8C6 JUMPI DUP1 PUSH4 0xC8607952 EQ PUSH2 0x8E6 JUMPI DUP1 PUSH4 0xC867D60B EQ PUSH2 0x8FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x16F JUMPI DUP1 PUSH4 0xB8316719 GT PUSH2 0x149 JUMPI DUP1 PUSH4 0xB8316719 EQ PUSH2 0x85A JUMPI DUP1 PUSH4 0xC2D4640E EQ PUSH2 0x870 JUMPI DUP1 PUSH4 0xC49B9A80 EQ PUSH2 0x890 JUMPI DUP1 PUSH4 0xC5D24189 EQ PUSH2 0x8B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x7FA JUMPI DUP1 PUSH4 0xA5D69D1F EQ PUSH2 0x81A JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x83A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1AB JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x79C JUMPI DUP1 PUSH4 0x914EB66A EQ PUSH2 0x7BA JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x7CF JUMPI DUP1 PUSH4 0xA08E671F EQ PUSH2 0x7E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x82EEFB43 EQ PUSH2 0x740 JUMPI DUP1 PUSH4 0x88790A68 EQ PUSH2 0x756 JUMPI DUP1 PUSH4 0x8B42507F EQ PUSH2 0x76C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3B97084A GT PUSH2 0x2AB JUMPI DUP1 PUSH4 0x5881F3EF GT PUSH2 0x249 JUMPI DUP1 PUSH4 0x70A08231 GT PUSH2 0x223 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x6BE JUMPI DUP1 PUSH4 0x75B08937 EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0x7D1DB4A5 EQ PUSH2 0x714 JUMPI DUP1 PUSH4 0x807C2D9C EQ PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5881F3EF EQ PUSH2 0x672 JUMPI DUP1 PUSH4 0x619E1E36 EQ PUSH2 0x692 JUMPI DUP1 PUSH4 0x61A23C69 EQ PUSH2 0x6A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4B06049A GT PUSH2 0x285 JUMPI DUP1 PUSH4 0x4B06049A EQ PUSH2 0x5EC JUMPI DUP1 PUSH4 0x4CB80FD5 EQ PUSH2 0x60C JUMPI DUP1 PUSH4 0x5342ACB4 EQ PUSH2 0x62C JUMPI DUP1 PUSH4 0x57A5802F EQ PUSH2 0x65C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3B97084A EQ PUSH2 0x57B JUMPI DUP1 PUSH4 0x3ECAD271 EQ PUSH2 0x59B JUMPI DUP1 PUSH4 0x4A74BB02 EQ PUSH2 0x5CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2198CF6C GT PUSH2 0x318 JUMPI DUP1 PUSH4 0x27C8F835 GT PUSH2 0x2F2 JUMPI DUP1 PUSH4 0x27C8F835 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0x2B112E49 EQ PUSH2 0x524 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x539 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x55B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2198CF6C EQ PUSH2 0x490 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x4B0 JUMPI DUP1 PUSH4 0x2563AE83 EQ PUSH2 0x4D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0x354 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x1694505E EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x45B JUMPI DUP1 PUSH4 0x1870517A EQ PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x432BA34 EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x8733214 EQ PUSH2 0x3D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x381 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x14 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C4 PUSH2 0xAC5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A6 SWAP2 SWAP1 PUSH2 0x2560 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x3EC CALLDATASIZE PUSH1 0x4 PUSH2 0x24C5 JUMP JUMPDEST PUSH2 0xB57 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x2468 JUMP JUMPDEST PUSH2 0xBB5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1C SLOAD PUSH2 0x443 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x467 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x18 SLOAD PUSH2 0x39C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x48B CALLDATASIZE PUSH1 0x4 PUSH2 0x24C5 JUMP JUMPDEST PUSH2 0xBCC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x4AB CALLDATASIZE PUSH1 0x4 PUSH2 0x2434 JUMP JUMPDEST PUSH2 0xC1B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x4CB CALLDATASIZE PUSH1 0x4 PUSH2 0x23F4 JUMP JUMPDEST PUSH2 0xC70 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x4EB CALLDATASIZE PUSH1 0x4 PUSH2 0x2493 JUMP JUMPDEST PUSH2 0xCDB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH32 0x0 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x530 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0xD23 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x545 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0xFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x567 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x576 CALLDATASIZE PUSH1 0x4 PUSH2 0x2468 JUMP JUMPDEST PUSH2 0xD6D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x596 CALLDATASIZE PUSH1 0x4 PUSH2 0x24AD JUMP JUMPDEST PUSH2 0xDA3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x5B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1D SLOAD PUSH2 0x413 SWAP1 PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH2 0x443 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x618 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x627 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0xDD2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x638 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x647 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x668 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x12 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0x68D CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0xE24 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x69E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x11 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x13 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x6D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x700 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x70F CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0x11B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x720 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x19 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x736 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x1A SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x74C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x16 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x762 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x787 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x443 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x1202 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C4 PUSH2 0x1276 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x17 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x806 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x815 CALLDATASIZE PUSH1 0x4 PUSH2 0x2468 JUMP JUMPDEST PUSH2 0x1285 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x826 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x835 CALLDATASIZE PUSH1 0x4 PUSH2 0x2493 JUMP JUMPDEST PUSH2 0x12D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x846 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x855 CALLDATASIZE PUSH1 0x4 PUSH2 0x2468 JUMP JUMPDEST PUSH2 0x131C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x87C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x88B CALLDATASIZE PUSH1 0x4 PUSH2 0x24C5 JUMP JUMPDEST PUSH2 0x1329 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x8AB CALLDATASIZE PUSH1 0x4 PUSH2 0x2493 JUMP JUMPDEST PUSH2 0x1378 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0xD SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1D SLOAD PUSH2 0x443 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x908 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x413 PUSH2 0x917 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x443 SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x95D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1D SLOAD PUSH2 0x413 SWAP1 PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x97E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH2 0x9A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x23BC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0x9E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0x13FA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA09 CALLDATASIZE PUSH1 0x4 PUSH2 0x24AD JUMP JUMPDEST PUSH2 0x1448 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA29 CALLDATASIZE PUSH1 0x4 PUSH2 0x2434 JUMP JUMPDEST PUSH2 0x14EB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x39C PUSH1 0x15 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA5F CALLDATASIZE PUSH1 0x4 PUSH2 0x24AD JUMP JUMPDEST PUSH2 0x1540 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA7F CALLDATASIZE PUSH1 0x4 PUSH2 0x2384 JUMP JUMPDEST PUSH2 0x156F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F1 PUSH2 0xA9F CALLDATASIZE PUSH1 0x4 PUSH2 0x2434 JUMP JUMPDEST PUSH2 0x1659 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1D SLOAD PUSH2 0x413 SWAP1 PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0xAD4 SWAP1 PUSH2 0x26B3 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xB00 SWAP1 PUSH2 0x26B3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB4D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB22 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB4D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB30 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xF DUP4 SWAP1 SSTORE PUSH1 0x10 DUP3 SWAP1 SSTORE PUSH1 0x11 DUP2 SWAP1 SSTORE PUSH2 0xBAD DUP2 PUSH2 0xBA7 DUP6 DUP6 PUSH2 0x16AE JUMP JUMPDEST SWAP1 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x16 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC2 CALLER DUP5 DUP5 PUSH2 0x170D JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xBF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0xC DUP4 SWAP1 SSTORE PUSH1 0xD DUP3 SWAP1 SSTORE PUSH1 0xE DUP2 SWAP1 SSTORE PUSH2 0xC13 DUP2 PUSH2 0xBA7 DUP6 DUP6 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x15 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xC45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC7D DUP5 DUP5 DUP5 PUSH2 0x1831 JUMP JUMPDEST POP PUSH2 0xCD0 DUP5 CALLER PUSH2 0xCCB DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x271D PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1C00 JUMP JUMPDEST PUSH2 0x170D JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0xB8 SHL MUL PUSH1 0xFF PUSH1 0xB8 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x18 SLOAD PUSH2 0xD68 SWAP2 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD SWAP1 SWAP2 PUSH2 0xBC2 SWAP2 DUP6 SWAP1 PUSH2 0xCCB SWAP1 DUP7 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDCD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1B SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDFC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND PUSH2 0x100 MUL PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xE4F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC45A0155 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEC5 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE6A43905 ADDRESS DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF21 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF45 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFC3 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1147 JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC45A0155 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x100C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1020 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1044 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC9C65396 ADDRESS DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xAD5C4648 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x108C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10C4 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x110C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1120 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH1 0x1D DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x1C DUP1 SLOAD SWAP1 SWAP4 AND SWAP5 DUP2 AND SWAP5 SWAP1 SWAP5 OR SWAP1 SWAP2 SSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP3 SSTORE SWAP5 SLOAD SWAP1 SWAP6 AND DUP4 MSTORE PUSH1 0xB SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x122C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP4 SWAP1 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0xAD4 SWAP1 PUSH2 0x26B3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC2 CALLER DUP5 PUSH2 0xCCB DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2745 PUSH1 0x25 SWAP2 CODECOPY CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP2 SWAP1 PUSH2 0x1C00 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x12FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD SWAP2 ISZERO ISZERO PUSH1 0x1 PUSH1 0xB0 SHL MUL PUSH1 0xFF PUSH1 0xB0 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD0 CALLER DUP5 DUP5 PUSH2 0x1831 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1353 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x12 DUP4 SWAP1 SSTORE PUSH1 0x13 DUP3 SWAP1 SSTORE PUSH1 0x14 DUP2 SWAP1 SSTORE PUSH2 0x1370 DUP2 PUSH2 0xBA7 DUP6 DUP6 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x17 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD DUP3 ISZERO ISZERO PUSH1 0x1 PUSH1 0xA8 SHL MUL PUSH1 0xFF PUSH1 0xA8 SHL NOT SWAP1 SWAP2 AND OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x53726DFCAF90650AA7EB35524F4D3220F07413C8D6CB404CC8C18BF5591BC159 SWAP1 PUSH2 0x13EF SWAP1 DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1424 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1472 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH7 0x8E1BC9BF040000 DUP2 GT ISZERO PUSH2 0x14E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x34 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D61782077616C6C65742073686F756C64206265206C657373206F7220657571 PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x616C20746F20342520746F74616C537570706C79 PUSH1 0x60 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x19 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1515 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x156A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1A SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1599 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x15FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1683 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP1 PUSH2 0x25B3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x16BB DUP4 DUP6 PUSH2 0x2645 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0xCD4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x176F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x17D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1897 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x18F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x1D SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x191D JUMPI PUSH2 0x1916 DUP5 DUP5 DUP5 PUSH2 0x1C7C JUMP JUMPDEST SWAP1 POP PUSH2 0xCD4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x195F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x19C7 JUMPI PUSH1 0x19 SLOAD DUP3 GT ISZERO PUSH2 0x19C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5472616E7366657220616D6F756E74206578636565647320746865206D617854 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x3C20B6B7BAB73A17 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1B SLOAD DUP2 LT DUP1 ISZERO SWAP1 DUP2 SWAP1 PUSH2 0x19F5 JUMPI POP PUSH1 0x1D SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1A1A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1A2F JUMPI POP PUSH1 0x1D SLOAD PUSH1 0x1 PUSH1 0xA8 SHL SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x1A55 JUMPI PUSH1 0x1D SLOAD PUSH1 0x1 PUSH1 0xB0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x1A4C JUMPI PUSH1 0x1B SLOAD SWAP2 POP JUMPDEST PUSH2 0x1A55 DUP3 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH20 0x496E73756666696369656E742042616C616E6365 PUSH1 0x60 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x1AA7 SWAP2 DUP7 SWAP1 PUSH2 0x1C00 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE PUSH1 0x8 SWAP1 MSTORE SWAP1 DUP2 KECCAK256 SLOAD PUSH1 0xFF AND DUP1 PUSH2 0x1AF4 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST PUSH2 0x1B08 JUMPI PUSH2 0x1B03 DUP8 DUP8 DUP8 PUSH2 0x1E9D JUMP JUMPDEST PUSH2 0x1B0A JUMP JUMPDEST DUP5 JUMPDEST PUSH1 0x1D SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0xB8 SHL SWAP1 DIV PUSH1 0xFF AND DUP1 ISZERO PUSH2 0x1B3F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x1B75 JUMPI PUSH1 0x1A SLOAD PUSH2 0x1B6A DUP3 PUSH2 0xBA7 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST GT ISZERO PUSH2 0x1B75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1B98 SWAP1 DUP3 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD SWAP1 DUP10 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x1BEC SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xCD4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP5 DUP5 GT ISZERO PUSH2 0x1C24 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP2 SWAP1 PUSH2 0x2560 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1C31 DUP5 DUP7 PUSH2 0x269C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 DUP2 MSTORE POP PUSH2 0x1C00 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH20 0x496E73756666696369656E742042616C616E6365 PUSH1 0x60 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP2 DUP3 KECCAK256 SLOAD PUSH2 0x1CCD SWAP2 DUP5 SWAP1 PUSH2 0x1C00 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP6 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x1CFC SWAP1 DUP4 PUSH2 0x16AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP2 MLOAD SWAP1 DUP7 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x1D50 SWAP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1D DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH1 0x17 SLOAD PUSH1 0x12 SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1D98 SWAP2 PUSH1 0x2 SWAP2 PUSH2 0x1D92 SWAP2 DUP3 SWAP1 DUP8 SWAP1 PUSH2 0x1FA3 JUMP JUMPDEST SWAP1 PUSH2 0x2022 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DA6 DUP4 DUP4 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 POP PUSH2 0x1DB1 DUP2 PUSH2 0x2064 JUMP JUMPDEST PUSH1 0x12 SLOAD SELFBALANCE SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x1DD1 SWAP1 PUSH2 0x1DC8 SWAP1 PUSH1 0x2 PUSH2 0x2022 JUMP JUMPDEST PUSH1 0x17 SLOAD SWAP1 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1DF3 PUSH1 0x2 PUSH2 0x1D92 DUP5 PUSH2 0x1D92 PUSH1 0x12 SLOAD DUP9 PUSH2 0x1FA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1E10 DUP4 PUSH2 0x1D92 PUSH1 0x14 SLOAD DUP8 PUSH2 0x1FA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1E28 DUP3 PUSH2 0x1E22 DUP8 DUP7 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 PUSH2 0x1C3A JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x1E4B JUMPI PUSH1 0x4 SLOAD PUSH2 0x1E4B SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH2 0x2222 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1E67 JUMPI PUSH1 0x5 SLOAD PUSH2 0x1E67 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x2222 JUMP JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0x1E77 JUMPI POP PUSH1 0x0 DUP8 GT JUMPDEST ISZERO PUSH2 0x1E86 JUMPI PUSH2 0x1E86 DUP8 DUP5 PUSH2 0x225D JUMP JUMPDEST POP POP PUSH1 0x1D DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP2 SWAP1 PUSH1 0xFF AND ISZERO PUSH2 0x1EE1 JUMPI PUSH2 0x1EDA PUSH1 0x64 PUSH2 0x1D92 PUSH1 0x15 SLOAD DUP7 PUSH2 0x1FA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x1F1F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xB PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x1F1F JUMPI PUSH2 0x1F1C PUSH1 0x64 PUSH2 0x1D92 PUSH1 0x16 SLOAD DUP7 PUSH2 0x1FA3 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP JUMPDEST DUP1 ISZERO PUSH2 0x1F99 JUMPI ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1F3F SWAP1 DUP3 PUSH2 0x16AE JUMP JUMPDEST ADDRESS PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH2 0x1F90 SWAP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST PUSH2 0x1C31 DUP4 DUP3 PUSH2 0x1C3A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1FB2 JUMPI POP PUSH1 0x0 PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FBE DUP4 DUP6 PUSH2 0x267D JUMP JUMPDEST SWAP1 POP DUP3 PUSH2 0x1FCB DUP6 DUP4 PUSH2 0x265D JUMP JUMPDEST EQ PUSH2 0xCD4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206D756C7469706C69636174696F6E206F766572666C6F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x77 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB81 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCD4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 DUP2 MSTORE POP PUSH2 0x2341 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x2 DUP1 DUP3 MSTORE PUSH1 0x60 DUP3 ADD DUP4 MSTORE PUSH1 0x0 SWAP3 PUSH1 0x20 DUP4 ADD SWAP1 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP ADDRESS DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x20A7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1C SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x15AB88C9 PUSH1 0xE3 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP4 AND SWAP3 PUSH4 0xAD5C4648 SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x210F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2133 SWAP2 SWAP1 PUSH2 0x23A0 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x2154 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD ADD MSTORE PUSH1 0x1C SLOAD PUSH2 0x217A SWAP2 ADDRESS SWAP2 AND DUP5 PUSH2 0x170D JUMP JUMPDEST PUSH1 0x1C SLOAD PUSH1 0x40 MLOAD PUSH4 0x791AC947 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x791AC947 SWAP1 PUSH2 0x21B3 SWAP1 DUP6 SWAP1 PUSH1 0x0 SWAP1 DUP7 SWAP1 ADDRESS SWAP1 TIMESTAMP SWAP1 PUSH1 0x4 ADD PUSH2 0x2609 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x21E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH32 0x32CDE87EB454F3A0B875AB23547023107CFAD454363EC88BA5695E2C24AA52A7 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2216 SWAP3 SWAP2 SWAP1 PUSH2 0x25E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP3 ISZERO PUSH2 0x8FC MUL SWAP1 DUP4 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2258 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1C SLOAD PUSH2 0x2275 SWAP1 ADDRESS SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH2 0x170D JUMP JUMPDEST PUSH1 0x1C SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF305D719 DUP3 ADDRESS DUP6 PUSH1 0x0 DUP1 PUSH2 0x229E PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP9 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x44 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x64 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x84 DUP3 ADD MSTORE TIMESTAMP PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2301 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2315 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x233A SWAP2 SWAP1 PUSH2 0x24F0 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x2362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB81 SWAP2 SWAP1 PUSH2 0x2560 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1C31 DUP5 DUP7 PUSH2 0x265D JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x237F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2395 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCD4 DUP2 PUSH2 0x2704 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCD4 DUP2 PUSH2 0x2704 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23CE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x23D9 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x23E9 DUP2 PUSH2 0x2704 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2408 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x2413 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x2423 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2446 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2451 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP2 POP PUSH2 0x245F PUSH1 0x20 DUP5 ADD PUSH2 0x236F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x247A JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2485 DUP2 PUSH2 0x2704 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24A4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCD4 DUP3 PUSH2 0x236F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24BE JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x24D9 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2504 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x20 DUP1 DUP6 ADD SWAP5 POP DUP1 DUP5 ADD DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2555 JUMPI DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 MSTORE SWAP6 DUP3 ADD SWAP6 SWAP1 DUP3 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2530 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x258C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x2570 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x259D JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2601 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x251D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP6 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2628 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x251D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2658 JUMPI PUSH2 0x2658 PUSH2 0x26EE JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2678 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2697 JUMPI PUSH2 0x2697 PUSH2 0x26EE JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x26AE JUMPI PUSH2 0x26AE PUSH2 0x26EE JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x26C7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x26E8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID GASLIMIT MSTORE NUMBER ORIGIN ADDRESS GASPRICE KECCAK256 PUSH21 0x72616E7366657220616D6F756E7420657863656564 PUSH20 0x20616C6C6F77616E636545524332303A20646563 PUSH19 0x656173656420616C6C6F77616E63652062656C PUSH16 0x77207A65726FA2646970667358221220 0x5E 0xD1 LOG2 0xE6 EXTCODECOPY 0xCB EXTCODESIZE 0xF DUP5 0x27 0xB2 SHR 0xB1 PUSH23 0xA30B5804C82660C7DC3A647B43FD8281213964736F6C63 NUMBER STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "14006:14453:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15265:32;;;;;;;;;;;;;;;;;;;10259:25:1;;;10247:2;10232:18;15265:32:0;;;;;;;;17594:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19954:347::-;;;;;;;;;;-1:-1:-1;19954:347:0;;;;;:::i;:::-;;:::i;:::-;;18726:158;;;;;;;;;;-1:-1:-1;18726:158:0;;;;;:::i;:::-;;:::i;:::-;;;5269:14:1;;5262:22;5244:41;;5232:2;5217:18;18726:158:0;5199:92:1;15669:41:0;;;;;;;;;;-1:-1:-1;15669:41:0;;;;-1:-1:-1;;;;;15669:41:0;;;;;;-1:-1:-1;;;;;3915:32:1;;;3897:51;;3885:2;3870:18;15669:41:0;3852:102:1;17859:98:0;;;;;;;;;;-1:-1:-1;17938:12:0;;17859:98;;19609:339;;;;;;;;;;-1:-1:-1;19609:339:0;;;;;:::i;:::-;;:::i;21027:133::-;;;;;;;;;;-1:-1:-1;21027:133:0;;;;;:::i;:::-;;:::i;23312:309::-;;;;;;;;;;-1:-1:-1;23312:309:0;;;;;:::i;:::-;;:::i;20910:111::-;;;;;;;;;;-1:-1:-1;20910:111:0;;;;;:::i;:::-;;:::i;14503:81::-;;;;;;;;;;;;;;;21989:126;;;;;;;;;;;;;:::i;17772:81::-;;;;;;;;;;-1:-1:-1;17837:9:0;;17772:81;;17837:9;;;;11361:36:1;;11349:2;11334:18;17772:81:0;11316:87:1;18233:215:0;;;;;;;;;;-1:-1:-1;18233:215:0;;;;;:::i;:::-;;:::i;21272:122::-;;;;;;;;;;-1:-1:-1;21272:122:0;;;;;:::i;:::-;;:::i;14887:45::-;;;;;;;;;;-1:-1:-1;14887:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15780:40;;;;;;;;;;-1:-1:-1;15780:40:0;;;;-1:-1:-1;;;15780:40:0;;;;;;14381:97;;;;;;;;;;-1:-1:-1;14381:97:0;;;;-1:-1:-1;;;;;14381:97:0;;;21400:137;;;;;;;;;;-1:-1:-1;21400:137:0;;;;;:::i;:::-;;:::i;14719:50::-;;;;;;;;;;-1:-1:-1;14719:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15185:34;;;;;;;;;;;;;;;;22255:790;;;;;;;;;;-1:-1:-1;22255:790:0;;;;;:::i;:::-;;:::i;15144:34::-;;;;;;;;;;;;;;;;15225;;;;;;;;;;;;;;;;17963:117;;;;;;;;;;-1:-1:-1;17963:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;18055:18:0;18029:7;18055:18;;;:9;:18;;;;;;;17963:117;21543:133;;;;;;;;;;-1:-1:-1;21543:133:0;;;;;:::i;:::-;;:::i;15496:31::-;;;;;;;;;;;;;;;;15554:46;;;;;;;;;;;;;;;;15346:37;;;;;;;;;;;;;;;;15060:36;;;;;;;;;;;;;;;;14833:48;;;;;;;;;;-1:-1:-1;14833:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5766:77;;;;;;;;;;-1:-1:-1;5804:7:0;5830:6;-1:-1:-1;;;;;5830:6:0;5766:77;;5982:142;;;;;;;;;;;;;:::i;17681:85::-;;;;;;;;;;;;;:::i;15389:43::-;;;;;;;;;;;;;;;;18454:266;;;;;;;;;;-1:-1:-1;18454:266:0;;;;;:::i;:::-;;:::i;21856:123::-;;;;;;;;;;-1:-1:-1;21856:123:0;;;;;:::i;:::-;;:::i;23142:164::-;;;;;;;;;;-1:-1:-1;23142:164:0;;;;;:::i;:::-;;:::i;15021:33::-;;;;;;;;;;;;;;;;20311:364;;;;;;;;;;-1:-1:-1;20311:364:0;;;;;:::i;:::-;;:::i;21682:168::-;;;;;;;;;;-1:-1:-1;21682:168:0;;;;;:::i;:::-;;:::i;14980:35::-;;;;;;;;;;;;;;;;15716:26;;;;;;;;;;-1:-1:-1;15716:26:0;;;;-1:-1:-1;;;;;15716:26:0;;;15102:36;;;;;;;;;;;;;;;;14775:52;;;;;;;;;;-1:-1:-1;14775:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14255:99;;;;;;;;;;-1:-1:-1;14255:99:0;;;;;;;-1:-1:-1;;;;;14255:99:0;;;15826:45;;;;;;;;;;-1:-1:-1;15826:45:0;;;;-1:-1:-1;;;15826:45:0;;;;;;14939:35;;;;;;;;;;;;;;;;18086:141;;;;;;;;;;-1:-1:-1;18086:141:0;;;;;:::i;:::-;-1:-1:-1;;;;;18193:18:0;;;18167:7;18193:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18086:141;19227:102;;;;;;;;;;-1:-1:-1;19227:102:0;;;;;:::i;:::-;;:::i;20685:219::-;;;;;;;;;;-1:-1:-1;20685:219:0;;;;;:::i;:::-;;:::i;19470:133::-;;;;;;;;;;-1:-1:-1;19470:133:0;;;;;:::i;:::-;;:::i;15304:36::-;;;;;;;;;;;;;;;;21166:100;;;;;;;;;;-1:-1:-1;21166:100:0;;;;;:::i;:::-;;:::i;6130:240::-;;;;;;;;;;-1:-1:-1;6130:240:0;;;;;:::i;:::-;;:::i;19335:125::-;;;;;;;;;;-1:-1:-1;19335:125:0;;;;;:::i;:::-;;:::i;15877:35::-;;;;;;;;;;-1:-1:-1;15877:35:0;;;;-1:-1:-1;;;15877:35:0;;;;;;17594:81;17631:13;17663:5;17656:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17594:81;:::o;19954:347::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;;;;;;;;;20080:17:::1;:35:::0;;;20125:17:::1;:35:::0;;;20170:15:::1;:31:::0;;;20233:61:::1;20188:13:::0;20233:40:::1;20100:15:::0;20145;20233:21:::1;:40::i;:::-;:44:::0;::::1;:61::i;:::-;20212:18;:82:::0;-1:-1:-1;;;19954:347:0:o;18726:158::-;18801:4;18817:39;340:10;18840:7;18849:6;18817:8;:39::i;:::-;-1:-1:-1;18873:4:0;18726:158;;;;;:::o;19609:339::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;19734:16:::1;:34:::0;;;19778:16:::1;:34:::0;;;19822:14:::1;:30:::0;;;19883:58:::1;19839:13:::0;19883:38:::1;19753:15:::0;19797;19883:20:::1;:38::i;:58::-;19863:17;:78:::0;-1:-1:-1;;;19609:339:0:o;21027:133::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21117:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;21117:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21027:133::o;23312:309::-;23410:4;23426:36;23436:6;23444:9;23455:6;23426:9;:36::i;:::-;-1:-1:-1;23472:121:0;23481:6;340:10;23503:89;23541:6;23503:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23503:19:0;;;;;;:11;:19;;;;;;;;340:10;23503:33;;;;;;;;;;:37;:89::i;:::-;23472:8;:121::i;:::-;-1:-1:-1;23610:4:0;23312:309;;;;;;:::o;20910:111::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;20987:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;20987:27:0::1;-1:-1:-1::0;;;;20987:27:0;;::::1;::::0;;;::::1;::::0;;20910:111::o;21989:126::-;22095:11;-1:-1:-1;;;;;18055:18:0;22042:7;18055:18;;;:9;:18;;;;;;22068:12;;:40;;:16;:40::i;:::-;22061:47;;21989:126;:::o;18233:215::-;340:10;18321:4;18369:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18369:34:0;;;;;;;;;;18321:4;;18337:83;;18360:7;;18369:50;;18408:10;18369:38;:50::i;21272:122::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;21353:23:::1;:34:::0;21272:122::o;21400:137::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;21486:22:::1;:44:::0;;-1:-1:-1;;;;;21486:44:0;;::::1;;;-1:-1:-1::0;;;;;;21486:44:0;;::::1;::::0;;;::::1;::::0;;21400:137::o;22255:790::-;22335:22;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;22370:35:::1;22427:16;22370:74;;22491:16;-1:-1:-1::0;;;;;22491:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22473:53:0::1;;22535:4;22542:16;-1:-1:-1::0;;;;;22542:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22473:93;::::0;-1:-1:-1;;;;;;22473:93:0::1;::::0;;;;;;-1:-1:-1;;;;;4413:15:1;;;22473:93:0::1;::::0;::::1;4395:34:1::0;4465:15;;4445:18;;;4438:43;4330:18;;22473:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22456:110:::0;-1:-1:-1;;;;;;22580:28:0;::::1;22577:221;;22692:16;-1:-1:-1::0;;;;;22692:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22674:73:0::1;;22756:4;22763:16;-1:-1:-1::0;;;;;22763:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22674:113;::::0;-1:-1:-1;;;;;;22674:113:0::1;::::0;;;;;;-1:-1:-1;;;;;4413:15:1;;;22674:113:0::1;::::0;::::1;4395:34:1::0;4465:15;;4445:18;;;4438:43;4330:18;;22674:113:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22657:130;;22577:221;22808:11;:28:::0;;-1:-1:-1;;;;;;22808:28:0;;::::1;-1:-1:-1::0;;;;;22808:28:0;;::::1;::::0;;::::1;::::0;;22869:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;22939:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;22939:48:0;;::::1;-1:-1:-1::0;22939:48:0;;::::1;::::0;;;23018:11;;;;::::1;22997:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;22808:28;22822:14;-1:-1:-1;22255:790:0:o;21543:133::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;21627:20:::1;:42:::0;;-1:-1:-1;;;;;;21627:42:0::1;-1:-1:-1::0;;;;;21627:42:0;;;::::1;::::0;;;::::1;::::0;;21543:133::o;5982:142::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;6085:1:::1;6069:6:::0;;6048:40:::1;::::0;-1:-1:-1;;;;;6069:6:0;;::::1;::::0;6048:40:::1;::::0;6085:1;;6048:40:::1;6115:1;6098:19:::0;;-1:-1:-1;;;;;;6098:19:0::1;::::0;;5982:142::o;17681:85::-;17720:13;17752:7;17745:14;;;;;:::i;18454:266::-;18547:4;18563:129;340:10;18586:7;18595:96;18634:15;18595:96;;;;;;;;;;;;;;;;;340:10;18595:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18595:34:0;;;;;;;;;;;;:38;:96::i;21856:123::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;21936:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;21936:36:0::1;-1:-1:-1::0;;;;21936:36:0;;::::1;::::0;;;::::1;::::0;;21856:123::o;23142:164::-;23220:4;23236:42;340:10;23260:9;23271:6;23236:9;:42::i;20311:364::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;20454:15:::1;:35:::0;;;20499:15:::1;:35:::0;;;20544:13:::1;:31:::0;;;20613:55:::1;20560:15:::0;20613:36:::1;20472:17:::0;20517;20613:19:::1;:36::i;:55::-;20586:24;:82:::0;-1:-1:-1;;;20311:364:0:o;21682:168::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;21758:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;21758:32:0::1;-1:-1:-1::0;;;;21758:32:0;;::::1;;::::0;;21805:38:::1;::::0;::::1;::::0;::::1;::::0;21782:8;5269:14:1;5262:22;5244:41;;5232:2;5217:18;;5199:92;21805:38:0::1;;;;;;;;21682:168:::0;:::o;19227:102::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19294:21:0::1;;::::0;;;:12:::1;:21;::::0;;;;:28;;-1:-1:-1;;19294:28:0::1;19318:4;19294:28;::::0;;19227:102::o;20685:219::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;20785:18:::1;20769:11;:35;;20761:100;;;::::0;-1:-1:-1;;;20761:100:0;;6745:2:1;20761:100:0::1;::::0;::::1;6727:21:1::0;6784:2;6764:18;;;6757:30;6823:34;6803:18;;;6796:62;-1:-1:-1;;;6874:18:1;;;6867:50;6934:19;;20761:100:0::1;6717:242:1::0;20761:100:0::1;20871:12;:26:::0;20685:219::o;19470:133::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19559:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;19559:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19470:133::o;21166:100::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;21237:10:::1;:22:::0;21166:100::o;6130:240::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6218:22:0;::::1;6210:73;;;::::0;-1:-1:-1;;;6210:73:0;;7166:2:1;6210:73:0::1;::::0;::::1;7148:21:1::0;7205:2;7185:18;;;7178:30;7244:34;7224:18;;;7217:62;-1:-1:-1;;;7295:18:1;;;7288:36;7341:19;;6210:73:0::1;7138:228:1::0;6210:73:0::1;6319:6;::::0;;6298:38:::1;::::0;-1:-1:-1;;;;;6298:38:0;;::::1;::::0;6319:6;::::1;::::0;6298:38:::1;::::0;::::1;6346:6;:17:::0;;-1:-1:-1;;;;;;6346:17:0::1;-1:-1:-1::0;;;;;6346:17:0;;;::::1;::::0;;;::::1;::::0;;6130:240::o;19335:125::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19421:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;19421:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19335:125::o;1289:176::-;1347:7;;1378:5;1382:1;1378;:5;:::i;:::-;1366:17;;1406:1;1401;:6;;1393:46;;;;-1:-1:-1;;;1393:46:0;;7976:2:1;1393:46:0;;;7958:21:1;8015:2;7995:18;;;7988:30;8054:29;8034:18;;;8027:57;8101:18;;1393:46:0;7948:177:1;18890:331:0;-1:-1:-1;;;;;18982:19:0;;18974:68;;;;-1:-1:-1;;;18974:68:0;;9910:2:1;18974:68:0;;;9892:21:1;9949:2;9929:18;;;9922:30;9988:34;9968:18;;;9961:62;-1:-1:-1;;;10039:18:1;;;10032:34;10083:19;;18974:68:0;9882:226:1;18974:68:0;-1:-1:-1;;;;;19060:21:0;;19052:68;;;;-1:-1:-1;;;19052:68:0;;7573:2:1;19052:68:0;;;7555:21:1;7612:2;7592:18;;;7585:30;7651:34;7631:18;;;7624:62;-1:-1:-1;;;7702:18:1;;;7695:32;7744:19;;19052:68:0;7545:224:1;19052:68:0;-1:-1:-1;;;;;19131:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19182:32;;10259:25:1;;;19182:32:0;;10232:18:1;19182:32:0;;;;;;;18890:331;;;:::o;23627:1669::-;23714:4;-1:-1:-1;;;;;23739:20:0;;23731:70;;;;-1:-1:-1;;;23731:70:0;;9504:2:1;23731:70:0;;;9486:21:1;9543:2;9523:18;;;9516:30;9582:34;9562:18;;;9555:62;-1:-1:-1;;;9633:18:1;;;9626:35;9678:19;;23731:70:0;9476:227:1;23731:70:0;-1:-1:-1;;;;;23819:23:0;;23811:71;;;;-1:-1:-1;;;23811:71:0;;6341:2:1;23811:71:0;;;6323:21:1;6380:2;6360:18;;;6353:30;6419:34;6399:18;;;6392:62;-1:-1:-1;;;6470:18:1;;;6463:33;6513:19;;23811:71:0;6313:225:1;23811:71:0;23896:16;;-1:-1:-1;;;23896:16:0;;;;23893:1397;;;23944:41;23959:6;23967:9;23978:6;23944:14;:41::i;:::-;23937:48;;;;23893:1397;-1:-1:-1;;;;;24037:23:0;;;;;;:15;:23;;;;;;;;24036:24;:55;;;;-1:-1:-1;;;;;;24065:26:0;;;;;;:15;:26;;;;;;;;24064:27;24036:55;24033:168;;;24129:12;;24119:6;:22;;24111:75;;;;-1:-1:-1;;;24111:75:0;;8332:2:1;24111:75:0;;;8314:21:1;8371:2;8351:18;;;8344:30;8410:34;8390:18;;;8383:62;-1:-1:-1;;;8461:18:1;;;8454:38;8509:19;;24111:75:0;8304:230:1;24111:75:0;24276:4;24227:28;18055:18;;;:9;:18;;;;;;24351:23;;24327:47;;;;;;;24405:44;;-1:-1:-1;24433:16:0;;-1:-1:-1;;;24433:16:0;;;;24432:17;24405:44;:69;;;;-1:-1:-1;;;;;;24454:20:0;;;;;;:12;:20;;;;;;;;24453:21;24405:69;:94;;;;-1:-1:-1;24478:21:0;;-1:-1:-1;;;24478:21:0;;;;24405:94;24401:300;;;24535:25;;-1:-1:-1;;;24535:25:0;;;;24532:96;;;24605:23;;24582:46;;24532:96;24646:36;24661:20;24646:14;:36::i;:::-;24735:53;;;;;;;;;;;-1:-1:-1;;;24735:53:0;;;;;;;;-1:-1:-1;;;;;24735:17:0;;-1:-1:-1;24735:17:0;;;:9;:17;;;;;;;;:53;;24757:6;;24735:21;:53::i;:::-;-1:-1:-1;;;;;24715:17:0;;;;;;:9;:17;;;;;;;;:73;;;;24826:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;24855:28:0;;;;;;:17;:28;;;;;;;;24826:57;24825:147;;24938:34;24946:6;24954:9;24965:6;24938:7;:34::i;:::-;24825:147;;;24929:6;24825:147;24990:16;;24803:169;;-1:-1:-1;;;;24990:16:0;;;;:51;;;;-1:-1:-1;;;;;;25011:30:0;;;;;;:19;:30;;;;;;;;25010:31;24990:51;24987:132;;;25108:10;;25067:37;25092:11;25067:20;25077:9;-1:-1:-1;;;;;18055:18:0;18029:7;18055:18;;;:9;:18;;;;;;;17963:117;25067:37;:51;;25059:60;;;;;;-1:-1:-1;;;;;25157:20:0;;;;;;:9;:20;;;;;;:37;;25182:11;25157:24;:37::i;:::-;-1:-1:-1;;;;;25134:20:0;;;;;;;:9;:20;;;;;;;:60;;;;25214:40;;;;;;;;;;25242:11;10259:25:1;;10247:2;10232:18;;10214:76;25214:40:0;;;;;;;;25275:4;25268:11;;;;;;;1611:187;1697:7;1732:12;1724:6;;;;1716:29;;;;-1:-1:-1;;;1716:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1755:9:0;1767:5;1771:1;1767;:5;:::i;:::-;1755:17;1611:187;-1:-1:-1;;;;;1611:187:0:o;1471:134::-;1529:7;1555:43;1559:1;1562;1555:43;;;;;;;;;;;;;;;;;:3;:43::i;25302:325::-;25431:53;;;;;;;;;;;-1:-1:-1;;;25431:53:0;;;;;;;;-1:-1:-1;;;;;25431:17:0;;25395:4;25431:17;;;:9;:17;;;;;;;:53;;25453:6;;25431:21;:53::i;:::-;-1:-1:-1;;;;;25411:17:0;;;;;;;:9;:17;;;;;;:73;;;;25517:20;;;;;;;:32;;25542:6;25517:24;:32::i;:::-;-1:-1:-1;;;;;25494:20:0;;;;;;;:9;:20;;;;;;;:55;;;;25564:35;;;;;;;;;;25592:6;10259:25:1;;10247:2;10232:18;;10214:76;25564:35:0;;;;;;;;-1:-1:-1;25616:4:0;25302:325;;;;;:::o;25633:1044::-;16315:16;:23;;-1:-1:-1;;;;16315:23:0;-1:-1:-1;;;16315:23:0;;;25768:24:::1;::::0;25747:15:::1;::::0;16315:23;;25735:65:::1;::::0;25798:1:::1;::::0;25735:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;25713:87:::0;-1:-1:-1;25810:21:0::1;25834:24;:7:::0;25713:87;25834:11:::1;:24::i;:::-;25810:48;;25869:31;25886:13;25869:16;:31::i;:::-;26018:15;::::0;25935:21:::1;::::0;25910:22:::1;::::0;25989:52:::1;::::0;26018:22:::1;::::0;26038:1:::1;26018:19;:22::i;:::-;25989:24;::::0;;:28:::1;:52::i;:::-;25967:74;;26060:26;26089:59;26146:1;26089:52;26129:11;26089:35;26108:15;;26089:14;:18;;:35;;;;:::i;:59::-;26060:88;;26158:24;26185:50;26223:11;26185:33;26204:13;;26185:14;:18;;:33;;;;:::i;:50::-;26158:77:::0;-1:-1:-1;26245:26:0::1;26274:60;26158:77:::0;26274:38:::1;:14:::0;26293:18;26274::::1;:38::i;:::-;:42:::0;::::1;:60::i;:::-;26245:89:::0;-1:-1:-1;26348:22:0;;26345:103:::1;;26405:22;::::0;26384:64:::1;::::0;26405:22:::1;::::0;::::1;-1:-1:-1::0;;;;;26405:22:0::1;26429:18:::0;26384:20:::1;:64::i;:::-;26462:20:::0;;26459:97:::1;;26517:20;::::0;26496:60:::1;::::0;-1:-1:-1;;;;;26517:20:0::1;26539:16:::0;26496:20:::1;:60::i;:::-;26591:1;26570:18;:22;:41;;;;;26610:1;26596:11;:15;26570:41;26567:103;;;26625:45;26638:11;26651:18;26625:12;:45::i;:::-;-1:-1:-1::0;;16359:16:0;:24;;-1:-1:-1;;;;16359:24:0;;;-1:-1:-1;;;;;;25633:1044:0:o;27847:605::-;-1:-1:-1;;;;;28004:20:0;;27933:7;28004:20;;;:12;:20;;;;;;27933:7;;28004:20;;28001:218;;;28052:38;28086:3;28052:29;28063:17;;28052:6;:10;;:29;;;;:::i;:38::-;28040:50;;28001:218;;;-1:-1:-1;;;;;28118:23:0;;;;;;:12;:23;;;;;;;;28115:104;;;28169:39;28204:3;28169:30;28180:18;;28169:6;:10;;:30;;;;:::i;:39::-;28157:51;;28115:104;28240:13;;28237:170;;28314:4;28296:24;;;;:9;:24;;;;;;:39;;28325:9;28296:28;:39::i;:::-;28287:4;28269:24;;;;:9;:24;;;;;;;:66;;;;28354:42;;-1:-1:-1;;;;;28354:42:0;;;;;;;28386:9;10259:25:1;;10247:2;10232:18;;10214:76;28354:42:0;;;;;;;;28237:170;28424:21;:6;28435:9;28424:10;:21::i;1804:241::-;1862:7;1885:6;1881:45;;-1:-1:-1;1914:1:0;1907:8;;1881:45;1936:9;1948:5;1952:1;1948;:5;:::i;:::-;1936:17;-1:-1:-1;1980:1:0;1971:5;1975:1;1936:17;1971:5;:::i;:::-;:10;1963:56;;;;-1:-1:-1;;;1963:56:0;;8741:2:1;1963:56:0;;;8723:21:1;8780:2;8760:18;;;8753:30;8819:34;8799:18;;;8792:62;-1:-1:-1;;;8870:18:1;;;8863:31;8911:19;;1963:56:0;8713:223:1;2051:130:0;2109:7;2135:39;2139:1;2142;2135:39;;;;;;;;;;;;;;;;;:3;:39::i;26687:648::-;26835:16;;;26849:1;26835:16;;;;;;;;26811:21;;26835:16;;;;;;;;;;-1:-1:-1;26835:16:0;26811:40;;26879:4;26861;26866:1;26861:7;;;;;;-1:-1:-1;;;26861:7:0;;;;;;;;;-1:-1:-1;;;;;26861:23:0;;;:7;;;;;;;;;;:23;;;;26904:15;;:22;;;-1:-1:-1;;;26904:22:0;;;;:15;;;;;:20;;:22;;;;;26861:7;;26904:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26894:4;26899:1;26894:7;;;;;;-1:-1:-1;;;26894:7:0;;;;;;;;;-1:-1:-1;;;;;26894:32:0;;;:7;;;;;;;;;:32;26969:15;;26937:62;;26954:4;;26969:15;26987:11;26937:8;:62::i;:::-;27035:15;;:234;;-1:-1:-1;;;27035:234:0;;-1:-1:-1;;;;;27035:15:0;;;;:66;;:234;;27115:11;;27035:15;;27183:4;;27209;;27244:15;;27035:234;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27293:35;27310:11;27323:4;27293:35;;;;;;;:::i;:::-;;;;;;;;26687:648;;:::o;22121:124::-;22212:26;;-1:-1:-1;;;;;22212:18:0;;;:26;;;;;22231:6;;22212:26;;;;22231:6;22212:18;:26;;;;;;;;;;;;;;;;;;;;;22121:124;;:::o;27341:500::-;27519:15;;27487:62;;27504:4;;-1:-1:-1;;;;;27519:15:0;27537:11;27487:8;:62::i;:::-;27589:15;;-1:-1:-1;;;;;27589:15:0;:31;27628:9;27660:4;27679:11;27589:15;;27788:7;5804;5830:6;-1:-1:-1;;;;;5830:6:0;;5766:77;27788:7;27589:245;;;;;;-1:-1:-1;;;;;;27589:245:0;;;-1:-1:-1;;;;;4851:15:1;;;27589:245:0;;;4833:34:1;4883:18;;;4876:34;;;;4926:18;;;4919:34;;;;4969:18;;;4962:34;5033:15;;;5012:19;;;5005:44;27809:15:0;5065:19:1;;;5058:35;4767:19;;27589:245:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27341:500;;:::o;2187:272::-;2273:7;2307:12;2300:5;2292:28;;;;-1:-1:-1;;;2292:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2330:9:0;2342:5;2346:1;2342;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:257::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;312:6;304;297:22;259:2;356:9;343:23;375:31;400:5;375:31;:::i;441:261::-;511:6;564:2;552:9;543:7;539:23;535:32;532:2;;;585:6;577;570:22;532:2;622:9;616:16;641:31;666:5;641:31;:::i;707:398::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:31;945:5;920:31;:::i;:::-;970:5;-1:-1:-1;1027:2:1;1012:18;;999:32;1040:33;999:32;1040:33;:::i;:::-;1092:7;1082:17;;;794:311;;;;;:::o;1110:466::-;1187:6;1195;1203;1256:2;1244:9;1235:7;1231:23;1227:32;1224:2;;;1277:6;1269;1262:22;1224:2;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;-1:-1:-1;1447:2:1;1432:18;;1419:32;1460:33;1419:32;1460:33;:::i;:::-;1214:362;;1512:7;;-1:-1:-1;;;1566:2:1;1551:18;;;;1538:32;;1214:362::o;1581:325::-;1646:6;1654;1707:2;1695:9;1686:7;1682:23;1678:32;1675:2;;;1728:6;1720;1713:22;1675:2;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;:::-;1841:5;-1:-1:-1;1865:35:1;1896:2;1881:18;;1865:35;:::i;:::-;1855:45;;1665:241;;;;;:::o;1911:325::-;1979:6;1987;2040:2;2028:9;2019:7;2015:23;2011:32;2008:2;;;2061:6;2053;2046:22;2008:2;2105:9;2092:23;2124:31;2149:5;2124:31;:::i;:::-;2174:5;2226:2;2211:18;;;;2198:32;;-1:-1:-1;;;1998:238:1:o;2241:190::-;2297:6;2350:2;2338:9;2329:7;2325:23;2321:32;2318:2;;;2371:6;2363;2356:22;2318:2;2399:26;2415:9;2399:26;:::i;2436:190::-;2495:6;2548:2;2536:9;2527:7;2523:23;2519:32;2516:2;;;2569:6;2561;2554:22;2516:2;-1:-1:-1;2597:23:1;;2506:120;-1:-1:-1;2506:120:1:o;2631:326::-;2708:6;2716;2724;2777:2;2765:9;2756:7;2752:23;2748:32;2745:2;;;2798:6;2790;2783:22;2745:2;-1:-1:-1;;2826:23:1;;;2896:2;2881:18;;2868:32;;-1:-1:-1;2947:2:1;2932:18;;;2919:32;;2735:222;-1:-1:-1;2735:222:1:o;2962:316::-;3050:6;3058;3066;3119:2;3107:9;3098:7;3094:23;3090:32;3087:2;;;3140:6;3132;3125:22;3087:2;3174:9;3168:16;3158:26;;3224:2;3213:9;3209:18;3203:25;3193:35;;3268:2;3257:9;3253:18;3247:25;3237:35;;3077:201;;;;;:::o;3283:463::-;3336:3;3374:5;3368:12;3401:6;3396:3;3389:19;3427:4;3456:2;3451:3;3447:12;3440:19;;3493:2;3486:5;3482:14;3514:3;3526:195;3540:6;3537:1;3534:13;3526:195;;;3605:13;;-1:-1:-1;;;;;3601:39:1;3589:52;;3661:12;;;;3696:15;;;;3637:1;3555:9;3526:195;;;-1:-1:-1;3737:3:1;;3344:402;-1:-1:-1;;;;;3344:402:1:o;5531:603::-;5643:4;5672:2;5701;5690:9;5683:21;5733:6;5727:13;5776:6;5771:2;5760:9;5756:18;5749:34;5801:4;5814:140;5828:6;5825:1;5822:13;5814:140;;;5923:14;;;5919:23;;5913:30;5889:17;;;5908:2;5885:26;5878:66;5843:10;;5814:140;;;5972:6;5969:1;5966:13;5963:2;;;6042:4;6037:2;6028:6;6017:9;6013:22;6009:31;6002:45;5963:2;-1:-1:-1;6118:2:1;6097:15;-1:-1:-1;;6093:29:1;6078:45;;;;6125:2;6074:54;;5652:482;-1:-1:-1;;;5652:482:1:o;8941:356::-;9143:2;9125:21;;;9162:18;;;9155:30;9221:34;9216:2;9201:18;;9194:62;9288:2;9273:18;;9115:182::o;10295:332::-;10502:6;10491:9;10484:25;10545:2;10540;10529:9;10525:18;10518:30;10465:4;10565:56;10617:2;10606:9;10602:18;10594:6;10565:56;:::i;:::-;10557:64;10474:153;-1:-1:-1;;;;10474:153:1:o;10632:582::-;10931:6;10920:9;10913:25;10974:6;10969:2;10958:9;10954:18;10947:34;11017:3;11012:2;11001:9;10997:18;10990:31;10894:4;11038:57;11090:3;11079:9;11075:19;11067:6;11038:57;:::i;:::-;-1:-1:-1;;;;;11131:32:1;;;;11126:2;11111:18;;11104:60;-1:-1:-1;11195:3:1;11180:19;11173:35;11030:65;10903:311;-1:-1:-1;;;10903:311:1:o;11408:128::-;11448:3;11479:1;11475:6;11472:1;11469:13;11466:2;;;11485:18;;:::i;:::-;-1:-1:-1;11521:9:1;;11456:80::o;11541:217::-;11581:1;11607;11597:2;;-1:-1:-1;;;11632:31:1;;11686:4;11683:1;11676:15;11714:4;11639:1;11704:15;11597:2;-1:-1:-1;11743:9:1;;11587:171::o;11763:168::-;11803:7;11869:1;11865;11861:6;11857:14;11854:1;11851:21;11846:1;11839:9;11832:17;11828:45;11825:2;;;11876:18;;:::i;:::-;-1:-1:-1;11916:9:1;;11815:116::o;11936:125::-;11976:4;12004:1;12001;11998:8;11995:2;;;12009:18;;:::i;:::-;-1:-1:-1;12046:9:1;;11985:76::o;12066:380::-;12145:1;12141:12;;;;12188;;;12209:2;;12263:4;12255:6;12251:17;12241:27;;12209:2;12316;12308:6;12305:14;12285:18;12282:38;12279:2;;;12362:10;12357:3;12353:20;12350:1;12343:31;12397:4;12394:1;12387:15;12425:4;12422:1;12415:15;12279:2;;12121:325;;;:::o;12451:127::-;12512:10;12507:3;12503:20;12500:1;12493:31;12543:4;12540:1;12533:15;12567:4;12564:1;12557:15;12583:131;-1:-1:-1;;;;;12658:31:1;;12648:42;;12638:2;;12704:1;12701;12694:12;12638:2;12628:86;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "2028600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"BuyBackWalletAddress()": "1105",
"_BuyBackShare()": "1054",
"_buyBuyBackFee()": "1051",
"_buyLiquidityFee()": "1095",
"_buyMarketingFee()": "1117",
"_liquidityShare()": "1118",
"_marketingShare()": "1096",
"_maxTxAmount()": "1095",
"_sellBuyBackFee()": "1074",
"_sellLiquidityFee()": "1075",
"_sellMarketingFee()": "1074",
"_totalDistributionShares()": "1118",
"_totalTaxIfBuying()": "1117",
"_totalTaxIfSelling()": "1053",
"_walletMax()": "1117",
"addMarketPair(address)": "22111",
"allowance(address,address)": "infinite",
"approve(address,uint256)": "22560",
"balanceOf(address)": "1287",
"changeRouterVersion(address)": "infinite",
"checkWalletLimit()": "1159",
"deadAddress()": "infinite",
"decimals()": "1101",
"decreaseAllowance(address,uint256)": "infinite",
"enableDisableWalletLimit(bool)": "22108",
"getCirculatingSupply()": "infinite",
"increaseAllowance(address,uint256)": "23739",
"isExcludedFromFee(address)": "1337",
"isMarketPair(address)": "1316",
"isTxLimitExempt(address)": "1338",
"isWalletLimitExempt(address)": "1337",
"marketingWalletAddress()": "1115",
"name()": "infinite",
"owner()": "1099",
"setBuyBackWalletAddress(address)": "22094",
"setBuyTaxes(uint256,uint256,uint256)": "infinite",
"setDistributionSettings(uint256,uint256,uint256)": "infinite",
"setIsExcludedFromFee(address,bool)": "22269",
"setIsTxLimitExempt(address,bool)": "22268",
"setIsWalletLimitExempt(address,bool)": "22227",
"setMarketingWalletAddress(address)": "22106",
"setMaxTxAmount(uint256)": "21179",
"setNumTokensBeforeSwap(uint256)": "21133",
"setSellTaxes(uint256,uint256,uint256)": "infinite",
"setSwapAndLiquifyByLimitOnly(bool)": "22085",
"setSwapAndLiquifyEnabled(bool)": "23180",
"setWalletLimit(uint256)": "21130",
"swapAndLiquifyByLimitOnly()": "1116",
"swapAndLiquifyEnabled()": "1140",
"symbol()": "infinite",
"totalSupply()": "1094",
"transfer(address,uint256)": "infinite",
"transferFrom(address,address,uint256)": "infinite",
"transferOwnership(address)": "24482",
"uniswapPair()": "1105",
"uniswapV2Router()": "1128",
"waiveOwnership()": "24255"
},
"internal": {
"_approve(address,address,uint256)": "infinite",
"_basicTransfer(address,address,uint256)": "infinite",
"_transfer(address,address,uint256)": "infinite",
"addLiquidity(uint256,uint256)": "infinite",
"swapAndLiquify(uint256)": "infinite",
"swapTokensForEth(uint256)": "infinite",
"takeFee(address,address,uint256)": "infinite",
"transferToAddressETH(address payable,uint256)": "infinite"
}
},
"methodIdentifiers": {
"BuyBackWalletAddress()": "4b06049a",
"_BuyBackShare()": "0432ba34",
"_buyBuyBackFee()": "b8316719",
"_buyLiquidityFee()": "dc44b6a0",
"_buyMarketingFee()": "c5d24189",
"_liquidityShare()": "57a5802f",
"_marketingShare()": "61a23c69",
"_maxTxAmount()": "7d1db4a5",
"_sellBuyBackFee()": "619e1e36",
"_sellLiquidityFee()": "88790a68",
"_sellMarketingFee()": "c8607952",
"_totalDistributionShares()": "a08e671f",
"_totalTaxIfBuying()": "f0cd1dac",
"_totalTaxIfSelling()": "82eefb43",
"_walletMax()": "807c2d9c",
"addMarketPair(address)": "e207a92b",
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"changeRouterVersion(address)": "5881f3ef",
"checkWalletLimit()": "f872858a",
"deadAddress()": "27c8f835",
"decimals()": "313ce567",
"decreaseAllowance(address,uint256)": "a457c2d7",
"enableDisableWalletLimit(bool)": "2563ae83",
"getCirculatingSupply()": "2b112e49",
"increaseAllowance(address,uint256)": "39509351",
"isExcludedFromFee(address)": "5342acb4",
"isMarketPair(address)": "3ecad271",
"isTxLimitExempt(address)": "8b42507f",
"isWalletLimitExempt(address)": "c867d60b",
"marketingWalletAddress()": "d158272d",
"name()": "06fdde03",
"owner()": "8da5cb5b",
"setBuyBackWalletAddress(address)": "75b08937",
"setBuyTaxes(uint256,uint256,uint256)": "1870517a",
"setDistributionSettings(uint256,uint256,uint256)": "c2d4640e",
"setIsExcludedFromFee(address,bool)": "ef422a18",
"setIsTxLimitExempt(address,bool)": "f84ba65d",
"setIsWalletLimitExempt(address,bool)": "2198cf6c",
"setMarketingWalletAddress(address)": "4cb80fd5",
"setMaxTxAmount(uint256)": "ec28438a",
"setNumTokensBeforeSwap(uint256)": "3b97084a",
"setSellTaxes(uint256,uint256,uint256)": "08733214",
"setSwapAndLiquifyByLimitOnly(bool)": "a5d69d1f",
"setSwapAndLiquifyEnabled(bool)": "c49b9a80",
"setWalletLimit(uint256)": "f1d5f517",
"swapAndLiquifyByLimitOnly()": "da00097d",
"swapAndLiquifyEnabled()": "4a74bb02",
"symbol()": "95d89b41",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd",
"transferOwnership(address)": "f2fde38b",
"uniswapPair()": "c816841b",
"uniswapV2Router()": "1694505e",
"waiveOwnership()": "914eb66a"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokensSwapped",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "ethReceived",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokensIntoLiqudity",
"type": "uint256"
}
],
"name": "SwapAndLiquify",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "SwapAndLiquifyEnabledUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "SwapETHForTokens",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "SwapTokensForETH",
"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": "BuyBackWalletAddress",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_BuyBackShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_buyBuyBackFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_buyLiquidityFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_buyMarketingFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_liquidityShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_marketingShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_maxTxAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_sellBuyBackFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_sellLiquidityFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_sellMarketingFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_totalDistributionShares",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_totalTaxIfBuying",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_totalTaxIfSelling",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_walletMax",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "addMarketPair",
"outputs": [],
"stateMutability": "nonpayable",
"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": "address",
"name": "newRouterAddress",
"type": "address"
}
],
"name": "changeRouterVersion",
"outputs": [
{
"internalType": "address",
"name": "newPairAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "checkWalletLimit",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deadAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"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": "bool",
"name": "newValue",
"type": "bool"
}
],
"name": "enableDisableWalletLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getCirculatingSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "address",
"name": "",
"type": "address"
}
],
"name": "isExcludedFromFee",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isMarketPair",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isTxLimitExempt",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isWalletLimitExempt",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "marketingWalletAddress",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "setBuyBackWalletAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLiquidityTax",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newMarketingTax",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newBuyBackTax",
"type": "uint256"
}
],
"name": "setBuyTaxes",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLiquidityShare",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newMarketingShare",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newBuyBackShare",
"type": "uint256"
}
],
"name": "setDistributionSettings",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bool",
"name": "newValue",
"type": "bool"
}
],
"name": "setIsExcludedFromFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "holder",
"type": "address"
},
{
"internalType": "bool",
"name": "exempt",
"type": "bool"
}
],
"name": "setIsTxLimitExempt",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "holder",
"type": "address"
},
{
"internalType": "bool",
"name": "exempt",
"type": "bool"
}
],
"name": "setIsWalletLimitExempt",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "setMarketingWalletAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "maxTxAmount",
"type": "uint256"
}
],
"name": "setMaxTxAmount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLimit",
"type": "uint256"
}
],
"name": "setNumTokensBeforeSwap",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLiquidityTax",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newMarketingTax",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newBuyBackTax",
"type": "uint256"
}
],
"name": "setSellTaxes",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "newValue",
"type": "bool"
}
],
"name": "setSwapAndLiquifyByLimitOnly",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_enabled",
"type": "bool"
}
],
"name": "setSwapAndLiquifyEnabled",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLimit",
"type": "uint256"
}
],
"name": "setWalletLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "swapAndLiquifyByLimitOnly",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "swapAndLiquifyEnabled",
"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": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "uniswapPair",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "uniswapV2Router",
"outputs": [
{
"internalType": "contract IUniswapV2Router02",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "waiveOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokensSwapped",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "ethReceived",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokensIntoLiqudity",
"type": "uint256"
}
],
"name": "SwapAndLiquify",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "SwapAndLiquifyEnabledUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "SwapETHForTokens",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address[]",
"name": "path",
"type": "address[]"
}
],
"name": "SwapTokensForETH",
"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": "BuyBackWalletAddress",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_BuyBackShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_buyBuyBackFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_buyLiquidityFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_buyMarketingFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_liquidityShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_marketingShare",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_maxTxAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_sellBuyBackFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_sellLiquidityFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_sellMarketingFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_totalDistributionShares",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_totalTaxIfBuying",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_totalTaxIfSelling",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "_walletMax",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "addMarketPair",
"outputs": [],
"stateMutability": "nonpayable",
"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": "address",
"name": "newRouterAddress",
"type": "address"
}
],
"name": "changeRouterVersion",
"outputs": [
{
"internalType": "address",
"name": "newPairAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "checkWalletLimit",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deadAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"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": "bool",
"name": "newValue",
"type": "bool"
}
],
"name": "enableDisableWalletLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getCirculatingSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": "address",
"name": "",
"type": "address"
}
],
"name": "isExcludedFromFee",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isMarketPair",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isTxLimitExempt",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isWalletLimitExempt",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "marketingWalletAddress",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "setBuyBackWalletAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLiquidityTax",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newMarketingTax",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newBuyBackTax",
"type": "uint256"
}
],
"name": "setBuyTaxes",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLiquidityShare",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newMarketingShare",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newBuyBackShare",
"type": "uint256"
}
],
"name": "setDistributionSettings",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bool",
"name": "newValue",
"type": "bool"
}
],
"name": "setIsExcludedFromFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "holder",
"type": "address"
},
{
"internalType": "bool",
"name": "exempt",
"type": "bool"
}
],
"name": "setIsTxLimitExempt",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "holder",
"type": "address"
},
{
"internalType": "bool",
"name": "exempt",
"type": "bool"
}
],
"name": "setIsWalletLimitExempt",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "setMarketingWalletAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "maxTxAmount",
"type": "uint256"
}
],
"name": "setMaxTxAmount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLimit",
"type": "uint256"
}
],
"name": "setNumTokensBeforeSwap",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLiquidityTax",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newMarketingTax",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newBuyBackTax",
"type": "uint256"
}
],
"name": "setSellTaxes",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "newValue",
"type": "bool"
}
],
"name": "setSwapAndLiquifyByLimitOnly",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_enabled",
"type": "bool"
}
],
"name": "setSwapAndLiquifyEnabled",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLimit",
"type": "uint256"
}
],
"name": "setWalletLimit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "swapAndLiquifyByLimitOnly",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "swapAndLiquifyEnabled",
"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": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "uniswapPair",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "uniswapV2Router",
"outputs": [
{
"internalType": "contract IUniswapV2Router02",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "waiveOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "MetaverseDoge"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506102a9806100616000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80638da5cb5b14610046578063914eb66a14610065578063f2fde38b1461006f575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61006d610082565b005b61006d61007d366004610245565b61012b565b6000546001600160a01b031633146100e15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146101855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016100d8565b6001600160a01b0381166101ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100d8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610256578081fd5b81356001600160a01b038116811461026c578182fd5b939250505056fea264697066735822122040f6b43c48d57dcd8b68772867d0b0c1ded0a75c206133c50cebcbbd3bb4c3b464736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 SWAP2 DUP3 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP3 SWAP1 LOG3 POP PUSH2 0x2A9 DUP1 PUSH2 0x61 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x914EB66A EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x6D PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6D PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x245 JUMP JUMPDEST PUSH2 0x12B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP4 SWAP1 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x185 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x256 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOCKHASH 0xF6 0xB4 EXTCODECOPY 0x48 0xD5 PUSH30 0xCD8B68772867D0B0C1DED0A75C206133C50CEBCBBD3BB4C3B464736F6C63 NUMBER STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "5421:951:0:-:0;;;5610:150;;;;;;;;;-1:-1:-1;5635:17:0;5677:18;;-1:-1:-1;;;;;;5677:18:0;340:10;5677:18;;;;;5710:43;;340:10;;;;5710:43;;5635:17;;5710:43;5610:150;5421:951;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1298:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "84:236:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "130:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "139:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "147:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "132:6:1"
},
"nodeType": "YulFunctionCall",
"src": "132:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "132:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "105:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "114:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "101:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "126:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "97:3:1"
},
"nodeType": "YulFunctionCall",
"src": "97:32:1"
},
"nodeType": "YulIf",
"src": "94:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "165:36:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "191:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "178:12:1"
},
"nodeType": "YulFunctionCall",
"src": "178:23:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "169:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "264:26:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "273:6:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "281:6:1"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "266:6:1"
},
"nodeType": "YulFunctionCall",
"src": "266:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "266:22:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "223:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "234:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "249:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "254:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "245:3:1"
},
"nodeType": "YulFunctionCall",
"src": "245:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "258:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "241:3:1"
},
"nodeType": "YulFunctionCall",
"src": "241:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "230:3:1"
},
"nodeType": "YulFunctionCall",
"src": "230:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "220:2:1"
},
"nodeType": "YulFunctionCall",
"src": "220:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "213:6:1"
},
"nodeType": "YulFunctionCall",
"src": "213:50:1"
},
"nodeType": "YulIf",
"src": "210:2:1"
},
{
"nodeType": "YulAssignment",
"src": "299:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "309:5:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "299:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "50:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "61:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "73:6:1",
"type": ""
}
],
"src": "14:306:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "426:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "436:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "448:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "459:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "444:3:1"
},
"nodeType": "YulFunctionCall",
"src": "444:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "436:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "478:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "493:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "509:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "514:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "505:3:1"
},
"nodeType": "YulFunctionCall",
"src": "505:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "518:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "501:3:1"
},
"nodeType": "YulFunctionCall",
"src": "501:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "489:3:1"
},
"nodeType": "YulFunctionCall",
"src": "489:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "471:6:1"
},
"nodeType": "YulFunctionCall",
"src": "471:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "471:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "395:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "406:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "417:4:1",
"type": ""
}
],
"src": "325:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "707:228:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "724:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "735:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "717:6:1"
},
"nodeType": "YulFunctionCall",
"src": "717:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "717:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "758:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "769:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "754:3:1"
},
"nodeType": "YulFunctionCall",
"src": "754:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "774:2:1",
"type": "",
"value": "38"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "747:6:1"
},
"nodeType": "YulFunctionCall",
"src": "747:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "747:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "797:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "808:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "793:3:1"
},
"nodeType": "YulFunctionCall",
"src": "793:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "813:34:1",
"type": "",
"value": "Ownable: new owner is the zero a"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "786:6:1"
},
"nodeType": "YulFunctionCall",
"src": "786:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "786:62:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "868:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "879:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "864:3:1"
},
"nodeType": "YulFunctionCall",
"src": "864:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "884:8:1",
"type": "",
"value": "ddress"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "857:6:1"
},
"nodeType": "YulFunctionCall",
"src": "857:36:1"
},
"nodeType": "YulExpressionStatement",
"src": "857:36:1"
},
{
"nodeType": "YulAssignment",
"src": "902:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "914:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "925:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "910:3:1"
},
"nodeType": "YulFunctionCall",
"src": "910:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "902:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "684:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "698:4:1",
"type": ""
}
],
"src": "533:402:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1114:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1131:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1142:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1124:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1124:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1124:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1165:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1176:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1161:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1181:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1154:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1154:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1154:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1204:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1215:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1200:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1200:18:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "1220:34:1",
"type": "",
"value": "Ownable: caller is not the owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1193:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1193:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "1193:62:1"
},
{
"nodeType": "YulAssignment",
"src": "1264:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1276:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1287:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1272:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1272:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1264:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1091:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1105:4:1",
"type": ""
}
],
"src": "940:356:1"
}
]
},
"contents": "{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80638da5cb5b14610046578063914eb66a14610065578063f2fde38b1461006f575b600080fd5b600054604080516001600160a01b039092168252519081900360200190f35b61006d610082565b005b61006d61007d366004610245565b61012b565b6000546001600160a01b031633146100e15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146101855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016100d8565b6001600160a01b0381166101ea5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016100d8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610256578081fd5b81356001600160a01b038116811461026c578182fd5b939250505056fea264697066735822122040f6b43c48d57dcd8b68772867d0b0c1ded0a75c206133c50cebcbbd3bb4c3b464736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x914EB66A EQ PUSH2 0x65 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x6F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x6D PUSH2 0x82 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6D PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x245 JUMP JUMPDEST PUSH2 0x12B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 DUP4 SWAP1 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x185 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1EA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND SWAP4 SWAP3 AND SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 LOG3 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x256 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x26C JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BLOCKHASH 0xF6 0xB4 EXTCODECOPY 0x48 0xD5 PUSH30 0xCD8B68772867D0B0C1DED0A75C206133C50CEBCBBD3BB4C3B464736F6C63 NUMBER STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "5421:951:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5766:77;5804:7;5830:6;5766:77;;;-1:-1:-1;;;;;5830:6:0;;;471:51:1;;5766:77:0;;;;;459:2:1;5766:77:0;;;5982:142;;;:::i;:::-;;6130:240;;;;;;:::i;:::-;;:::i;5982:142::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;1142:2:1;5887:67:0;;;1124:21:1;;;1161:18;;;1154:30;1220:34;1200:18;;;1193:62;1272:18;;5887:67:0;;;;;;;;;6085:1:::1;6069:6:::0;;6048:40:::1;::::0;-1:-1:-1;;;;;6069:6:0;;::::1;::::0;6048:40:::1;::::0;6085:1;;6048:40:::1;6115:1;6098:19:::0;;-1:-1:-1;;;;;;6098:19:0::1;::::0;;5982:142::o;6130:240::-;5895:6;;-1:-1:-1;;;;;5895:6:0;340:10;5895:22;5887:67;;;;-1:-1:-1;;;5887:67:0;;1142:2:1;5887:67:0;;;1124:21:1;;;1161:18;;;1154:30;1220:34;1200:18;;;1193:62;1272:18;;5887:67:0;1114:182:1;5887:67:0;-1:-1:-1;;;;;6218:22:0;::::1;6210:73;;;::::0;-1:-1:-1;;;6210:73:0;;735:2:1;6210:73:0::1;::::0;::::1;717:21:1::0;774:2;754:18;;;747:30;813:34;793:18;;;786:62;-1:-1:-1;;;864:18:1;;;857:36;910:19;;6210:73:0::1;707:228:1::0;6210:73:0::1;6319:6;::::0;;6298:38:::1;::::0;-1:-1:-1;;;;;6298:38:0;;::::1;::::0;6319:6;::::1;::::0;6298:38:::1;::::0;::::1;6346:6;:17:::0;;-1:-1:-1;;;;;;6346:17:0::1;-1:-1:-1::0;;;;;6346:17:0;;;::::1;::::0;;;::::1;::::0;;6130:240::o;14:306:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:1;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:1:o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "136200",
"executionCost": "22556",
"totalCost": "158756"
},
"external": {
"owner()": "970",
"transferOwnership(address)": "24387",
"waiveOwnership()": "24165"
}
},
"methodIdentifiers": {
"owner()": "8da5cb5b",
"transferOwnership(address)": "f2fde38b",
"waiveOwnership()": "914eb66a"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "waiveOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "waiveOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "Ownable"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e74bc653cb0b823ed321348df3622592d22f473865d9f1cdf9f58beae8d11064736f6c63430008040033",
"opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x4B 0xC6 MSTORE8 0xCB SIGNEXTEND DUP3 RETURNDATACOPY 0xD3 0x21 CALLVALUE DUP14 RETURN PUSH3 0x2592D2 0x2F SELFBALANCE CODESIZE PUSH6 0xD9F1CDF9F58B 0xEA 0xE8 0xD1 LT PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "1265:1499:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1265:1499:0;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e74bc653cb0b823ed321348df3622592d22f473865d9f1cdf9f58beae8d11064736f6c63430008040033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x4B 0xC6 MSTORE8 0xCB SIGNEXTEND DUP3 RETURNDATACOPY 0xD3 0x21 CALLVALUE DUP14 RETURN PUSH3 0x2592D2 0x2F SELFBALANCE CODESIZE PUSH6 0xD9F1CDF9F58B 0xEA 0xE8 0xD1 LT PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "1265:1499:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "103",
"totalCost": "17303"
},
"internal": {
"add(uint256,uint256)": "infinite",
"div(uint256,uint256)": "infinite",
"div(uint256,uint256,string memory)": "infinite",
"mod(uint256,uint256)": "infinite",
"mod(uint256,uint256,string memory)": "infinite",
"mul(uint256,uint256)": "infinite",
"sub(uint256,uint256)": "infinite",
"sub(uint256,uint256,string memory)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"MetaverseDoge.sol": "SafeMath"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"MetaverseDoge.sol": {
"keccak256": "0x660d58aa98fcb43968b9d41ec5da66c9db38dbd000d4d9bafe517d9732d6b180",
"license": "Unlicensed",
"urls": [
"bzz-raw://ac7023cc0e153b596232725ffc276112c4e8062e233e99712eedda47a90adbf5",
"dweb:/ipfs/QmXkiT2qPHfWF7hnHcnrHPje8Mqrs9x2xxAkNUkCyJu1PT"
]
}
},
"version": 1
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Owner
* @dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
// If the first argument of 'require' evaluates to 'false', execution terminates and all
// changes to the state and to Ether balances are reverted.
// This used to consume all gas in old EVM versions, but not anymore.
// It is often a good idea to use 'require' to check if functions are called correctly.
// As a second argument, you can also provide an explanation about what went wrong.
require(msg.sender == owner, "Caller is not owner");
_;
}
/**
* @dev Set contract deployer as owner
*/
constructor() {
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/**
* @dev Change owner
* @param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/**
* @dev Return owner address
* @return address of owner
*/
function getOwner() external view returns (address) {
return owner;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Ballot
* @dev Implements voting process along with vote delegation
*/
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
struct Proposal {
// If you can limit the length to a certain number of bytes,
// always use one of bytes1 to bytes32 because they are much cheaper
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
mapping(address => Voter) public voters;
Proposal[] public proposals;
/**
* @dev Create a new ballot to choose one of 'proposalNames'.
* @param proposalNames names of proposals
*/
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
for (uint i = 0; i < proposalNames.length; i++) {
// 'Proposal({...})' creates a temporary
// Proposal object and 'proposals.push(...)'
// appends it to the end of 'proposals'.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
/**
* @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.
* @param voter address of voter
*/
function giveRightToVote(address voter) public {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
/**
* @dev Delegate your vote to the voter 'to'.
* @param to address to which vote is delegated
*/
function delegate(address to) public {
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
sender.voted = true;
sender.delegate = to;
Voter storage delegate_ = voters[to];
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
/**
* @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.
* @param proposal index of proposal in the proposals array
*/
function vote(uint proposal) public {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If 'proposal' is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
/**
* @dev Computes the winning proposal taking all previous votes into account.
* @return winningProposal_ index of winning proposal in the proposals array
*/
function winningProposal() public view
returns (uint winningProposal_)
{
uint winningVoteCount = 0;
for (uint p = 0; p < proposals.length; p++) {
if (proposals[p].voteCount > winningVoteCount) {
winningVoteCount = proposals[p].voteCount;
winningProposal_ = p;
}
}
}
/**
* @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then
* @return winnerName_ the name of the winner
*/
function winnerName() public view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
}
//TG: https://t.me/MetaVerseDogeBSC
//Twitter: https://twitter.com/MetaverseDoge_
//Website: https://metaversedoge.io/
//Taxes : Buy 6% Sell 11%
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.4;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly { codehash := extcodehash(account) }
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
contract Ownable is Context {
address private _owner;
address private _previousOwner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function waiveOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
uint amountOut,
uint amountInMax,
address[] calldata path,
address to,
uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
external
returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
external
payable
returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}
contract MetaverseDoge is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
string private _name = "Metaverse Doge";
string private _symbol = "$MVDOGE";
uint8 private _decimals = 9;
address payable public marketingWalletAddress = payable(0x7D0A462F1cD4d4fbB49e919310b920FCB6132898); // Marketing Address
address payable public BuyBackWalletAddress = payable(0x58ef8b6f341506118eD3019C84AB2aD0F08B5875); // BuyBack Address
address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
mapping (address => uint256) _balances;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public isExcludedFromFee;
mapping (address => bool) public isWalletLimitExempt;
mapping (address => bool) public isTxLimitExempt;
mapping (address => bool) public isMarketPair;
uint256 public _buyLiquidityFee = 2;
uint256 public _buyMarketingFee = 3;
uint256 public _buyBuyBackFee = 1;
uint256 public _sellLiquidityFee = 2;
uint256 public _sellMarketingFee = 5;
uint256 public _sellBuyBackFee = 4;
uint256 public _liquidityShare = 2;
uint256 public _marketingShare = 8;
uint256 public _BuyBackShare = 5;
uint256 public _totalTaxIfBuying = 0;
uint256 public _totalTaxIfSelling = 0;
uint256 public _totalDistributionShares = 0;
uint256 private _totalSupply = 1000 * 10**6 * 10**9;
uint256 public _maxTxAmount = 0; //5 * 10**6 * 10**9;
uint256 public _walletMax = 20 * 10**6 * 10**9;
uint256 private minimumTokensBeforeSwap = 25000 * 10**9;
IUniswapV2Router02 public uniswapV2Router;
address public uniswapPair;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
bool public checkWalletLimit = true;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
event SwapETHForTokens(
uint256 amountIn,
address[] path
);
event SwapTokensForETH(
uint256 amountIn,
address[] path
);
modifier lockTheSwap {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor () {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
uniswapV2Router = _uniswapV2Router;
_allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
isExcludedFromFee[owner()] = true;
isExcludedFromFee[address(this)] = true;
_totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyBuyBackFee);
_totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBuyBackFee);
_totalDistributionShares = _liquidityShare.add(_marketingShare).add(_BuyBackShare);
isWalletLimitExempt[owner()] = true;
isWalletLimitExempt[address(uniswapPair)] = true;
isWalletLimitExempt[address(this)] = true;
isTxLimitExempt[owner()] = true;
isTxLimitExempt[address(this)] = true;
isMarketPair[address(uniswapPair)] = true;
_balances[_msgSender()] = _totalSupply;
emit Transfer(address(0), _msgSender(), _totalSupply);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function addMarketPair(address account) public onlyOwner {
isMarketPair[account] = true;
}
function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
isTxLimitExempt[holder] = exempt;
}
function setIsExcludedFromFee(address account, bool newValue) public onlyOwner {
isExcludedFromFee[account] = newValue;
}
function setBuyTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newBuyBackTax) external onlyOwner() {
_buyLiquidityFee = newLiquidityTax;
_buyMarketingFee = newMarketingTax;
_buyBuyBackFee = newBuyBackTax;
_totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyBuyBackFee);
}
function setSellTaxes(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newBuyBackTax) external onlyOwner() {
_sellLiquidityFee = newLiquidityTax;
_sellMarketingFee = newMarketingTax;
_sellBuyBackFee = newBuyBackTax;
_totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBuyBackFee);
}
function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newBuyBackShare) external onlyOwner() {
_liquidityShare = newLiquidityShare;
_marketingShare = newMarketingShare;
_BuyBackShare = newBuyBackShare;
_totalDistributionShares = _liquidityShare.add(_marketingShare).add(_BuyBackShare);
}
function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() {
require(maxTxAmount <= (40 * 10**6 * 10**9), "Max wallet should be less or euqal to 4% totalSupply");
_maxTxAmount = maxTxAmount;
}
function enableDisableWalletLimit(bool newValue) external onlyOwner {
checkWalletLimit = newValue;
}
function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner {
isWalletLimitExempt[holder] = exempt;
}
function setWalletLimit(uint256 newLimit) external onlyOwner {
_walletMax = newLimit;
}
function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() {
minimumTokensBeforeSwap = newLimit;
}
function setMarketingWalletAddress(address newAddress) external onlyOwner() {
marketingWalletAddress = payable(newAddress);
}
function setBuyBackWalletAddress(address newAddress) external onlyOwner() {
BuyBackWalletAddress = payable(newAddress);
}
function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
swapAndLiquifyEnabled = _enabled;
emit SwapAndLiquifyEnabledUpdated(_enabled);
}
function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner {
swapAndLiquifyByLimitOnly = newValue;
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(deadAddress));
}
function transferToAddressETH(address payable recipient, uint256 amount) private {
recipient.transfer(amount);
}
function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress);
newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH());
if(newPairAddress == address(0)) //Create If Doesnt exist
{
newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory())
.createPair(address(this), _uniswapV2Router.WETH());
}
uniswapPair = newPairAddress; //Set new pair address
uniswapV2Router = _uniswapV2Router; //Set new router address
isWalletLimitExempt[address(uniswapPair)] = true;
isMarketPair[address(uniswapPair)] = true;
}
//to recieve ETH from uniswapV2Router when swaping
receive() external payable {}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
if(inSwapAndLiquify)
{
return _basicTransfer(sender, recipient, amount);
}
else
{
if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) {
require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
}
uint256 contractTokenBalance = balanceOf(address(this));
bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled)
{
if(swapAndLiquifyByLimitOnly)
contractTokenBalance = minimumTokensBeforeSwap;
swapAndLiquify(contractTokenBalance);
}
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ?
amount : takeFee(sender, recipient, amount);
if(checkWalletLimit && !isWalletLimitExempt[recipient])
require(balanceOf(recipient).add(finalAmount) <= _walletMax);
_balances[recipient] = _balances[recipient].add(finalAmount);
emit Transfer(sender, recipient, finalAmount);
return true;
}
}
function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
emit Transfer(sender, recipient, amount);
return true;
}
function swapAndLiquify(uint256 tAmount) private lockTheSwap {
uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
uint256 tokensForSwap = tAmount.sub(tokensForLP);
swapTokensForEth(tokensForSwap);
uint256 amountReceived = address(this).balance;
uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
uint256 amountBNBBuyBack = amountReceived.mul(_BuyBackShare).div(totalBNBFee);
uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBBuyBack);
if(amountBNBMarketing > 0)
transferToAddressETH(marketingWalletAddress, amountBNBMarketing);
if(amountBNBBuyBack > 0)
transferToAddressETH(BuyBackWalletAddress, amountBNBBuyBack);
if(amountBNBLiquidity > 0 && tokensForLP > 0)
addLiquidity(tokensForLP, amountBNBLiquidity);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this), // The contract
block.timestamp
);
emit SwapTokensForETH(tokenAmount, path);
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{value: ethAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
owner(),
block.timestamp
);
}
function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
uint256 feeAmount = 0;
if(isMarketPair[sender]) {
feeAmount = amount.mul(_totalTaxIfBuying).div(100);
}
else if(isMarketPair[recipient]) {
feeAmount = amount.mul(_totalTaxIfSelling).div(100);
}
if(feeAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(feeAmount);
}
}
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithEthers script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
// 'web3Provider' is a remix global variable object
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer);
let contract = await factory.deploy(...constructorArgs);
console.log('Contract Address: ', contract.address);
// The contract is NOT deployed yet; we must wait until it is mined
await contract.deployed()
console.log('Deployment successful.')
} catch (e) {
console.log(e.message)
}
})()
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithWeb3 script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
const accounts = await web3.eth.getAccounts()
let contract = new web3.eth.Contract(metadata.abi)
contract = contract.deploy({
data: metadata.data.bytecode.object,
arguments: constructorArgs
})
const newContractInstance = await contract.send({
from: accounts[0],
gas: 1500000,
gasPrice: '30000000000'
})
console.log('Contract deployed at address: ', newContractInstance.options.address)
} catch (e) {
console.log(e.message)
}
})()
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "remix_tests.sol"; // this import is automatically injected by Remix.
import "../contracts/3_Ballot.sol";
contract BallotTest {
bytes32[] proposalNames;
Ballot ballotToTest;
function beforeAll () public {
proposalNames.push(bytes32("candidate1"));
ballotToTest = new Ballot(proposalNames);
}
function checkWinningProposal () public {
ballotToTest.vote(0);
Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal");
Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name");
}
function checkWinninProposalWithReturnValue () public view returns (bool) {
return ballotToTest.winningProposal() == 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment