{
	"id": "b08e9272ed36875bbf22326d57c8d7ab",
	"_format": "hh-sol-build-info-1",
	"solcVersion": "0.8.7",
	"solcLongVersion": "0.8.7+commit.e28d00a7",
	"input": {
		"language": "Solidity",
		"sources": {
			"contracts/BasicToken.sol": {
				"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\ncontract BasicToken {\n  \n  uint256 totalSupply_;\n  mapping(address => uint256) balances;\n  \n  constructor(uint256 _initialSupply) {\n    totalSupply_ = _initialSupply;\n    balances[msg.sender] = _initialSupply;\n  }\n\n  function totalSupply() public view returns (uint256) {\n    return totalSupply_;\n  }\n\n  function transfer(address _to, uint256 _value) public returns (bool) {\n    require(_to != address(0));\n    require(_value <= balances[msg.sender]);\n    balances[msg.sender] -= _value;\n    balances[_to] = balances[_to] + _value;\n    return true;\n  }\n\n  function balanceOf(address _owner) public view returns (uint256) {\n    return balances[_owner];\n  }\n}"
			}
		},
		"settings": {
			"optimizer": {
				"enabled": true,
				"runs": 200
			},
			"outputSelection": {
				"*": {
					"": [
						"ast"
					],
					"*": [
						"abi",
						"metadata",
						"devdoc",
						"userdoc",
						"storageLayout",
						"evm.legacyAssembly",
						"evm.bytecode",
						"evm.deployedBytecode",
						"evm.methodIdentifiers",
						"evm.gasEstimates",
						"evm.assembly"
					]
				}
			}
		}
	},
	"output": {
		"contracts": {
			"contracts/BasicToken.sol": {
				"BasicToken": {
					"abi": [
						{
							"inputs": [
								{
									"internalType": "uint256",
									"name": "_initialSupply",
									"type": "uint256"
								}
							],
							"stateMutability": "nonpayable",
							"type": "constructor"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_owner",
									"type": "address"
								}
							],
							"name": "balanceOf",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [],
							"name": "totalSupply",
							"outputs": [
								{
									"internalType": "uint256",
									"name": "",
									"type": "uint256"
								}
							],
							"stateMutability": "view",
							"type": "function"
						},
						{
							"inputs": [
								{
									"internalType": "address",
									"name": "_to",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "_value",
									"type": "uint256"
								}
							],
							"name": "transfer",
							"outputs": [
								{
									"internalType": "bool",
									"name": "",
									"type": "bool"
								}
							],
							"stateMutability": "nonpayable",
							"type": "function"
						}
					],
					"devdoc": {
						"kind": "dev",
						"methods": {},
						"version": 1
					},
					"evm": {
						"assembly": "    /* \"contracts/BasicToken.sol\":57:714  contract BasicToken {... */\n  mstore(0x40, 0x80)\n    /* \"contracts/BasicToken.sol\":151:270  constructor(uint256 _initialSupply) {... */\n  callvalue\n  dup1\n  iszero\n  tag_1\n  jumpi\n  0x00\n  dup1\n  revert\ntag_1:\n  pop\n  mload(0x40)\n  sub(codesize, bytecodeSize)\n  dup1\n  bytecodeSize\n  dup4\n  codecopy\n  dup2\n  add\n  0x40\n  dup2\n  swap1\n  mstore\n  tag_2\n  swap2\n  tag_3\n  jump\t// in\ntag_2:\n    /* \"contracts/BasicToken.sol\":193:205  totalSupply_ */\n  0x00\n    /* \"contracts/BasicToken.sol\":193:222  totalSupply_ = _initialSupply */\n  dup2\n  dup2\n  sstore\n    /* \"contracts/BasicToken.sol\":237:247  msg.sender */\n  caller\n    /* \"contracts/BasicToken.sol\":228:248  balances[msg.sender] */\n  dup2\n  mstore\n    /* \"contracts/BasicToken.sol\":228:236  balances */\n  0x01\n    /* \"contracts/BasicToken.sol\":228:248  balances[msg.sender] */\n  0x20\n  mstore\n  0x40\n  swap1\n  keccak256\n    /* \"contracts/BasicToken.sol\":228:265  balances[msg.sender] = _initialSupply */\n  sstore\n    /* \"contracts/BasicToken.sol\":57:714  contract BasicToken {... */\n  jump(tag_7)\n    /* \"#utility.yul\":14:198   */\ntag_3:\n    /* \"#utility.yul\":84:90   */\n  0x00\n    /* \"#utility.yul\":137:139   */\n  0x20\n    /* \"#utility.yul\":125:134   */\n  dup3\n    /* \"#utility.yul\":116:123   */\n  dup5\n    /* \"#utility.yul\":112:135   */\n  sub\n    /* \"#utility.yul\":108:140   */\n  slt\n    /* \"#utility.yul\":105:157   */\n  iszero\n  tag_9\n  jumpi\n    /* \"#utility.yul\":153:154   */\n  0x00\n    /* \"#utility.yul\":150:151   */\n  dup1\n    /* \"#utility.yul\":143:155   */\n  revert\n    /* \"#utility.yul\":105:157   */\ntag_9:\n  pop\n    /* \"#utility.yul\":176:192   */\n  mload\n  swap2\n    /* \"#utility.yul\":14:198   */\n  swap1\n  pop\n  jump\t// out\ntag_7:\n    /* \"contracts/BasicToken.sol\":57:714  contract BasicToken {... */\n  dataSize(sub_0)\n  dup1\n  dataOffset(sub_0)\n  0x00\n  codecopy\n  0x00\n  return\nstop\n\nsub_0: assembly {\n        /* \"contracts/BasicToken.sol\":57:714  contract BasicToken {... */\n      mstore(0x40, 0x80)\n      callvalue\n      dup1\n      iszero\n      tag_1\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_1:\n      pop\n      jumpi(tag_2, lt(calldatasize, 0x04))\n      shr(0xe0, calldataload(0x00))\n      dup1\n      0x18160ddd\n      eq\n      tag_3\n      jumpi\n      dup1\n      0x70a08231\n      eq\n      tag_4\n      jumpi\n      dup1\n      0xa9059cbb\n      eq\n      tag_5\n      jumpi\n    tag_2:\n      0x00\n      dup1\n      revert\n        /* \"contracts/BasicToken.sol\":274:357  function totalSupply() public view returns (uint256) {... */\n    tag_3:\n        /* \"contracts/BasicToken.sol\":318:325  uint256 */\n      0x00\n        /* \"contracts/BasicToken.sol\":340:352  totalSupply_ */\n      sload\n        /* \"contracts/BasicToken.sol\":274:357  function totalSupply() public view returns (uint256) {... */\n    tag_6:\n      mload(0x40)\n        /* \"#utility.yul\":980:1005   */\n      swap1\n      dup2\n      mstore\n        /* \"#utility.yul\":968:970   */\n      0x20\n        /* \"#utility.yul\":953:971   */\n      add\n        /* \"contracts/BasicToken.sol\":274:357  function totalSupply() public view returns (uint256) {... */\n    tag_8:\n      mload(0x40)\n      dup1\n      swap2\n      sub\n      swap1\n      return\n        /* \"contracts/BasicToken.sol\":613:712  function balanceOf(address _owner) public view returns (uint256) {... */\n    tag_4:\n      tag_6\n      tag_11\n      calldatasize\n      0x04\n      tag_12\n      jump\t// in\n    tag_11:\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/BasicToken.sol\":691:707  balances[_owner] */\n      and\n        /* \"contracts/BasicToken.sol\":669:676  uint256 */\n      0x00\n        /* \"contracts/BasicToken.sol\":691:707  balances[_owner] */\n      swap1\n      dup2\n      mstore\n        /* \"contracts/BasicToken.sol\":691:699  balances */\n      0x01\n        /* \"contracts/BasicToken.sol\":691:707  balances[_owner] */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      sload\n      swap1\n        /* \"contracts/BasicToken.sol\":613:712  function balanceOf(address _owner) public view returns (uint256) {... */\n      jump\n        /* \"contracts/BasicToken.sol\":361:609  function transfer(address _to, uint256 _value) public returns (bool) {... */\n    tag_5:\n      tag_15\n      tag_16\n      calldatasize\n      0x04\n      tag_17\n      jump\t// in\n    tag_16:\n      tag_18\n      jump\t// in\n    tag_15:\n      mload(0x40)\n        /* \"#utility.yul\":807:821   */\n      swap1\n      iszero\n        /* \"#utility.yul\":800:822   */\n      iszero\n        /* \"#utility.yul\":782:823   */\n      dup2\n      mstore\n        /* \"#utility.yul\":770:772   */\n      0x20\n        /* \"#utility.yul\":755:773   */\n      add\n        /* \"contracts/BasicToken.sol\":361:609  function transfer(address _to, uint256 _value) public returns (bool) {... */\n      tag_8\n        /* \"#utility.yul\":642:829   */\n      jump\n        /* \"contracts/BasicToken.sol\":361:609  function transfer(address _to, uint256 _value) public returns (bool) {... */\n    tag_18:\n        /* \"contracts/BasicToken.sol\":424:428  bool */\n      0x00\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/BasicToken.sol\":444:461  _to != address(0) */\n      dup4\n      and\n        /* \"contracts/BasicToken.sol\":436:462  require(_to != address(0)) */\n      tag_24\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_24:\n        /* \"contracts/BasicToken.sol\":495:505  msg.sender */\n      caller\n        /* \"contracts/BasicToken.sol\":486:506  balances[msg.sender] */\n      0x00\n      swap1\n      dup2\n      mstore\n        /* \"contracts/BasicToken.sol\":486:494  balances */\n      0x01\n        /* \"contracts/BasicToken.sol\":486:506  balances[msg.sender] */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      sload\n        /* \"contracts/BasicToken.sol\":476:506  _value <= balances[msg.sender] */\n      dup3\n      gt\n      iszero\n        /* \"contracts/BasicToken.sol\":468:507  require(_value <= balances[msg.sender]) */\n      tag_25\n      jumpi\n      0x00\n      dup1\n      revert\n    tag_25:\n        /* \"contracts/BasicToken.sol\":522:532  msg.sender */\n      caller\n        /* \"contracts/BasicToken.sol\":513:533  balances[msg.sender] */\n      0x00\n      swap1\n      dup2\n      mstore\n        /* \"contracts/BasicToken.sol\":513:521  balances */\n      0x01\n        /* \"contracts/BasicToken.sol\":513:533  balances[msg.sender] */\n      0x20\n      mstore\n      0x40\n      dup2\n      keccak256\n        /* \"contracts/BasicToken.sol\":513:543  balances[msg.sender] -= _value */\n      dup1\n      sload\n        /* \"contracts/BasicToken.sol\":537:543  _value */\n      dup5\n      swap3\n        /* \"contracts/BasicToken.sol\":513:533  balances[msg.sender] */\n      swap1\n        /* \"contracts/BasicToken.sol\":513:543  balances[msg.sender] -= _value */\n      tag_26\n      swap1\n        /* \"contracts/BasicToken.sol\":537:543  _value */\n      dup5\n      swap1\n        /* \"contracts/BasicToken.sol\":513:543  balances[msg.sender] -= _value */\n      tag_27\n      jump\t// in\n    tag_26:\n      swap1\n      swap2\n      sstore\n      pop\n      pop\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/BasicToken.sol\":565:578  balances[_to] */\n      dup4\n      and\n      0x00\n      swap1\n      dup2\n      mstore\n        /* \"contracts/BasicToken.sol\":565:573  balances */\n      0x01\n        /* \"contracts/BasicToken.sol\":565:578  balances[_to] */\n      0x20\n      mstore\n      0x40\n      swap1\n      keccak256\n      sload\n        /* \"contracts/BasicToken.sol\":565:587  balances[_to] + _value */\n      tag_28\n      swap1\n        /* \"contracts/BasicToken.sol\":581:587  _value */\n      dup4\n      swap1\n        /* \"contracts/BasicToken.sol\":565:587  balances[_to] + _value */\n      tag_29\n      jump\t// in\n    tag_28:\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"contracts/BasicToken.sol\":549:562  balances[_to] */\n      dup5\n      and\n      0x00\n      swap1\n      dup2\n      mstore\n        /* \"contracts/BasicToken.sol\":549:557  balances */\n      0x01\n        /* \"contracts/BasicToken.sol\":549:562  balances[_to] */\n      0x20\n      dup2\n      swap1\n      mstore\n      0x40\n      swap1\n      swap2\n      keccak256\n        /* \"contracts/BasicToken.sol\":549:587  balances[_to] = balances[_to] + _value */\n      swap2\n      swap1\n      swap2\n      sstore\n        /* \"contracts/BasicToken.sol\":549:557  balances */\n      swap1\n      pop\n        /* \"contracts/BasicToken.sol\":361:609  function transfer(address _to, uint256 _value) public returns (bool) {... */\n      swap3\n      swap2\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":14:187   */\n    tag_31:\n        /* \"#utility.yul\":82:102   */\n      dup1\n      calldataload\n      sub(shl(0xa0, 0x01), 0x01)\n        /* \"#utility.yul\":131:162   */\n      dup2\n      and\n        /* \"#utility.yul\":121:163   */\n      dup2\n      eq\n        /* \"#utility.yul\":111:181   */\n      tag_33\n      jumpi\n        /* \"#utility.yul\":177:178   */\n      0x00\n        /* \"#utility.yul\":174:175   */\n      dup1\n        /* \"#utility.yul\":167:179   */\n      revert\n        /* \"#utility.yul\":111:181   */\n    tag_33:\n        /* \"#utility.yul\":14:187   */\n      swap2\n      swap1\n      pop\n      jump\t// out\n        /* \"#utility.yul\":192:378   */\n    tag_12:\n        /* \"#utility.yul\":251:257   */\n      0x00\n        /* \"#utility.yul\":304:306   */\n      0x20\n        /* \"#utility.yul\":292:301   */\n      dup3\n        /* \"#utility.yul\":283:290   */\n      dup5\n        /* \"#utility.yul\":279:302   */\n      sub\n        /* \"#utility.yul\":275:307   */\n      slt\n        /* \"#utility.yul\":272:324   */\n      iszero\n      tag_35\n      jumpi\n        /* \"#utility.yul\":320:321   */\n      0x00\n        /* \"#utility.yul\":317:318   */\n      dup1\n        /* \"#utility.yul\":310:322   */\n      revert\n        /* \"#utility.yul\":272:324   */\n    tag_35:\n        /* \"#utility.yul\":343:372   */\n      tag_36\n        /* \"#utility.yul\":362:371   */\n      dup3\n        /* \"#utility.yul\":343:372   */\n      tag_31\n      jump\t// in\n    tag_36:\n        /* \"#utility.yul\":333:372   */\n      swap4\n        /* \"#utility.yul\":192:378   */\n      swap3\n      pop\n      pop\n      pop\n      jump\t// out\n        /* \"#utility.yul\":383:637   */\n    tag_17:\n        /* \"#utility.yul\":451:457   */\n      0x00\n        /* \"#utility.yul\":459:465   */\n      dup1\n        /* \"#utility.yul\":512:514   */\n      0x40\n        /* \"#utility.yul\":500:509   */\n      dup4\n        /* \"#utility.yul\":491:498   */\n      dup6\n        /* \"#utility.yul\":487:510   */\n      sub\n        /* \"#utility.yul\":483:515   */\n      slt\n        /* \"#utility.yul\":480:532   */\n      iszero\n      tag_38\n      jumpi\n        /* \"#utility.yul\":528:529   */\n      0x00\n        /* \"#utility.yul\":525:526   */\n      dup1\n        /* \"#utility.yul\":518:530   */\n      revert\n        /* \"#utility.yul\":480:532   */\n    tag_38:\n        /* \"#utility.yul\":551:580   */\n      tag_39\n        /* \"#utility.yul\":570:579   */\n      dup4\n        /* \"#utility.yul\":551:580   */\n      tag_31\n      jump\t// in\n    tag_39:\n        /* \"#utility.yul\":541:580   */\n      swap5\n        /* \"#utility.yul\":627:629   */\n      0x20\n        /* \"#utility.yul\":612:630   */\n      swap4\n      swap1\n      swap4\n      add\n        /* \"#utility.yul\":599:631   */\n      calldataload\n      swap4\n      pop\n      pop\n      pop\n        /* \"#utility.yul\":383:637   */\n      jump\t// out\n        /* \"#utility.yul\":1016:1144   */\n    tag_29:\n        /* \"#utility.yul\":1056:1059   */\n      0x00\n        /* \"#utility.yul\":1087:1088   */\n      dup3\n        /* \"#utility.yul\":1083:1089   */\n      not\n        /* \"#utility.yul\":1080:1081   */\n      dup3\n        /* \"#utility.yul\":1077:1090   */\n      gt\n        /* \"#utility.yul\":1074:1113   */\n      iszero\n      tag_44\n      jumpi\n        /* \"#utility.yul\":1093:1111   */\n      tag_44\n      tag_45\n      jump\t// in\n    tag_44:\n      pop\n        /* \"#utility.yul\":1129:1138   */\n      add\n      swap1\n        /* \"#utility.yul\":1016:1144   */\n      jump\t// out\n        /* \"#utility.yul\":1149:1274   */\n    tag_27:\n        /* \"#utility.yul\":1189:1193   */\n      0x00\n        /* \"#utility.yul\":1217:1218   */\n      dup3\n        /* \"#utility.yul\":1214:1215   */\n      dup3\n        /* \"#utility.yul\":1211:1219   */\n      lt\n        /* \"#utility.yul\":1208:1242   */\n      iszero\n      tag_48\n      jumpi\n        /* \"#utility.yul\":1222:1240   */\n      tag_48\n      tag_45\n      jump\t// in\n    tag_48:\n      pop\n        /* \"#utility.yul\":1259:1268   */\n      sub\n      swap1\n        /* \"#utility.yul\":1149:1274   */\n      jump\t// out\n        /* \"#utility.yul\":1279:1406   */\n    tag_45:\n        /* \"#utility.yul\":1340:1350   */\n      0x4e487b71\n        /* \"#utility.yul\":1335:1338   */\n      0xe0\n        /* \"#utility.yul\":1331:1351   */\n      shl\n        /* \"#utility.yul\":1328:1329   */\n      0x00\n        /* \"#utility.yul\":1321:1352   */\n      mstore\n        /* \"#utility.yul\":1371:1375   */\n      0x11\n        /* \"#utility.yul\":1368:1369   */\n      0x04\n        /* \"#utility.yul\":1361:1376   */\n      mstore\n        /* \"#utility.yul\":1395:1399   */\n      0x24\n        /* \"#utility.yul\":1392:1393   */\n      0x00\n        /* \"#utility.yul\":1385:1400   */\n      revert\n\n    auxdata: 0xa2646970667358221220f83b07a1e5759d972a89a15a45b57ced92fb0b97d04453932b807d65e10c67cf64736f6c63430008070033\n}\n",
						"bytecode": {
							"functionDebugData": {
								"@_24": {
									"entryPoint": null,
									"id": 24,
									"parameterSlots": 1,
									"returnSlots": 0
								},
								"abi_decode_tuple_t_uint256_fromMemory": {
									"entryPoint": 70,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								}
							},
							"generatedSources": [
								{
									"ast": {
										"nodeType": "YulBlock",
										"src": "0:200:1",
										"statements": [
											{
												"nodeType": "YulBlock",
												"src": "6:3:1",
												"statements": []
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "95:103:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "141:16:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "150:1:1",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "153:1:1",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "143:6:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "143:12:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "143:12:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "116:7:1"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "125:9:1"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "112:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "112:23:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "137:2:1",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "108:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "108:32:1"
															},
															"nodeType": "YulIf",
															"src": "105:52:1"
														},
														{
															"nodeType": "YulAssignment",
															"src": "166:26:1",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "182:9:1"
																	}
																],
																"functionName": {
																	"name": "mload",
																	"nodeType": "YulIdentifier",
																	"src": "176:5:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "176:16:1"
															},
															"variableNames": [
																{
																	"name": "value0",
																	"nodeType": "YulIdentifier",
																	"src": "166:6:1"
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_uint256_fromMemory",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "61:9:1",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "72:7:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "84:6:1",
														"type": ""
													}
												],
												"src": "14:184:1"
											}
										]
									},
									"contents": "{\n    { }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n}",
									"id": 1,
									"language": "Yul",
									"name": "#utility.yul"
								}
							],
							"linkReferences": {},
							"object": "608060405234801561001057600080fd5b5060405161029a38038061029a83398101604081905261002f91610046565b60008181553381526001602052604090205561005f565b60006020828403121561005857600080fd5b5051919050565b61022c8061006e6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806318160ddd1461004657806370a082311461005d578063a9059cbb14610086575b600080fd5b6000545b6040519081526020015b60405180910390f35b61004a61006b366004610165565b6001600160a01b031660009081526001602052604090205490565b610099610094366004610187565b6100a9565b6040519015158152602001610054565b60006001600160a01b0383166100be57600080fd5b336000908152600160205260409020548211156100da57600080fd5b33600090815260016020526040812080548492906100f99084906101c9565b90915550506001600160a01b0383166000908152600160205260409020546101229083906101b1565b6001600160a01b038416600090815260016020819052604090912091909155905092915050565b80356001600160a01b038116811461016057600080fd5b919050565b60006020828403121561017757600080fd5b61018082610149565b9392505050565b6000806040838503121561019a57600080fd5b6101a383610149565b946020939093013593505050565b600082198211156101c4576101c46101e0565b500190565b6000828210156101db576101db6101e0565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220f83b07a1e5759d972a89a15a45b57ced92fb0b97d04453932b807d65e10c67cf64736f6c63430008070033",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x29A CODESIZE SUB DUP1 PUSH2 0x29A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x46 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SSTORE CALLER DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SSTORE PUSH2 0x5F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22C DUP1 PUSH2 0x6E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18160DDD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x5D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x86 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4A PUSH2 0x6B CALLDATASIZE PUSH1 0x4 PUSH2 0x165 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x99 PUSH2 0x94 CALLDATASIZE PUSH1 0x4 PUSH2 0x187 JUMP JUMPDEST PUSH2 0xA9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xF9 SWAP1 DUP5 SWAP1 PUSH2 0x1C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x122 SWAP1 DUP4 SWAP1 PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x180 DUP3 PUSH2 0x149 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3 DUP4 PUSH2 0x149 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1C4 JUMPI PUSH2 0x1C4 PUSH2 0x1E0 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1DB JUMPI PUSH2 0x1DB PUSH2 0x1E0 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 EXTCODESIZE SMOD LOG1 0xE5 PUSH22 0x9D972A89A15A45B57CED92FB0B97D04453932B807D65 0xE1 0xC PUSH8 0xCF64736F6C634300 ADDMOD SMOD STOP CALLER ",
							"sourceMap": "57:657:0:-:0;;;151:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;193:12;:29;;;237:10;228:20;;:8;:20;;;;;:37;57:657;;14:184:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:1;;14:184;-1:-1:-1;14:184:1:o;:::-;57:657:0;;;;;;"
						},
						"deployedBytecode": {
							"functionDebugData": {
								"@balanceOf_91": {
									"entryPoint": null,
									"id": 91,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"@totalSupply_32": {
									"entryPoint": null,
									"id": 32,
									"parameterSlots": 0,
									"returnSlots": 1
								},
								"@transfer_79": {
									"entryPoint": 169,
									"id": 79,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_decode_address": {
									"entryPoint": 329,
									"id": null,
									"parameterSlots": 1,
									"returnSlots": 1
								},
								"abi_decode_tuple_t_address": {
									"entryPoint": 357,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_decode_tuple_t_addresst_uint256": {
									"entryPoint": 391,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 2
								},
								"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
									"entryPoint": null,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"checked_add_t_uint256": {
									"entryPoint": 433,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"checked_sub_t_uint256": {
									"entryPoint": 457,
									"id": null,
									"parameterSlots": 2,
									"returnSlots": 1
								},
								"panic_error_0x11": {
									"entryPoint": 480,
									"id": null,
									"parameterSlots": 0,
									"returnSlots": 0
								}
							},
							"generatedSources": [
								{
									"ast": {
										"nodeType": "YulBlock",
										"src": "0:1408:1",
										"statements": [
											{
												"nodeType": "YulBlock",
												"src": "6:3:1",
												"statements": []
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "63:124:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "73:29:1",
															"value": {
																"arguments": [
																	{
																		"name": "offset",
																		"nodeType": "YulIdentifier",
																		"src": "95:6:1"
																	}
																],
																"functionName": {
																	"name": "calldataload",
																	"nodeType": "YulIdentifier",
																	"src": "82:12:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "82:20:1"
															},
															"variableNames": [
																{
																	"name": "value",
																	"nodeType": "YulIdentifier",
																	"src": "73:5:1"
																}
															]
														},
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "165:16:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "174:1:1",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "177:1:1",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "167:6:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "167:12:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "167:12:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "value",
																				"nodeType": "YulIdentifier",
																				"src": "124:5:1"
																			},
																			{
																				"arguments": [
																					{
																						"name": "value",
																						"nodeType": "YulIdentifier",
																						"src": "135:5:1"
																					},
																					{
																						"arguments": [
																							{
																								"arguments": [
																									{
																										"kind": "number",
																										"nodeType": "YulLiteral",
																										"src": "150:3:1",
																										"type": "",
																										"value": "160"
																									},
																									{
																										"kind": "number",
																										"nodeType": "YulLiteral",
																										"src": "155:1:1",
																										"type": "",
																										"value": "1"
																									}
																								],
																								"functionName": {
																									"name": "shl",
																									"nodeType": "YulIdentifier",
																									"src": "146:3:1"
																								},
																								"nodeType": "YulFunctionCall",
																								"src": "146:11:1"
																							},
																							{
																								"kind": "number",
																								"nodeType": "YulLiteral",
																								"src": "159:1:1",
																								"type": "",
																								"value": "1"
																							}
																						],
																						"functionName": {
																							"name": "sub",
																							"nodeType": "YulIdentifier",
																							"src": "142:3:1"
																						},
																						"nodeType": "YulFunctionCall",
																						"src": "142:19:1"
																					}
																				],
																				"functionName": {
																					"name": "and",
																					"nodeType": "YulIdentifier",
																					"src": "131:3:1"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "131:31:1"
																			}
																		],
																		"functionName": {
																			"name": "eq",
																			"nodeType": "YulIdentifier",
																			"src": "121:2:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "121:42:1"
																	}
																],
																"functionName": {
																	"name": "iszero",
																	"nodeType": "YulIdentifier",
																	"src": "114:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "114:50:1"
															},
															"nodeType": "YulIf",
															"src": "111:70:1"
														}
													]
												},
												"name": "abi_decode_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "offset",
														"nodeType": "YulTypedName",
														"src": "42:6:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value",
														"nodeType": "YulTypedName",
														"src": "53:5:1",
														"type": ""
													}
												],
												"src": "14:173:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "262:116:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "308:16:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "317:1:1",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "320:1:1",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "310:6:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "310:12:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "310:12:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "283:7:1"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "292:9:1"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "279:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "279:23:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "304:2:1",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "275:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "275:32:1"
															},
															"nodeType": "YulIf",
															"src": "272:52:1"
														},
														{
															"nodeType": "YulAssignment",
															"src": "333:39:1",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "362:9:1"
																	}
																],
																"functionName": {
																	"name": "abi_decode_address",
																	"nodeType": "YulIdentifier",
																	"src": "343:18:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "343:29:1"
															},
															"variableNames": [
																{
																	"name": "value0",
																	"nodeType": "YulIdentifier",
																	"src": "333:6:1"
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_address",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "228:9:1",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "239:7:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "251:6:1",
														"type": ""
													}
												],
												"src": "192:186:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "470:167:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "516:16:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "525:1:1",
																					"type": "",
																					"value": "0"
																				},
																				{
																					"kind": "number",
																					"nodeType": "YulLiteral",
																					"src": "528:1:1",
																					"type": "",
																					"value": "0"
																				}
																			],
																			"functionName": {
																				"name": "revert",
																				"nodeType": "YulIdentifier",
																				"src": "518:6:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "518:12:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "518:12:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "dataEnd",
																				"nodeType": "YulIdentifier",
																				"src": "491:7:1"
																			},
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "500:9:1"
																			}
																		],
																		"functionName": {
																			"name": "sub",
																			"nodeType": "YulIdentifier",
																			"src": "487:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "487:23:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "512:2:1",
																		"type": "",
																		"value": "64"
																	}
																],
																"functionName": {
																	"name": "slt",
																	"nodeType": "YulIdentifier",
																	"src": "483:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "483:32:1"
															},
															"nodeType": "YulIf",
															"src": "480:52:1"
														},
														{
															"nodeType": "YulAssignment",
															"src": "541:39:1",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "570:9:1"
																	}
																],
																"functionName": {
																	"name": "abi_decode_address",
																	"nodeType": "YulIdentifier",
																	"src": "551:18:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "551:29:1"
															},
															"variableNames": [
																{
																	"name": "value0",
																	"nodeType": "YulIdentifier",
																	"src": "541:6:1"
																}
															]
														},
														{
															"nodeType": "YulAssignment",
															"src": "589:42:1",
															"value": {
																"arguments": [
																	{
																		"arguments": [
																			{
																				"name": "headStart",
																				"nodeType": "YulIdentifier",
																				"src": "616:9:1"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "627:2:1",
																				"type": "",
																				"value": "32"
																			}
																		],
																		"functionName": {
																			"name": "add",
																			"nodeType": "YulIdentifier",
																			"src": "612:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "612:18:1"
																	}
																],
																"functionName": {
																	"name": "calldataload",
																	"nodeType": "YulIdentifier",
																	"src": "599:12:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "599:32:1"
															},
															"variableNames": [
																{
																	"name": "value1",
																	"nodeType": "YulIdentifier",
																	"src": "589:6:1"
																}
															]
														}
													]
												},
												"name": "abi_decode_tuple_t_addresst_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "428:9:1",
														"type": ""
													},
													{
														"name": "dataEnd",
														"nodeType": "YulTypedName",
														"src": "439:7:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "451:6:1",
														"type": ""
													},
													{
														"name": "value1",
														"nodeType": "YulTypedName",
														"src": "459:6:1",
														"type": ""
													}
												],
												"src": "383:254:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "737:92:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "747:26:1",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "759:9:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "770:2:1",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "755:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "755:18:1"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "747:4:1"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "789:9:1"
																	},
																	{
																		"arguments": [
																			{
																				"arguments": [
																					{
																						"name": "value0",
																						"nodeType": "YulIdentifier",
																						"src": "814:6:1"
																					}
																				],
																				"functionName": {
																					"name": "iszero",
																					"nodeType": "YulIdentifier",
																					"src": "807:6:1"
																				},
																				"nodeType": "YulFunctionCall",
																				"src": "807:14:1"
																			}
																		],
																		"functionName": {
																			"name": "iszero",
																			"nodeType": "YulIdentifier",
																			"src": "800:6:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "800:22:1"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "782:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "782:41:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "782:41:1"
														}
													]
												},
												"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "706:9:1",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "717:6:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "728:4:1",
														"type": ""
													}
												],
												"src": "642:187:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "935:76:1",
													"statements": [
														{
															"nodeType": "YulAssignment",
															"src": "945:26:1",
															"value": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "957:9:1"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "968:2:1",
																		"type": "",
																		"value": "32"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "953:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "953:18:1"
															},
															"variableNames": [
																{
																	"name": "tail",
																	"nodeType": "YulIdentifier",
																	"src": "945:4:1"
																}
															]
														},
														{
															"expression": {
																"arguments": [
																	{
																		"name": "headStart",
																		"nodeType": "YulIdentifier",
																		"src": "987:9:1"
																	},
																	{
																		"name": "value0",
																		"nodeType": "YulIdentifier",
																		"src": "998:6:1"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "980:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "980:25:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "980:25:1"
														}
													]
												},
												"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "headStart",
														"nodeType": "YulTypedName",
														"src": "904:9:1",
														"type": ""
													},
													{
														"name": "value0",
														"nodeType": "YulTypedName",
														"src": "915:6:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "tail",
														"nodeType": "YulTypedName",
														"src": "926:4:1",
														"type": ""
													}
												],
												"src": "834:177:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1064:80:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "1091:22:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "panic_error_0x11",
																				"nodeType": "YulIdentifier",
																				"src": "1093:16:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "1093:18:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "1093:18:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "1080:1:1"
																	},
																	{
																		"arguments": [
																			{
																				"name": "y",
																				"nodeType": "YulIdentifier",
																				"src": "1087:1:1"
																			}
																		],
																		"functionName": {
																			"name": "not",
																			"nodeType": "YulIdentifier",
																			"src": "1083:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1083:6:1"
																	}
																],
																"functionName": {
																	"name": "gt",
																	"nodeType": "YulIdentifier",
																	"src": "1077:2:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1077:13:1"
															},
															"nodeType": "YulIf",
															"src": "1074:39:1"
														},
														{
															"nodeType": "YulAssignment",
															"src": "1122:16:1",
															"value": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "1133:1:1"
																	},
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "1136:1:1"
																	}
																],
																"functionName": {
																	"name": "add",
																	"nodeType": "YulIdentifier",
																	"src": "1129:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1129:9:1"
															},
															"variableNames": [
																{
																	"name": "sum",
																	"nodeType": "YulIdentifier",
																	"src": "1122:3:1"
																}
															]
														}
													]
												},
												"name": "checked_add_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "x",
														"nodeType": "YulTypedName",
														"src": "1047:1:1",
														"type": ""
													},
													{
														"name": "y",
														"nodeType": "YulTypedName",
														"src": "1050:1:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "sum",
														"nodeType": "YulTypedName",
														"src": "1056:3:1",
														"type": ""
													}
												],
												"src": "1016:128:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1198:76:1",
													"statements": [
														{
															"body": {
																"nodeType": "YulBlock",
																"src": "1220:22:1",
																"statements": [
																	{
																		"expression": {
																			"arguments": [],
																			"functionName": {
																				"name": "panic_error_0x11",
																				"nodeType": "YulIdentifier",
																				"src": "1222:16:1"
																			},
																			"nodeType": "YulFunctionCall",
																			"src": "1222:18:1"
																		},
																		"nodeType": "YulExpressionStatement",
																		"src": "1222:18:1"
																	}
																]
															},
															"condition": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "1214:1:1"
																	},
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "1217:1:1"
																	}
																],
																"functionName": {
																	"name": "lt",
																	"nodeType": "YulIdentifier",
																	"src": "1211:2:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1211:8:1"
															},
															"nodeType": "YulIf",
															"src": "1208:34:1"
														},
														{
															"nodeType": "YulAssignment",
															"src": "1251:17:1",
															"value": {
																"arguments": [
																	{
																		"name": "x",
																		"nodeType": "YulIdentifier",
																		"src": "1263:1:1"
																	},
																	{
																		"name": "y",
																		"nodeType": "YulIdentifier",
																		"src": "1266:1:1"
																	}
																],
																"functionName": {
																	"name": "sub",
																	"nodeType": "YulIdentifier",
																	"src": "1259:3:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1259:9:1"
															},
															"variableNames": [
																{
																	"name": "diff",
																	"nodeType": "YulIdentifier",
																	"src": "1251:4:1"
																}
															]
														}
													]
												},
												"name": "checked_sub_t_uint256",
												"nodeType": "YulFunctionDefinition",
												"parameters": [
													{
														"name": "x",
														"nodeType": "YulTypedName",
														"src": "1180:1:1",
														"type": ""
													},
													{
														"name": "y",
														"nodeType": "YulTypedName",
														"src": "1183:1:1",
														"type": ""
													}
												],
												"returnVariables": [
													{
														"name": "diff",
														"nodeType": "YulTypedName",
														"src": "1189:4:1",
														"type": ""
													}
												],
												"src": "1149:125:1"
											},
											{
												"body": {
													"nodeType": "YulBlock",
													"src": "1311:95:1",
													"statements": [
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1328:1:1",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"arguments": [
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "1335:3:1",
																				"type": "",
																				"value": "224"
																			},
																			{
																				"kind": "number",
																				"nodeType": "YulLiteral",
																				"src": "1340:10:1",
																				"type": "",
																				"value": "0x4e487b71"
																			}
																		],
																		"functionName": {
																			"name": "shl",
																			"nodeType": "YulIdentifier",
																			"src": "1331:3:1"
																		},
																		"nodeType": "YulFunctionCall",
																		"src": "1331:20:1"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "1321:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1321:31:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "1321:31:1"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1368:1:1",
																		"type": "",
																		"value": "4"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1371:4:1",
																		"type": "",
																		"value": "0x11"
																	}
																],
																"functionName": {
																	"name": "mstore",
																	"nodeType": "YulIdentifier",
																	"src": "1361:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1361:15:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "1361:15:1"
														},
														{
															"expression": {
																"arguments": [
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1392:1:1",
																		"type": "",
																		"value": "0"
																	},
																	{
																		"kind": "number",
																		"nodeType": "YulLiteral",
																		"src": "1395:4:1",
																		"type": "",
																		"value": "0x24"
																	}
																],
																"functionName": {
																	"name": "revert",
																	"nodeType": "YulIdentifier",
																	"src": "1385:6:1"
																},
																"nodeType": "YulFunctionCall",
																"src": "1385:15:1"
															},
															"nodeType": "YulExpressionStatement",
															"src": "1385:15:1"
														}
													]
												},
												"name": "panic_error_0x11",
												"nodeType": "YulFunctionDefinition",
												"src": "1279:127:1"
											}
										]
									},
									"contents": "{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        if gt(x, not(y)) { panic_error_0x11() }\n        sum := add(x, y)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n}",
									"id": 1,
									"language": "Yul",
									"name": "#utility.yul"
								}
							],
							"immutableReferences": {},
							"linkReferences": {},
							"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806318160ddd1461004657806370a082311461005d578063a9059cbb14610086575b600080fd5b6000545b6040519081526020015b60405180910390f35b61004a61006b366004610165565b6001600160a01b031660009081526001602052604090205490565b610099610094366004610187565b6100a9565b6040519015158152602001610054565b60006001600160a01b0383166100be57600080fd5b336000908152600160205260409020548211156100da57600080fd5b33600090815260016020526040812080548492906100f99084906101c9565b90915550506001600160a01b0383166000908152600160205260409020546101229083906101b1565b6001600160a01b038416600090815260016020819052604090912091909155905092915050565b80356001600160a01b038116811461016057600080fd5b919050565b60006020828403121561017757600080fd5b61018082610149565b9392505050565b6000806040838503121561019a57600080fd5b6101a383610149565b946020939093013593505050565b600082198211156101c4576101c46101e0565b500190565b6000828210156101db576101db6101e0565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220f83b07a1e5759d972a89a15a45b57ced92fb0b97d04453932b807d65e10c67cf64736f6c63430008070033",
							"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x18160DDD EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x5D JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x86 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4A PUSH2 0x6B CALLDATASIZE PUSH1 0x4 PUSH2 0x165 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x99 PUSH2 0x94 CALLDATASIZE PUSH1 0x4 PUSH2 0x187 JUMP JUMPDEST PUSH2 0xA9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0xF9 SWAP1 DUP5 SWAP1 PUSH2 0x1C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x122 SWAP1 DUP4 SWAP1 PUSH2 0x1B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x180 DUP3 PUSH2 0x149 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3 DUP4 PUSH2 0x149 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1C4 JUMPI PUSH2 0x1C4 PUSH2 0x1E0 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1DB JUMPI PUSH2 0x1DB PUSH2 0x1E0 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF8 EXTCODESIZE SMOD LOG1 0xE5 PUSH22 0x9D972A89A15A45B57CED92FB0B97D04453932B807D65 0xE1 0xC PUSH8 0xCF64736F6C634300 ADDMOD SMOD STOP CALLER ",
							"sourceMap": "57:657:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;274:83;318:7;340:12;274:83;;;980:25:1;;;968:2;953:18;274:83:0;;;;;;;;613:99;;;;;;:::i;:::-;-1:-1:-1;;;;;691:16:0;669:7;691:16;;;:8;:16;;;;;;;613:99;361:248;;;;;;:::i;:::-;;:::i;:::-;;;807:14:1;;800:22;782:41;;770:2;755:18;361:248:0;642:187:1;361:248:0;424:4;-1:-1:-1;;;;;444:17:0;;436:26;;;;;;495:10;486:20;;;;:8;:20;;;;;;476:30;;;468:39;;;;;;522:10;513:20;;;;:8;:20;;;;;:30;;537:6;;513:20;:30;;537:6;;513:30;:::i;:::-;;;;-1:-1:-1;;;;;;;565:13:0;;;;;;:8;:13;;;;;;:22;;581:6;;565:22;:::i;:::-;-1:-1:-1;;;;;549:13:0;;;;;;:8;:13;;;;;;;;:38;;;;:8;-1:-1:-1;361:248:0;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;383:254::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;627:2;612:18;;;;599:32;;-1:-1:-1;;;383:254:1:o;1016:128::-;1056:3;1087:1;1083:6;1080:1;1077:13;1074:39;;;1093:18;;:::i;:::-;-1:-1:-1;1129:9:1;;1016:128::o;1149:125::-;1189:4;1217:1;1214;1211:8;1208:34;;;1222:18;;:::i;:::-;-1:-1:-1;1259:9:1;;1149:125::o;1279:127::-;1340:10;1335:3;1331:20;1328:1;1321:31;1371:4;1368:1;1361:15;1395:4;1392:1;1385:15"
						},
						"gasEstimates": {
							"creation": {
								"codeDepositCost": "111200",
								"executionCost": "infinite",
								"totalCost": "infinite"
							},
							"external": {
								"balanceOf(address)": "2526",
								"totalSupply()": "2248",
								"transfer(address,uint256)": "51489"
							}
						},
						"legacyAssembly": {
							".code": [
								{
									"begin": 57,
									"end": 714,
									"name": "PUSH",
									"source": 0,
									"value": "80"
								},
								{
									"begin": 57,
									"end": 714,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 57,
									"end": 714,
									"name": "MSTORE",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "CALLVALUE",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "ISZERO",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "1"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "JUMPI",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "REVERT",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "tag",
									"source": 0,
									"value": "1"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "JUMPDEST",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "POP",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "MLOAD",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "PUSHSIZE",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "CODESIZE",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "SUB",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "PUSHSIZE",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "DUP4",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "CODECOPY",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "ADD",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "MSTORE",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "2"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "SWAP2",
									"source": 0
								},
								{
									"begin": 151,
									"end": 270,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "3"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "JUMP",
									"source": 0,
									"value": "[in]"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "tag",
									"source": 0,
									"value": "2"
								},
								{
									"begin": 151,
									"end": 270,
									"name": "JUMPDEST",
									"source": 0
								},
								{
									"begin": 193,
									"end": 205,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 193,
									"end": 222,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 193,
									"end": 222,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 193,
									"end": 222,
									"name": "SSTORE",
									"source": 0
								},
								{
									"begin": 237,
									"end": 247,
									"name": "CALLER",
									"source": 0
								},
								{
									"begin": 228,
									"end": 248,
									"name": "DUP2",
									"source": 0
								},
								{
									"begin": 228,
									"end": 248,
									"name": "MSTORE",
									"source": 0
								},
								{
									"begin": 228,
									"end": 236,
									"name": "PUSH",
									"source": 0,
									"value": "1"
								},
								{
									"begin": 228,
									"end": 248,
									"name": "PUSH",
									"source": 0,
									"value": "20"
								},
								{
									"begin": 228,
									"end": 248,
									"name": "MSTORE",
									"source": 0
								},
								{
									"begin": 228,
									"end": 248,
									"name": "PUSH",
									"source": 0,
									"value": "40"
								},
								{
									"begin": 228,
									"end": 248,
									"name": "SWAP1",
									"source": 0
								},
								{
									"begin": 228,
									"end": 248,
									"name": "KECCAK256",
									"source": 0
								},
								{
									"begin": 228,
									"end": 265,
									"name": "SSTORE",
									"source": 0
								},
								{
									"begin": 57,
									"end": 714,
									"name": "PUSH [tag]",
									"source": 0,
									"value": "7"
								},
								{
									"begin": 57,
									"end": 714,
									"name": "JUMP",
									"source": 0
								},
								{
									"begin": 14,
									"end": 198,
									"name": "tag",
									"source": 1,
									"value": "3"
								},
								{
									"begin": 14,
									"end": 198,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 84,
									"end": 90,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 137,
									"end": 139,
									"name": "PUSH",
									"source": 1,
									"value": "20"
								},
								{
									"begin": 125,
									"end": 134,
									"name": "DUP3",
									"source": 1
								},
								{
									"begin": 116,
									"end": 123,
									"name": "DUP5",
									"source": 1
								},
								{
									"begin": 112,
									"end": 135,
									"name": "SUB",
									"source": 1
								},
								{
									"begin": 108,
									"end": 140,
									"name": "SLT",
									"source": 1
								},
								{
									"begin": 105,
									"end": 157,
									"name": "ISZERO",
									"source": 1
								},
								{
									"begin": 105,
									"end": 157,
									"name": "PUSH [tag]",
									"source": 1,
									"value": "9"
								},
								{
									"begin": 105,
									"end": 157,
									"name": "JUMPI",
									"source": 1
								},
								{
									"begin": 153,
									"end": 154,
									"name": "PUSH",
									"source": 1,
									"value": "0"
								},
								{
									"begin": 150,
									"end": 151,
									"name": "DUP1",
									"source": 1
								},
								{
									"begin": 143,
									"end": 155,
									"name": "REVERT",
									"source": 1
								},
								{
									"begin": 105,
									"end": 157,
									"name": "tag",
									"source": 1,
									"value": "9"
								},
								{
									"begin": 105,
									"end": 157,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 176,
									"end": 192,
									"name": "MLOAD",
									"source": 1
								},
								{
									"begin": 176,
									"end": 192,
									"name": "SWAP2",
									"source": 1
								},
								{
									"begin": 14,
									"end": 198,
									"name": "SWAP1",
									"source": 1
								},
								{
									"begin": -1,
									"end": -1,
									"name": "POP",
									"source": -1
								},
								{
									"begin": 14,
									"end": 198,
									"name": "JUMP",
									"source": 1,
									"value": "[out]"
								},
								{
									"begin": 14,
									"end": 198,
									"name": "tag",
									"source": 1,
									"value": "7"
								},
								{
									"begin": 14,
									"end": 198,
									"name": "JUMPDEST",
									"source": 1
								},
								{
									"begin": 57,
									"end": 714,
									"name": "PUSH #[$]",
									"source": 0,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 57,
									"end": 714,
									"name": "DUP1",
									"source": 0
								},
								{
									"begin": 57,
									"end": 714,
									"name": "PUSH [$]",
									"source": 0,
									"value": "0000000000000000000000000000000000000000000000000000000000000000"
								},
								{
									"begin": 57,
									"end": 714,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 57,
									"end": 714,
									"name": "CODECOPY",
									"source": 0
								},
								{
									"begin": 57,
									"end": 714,
									"name": "PUSH",
									"source": 0,
									"value": "0"
								},
								{
									"begin": 57,
									"end": 714,
									"name": "RETURN",
									"source": 0
								}
							],
							".data": {
								"0": {
									".auxdata": "a2646970667358221220f83b07a1e5759d972a89a15a45b57ced92fb0b97d04453932b807d65e10c67cf64736f6c63430008070033",
									".code": [
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "80"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "CALLVALUE",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "ISZERO",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "REVERT",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "tag",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "CALLDATASIZE",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "LT",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "2"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "CALLDATALOAD",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "E0"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "SHR",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "18160DDD"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "EQ",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "3"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "70A08231"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "EQ",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "A9059CBB"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "EQ",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "5"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "tag",
											"source": 0,
											"value": "2"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 57,
											"end": 714,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 57,
											"end": 714,
											"name": "REVERT",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "tag",
											"source": 0,
											"value": "3"
										},
										{
											"begin": 274,
											"end": 357,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 318,
											"end": 325,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 340,
											"end": 352,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "tag",
											"source": 0,
											"value": "6"
										},
										{
											"begin": 274,
											"end": 357,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 274,
											"end": 357,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 980,
											"end": 1005,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 980,
											"end": 1005,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 980,
											"end": 1005,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 968,
											"end": 970,
											"name": "PUSH",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 953,
											"end": 971,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 274,
											"end": 357,
											"name": "tag",
											"source": 0,
											"value": "8"
										},
										{
											"begin": 274,
											"end": 357,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 274,
											"end": 357,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "SUB",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 274,
											"end": 357,
											"name": "RETURN",
											"source": 0
										},
										{
											"begin": 613,
											"end": 712,
											"name": "tag",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 613,
											"end": 712,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 613,
											"end": 712,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "6"
										},
										{
											"begin": 613,
											"end": 712,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "11"
										},
										{
											"begin": 613,
											"end": 712,
											"name": "CALLDATASIZE",
											"source": 0
										},
										{
											"begin": 613,
											"end": 712,
											"name": "PUSH",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 613,
											"end": 712,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "12"
										},
										{
											"begin": 613,
											"end": 712,
											"name": "JUMP",
											"source": 0,
											"value": "[in]"
										},
										{
											"begin": 613,
											"end": 712,
											"name": "tag",
											"source": 0,
											"value": "11"
										},
										{
											"begin": 613,
											"end": 712,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 691,
											"end": 707,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 669,
											"end": 676,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 691,
											"end": 707,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 691,
											"end": 707,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 691,
											"end": 707,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 691,
											"end": 699,
											"name": "PUSH",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 691,
											"end": 707,
											"name": "PUSH",
											"source": 0,
											"value": "20"
										},
										{
											"begin": 691,
											"end": 707,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 691,
											"end": 707,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 691,
											"end": 707,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 691,
											"end": 707,
											"name": "KECCAK256",
											"source": 0
										},
										{
											"begin": 691,
											"end": 707,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 691,
											"end": 707,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 613,
											"end": 712,
											"name": "JUMP",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "tag",
											"source": 0,
											"value": "5"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "15"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "16"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "CALLDATASIZE",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "PUSH",
											"source": 0,
											"value": "4"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "17"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "JUMP",
											"source": 0,
											"value": "[in]"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "tag",
											"source": 0,
											"value": "16"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "18"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "JUMP",
											"source": 0,
											"value": "[in]"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "tag",
											"source": 0,
											"value": "15"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "MLOAD",
											"source": 0
										},
										{
											"begin": 807,
											"end": 821,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 807,
											"end": 821,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 800,
											"end": 822,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 782,
											"end": 823,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 782,
											"end": 823,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 770,
											"end": 772,
											"name": "PUSH",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 755,
											"end": 773,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 361,
											"end": 609,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "8"
										},
										{
											"begin": 642,
											"end": 829,
											"name": "JUMP",
											"source": 1
										},
										{
											"begin": 361,
											"end": 609,
											"name": "tag",
											"source": 0,
											"value": "18"
										},
										{
											"begin": 361,
											"end": 609,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 424,
											"end": 428,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 444,
											"end": 461,
											"name": "DUP4",
											"source": 0
										},
										{
											"begin": 444,
											"end": 461,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 436,
											"end": 462,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "24"
										},
										{
											"begin": 436,
											"end": 462,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 436,
											"end": 462,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 436,
											"end": 462,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 436,
											"end": 462,
											"name": "REVERT",
											"source": 0
										},
										{
											"begin": 436,
											"end": 462,
											"name": "tag",
											"source": 0,
											"value": "24"
										},
										{
											"begin": 436,
											"end": 462,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 495,
											"end": 505,
											"name": "CALLER",
											"source": 0
										},
										{
											"begin": 486,
											"end": 506,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 486,
											"end": 506,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 486,
											"end": 506,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 486,
											"end": 506,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 486,
											"end": 494,
											"name": "PUSH",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 486,
											"end": 506,
											"name": "PUSH",
											"source": 0,
											"value": "20"
										},
										{
											"begin": 486,
											"end": 506,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 486,
											"end": 506,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 486,
											"end": 506,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 486,
											"end": 506,
											"name": "KECCAK256",
											"source": 0
										},
										{
											"begin": 486,
											"end": 506,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 476,
											"end": 506,
											"name": "DUP3",
											"source": 0
										},
										{
											"begin": 476,
											"end": 506,
											"name": "GT",
											"source": 0
										},
										{
											"begin": 476,
											"end": 506,
											"name": "ISZERO",
											"source": 0
										},
										{
											"begin": 468,
											"end": 507,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "25"
										},
										{
											"begin": 468,
											"end": 507,
											"name": "JUMPI",
											"source": 0
										},
										{
											"begin": 468,
											"end": 507,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 468,
											"end": 507,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 468,
											"end": 507,
											"name": "REVERT",
											"source": 0
										},
										{
											"begin": 468,
											"end": 507,
											"name": "tag",
											"source": 0,
											"value": "25"
										},
										{
											"begin": 468,
											"end": 507,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 522,
											"end": 532,
											"name": "CALLER",
											"source": 0
										},
										{
											"begin": 513,
											"end": 533,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 513,
											"end": 533,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 513,
											"end": 533,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 513,
											"end": 533,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 513,
											"end": 521,
											"name": "PUSH",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 513,
											"end": 533,
											"name": "PUSH",
											"source": 0,
											"value": "20"
										},
										{
											"begin": 513,
											"end": 533,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 513,
											"end": 533,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 513,
											"end": 533,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 513,
											"end": 533,
											"name": "KECCAK256",
											"source": 0
										},
										{
											"begin": 513,
											"end": 543,
											"name": "DUP1",
											"source": 0
										},
										{
											"begin": 513,
											"end": 543,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 537,
											"end": 543,
											"name": "DUP5",
											"source": 0
										},
										{
											"begin": 537,
											"end": 543,
											"name": "SWAP3",
											"source": 0
										},
										{
											"begin": 513,
											"end": 533,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 513,
											"end": 543,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "26"
										},
										{
											"begin": 513,
											"end": 543,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 537,
											"end": 543,
											"name": "DUP5",
											"source": 0
										},
										{
											"begin": 537,
											"end": 543,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 513,
											"end": 543,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "27"
										},
										{
											"begin": 513,
											"end": 543,
											"name": "JUMP",
											"source": 0,
											"value": "[in]"
										},
										{
											"begin": 513,
											"end": 543,
											"name": "tag",
											"source": 0,
											"value": "26"
										},
										{
											"begin": 513,
											"end": 543,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": 513,
											"end": 543,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 513,
											"end": 543,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 513,
											"end": 543,
											"name": "SSTORE",
											"source": 0
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 565,
											"end": 578,
											"name": "DUP4",
											"source": 0
										},
										{
											"begin": 565,
											"end": 578,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 565,
											"end": 578,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 565,
											"end": 578,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 565,
											"end": 578,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 565,
											"end": 578,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 565,
											"end": 573,
											"name": "PUSH",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 565,
											"end": 578,
											"name": "PUSH",
											"source": 0,
											"value": "20"
										},
										{
											"begin": 565,
											"end": 578,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 565,
											"end": 578,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 565,
											"end": 578,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 565,
											"end": 578,
											"name": "KECCAK256",
											"source": 0
										},
										{
											"begin": 565,
											"end": 578,
											"name": "SLOAD",
											"source": 0
										},
										{
											"begin": 565,
											"end": 587,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "28"
										},
										{
											"begin": 565,
											"end": 587,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 581,
											"end": 587,
											"name": "DUP4",
											"source": 0
										},
										{
											"begin": 581,
											"end": 587,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 565,
											"end": 587,
											"name": "PUSH [tag]",
											"source": 0,
											"value": "29"
										},
										{
											"begin": 565,
											"end": 587,
											"name": "JUMP",
											"source": 0,
											"value": "[in]"
										},
										{
											"begin": 565,
											"end": 587,
											"name": "tag",
											"source": 0,
											"value": "28"
										},
										{
											"begin": 565,
											"end": 587,
											"name": "JUMPDEST",
											"source": 0
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 549,
											"end": 562,
											"name": "DUP5",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "AND",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "PUSH",
											"source": 0,
											"value": "0"
										},
										{
											"begin": 549,
											"end": 562,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 549,
											"end": 557,
											"name": "PUSH",
											"source": 0,
											"value": "1"
										},
										{
											"begin": 549,
											"end": 562,
											"name": "PUSH",
											"source": 0,
											"value": "20"
										},
										{
											"begin": 549,
											"end": 562,
											"name": "DUP2",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "MSTORE",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "PUSH",
											"source": 0,
											"value": "40"
										},
										{
											"begin": 549,
											"end": 562,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 549,
											"end": 562,
											"name": "KECCAK256",
											"source": 0
										},
										{
											"begin": 549,
											"end": 587,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 549,
											"end": 587,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": 549,
											"end": 587,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 549,
											"end": 587,
											"name": "SSTORE",
											"source": 0
										},
										{
											"begin": 549,
											"end": 557,
											"name": "SWAP1",
											"source": 0
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 361,
											"end": 609,
											"name": "SWAP3",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "SWAP2",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "POP",
											"source": 0
										},
										{
											"begin": 361,
											"end": 609,
											"name": "JUMP",
											"source": 0,
											"value": "[out]"
										},
										{
											"begin": 14,
											"end": 187,
											"name": "tag",
											"source": 1,
											"value": "31"
										},
										{
											"begin": 14,
											"end": 187,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 82,
											"end": 102,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 82,
											"end": 102,
											"name": "CALLDATALOAD",
											"source": 1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "1"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "PUSH",
											"source": -1,
											"value": "A0"
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SHL",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "SUB",
											"source": -1
										},
										{
											"begin": 131,
											"end": 162,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 131,
											"end": 162,
											"name": "AND",
											"source": 1
										},
										{
											"begin": 121,
											"end": 163,
											"name": "DUP2",
											"source": 1
										},
										{
											"begin": 121,
											"end": 163,
											"name": "EQ",
											"source": 1
										},
										{
											"begin": 111,
											"end": 181,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "33"
										},
										{
											"begin": 111,
											"end": 181,
											"name": "JUMPI",
											"source": 1
										},
										{
											"begin": 177,
											"end": 178,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 174,
											"end": 175,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 167,
											"end": 179,
											"name": "REVERT",
											"source": 1
										},
										{
											"begin": 111,
											"end": 181,
											"name": "tag",
											"source": 1,
											"value": "33"
										},
										{
											"begin": 111,
											"end": 181,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 14,
											"end": 187,
											"name": "SWAP2",
											"source": 1
										},
										{
											"begin": 14,
											"end": 187,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 14,
											"end": 187,
											"name": "POP",
											"source": 1
										},
										{
											"begin": 14,
											"end": 187,
											"name": "JUMP",
											"source": 1,
											"value": "[out]"
										},
										{
											"begin": 192,
											"end": 378,
											"name": "tag",
											"source": 1,
											"value": "12"
										},
										{
											"begin": 192,
											"end": 378,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 251,
											"end": 257,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 304,
											"end": 306,
											"name": "PUSH",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 292,
											"end": 301,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 283,
											"end": 290,
											"name": "DUP5",
											"source": 1
										},
										{
											"begin": 279,
											"end": 302,
											"name": "SUB",
											"source": 1
										},
										{
											"begin": 275,
											"end": 307,
											"name": "SLT",
											"source": 1
										},
										{
											"begin": 272,
											"end": 324,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 272,
											"end": 324,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "35"
										},
										{
											"begin": 272,
											"end": 324,
											"name": "JUMPI",
											"source": 1
										},
										{
											"begin": 320,
											"end": 321,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 317,
											"end": 318,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 310,
											"end": 322,
											"name": "REVERT",
											"source": 1
										},
										{
											"begin": 272,
											"end": 324,
											"name": "tag",
											"source": 1,
											"value": "35"
										},
										{
											"begin": 272,
											"end": 324,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 343,
											"end": 372,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "36"
										},
										{
											"begin": 362,
											"end": 371,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 343,
											"end": 372,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "31"
										},
										{
											"begin": 343,
											"end": 372,
											"name": "JUMP",
											"source": 1,
											"value": "[in]"
										},
										{
											"begin": 343,
											"end": 372,
											"name": "tag",
											"source": 1,
											"value": "36"
										},
										{
											"begin": 343,
											"end": 372,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 333,
											"end": 372,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": 192,
											"end": 378,
											"name": "SWAP3",
											"source": 1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 192,
											"end": 378,
											"name": "JUMP",
											"source": 1,
											"value": "[out]"
										},
										{
											"begin": 383,
											"end": 637,
											"name": "tag",
											"source": 1,
											"value": "17"
										},
										{
											"begin": 383,
											"end": 637,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 451,
											"end": 457,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 459,
											"end": 465,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 512,
											"end": 514,
											"name": "PUSH",
											"source": 1,
											"value": "40"
										},
										{
											"begin": 500,
											"end": 509,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 491,
											"end": 498,
											"name": "DUP6",
											"source": 1
										},
										{
											"begin": 487,
											"end": 510,
											"name": "SUB",
											"source": 1
										},
										{
											"begin": 483,
											"end": 515,
											"name": "SLT",
											"source": 1
										},
										{
											"begin": 480,
											"end": 532,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 480,
											"end": 532,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "38"
										},
										{
											"begin": 480,
											"end": 532,
											"name": "JUMPI",
											"source": 1
										},
										{
											"begin": 528,
											"end": 529,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 525,
											"end": 526,
											"name": "DUP1",
											"source": 1
										},
										{
											"begin": 518,
											"end": 530,
											"name": "REVERT",
											"source": 1
										},
										{
											"begin": 480,
											"end": 532,
											"name": "tag",
											"source": 1,
											"value": "38"
										},
										{
											"begin": 480,
											"end": 532,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 551,
											"end": 580,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "39"
										},
										{
											"begin": 570,
											"end": 579,
											"name": "DUP4",
											"source": 1
										},
										{
											"begin": 551,
											"end": 580,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "31"
										},
										{
											"begin": 551,
											"end": 580,
											"name": "JUMP",
											"source": 1,
											"value": "[in]"
										},
										{
											"begin": 551,
											"end": 580,
											"name": "tag",
											"source": 1,
											"value": "39"
										},
										{
											"begin": 551,
											"end": 580,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 541,
											"end": 580,
											"name": "SWAP5",
											"source": 1
										},
										{
											"begin": 627,
											"end": 629,
											"name": "PUSH",
											"source": 1,
											"value": "20"
										},
										{
											"begin": 612,
											"end": 630,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": 612,
											"end": 630,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 612,
											"end": 630,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": 612,
											"end": 630,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 599,
											"end": 631,
											"name": "CALLDATALOAD",
											"source": 1
										},
										{
											"begin": 599,
											"end": 631,
											"name": "SWAP4",
											"source": 1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 383,
											"end": 637,
											"name": "JUMP",
											"source": 1,
											"value": "[out]"
										},
										{
											"begin": 1016,
											"end": 1144,
											"name": "tag",
											"source": 1,
											"value": "29"
										},
										{
											"begin": 1016,
											"end": 1144,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1056,
											"end": 1059,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 1087,
											"end": 1088,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 1083,
											"end": 1089,
											"name": "NOT",
											"source": 1
										},
										{
											"begin": 1080,
											"end": 1081,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 1077,
											"end": 1090,
											"name": "GT",
											"source": 1
										},
										{
											"begin": 1074,
											"end": 1113,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 1074,
											"end": 1113,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "44"
										},
										{
											"begin": 1074,
											"end": 1113,
											"name": "JUMPI",
											"source": 1
										},
										{
											"begin": 1093,
											"end": 1111,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "44"
										},
										{
											"begin": 1093,
											"end": 1111,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "45"
										},
										{
											"begin": 1093,
											"end": 1111,
											"name": "JUMP",
											"source": 1,
											"value": "[in]"
										},
										{
											"begin": 1093,
											"end": 1111,
											"name": "tag",
											"source": 1,
											"value": "44"
										},
										{
											"begin": 1093,
											"end": 1111,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 1129,
											"end": 1138,
											"name": "ADD",
											"source": 1
										},
										{
											"begin": 1129,
											"end": 1138,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 1016,
											"end": 1144,
											"name": "JUMP",
											"source": 1,
											"value": "[out]"
										},
										{
											"begin": 1149,
											"end": 1274,
											"name": "tag",
											"source": 1,
											"value": "27"
										},
										{
											"begin": 1149,
											"end": 1274,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1189,
											"end": 1193,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 1217,
											"end": 1218,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 1214,
											"end": 1215,
											"name": "DUP3",
											"source": 1
										},
										{
											"begin": 1211,
											"end": 1219,
											"name": "LT",
											"source": 1
										},
										{
											"begin": 1208,
											"end": 1242,
											"name": "ISZERO",
											"source": 1
										},
										{
											"begin": 1208,
											"end": 1242,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "48"
										},
										{
											"begin": 1208,
											"end": 1242,
											"name": "JUMPI",
											"source": 1
										},
										{
											"begin": 1222,
											"end": 1240,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "48"
										},
										{
											"begin": 1222,
											"end": 1240,
											"name": "PUSH [tag]",
											"source": 1,
											"value": "45"
										},
										{
											"begin": 1222,
											"end": 1240,
											"name": "JUMP",
											"source": 1,
											"value": "[in]"
										},
										{
											"begin": 1222,
											"end": 1240,
											"name": "tag",
											"source": 1,
											"value": "48"
										},
										{
											"begin": 1222,
											"end": 1240,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": -1,
											"end": -1,
											"name": "POP",
											"source": -1
										},
										{
											"begin": 1259,
											"end": 1268,
											"name": "SUB",
											"source": 1
										},
										{
											"begin": 1259,
											"end": 1268,
											"name": "SWAP1",
											"source": 1
										},
										{
											"begin": 1149,
											"end": 1274,
											"name": "JUMP",
											"source": 1,
											"value": "[out]"
										},
										{
											"begin": 1279,
											"end": 1406,
											"name": "tag",
											"source": 1,
											"value": "45"
										},
										{
											"begin": 1279,
											"end": 1406,
											"name": "JUMPDEST",
											"source": 1
										},
										{
											"begin": 1340,
											"end": 1350,
											"name": "PUSH",
											"source": 1,
											"value": "4E487B71"
										},
										{
											"begin": 1335,
											"end": 1338,
											"name": "PUSH",
											"source": 1,
											"value": "E0"
										},
										{
											"begin": 1331,
											"end": 1351,
											"name": "SHL",
											"source": 1
										},
										{
											"begin": 1328,
											"end": 1329,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 1321,
											"end": 1352,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 1371,
											"end": 1375,
											"name": "PUSH",
											"source": 1,
											"value": "11"
										},
										{
											"begin": 1368,
											"end": 1369,
											"name": "PUSH",
											"source": 1,
											"value": "4"
										},
										{
											"begin": 1361,
											"end": 1376,
											"name": "MSTORE",
											"source": 1
										},
										{
											"begin": 1395,
											"end": 1399,
											"name": "PUSH",
											"source": 1,
											"value": "24"
										},
										{
											"begin": 1392,
											"end": 1393,
											"name": "PUSH",
											"source": 1,
											"value": "0"
										},
										{
											"begin": 1385,
											"end": 1400,
											"name": "REVERT",
											"source": 1
										}
									]
								}
							}
						},
						"methodIdentifiers": {
							"balanceOf(address)": "70a08231",
							"totalSupply()": "18160ddd",
							"transfer(address,uint256)": "a9059cbb"
						}
					},
					"metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BasicToken.sol\":\"BasicToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/BasicToken.sol\":{\"keccak256\":\"0x326f80dec7ebd559d4f5290d1f28fb490db1f6b4ec8a4b192df0bfd53704cba3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aaa263521db784267098d30ae851f7482f136ba77e0cba96d1e0f8422a56c2d\",\"dweb:/ipfs/QmPgVc5749UUTViF96BQaACrpuZPAbAFxvWqt8dU6vxK3U\"]}},\"version\":1}",
					"storageLayout": {
						"storage": [
							{
								"astId": 3,
								"contract": "contracts/BasicToken.sol:BasicToken",
								"label": "totalSupply_",
								"offset": 0,
								"slot": "0",
								"type": "t_uint256"
							},
							{
								"astId": 7,
								"contract": "contracts/BasicToken.sol:BasicToken",
								"label": "balances",
								"offset": 0,
								"slot": "1",
								"type": "t_mapping(t_address,t_uint256)"
							}
						],
						"types": {
							"t_address": {
								"encoding": "inplace",
								"label": "address",
								"numberOfBytes": "20"
							},
							"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"
							}
						}
					},
					"userdoc": {
						"kind": "user",
						"methods": {},
						"version": 1
					}
				}
			}
		},
		"sources": {
			"contracts/BasicToken.sol": {
				"ast": {
					"absolutePath": "contracts/BasicToken.sol",
					"exportedSymbols": {
						"BasicToken": [
							92
						]
					},
					"id": 93,
					"license": "MIT",
					"nodeType": "SourceUnit",
					"nodes": [
						{
							"id": 1,
							"literals": [
								"solidity",
								"^",
								"0.8",
								".4"
							],
							"nodeType": "PragmaDirective",
							"src": "32:23:0"
						},
						{
							"abstract": false,
							"baseContracts": [],
							"contractDependencies": [],
							"contractKind": "contract",
							"fullyImplemented": true,
							"id": 92,
							"linearizedBaseContracts": [
								92
							],
							"name": "BasicToken",
							"nameLocation": "66:10:0",
							"nodeType": "ContractDefinition",
							"nodes": [
								{
									"constant": false,
									"id": 3,
									"mutability": "mutable",
									"name": "totalSupply_",
									"nameLocation": "92:12:0",
									"nodeType": "VariableDeclaration",
									"scope": 92,
									"src": "84:20:0",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_uint256",
										"typeString": "uint256"
									},
									"typeName": {
										"id": 2,
										"name": "uint256",
										"nodeType": "ElementaryTypeName",
										"src": "84:7:0",
										"typeDescriptions": {
											"typeIdentifier": "t_uint256",
											"typeString": "uint256"
										}
									},
									"visibility": "internal"
								},
								{
									"constant": false,
									"id": 7,
									"mutability": "mutable",
									"name": "balances",
									"nameLocation": "136:8:0",
									"nodeType": "VariableDeclaration",
									"scope": 92,
									"src": "108:36:0",
									"stateVariable": true,
									"storageLocation": "default",
									"typeDescriptions": {
										"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
										"typeString": "mapping(address => uint256)"
									},
									"typeName": {
										"id": 6,
										"keyType": {
											"id": 4,
											"name": "address",
											"nodeType": "ElementaryTypeName",
											"src": "116:7:0",
											"typeDescriptions": {
												"typeIdentifier": "t_address",
												"typeString": "address"
											}
										},
										"nodeType": "Mapping",
										"src": "108:27:0",
										"typeDescriptions": {
											"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
											"typeString": "mapping(address => uint256)"
										},
										"valueType": {
											"id": 5,
											"name": "uint256",
											"nodeType": "ElementaryTypeName",
											"src": "127:7:0",
											"typeDescriptions": {
												"typeIdentifier": "t_uint256",
												"typeString": "uint256"
											}
										}
									},
									"visibility": "internal"
								},
								{
									"body": {
										"id": 23,
										"nodeType": "Block",
										"src": "187:83:0",
										"statements": [
											{
												"expression": {
													"id": 14,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"id": 12,
														"name": "totalSupply_",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 3,
														"src": "193:12:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 13,
														"name": "_initialSupply",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9,
														"src": "208:14:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "193:29:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 15,
												"nodeType": "ExpressionStatement",
												"src": "193:29:0"
											},
											{
												"expression": {
													"id": 21,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 16,
															"name": "balances",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 7,
															"src": "228:8:0",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																"typeString": "mapping(address => uint256)"
															}
														},
														"id": 19,
														"indexExpression": {
															"expression": {
																"id": 17,
																"name": "msg",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967281,
																"src": "237:3:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_message",
																	"typeString": "msg"
																}
															},
															"id": 18,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "sender",
															"nodeType": "MemberAccess",
															"src": "237:10:0",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "228:20:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"id": 20,
														"name": "_initialSupply",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 9,
														"src": "251:14:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "228:37:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 22,
												"nodeType": "ExpressionStatement",
												"src": "228:37:0"
											}
										]
									},
									"id": 24,
									"implemented": true,
									"kind": "constructor",
									"modifiers": [],
									"name": "",
									"nameLocation": "-1:-1:-1",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 10,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 9,
												"mutability": "mutable",
												"name": "_initialSupply",
												"nameLocation": "171:14:0",
												"nodeType": "VariableDeclaration",
												"scope": 24,
												"src": "163:22:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 8,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "163:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "162:24:0"
									},
									"returnParameters": {
										"id": 11,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "187:0:0"
									},
									"scope": 92,
									"src": "151:119:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 31,
										"nodeType": "Block",
										"src": "327:30:0",
										"statements": [
											{
												"expression": {
													"id": 29,
													"name": "totalSupply_",
													"nodeType": "Identifier",
													"overloadedDeclarations": [],
													"referencedDeclaration": 3,
													"src": "340:12:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 28,
												"id": 30,
												"nodeType": "Return",
												"src": "333:19:0"
											}
										]
									},
									"functionSelector": "18160ddd",
									"id": 32,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "totalSupply",
									"nameLocation": "283:11:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 25,
										"nodeType": "ParameterList",
										"parameters": [],
										"src": "294:2:0"
									},
									"returnParameters": {
										"id": 28,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 27,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 32,
												"src": "318:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 26,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "318:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "317:9:0"
									},
									"scope": 92,
									"src": "274:83:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 78,
										"nodeType": "Block",
										"src": "430:179:0",
										"statements": [
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															},
															"id": 47,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 42,
																"name": "_to",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 34,
																"src": "444:3:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "!=",
															"rightExpression": {
																"arguments": [
																	{
																		"hexValue": "30",
																		"id": 45,
																		"isConstant": false,
																		"isLValue": false,
																		"isPure": true,
																		"kind": "number",
																		"lValueRequested": false,
																		"nodeType": "Literal",
																		"src": "459:1:0",
																		"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": 44,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": true,
																	"lValueRequested": false,
																	"nodeType": "ElementaryTypeNameExpression",
																	"src": "451:7:0",
																	"typeDescriptions": {
																		"typeIdentifier": "t_type$_t_address_$",
																		"typeString": "type(address)"
																	},
																	"typeName": {
																		"id": 43,
																		"name": "address",
																		"nodeType": "ElementaryTypeName",
																		"src": "451:7:0",
																		"typeDescriptions": {}
																	}
																},
																"id": 46,
																"isConstant": false,
																"isLValue": false,
																"isPure": true,
																"kind": "typeConversion",
																"lValueRequested": false,
																"names": [],
																"nodeType": "FunctionCall",
																"src": "451:10:0",
																"tryCall": false,
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"src": "444:17:0",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														],
														"id": 41,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "436:7:0",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
															"typeString": "function (bool) pure"
														}
													},
													"id": 48,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "436:26:0",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 49,
												"nodeType": "ExpressionStatement",
												"src": "436:26:0"
											},
											{
												"expression": {
													"arguments": [
														{
															"commonType": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															},
															"id": 56,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"leftExpression": {
																"id": 51,
																"name": "_value",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 36,
																"src": "476:6:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"nodeType": "BinaryOperation",
															"operator": "<=",
															"rightExpression": {
																"baseExpression": {
																	"id": 52,
																	"name": "balances",
																	"nodeType": "Identifier",
																	"overloadedDeclarations": [],
																	"referencedDeclaration": 7,
																	"src": "486:8:0",
																	"typeDescriptions": {
																		"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																		"typeString": "mapping(address => uint256)"
																	}
																},
																"id": 55,
																"indexExpression": {
																	"expression": {
																		"id": 53,
																		"name": "msg",
																		"nodeType": "Identifier",
																		"overloadedDeclarations": [],
																		"referencedDeclaration": 4294967281,
																		"src": "495:3:0",
																		"typeDescriptions": {
																			"typeIdentifier": "t_magic_message",
																			"typeString": "msg"
																		}
																	},
																	"id": 54,
																	"isConstant": false,
																	"isLValue": false,
																	"isPure": false,
																	"lValueRequested": false,
																	"memberName": "sender",
																	"nodeType": "MemberAccess",
																	"src": "495:10:0",
																	"typeDescriptions": {
																		"typeIdentifier": "t_address",
																		"typeString": "address"
																	}
																},
																"isConstant": false,
																"isLValue": true,
																"isPure": false,
																"lValueRequested": false,
																"nodeType": "IndexAccess",
																"src": "486:20:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_uint256",
																	"typeString": "uint256"
																}
															},
															"src": "476:30:0",
															"typeDescriptions": {
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														}
													],
													"expression": {
														"argumentTypes": [
															{
																"typeIdentifier": "t_bool",
																"typeString": "bool"
															}
														],
														"id": 50,
														"name": "require",
														"nodeType": "Identifier",
														"overloadedDeclarations": [
															4294967278,
															4294967278
														],
														"referencedDeclaration": 4294967278,
														"src": "468:7:0",
														"typeDescriptions": {
															"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
															"typeString": "function (bool) pure"
														}
													},
													"id": 57,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"kind": "functionCall",
													"lValueRequested": false,
													"names": [],
													"nodeType": "FunctionCall",
													"src": "468:39:0",
													"tryCall": false,
													"typeDescriptions": {
														"typeIdentifier": "t_tuple$__$",
														"typeString": "tuple()"
													}
												},
												"id": 58,
												"nodeType": "ExpressionStatement",
												"src": "468:39:0"
											},
											{
												"expression": {
													"id": 64,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 59,
															"name": "balances",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 7,
															"src": "513:8:0",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																"typeString": "mapping(address => uint256)"
															}
														},
														"id": 62,
														"indexExpression": {
															"expression": {
																"id": 60,
																"name": "msg",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 4294967281,
																"src": "522:3:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_magic_message",
																	"typeString": "msg"
																}
															},
															"id": 61,
															"isConstant": false,
															"isLValue": false,
															"isPure": false,
															"lValueRequested": false,
															"memberName": "sender",
															"nodeType": "MemberAccess",
															"src": "522:10:0",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "513:20:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "-=",
													"rightHandSide": {
														"id": 63,
														"name": "_value",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 36,
														"src": "537:6:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "513:30:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 65,
												"nodeType": "ExpressionStatement",
												"src": "513:30:0"
											},
											{
												"expression": {
													"id": 74,
													"isConstant": false,
													"isLValue": false,
													"isPure": false,
													"lValueRequested": false,
													"leftHandSide": {
														"baseExpression": {
															"id": 66,
															"name": "balances",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 7,
															"src": "549:8:0",
															"typeDescriptions": {
																"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																"typeString": "mapping(address => uint256)"
															}
														},
														"id": 68,
														"indexExpression": {
															"id": 67,
															"name": "_to",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 34,
															"src": "558:3:0",
															"typeDescriptions": {
																"typeIdentifier": "t_address",
																"typeString": "address"
															}
														},
														"isConstant": false,
														"isLValue": true,
														"isPure": false,
														"lValueRequested": true,
														"nodeType": "IndexAccess",
														"src": "549:13:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"nodeType": "Assignment",
													"operator": "=",
													"rightHandSide": {
														"commonType": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														},
														"id": 73,
														"isConstant": false,
														"isLValue": false,
														"isPure": false,
														"lValueRequested": false,
														"leftExpression": {
															"baseExpression": {
																"id": 69,
																"name": "balances",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 7,
																"src": "565:8:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
																	"typeString": "mapping(address => uint256)"
																}
															},
															"id": 71,
															"indexExpression": {
																"id": 70,
																"name": "_to",
																"nodeType": "Identifier",
																"overloadedDeclarations": [],
																"referencedDeclaration": 34,
																"src": "574:3:0",
																"typeDescriptions": {
																	"typeIdentifier": "t_address",
																	"typeString": "address"
																}
															},
															"isConstant": false,
															"isLValue": true,
															"isPure": false,
															"lValueRequested": false,
															"nodeType": "IndexAccess",
															"src": "565:13:0",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"nodeType": "BinaryOperation",
														"operator": "+",
														"rightExpression": {
															"id": 72,
															"name": "_value",
															"nodeType": "Identifier",
															"overloadedDeclarations": [],
															"referencedDeclaration": 36,
															"src": "581:6:0",
															"typeDescriptions": {
																"typeIdentifier": "t_uint256",
																"typeString": "uint256"
															}
														},
														"src": "565:22:0",
														"typeDescriptions": {
															"typeIdentifier": "t_uint256",
															"typeString": "uint256"
														}
													},
													"src": "549:38:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"id": 75,
												"nodeType": "ExpressionStatement",
												"src": "549:38:0"
											},
											{
												"expression": {
													"hexValue": "74727565",
													"id": 76,
													"isConstant": false,
													"isLValue": false,
													"isPure": true,
													"kind": "bool",
													"lValueRequested": false,
													"nodeType": "Literal",
													"src": "600:4:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													},
													"value": "true"
												},
												"functionReturnParameters": 40,
												"id": 77,
												"nodeType": "Return",
												"src": "593:11:0"
											}
										]
									},
									"functionSelector": "a9059cbb",
									"id": 79,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "transfer",
									"nameLocation": "370:8:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 37,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 34,
												"mutability": "mutable",
												"name": "_to",
												"nameLocation": "387:3:0",
												"nodeType": "VariableDeclaration",
												"scope": 79,
												"src": "379:11:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 33,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "379:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											},
											{
												"constant": false,
												"id": 36,
												"mutability": "mutable",
												"name": "_value",
												"nameLocation": "400:6:0",
												"nodeType": "VariableDeclaration",
												"scope": 79,
												"src": "392:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 35,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "392:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "378:29:0"
									},
									"returnParameters": {
										"id": 40,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 39,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 79,
												"src": "424:4:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_bool",
													"typeString": "bool"
												},
												"typeName": {
													"id": 38,
													"name": "bool",
													"nodeType": "ElementaryTypeName",
													"src": "424:4:0",
													"typeDescriptions": {
														"typeIdentifier": "t_bool",
														"typeString": "bool"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "423:6:0"
									},
									"scope": 92,
									"src": "361:248:0",
									"stateMutability": "nonpayable",
									"virtual": false,
									"visibility": "public"
								},
								{
									"body": {
										"id": 90,
										"nodeType": "Block",
										"src": "678:34:0",
										"statements": [
											{
												"expression": {
													"baseExpression": {
														"id": 86,
														"name": "balances",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 7,
														"src": "691:8:0",
														"typeDescriptions": {
															"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
															"typeString": "mapping(address => uint256)"
														}
													},
													"id": 88,
													"indexExpression": {
														"id": 87,
														"name": "_owner",
														"nodeType": "Identifier",
														"overloadedDeclarations": [],
														"referencedDeclaration": 81,
														"src": "700:6:0",
														"typeDescriptions": {
															"typeIdentifier": "t_address",
															"typeString": "address"
														}
													},
													"isConstant": false,
													"isLValue": true,
													"isPure": false,
													"lValueRequested": false,
													"nodeType": "IndexAccess",
													"src": "691:16:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"functionReturnParameters": 85,
												"id": 89,
												"nodeType": "Return",
												"src": "684:23:0"
											}
										]
									},
									"functionSelector": "70a08231",
									"id": 91,
									"implemented": true,
									"kind": "function",
									"modifiers": [],
									"name": "balanceOf",
									"nameLocation": "622:9:0",
									"nodeType": "FunctionDefinition",
									"parameters": {
										"id": 82,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 81,
												"mutability": "mutable",
												"name": "_owner",
												"nameLocation": "640:6:0",
												"nodeType": "VariableDeclaration",
												"scope": 91,
												"src": "632:14:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_address",
													"typeString": "address"
												},
												"typeName": {
													"id": 80,
													"name": "address",
													"nodeType": "ElementaryTypeName",
													"src": "632:7:0",
													"stateMutability": "nonpayable",
													"typeDescriptions": {
														"typeIdentifier": "t_address",
														"typeString": "address"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "631:16:0"
									},
									"returnParameters": {
										"id": 85,
										"nodeType": "ParameterList",
										"parameters": [
											{
												"constant": false,
												"id": 84,
												"mutability": "mutable",
												"name": "",
												"nameLocation": "-1:-1:-1",
												"nodeType": "VariableDeclaration",
												"scope": 91,
												"src": "669:7:0",
												"stateVariable": false,
												"storageLocation": "default",
												"typeDescriptions": {
													"typeIdentifier": "t_uint256",
													"typeString": "uint256"
												},
												"typeName": {
													"id": 83,
													"name": "uint256",
													"nodeType": "ElementaryTypeName",
													"src": "669:7:0",
													"typeDescriptions": {
														"typeIdentifier": "t_uint256",
														"typeString": "uint256"
													}
												},
												"visibility": "internal"
											}
										],
										"src": "668:9:0"
									},
									"scope": 92,
									"src": "613:99:0",
									"stateMutability": "view",
									"virtual": false,
									"visibility": "public"
								}
							],
							"scope": 93,
							"src": "57:657:0",
							"usedErrors": []
						}
					],
					"src": "32:682:0"
				},
				"id": 0
			}
		}
	}
}