@venusprotocol/oracle 2.5.0-dev.8 → 2.5.0-dev.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"id":"dce9607a9d6967895de61210a25d3a01","_format":"hh-sol-build-info-1","solcVersion":"zkVM-0.5.16-1.0.1","solcLongVersion":"zkVM-0.5.16-1.0.1","input":{"language":"Solidity","sources":{"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n\n// You should have received a copy of the GNU General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\npragma solidity ^0.5.16;\n\ncontract LibNote {\n event LogNote(\n bytes4 indexed sig,\n address indexed usr,\n bytes32 indexed arg1,\n bytes32 indexed arg2,\n bytes data\n ) anonymous;\n\n modifier note() {\n _;\n assembly {\n // log an 'anonymous' event with a constant 6 words of calldata\n // and four indexed topics: selector, caller, arg1 and arg2\n let mark := msize() // end of memory ensures zero\n mstore(0x40, add(mark, 288)) // update free memory pointer\n mstore(mark, 0x20) // bytes type data offset\n mstore(add(mark, 0x20), 224) // bytes size (padded)\n calldatacopy(add(mark, 0x40), 0, 224) // bytes payload\n log4(\n mark,\n 288, // calldata\n shl(224, shr(224, calldataload(0))), // msg.sig\n caller(), // msg.sender\n calldataload(4), // arg1\n calldataload(36) // arg2\n )\n }\n }\n}\n"},"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0-or-later\n\n// Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico\n\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <https://www.gnu.org/licenses/>.\n\npragma solidity ^0.5.16;\n\nimport \"./lib.sol\";\n\ncontract VAI is LibNote {\n // --- Auth ---\n mapping(address => uint256) public wards;\n\n function rely(address guy) external note auth {\n wards[guy] = 1;\n }\n\n function deny(address guy) external note auth {\n wards[guy] = 0;\n }\n\n modifier auth() {\n require(wards[msg.sender] == 1, \"VAI/not-authorized\");\n _;\n }\n\n // --- BEP20 Data ---\n string public constant name = \"VAI Stablecoin\";\n string public constant symbol = \"VAI\";\n string public constant version = \"1\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed src, address indexed guy, uint256 wad);\n event Transfer(address indexed src, address indexed dst, uint256 wad);\n\n // --- Math ---\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"VAI math error\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"VAI math error\");\n }\n\n // --- EIP712 niceties ---\n bytes32 public DOMAIN_SEPARATOR;\n // bytes32 public constant PERMIT_TYPEHASH = keccak256(\"Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)\");\n bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb;\n\n constructor(uint256 chainId_) public {\n wards[msg.sender] = 1;\n DOMAIN_SEPARATOR = keccak256(\n abi.encode(\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"),\n keccak256(bytes(name)),\n keccak256(bytes(version)),\n chainId_,\n address(this)\n )\n );\n }\n\n // --- Token ---\n function transfer(address dst, uint256 wad) external returns (bool) {\n return transferFrom(msg.sender, dst, wad);\n }\n\n function transferFrom(address src, address dst, uint256 wad) public returns (bool) {\n require(balanceOf[src] >= wad, \"VAI/insufficient-balance\");\n if (src != msg.sender && allowance[src][msg.sender] != uint256(-1)) {\n require(allowance[src][msg.sender] >= wad, \"VAI/insufficient-allowance\");\n allowance[src][msg.sender] = sub(allowance[src][msg.sender], wad);\n }\n balanceOf[src] = sub(balanceOf[src], wad);\n balanceOf[dst] = add(balanceOf[dst], wad);\n emit Transfer(src, dst, wad);\n return true;\n }\n\n function mint(address usr, uint256 wad) external auth {\n balanceOf[usr] = add(balanceOf[usr], wad);\n totalSupply = add(totalSupply, wad);\n emit Transfer(address(0), usr, wad);\n }\n\n function burn(address usr, uint256 wad) external {\n require(balanceOf[usr] >= wad, \"VAI/insufficient-balance\");\n if (usr != msg.sender && allowance[usr][msg.sender] != uint256(-1)) {\n require(allowance[usr][msg.sender] >= wad, \"VAI/insufficient-allowance\");\n allowance[usr][msg.sender] = sub(allowance[usr][msg.sender], wad);\n }\n balanceOf[usr] = sub(balanceOf[usr], wad);\n totalSupply = sub(totalSupply, wad);\n emit Transfer(usr, address(0), wad);\n }\n\n function approve(address usr, uint256 wad) external returns (bool) {\n allowance[msg.sender][usr] = wad;\n emit Approval(msg.sender, usr, wad);\n return true;\n }\n\n // --- Alias ---\n function push(address usr, uint256 wad) external {\n transferFrom(msg.sender, usr, wad);\n }\n\n function pull(address usr, uint256 wad) external {\n transferFrom(usr, msg.sender, wad);\n }\n\n function move(address src, address dst, uint256 wad) external {\n transferFrom(src, dst, wad);\n }\n\n // --- Approve by signature ---\n function permit(\n address holder,\n address spender,\n uint256 nonce,\n uint256 expiry,\n bool allowed,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(abi.encode(PERMIT_TYPEHASH, holder, spender, nonce, expiry, allowed))\n )\n );\n\n require(holder != address(0), \"VAI/invalid-address-0\");\n require(holder == ecrecover(digest, v, r, s), \"VAI/invalid-permit\");\n require(expiry == 0 || now <= expiry, \"VAI/permit-expired\");\n require(nonce == nonces[holder]++, \"VAI/invalid-nonce\");\n uint256 wad = allowed ? uint256(-1) : 0;\n allowance[holder][spender] = wad;\n emit Approval(holder, spender, wad);\n }\n}\n"},"contracts/test/VAI.sol":{"content":"// SPDX-License-Identifier: BSD-3-Clause\npragma solidity 0.5.16;\nimport \"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol\";\n\ncontract VAIScenario is VAI {\n constructor(uint256 chainId) public VAI(chainId) {}\n}\n"}},"settings":{"optimizer":{"enabled":true,"mode":"3"},"outputSelection":{"*":{"*":["storageLayout","abi","evm.methodIdentifiers","metadata","devdoc","userdoc"],"":["ast"]}},"forceEVMLA":false,"metadata":{"bytecodeHash":"none"},"detectMissingLibraries":false,"enableEraVMExtensions":false,"libraries":{}}},"output":{"version":"0.5.16","long_version":"0.5.16+commit.b9534989.Linux.clang","zk_version":"1.5.1","sources":{"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol":{"id":0,"ast":{"absolutePath":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol","exportedSymbols":{"VAI":[608]},"id":609,"nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"773:24:0"},{"absolutePath":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol","file":"./lib.sol","id":2,"nodeType":"ImportDirective","scope":609,"sourceUnit":629,"src":"799:19:0","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":3,"name":"LibNote","nodeType":"UserDefinedTypeName","referencedDeclaration":628,"src":"836:7:0","typeDescriptions":{"typeIdentifier":"t_contract$_LibNote_$628","typeString":"contract LibNote"}},"id":4,"nodeType":"InheritanceSpecifier","src":"836:7:0"}],"contractDependencies":[628],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":608,"linearizedBaseContracts":[608,628],"name":"VAI","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8,"name":"wards","nodeType":"VariableDeclaration","scope":608,"src":"870:40:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":7,"keyType":{"id":5,"name":"address","nodeType":"ElementaryTypeName","src":"878:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"870:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"889:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"body":{"id":23,"nodeType":"Block","src":"963:31:0","statements":[{"expression":{"argumentTypes":null,"id":21,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17,"name":"wards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"973:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":19,"indexExpression":{"argumentTypes":null,"id":18,"name":"guy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10,"src":"979:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"973:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"31","id":20,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"986:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"973:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22,"nodeType":"ExpressionStatement","src":"973:14:0"}]},"documentation":null,"id":24,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":13,"modifierName":{"argumentTypes":null,"id":12,"name":"note","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":627,"src":"953:4:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"953:4:0"},{"arguments":null,"id":15,"modifierName":{"argumentTypes":null,"id":14,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54,"src":"958:4:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"958:4:0"}],"name":"rely","nodeType":"FunctionDefinition","parameters":{"id":11,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10,"name":"guy","nodeType":"VariableDeclaration","scope":24,"src":"931:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"930:13:0"},"returnParameters":{"id":16,"nodeType":"ParameterList","parameters":[],"src":"963:0:0"},"scope":608,"src":"917:77:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":39,"nodeType":"Block","src":"1046:31:0","statements":[{"expression":{"argumentTypes":null,"id":37,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":33,"name":"wards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"1056:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":35,"indexExpression":{"argumentTypes":null,"id":34,"name":"guy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"1062:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1056:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1069:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1056:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38,"nodeType":"ExpressionStatement","src":"1056:14:0"}]},"documentation":null,"id":40,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":29,"modifierName":{"argumentTypes":null,"id":28,"name":"note","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":627,"src":"1036:4:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1036:4:0"},{"arguments":null,"id":31,"modifierName":{"argumentTypes":null,"id":30,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54,"src":"1041:4:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1041:4:0"}],"name":"deny","nodeType":"FunctionDefinition","parameters":{"id":27,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26,"name":"guy","nodeType":"VariableDeclaration","scope":40,"src":"1014:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25,"name":"address","nodeType":"ElementaryTypeName","src":"1014:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1013:13:0"},"returnParameters":{"id":32,"nodeType":"ParameterList","parameters":[],"src":"1046:0:0"},"scope":608,"src":"1000:77:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":53,"nodeType":"Block","src":"1099:81:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":43,"name":"wards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"1117:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":46,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":44,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"1123:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":45,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1123:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1117:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":47,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1117:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f6e6f742d617574686f72697a6564","id":49,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1141:20:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f6ce616d99c6e8b950ed8eb53a02540dcf6942bc19bd027bac3e805fb6ec95dd","typeString":"literal_string \"VAI/not-authorized\""},"value":"VAI/not-authorized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6ce616d99c6e8b950ed8eb53a02540dcf6942bc19bd027bac3e805fb6ec95dd","typeString":"literal_string \"VAI/not-authorized\""}],"id":42,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"1109:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1109:53:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51,"nodeType":"ExpressionStatement","src":"1109:53:0"},{"id":52,"nodeType":"PlaceholderStatement","src":"1172:1:0"}]},"documentation":null,"id":54,"name":"auth","nodeType":"ModifierDefinition","parameters":{"id":41,"nodeType":"ParameterList","parameters":[],"src":"1096:2:0"},"src":"1083:97:0","visibility":"internal"},{"constant":true,"id":57,"name":"name","nodeType":"VariableDeclaration","scope":608,"src":"1212:46:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string"},"typeName":{"id":55,"name":"string","nodeType":"ElementaryTypeName","src":"1212:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"56414920537461626c65636f696e","id":56,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1242:16:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_dd18a44c5a898a5e53e119eaa2f28613c9f2172cf68c0fb769cbcdd3e3296b05","typeString":"literal_string \"VAI Stablecoin\""},"value":"VAI Stablecoin"},"visibility":"public"},{"constant":true,"id":60,"name":"symbol","nodeType":"VariableDeclaration","scope":608,"src":"1264:37:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string"},"typeName":{"id":58,"name":"string","nodeType":"ElementaryTypeName","src":"1264:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"564149","id":59,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1296:5:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_adf3868d8f122e26e993422d6505d4e0e44686fe215e8775cc9318d1d388a9a0","typeString":"literal_string \"VAI\""},"value":"VAI"},"visibility":"public"},{"constant":true,"id":63,"name":"version","nodeType":"VariableDeclaration","scope":608,"src":"1307:36:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string"},"typeName":{"id":61,"name":"string","nodeType":"ElementaryTypeName","src":"1307:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"argumentTypes":null,"hexValue":"31","id":62,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1340:3:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"public"},{"constant":true,"id":66,"name":"decimals","nodeType":"VariableDeclaration","scope":608,"src":"1349:35:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":64,"name":"uint8","nodeType":"ElementaryTypeName","src":"1349:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":65,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:2:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"constant":false,"id":68,"name":"totalSupply","nodeType":"VariableDeclaration","scope":608,"src":"1390:26:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67,"name":"uint256","nodeType":"ElementaryTypeName","src":"1390:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":72,"name":"balanceOf","nodeType":"VariableDeclaration","scope":608,"src":"1423:44:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":71,"keyType":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1423:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":70,"name":"uint256","nodeType":"ElementaryTypeName","src":"1442:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":78,"name":"allowance","nodeType":"VariableDeclaration","scope":608,"src":"1473:64:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":77,"keyType":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1473:47:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":76,"keyType":{"id":74,"name":"address","nodeType":"ElementaryTypeName","src":"1500:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1492:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":75,"name":"uint256","nodeType":"ElementaryTypeName","src":"1511:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"constant":false,"id":82,"name":"nonces","nodeType":"VariableDeclaration","scope":608,"src":"1543:41:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":81,"keyType":{"id":79,"name":"address","nodeType":"ElementaryTypeName","src":"1551:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1543:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":80,"name":"uint256","nodeType":"ElementaryTypeName","src":"1562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":90,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":89,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84,"indexed":true,"name":"src","nodeType":"VariableDeclaration","scope":90,"src":"1606:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83,"name":"address","nodeType":"ElementaryTypeName","src":"1606:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":86,"indexed":true,"name":"guy","nodeType":"VariableDeclaration","scope":90,"src":"1627:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":88,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":90,"src":"1648:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":87,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1605:55:0"},"src":"1591:70:0"},{"anonymous":false,"documentation":null,"id":98,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":97,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92,"indexed":true,"name":"src","nodeType":"VariableDeclaration","scope":98,"src":"1681:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"1681:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":94,"indexed":true,"name":"dst","nodeType":"VariableDeclaration","scope":98,"src":"1702:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93,"name":"address","nodeType":"ElementaryTypeName","src":"1702:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":96,"indexed":false,"name":"wad","nodeType":"VariableDeclaration","scope":98,"src":"1723:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":95,"name":"uint256","nodeType":"ElementaryTypeName","src":"1723:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1680:55:0"},"src":"1666:70:0"},{"body":{"id":119,"nodeType":"Block","src":"1831:60:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":108,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"1850:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":109,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"1854:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":110,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102,"src":"1858:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1854:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1850:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":113,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1849:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":114,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"1864:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1849:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"564149206d617468206572726f72","id":116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1867:16:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1732a35f3ab9f74cfa0d3e4021b3e9f6caa9fbed0f2df0e4c652517c66f1dd32","typeString":"literal_string \"VAI math error\""},"value":"VAI math error"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1732a35f3ab9f74cfa0d3e4021b3e9f6caa9fbed0f2df0e4c652517c66f1dd32","typeString":"literal_string \"VAI math error\""}],"id":107,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"1841:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1841:43:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":118,"nodeType":"ExpressionStatement","src":"1841:43:0"}]},"documentation":null,"id":120,"implemented":true,"kind":"function","modifiers":[],"name":"add","nodeType":"FunctionDefinition","parameters":{"id":103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100,"name":"x","nodeType":"VariableDeclaration","scope":120,"src":"1775:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":99,"name":"uint256","nodeType":"ElementaryTypeName","src":"1775:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":102,"name":"y","nodeType":"VariableDeclaration","scope":120,"src":"1786:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1786:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1774:22:0"},"returnParameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":105,"name":"z","nodeType":"VariableDeclaration","scope":120,"src":"1820:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":104,"name":"uint256","nodeType":"ElementaryTypeName","src":"1820:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1819:11:0"},"scope":608,"src":"1762:129:0","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":141,"nodeType":"Block","src":"1966:60:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":130,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127,"src":"1985:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":131,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122,"src":"1989:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":132,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"1993:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1989:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1985:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1984:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":136,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122,"src":"1999:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1984:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"564149206d617468206572726f72","id":138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2002:16:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1732a35f3ab9f74cfa0d3e4021b3e9f6caa9fbed0f2df0e4c652517c66f1dd32","typeString":"literal_string \"VAI math error\""},"value":"VAI math error"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1732a35f3ab9f74cfa0d3e4021b3e9f6caa9fbed0f2df0e4c652517c66f1dd32","typeString":"literal_string \"VAI math error\""}],"id":129,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"1976:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1976:43:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":140,"nodeType":"ExpressionStatement","src":"1976:43:0"}]},"documentation":null,"id":142,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","parameters":{"id":125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"name":"x","nodeType":"VariableDeclaration","scope":142,"src":"1910:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121,"name":"uint256","nodeType":"ElementaryTypeName","src":"1910:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":124,"name":"y","nodeType":"VariableDeclaration","scope":142,"src":"1921:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint256","nodeType":"ElementaryTypeName","src":"1921:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1909:22:0"},"returnParameters":{"id":128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":127,"name":"z","nodeType":"VariableDeclaration","scope":142,"src":"1955:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1955:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1954:11:0"},"scope":608,"src":"1897:129:0","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"constant":false,"id":144,"name":"DOMAIN_SEPARATOR","nodeType":"VariableDeclaration","scope":608,"src":"2063:31:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2063:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"public"},{"constant":true,"id":147,"name":"PERMIT_TYPEHASH","nodeType":"VariableDeclaration","scope":608,"src":"2244:108:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2244:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"hexValue":"307865613261613061316265313161303765643836643735356339333436376634663832333632623435323337316431626139346431373135313233353131616362","id":146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2286:66:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_105916522785188513640362517802612480037966763957092682311465172263008277174987_by_1","typeString":"int_const 1059...(70 digits omitted)...4987"},"value":"0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb"},"visibility":"public"},{"body":{"id":184,"nodeType":"Block","src":"2396:377:0","statements":[{"expression":{"argumentTypes":null,"id":157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":152,"name":"wards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"2406:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":155,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":153,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"2412:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2412:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2406:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"31","id":156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2426:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2406:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":158,"nodeType":"ExpressionStatement","src":"2406:21:0"},{"expression":{"argumentTypes":null,"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":159,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"2437:16:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2517:84:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":163,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":652,"src":"2507:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:95:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":168,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57,"src":"2636:4:0","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"}],"id":167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2630:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2630:11:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":166,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":652,"src":"2620:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2620:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":173,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"2676:7:0","typeDescriptions":{"typeIdentifier":"t_string_memory","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory","typeString":"string memory"}],"id":172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2670:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2670:14:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":171,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":652,"src":"2660:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2660:25:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":176,"name":"chainId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":149,"src":"2703:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":178,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":674,"src":"2737:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_VAI_$608","typeString":"contract VAI"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VAI_$608","typeString":"contract VAI"}],"id":177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2729:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2729:13:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":645,"src":"2479:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2479:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2479:277:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":160,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":652,"src":"2456:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2456:310:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2437:329:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":183,"nodeType":"ExpressionStatement","src":"2437:329:0"}]},"documentation":null,"id":185,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":149,"name":"chainId_","nodeType":"VariableDeclaration","scope":185,"src":"2371:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":148,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2370:18:0"},"returnParameters":{"id":151,"nodeType":"ParameterList","parameters":[],"src":"2396:0:0"},"scope":608,"src":"2359:414:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":201,"nodeType":"Block","src":"2868:58:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":195,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"2898:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2898:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":197,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"2910:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":198,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"2915:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":194,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"2885:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2885:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":193,"id":200,"nodeType":"Return","src":"2878:41:0"}]},"documentation":null,"id":202,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":187,"name":"dst","nodeType":"VariableDeclaration","scope":202,"src":"2818:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":186,"name":"address","nodeType":"ElementaryTypeName","src":"2818:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":189,"name":"wad","nodeType":"VariableDeclaration","scope":202,"src":"2831:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"2831:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2817:26:0"},"returnParameters":{"id":193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":192,"name":"","nodeType":"VariableDeclaration","scope":202,"src":"2862:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":191,"name":"bool","nodeType":"ElementaryTypeName","src":"2862:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2861:6:0"},"scope":608,"src":"2800:126:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":299,"nodeType":"Block","src":"3015:489:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":214,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3033:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":216,"indexExpression":{"argumentTypes":null,"id":215,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3043:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3033:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":217,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3051:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3033:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f696e73756666696369656e742d62616c616e6365","id":219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3056:26:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_37643c280d364132e62734397966740ff1cd14eda9279e254f683a487ce5175b","typeString":"literal_string \"VAI/insufficient-balance\""},"value":"VAI/insufficient-balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_37643c280d364132e62734397966740ff1cd14eda9279e254f683a487ce5175b","typeString":"literal_string \"VAI/insufficient-balance\""}],"id":213,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"3025:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3025:58:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":221,"nodeType":"ExpressionStatement","src":"3025:58:0"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":222,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3097:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":223,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"3104:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3104:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3097:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":226,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"3118:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":228,"indexExpression":{"argumentTypes":null,"id":227,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3128:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3118:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":231,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":229,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"3133:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3133:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3118:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3156:2:0","subExpression":{"argumentTypes":null,"hexValue":"31","id":233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3157:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3148:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3148:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3118:41:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3097:62:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":268,"nodeType":"IfStatement","src":"3093:244:0","trueBody":{"id":267,"nodeType":"Block","src":"3161:176:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":239,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"3183:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":241,"indexExpression":{"argumentTypes":null,"id":240,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3193:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3183:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":244,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":242,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"3198:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3198:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3183:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":245,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3213:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3183:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f696e73756666696369656e742d616c6c6f77616e6365","id":247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3218:28:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b27daaa94c7208f73d9f455dd498c8d39e60862a8fb30014c2b2cf3fa40a35c2","typeString":"literal_string \"VAI/insufficient-allowance\""},"value":"VAI/insufficient-allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b27daaa94c7208f73d9f455dd498c8d39e60862a8fb30014c2b2cf3fa40a35c2","typeString":"literal_string \"VAI/insufficient-allowance\""}],"id":238,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"3175:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3175:72:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":249,"nodeType":"ExpressionStatement","src":"3175:72:0"},{"expression":{"argumentTypes":null,"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":250,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"3261:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":254,"indexExpression":{"argumentTypes":null,"id":251,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3271:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3261:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":255,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":252,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"3276:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3276:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3261:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":257,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"3294:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":259,"indexExpression":{"argumentTypes":null,"id":258,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3304:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3294:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":262,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":260,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"3309:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3309:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3294:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":263,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3322:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":256,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":142,"src":"3290:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3290:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3261:65:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":266,"nodeType":"ExpressionStatement","src":"3261:65:0"}]}},{"expression":{"argumentTypes":null,"id":278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":269,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3346:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":271,"indexExpression":{"argumentTypes":null,"id":270,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3356:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3346:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":273,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3367:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":275,"indexExpression":{"argumentTypes":null,"id":274,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3377:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3367:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":276,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3383:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":272,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":142,"src":"3363:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3363:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3346:41:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":279,"nodeType":"ExpressionStatement","src":"3346:41:0"},{"expression":{"argumentTypes":null,"id":289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":280,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3397:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":282,"indexExpression":{"argumentTypes":null,"id":281,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":206,"src":"3407:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3397:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":284,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3418:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":286,"indexExpression":{"argumentTypes":null,"id":285,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":206,"src":"3428:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3418:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":287,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3434:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":283,"name":"add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"3414:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3414:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3397:41:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":290,"nodeType":"ExpressionStatement","src":"3397:41:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":292,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":204,"src":"3462:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":293,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":206,"src":"3467:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":294,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":208,"src":"3472:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":291,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98,"src":"3453:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3453:23:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":296,"nodeType":"EmitStatement","src":"3448:28:0"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3493:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":212,"id":298,"nodeType":"Return","src":"3486:11:0"}]},"documentation":null,"id":300,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":204,"name":"src","nodeType":"VariableDeclaration","scope":300,"src":"2954:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":203,"name":"address","nodeType":"ElementaryTypeName","src":"2954:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":206,"name":"dst","nodeType":"VariableDeclaration","scope":300,"src":"2967:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":205,"name":"address","nodeType":"ElementaryTypeName","src":"2967:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":208,"name":"wad","nodeType":"VariableDeclaration","scope":300,"src":"2980:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":207,"name":"uint256","nodeType":"ElementaryTypeName","src":"2980:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2953:39:0"},"returnParameters":{"id":212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":211,"name":"","nodeType":"VariableDeclaration","scope":300,"src":"3009:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":210,"name":"bool","nodeType":"ElementaryTypeName","src":"3009:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3008:6:0"},"scope":608,"src":"2932:572:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":335,"nodeType":"Block","src":"3564:148:0","statements":[{"expression":{"argumentTypes":null,"id":318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":309,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3574:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":311,"indexExpression":{"argumentTypes":null,"id":310,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"3584:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3574:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":313,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3595:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":315,"indexExpression":{"argumentTypes":null,"id":314,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"3605:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3595:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":316,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"3611:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":312,"name":"add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"3591:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3591:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3574:41:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":319,"nodeType":"ExpressionStatement","src":"3574:41:0"},{"expression":{"argumentTypes":null,"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":320,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"3625:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":322,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"3643:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":323,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"3656:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":321,"name":"add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"3639:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3639:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3625:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":326,"nodeType":"ExpressionStatement","src":"3625:35:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3692:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3684:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3684:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":331,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"3696:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":332,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"3701:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":327,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98,"src":"3675:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3675:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":334,"nodeType":"EmitStatement","src":"3670:35:0"}]},"documentation":null,"id":336,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":307,"modifierName":{"argumentTypes":null,"id":306,"name":"auth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54,"src":"3559:4:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3559:4:0"}],"name":"mint","nodeType":"FunctionDefinition","parameters":{"id":305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":302,"name":"usr","nodeType":"VariableDeclaration","scope":336,"src":"3524:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":301,"name":"address","nodeType":"ElementaryTypeName","src":"3524:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":304,"name":"wad","nodeType":"VariableDeclaration","scope":336,"src":"3537:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":303,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3523:26:0"},"returnParameters":{"id":308,"nodeType":"ParameterList","parameters":[],"src":"3564:0:0"},"scope":608,"src":"3510:202:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":425,"nodeType":"Block","src":"3767:469:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":344,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"3785:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":346,"indexExpression":{"argumentTypes":null,"id":345,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"3795:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3785:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":347,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"3803:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3785:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f696e73756666696369656e742d62616c616e6365","id":349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3808:26:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_37643c280d364132e62734397966740ff1cd14eda9279e254f683a487ce5175b","typeString":"literal_string \"VAI/insufficient-balance\""},"value":"VAI/insufficient-balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_37643c280d364132e62734397966740ff1cd14eda9279e254f683a487ce5175b","typeString":"literal_string \"VAI/insufficient-balance\""}],"id":343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"3777:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3777:58:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":351,"nodeType":"ExpressionStatement","src":"3777:58:0"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":352,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"3849:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":353,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"3856:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3856:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3849:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":356,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"3870:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":358,"indexExpression":{"argumentTypes":null,"id":357,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"3880:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3870:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":361,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":359,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"3885:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3885:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3870:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"3908:2:0","subExpression":{"argumentTypes":null,"hexValue":"31","id":363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3900:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3900:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3870:41:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3849:62:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":398,"nodeType":"IfStatement","src":"3845:244:0","trueBody":{"id":397,"nodeType":"Block","src":"3913:176:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":369,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"3935:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":371,"indexExpression":{"argumentTypes":null,"id":370,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"3945:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3935:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":374,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":372,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"3950:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3950:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3935:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":375,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"3965:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3935:33:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f696e73756666696369656e742d616c6c6f77616e6365","id":377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3970:28:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b27daaa94c7208f73d9f455dd498c8d39e60862a8fb30014c2b2cf3fa40a35c2","typeString":"literal_string \"VAI/insufficient-allowance\""},"value":"VAI/insufficient-allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b27daaa94c7208f73d9f455dd498c8d39e60862a8fb30014c2b2cf3fa40a35c2","typeString":"literal_string \"VAI/insufficient-allowance\""}],"id":368,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"3927:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3927:72:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":379,"nodeType":"ExpressionStatement","src":"3927:72:0"},{"expression":{"argumentTypes":null,"id":395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":380,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"4013:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":384,"indexExpression":{"argumentTypes":null,"id":381,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"4023:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4013:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":385,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":382,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"4028:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4028:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4013:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":387,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"4046:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":389,"indexExpression":{"argumentTypes":null,"id":388,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"4056:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4046:14:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":392,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":390,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"4061:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4061:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4046:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":393,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"4074:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":386,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":142,"src":"4042:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4042:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4013:65:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":396,"nodeType":"ExpressionStatement","src":"4013:65:0"}]}},{"expression":{"argumentTypes":null,"id":408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":399,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"4098:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":401,"indexExpression":{"argumentTypes":null,"id":400,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"4108:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4098:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":403,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"4119:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":405,"indexExpression":{"argumentTypes":null,"id":404,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"4129:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4119:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":406,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"4135:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":402,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":142,"src":"4115:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4115:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4098:41:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":409,"nodeType":"ExpressionStatement","src":"4098:41:0"},{"expression":{"argumentTypes":null,"id":415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":410,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"4149:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":412,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"4167:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":413,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"4180:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":411,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":142,"src":"4163:3:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4163:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4149:35:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":416,"nodeType":"ExpressionStatement","src":"4149:35:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":418,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"4208:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4221:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4213:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4213:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":422,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":340,"src":"4225:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":417,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98,"src":"4199:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4199:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":424,"nodeType":"EmitStatement","src":"4194:35:0"}]},"documentation":null,"id":426,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nodeType":"FunctionDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":338,"name":"usr","nodeType":"VariableDeclaration","scope":426,"src":"3732:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":337,"name":"address","nodeType":"ElementaryTypeName","src":"3732:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":340,"name":"wad","nodeType":"VariableDeclaration","scope":426,"src":"3745:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":339,"name":"uint256","nodeType":"ElementaryTypeName","src":"3745:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3731:26:0"},"returnParameters":{"id":342,"nodeType":"ParameterList","parameters":[],"src":"3767:0:0"},"scope":608,"src":"3718:518:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":453,"nodeType":"Block","src":"4309:115:0","statements":[{"expression":{"argumentTypes":null,"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":435,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"4319:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":439,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":436,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"4329:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4329:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4319:21:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":440,"indexExpression":{"argumentTypes":null,"id":438,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4341:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4319:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":441,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4348:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4319:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":443,"nodeType":"ExpressionStatement","src":"4319:32:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":445,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"4375:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4375:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":447,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4387:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":448,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4392:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":444,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90,"src":"4366:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4366:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":450,"nodeType":"EmitStatement","src":"4361:35:0"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4413:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":434,"id":452,"nodeType":"Return","src":"4406:11:0"}]},"documentation":null,"id":454,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":428,"name":"usr","nodeType":"VariableDeclaration","scope":454,"src":"4259:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":427,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":430,"name":"wad","nodeType":"VariableDeclaration","scope":454,"src":"4272:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":429,"name":"uint256","nodeType":"ElementaryTypeName","src":"4272:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4258:26:0"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"name":"","nodeType":"VariableDeclaration","scope":454,"src":"4303:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":432,"name":"bool","nodeType":"ElementaryTypeName","src":"4303:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4302:6:0"},"scope":608,"src":"4242:182:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":468,"nodeType":"Block","src":"4500:51:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":462,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"4523:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4523:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":464,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"4535:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":465,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":458,"src":"4540:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":461,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4510:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4510:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":467,"nodeType":"ExpressionStatement","src":"4510:34:0"}]},"documentation":null,"id":469,"implemented":true,"kind":"function","modifiers":[],"name":"push","nodeType":"FunctionDefinition","parameters":{"id":459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":456,"name":"usr","nodeType":"VariableDeclaration","scope":469,"src":"4465:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":455,"name":"address","nodeType":"ElementaryTypeName","src":"4465:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":458,"name":"wad","nodeType":"VariableDeclaration","scope":469,"src":"4478:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":457,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4464:26:0"},"returnParameters":{"id":460,"nodeType":"ParameterList","parameters":[],"src":"4500:0:0"},"scope":608,"src":"4451:100:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":483,"nodeType":"Block","src":"4606:51:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":477,"name":"usr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"4629:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":478,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":658,"src":"4634:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4634:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":480,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":473,"src":"4646:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":476,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4616:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4616:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":482,"nodeType":"ExpressionStatement","src":"4616:34:0"}]},"documentation":null,"id":484,"implemented":true,"kind":"function","modifiers":[],"name":"pull","nodeType":"FunctionDefinition","parameters":{"id":474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":471,"name":"usr","nodeType":"VariableDeclaration","scope":484,"src":"4571:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":470,"name":"address","nodeType":"ElementaryTypeName","src":"4571:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":473,"name":"wad","nodeType":"VariableDeclaration","scope":484,"src":"4584:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":472,"name":"uint256","nodeType":"ElementaryTypeName","src":"4584:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4570:26:0"},"returnParameters":{"id":475,"nodeType":"ParameterList","parameters":[],"src":"4606:0:0"},"scope":608,"src":"4557:100:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":499,"nodeType":"Block","src":"4725:44:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":494,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":486,"src":"4748:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":495,"name":"dst","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":488,"src":"4753:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":496,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"4758:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":493,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4735:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4735:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":498,"nodeType":"ExpressionStatement","src":"4735:27:0"}]},"documentation":null,"id":500,"implemented":true,"kind":"function","modifiers":[],"name":"move","nodeType":"FunctionDefinition","parameters":{"id":491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"name":"src","nodeType":"VariableDeclaration","scope":500,"src":"4677:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":485,"name":"address","nodeType":"ElementaryTypeName","src":"4677:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":488,"name":"dst","nodeType":"VariableDeclaration","scope":500,"src":"4690:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":487,"name":"address","nodeType":"ElementaryTypeName","src":"4690:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":490,"name":"wad","nodeType":"VariableDeclaration","scope":500,"src":"4703:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":489,"name":"uint256","nodeType":"ElementaryTypeName","src":"4703:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4676:39:0"},"returnParameters":{"id":492,"nodeType":"ParameterList","parameters":[],"src":"4725:0:0"},"scope":608,"src":"4663:106:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":606,"nodeType":"Block","src":"5015:668:0","statements":[{"assignments":[520],"declarations":[{"constant":false,"id":520,"name":"digest","nodeType":"VariableDeclaration","scope":606,"src":"5025:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5025:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":539,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"1901","id":524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5099:10:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},"value":"\u0019\u0001"},{"argumentTypes":null,"id":525,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"5127:16:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":529,"name":"PERMIT_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"5182:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":530,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"5199:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":531,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"5207:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":532,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"5216:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":533,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5223:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":534,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"5231:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":null,"id":527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":645,"src":"5171:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5171:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5171:68:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":526,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":652,"src":"5161:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5161:79:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string \"\u0019\u0001\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":522,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":645,"src":"5065:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5065:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5065:189:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":521,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":652,"src":"5042:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5042:222:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5025:239:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":541,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"5283:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5301:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5293:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5283:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f696e76616c69642d616464726573732d30","id":546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5305:23:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_41b798d1ea1cf6acf29dc3262f3b36b326604b12b9dd7f7066bc961f3a00b644","typeString":"literal_string \"VAI/invalid-address-0\""},"value":"VAI/invalid-address-0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_41b798d1ea1cf6acf29dc3262f3b36b326604b12b9dd7f7066bc961f3a00b644","typeString":"literal_string \"VAI/invalid-address-0\""}],"id":540,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"5275:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5275:54:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":548,"nodeType":"ExpressionStatement","src":"5275:54:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":550,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"5347:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":552,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"5367:6:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":553,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"5375:1:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":554,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":514,"src":"5378:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":555,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":516,"src":"5381:1:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":551,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"5357:9:0","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5357:26:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5347:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f696e76616c69642d7065726d6974","id":558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5385:20:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ee7bb1fc4d3284c52dab0a4904e031198d76301a03d9f4da729f215a75d1b3e6","typeString":"literal_string \"VAI/invalid-permit\""},"value":"VAI/invalid-permit"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee7bb1fc4d3284c52dab0a4904e031198d76301a03d9f4da729f215a75d1b3e6","typeString":"literal_string \"VAI/invalid-permit\""}],"id":549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"5339:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5339:67:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":560,"nodeType":"ExpressionStatement","src":"5339:67:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":562,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5424:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5434:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5424:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":565,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":660,"src":"5439:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":566,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"5446:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5439:13:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5424:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f7065726d69742d65787069726564","id":569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5454:20:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e1843929e249c0c186641ae998ab516cc7f91a2c230d102262a8d9761ed07a32","typeString":"literal_string \"VAI/permit-expired\""},"value":"VAI/permit-expired"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1843929e249c0c186641ae998ab516cc7f91a2c230d102262a8d9761ed07a32","typeString":"literal_string \"VAI/permit-expired\""}],"id":561,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"5416:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5416:59:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":571,"nodeType":"ExpressionStatement","src":"5416:59:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":573,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"5493:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5502:16:0","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":574,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82,"src":"5502:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":576,"indexExpression":{"argumentTypes":null,"id":575,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"5509:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5502:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5493:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5641492f696e76616c69642d6e6f6e6365","id":579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5520:19:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5d625041aca7f6c7f6918dd0f5a7da5eb321afbff323dc5fea673b824a643ed2","typeString":"literal_string \"VAI/invalid-nonce\""},"value":"VAI/invalid-nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d625041aca7f6c7f6918dd0f5a7da5eb321afbff323dc5fea673b824a643ed2","typeString":"literal_string \"VAI/invalid-nonce\""}],"id":572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[661,662],"referencedDeclaration":662,"src":"5485:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5485:55:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":581,"nodeType":"ExpressionStatement","src":"5485:55:0"},{"assignments":[583],"declarations":[{"constant":false,"id":583,"name":"wad","nodeType":"VariableDeclaration","scope":606,"src":"5550:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":582,"name":"uint256","nodeType":"ElementaryTypeName","src":"5550:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":591,"initialValue":{"argumentTypes":null,"condition":{"argumentTypes":null,"id":584,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"5564:7:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"hexValue":"30","id":589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5588:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5564:25:0","trueExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"5582:2:0","subExpression":{"argumentTypes":null,"hexValue":"31","id":586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5583:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5574:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5574:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5550:39:0"},{"expression":{"argumentTypes":null,"id":598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":592,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"5599:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":595,"indexExpression":{"argumentTypes":null,"id":593,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"5609:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5599:17:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":596,"indexExpression":{"argumentTypes":null,"id":594,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"5617:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5599:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":597,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"5628:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5599:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":599,"nodeType":"ExpressionStatement","src":"5599:32:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":601,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"5655:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":602,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"5663:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":603,"name":"wad","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":583,"src":"5672:3:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":600,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":90,"src":"5646:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5646:30:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":605,"nodeType":"EmitStatement","src":"5641:35:0"}]},"documentation":null,"id":607,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nodeType":"FunctionDefinition","parameters":{"id":517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":502,"name":"holder","nodeType":"VariableDeclaration","scope":607,"src":"4836:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":501,"name":"address","nodeType":"ElementaryTypeName","src":"4836:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":504,"name":"spender","nodeType":"VariableDeclaration","scope":607,"src":"4860:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":503,"name":"address","nodeType":"ElementaryTypeName","src":"4860:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":506,"name":"nonce","nodeType":"VariableDeclaration","scope":607,"src":"4885:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint256","nodeType":"ElementaryTypeName","src":"4885:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":508,"name":"expiry","nodeType":"VariableDeclaration","scope":607,"src":"4908:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":507,"name":"uint256","nodeType":"ElementaryTypeName","src":"4908:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":510,"name":"allowed","nodeType":"VariableDeclaration","scope":607,"src":"4932:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":509,"name":"bool","nodeType":"ElementaryTypeName","src":"4932:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":512,"name":"v","nodeType":"VariableDeclaration","scope":607,"src":"4954:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":511,"name":"uint8","nodeType":"ElementaryTypeName","src":"4954:5:0","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"},{"constant":false,"id":514,"name":"r","nodeType":"VariableDeclaration","scope":607,"src":"4971:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4971:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":516,"name":"s","nodeType":"VariableDeclaration","scope":607,"src":"4990:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4990:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4826:179:0"},"returnParameters":{"id":518,"nodeType":"ParameterList","parameters":[],"src":"5015:0:0"},"scope":608,"src":"4811:872:0","stateMutability":"nonpayable","superFunction":null,"visibility":"external"}],"scope":609,"src":"820:4865:0"}],"src":"773:4913:0"}},"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol":{"id":1,"ast":{"absolutePath":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol","exportedSymbols":{"LibNote":[628]},"id":629,"nodeType":"SourceUnit","nodes":[{"id":610,"literals":["solidity","^","0.5",".16"],"nodeType":"PragmaDirective","src":"690:24:1"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":628,"linearizedBaseContracts":[628],"name":"LibNote","nodeType":"ContractDefinition","nodes":[{"anonymous":true,"documentation":null,"id":622,"name":"LogNote","nodeType":"EventDefinition","parameters":{"id":621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":612,"indexed":true,"name":"sig","nodeType":"VariableDeclaration","scope":622,"src":"762:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":611,"name":"bytes4","nodeType":"ElementaryTypeName","src":"762:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"},{"constant":false,"id":614,"indexed":true,"name":"usr","nodeType":"VariableDeclaration","scope":622,"src":"790:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":613,"name":"address","nodeType":"ElementaryTypeName","src":"790:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":616,"indexed":true,"name":"arg1","nodeType":"VariableDeclaration","scope":622,"src":"819:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"819:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":618,"indexed":true,"name":"arg2","nodeType":"VariableDeclaration","scope":622,"src":"849:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"849:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":620,"indexed":false,"name":"data","nodeType":"VariableDeclaration","scope":622,"src":"879:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":619,"name":"bytes","nodeType":"ElementaryTypeName","src":"879:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"752:143:1"},"src":"739:167:1"},{"body":{"id":626,"nodeType":"Block","src":"928:789:1","statements":[{"id":624,"nodeType":"PlaceholderStatement","src":"938:1:1"},{"externalReferences":[],"id":625,"nodeType":"InlineAssembly","operations":"{\n let mark := msize()\n mstore(0x40, add(mark, 288))\n mstore(mark, 0x20)\n mstore(add(mark, 0x20), 224)\n calldatacopy(add(mark, 0x40), 0, 224)\n log4(mark, 288, shl(224, shr(224, calldataload(0))), caller(), calldataload(4), calldataload(36))\n}","src":"949:762:1"}]},"documentation":null,"id":627,"name":"note","nodeType":"ModifierDefinition","parameters":{"id":623,"nodeType":"ParameterList","parameters":[],"src":"925:2:1"},"src":"912:805:1","visibility":"internal"}],"scope":629,"src":"716:1003:1"}],"src":"690:1030:1"}},"contracts/test/VAI.sol":{"id":2,"ast":{"absolutePath":"contracts/test/VAI.sol","exportedSymbols":{"VAIScenario":[643]},"id":644,"nodeType":"SourceUnit","nodes":[{"id":630,"literals":["solidity","0.5",".16"],"nodeType":"PragmaDirective","src":"41:23:2"},{"absolutePath":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol","file":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol","id":631,"nodeType":"ImportDirective","scope":644,"sourceUnit":609,"src":"65:68:2","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":632,"name":"VAI","nodeType":"UserDefinedTypeName","referencedDeclaration":608,"src":"159:3:2","typeDescriptions":{"typeIdentifier":"t_contract$_VAI_$608","typeString":"contract VAI"}},"id":633,"nodeType":"InheritanceSpecifier","src":"159:3:2"}],"contractDependencies":[608,628],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":643,"linearizedBaseContracts":[643,608,628],"name":"VAIScenario","nodeType":"ContractDefinition","nodes":[{"body":{"id":641,"nodeType":"Block","src":"218:2:2","statements":[]},"documentation":null,"id":642,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"argumentTypes":null,"id":638,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"209:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":639,"modifierName":{"argumentTypes":null,"id":637,"name":"VAI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"205:3:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VAI_$608_$","typeString":"type(contract VAI)"}},"nodeType":"ModifierInvocation","src":"205:12:2"}],"name":"","nodeType":"FunctionDefinition","parameters":{"id":636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":635,"name":"chainId","nodeType":"VariableDeclaration","scope":642,"src":"181:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":634,"name":"uint256","nodeType":"ElementaryTypeName","src":"181:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"180:17:2"},"returnParameters":{"id":640,"nodeType":"ParameterList","parameters":[],"src":"218:0:2"},"scope":643,"src":"169:51:2","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":644,"src":"135:87:2"}],"src":"41:182:2"}}},"contracts":{"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol":{"VAI":{"abi":[{"inputs":[{"internalType":"uint256","name":"chainId_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"arg1","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"arg2","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"deny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"allowed","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"pull","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"push","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"rely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":{"llvm_options":[],"optimizer_settings":{"is_debug_logging_enabled":false,"is_fallback_to_size_enabled":false,"is_verify_each_enabled":false,"level_back_end":"Aggressive","level_middle_end":"Aggressive","level_middle_end_size":"Zero"},"solc_metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.b9534989\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId_\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":true,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"arg1\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"arg2\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"LogNote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"deny\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"move\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"pull\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"push\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"rely\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"wards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol\":\"VAI\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"details\":{\"constantOptimizer\":false,\"cse\":false,\"deduplicate\":false,\"jumpdestRemover\":false,\"orderLiterals\":false,\"peephole\":false,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol\":{\"keccak256\":\"0x375461c43acbc72bdb71baad0d14b0f58409794115a29416ad7cfa6fb2c65457\",\"urls\":[\"bzz-raw://1d6eb66b58004a74f401de5d8629a5163239f32510904fd407f39feee9ad4b90\",\"dweb:/ipfs/QmciBgTYonZbG55Dzp4JsfMCEYbnWzPeUxBSfqWvUzQNxM\"]},\"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol\":{\"keccak256\":\"0x63dceabe7331a78e04306883f77921e20bca79930e92468779bfe81cbe239c68\",\"urls\":[\"bzz-raw://ab1a92b3f8de82feb4c8f4a7b1546ad9574546a51283171e7ac5a41626305bbd\",\"dweb:/ipfs/QmVuv1xJ7kFgxDYJKmV5cwMRtgrGBkbyc7uD2sSrftzmLu\"]}},\"version\":1}","solc_version":"0.5.16","solc_zkvm_edition":"1.0.1","zk_version":"1.5.1"},"devdoc":{"methods":{}},"userdoc":{"methods":{}},"storageLayout":{"storage":[{"astId":8,"contract":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol:VAI","label":"wards","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":68,"contract":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol:VAI","label":"totalSupply","offset":0,"slot":"1","type":"t_uint256"},{"astId":72,"contract":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol:VAI","label":"balanceOf","offset":0,"slot":"2","type":"t_mapping(t_address,t_uint256)"},{"astId":78,"contract":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol:VAI","label":"allowance","offset":0,"slot":"3","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":82,"contract":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol:VAI","label":"nonces","offset":0,"slot":"4","type":"t_mapping(t_address,t_uint256)"},{"astId":144,"contract":"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol:VAI","label":"DOMAIN_SEPARATOR","offset":0,"slot":"5","type":"t_bytes32"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"evm":{"bytecode":{"object":"0001000000000002000900000000000200000000000103550000008003000039000000400030043f000000000400041600000000050100190000006005500270000001ed085001970000000100200190000000210000c13d000000000004004b0000078b0000c13d000000040080008c0000078b0000413d000000000301043b000000e002300270000001f50030009c0000008d0000813d000002170030009c000000e50000813d000002200020009c000001ff0000a13d000002210020009c000002c60000613d000002220020009c000002c80000613d000002230020009c0000078b0000c13d0000020c01000041000000800010043f0000020101000041000007ae0001042e000000000004004b0000078b0000c13d0000001f0280018f000000050480027200000005044002100000002d0000613d0000008005400039000000000601034f000000006706043c0000000003730436000000000053004b000000290000c13d000000000002004b0000003b0000613d000000000141034f00000003022002100000008003400039000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000008001800039000000400010043f000000200080008c0000078b0000413d000800000001001d0000000001000411000001ee01100197000000800200043d000900000002001d0000000000100435000000200000043f00000040020000390000000001000019000700000008001d07ad078e0000040f0000000102000039000000000021041b000001ef01000041000000080200002900000000001204350000000703000029000000c001300039000001f0020000410000000000210435000000a001300039000001f1020000410000000000210435000000400100043d000800000001001d0000000002130049000000d20220003907ad078e0000040f00000008030000290000004002300039000000400020043f0000000e020000390000000003230436000001f2040000410000000000430435000800000001001d000000000103001907ad078e0000040f000000400400043d0000004003400039000000400030043f00000001020000390000000004240436000001f3030000410000000000340435000700000001001d000000000104001907ad078e0000040f000000400200043d000000200320003900000008040000290000000000430435000000400320003900000007040000290000000000430435000000600320003900000000001304350000008001200039000000090300002900000000003104350000000001000410000001ee01100197000000a0032000390000000000130435000000400400043d00000000014300490000000001140436000000c002200039000000400020043f000000000204043307ad078e0000040f0000000502000039000000000012041b000000200100003900000100001004430000012000000443000001f401000041000007ae0001042e000001f60030009c0000013b0000813d000002020020009c000002550000a13d000002030020009c0000031f0000613d000002040020009c000003250000613d000002050020009c0000078b0000c13d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d0000000001000411000001ee021001970000000801000029000000000021004b000004a70000c13d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000232004b000004900000413d000000000021041b0000000101000039000000000201041a000000000232004b000004900000413d000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d020000390000000303000039000002000400004100000008050000290000000006000019000004590000013d000002180020009c0000019a0000213d0000021c0020009c000003720000613d0000021d0020009c000003ec0000613d0000021e0020009c0000078b0000c13d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000800000002001d0000000401100370000000000101043b000900000001001d0000000001000411000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000010010008c000004780000c13d0000000901000029000001ee01100197000900000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000803000029000000000032001a000004900000413d0000000002320019000000000021041b0000000101000039000000000201041a000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d020000390000000303000039000002000400004100000000050000190000000906000029000004590000013d000001f70020009c000001a70000213d000001fb0020009c000003760000613d000001fc0020009c000003ee0000613d000001fd0020009c0000078b0000c13d000000640280008a0000022a0020009c0000078b0000813d0000004402100370000000000202043b000900000002001d0000002402100370000000000202043b000700000002001d0000000401100370000000000101043b000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d0000000001000411000001ee021001970000000801000029000000000021004b000005f50000c13d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000004900000413d0000000703000029000001ee03300197000000000021041b000700000003001d00000000003004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000006ec0000013d000002190020009c000003d50000613d0000021a0020009c000004110000613d0000021b0020009c0000078b0000c13d000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b0000000202000039000003700000013d000001f80020009c000003e10000613d000001f90020009c0000045e0000613d000001fa0020009c0000078b0000c13d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d0000000001000411000701ee0010019b0000000801000029000000070010006c0000066d0000c13d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000004900000413d000000000021041b000000070100002900000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000006ec0000013d000002240020009c000003640000613d000002250020009c0000078b0000c13d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000700000002001d0000000401100370000000000101043b000900000001001d0000000001000411000001ee01100197000800000001001d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d0000000902000029000001ee02200197000000000101043b000900000002001d0000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000702000029000000000021041b000000400100043d0000000000210435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d02000039000000030300003900000215040000410000000805000029000000090600002907ad07a30000040f00000001002001900000078b0000613d000000400100043d00000001020000390000000000210435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f000007ae0001042e000002060020009c0000036a0000613d000002070020009c0000078b0000c13d000001040280008a0000022c0020009c0000078b0000813d0000000502000039000000000202041a000900000002001d000000e402100370000000000202043b000600000002001d000000c402100370000000000202043b000700000002001d000000a402100370000000000202043b000500000002001d0000008402100370000000000402043b0000006402100370000000000602043b0000004402100370000000000502043b0000002402100370000000000202043b0000000401100370000000000101043b0000020c03000041000000a00030043f000001ee01100197000800000001001d000000c00010043f000001ee01200197000100000001001d000000e00010043f000300000005001d000001000050043f000400000006001d000001200060043f000200000004001d000000000004004b0000000001000019000000010100c039000001400010043f000000c001000039000000800010043f0000016001000039000000400010043f0000000001000414000001ed0010009c000001ed01008041000000c0011002100000020d011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000020e02000041000001800020043f0000000902000029000001820020043f000001a20010043f000000400100043d000001a2021000890000000002210436000001c203000039000000400030043f000001ed0020009c000001ed0200804100000040022002100000000001010433000001ed0010009c000001ed010080410000006001100210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000112019f000001ff011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000400200043d000000080000006b0000051f0000c13d00000044012000390000021603000041000000000031043500000024012000390000001503000039000000000031043500000210010000410000000000120435000000040120003900000020030000390000000000310435000000400100043d00000000021200490000006402200039000001ed0020009c000001ed020080410000006002200210000001ed0010009c000001ed010080410000004001100210000000000112019f000007af000104300000000101000039000004740000013d000000640280008a0000022a0020009c0000078b0000813d0000004402100370000000000202043b000900000002001d0000002402100370000000000202043b000700000002001d0000000401100370000000000101043b000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d0000000001000411000001ee021001970000000801000029000000000021004b0000057d0000c13d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000004900000413d0000000703000029000001ee03300197000000000021041b000700000003001d00000000003004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000003c70000013d000000c001000039000000400010043f0000000301000039000000800010043f0000020a02000041000003da0000013d000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b000900000001001d0000000001000411000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000010010008c000004780000c13d0000000901000029000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000001041b00000000010004130000004001100270000001ed011001970000012002100039000000400020043f0000002003100039000000e00400003900000000004304350000002003000039000000000031043500000040041000390000000003000367000000000503034f000000005605043c0000000004640436000000000024004b000003580000c13d0000000402300370000000000602043b0000002402300370000000000702043b000000000203043b00000040011002100000000003000414000004500000013d000000c001000039000000400010043f0000000e01000039000000800010043f000001f202000041000003da0000013d000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b0000000402000039000000200020043f000003e70000013d0000001201000039000000800010043f0000020101000041000007ae0001042e000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b000700000001001d0000000001000411000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d000000080100002900000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000004900000413d0000000703000029000001ee03300197000000000021041b000700000003001d00000000003004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d02000039000000030300003900000200040000410000000805000029000000070600002907ad07a30000040f00000001002001900000078b0000613d000002470000013d000000c001000039000000400010043f0000000101000039000000800010043f000001f302000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f0000020b01000041000007ae0001042e000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b000000200000043f000001ee01100197000000000010043500000040020000390000000001000019000004730000013d0000000501000039000004740000013d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b000700000001001d0000000001000411000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000047f0000813d000000400100043d00000044021000390000022803000041000000000032043500000024021000390000001803000039000004960000013d000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b000900000001001d0000000001000411000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000010010008c000004780000c13d0000000901000029000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000102000039000000000021041b00000000010004130000004001100270000001ed011001970000012002100039000000400020043f0000002003100039000000e00400003900000000004304350000002003000039000000000031043500000040041000390000000003000367000000000503034f000000005605043c0000000004640436000000000024004b000004450000c13d0000000402300370000000000602043b0000002402300370000000000702043b000000000203043b00000040011002100000000003000414000001ed0030009c000001ed03008041000000c003300210000000000113019f00000208011001c700000209042001970000800d020000390000000403000039000000000500041107ad07a30000040f00000001002001900000078b0000613d0000000001000019000007ae0001042e000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b0000000302000039000000200020043f000001ee0110019700000000001004350000004002000039000000000100001907ad078e0000040f000000200010043f0000000901000029000001ee0110019700000000001004350000000001000019000000400200003907ad078e0000040f000000000101041a000000800010043f0000020101000041000007ae0001042e000000400100043d00000044021000390000021f03000041000000000032043500000024021000390000001203000039000004960000013d000000080100002900000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000006c80000813d000000400100043d00000044021000390000022703000041000000000032043500000024021000390000000e03000039000000000032043500000210020000410000000000210435000000040210003900000020030000390000000000320435000000400200043d00000000012100490000006401100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f000007af00010430000700000002001d0000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0000022d0010009c0000000801000029000000b60000613d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c000006a70000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0006000900100074000004900000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000602000029000000000021041b0000000801000029000000b60000013d000000000101043b0000000003020436000000400030043f0000008004200039000000060500002900000000005404350000006004200039000000070500002900000000005404350000000504000029000000ff0440018f000000400520003900000000004504350000000000130435000000400300043d000900000003001d0000000001320049000000a001100039000001ed0010009c000001ed010080410000006001100210000001ed0030009c000001ed0200004100000000020340190000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000000010200003907ad07a80000040f0000000903000029000000200430008a00000000030100190000006003300270000001ed03300197000000200030008c000000200600003900000000060340190000001f0560018f0000000506600272000005520000613d0000002007400039000000000801034f0000000009040019000000008a08043c0000000009a90436000000000079004b0000054e0000c13d000000000005004b000005610000613d0000000506600210000000000761034f00000000046400190000000305500210000000000604043300000000065601cf000000000656022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f00000000005404350000000100200190000006ae0000613d000000400100043d000000200210008a0000000002020433000001ee02200197000000080020006b000006f70000c13d000000040000006b000006fa0000613d000002110100004100000000001004390000000001000414000001ed0010009c000001ed01008041000000c00110021000000212011001c70000800b0200003907ad07a80000040f0000000100200190000007460000613d000000000101043b000000040010006c000006fa0000a13d000000400100043d000000440210003900000213030000410000047b0000013d000600000002001d0000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0000022d0010009c0000000801000029000002ea0000613d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c000006a70000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0005000900100074000004900000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000502000029000000000021041b0000000801000029000002ea0000013d000600000002001d0000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0000022d0010009c0000000801000029000001650000613d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c000006a70000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0005000900100074000004900000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000502000029000000000021041b0000000801000029000001650000013d0000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0000022d0010009c0000000801000029000001cc0000613d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000074e0000813d000000400100043d00000044021000390000022603000041000000000032043500000024021000390000001a03000039000004960000013d0000001f0430018f0000000502300272000006b80000613d0000000505200210000000000601034f0000000007000019000000006806043c0000000007870436000000000057004b000006b40000c13d000000000004004b000006c60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000007af000104300000000703000029000001ee03300197000000000021041b000700000003001d00000000003004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d020000390000000303000039000002000400004100000008050000290000000706000029000004590000013d00000044021000390000020f030000410000047b0000013d000000080100002900000000001004350000000401000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000103200039000000000031041b000000030020006b000007470000c13d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f000000010400008a000000020000006b0000000004006019000900000004001d00000001002001900000078b0000613d000000000101043b00000001020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000902000029000000000021041b000000400100043d0000000000210435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d020000390000000303000039000002150400004100000008050000290000000106000029000004590000013d000000000001042f000000400100043d00000044021000390000021403000041000000000032043500000024021000390000001103000039000004960000013d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0006000900100074000004900000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000602000029000000000021041b0000000801000029000001cc0000013d0000000001000019000007af00010430000000000001042f000001ed0010009c000001ed010080410000004001100210000001ed0020009c000001ed020080410000006002200210000000000112019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000112019f000001ff011001c7000080100200003907ad07a80000040f0000000100200190000007a10000613d000000000101043b000000000001042d0000000001000019000007af00010430000007a6002104210000000102000039000000000001042d0000000002000019000000000001042d000007ab002104230000000102000039000000000001042d0000000002000019000000000001042d000007ad00000432000007ae0001042e000007af00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff454950373132446f6d61696e28737472696e67206e616d652c737472696e6720766572696679696e67436f6e747261637429000000000000000000000000000076657273696f6e2c75696e7432353620636861696e49642c616464726573732056414920537461626c65636f696e000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000007ecebe0000000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf353dba00000000000000000000000000000000000000000000000000000000bf353dbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000f2d5d56b00000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000b753a98c00000000000000000000000000000000000000000000000000000000bb35783b02000000000000000000000000000000000000400000000000000000000000000200000000000000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000000000000000000000095d89b400000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009c52a7f1000000000000000000000000000000000000000000000000000000009dc29fac000000000000000000000000000000000000000000000000000000007ecebe00000000000000000000000000000000000000000000000000000000008fcbaf0c0200000000000000000000000000000000000120000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000000056414900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000c00000000000000000ea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb02000000000000000000000000000000000000c0000000a0000000000000000019010000000000000000000000000000000000000000000000000000000000005641492f696e76616c69642d7065726d6974000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000005641492f7065726d69742d6578706972656400000000000000000000000000005641492f696e76616c69642d6e6f6e63650000000000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255641492f696e76616c69642d616464726573732d300000000000000000000000313ce567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054fd4d4f0000000000000000000000000000000000000000000000000000000054fd4d500000000000000000000000000000000000000000000000000000000065fae35e0000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000003644e5150000000000000000000000000000000000000000000000000000000040c10f195641492f6e6f742d617574686f72697a656400000000000000000000000000000000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000030adf81f0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b35641492f696e73756666696369656e742d616c6c6f77616e6365000000000000564149206d617468206572726f720000000000000000000000000000000000005641492f696e73756666696369656e742d62616c616e63650000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","deny(address)":"9c52a7f1","mint(address,uint256)":"40c10f19","move(address,address,uint256)":"bb35783b","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,bool,uint8,bytes32,bytes32)":"8fcbaf0c","pull(address,uint256)":"f2d5d56b","push(address,uint256)":"b753a98c","rely(address)":"65fae35e","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","version()":"54fd4d50","wards(address)":"bf353dbb"}},"hash":"0100022fa82db991044481d8dc289313d84868dd589a68d99cf49fd99fcdd288","factoryDependencies":{}}},"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol":{"LibNote":{"abi":[{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"arg1","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"arg2","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"LogNote","type":"event"}],"metadata":{"llvm_options":[],"optimizer_settings":{"is_debug_logging_enabled":false,"is_fallback_to_size_enabled":false,"is_verify_each_enabled":false,"level_back_end":"Aggressive","level_middle_end":"Aggressive","level_middle_end_size":"Zero"},"solc_metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.b9534989\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":true,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"arg1\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"arg2\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"LogNote\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol\":\"LibNote\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"details\":{\"constantOptimizer\":false,\"cse\":false,\"deduplicate\":false,\"jumpdestRemover\":false,\"orderLiterals\":false,\"peephole\":false,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol\":{\"keccak256\":\"0x63dceabe7331a78e04306883f77921e20bca79930e92468779bfe81cbe239c68\",\"urls\":[\"bzz-raw://ab1a92b3f8de82feb4c8f4a7b1546ad9574546a51283171e7ac5a41626305bbd\",\"dweb:/ipfs/QmVuv1xJ7kFgxDYJKmV5cwMRtgrGBkbyc7uD2sSrftzmLu\"]}},\"version\":1}","solc_version":"0.5.16","solc_zkvm_edition":"1.0.1","zk_version":"1.5.1"},"devdoc":{"methods":{}},"userdoc":{"methods":{}},"storageLayout":{"storage":[],"types":null},"evm":{"bytecode":{"object":"0000008001000039000000400010043f00000001002001900000000c0000613d0000000001000416000000000001004b0000000c0000c13d00000020010000390000010000100443000001200000044300000005010000410000000f0001042e000000000100001900000010000104300000000e000004320000000f0001042e000000100001043000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"methodIdentifiers":{}},"hash":"01000007d1567973ec3fadd3c98f873a2debf7d34207908a5a97d54ea2761153","factoryDependencies":{}}},"contracts/test/VAI.sol":{"VAIScenario":{"abi":[{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":true,"inputs":[{"indexed":true,"internalType":"bytes4","name":"sig","type":"bytes4"},{"indexed":true,"internalType":"address","name":"usr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"arg1","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"arg2","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"deny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"move","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bool","name":"allowed","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"pull","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"usr","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"push","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"rely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":{"llvm_options":[],"optimizer_settings":{"is_debug_logging_enabled":false,"is_fallback_to_size_enabled":false,"is_verify_each_enabled":false,"level_back_end":"Aggressive","level_middle_end":"Aggressive","level_middle_end_size":"Zero"},"solc_metadata":"{\"compiler\":{\"version\":\"0.5.16+commit.b9534989\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":true,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"sig\",\"type\":\"bytes4\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"arg1\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"arg2\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"LogNote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"deny\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"move\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"pull\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"usr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"push\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"}],\"name\":\"rely\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"wards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/test/VAI.sol\":\"VAIScenario\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"details\":{\"constantOptimizer\":false,\"cse\":false,\"deduplicate\":false,\"jumpdestRemover\":false,\"orderLiterals\":false,\"peephole\":false,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@venusprotocol/venus-protocol/contracts/Tokens/VAI/VAI.sol\":{\"keccak256\":\"0x375461c43acbc72bdb71baad0d14b0f58409794115a29416ad7cfa6fb2c65457\",\"urls\":[\"bzz-raw://1d6eb66b58004a74f401de5d8629a5163239f32510904fd407f39feee9ad4b90\",\"dweb:/ipfs/QmciBgTYonZbG55Dzp4JsfMCEYbnWzPeUxBSfqWvUzQNxM\"]},\"@venusprotocol/venus-protocol/contracts/Tokens/VAI/lib.sol\":{\"keccak256\":\"0x63dceabe7331a78e04306883f77921e20bca79930e92468779bfe81cbe239c68\",\"urls\":[\"bzz-raw://ab1a92b3f8de82feb4c8f4a7b1546ad9574546a51283171e7ac5a41626305bbd\",\"dweb:/ipfs/QmVuv1xJ7kFgxDYJKmV5cwMRtgrGBkbyc7uD2sSrftzmLu\"]},\"contracts/test/VAI.sol\":{\"keccak256\":\"0x04e9f797d05d2b91db45c63588ddc23209be9111199b2eadcffcd39e2ba7ec1f\",\"urls\":[\"bzz-raw://724c6d22e4321a33ba1790c7d0a8280582a1f9c1d78d97153c73eaf6c06bec7e\",\"dweb:/ipfs/Qmbdfab1q8AWkSHSqCQLrTRgq6qqDy3dVDY3uGXDZqfr3N\"]}},\"version\":1}","solc_version":"0.5.16","solc_zkvm_edition":"1.0.1","zk_version":"1.5.1"},"devdoc":{"methods":{}},"userdoc":{"methods":{}},"storageLayout":{"storage":[{"astId":8,"contract":"contracts/test/VAI.sol:VAIScenario","label":"wards","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":68,"contract":"contracts/test/VAI.sol:VAIScenario","label":"totalSupply","offset":0,"slot":"1","type":"t_uint256"},{"astId":72,"contract":"contracts/test/VAI.sol:VAIScenario","label":"balanceOf","offset":0,"slot":"2","type":"t_mapping(t_address,t_uint256)"},{"astId":78,"contract":"contracts/test/VAI.sol:VAIScenario","label":"allowance","offset":0,"slot":"3","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":82,"contract":"contracts/test/VAI.sol:VAIScenario","label":"nonces","offset":0,"slot":"4","type":"t_mapping(t_address,t_uint256)"},{"astId":144,"contract":"contracts/test/VAI.sol:VAIScenario","label":"DOMAIN_SEPARATOR","offset":0,"slot":"5","type":"t_bytes32"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"evm":{"bytecode":{"object":"0001000000000002000900000000000200000000000103550000008003000039000000400030043f000000000400041600000000050100190000006005500270000001ed085001970000000100200190000000210000c13d000000000004004b0000078b0000c13d000000040080008c0000078b0000413d000000000301043b000000e002300270000001f50030009c0000008d0000813d000002170030009c000000e50000813d000002200020009c000001ff0000a13d000002210020009c000002c60000613d000002220020009c000002c80000613d000002230020009c0000078b0000c13d0000020c01000041000000800010043f0000020101000041000007ae0001042e000000000004004b0000078b0000c13d0000001f0280018f000000050480027200000005044002100000002d0000613d0000008005400039000000000601034f000000006706043c0000000003730436000000000053004b000000290000c13d000000000002004b0000003b0000613d000000000141034f00000003022002100000008003400039000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000008001800039000000400010043f000000200080008c0000078b0000413d000800000001001d0000000001000411000001ee01100197000000800200043d000900000002001d0000000000100435000000200000043f00000040020000390000000001000019000700000008001d07ad078e0000040f0000000102000039000000000021041b000001ef01000041000000080200002900000000001204350000000703000029000000c001300039000001f0020000410000000000210435000000a001300039000001f1020000410000000000210435000000400100043d000800000001001d0000000002130049000000d20220003907ad078e0000040f00000008030000290000004002300039000000400020043f0000000e020000390000000003230436000001f2040000410000000000430435000800000001001d000000000103001907ad078e0000040f000000400400043d0000004003400039000000400030043f00000001020000390000000004240436000001f3030000410000000000340435000700000001001d000000000104001907ad078e0000040f000000400200043d000000200320003900000008040000290000000000430435000000400320003900000007040000290000000000430435000000600320003900000000001304350000008001200039000000090300002900000000003104350000000001000410000001ee01100197000000a0032000390000000000130435000000400400043d00000000014300490000000001140436000000c002200039000000400020043f000000000204043307ad078e0000040f0000000502000039000000000012041b000000200100003900000100001004430000012000000443000001f401000041000007ae0001042e000001f60030009c0000013b0000813d000002020020009c000002550000a13d000002030020009c0000031f0000613d000002040020009c000003250000613d000002050020009c0000078b0000c13d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d0000000001000411000001ee021001970000000801000029000000000021004b000004a70000c13d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000232004b000004900000413d000000000021041b0000000101000039000000000201041a000000000232004b000004900000413d000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d020000390000000303000039000002000400004100000008050000290000000006000019000004590000013d000002180020009c0000019a0000213d0000021c0020009c000003720000613d0000021d0020009c000003ec0000613d0000021e0020009c0000078b0000c13d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000800000002001d0000000401100370000000000101043b000900000001001d0000000001000411000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000010010008c000004780000c13d0000000901000029000001ee01100197000900000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000803000029000000000032001a000004900000413d0000000002320019000000000021041b0000000101000039000000000201041a000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d020000390000000303000039000002000400004100000000050000190000000906000029000004590000013d000001f70020009c000001a70000213d000001fb0020009c000003760000613d000001fc0020009c000003ee0000613d000001fd0020009c0000078b0000c13d000000640280008a0000022a0020009c0000078b0000813d0000004402100370000000000202043b000900000002001d0000002402100370000000000202043b000700000002001d0000000401100370000000000101043b000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d0000000001000411000001ee021001970000000801000029000000000021004b000005f50000c13d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000004900000413d0000000703000029000001ee03300197000000000021041b000700000003001d00000000003004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000006ec0000013d000002190020009c000003d50000613d0000021a0020009c000004110000613d0000021b0020009c0000078b0000c13d000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b0000000202000039000003700000013d000001f80020009c000003e10000613d000001f90020009c0000045e0000613d000001fa0020009c0000078b0000c13d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d0000000001000411000701ee0010019b0000000801000029000000070010006c0000066d0000c13d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000004900000413d000000000021041b000000070100002900000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000006ec0000013d000002240020009c000003640000613d000002250020009c0000078b0000c13d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000700000002001d0000000401100370000000000101043b000900000001001d0000000001000411000001ee01100197000800000001001d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d0000000902000029000001ee02200197000000000101043b000900000002001d0000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000702000029000000000021041b000000400100043d0000000000210435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d02000039000000030300003900000215040000410000000805000029000000090600002907ad07a30000040f00000001002001900000078b0000613d000000400100043d00000001020000390000000000210435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f000007ae0001042e000002060020009c0000036a0000613d000002070020009c0000078b0000c13d000001040280008a0000022c0020009c0000078b0000813d0000000502000039000000000202041a000900000002001d000000e402100370000000000202043b000600000002001d000000c402100370000000000202043b000700000002001d000000a402100370000000000202043b000500000002001d0000008402100370000000000402043b0000006402100370000000000602043b0000004402100370000000000502043b0000002402100370000000000202043b0000000401100370000000000101043b0000020c03000041000000a00030043f000001ee01100197000800000001001d000000c00010043f000001ee01200197000100000001001d000000e00010043f000300000005001d000001000050043f000400000006001d000001200060043f000200000004001d000000000004004b0000000001000019000000010100c039000001400010043f000000c001000039000000800010043f0000016001000039000000400010043f0000000001000414000001ed0010009c000001ed01008041000000c0011002100000020d011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000020e02000041000001800020043f0000000902000029000001820020043f000001a20010043f000000400100043d000001a2021000890000000002210436000001c203000039000000400030043f000001ed0020009c000001ed0200804100000040022002100000000001010433000001ed0010009c000001ed010080410000006001100210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000112019f000001ff011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000400200043d000000080000006b0000051f0000c13d00000044012000390000021603000041000000000031043500000024012000390000001503000039000000000031043500000210010000410000000000120435000000040120003900000020030000390000000000310435000000400100043d00000000021200490000006402200039000001ed0020009c000001ed020080410000006002200210000001ed0010009c000001ed010080410000004001100210000000000112019f000007af000104300000000101000039000004740000013d000000640280008a0000022a0020009c0000078b0000813d0000004402100370000000000202043b000900000002001d0000002402100370000000000202043b000700000002001d0000000401100370000000000101043b000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d0000000001000411000001ee021001970000000801000029000000000021004b0000057d0000c13d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000004900000413d0000000703000029000001ee03300197000000000021041b000700000003001d00000000003004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000003c70000013d000000c001000039000000400010043f0000000301000039000000800010043f0000020a02000041000003da0000013d000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b000900000001001d0000000001000411000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000010010008c000004780000c13d0000000901000029000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000001041b00000000010004130000004001100270000001ed011001970000012002100039000000400020043f0000002003100039000000e00400003900000000004304350000002003000039000000000031043500000040041000390000000003000367000000000503034f000000005605043c0000000004640436000000000024004b000003580000c13d0000000402300370000000000602043b0000002402300370000000000702043b000000000203043b00000040011002100000000003000414000004500000013d000000c001000039000000400010043f0000000e01000039000000800010043f000001f202000041000003da0000013d000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b0000000402000039000000200020043f000003e70000013d0000001201000039000000800010043f0000020101000041000007ae0001042e000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b000700000001001d0000000001000411000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000040a0000413d000000080100002900000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000004900000413d0000000703000029000001ee03300197000000000021041b000700000003001d00000000003004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d02000039000000030300003900000200040000410000000805000029000000070600002907ad07a30000040f00000001002001900000078b0000613d000002470000013d000000c001000039000000400010043f0000000101000039000000800010043f000001f302000041000000a00020043f0000002003000039000000c00030043f000000e00010043f000001000020043f0000020b01000041000007ae0001042e000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b000000200000043f000001ee01100197000000000010043500000040020000390000000001000019000004730000013d0000000501000039000004740000013d000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b000700000001001d0000000001000411000001ee01100197000800000001001d00000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000047f0000813d000000400100043d00000044021000390000022803000041000000000032043500000024021000390000001803000039000004960000013d000000240280008a0000022b0020009c0000078b0000813d0000000401100370000000000101043b000900000001001d0000000001000411000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000010010008c000004780000c13d0000000901000029000001ee011001970000000000100435000000200000043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000102000039000000000021041b00000000010004130000004001100270000001ed011001970000012002100039000000400020043f0000002003100039000000e00400003900000000004304350000002003000039000000000031043500000040041000390000000003000367000000000503034f000000005605043c0000000004640436000000000024004b000004450000c13d0000000402300370000000000602043b0000002402300370000000000702043b000000000203043b00000040011002100000000003000414000001ed0030009c000001ed03008041000000c003300210000000000113019f00000208011001c700000209042001970000800d020000390000000403000039000000000500041107ad07a30000040f00000001002001900000078b0000613d0000000001000019000007ae0001042e000000440280008a000002290020009c0000078b0000813d0000002402100370000000000202043b000900000002001d0000000401100370000000000101043b0000000302000039000000200020043f000001ee0110019700000000001004350000004002000039000000000100001907ad078e0000040f000000200010043f0000000901000029000001ee0110019700000000001004350000000001000019000000400200003907ad078e0000040f000000000101041a000000800010043f0000020101000041000007ae0001042e000000400100043d00000044021000390000021f03000041000000000032043500000024021000390000001203000039000004960000013d000000080100002900000000001004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a000000090220006c000006c80000813d000000400100043d00000044021000390000022703000041000000000032043500000024021000390000000e03000039000000000032043500000210020000410000000000210435000000040210003900000020030000390000000000320435000000400200043d00000000012100490000006401100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f000007af00010430000700000002001d0000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0000022d0010009c0000000801000029000000b60000613d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c000006a70000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0006000900100074000004900000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000602000029000000000021041b0000000801000029000000b60000013d000000000101043b0000000003020436000000400030043f0000008004200039000000060500002900000000005404350000006004200039000000070500002900000000005404350000000504000029000000ff0440018f000000400520003900000000004504350000000000130435000000400300043d000900000003001d0000000001320049000000a001100039000001ed0010009c000001ed010080410000006001100210000001ed0030009c000001ed0200004100000000020340190000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000000010200003907ad07a80000040f0000000903000029000000200430008a00000000030100190000006003300270000001ed03300197000000200030008c000000200600003900000000060340190000001f0560018f0000000506600272000005520000613d0000002007400039000000000801034f0000000009040019000000008a08043c0000000009a90436000000000079004b0000054e0000c13d000000000005004b000005610000613d0000000506600210000000000761034f00000000046400190000000305500210000000000604043300000000065601cf000000000656022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f00000000005404350000000100200190000006ae0000613d000000400100043d000000200210008a0000000002020433000001ee02200197000000080020006b000006f70000c13d000000040000006b000006fa0000613d000002110100004100000000001004390000000001000414000001ed0010009c000001ed01008041000000c00110021000000212011001c70000800b0200003907ad07a80000040f0000000100200190000007460000613d000000000101043b000000040010006c000006fa0000a13d000000400100043d000000440210003900000213030000410000047b0000013d000600000002001d0000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0000022d0010009c0000000801000029000002ea0000613d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c000006a70000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0005000900100074000004900000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000502000029000000000021041b0000000801000029000002ea0000013d000600000002001d0000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0000022d0010009c0000000801000029000001650000613d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c000006a70000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0005000900100074000004900000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000006020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000502000029000000000021041b0000000801000029000001650000013d0000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0000022d0010009c0000000801000029000001cc0000613d00000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a000000090010006c0000074e0000813d000000400100043d00000044021000390000022603000041000000000032043500000024021000390000001a03000039000004960000013d0000001f0430018f0000000502300272000006b80000613d0000000505200210000000000601034f0000000007000019000000006806043c0000000007870436000000000057004b000006b40000c13d000000000004004b000006c60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000007af000104300000000703000029000001ee03300197000000000021041b000700000003001d00000000003004350000000201000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000903000029000000000032001a000004900000413d0000000002320019000000000021041b000000400100043d0000000000310435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d020000390000000303000039000002000400004100000008050000290000000706000029000004590000013d00000044021000390000020f030000410000047b0000013d000000080100002900000000001004350000000401000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000201041a0000000103200039000000000031041b000000030020006b000007470000c13d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f000000010400008a000000020000006b0000000004006019000900000004001d00000001002001900000078b0000613d000000000101043b00000001020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000902000029000000000021041b000000400100043d0000000000210435000000400200043d00000000012100490000002001100039000001ed0010009c000001ed010080410000006001100210000001ed0020009c000001ed020080410000004002200210000000000121019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000121019f000001ff011001c70000800d020000390000000303000039000002150400004100000008050000290000000106000029000004590000013d000000000001042f000000400100043d00000044021000390000021403000041000000000032043500000024021000390000001103000039000004960000013d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b000000000101041a0006000900100074000004900000413d000000080100002900000000001004350000000301000039000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b00000007020000290000000000200435000000200010043f0000000001000414000001ed0010009c000001ed01008041000000c001100210000001fe011001c7000080100200003907ad07a80000040f00000001002001900000078b0000613d000000000101043b0000000602000029000000000021041b0000000801000029000001cc0000013d0000000001000019000007af00010430000000000001042f000001ed0010009c000001ed010080410000004001100210000001ed0020009c000001ed020080410000006002200210000000000112019f0000000002000414000001ed0020009c000001ed02008041000000c002200210000000000112019f000001ff011001c7000080100200003907ad07a80000040f0000000100200190000007a10000613d000000000101043b000000000001042d0000000001000019000007af00010430000007a6002104210000000102000039000000000001042d0000000002000019000000000001042d000007ab002104230000000102000039000000000001042d0000000002000019000000000001042d000007ad00000432000007ae0001042e000007af00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff454950373132446f6d61696e28737472696e67206e616d652c737472696e6720766572696679696e67436f6e747261637429000000000000000000000000000076657273696f6e2c75696e7432353620636861696e49642c616464726573732056414920537461626c65636f696e000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000007ecebe0000000000000000000000000000000000000000000000000000000000a9059cbb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bf353dba00000000000000000000000000000000000000000000000000000000bf353dbb00000000000000000000000000000000000000000000000000000000dd62ed3e00000000000000000000000000000000000000000000000000000000f2d5d56b00000000000000000000000000000000000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000b753a98c00000000000000000000000000000000000000000000000000000000bb35783b02000000000000000000000000000000000000400000000000000000000000000200000000000000000000000000000000000000000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000000000000000000000095d89b400000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009c52a7f1000000000000000000000000000000000000000000000000000000009dc29fac000000000000000000000000000000000000000000000000000000007ecebe00000000000000000000000000000000000000000000000000000000008fcbaf0c0200000000000000000000000000000000000120000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000000000056414900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000c00000000000000000ea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb02000000000000000000000000000000000000c0000000a0000000000000000019010000000000000000000000000000000000000000000000000000000000005641492f696e76616c69642d7065726d6974000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000005641492f7065726d69742d6578706972656400000000000000000000000000005641492f696e76616c69642d6e6f6e63650000000000000000000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255641492f696e76616c69642d616464726573732d300000000000000000000000313ce567000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054fd4d4f0000000000000000000000000000000000000000000000000000000054fd4d500000000000000000000000000000000000000000000000000000000065fae35e0000000000000000000000000000000000000000000000000000000070a0823100000000000000000000000000000000000000000000000000000000313ce567000000000000000000000000000000000000000000000000000000003644e5150000000000000000000000000000000000000000000000000000000040c10f195641492f6e6f742d617574686f72697a656400000000000000000000000000000000000000000000000000000000000000000000000000000000000018160ddc0000000000000000000000000000000000000000000000000000000018160ddd0000000000000000000000000000000000000000000000000000000023b872dd0000000000000000000000000000000000000000000000000000000030adf81f0000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000095ea7b35641492f696e73756666696369656e742d616c6c6f77616e6365000000000000564149206d617468206572726f720000000000000000000000000000000000005641492f696e73756666696369656e742d62616c616e63650000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","PERMIT_TYPEHASH()":"30adf81f","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","deny(address)":"9c52a7f1","mint(address,uint256)":"40c10f19","move(address,address,uint256)":"bb35783b","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,bool,uint8,bytes32,bytes32)":"8fcbaf0c","pull(address,uint256)":"f2d5d56b","push(address,uint256)":"b753a98c","rely(address)":"65fae35e","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","version()":"54fd4d50","wards(address)":"bf353dbb"}},"hash":"0100022fa82db991044481d8dc289313d84868dd589a68d99cf49fd99fcdd288","factoryDependencies":{}}}}}}