UNPKG

2.52 MBJSONView Raw
1{
2 "contracts": {
3 "contracts/UniswapV2ERC20.sol:UniswapV2ERC20": {
4 "abi": [
5 {
6 "inputs": [],
7 "payable": false,
8 "stateMutability": "nonpayable",
9 "type": "constructor"
10 },
11 {
12 "anonymous": false,
13 "inputs": [
14 {
15 "indexed": true,
16 "internalType": "address",
17 "name": "owner",
18 "type": "address"
19 },
20 {
21 "indexed": true,
22 "internalType": "address",
23 "name": "spender",
24 "type": "address"
25 },
26 {
27 "indexed": false,
28 "internalType": "uint256",
29 "name": "value",
30 "type": "uint256"
31 }
32 ],
33 "name": "Approval",
34 "type": "event"
35 },
36 {
37 "anonymous": false,
38 "inputs": [
39 {
40 "indexed": true,
41 "internalType": "address",
42 "name": "from",
43 "type": "address"
44 },
45 {
46 "indexed": true,
47 "internalType": "address",
48 "name": "to",
49 "type": "address"
50 },
51 {
52 "indexed": false,
53 "internalType": "uint256",
54 "name": "value",
55 "type": "uint256"
56 }
57 ],
58 "name": "Transfer",
59 "type": "event"
60 },
61 {
62 "constant": true,
63 "inputs": [],
64 "name": "DOMAIN_SEPARATOR",
65 "outputs": [
66 {
67 "internalType": "bytes32",
68 "name": "",
69 "type": "bytes32"
70 }
71 ],
72 "payable": false,
73 "stateMutability": "view",
74 "type": "function"
75 },
76 {
77 "constant": true,
78 "inputs": [],
79 "name": "PERMIT_TYPEHASH",
80 "outputs": [
81 {
82 "internalType": "bytes32",
83 "name": "",
84 "type": "bytes32"
85 }
86 ],
87 "payable": false,
88 "stateMutability": "view",
89 "type": "function"
90 },
91 {
92 "constant": true,
93 "inputs": [
94 {
95 "internalType": "address",
96 "name": "",
97 "type": "address"
98 },
99 {
100 "internalType": "address",
101 "name": "",
102 "type": "address"
103 }
104 ],
105 "name": "allowance",
106 "outputs": [
107 {
108 "internalType": "uint256",
109 "name": "",
110 "type": "uint256"
111 }
112 ],
113 "payable": false,
114 "stateMutability": "view",
115 "type": "function"
116 },
117 {
118 "constant": false,
119 "inputs": [
120 {
121 "internalType": "address",
122 "name": "spender",
123 "type": "address"
124 },
125 {
126 "internalType": "uint256",
127 "name": "value",
128 "type": "uint256"
129 }
130 ],
131 "name": "approve",
132 "outputs": [
133 {
134 "internalType": "bool",
135 "name": "",
136 "type": "bool"
137 }
138 ],
139 "payable": false,
140 "stateMutability": "nonpayable",
141 "type": "function"
142 },
143 {
144 "constant": true,
145 "inputs": [
146 {
147 "internalType": "address",
148 "name": "",
149 "type": "address"
150 }
151 ],
152 "name": "balanceOf",
153 "outputs": [
154 {
155 "internalType": "uint256",
156 "name": "",
157 "type": "uint256"
158 }
159 ],
160 "payable": false,
161 "stateMutability": "view",
162 "type": "function"
163 },
164 {
165 "constant": true,
166 "inputs": [],
167 "name": "decimals",
168 "outputs": [
169 {
170 "internalType": "uint8",
171 "name": "",
172 "type": "uint8"
173 }
174 ],
175 "payable": false,
176 "stateMutability": "view",
177 "type": "function"
178 },
179 {
180 "constant": true,
181 "inputs": [],
182 "name": "name",
183 "outputs": [
184 {
185 "internalType": "string",
186 "name": "",
187 "type": "string"
188 }
189 ],
190 "payable": false,
191 "stateMutability": "view",
192 "type": "function"
193 },
194 {
195 "constant": true,
196 "inputs": [
197 {
198 "internalType": "address",
199 "name": "",
200 "type": "address"
201 }
202 ],
203 "name": "nonces",
204 "outputs": [
205 {
206 "internalType": "uint256",
207 "name": "",
208 "type": "uint256"
209 }
210 ],
211 "payable": false,
212 "stateMutability": "view",
213 "type": "function"
214 },
215 {
216 "constant": false,
217 "inputs": [
218 {
219 "internalType": "address",
220 "name": "owner",
221 "type": "address"
222 },
223 {
224 "internalType": "address",
225 "name": "spender",
226 "type": "address"
227 },
228 {
229 "internalType": "uint256",
230 "name": "value",
231 "type": "uint256"
232 },
233 {
234 "internalType": "uint256",
235 "name": "deadline",
236 "type": "uint256"
237 },
238 {
239 "internalType": "uint8",
240 "name": "v",
241 "type": "uint8"
242 },
243 {
244 "internalType": "bytes32",
245 "name": "r",
246 "type": "bytes32"
247 },
248 {
249 "internalType": "bytes32",
250 "name": "s",
251 "type": "bytes32"
252 }
253 ],
254 "name": "permit",
255 "outputs": [],
256 "payable": false,
257 "stateMutability": "nonpayable",
258 "type": "function"
259 },
260 {
261 "constant": true,
262 "inputs": [],
263 "name": "symbol",
264 "outputs": [
265 {
266 "internalType": "string",
267 "name": "",
268 "type": "string"
269 }
270 ],
271 "payable": false,
272 "stateMutability": "view",
273 "type": "function"
274 },
275 {
276 "constant": true,
277 "inputs": [],
278 "name": "totalSupply",
279 "outputs": [
280 {
281 "internalType": "uint256",
282 "name": "",
283 "type": "uint256"
284 }
285 ],
286 "payable": false,
287 "stateMutability": "view",
288 "type": "function"
289 },
290 {
291 "constant": false,
292 "inputs": [
293 {
294 "internalType": "address",
295 "name": "to",
296 "type": "address"
297 },
298 {
299 "internalType": "uint256",
300 "name": "value",
301 "type": "uint256"
302 }
303 ],
304 "name": "transfer",
305 "outputs": [
306 {
307 "internalType": "bool",
308 "name": "",
309 "type": "bool"
310 }
311 ],
312 "payable": false,
313 "stateMutability": "nonpayable",
314 "type": "function"
315 },
316 {
317 "constant": false,
318 "inputs": [
319 {
320 "internalType": "address",
321 "name": "from",
322 "type": "address"
323 },
324 {
325 "internalType": "address",
326 "name": "to",
327 "type": "address"
328 },
329 {
330 "internalType": "uint256",
331 "name": "value",
332 "type": "uint256"
333 }
334 ],
335 "name": "transferFrom",
336 "outputs": [
337 {
338 "internalType": "bool",
339 "name": "",
340 "type": "bool"
341 }
342 ],
343 "payable": false,
344 "stateMutability": "nonpayable",
345 "type": "function"
346 }
347 ],
348 "evm": {
349 "bytecode": {
350 "linkReferences": {},
351 "object": "608060405234801561001057600080fd5b506040514690806052610b898239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550610a9b806100ee6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a723158200a1f25ac97b56edae6740781259ba188530a8a88577b2b41240f6dc34f0d6a4664736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
352 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0xB89 DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xA DUP4 MSTORE PUSH10 0x2AB734B9BBB0B8102B19 PUSH1 0xB1 SHL PUSH1 0x20 SWAP4 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xBFCC8EF98FFBF7B6C3FEC7BF5185B566B9863E35A9D83ACD49AD6824B5969738 DUP2 DUP4 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP5 ADD SWAP1 MSTORE DUP3 MLOAD SWAP3 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SSTORE POP PUSH2 0xA9B DUP1 PUSH2 0xEE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x340 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x26C JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x213 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x37B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x4B0 JUMP JUMPDEST PUSH2 0x21B PUSH2 0x4D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4DF JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4F1 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x503 JUMP JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x53C JUMP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x549 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x556E697377617020563200000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x832 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x49B JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x469 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x8A1 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x4A6 DUP5 DUP5 DUP5 PUSH2 0x913 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x554E492D56320000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x913 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x794 JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x7FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x80A DUP10 DUP10 DUP10 PUSH2 0x832 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x949 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x8A1 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x98B SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x9F4 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 EXP 0x1F 0x25 0xAC SWAP8 0xB5 PUSH15 0xDAE6740781259BA188530A8A88577B 0x2B COINBASE 0x24 0xF PUSH14 0xC34F0D6A4664736F6C6343000510 STOP ORIGIN GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ",
353 "sourceMap": "105:3329:0:-;;;919:444;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1102:95:0;;1006:7;;1102:95;;;;;;;;;;;;;;;;1231:4;;;;;;;;-1:-1:-1;;;1231:4:0;;;;;1265:10;;;;;;;;;;-1:-1:-1;;;1265:10:0;;;;1074:272;;;;;;;;;1215:22;1074:272;;;;1255:21;1074:272;;;;;;;;;;;1327:4;1074:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1074:272:0;;;;;;1051:305;;;;;;;;1032:16;:324;-1:-1:-1;105:3329:0;;;;;;"
354 },
355 "deployedBytecode": {
356 "linkReferences": {},
357 "object": "608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a723158200a1f25ac97b56edae6740781259ba188530a8a88577b2b41240f6dc34f0d6a4664736f6c63430005100032",
358 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x340 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x26C JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x213 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x37B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x4B0 JUMP JUMPDEST PUSH2 0x21B PUSH2 0x4D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4DF JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4F1 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x503 JUMP JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x53C JUMP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x549 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x556E697377617020563200000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x832 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x49B JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x469 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x8A1 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x4A6 DUP5 DUP5 DUP5 PUSH2 0x913 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x554E492D56320000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x913 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x794 JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x7FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x80A DUP10 DUP10 DUP10 PUSH2 0x832 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x949 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x8A1 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x98B SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x9F4 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 EXP 0x1F 0x25 0xAC SWAP8 0xB5 PUSH15 0xDAE6740781259BA188530A8A88577B 0x2B COINBASE 0x24 0xF PUSH14 0xC34F0D6A4664736F6C6343000510 STOP ORIGIN ",
359 "sourceMap": "105:3329:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;105:3329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;184:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2177:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2177:144:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;319:24;;;:::i;:::-;;;;;;;;;;;;;;;;2469:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2469:295:0;;;;;;;;;;;;;;;;;;:::i;605:108::-;;;:::i;278:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;464:31;;;:::i;349:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;349:41:0;;;;:::i;719:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;719:38:0;;;;:::i;232:40::-;;;:::i;2327:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2327:136:0;;;;;;;;;:::i;2770:662::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2770:662:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;396:61;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;396:61:0;;;;;;;;;;;:::i;184:42::-;;;;;;;;;;;;;;;;;;;:::o;2177:144::-;2241:4;2257:36;2266:10;2278:7;2287:5;2257:8;:36::i;:::-;-1:-1:-1;2310:4:0;2177:144;;;;;:::o;319:24::-;;;;:::o;2469:295::-;2567:15;;;2547:4;2567:15;;;:9;:15;;;;;;;;2583:10;2567:27;;;;;;;;2603:2;2567:39;2563:138;;2652:15;;;;;;;:9;:15;;;;;;;;2668:10;2652:27;;;;;;;;:38;;2684:5;2652:38;:31;:38;:::i;:::-;2622:15;;;;;;;:9;:15;;;;;;;;2638:10;2622:27;;;;;;;:68;2563:138;2710:26;2720:4;2726:2;2730:5;2710:9;:26::i;:::-;-1:-1:-1;2753:4:0;2469:295;;;;;:::o;605:108::-;647:66;605:108;:::o;278:35::-;311:2;278:35;:::o;464:31::-;;;;:::o;349:41::-;;;;;;;;;;;;;:::o;719:38::-;;;;;;;;;;;;;:::o;232:40::-;;;;;;;;;;;;;;;;;;;:::o;2327:136::-;2387:4;2403:32;2413:10;2425:2;2429:5;2403:9;:32::i;2770:662::-;2915:15;2903:8;:27;;2895:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:16;;3160:13;;;;2963:14;3160:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3109:77;;647:66;3109:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3109:77:0;;;;;3099:88;;;;;;3003:198;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3003:198:0;;;;;;2980:231;;;;;;;;;3248:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:14;;3160:15;3248:26;;;;;-1:-1:-1;3248:26:0;;;;;;;;;;3160:15;3248:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3248:26:0;;;;;;-1:-1:-1;;3292:30:0;;;;;;;:59;;;3346:5;3326:25;;:16;:25;;;3292:59;3284:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3394:31;3403:5;3410:7;3419:5;3394:8;:31::i;:::-;2770:662;;;;;;;;;:::o;396:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1783:166::-;1863:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1911:31;;;;;;;;;;;;;;;;;1783:166;;;:::o;287:127:9:-;370:5;;;365:16;;;;357:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1955:216:0;2048:15;;;;;;;:9;:15;;;;;;:26;;2068:5;2048:26;:19;:26;:::i;:::-;2030:15;;;;;;;;:9;:15;;;;;;:44;;;;2100:13;;;;;;;:24;;2118:5;2100:24;:17;:24;:::i;:::-;2084:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2139:25;;;;;;;2084:13;;2139:25;;;;;;;;;;;;;1955:216;;;:::o;155:126:9:-;238:5;;;233:16;;;;225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
360 }
361 },
362 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/UniswapV2ERC20.sol\":\"UniswapV2ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/UniswapV2ERC20.sol\":{\"keccak256\":\"0x0599f3684aef3e5f1144e14df1ddd39be24948b7cff125af9c9beca4bc94e1a2\",\"urls\":[\"bzz-raw://962b5efd230c60ce591afed08be4f1def46222da230a527c98c92ee27cf64583\",\"dweb:/ipfs/Qmf5wW4T7F9sNQ1eAgaj94KcFS3hrtU5tTZyPZr8QhgXr8\"]},\"contracts/interfaces/IUniswapV2ERC20.sol\":{\"keccak256\":\"0x9e433765e9ef7b4ff5e406b260b222c47c2aa27d36df756db708064fcb239ae7\",\"urls\":[\"bzz-raw://5b67c24a5e1652b51ad2f37adad2905519f0e05e7c8b2b4d8b3e00b429bb9213\",\"dweb:/ipfs/QmarJq43GabAGGSqtMUb87ACYQt73mSFbXKyFAPDXpbFNM\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x9c8465de751317860b623cd77f7f53f41a84b6624c0580ee526dcf7a2b7cb80c\",\"urls\":[\"bzz-raw://9b371b3eb0649b486f76cd628cc060354d1ac11fa8baed1170567271655f05d7\",\"dweb:/ipfs/QmTUg31wK9UyX6o1Q1mxE4DQhuc1rWGBanNTu1uagNVQB6\"]}},\"version\":1}",
363 "interface": [
364 {
365 "inputs": [],
366 "payable": false,
367 "stateMutability": "nonpayable",
368 "type": "constructor"
369 },
370 {
371 "anonymous": false,
372 "inputs": [
373 {
374 "indexed": true,
375 "internalType": "address",
376 "name": "owner",
377 "type": "address"
378 },
379 {
380 "indexed": true,
381 "internalType": "address",
382 "name": "spender",
383 "type": "address"
384 },
385 {
386 "indexed": false,
387 "internalType": "uint256",
388 "name": "value",
389 "type": "uint256"
390 }
391 ],
392 "name": "Approval",
393 "type": "event"
394 },
395 {
396 "anonymous": false,
397 "inputs": [
398 {
399 "indexed": true,
400 "internalType": "address",
401 "name": "from",
402 "type": "address"
403 },
404 {
405 "indexed": true,
406 "internalType": "address",
407 "name": "to",
408 "type": "address"
409 },
410 {
411 "indexed": false,
412 "internalType": "uint256",
413 "name": "value",
414 "type": "uint256"
415 }
416 ],
417 "name": "Transfer",
418 "type": "event"
419 },
420 {
421 "constant": true,
422 "inputs": [],
423 "name": "DOMAIN_SEPARATOR",
424 "outputs": [
425 {
426 "internalType": "bytes32",
427 "name": "",
428 "type": "bytes32"
429 }
430 ],
431 "payable": false,
432 "stateMutability": "view",
433 "type": "function"
434 },
435 {
436 "constant": true,
437 "inputs": [],
438 "name": "PERMIT_TYPEHASH",
439 "outputs": [
440 {
441 "internalType": "bytes32",
442 "name": "",
443 "type": "bytes32"
444 }
445 ],
446 "payable": false,
447 "stateMutability": "view",
448 "type": "function"
449 },
450 {
451 "constant": true,
452 "inputs": [
453 {
454 "internalType": "address",
455 "name": "",
456 "type": "address"
457 },
458 {
459 "internalType": "address",
460 "name": "",
461 "type": "address"
462 }
463 ],
464 "name": "allowance",
465 "outputs": [
466 {
467 "internalType": "uint256",
468 "name": "",
469 "type": "uint256"
470 }
471 ],
472 "payable": false,
473 "stateMutability": "view",
474 "type": "function"
475 },
476 {
477 "constant": false,
478 "inputs": [
479 {
480 "internalType": "address",
481 "name": "spender",
482 "type": "address"
483 },
484 {
485 "internalType": "uint256",
486 "name": "value",
487 "type": "uint256"
488 }
489 ],
490 "name": "approve",
491 "outputs": [
492 {
493 "internalType": "bool",
494 "name": "",
495 "type": "bool"
496 }
497 ],
498 "payable": false,
499 "stateMutability": "nonpayable",
500 "type": "function"
501 },
502 {
503 "constant": true,
504 "inputs": [
505 {
506 "internalType": "address",
507 "name": "",
508 "type": "address"
509 }
510 ],
511 "name": "balanceOf",
512 "outputs": [
513 {
514 "internalType": "uint256",
515 "name": "",
516 "type": "uint256"
517 }
518 ],
519 "payable": false,
520 "stateMutability": "view",
521 "type": "function"
522 },
523 {
524 "constant": true,
525 "inputs": [],
526 "name": "decimals",
527 "outputs": [
528 {
529 "internalType": "uint8",
530 "name": "",
531 "type": "uint8"
532 }
533 ],
534 "payable": false,
535 "stateMutability": "view",
536 "type": "function"
537 },
538 {
539 "constant": true,
540 "inputs": [],
541 "name": "name",
542 "outputs": [
543 {
544 "internalType": "string",
545 "name": "",
546 "type": "string"
547 }
548 ],
549 "payable": false,
550 "stateMutability": "view",
551 "type": "function"
552 },
553 {
554 "constant": true,
555 "inputs": [
556 {
557 "internalType": "address",
558 "name": "",
559 "type": "address"
560 }
561 ],
562 "name": "nonces",
563 "outputs": [
564 {
565 "internalType": "uint256",
566 "name": "",
567 "type": "uint256"
568 }
569 ],
570 "payable": false,
571 "stateMutability": "view",
572 "type": "function"
573 },
574 {
575 "constant": false,
576 "inputs": [
577 {
578 "internalType": "address",
579 "name": "owner",
580 "type": "address"
581 },
582 {
583 "internalType": "address",
584 "name": "spender",
585 "type": "address"
586 },
587 {
588 "internalType": "uint256",
589 "name": "value",
590 "type": "uint256"
591 },
592 {
593 "internalType": "uint256",
594 "name": "deadline",
595 "type": "uint256"
596 },
597 {
598 "internalType": "uint8",
599 "name": "v",
600 "type": "uint8"
601 },
602 {
603 "internalType": "bytes32",
604 "name": "r",
605 "type": "bytes32"
606 },
607 {
608 "internalType": "bytes32",
609 "name": "s",
610 "type": "bytes32"
611 }
612 ],
613 "name": "permit",
614 "outputs": [],
615 "payable": false,
616 "stateMutability": "nonpayable",
617 "type": "function"
618 },
619 {
620 "constant": true,
621 "inputs": [],
622 "name": "symbol",
623 "outputs": [
624 {
625 "internalType": "string",
626 "name": "",
627 "type": "string"
628 }
629 ],
630 "payable": false,
631 "stateMutability": "view",
632 "type": "function"
633 },
634 {
635 "constant": true,
636 "inputs": [],
637 "name": "totalSupply",
638 "outputs": [
639 {
640 "internalType": "uint256",
641 "name": "",
642 "type": "uint256"
643 }
644 ],
645 "payable": false,
646 "stateMutability": "view",
647 "type": "function"
648 },
649 {
650 "constant": false,
651 "inputs": [
652 {
653 "internalType": "address",
654 "name": "to",
655 "type": "address"
656 },
657 {
658 "internalType": "uint256",
659 "name": "value",
660 "type": "uint256"
661 }
662 ],
663 "name": "transfer",
664 "outputs": [
665 {
666 "internalType": "bool",
667 "name": "",
668 "type": "bool"
669 }
670 ],
671 "payable": false,
672 "stateMutability": "nonpayable",
673 "type": "function"
674 },
675 {
676 "constant": false,
677 "inputs": [
678 {
679 "internalType": "address",
680 "name": "from",
681 "type": "address"
682 },
683 {
684 "internalType": "address",
685 "name": "to",
686 "type": "address"
687 },
688 {
689 "internalType": "uint256",
690 "name": "value",
691 "type": "uint256"
692 }
693 ],
694 "name": "transferFrom",
695 "outputs": [
696 {
697 "internalType": "bool",
698 "name": "",
699 "type": "bool"
700 }
701 ],
702 "payable": false,
703 "stateMutability": "nonpayable",
704 "type": "function"
705 }
706 ],
707 "bytecode": "608060405234801561001057600080fd5b506040514690806052610b898239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550610a9b806100ee6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a723158200a1f25ac97b56edae6740781259ba188530a8a88577b2b41240f6dc34f0d6a4664736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
708 "bin": "608060405234801561001057600080fd5b506040514690806052610b898239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550610a9b806100ee6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a723158200a1f25ac97b56edae6740781259ba188530a8a88577b2b41240f6dc34f0d6a4664736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
709 "bin-runtime": "608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a723158200a1f25ac97b56edae6740781259ba188530a8a88577b2b41240f6dc34f0d6a4664736f6c63430005100032",
710 "srcmap": "105:3329:0:-;;;919:444;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1102:95:0;;1006:7;;1102:95;;;;;;;;;;;;;;;;1231:4;;;;;;;;-1:-1:-1;;;1231:4:0;;;;;1265:10;;;;;;;;;;-1:-1:-1;;;1265:10:0;;;;1074:272;;;;;;;;;1215:22;1074:272;;;;1255:21;1074:272;;;;;;;;;;;1327:4;1074:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1074:272:0;;;;;;1051:305;;;;;;;;1032:16;:324;-1:-1:-1;105:3329:0;;;;;;",
711 "srcmap-runtime": "105:3329:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;105:3329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;184:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2177:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2177:144:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;319:24;;;:::i;:::-;;;;;;;;;;;;;;;;2469:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2469:295:0;;;;;;;;;;;;;;;;;;:::i;605:108::-;;;:::i;278:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;464:31;;;:::i;349:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;349:41:0;;;;:::i;719:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;719:38:0;;;;:::i;232:40::-;;;:::i;2327:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2327:136:0;;;;;;;;;:::i;2770:662::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2770:662:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;396:61;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;396:61:0;;;;;;;;;;;:::i;184:42::-;;;;;;;;;;;;;;;;;;;:::o;2177:144::-;2241:4;2257:36;2266:10;2278:7;2287:5;2257:8;:36::i;:::-;-1:-1:-1;2310:4:0;2177:144;;;;;:::o;319:24::-;;;;:::o;2469:295::-;2567:15;;;2547:4;2567:15;;;:9;:15;;;;;;;;2583:10;2567:27;;;;;;;;2603:2;2567:39;2563:138;;2652:15;;;;;;;:9;:15;;;;;;;;2668:10;2652:27;;;;;;;;:38;;2684:5;2652:38;:31;:38;:::i;:::-;2622:15;;;;;;;:9;:15;;;;;;;;2638:10;2622:27;;;;;;;:68;2563:138;2710:26;2720:4;2726:2;2730:5;2710:9;:26::i;:::-;-1:-1:-1;2753:4:0;2469:295;;;;;:::o;605:108::-;647:66;605:108;:::o;278:35::-;311:2;278:35;:::o;464:31::-;;;;:::o;349:41::-;;;;;;;;;;;;;:::o;719:38::-;;;;;;;;;;;;;:::o;232:40::-;;;;;;;;;;;;;;;;;;;:::o;2327:136::-;2387:4;2403:32;2413:10;2425:2;2429:5;2403:9;:32::i;2770:662::-;2915:15;2903:8;:27;;2895:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:16;;3160:13;;;;2963:14;3160:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3109:77;;647:66;3109:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3109:77:0;;;;;3099:88;;;;;;3003:198;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3003:198:0;;;;;;2980:231;;;;;;;;;3248:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:14;;3160:15;3248:26;;;;;-1:-1:-1;3248:26:0;;;;;;;;;;3160:15;3248:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3248:26:0;;;;;;-1:-1:-1;;3292:30:0;;;;;;;:59;;;3346:5;3326:25;;:16;:25;;;3292:59;3284:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3394:31;3403:5;3410:7;3419:5;3394:8;:31::i;:::-;2770:662;;;;;;;;;:::o;396:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1783:166::-;1863:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1911:31;;;;;;;;;;;;;;;;;1783:166;;;:::o;287:127:9:-;370:5;;;365:16;;;;357:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1955:216:0;2048:15;;;;;;;:9;:15;;;;;;:26;;2068:5;2048:26;:19;:26;:::i;:::-;2030:15;;;;;;;;:9;:15;;;;;;:44;;;;2100:13;;;;;;;:24;;2118:5;2100:24;:17;:24;:::i;:::-;2084:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2139:25;;;;;;;2084:13;;2139:25;;;;;;;;;;;;;1955:216;;;:::o;155:126:9:-;238:5;;;233:16;;;;225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
712 },
713 "contracts/UniswapV2Factory.sol:UniswapV2Factory": {
714 "abi": [
715 {
716 "inputs": [
717 {
718 "internalType": "address",
719 "name": "_feeToSetter",
720 "type": "address"
721 }
722 ],
723 "payable": false,
724 "stateMutability": "nonpayable",
725 "type": "constructor"
726 },
727 {
728 "anonymous": false,
729 "inputs": [
730 {
731 "indexed": true,
732 "internalType": "address",
733 "name": "token0",
734 "type": "address"
735 },
736 {
737 "indexed": true,
738 "internalType": "address",
739 "name": "token1",
740 "type": "address"
741 },
742 {
743 "indexed": false,
744 "internalType": "address",
745 "name": "pair",
746 "type": "address"
747 },
748 {
749 "indexed": false,
750 "internalType": "uint256",
751 "name": "",
752 "type": "uint256"
753 }
754 ],
755 "name": "PairCreated",
756 "type": "event"
757 },
758 {
759 "constant": true,
760 "inputs": [
761 {
762 "internalType": "uint256",
763 "name": "",
764 "type": "uint256"
765 }
766 ],
767 "name": "allPairs",
768 "outputs": [
769 {
770 "internalType": "address",
771 "name": "",
772 "type": "address"
773 }
774 ],
775 "payable": false,
776 "stateMutability": "view",
777 "type": "function"
778 },
779 {
780 "constant": true,
781 "inputs": [],
782 "name": "allPairsLength",
783 "outputs": [
784 {
785 "internalType": "uint256",
786 "name": "",
787 "type": "uint256"
788 }
789 ],
790 "payable": false,
791 "stateMutability": "view",
792 "type": "function"
793 },
794 {
795 "constant": false,
796 "inputs": [
797 {
798 "internalType": "address",
799 "name": "tokenA",
800 "type": "address"
801 },
802 {
803 "internalType": "address",
804 "name": "tokenB",
805 "type": "address"
806 },
807 {
808 "internalType": "address",
809 "name": "baseToken",
810 "type": "address"
811 },
812 {
813 "internalType": "address",
814 "name": "pairOwner",
815 "type": "address"
816 },
817 {
818 "internalType": "uint256",
819 "name": "m",
820 "type": "uint256"
821 },
822 {
823 "internalType": "uint256",
824 "name": "n",
825 "type": "uint256"
826 },
827 {
828 "internalType": "uint256",
829 "name": "fee",
830 "type": "uint256"
831 }
832 ],
833 "name": "createPair",
834 "outputs": [
835 {
836 "internalType": "address",
837 "name": "pair",
838 "type": "address"
839 }
840 ],
841 "payable": false,
842 "stateMutability": "nonpayable",
843 "type": "function"
844 },
845 {
846 "constant": true,
847 "inputs": [],
848 "name": "feeTo",
849 "outputs": [
850 {
851 "internalType": "address",
852 "name": "",
853 "type": "address"
854 }
855 ],
856 "payable": false,
857 "stateMutability": "view",
858 "type": "function"
859 },
860 {
861 "constant": true,
862 "inputs": [],
863 "name": "feeToSetter",
864 "outputs": [
865 {
866 "internalType": "address",
867 "name": "",
868 "type": "address"
869 }
870 ],
871 "payable": false,
872 "stateMutability": "view",
873 "type": "function"
874 },
875 {
876 "constant": true,
877 "inputs": [
878 {
879 "internalType": "address",
880 "name": "",
881 "type": "address"
882 },
883 {
884 "internalType": "address",
885 "name": "",
886 "type": "address"
887 }
888 ],
889 "name": "getPair",
890 "outputs": [
891 {
892 "internalType": "address",
893 "name": "",
894 "type": "address"
895 }
896 ],
897 "payable": false,
898 "stateMutability": "view",
899 "type": "function"
900 },
901 {
902 "constant": false,
903 "inputs": [
904 {
905 "internalType": "address",
906 "name": "_feeTo",
907 "type": "address"
908 }
909 ],
910 "name": "setFeeTo",
911 "outputs": [],
912 "payable": false,
913 "stateMutability": "nonpayable",
914 "type": "function"
915 },
916 {
917 "constant": false,
918 "inputs": [
919 {
920 "internalType": "address",
921 "name": "_feeToSetter",
922 "type": "address"
923 }
924 ],
925 "name": "setFeeToSetter",
926 "outputs": [],
927 "payable": false,
928 "stateMutability": "nonpayable",
929 "type": "function"
930 }
931 ],
932 "evm": {
933 "bytecode": {
934 "linkReferences": {},
935 "object": "608060405234801561001057600080fd5b50604051613cc4380380613cc48339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613c61806100636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063574f2ba31161005b578063574f2ba314610142578063a2e74af61461015c578063e6a4390514610191578063f46901ed146101cc57610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063419f5ef5146100e3575b600080fd5b6100956101ff565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009561021b565b610095600480360360208110156100dc57600080fd5b5035610237565b610095600480360360e08110156100f957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c0013561026b565b61014a6106e8565b60408051918252519081900360200190f35b61018f6004803603602081101561017257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ee565b005b610095600480360360408110156101a757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107bb565b61018f600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ee565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60008673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561030857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161061034557888a610348565b89895b909250905073ffffffffffffffffffffffffffffffffffffffff82166103cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561047057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610482906108bb565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517fe77fc7a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015286811660248301528d811660448301528c81166064830152608482018c905260a482018b905260c482018a905291519297509087169163e77fc7a49160e48082019260009290919082900301818387803b1580156105d457600080fd5b505af11580156105e8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a350505050979650505050505050565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff16331461077457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461087457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b613364806108c98339019056fe6080604052600160115534801561001557600080fd5b5060405146908060526133128239604080519182900360520182208282018252600a808452692ab734b9bbb0b8102b1960b11b602094850152825180840184526001808252603160f81b918601919091528351808601939093527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738838501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606084015260808301969096523060a0808401919091528351808403909101815260c090920190925280519201919091206003908155600580546001600160a01b031916331790556103e8909155600b9290925550600c556131f68061011c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820315ef6920c8e83e24f86d8e3cd1c116b86fec908ed26b63493a35141e98b3cf264736f6c63430005100032",
936 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3CC4 CODESIZE SUB DUP1 PUSH2 0x3CC4 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3C61 DUP1 PUSH2 0x63 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x574F2BA3 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x574F2BA3 EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0xA2E74AF6 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0xE6A43905 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0xF46901ED EQ PUSH2 0x1CC JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x17E7E58 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x94B7415 EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x1E3DD18B EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0x419F5EF5 EQ PUSH2 0xE3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1FF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0x21B JUMP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x237 JUMP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x26B JUMP JUMPDEST PUSH2 0x14A PUSH2 0x6E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x18F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x6EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x18F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7EE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x244 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x308 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204944454E544943414C5F4144445245535345530000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0x345 JUMPI DUP9 DUP11 PUSH2 0x348 JUMP JUMPDEST DUP10 DUP10 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x3CF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205A45524F5F41444452455353000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20504149525F45584953545300000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x482 SWAP1 PUSH2 0x8BB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 PUSH1 0x40 DUP1 MLOAD PUSH32 0xE77FC7A400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP14 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE DUP13 DUP2 AND PUSH1 0x64 DUP4 ADD MSTORE PUSH1 0x84 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0xA4 DUP3 ADD DUP12 SWAP1 MSTORE PUSH1 0xC4 DUP3 ADD DUP11 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP8 AND SWAP2 PUSH4 0xE77FC7A4 SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP10 DUP8 AND DUP1 DUP7 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD SWAP8 DUP14 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP9 DUP10 AND DUP2 OR SWAP1 SWAP2 SSTORE SWAP4 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP7 DUP7 MSTORE DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD DUP9 AND DUP6 OR SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP6 DUP2 SWAP1 MSTORE PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B SWAP1 SWAP6 ADD DUP1 SLOAD SWAP1 SWAP8 AND DUP5 OR SWAP1 SWAP7 SSTORE SWAP3 SLOAD DUP4 MLOAD SWAP3 DUP4 MSTORE SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0xD3648BD0F6BA80134A33BA9275AC585D9D315F0AD8355CDDEFDE31AFA28D0E9 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x774 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x874 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3364 DUP1 PUSH2 0x8C9 DUP4 CODECOPY ADD SWAP1 JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x11 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0x3312 DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xA DUP1 DUP5 MSTORE PUSH10 0x2AB734B9BBB0B8102B19 PUSH1 0xB1 SHL PUSH1 0x20 SWAP5 DUP6 ADD MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x1 DUP1 DUP3 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0xBFCC8EF98FFBF7B6C3FEC7BF5185B566B9863E35A9D83ACD49AD6824B5969738 DUP4 DUP6 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP3 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 DUP2 SSTORE PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x3E8 SWAP1 SWAP2 SSTORE PUSH1 0xB SWAP3 SWAP1 SWAP3 SSTORE POP PUSH1 0xC SSTORE PUSH2 0x31F6 DUP1 PUSH2 0x11C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x241 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x145 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0xD505ACCF GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xDDCA3F43 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDDCA3F43 EQ PUSH2 0x781 JUMPI DUP1 PUSH4 0xE77FC7A4 EQ PUSH2 0x789 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x7E8 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x6E8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x746 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x6AF JUMPI DUP1 PUSH4 0xC55DAE63 EQ PUSH2 0x6B7 JUMPI DUP1 PUSH4 0xC5700A02 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x6E0 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x89AFCB44 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0xBC25CF77 EQ PUSH2 0x67C JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x89AFCB44 EQ PUSH2 0x5E7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x633 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0x808413FA EQ PUSH2 0x5A2 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x2E52D606 GT PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x3644E515 GT PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x5A2EE019 GT PUSH2 0x18C JUMPI DUP1 PUSH4 0x5A2EE019 EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x501 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x4E9 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x2E52D606 EQ PUSH2 0x4AB JUMPI DUP1 PUSH4 0x2EC2FE3D EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x4C3 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xDFE1681 GT PUSH2 0x214 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x435 JUMPI DUP1 PUSH4 0x2DD2A921 EQ PUSH2 0x478 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x22C0D9F EQ PUSH2 0x246 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x902F1AC EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x39D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 DUP4 ADD CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x7F0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2E9 PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x323 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x30B JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x350 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0xEFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xF52 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3F2 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x423 PUSH2 0xF85 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x44B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xF8B JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106A JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1137 JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x113D JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1159 JUMP JUMPDEST PUSH2 0x4CB PUSH2 0x117D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x423 PUSH2 0x1182 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1188 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x118E JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1194 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x119A JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1644 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1656 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x165C JUMP JUMPDEST PUSH2 0x5AA PUSH2 0x166E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 RETURN JUMPDEST PUSH2 0x61A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1699 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x2E9 PUSH2 0x1BC0 JUMP JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1BF9 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1C06 JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C0C JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x1E02 JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x1E1E JUMP JUMPDEST PUSH2 0x6C7 PUSH2 0x1E3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3F2 PUSH2 0x1E66 JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1E82 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x214E JUMP JUMPDEST PUSH2 0x423 PUSH2 0x216B JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x79F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2171 JUMP JUMPDEST PUSH2 0x2DF PUSH2 0x23CE JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE DUP5 ISZERO ISZERO DUP1 PUSH2 0x874 JUMPI POP PUSH1 0x0 DUP5 GT JUMPDEST PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3108 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8D4 PUSH2 0xEFD JUMP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 LT DUP1 ISZERO PUSH2 0x907 JUMPI POP DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 LT JUMPDEST PUSH2 0x95C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3151 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP10 AND DUP3 EQ DUP1 ISZERO SWAP1 PUSH2 0x9C1 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST PUSH2 0xA2C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F544F0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP11 ISZERO PUSH2 0xA3D JUMPI PUSH2 0xA3D DUP3 DUP11 DUP14 PUSH2 0x25B4 JUMP JUMPDEST DUP10 ISZERO PUSH2 0xA4E JUMPI PUSH2 0xA4E DUP2 DUP11 DUP13 PUSH2 0x25B4 JUMP JUMPDEST DUP7 ISZERO PUSH2 0xB30 JUMPI DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x10D1E85C CALLER DUP14 DUP14 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP5 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xBC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 SWAP2 POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP11 SWAP1 SUB DUP4 GT PUSH2 0xC8C JUMPI PUSH1 0x0 PUSH2 0xCA2 JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 GT PUSH2 0xCC6 JUMPI PUSH1 0x0 PUSH2 0xCDC JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 PUSH2 0xCED JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0xD42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x312D PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD76 PUSH2 0xD58 DUP5 PUSH1 0x3 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0xD6A DUP8 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xD8E PUSH2 0xD58 DUP5 PUSH1 0x3 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH2 0xDC6 PUSH3 0xF4240 PUSH2 0xDBA PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP1 DUP12 AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0xDD6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST LT ISZERO PUSH2 0xE43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204B0000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH2 0xE51 DUP5 DUP5 DUP9 DUP9 PUSH2 0x28B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP1 DUP3 ADD DUP14 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP2 CALLER SWAP2 PUSH32 0xD78AD95FA46C994B6551D0DA85FC275FE613CE37657FB8D5E3D130840159D822 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x556E697377617020563200000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH15 0x10000000000000000000000000000 DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF5F CALLER DUP5 DUP5 PUSH2 0x2B75 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x1055 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x1023 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x1060 DUP5 DUP5 DUP5 PUSH2 0x2BE4 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x10F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x120D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP2 SWAP1 SSTORE DUP1 PUSH2 0x121D PUSH2 0xEFD JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP SWAP2 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x138A DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13AE DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13BC DUP8 DUP8 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x13F0 JUMPI DUP8 PUSH2 0x13F2 JUMP JUMPDEST DUP9 JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x1423 JUMPI DUP10 PUSH2 0x1425 JUMP JUMPDEST DUP9 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E8 PUSH1 0xA SLOAD DUP2 PUSH2 0x1436 JUMPI INVALID JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP1 SWAP2 DIV SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x146A JUMPI DUP7 PUSH2 0x146C JUMP JUMPDEST DUP8 JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x14A3 JUMPI PUSH1 0xB SLOAD DUP10 EXP DUP4 MUL PUSH2 0x14AB JUMP JUMPDEST PUSH1 0xB SLOAD DUP9 EXP DUP4 MUL JUMPDEST SWAP1 POP DUP6 PUSH2 0x14E4 JUMPI PUSH2 0x14D0 PUSH2 0x3E8 PUSH2 0xD6A PUSH2 0x14CB DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0x2E51 JUMP JUMPDEST SWAP14 POP PUSH2 0x14DF PUSH1 0x0 PUSH2 0x3E8 PUSH2 0x2EA3 JUMP JUMPDEST PUSH2 0x1541 JUMP JUMPDEST PUSH2 0x153E PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x1508 DUP5 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x150F JUMPI INVALID JUMPDEST DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x1531 DUP5 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x1538 JUMPI INVALID JUMPDEST DIV PUSH2 0x2F53 JUMP JUMPDEST SWAP14 POP JUMPDEST PUSH1 0x0 DUP15 GT PUSH2 0x159A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x319A PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15A4 DUP16 DUP16 PUSH2 0x2EA3 JUMP JUMPDEST PUSH2 0x15B0 DUP12 DUP12 DUP16 DUP16 PUSH2 0x28B9 JUMP JUMPDEST DUP7 ISZERO PUSH2 0x15F2 JUMPI PUSH1 0xD SLOAD PUSH2 0x15EE SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH1 0x10 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP11 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE DUP2 MLOAD CALLER SWAP3 PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP SWAP10 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x170D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP2 SWAP1 SSTORE DUP1 PUSH2 0x171D PUSH2 0xEFD JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP5 SWAP7 POP SWAP3 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 SWAP2 AND SWAP2 PUSH1 0x0 SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xA SLOAD SWAP3 SWAP4 POP SWAP2 PUSH2 0x3E8 SWAP1 DIV SWAP1 PUSH2 0x1890 DUP10 DUP10 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x18DE SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x18CF JUMPI PUSH1 0xB SLOAD DUP9 EXP DUP6 MUL PUSH2 0x18D1 JUMP JUMPDEST DUP8 JUMPDEST DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x18E5 JUMPI INVALID JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP1 SWAP2 DIV SWAP14 POP DUP3 SWAP2 PUSH2 0x1929 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 AND EQ PUSH2 0x1922 JUMPI PUSH1 0xB SLOAD DUP8 EXP DUP6 MUL PUSH2 0x18D1 JUMP JUMPDEST DUP6 DUP8 PUSH2 0x27C1 JUMP JUMPDEST DUP2 PUSH2 0x1930 JUMPI INVALID JUMPDEST DIV SWAP11 POP PUSH1 0x0 DUP13 GT DUP1 ISZERO PUSH2 0x1943 JUMPI POP PUSH1 0x0 DUP12 GT JUMPDEST PUSH2 0x1998 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3172 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x19A2 ADDRESS DUP6 PUSH2 0x2F6B JUMP JUMPDEST PUSH2 0x19AD DUP9 DUP15 DUP15 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0x19B8 DUP8 DUP15 DUP14 PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP8 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AD4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x1AFA DUP7 DUP7 DUP13 DUP13 PUSH2 0x28B9 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1B3C JUMPI PUSH1 0xD SLOAD PUSH2 0x1B38 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH1 0x10 SSTORE JUMPDEST DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDCCD412F0B1252819CB1FD330B93224CA42612892BB3F4F789976E6D81936496 DUP15 DUP15 PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP PUSH1 0x1 PUSH1 0x11 DUP2 SWAP1 SSTORE POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x554E492D56320000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF5F CALLER DUP5 DUP5 PUSH2 0x2BE4 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x1C7D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0xD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP5 SWAP1 SWAP4 AND SWAP3 PUSH2 0x1D59 SWAP3 DUP6 SWAP3 DUP8 SWAP3 PUSH2 0x1D54 SWAP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP6 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x1DF8 SWAP3 DUP5 SWAP3 DUP8 SWAP3 PUSH2 0x1D54 SWAP3 PUSH15 0x10000000000000000000000000000 SWAP1 DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x1EF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2052 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x20CD JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x2138 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2143 DUP10 DUP10 DUP10 PUSH2 0x2B75 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x21F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP3 LT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A206578706F6E656E74206D757374206265203E3D2031 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP4 LT ISZERO PUSH2 0x22D7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20736C6F7065206D757374206265203E3D2031000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0x2347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20666565206D757374206265203E3D20310000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP9 DUP10 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP8 DUP10 AND SWAP8 DUP3 AND SWAP8 SWAP1 SWAP8 OR SWAP1 SWAP7 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP6 DUP9 AND SWAP6 DUP8 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP4 SWAP1 SWAP7 AND SWAP3 SWAP1 SWAP5 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP4 SSTORE PUSH1 0xA SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xB SSTORE PUSH1 0xC SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x243F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x25AD SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2567 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x257D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0xD SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x28B9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP5 MSTORE SWAP2 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP2 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x26BA JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x267D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x271C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x274F JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x274F JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x274C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x27BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205452414E534645525F4641494C4544000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x27DC JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x27D9 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x28E5 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO JUMPDEST PUSH2 0x2950 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204F564552464C4F5700000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xD SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x29A0 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x29BB JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2A6B JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x29FE DUP6 PUSH2 0x29D4 DUP7 PUSH2 0x3030 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3054 AND JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x2A3E DUP5 PUSH2 0x29D4 DUP8 PUSH2 0x3030 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 DUP9 DUP4 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH4 0xFFFFFFFF DUP8 AND MUL OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x1C411E9A96E071241C2F21F7726B17AE89E3CAB4C78BE50E062B03A9FFFBBAD1 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2C1A SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x2C5C SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x10 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO DUP1 ISZERO SWAP5 POP SWAP2 SWAP3 POP SWAP1 PUSH2 0x2E3D JUMPI DUP1 ISZERO PUSH2 0x2E38 JUMPI PUSH1 0x0 PUSH2 0x2DB1 PUSH2 0x14CB PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP1 DUP9 AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2DBE DUP4 PUSH2 0x2E51 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2E35 JUMPI PUSH1 0x0 PUSH2 0x2DEC PUSH2 0x2DDD DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E11 DUP4 PUSH2 0x2E05 DUP7 PUSH1 0x5 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2E1E JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 ISZERO PUSH2 0x2E31 JUMPI PUSH2 0x2E31 DUP8 DUP3 PUSH2 0x2EA3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMPDEST PUSH2 0x2E49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2E49 JUMPI PUSH1 0x0 PUSH1 0x10 SSTORE JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x2E94 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2E8E JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x2E7D JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x2E86 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x2E66 JUMP JUMPDEST POP PUSH2 0x2E9E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x2E9E JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x2EB6 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EEE SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2F62 JUMPI DUP2 PUSH2 0x2F64 JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2FA1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2FDB SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 PUSH2 0x308D JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F TIMESTAMP SSTORE MSTORE 0x4E GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F 0x4D 0x49 0x4E SLOAD GASLIMIT DIFFICULTY LOG2 PUSH6 0x627A7A723158 KECCAK256 SWAP9 MSTORE8 0xEB 0x4C PUSH25 0x3734250485704256A3D152364C8047780FC78421578CB59C38 0xA5 SWAP12 PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 LOG2 PUSH6 0x627A7A723158 KECCAK256 BALANCE 0x5E 0xF6 SWAP3 0xC DUP15 DUP4 0xE2 0x4F DUP7 0xD8 0xE3 0xCD SHR GT PUSH12 0x86FEC908ED26B63493A35141 0xE9 DUP12 EXTCODECOPY CALLCODE PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN ",
937 "sourceMap": "102:1861:1:-;;;406:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:84:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;406:84:1;457:11;:26;;-1:-1:-1;;;;;;457:26:1;-1:-1:-1;;;;;457:26:1;;;;;;;;;102:1861;;;-1:-1:-1;102:1861:1;;"
938 },
939 "deployedBytecode": {
940 "linkReferences": {},
941 "object": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063574f2ba31161005b578063574f2ba314610142578063a2e74af61461015c578063e6a4390514610191578063f46901ed146101cc57610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063419f5ef5146100e3575b600080fd5b6100956101ff565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009561021b565b610095600480360360208110156100dc57600080fd5b5035610237565b610095600480360360e08110156100f957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c0013561026b565b61014a6106e8565b60408051918252519081900360200190f35b61018f6004803603602081101561017257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ee565b005b610095600480360360408110156101a757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107bb565b61018f600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ee565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60008673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561030857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161061034557888a610348565b89895b909250905073ffffffffffffffffffffffffffffffffffffffff82166103cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561047057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610482906108bb565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517fe77fc7a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015286811660248301528d811660448301528c81166064830152608482018c905260a482018b905260c482018a905291519297509087169163e77fc7a49160e48082019260009290919082900301818387803b1580156105d457600080fd5b505af11580156105e8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a350505050979650505050505050565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff16331461077457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461087457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b613364806108c98339019056fe6080604052600160115534801561001557600080fd5b5060405146908060526133128239604080519182900360520182208282018252600a808452692ab734b9bbb0b8102b1960b11b602094850152825180840184526001808252603160f81b918601919091528351808601939093527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738838501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606084015260808301969096523060a0808401919091528351808403909101815260c090920190925280519201919091206003908155600580546001600160a01b031916331790556103e8909155600b9290925550600c556131f68061011c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820315ef6920c8e83e24f86d8e3cd1c116b86fec908ed26b63493a35141e98b3cf264736f6c63430005100032",
942 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x574F2BA3 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x574F2BA3 EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0xA2E74AF6 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0xE6A43905 EQ PUSH2 0x191 JUMPI DUP1 PUSH4 0xF46901ED EQ PUSH2 0x1CC JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x17E7E58 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x94B7415 EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0x1E3DD18B EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0x419F5EF5 EQ PUSH2 0xE3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1FF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0x21B JUMP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x237 JUMP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0xF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x26B JUMP JUMPDEST PUSH2 0x14A PUSH2 0x6E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x18F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x172 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x6EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x18F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7EE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x244 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x308 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204944454E544943414C5F4144445245535345530000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0x345 JUMPI DUP9 DUP11 PUSH2 0x348 JUMP JUMPDEST DUP10 DUP10 JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x3CF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205A45524F5F41444452455353000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x470 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20504149525F45584953545300000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x482 SWAP1 PUSH2 0x8BB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 PUSH1 0x40 DUP1 MLOAD PUSH32 0xE77FC7A400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP7 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP14 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE DUP13 DUP2 AND PUSH1 0x64 DUP4 ADD MSTORE PUSH1 0x84 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0xA4 DUP3 ADD DUP12 SWAP1 MSTORE PUSH1 0xC4 DUP3 ADD DUP11 SWAP1 MSTORE SWAP2 MLOAD SWAP3 SWAP8 POP SWAP1 DUP8 AND SWAP2 PUSH4 0xE77FC7A4 SWAP2 PUSH1 0xE4 DUP1 DUP3 ADD SWAP3 PUSH1 0x0 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP10 DUP8 AND DUP1 DUP7 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD SWAP8 DUP14 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP9 DUP10 AND DUP2 OR SWAP1 SWAP2 SSTORE SWAP4 DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP7 DUP7 MSTORE DUP4 MSTORE DUP2 DUP6 KECCAK256 DUP1 SLOAD DUP9 AND DUP6 OR SWAP1 SSTORE PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE SWAP6 DUP2 SWAP1 MSTORE PUSH32 0xC2575A0E9E593C00F959F8C92F12DB2869C3395A3B0502D05E2516446F71F85B SWAP1 SWAP6 ADD DUP1 SLOAD SWAP1 SWAP8 AND DUP5 OR SWAP1 SWAP7 SSTORE SWAP3 SLOAD DUP4 MLOAD SWAP3 DUP4 MSTORE SWAP1 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0xD3648BD0F6BA80134A33BA9275AC585D9D315F0AD8355CDDEFDE31AFA28D0E9 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x774 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x874 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3364 DUP1 PUSH2 0x8C9 DUP4 CODECOPY ADD SWAP1 JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x11 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0x3312 DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xA DUP1 DUP5 MSTORE PUSH10 0x2AB734B9BBB0B8102B19 PUSH1 0xB1 SHL PUSH1 0x20 SWAP5 DUP6 ADD MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x1 DUP1 DUP3 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0xBFCC8EF98FFBF7B6C3FEC7BF5185B566B9863E35A9D83ACD49AD6824B5969738 DUP4 DUP6 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP3 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 DUP2 SSTORE PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x3E8 SWAP1 SWAP2 SSTORE PUSH1 0xB SWAP3 SWAP1 SWAP3 SSTORE POP PUSH1 0xC SSTORE PUSH2 0x31F6 DUP1 PUSH2 0x11C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x241 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x145 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0xD505ACCF GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xDDCA3F43 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDDCA3F43 EQ PUSH2 0x781 JUMPI DUP1 PUSH4 0xE77FC7A4 EQ PUSH2 0x789 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x7E8 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x6E8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x746 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x6AF JUMPI DUP1 PUSH4 0xC55DAE63 EQ PUSH2 0x6B7 JUMPI DUP1 PUSH4 0xC5700A02 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x6E0 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x89AFCB44 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0xBC25CF77 EQ PUSH2 0x67C JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x89AFCB44 EQ PUSH2 0x5E7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x633 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0x808413FA EQ PUSH2 0x5A2 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x2E52D606 GT PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x3644E515 GT PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x5A2EE019 GT PUSH2 0x18C JUMPI DUP1 PUSH4 0x5A2EE019 EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x501 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x4E9 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x2E52D606 EQ PUSH2 0x4AB JUMPI DUP1 PUSH4 0x2EC2FE3D EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x4C3 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xDFE1681 GT PUSH2 0x214 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x435 JUMPI DUP1 PUSH4 0x2DD2A921 EQ PUSH2 0x478 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x22C0D9F EQ PUSH2 0x246 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x902F1AC EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x39D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 DUP4 ADD CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x7F0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2E9 PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x323 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x30B JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x350 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0xEFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xF52 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3F2 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x423 PUSH2 0xF85 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x44B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xF8B JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106A JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1137 JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x113D JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1159 JUMP JUMPDEST PUSH2 0x4CB PUSH2 0x117D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x423 PUSH2 0x1182 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1188 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x118E JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1194 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x119A JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1644 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1656 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x165C JUMP JUMPDEST PUSH2 0x5AA PUSH2 0x166E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 RETURN JUMPDEST PUSH2 0x61A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1699 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x2E9 PUSH2 0x1BC0 JUMP JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1BF9 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1C06 JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C0C JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x1E02 JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x1E1E JUMP JUMPDEST PUSH2 0x6C7 PUSH2 0x1E3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3F2 PUSH2 0x1E66 JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1E82 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x214E JUMP JUMPDEST PUSH2 0x423 PUSH2 0x216B JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x79F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2171 JUMP JUMPDEST PUSH2 0x2DF PUSH2 0x23CE JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE DUP5 ISZERO ISZERO DUP1 PUSH2 0x874 JUMPI POP PUSH1 0x0 DUP5 GT JUMPDEST PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3108 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8D4 PUSH2 0xEFD JUMP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 LT DUP1 ISZERO PUSH2 0x907 JUMPI POP DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 LT JUMPDEST PUSH2 0x95C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3151 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP10 AND DUP3 EQ DUP1 ISZERO SWAP1 PUSH2 0x9C1 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST PUSH2 0xA2C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F544F0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP11 ISZERO PUSH2 0xA3D JUMPI PUSH2 0xA3D DUP3 DUP11 DUP14 PUSH2 0x25B4 JUMP JUMPDEST DUP10 ISZERO PUSH2 0xA4E JUMPI PUSH2 0xA4E DUP2 DUP11 DUP13 PUSH2 0x25B4 JUMP JUMPDEST DUP7 ISZERO PUSH2 0xB30 JUMPI DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x10D1E85C CALLER DUP14 DUP14 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP5 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xBC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 SWAP2 POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP11 SWAP1 SUB DUP4 GT PUSH2 0xC8C JUMPI PUSH1 0x0 PUSH2 0xCA2 JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 GT PUSH2 0xCC6 JUMPI PUSH1 0x0 PUSH2 0xCDC JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 PUSH2 0xCED JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0xD42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x312D PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD76 PUSH2 0xD58 DUP5 PUSH1 0x3 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0xD6A DUP8 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xD8E PUSH2 0xD58 DUP5 PUSH1 0x3 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH2 0xDC6 PUSH3 0xF4240 PUSH2 0xDBA PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP1 DUP12 AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0xDD6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST LT ISZERO PUSH2 0xE43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204B0000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH2 0xE51 DUP5 DUP5 DUP9 DUP9 PUSH2 0x28B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP1 DUP3 ADD DUP14 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP2 CALLER SWAP2 PUSH32 0xD78AD95FA46C994B6551D0DA85FC275FE613CE37657FB8D5E3D130840159D822 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x556E697377617020563200000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH15 0x10000000000000000000000000000 DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF5F CALLER DUP5 DUP5 PUSH2 0x2B75 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x1055 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x1023 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x1060 DUP5 DUP5 DUP5 PUSH2 0x2BE4 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x10F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x120D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP2 SWAP1 SSTORE DUP1 PUSH2 0x121D PUSH2 0xEFD JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP SWAP2 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x138A DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13AE DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13BC DUP8 DUP8 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x13F0 JUMPI DUP8 PUSH2 0x13F2 JUMP JUMPDEST DUP9 JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x1423 JUMPI DUP10 PUSH2 0x1425 JUMP JUMPDEST DUP9 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E8 PUSH1 0xA SLOAD DUP2 PUSH2 0x1436 JUMPI INVALID JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP1 SWAP2 DIV SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x146A JUMPI DUP7 PUSH2 0x146C JUMP JUMPDEST DUP8 JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x14A3 JUMPI PUSH1 0xB SLOAD DUP10 EXP DUP4 MUL PUSH2 0x14AB JUMP JUMPDEST PUSH1 0xB SLOAD DUP9 EXP DUP4 MUL JUMPDEST SWAP1 POP DUP6 PUSH2 0x14E4 JUMPI PUSH2 0x14D0 PUSH2 0x3E8 PUSH2 0xD6A PUSH2 0x14CB DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0x2E51 JUMP JUMPDEST SWAP14 POP PUSH2 0x14DF PUSH1 0x0 PUSH2 0x3E8 PUSH2 0x2EA3 JUMP JUMPDEST PUSH2 0x1541 JUMP JUMPDEST PUSH2 0x153E PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x1508 DUP5 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x150F JUMPI INVALID JUMPDEST DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x1531 DUP5 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x1538 JUMPI INVALID JUMPDEST DIV PUSH2 0x2F53 JUMP JUMPDEST SWAP14 POP JUMPDEST PUSH1 0x0 DUP15 GT PUSH2 0x159A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x319A PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15A4 DUP16 DUP16 PUSH2 0x2EA3 JUMP JUMPDEST PUSH2 0x15B0 DUP12 DUP12 DUP16 DUP16 PUSH2 0x28B9 JUMP JUMPDEST DUP7 ISZERO PUSH2 0x15F2 JUMPI PUSH1 0xD SLOAD PUSH2 0x15EE SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH1 0x10 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP11 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE DUP2 MLOAD CALLER SWAP3 PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP SWAP10 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x170D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP2 SWAP1 SSTORE DUP1 PUSH2 0x171D PUSH2 0xEFD JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP5 SWAP7 POP SWAP3 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 SWAP2 AND SWAP2 PUSH1 0x0 SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xA SLOAD SWAP3 SWAP4 POP SWAP2 PUSH2 0x3E8 SWAP1 DIV SWAP1 PUSH2 0x1890 DUP10 DUP10 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x18DE SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x18CF JUMPI PUSH1 0xB SLOAD DUP9 EXP DUP6 MUL PUSH2 0x18D1 JUMP JUMPDEST DUP8 JUMPDEST DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x18E5 JUMPI INVALID JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP1 SWAP2 DIV SWAP14 POP DUP3 SWAP2 PUSH2 0x1929 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 AND EQ PUSH2 0x1922 JUMPI PUSH1 0xB SLOAD DUP8 EXP DUP6 MUL PUSH2 0x18D1 JUMP JUMPDEST DUP6 DUP8 PUSH2 0x27C1 JUMP JUMPDEST DUP2 PUSH2 0x1930 JUMPI INVALID JUMPDEST DIV SWAP11 POP PUSH1 0x0 DUP13 GT DUP1 ISZERO PUSH2 0x1943 JUMPI POP PUSH1 0x0 DUP12 GT JUMPDEST PUSH2 0x1998 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3172 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x19A2 ADDRESS DUP6 PUSH2 0x2F6B JUMP JUMPDEST PUSH2 0x19AD DUP9 DUP15 DUP15 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0x19B8 DUP8 DUP15 DUP14 PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP8 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AD4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x1AFA DUP7 DUP7 DUP13 DUP13 PUSH2 0x28B9 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1B3C JUMPI PUSH1 0xD SLOAD PUSH2 0x1B38 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH1 0x10 SSTORE JUMPDEST DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDCCD412F0B1252819CB1FD330B93224CA42612892BB3F4F789976E6D81936496 DUP15 DUP15 PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP PUSH1 0x1 PUSH1 0x11 DUP2 SWAP1 SSTORE POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x554E492D56320000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF5F CALLER DUP5 DUP5 PUSH2 0x2BE4 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x1C7D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0xD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP5 SWAP1 SWAP4 AND SWAP3 PUSH2 0x1D59 SWAP3 DUP6 SWAP3 DUP8 SWAP3 PUSH2 0x1D54 SWAP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP6 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x1DF8 SWAP3 DUP5 SWAP3 DUP8 SWAP3 PUSH2 0x1D54 SWAP3 PUSH15 0x10000000000000000000000000000 SWAP1 DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x1EF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2052 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x20CD JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x2138 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2143 DUP10 DUP10 DUP10 PUSH2 0x2B75 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x21F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP3 LT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A206578706F6E656E74206D757374206265203E3D2031 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP4 LT ISZERO PUSH2 0x22D7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20736C6F7065206D757374206265203E3D2031000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0x2347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20666565206D757374206265203E3D20310000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP9 DUP10 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP8 DUP10 AND SWAP8 DUP3 AND SWAP8 SWAP1 SWAP8 OR SWAP1 SWAP7 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP6 DUP9 AND SWAP6 DUP8 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP4 SWAP1 SWAP7 AND SWAP3 SWAP1 SWAP5 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP4 SSTORE PUSH1 0xA SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xB SSTORE PUSH1 0xC SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x243F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x25AD SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2567 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x257D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0xD SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x28B9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP5 MSTORE SWAP2 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP2 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x26BA JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x267D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x271C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x274F JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x274F JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x274C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x27BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205452414E534645525F4641494C4544000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x27DC JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x27D9 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x28E5 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO JUMPDEST PUSH2 0x2950 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204F564552464C4F5700000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xD SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x29A0 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x29BB JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2A6B JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x29FE DUP6 PUSH2 0x29D4 DUP7 PUSH2 0x3030 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3054 AND JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x2A3E DUP5 PUSH2 0x29D4 DUP8 PUSH2 0x3030 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 DUP9 DUP4 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH4 0xFFFFFFFF DUP8 AND MUL OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x1C411E9A96E071241C2F21F7726B17AE89E3CAB4C78BE50E062B03A9FFFBBAD1 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2C1A SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x2C5C SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x10 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO DUP1 ISZERO SWAP5 POP SWAP2 SWAP3 POP SWAP1 PUSH2 0x2E3D JUMPI DUP1 ISZERO PUSH2 0x2E38 JUMPI PUSH1 0x0 PUSH2 0x2DB1 PUSH2 0x14CB PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP1 DUP9 AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2DBE DUP4 PUSH2 0x2E51 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2E35 JUMPI PUSH1 0x0 PUSH2 0x2DEC PUSH2 0x2DDD DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E11 DUP4 PUSH2 0x2E05 DUP7 PUSH1 0x5 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2E1E JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 ISZERO PUSH2 0x2E31 JUMPI PUSH2 0x2E31 DUP8 DUP3 PUSH2 0x2EA3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMPDEST PUSH2 0x2E49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2E49 JUMPI PUSH1 0x0 PUSH1 0x10 SSTORE JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x2E94 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2E8E JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x2E7D JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x2E86 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x2E66 JUMP JUMPDEST POP PUSH2 0x2E9E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x2E9E JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x2EB6 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EEE SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2F62 JUMPI DUP2 PUSH2 0x2F64 JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2FA1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2FDB SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 PUSH2 0x308D JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F TIMESTAMP SSTORE MSTORE 0x4E GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F 0x4D 0x49 0x4E SLOAD GASLIMIT DIFFICULTY LOG2 PUSH6 0x627A7A723158 KECCAK256 SWAP9 MSTORE8 0xEB 0x4C PUSH25 0x3734250485704256A3D152364C8047780FC78421578CB59C38 0xA5 SWAP12 PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 LOG2 PUSH6 0x627A7A723158 KECCAK256 BALANCE 0x5E 0xF6 SWAP3 0xC DUP15 DUP4 0xE2 0x4F DUP7 0xD8 0xE3 0xCD SHR GT PUSH12 0x86FEC908ED26B63493A35141 0xE9 DUP12 EXTCODECOPY CALLCODE PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN ",
943 "sourceMap": "102:1861:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;102:1861:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;155:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;181:26;;;:::i;282:25::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;282:25:1;;:::i;596:1045::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;596:1045:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;496:94::-;;;:::i;:::-;;;;;;;;;;;;;;;;1795:166;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1795:166:1;;;;:::i;:::-;;214:62;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;214:62:1;;;;;;;;;;;:::i;1647:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1647:142:1;;;;:::i;155:20::-;;;;;;:::o;181:26::-;;;;;;:::o;282:25::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;282:25:1;:::o;596:1045::-;730:12;772:6;762:16;;:6;:16;;;;754:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:14;840;867:6;858:15;;:6;:15;;;:53;;896:6;904;858:53;;;877:6;885;858:53;823:88;;-1:-1:-1;823:88:1;-1:-1:-1;929:20:1;;;921:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;995:37;:15;;;1030:1;995:15;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:37;987:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1099:21;1123:32;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;1123:32:1;1099:56;;1165:12;1207:6;1215;1190:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1190:32:1;;;1180:43;;;;;;1165:58;;1311:4;1300:8;1294:15;1289:2;1279:8;1275:17;1272:1;1264:52;1335:80;;;;;;:31;:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1256:60;;-1:-1:-1;1335:31:1;;;;;;:80;;;;;-1:-1:-1;;1335:80:1;;;;;;;;-1:-1:-1;1335:31:1;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;1335:80:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;1425:15:1;;;;;;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:30;;;;;;;;;;;;;;1465:15;;;;;;:23;;;;;;;;:30;;;;;;;;1550:8;27:10:-1;;-1:-1;23:18;;45:23;;1550:19:1;;;;;;;;;;;;;;;;;;1618:15;;1584:50;;;;;;;;;;;;;;;;;;;;;;596:1045;;;;;;;;;;;;;:::o;496:94::-;568:8;:15;496:94;:::o;1795:166::-;1882:11;;;;1868:10;:25;1860:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1928:11;:26;;;;;;;;;;;;;;;1795:166::o;214:62::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1647:142::-;1722:11;;;;1708:10;:25;1700:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1768:5;:14;;;;;;;;;;;;;;;1647:142::o;102:1861::-;;;;;;;;:::o"
944 }
945 },
946 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeToSetter\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pairOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"m\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"n\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeTo\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeToSetter\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/UniswapV2Factory.sol\":\"UniswapV2Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/UniswapV2ERC20.sol\":{\"keccak256\":\"0x0599f3684aef3e5f1144e14df1ddd39be24948b7cff125af9c9beca4bc94e1a2\",\"urls\":[\"bzz-raw://962b5efd230c60ce591afed08be4f1def46222da230a527c98c92ee27cf64583\",\"dweb:/ipfs/Qmf5wW4T7F9sNQ1eAgaj94KcFS3hrtU5tTZyPZr8QhgXr8\"]},\"contracts/UniswapV2Factory.sol\":{\"keccak256\":\"0x2389b48b87df85c9ff853e94ab28547d9a064749360d2c48d54a9d02e14d8b8a\",\"urls\":[\"bzz-raw://bbb11e8913c0eb6fc0fbfebf5fed1610ca0574e485739f0f555c83958e0f312c\",\"dweb:/ipfs/QmQgojYumE2sSzT6zkmnpHaikALAZfaE2kFwWDNjQrDYKF\"]},\"contracts/UniswapV2Pair.sol\":{\"keccak256\":\"0x214708a723b69b80431bb6ff0207462e938957c6d638dcd1225387717fafdcc8\",\"urls\":[\"bzz-raw://0d0920b68c6df6d144af05bb38ad8eb1d4728a723109a85e4ef6fa8689afdcb8\",\"dweb:/ipfs/QmZakyMCHRkAUzY6vADF3aNLT229VMcfkN8weP715AD5dy\"]},\"contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]},\"contracts/interfaces/IUniswapV2Callee.sol\":{\"keccak256\":\"0xdb17a1fb73e261e736ae8862be2d9a32964fc4b3741f48980f5cdc9d92b99a96\",\"urls\":[\"bzz-raw://468dab23a95d9d9b7d6ce74008d45eef3de2f137ede604e6be6c5e7d0121c5e9\",\"dweb:/ipfs/QmcXwjTfp6tCRgf1KsNQyUAtrqKhiaN6fbaHVGr22eficP\"]},\"contracts/interfaces/IUniswapV2ERC20.sol\":{\"keccak256\":\"0x9e433765e9ef7b4ff5e406b260b222c47c2aa27d36df756db708064fcb239ae7\",\"urls\":[\"bzz-raw://5b67c24a5e1652b51ad2f37adad2905519f0e05e7c8b2b4d8b3e00b429bb9213\",\"dweb:/ipfs/QmarJq43GabAGGSqtMUb87ACYQt73mSFbXKyFAPDXpbFNM\"]},\"contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe8802e837a33aa4c7c5c97a9051b8ac7480e5735910ff7a624839b0b7c607320\",\"urls\":[\"bzz-raw://575e1a1d3a7e55879a22b4ca5b0be62ed05cf2e7a4b90ab4901d0c8436b0a329\",\"dweb:/ipfs/QmRnCbMdhjfsz2BocoTwwZeZEKJthA6N54pZhaHqYiRwmS\"]},\"contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x71f1f5865f89932201757a28dde71a4ae3aac5be8a563efdc0f290716ea3c0b6\",\"urls\":[\"bzz-raw://079f5f64c3ba58ca1bce36fb992f3833928a96d7309c81a6baddf780526fb9cc\",\"dweb:/ipfs/QmSoPgWdeDbYuTSjR6JmV5BpA6NYBEvHvALEAPpqJkzwHA\"]},\"contracts/libraries/Math.sol\":{\"keccak256\":\"0x05927cb4aa14897bd567607522c18d2d518fa803ade6f870fac244c6f3702a3b\",\"urls\":[\"bzz-raw://b2805464c2d75cbdd726d6bd5c9b8d1f2c8566b606ec769ffa9a194a42248862\",\"dweb:/ipfs/QmWBa9BsCH8gbncvDFXmfMJX1USTHvAREtc8C7nz6miQpw\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x9c8465de751317860b623cd77f7f53f41a84b6624c0580ee526dcf7a2b7cb80c\",\"urls\":[\"bzz-raw://9b371b3eb0649b486f76cd628cc060354d1ac11fa8baed1170567271655f05d7\",\"dweb:/ipfs/QmTUg31wK9UyX6o1Q1mxE4DQhuc1rWGBanNTu1uagNVQB6\"]},\"contracts/libraries/UQ112x112.sol\":{\"keccak256\":\"0x2240694530251ab376ae468d0a2d3ee8b3109e56f2acadbc203cdf341506dd31\",\"urls\":[\"bzz-raw://56f55c411faa2924df0915ff77129b9d8c64d3e4d28554e7234f3774ac95958a\",\"dweb:/ipfs/QmYrzUurXL8ijzS8EnLtQTVD7fKPReosg2DsEPXXCY7ec3\"]}},\"version\":1}",
947 "interface": [
948 {
949 "inputs": [
950 {
951 "internalType": "address",
952 "name": "_feeToSetter",
953 "type": "address"
954 }
955 ],
956 "payable": false,
957 "stateMutability": "nonpayable",
958 "type": "constructor"
959 },
960 {
961 "anonymous": false,
962 "inputs": [
963 {
964 "indexed": true,
965 "internalType": "address",
966 "name": "token0",
967 "type": "address"
968 },
969 {
970 "indexed": true,
971 "internalType": "address",
972 "name": "token1",
973 "type": "address"
974 },
975 {
976 "indexed": false,
977 "internalType": "address",
978 "name": "pair",
979 "type": "address"
980 },
981 {
982 "indexed": false,
983 "internalType": "uint256",
984 "name": "",
985 "type": "uint256"
986 }
987 ],
988 "name": "PairCreated",
989 "type": "event"
990 },
991 {
992 "constant": true,
993 "inputs": [
994 {
995 "internalType": "uint256",
996 "name": "",
997 "type": "uint256"
998 }
999 ],
1000 "name": "allPairs",
1001 "outputs": [
1002 {
1003 "internalType": "address",
1004 "name": "",
1005 "type": "address"
1006 }
1007 ],
1008 "payable": false,
1009 "stateMutability": "view",
1010 "type": "function"
1011 },
1012 {
1013 "constant": true,
1014 "inputs": [],
1015 "name": "allPairsLength",
1016 "outputs": [
1017 {
1018 "internalType": "uint256",
1019 "name": "",
1020 "type": "uint256"
1021 }
1022 ],
1023 "payable": false,
1024 "stateMutability": "view",
1025 "type": "function"
1026 },
1027 {
1028 "constant": false,
1029 "inputs": [
1030 {
1031 "internalType": "address",
1032 "name": "tokenA",
1033 "type": "address"
1034 },
1035 {
1036 "internalType": "address",
1037 "name": "tokenB",
1038 "type": "address"
1039 },
1040 {
1041 "internalType": "address",
1042 "name": "baseToken",
1043 "type": "address"
1044 },
1045 {
1046 "internalType": "address",
1047 "name": "pairOwner",
1048 "type": "address"
1049 },
1050 {
1051 "internalType": "uint256",
1052 "name": "m",
1053 "type": "uint256"
1054 },
1055 {
1056 "internalType": "uint256",
1057 "name": "n",
1058 "type": "uint256"
1059 },
1060 {
1061 "internalType": "uint256",
1062 "name": "fee",
1063 "type": "uint256"
1064 }
1065 ],
1066 "name": "createPair",
1067 "outputs": [
1068 {
1069 "internalType": "address",
1070 "name": "pair",
1071 "type": "address"
1072 }
1073 ],
1074 "payable": false,
1075 "stateMutability": "nonpayable",
1076 "type": "function"
1077 },
1078 {
1079 "constant": true,
1080 "inputs": [],
1081 "name": "feeTo",
1082 "outputs": [
1083 {
1084 "internalType": "address",
1085 "name": "",
1086 "type": "address"
1087 }
1088 ],
1089 "payable": false,
1090 "stateMutability": "view",
1091 "type": "function"
1092 },
1093 {
1094 "constant": true,
1095 "inputs": [],
1096 "name": "feeToSetter",
1097 "outputs": [
1098 {
1099 "internalType": "address",
1100 "name": "",
1101 "type": "address"
1102 }
1103 ],
1104 "payable": false,
1105 "stateMutability": "view",
1106 "type": "function"
1107 },
1108 {
1109 "constant": true,
1110 "inputs": [
1111 {
1112 "internalType": "address",
1113 "name": "",
1114 "type": "address"
1115 },
1116 {
1117 "internalType": "address",
1118 "name": "",
1119 "type": "address"
1120 }
1121 ],
1122 "name": "getPair",
1123 "outputs": [
1124 {
1125 "internalType": "address",
1126 "name": "",
1127 "type": "address"
1128 }
1129 ],
1130 "payable": false,
1131 "stateMutability": "view",
1132 "type": "function"
1133 },
1134 {
1135 "constant": false,
1136 "inputs": [
1137 {
1138 "internalType": "address",
1139 "name": "_feeTo",
1140 "type": "address"
1141 }
1142 ],
1143 "name": "setFeeTo",
1144 "outputs": [],
1145 "payable": false,
1146 "stateMutability": "nonpayable",
1147 "type": "function"
1148 },
1149 {
1150 "constant": false,
1151 "inputs": [
1152 {
1153 "internalType": "address",
1154 "name": "_feeToSetter",
1155 "type": "address"
1156 }
1157 ],
1158 "name": "setFeeToSetter",
1159 "outputs": [],
1160 "payable": false,
1161 "stateMutability": "nonpayable",
1162 "type": "function"
1163 }
1164 ],
1165 "bytecode": "608060405234801561001057600080fd5b50604051613cc4380380613cc48339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613c61806100636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063574f2ba31161005b578063574f2ba314610142578063a2e74af61461015c578063e6a4390514610191578063f46901ed146101cc57610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063419f5ef5146100e3575b600080fd5b6100956101ff565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009561021b565b610095600480360360208110156100dc57600080fd5b5035610237565b610095600480360360e08110156100f957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c0013561026b565b61014a6106e8565b60408051918252519081900360200190f35b61018f6004803603602081101561017257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ee565b005b610095600480360360408110156101a757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107bb565b61018f600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ee565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60008673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561030857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161061034557888a610348565b89895b909250905073ffffffffffffffffffffffffffffffffffffffff82166103cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561047057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610482906108bb565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517fe77fc7a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015286811660248301528d811660448301528c81166064830152608482018c905260a482018b905260c482018a905291519297509087169163e77fc7a49160e48082019260009290919082900301818387803b1580156105d457600080fd5b505af11580156105e8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a350505050979650505050505050565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff16331461077457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461087457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b613364806108c98339019056fe6080604052600160115534801561001557600080fd5b5060405146908060526133128239604080519182900360520182208282018252600a808452692ab734b9bbb0b8102b1960b11b602094850152825180840184526001808252603160f81b918601919091528351808601939093527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738838501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606084015260808301969096523060a0808401919091528351808403909101815260c090920190925280519201919091206003908155600580546001600160a01b031916331790556103e8909155600b9290925550600c556131f68061011c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820315ef6920c8e83e24f86d8e3cd1c116b86fec908ed26b63493a35141e98b3cf264736f6c63430005100032",
1166 "bin": "608060405234801561001057600080fd5b50604051613cc4380380613cc48339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613c61806100636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063574f2ba31161005b578063574f2ba314610142578063a2e74af61461015c578063e6a4390514610191578063f46901ed146101cc57610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063419f5ef5146100e3575b600080fd5b6100956101ff565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009561021b565b610095600480360360208110156100dc57600080fd5b5035610237565b610095600480360360e08110156100f957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c0013561026b565b61014a6106e8565b60408051918252519081900360200190f35b61018f6004803603602081101561017257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ee565b005b610095600480360360408110156101a757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107bb565b61018f600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ee565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60008673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561030857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161061034557888a610348565b89895b909250905073ffffffffffffffffffffffffffffffffffffffff82166103cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561047057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610482906108bb565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517fe77fc7a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015286811660248301528d811660448301528c81166064830152608482018c905260a482018b905260c482018a905291519297509087169163e77fc7a49160e48082019260009290919082900301818387803b1580156105d457600080fd5b505af11580156105e8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a350505050979650505050505050565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff16331461077457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461087457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b613364806108c98339019056fe6080604052600160115534801561001557600080fd5b5060405146908060526133128239604080519182900360520182208282018252600a808452692ab734b9bbb0b8102b1960b11b602094850152825180840184526001808252603160f81b918601919091528351808601939093527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738838501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606084015260808301969096523060a0808401919091528351808403909101815260c090920190925280519201919091206003908155600580546001600160a01b031916331790556103e8909155600b9290925550600c556131f68061011c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820315ef6920c8e83e24f86d8e3cd1c116b86fec908ed26b63493a35141e98b3cf264736f6c63430005100032",
1167 "bin-runtime": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063574f2ba31161005b578063574f2ba314610142578063a2e74af61461015c578063e6a4390514610191578063f46901ed146101cc57610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063419f5ef5146100e3575b600080fd5b6100956101ff565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61009561021b565b610095600480360360208110156100dc57600080fd5b5035610237565b610095600480360360e08110156100f957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c0013561026b565b61014a6106e8565b60408051918252519081900360200190f35b61018f6004803603602081101561017257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166106ee565b005b610095600480360360408110156101a757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107bb565b61018f600480360360208110156101e257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107ee565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061024457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60008673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561030857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161061034557888a610348565b89895b909250905073ffffffffffffffffffffffffffffffffffffffff82166103cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561047057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b606060405180602001610482906108bb565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517fe77fc7a400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015286811660248301528d811660448301528c81166064830152608482018c905260a482018b905260c482018a905291519297509087169163e77fc7a49160e48082019260009290919082900301818387803b1580156105d457600080fd5b505af11580156105e8573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a350505050979650505050505050565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff16331461077457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461087457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b613364806108c98339019056fe6080604052600160115534801561001557600080fd5b5060405146908060526133128239604080519182900360520182208282018252600a808452692ab734b9bbb0b8102b1960b11b602094850152825180840184526001808252603160f81b918601919091528351808601939093527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738838501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606084015260808301969096523060a0808401919091528351808403909101815260c090920190925280519201919091206003908155600580546001600160a01b031916331790556103e8909155600b9290925550600c556131f68061011c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820315ef6920c8e83e24f86d8e3cd1c116b86fec908ed26b63493a35141e98b3cf264736f6c63430005100032",
1168 "srcmap": "102:1861:1:-;;;406:84;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:84:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;406:84:1;457:11;:26;;-1:-1:-1;;;;;;457:26:1;-1:-1:-1;;;;;457:26:1;;;;;;;;;102:1861;;;-1:-1:-1;102:1861:1;;",
1169 "srcmap-runtime": "102:1861:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;102:1861:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;155:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;181:26;;;:::i;282:25::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;282:25:1;;:::i;596:1045::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;596:1045:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;496:94::-;;;:::i;:::-;;;;;;;;;;;;;;;;1795:166;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1795:166:1;;;;:::i;:::-;;214:62;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;214:62:1;;;;;;;;;;;:::i;1647:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1647:142:1;;;;:::i;155:20::-;;;;;;:::o;181:26::-;;;;;;:::o;282:25::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;282:25:1;:::o;596:1045::-;730:12;772:6;762:16;;:6;:16;;;;754:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:14;840;867:6;858:15;;:6;:15;;;:53;;896:6;904;858:53;;;877:6;885;858:53;823:88;;-1:-1:-1;823:88:1;-1:-1:-1;929:20:1;;;921:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;995:37;:15;;;1030:1;995:15;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:37;987:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1099:21;1123:32;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;1123:32:1;1099:56;;1165:12;1207:6;1215;1190:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1190:32:1;;;1180:43;;;;;;1165:58;;1311:4;1300:8;1294:15;1289:2;1279:8;1275:17;1272:1;1264:52;1335:80;;;;;;:31;:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1256:60;;-1:-1:-1;1335:31:1;;;;;;:80;;;;;-1:-1:-1;;1335:80:1;;;;;;;;-1:-1:-1;1335:31:1;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;1335:80:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;1425:15:1;;;;;;;;:7;:15;;;;;;;;:23;;;;;;;;;;;;:30;;;;;;;;;;;;;;1465:15;;;;;;:23;;;;;;;;:30;;;;;;;;1550:8;27:10:-1;;-1:-1;23:18;;45:23;;1550:19:1;;;;;;;;;;;;;;;;;;1618:15;;1584:50;;;;;;;;;;;;;;;;;;;;;;596:1045;;;;;;;;;;;;;:::o;496:94::-;568:8;:15;496:94;:::o;1795:166::-;1882:11;;;;1868:10;:25;1860:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1928:11;:26;;;;;;;;;;;;;;;1795:166::o;214:62::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1647:142::-;1722:11;;;;1708:10;:25;1700:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1768:5;:14;;;;;;;;;;;;;;;1647:142::o;102:1861::-;;;;;;;;:::o"
1170 },
1171 "contracts/UniswapV2Pair.sol:UniswapV2Pair": {
1172 "abi": [
1173 {
1174 "inputs": [],
1175 "payable": false,
1176 "stateMutability": "nonpayable",
1177 "type": "constructor"
1178 },
1179 {
1180 "anonymous": false,
1181 "inputs": [
1182 {
1183 "indexed": true,
1184 "internalType": "address",
1185 "name": "owner",
1186 "type": "address"
1187 },
1188 {
1189 "indexed": true,
1190 "internalType": "address",
1191 "name": "spender",
1192 "type": "address"
1193 },
1194 {
1195 "indexed": false,
1196 "internalType": "uint256",
1197 "name": "value",
1198 "type": "uint256"
1199 }
1200 ],
1201 "name": "Approval",
1202 "type": "event"
1203 },
1204 {
1205 "anonymous": false,
1206 "inputs": [
1207 {
1208 "indexed": true,
1209 "internalType": "address",
1210 "name": "sender",
1211 "type": "address"
1212 },
1213 {
1214 "indexed": false,
1215 "internalType": "uint256",
1216 "name": "amount0",
1217 "type": "uint256"
1218 },
1219 {
1220 "indexed": false,
1221 "internalType": "uint256",
1222 "name": "amount1",
1223 "type": "uint256"
1224 },
1225 {
1226 "indexed": true,
1227 "internalType": "address",
1228 "name": "to",
1229 "type": "address"
1230 }
1231 ],
1232 "name": "Burn",
1233 "type": "event"
1234 },
1235 {
1236 "anonymous": false,
1237 "inputs": [
1238 {
1239 "indexed": true,
1240 "internalType": "address",
1241 "name": "sender",
1242 "type": "address"
1243 },
1244 {
1245 "indexed": false,
1246 "internalType": "uint256",
1247 "name": "amount0",
1248 "type": "uint256"
1249 },
1250 {
1251 "indexed": false,
1252 "internalType": "uint256",
1253 "name": "amount1",
1254 "type": "uint256"
1255 }
1256 ],
1257 "name": "Mint",
1258 "type": "event"
1259 },
1260 {
1261 "anonymous": false,
1262 "inputs": [
1263 {
1264 "indexed": true,
1265 "internalType": "address",
1266 "name": "sender",
1267 "type": "address"
1268 },
1269 {
1270 "indexed": false,
1271 "internalType": "uint256",
1272 "name": "amount0In",
1273 "type": "uint256"
1274 },
1275 {
1276 "indexed": false,
1277 "internalType": "uint256",
1278 "name": "amount1In",
1279 "type": "uint256"
1280 },
1281 {
1282 "indexed": false,
1283 "internalType": "uint256",
1284 "name": "amount0Out",
1285 "type": "uint256"
1286 },
1287 {
1288 "indexed": false,
1289 "internalType": "uint256",
1290 "name": "amount1Out",
1291 "type": "uint256"
1292 },
1293 {
1294 "indexed": true,
1295 "internalType": "address",
1296 "name": "to",
1297 "type": "address"
1298 }
1299 ],
1300 "name": "Swap",
1301 "type": "event"
1302 },
1303 {
1304 "anonymous": false,
1305 "inputs": [
1306 {
1307 "indexed": false,
1308 "internalType": "uint112",
1309 "name": "reserve0",
1310 "type": "uint112"
1311 },
1312 {
1313 "indexed": false,
1314 "internalType": "uint112",
1315 "name": "reserve1",
1316 "type": "uint112"
1317 }
1318 ],
1319 "name": "Sync",
1320 "type": "event"
1321 },
1322 {
1323 "anonymous": false,
1324 "inputs": [
1325 {
1326 "indexed": true,
1327 "internalType": "address",
1328 "name": "from",
1329 "type": "address"
1330 },
1331 {
1332 "indexed": true,
1333 "internalType": "address",
1334 "name": "to",
1335 "type": "address"
1336 },
1337 {
1338 "indexed": false,
1339 "internalType": "uint256",
1340 "name": "value",
1341 "type": "uint256"
1342 }
1343 ],
1344 "name": "Transfer",
1345 "type": "event"
1346 },
1347 {
1348 "constant": true,
1349 "inputs": [],
1350 "name": "DOMAIN_SEPARATOR",
1351 "outputs": [
1352 {
1353 "internalType": "bytes32",
1354 "name": "",
1355 "type": "bytes32"
1356 }
1357 ],
1358 "payable": false,
1359 "stateMutability": "view",
1360 "type": "function"
1361 },
1362 {
1363 "constant": true,
1364 "inputs": [],
1365 "name": "MINIMUM_LIQUIDITY",
1366 "outputs": [
1367 {
1368 "internalType": "uint256",
1369 "name": "",
1370 "type": "uint256"
1371 }
1372 ],
1373 "payable": false,
1374 "stateMutability": "view",
1375 "type": "function"
1376 },
1377 {
1378 "constant": true,
1379 "inputs": [],
1380 "name": "PERMIT_TYPEHASH",
1381 "outputs": [
1382 {
1383 "internalType": "bytes32",
1384 "name": "",
1385 "type": "bytes32"
1386 }
1387 ],
1388 "payable": false,
1389 "stateMutability": "view",
1390 "type": "function"
1391 },
1392 {
1393 "constant": true,
1394 "inputs": [
1395 {
1396 "internalType": "address",
1397 "name": "",
1398 "type": "address"
1399 },
1400 {
1401 "internalType": "address",
1402 "name": "",
1403 "type": "address"
1404 }
1405 ],
1406 "name": "allowance",
1407 "outputs": [
1408 {
1409 "internalType": "uint256",
1410 "name": "",
1411 "type": "uint256"
1412 }
1413 ],
1414 "payable": false,
1415 "stateMutability": "view",
1416 "type": "function"
1417 },
1418 {
1419 "constant": false,
1420 "inputs": [
1421 {
1422 "internalType": "address",
1423 "name": "spender",
1424 "type": "address"
1425 },
1426 {
1427 "internalType": "uint256",
1428 "name": "value",
1429 "type": "uint256"
1430 }
1431 ],
1432 "name": "approve",
1433 "outputs": [
1434 {
1435 "internalType": "bool",
1436 "name": "",
1437 "type": "bool"
1438 }
1439 ],
1440 "payable": false,
1441 "stateMutability": "nonpayable",
1442 "type": "function"
1443 },
1444 {
1445 "constant": true,
1446 "inputs": [
1447 {
1448 "internalType": "address",
1449 "name": "",
1450 "type": "address"
1451 }
1452 ],
1453 "name": "balanceOf",
1454 "outputs": [
1455 {
1456 "internalType": "uint256",
1457 "name": "",
1458 "type": "uint256"
1459 }
1460 ],
1461 "payable": false,
1462 "stateMutability": "view",
1463 "type": "function"
1464 },
1465 {
1466 "constant": true,
1467 "inputs": [],
1468 "name": "baseToken",
1469 "outputs": [
1470 {
1471 "internalType": "address",
1472 "name": "",
1473 "type": "address"
1474 }
1475 ],
1476 "payable": false,
1477 "stateMutability": "view",
1478 "type": "function"
1479 },
1480 {
1481 "constant": true,
1482 "inputs": [],
1483 "name": "blockTimestampLast",
1484 "outputs": [
1485 {
1486 "internalType": "uint32",
1487 "name": "",
1488 "type": "uint32"
1489 }
1490 ],
1491 "payable": false,
1492 "stateMutability": "view",
1493 "type": "function"
1494 },
1495 {
1496 "constant": false,
1497 "inputs": [
1498 {
1499 "internalType": "address",
1500 "name": "to",
1501 "type": "address"
1502 }
1503 ],
1504 "name": "burn",
1505 "outputs": [
1506 {
1507 "internalType": "uint256",
1508 "name": "amount0",
1509 "type": "uint256"
1510 },
1511 {
1512 "internalType": "uint256",
1513 "name": "amount1",
1514 "type": "uint256"
1515 }
1516 ],
1517 "payable": false,
1518 "stateMutability": "nonpayable",
1519 "type": "function"
1520 },
1521 {
1522 "constant": true,
1523 "inputs": [],
1524 "name": "decimals",
1525 "outputs": [
1526 {
1527 "internalType": "uint8",
1528 "name": "",
1529 "type": "uint8"
1530 }
1531 ],
1532 "payable": false,
1533 "stateMutability": "view",
1534 "type": "function"
1535 },
1536 {
1537 "constant": true,
1538 "inputs": [],
1539 "name": "factory",
1540 "outputs": [
1541 {
1542 "internalType": "address",
1543 "name": "",
1544 "type": "address"
1545 }
1546 ],
1547 "payable": false,
1548 "stateMutability": "view",
1549 "type": "function"
1550 },
1551 {
1552 "constant": true,
1553 "inputs": [],
1554 "name": "fee",
1555 "outputs": [
1556 {
1557 "internalType": "uint256",
1558 "name": "",
1559 "type": "uint256"
1560 }
1561 ],
1562 "payable": false,
1563 "stateMutability": "view",
1564 "type": "function"
1565 },
1566 {
1567 "constant": true,
1568 "inputs": [],
1569 "name": "getCurveParams",
1570 "outputs": [
1571 {
1572 "internalType": "address",
1573 "name": "_baseToken",
1574 "type": "address"
1575 },
1576 {
1577 "internalType": "uint256",
1578 "name": "_m",
1579 "type": "uint256"
1580 },
1581 {
1582 "internalType": "uint256",
1583 "name": "_n",
1584 "type": "uint256"
1585 },
1586 {
1587 "internalType": "uint256",
1588 "name": "_fee",
1589 "type": "uint256"
1590 }
1591 ],
1592 "payable": false,
1593 "stateMutability": "view",
1594 "type": "function"
1595 },
1596 {
1597 "constant": true,
1598 "inputs": [],
1599 "name": "getReserves",
1600 "outputs": [
1601 {
1602 "internalType": "uint112",
1603 "name": "_reserve0",
1604 "type": "uint112"
1605 },
1606 {
1607 "internalType": "uint112",
1608 "name": "_reserve1",
1609 "type": "uint112"
1610 },
1611 {
1612 "internalType": "uint32",
1613 "name": "_blockTimestampLast",
1614 "type": "uint32"
1615 }
1616 ],
1617 "payable": false,
1618 "stateMutability": "view",
1619 "type": "function"
1620 },
1621 {
1622 "constant": false,
1623 "inputs": [
1624 {
1625 "internalType": "address",
1626 "name": "_token0",
1627 "type": "address"
1628 },
1629 {
1630 "internalType": "address",
1631 "name": "_token1",
1632 "type": "address"
1633 },
1634 {
1635 "internalType": "address",
1636 "name": "_baseToken",
1637 "type": "address"
1638 },
1639 {
1640 "internalType": "address",
1641 "name": "_pairOwner",
1642 "type": "address"
1643 },
1644 {
1645 "internalType": "uint256",
1646 "name": "_slope",
1647 "type": "uint256"
1648 },
1649 {
1650 "internalType": "uint256",
1651 "name": "_exp",
1652 "type": "uint256"
1653 },
1654 {
1655 "internalType": "uint256",
1656 "name": "_fee",
1657 "type": "uint256"
1658 }
1659 ],
1660 "name": "initialize",
1661 "outputs": [],
1662 "payable": false,
1663 "stateMutability": "nonpayable",
1664 "type": "function"
1665 },
1666 {
1667 "constant": true,
1668 "inputs": [],
1669 "name": "kLast",
1670 "outputs": [
1671 {
1672 "internalType": "uint256",
1673 "name": "",
1674 "type": "uint256"
1675 }
1676 ],
1677 "payable": false,
1678 "stateMutability": "view",
1679 "type": "function"
1680 },
1681 {
1682 "constant": true,
1683 "inputs": [],
1684 "name": "m",
1685 "outputs": [
1686 {
1687 "internalType": "uint256",
1688 "name": "",
1689 "type": "uint256"
1690 }
1691 ],
1692 "payable": false,
1693 "stateMutability": "view",
1694 "type": "function"
1695 },
1696 {
1697 "constant": false,
1698 "inputs": [
1699 {
1700 "internalType": "address",
1701 "name": "to",
1702 "type": "address"
1703 }
1704 ],
1705 "name": "mint",
1706 "outputs": [
1707 {
1708 "internalType": "uint256",
1709 "name": "liquidity",
1710 "type": "uint256"
1711 }
1712 ],
1713 "payable": false,
1714 "stateMutability": "nonpayable",
1715 "type": "function"
1716 },
1717 {
1718 "constant": true,
1719 "inputs": [],
1720 "name": "n",
1721 "outputs": [
1722 {
1723 "internalType": "uint256",
1724 "name": "",
1725 "type": "uint256"
1726 }
1727 ],
1728 "payable": false,
1729 "stateMutability": "view",
1730 "type": "function"
1731 },
1732 {
1733 "constant": true,
1734 "inputs": [],
1735 "name": "name",
1736 "outputs": [
1737 {
1738 "internalType": "string",
1739 "name": "",
1740 "type": "string"
1741 }
1742 ],
1743 "payable": false,
1744 "stateMutability": "view",
1745 "type": "function"
1746 },
1747 {
1748 "constant": true,
1749 "inputs": [
1750 {
1751 "internalType": "address",
1752 "name": "",
1753 "type": "address"
1754 }
1755 ],
1756 "name": "nonces",
1757 "outputs": [
1758 {
1759 "internalType": "uint256",
1760 "name": "",
1761 "type": "uint256"
1762 }
1763 ],
1764 "payable": false,
1765 "stateMutability": "view",
1766 "type": "function"
1767 },
1768 {
1769 "constant": true,
1770 "inputs": [],
1771 "name": "pairOwner",
1772 "outputs": [
1773 {
1774 "internalType": "address",
1775 "name": "",
1776 "type": "address"
1777 }
1778 ],
1779 "payable": false,
1780 "stateMutability": "view",
1781 "type": "function"
1782 },
1783 {
1784 "constant": false,
1785 "inputs": [
1786 {
1787 "internalType": "address",
1788 "name": "owner",
1789 "type": "address"
1790 },
1791 {
1792 "internalType": "address",
1793 "name": "spender",
1794 "type": "address"
1795 },
1796 {
1797 "internalType": "uint256",
1798 "name": "value",
1799 "type": "uint256"
1800 },
1801 {
1802 "internalType": "uint256",
1803 "name": "deadline",
1804 "type": "uint256"
1805 },
1806 {
1807 "internalType": "uint8",
1808 "name": "v",
1809 "type": "uint8"
1810 },
1811 {
1812 "internalType": "bytes32",
1813 "name": "r",
1814 "type": "bytes32"
1815 },
1816 {
1817 "internalType": "bytes32",
1818 "name": "s",
1819 "type": "bytes32"
1820 }
1821 ],
1822 "name": "permit",
1823 "outputs": [],
1824 "payable": false,
1825 "stateMutability": "nonpayable",
1826 "type": "function"
1827 },
1828 {
1829 "constant": true,
1830 "inputs": [],
1831 "name": "price0CumulativeLast",
1832 "outputs": [
1833 {
1834 "internalType": "uint256",
1835 "name": "",
1836 "type": "uint256"
1837 }
1838 ],
1839 "payable": false,
1840 "stateMutability": "view",
1841 "type": "function"
1842 },
1843 {
1844 "constant": true,
1845 "inputs": [],
1846 "name": "price1CumulativeLast",
1847 "outputs": [
1848 {
1849 "internalType": "uint256",
1850 "name": "",
1851 "type": "uint256"
1852 }
1853 ],
1854 "payable": false,
1855 "stateMutability": "view",
1856 "type": "function"
1857 },
1858 {
1859 "constant": false,
1860 "inputs": [
1861 {
1862 "internalType": "address",
1863 "name": "_nextOwner",
1864 "type": "address"
1865 }
1866 ],
1867 "name": "setPairOwner",
1868 "outputs": [],
1869 "payable": false,
1870 "stateMutability": "nonpayable",
1871 "type": "function"
1872 },
1873 {
1874 "constant": false,
1875 "inputs": [
1876 {
1877 "internalType": "address",
1878 "name": "to",
1879 "type": "address"
1880 }
1881 ],
1882 "name": "skim",
1883 "outputs": [],
1884 "payable": false,
1885 "stateMutability": "nonpayable",
1886 "type": "function"
1887 },
1888 {
1889 "constant": false,
1890 "inputs": [
1891 {
1892 "internalType": "uint256",
1893 "name": "amount0Out",
1894 "type": "uint256"
1895 },
1896 {
1897 "internalType": "uint256",
1898 "name": "amount1Out",
1899 "type": "uint256"
1900 },
1901 {
1902 "internalType": "address",
1903 "name": "to",
1904 "type": "address"
1905 },
1906 {
1907 "internalType": "bytes",
1908 "name": "data",
1909 "type": "bytes"
1910 }
1911 ],
1912 "name": "swap",
1913 "outputs": [],
1914 "payable": false,
1915 "stateMutability": "nonpayable",
1916 "type": "function"
1917 },
1918 {
1919 "constant": true,
1920 "inputs": [],
1921 "name": "symbol",
1922 "outputs": [
1923 {
1924 "internalType": "string",
1925 "name": "",
1926 "type": "string"
1927 }
1928 ],
1929 "payable": false,
1930 "stateMutability": "view",
1931 "type": "function"
1932 },
1933 {
1934 "constant": false,
1935 "inputs": [],
1936 "name": "sync",
1937 "outputs": [],
1938 "payable": false,
1939 "stateMutability": "nonpayable",
1940 "type": "function"
1941 },
1942 {
1943 "constant": true,
1944 "inputs": [],
1945 "name": "token0",
1946 "outputs": [
1947 {
1948 "internalType": "address",
1949 "name": "",
1950 "type": "address"
1951 }
1952 ],
1953 "payable": false,
1954 "stateMutability": "view",
1955 "type": "function"
1956 },
1957 {
1958 "constant": true,
1959 "inputs": [],
1960 "name": "token1",
1961 "outputs": [
1962 {
1963 "internalType": "address",
1964 "name": "",
1965 "type": "address"
1966 }
1967 ],
1968 "payable": false,
1969 "stateMutability": "view",
1970 "type": "function"
1971 },
1972 {
1973 "constant": true,
1974 "inputs": [],
1975 "name": "totalSupply",
1976 "outputs": [
1977 {
1978 "internalType": "uint256",
1979 "name": "",
1980 "type": "uint256"
1981 }
1982 ],
1983 "payable": false,
1984 "stateMutability": "view",
1985 "type": "function"
1986 },
1987 {
1988 "constant": false,
1989 "inputs": [
1990 {
1991 "internalType": "address",
1992 "name": "to",
1993 "type": "address"
1994 },
1995 {
1996 "internalType": "uint256",
1997 "name": "value",
1998 "type": "uint256"
1999 }
2000 ],
2001 "name": "transfer",
2002 "outputs": [
2003 {
2004 "internalType": "bool",
2005 "name": "",
2006 "type": "bool"
2007 }
2008 ],
2009 "payable": false,
2010 "stateMutability": "nonpayable",
2011 "type": "function"
2012 },
2013 {
2014 "constant": false,
2015 "inputs": [
2016 {
2017 "internalType": "address",
2018 "name": "from",
2019 "type": "address"
2020 },
2021 {
2022 "internalType": "address",
2023 "name": "to",
2024 "type": "address"
2025 },
2026 {
2027 "internalType": "uint256",
2028 "name": "value",
2029 "type": "uint256"
2030 }
2031 ],
2032 "name": "transferFrom",
2033 "outputs": [
2034 {
2035 "internalType": "bool",
2036 "name": "",
2037 "type": "bool"
2038 }
2039 ],
2040 "payable": false,
2041 "stateMutability": "nonpayable",
2042 "type": "function"
2043 }
2044 ],
2045 "evm": {
2046 "bytecode": {
2047 "linkReferences": {},
2048 "object": "6080604052600160115534801561001557600080fd5b5060405146908060526133128239604080519182900360520182208282018252600a808452692ab734b9bbb0b8102b1960b11b602094850152825180840184526001808252603160f81b918601919091528351808601939093527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738838501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606084015260808301969096523060a0808401919091528351808403909101815260c090920190925280519201919091206003908155600580546001600160a01b031916331790556103e8909155600b9290925550600c556131f68061011c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
2049 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x11 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0x3312 DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xA DUP1 DUP5 MSTORE PUSH10 0x2AB734B9BBB0B8102B19 PUSH1 0xB1 SHL PUSH1 0x20 SWAP5 DUP6 ADD MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x1 DUP1 DUP3 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH32 0xBFCC8EF98FFBF7B6C3FEC7BF5185B566B9863E35A9D83ACD49AD6824B5969738 DUP4 DUP6 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD SWAP7 SWAP1 SWAP7 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP3 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SWAP1 DUP2 SSTORE PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x3E8 SWAP1 SWAP2 SSTORE PUSH1 0xB SWAP3 SWAP1 SWAP3 SSTORE POP PUSH1 0xC SSTORE PUSH2 0x31F6 DUP1 PUSH2 0x11C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x241 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x145 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0xD505ACCF GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xDDCA3F43 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDDCA3F43 EQ PUSH2 0x781 JUMPI DUP1 PUSH4 0xE77FC7A4 EQ PUSH2 0x789 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x7E8 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x6E8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x746 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x6AF JUMPI DUP1 PUSH4 0xC55DAE63 EQ PUSH2 0x6B7 JUMPI DUP1 PUSH4 0xC5700A02 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x6E0 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x89AFCB44 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0xBC25CF77 EQ PUSH2 0x67C JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x89AFCB44 EQ PUSH2 0x5E7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x633 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0x808413FA EQ PUSH2 0x5A2 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x2E52D606 GT PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x3644E515 GT PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x5A2EE019 GT PUSH2 0x18C JUMPI DUP1 PUSH4 0x5A2EE019 EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x501 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x4E9 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x2E52D606 EQ PUSH2 0x4AB JUMPI DUP1 PUSH4 0x2EC2FE3D EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x4C3 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xDFE1681 GT PUSH2 0x214 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x435 JUMPI DUP1 PUSH4 0x2DD2A921 EQ PUSH2 0x478 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x22C0D9F EQ PUSH2 0x246 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x902F1AC EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x39D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 DUP4 ADD CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x7F0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2E9 PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x323 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x30B JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x350 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0xEFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xF52 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3F2 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x423 PUSH2 0xF85 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x44B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xF8B JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106A JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1137 JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x113D JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1159 JUMP JUMPDEST PUSH2 0x4CB PUSH2 0x117D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x423 PUSH2 0x1182 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1188 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x118E JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1194 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x119A JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1644 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1656 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x165C JUMP JUMPDEST PUSH2 0x5AA PUSH2 0x166E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 RETURN JUMPDEST PUSH2 0x61A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1699 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x2E9 PUSH2 0x1BC0 JUMP JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1BF9 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1C06 JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C0C JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x1E02 JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x1E1E JUMP JUMPDEST PUSH2 0x6C7 PUSH2 0x1E3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3F2 PUSH2 0x1E66 JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1E82 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x214E JUMP JUMPDEST PUSH2 0x423 PUSH2 0x216B JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x79F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2171 JUMP JUMPDEST PUSH2 0x2DF PUSH2 0x23CE JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE DUP5 ISZERO ISZERO DUP1 PUSH2 0x874 JUMPI POP PUSH1 0x0 DUP5 GT JUMPDEST PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3108 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8D4 PUSH2 0xEFD JUMP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 LT DUP1 ISZERO PUSH2 0x907 JUMPI POP DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 LT JUMPDEST PUSH2 0x95C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3151 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP10 AND DUP3 EQ DUP1 ISZERO SWAP1 PUSH2 0x9C1 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST PUSH2 0xA2C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F544F0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP11 ISZERO PUSH2 0xA3D JUMPI PUSH2 0xA3D DUP3 DUP11 DUP14 PUSH2 0x25B4 JUMP JUMPDEST DUP10 ISZERO PUSH2 0xA4E JUMPI PUSH2 0xA4E DUP2 DUP11 DUP13 PUSH2 0x25B4 JUMP JUMPDEST DUP7 ISZERO PUSH2 0xB30 JUMPI DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x10D1E85C CALLER DUP14 DUP14 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP5 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xBC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 SWAP2 POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP11 SWAP1 SUB DUP4 GT PUSH2 0xC8C JUMPI PUSH1 0x0 PUSH2 0xCA2 JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 GT PUSH2 0xCC6 JUMPI PUSH1 0x0 PUSH2 0xCDC JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 PUSH2 0xCED JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0xD42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x312D PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD76 PUSH2 0xD58 DUP5 PUSH1 0x3 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0xD6A DUP8 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xD8E PUSH2 0xD58 DUP5 PUSH1 0x3 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH2 0xDC6 PUSH3 0xF4240 PUSH2 0xDBA PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP1 DUP12 AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0xDD6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST LT ISZERO PUSH2 0xE43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204B0000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH2 0xE51 DUP5 DUP5 DUP9 DUP9 PUSH2 0x28B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP1 DUP3 ADD DUP14 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP2 CALLER SWAP2 PUSH32 0xD78AD95FA46C994B6551D0DA85FC275FE613CE37657FB8D5E3D130840159D822 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x556E697377617020563200000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH15 0x10000000000000000000000000000 DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF5F CALLER DUP5 DUP5 PUSH2 0x2B75 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x1055 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x1023 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x1060 DUP5 DUP5 DUP5 PUSH2 0x2BE4 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x10F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x120D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP2 SWAP1 SSTORE DUP1 PUSH2 0x121D PUSH2 0xEFD JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP SWAP2 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x138A DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13AE DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13BC DUP8 DUP8 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x13F0 JUMPI DUP8 PUSH2 0x13F2 JUMP JUMPDEST DUP9 JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x1423 JUMPI DUP10 PUSH2 0x1425 JUMP JUMPDEST DUP9 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E8 PUSH1 0xA SLOAD DUP2 PUSH2 0x1436 JUMPI INVALID JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP1 SWAP2 DIV SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x146A JUMPI DUP7 PUSH2 0x146C JUMP JUMPDEST DUP8 JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x14A3 JUMPI PUSH1 0xB SLOAD DUP10 EXP DUP4 MUL PUSH2 0x14AB JUMP JUMPDEST PUSH1 0xB SLOAD DUP9 EXP DUP4 MUL JUMPDEST SWAP1 POP DUP6 PUSH2 0x14E4 JUMPI PUSH2 0x14D0 PUSH2 0x3E8 PUSH2 0xD6A PUSH2 0x14CB DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0x2E51 JUMP JUMPDEST SWAP14 POP PUSH2 0x14DF PUSH1 0x0 PUSH2 0x3E8 PUSH2 0x2EA3 JUMP JUMPDEST PUSH2 0x1541 JUMP JUMPDEST PUSH2 0x153E PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x1508 DUP5 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x150F JUMPI INVALID JUMPDEST DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x1531 DUP5 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x1538 JUMPI INVALID JUMPDEST DIV PUSH2 0x2F53 JUMP JUMPDEST SWAP14 POP JUMPDEST PUSH1 0x0 DUP15 GT PUSH2 0x159A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x319A PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15A4 DUP16 DUP16 PUSH2 0x2EA3 JUMP JUMPDEST PUSH2 0x15B0 DUP12 DUP12 DUP16 DUP16 PUSH2 0x28B9 JUMP JUMPDEST DUP7 ISZERO PUSH2 0x15F2 JUMPI PUSH1 0xD SLOAD PUSH2 0x15EE SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH1 0x10 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP11 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE DUP2 MLOAD CALLER SWAP3 PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP SWAP10 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x170D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP2 SWAP1 SSTORE DUP1 PUSH2 0x171D PUSH2 0xEFD JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP5 SWAP7 POP SWAP3 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 SWAP2 AND SWAP2 PUSH1 0x0 SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xA SLOAD SWAP3 SWAP4 POP SWAP2 PUSH2 0x3E8 SWAP1 DIV SWAP1 PUSH2 0x1890 DUP10 DUP10 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x18DE SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x18CF JUMPI PUSH1 0xB SLOAD DUP9 EXP DUP6 MUL PUSH2 0x18D1 JUMP JUMPDEST DUP8 JUMPDEST DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x18E5 JUMPI INVALID JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP1 SWAP2 DIV SWAP14 POP DUP3 SWAP2 PUSH2 0x1929 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 AND EQ PUSH2 0x1922 JUMPI PUSH1 0xB SLOAD DUP8 EXP DUP6 MUL PUSH2 0x18D1 JUMP JUMPDEST DUP6 DUP8 PUSH2 0x27C1 JUMP JUMPDEST DUP2 PUSH2 0x1930 JUMPI INVALID JUMPDEST DIV SWAP11 POP PUSH1 0x0 DUP13 GT DUP1 ISZERO PUSH2 0x1943 JUMPI POP PUSH1 0x0 DUP12 GT JUMPDEST PUSH2 0x1998 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3172 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x19A2 ADDRESS DUP6 PUSH2 0x2F6B JUMP JUMPDEST PUSH2 0x19AD DUP9 DUP15 DUP15 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0x19B8 DUP8 DUP15 DUP14 PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP8 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AD4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x1AFA DUP7 DUP7 DUP13 DUP13 PUSH2 0x28B9 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1B3C JUMPI PUSH1 0xD SLOAD PUSH2 0x1B38 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH1 0x10 SSTORE JUMPDEST DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDCCD412F0B1252819CB1FD330B93224CA42612892BB3F4F789976E6D81936496 DUP15 DUP15 PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP PUSH1 0x1 PUSH1 0x11 DUP2 SWAP1 SSTORE POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x554E492D56320000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF5F CALLER DUP5 DUP5 PUSH2 0x2BE4 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x1C7D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0xD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP5 SWAP1 SWAP4 AND SWAP3 PUSH2 0x1D59 SWAP3 DUP6 SWAP3 DUP8 SWAP3 PUSH2 0x1D54 SWAP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP6 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x1DF8 SWAP3 DUP5 SWAP3 DUP8 SWAP3 PUSH2 0x1D54 SWAP3 PUSH15 0x10000000000000000000000000000 SWAP1 DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x1EF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2052 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x20CD JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x2138 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2143 DUP10 DUP10 DUP10 PUSH2 0x2B75 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x21F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP3 LT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A206578706F6E656E74206D757374206265203E3D2031 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP4 LT ISZERO PUSH2 0x22D7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20736C6F7065206D757374206265203E3D2031000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0x2347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20666565206D757374206265203E3D20310000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP9 DUP10 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP8 DUP10 AND SWAP8 DUP3 AND SWAP8 SWAP1 SWAP8 OR SWAP1 SWAP7 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP6 DUP9 AND SWAP6 DUP8 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP4 SWAP1 SWAP7 AND SWAP3 SWAP1 SWAP5 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP4 SSTORE PUSH1 0xA SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xB SSTORE PUSH1 0xC SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x243F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x25AD SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2567 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x257D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0xD SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x28B9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP5 MSTORE SWAP2 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP2 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x26BA JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x267D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x271C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x274F JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x274F JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x274C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x27BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205452414E534645525F4641494C4544000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x27DC JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x27D9 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x28E5 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO JUMPDEST PUSH2 0x2950 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204F564552464C4F5700000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xD SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x29A0 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x29BB JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2A6B JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x29FE DUP6 PUSH2 0x29D4 DUP7 PUSH2 0x3030 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3054 AND JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x2A3E DUP5 PUSH2 0x29D4 DUP8 PUSH2 0x3030 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 DUP9 DUP4 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH4 0xFFFFFFFF DUP8 AND MUL OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x1C411E9A96E071241C2F21F7726B17AE89E3CAB4C78BE50E062B03A9FFFBBAD1 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2C1A SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x2C5C SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x10 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO DUP1 ISZERO SWAP5 POP SWAP2 SWAP3 POP SWAP1 PUSH2 0x2E3D JUMPI DUP1 ISZERO PUSH2 0x2E38 JUMPI PUSH1 0x0 PUSH2 0x2DB1 PUSH2 0x14CB PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP1 DUP9 AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2DBE DUP4 PUSH2 0x2E51 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2E35 JUMPI PUSH1 0x0 PUSH2 0x2DEC PUSH2 0x2DDD DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E11 DUP4 PUSH2 0x2E05 DUP7 PUSH1 0x5 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2E1E JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 ISZERO PUSH2 0x2E31 JUMPI PUSH2 0x2E31 DUP8 DUP3 PUSH2 0x2EA3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMPDEST PUSH2 0x2E49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2E49 JUMPI PUSH1 0x0 PUSH1 0x10 SSTORE JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x2E94 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2E8E JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x2E7D JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x2E86 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x2E66 JUMP JUMPDEST POP PUSH2 0x2E9E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x2E9E JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x2EB6 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EEE SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2F62 JUMPI DUP2 PUSH2 0x2F64 JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2FA1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2FDB SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 PUSH2 0x308D JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F TIMESTAMP SSTORE MSTORE 0x4E GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F 0x4D 0x49 0x4E SLOAD GASLIMIT DIFFICULTY LOG2 PUSH6 0x627A7A723158 KECCAK256 SWAP9 MSTORE8 0xEB 0x4C PUSH25 0x3734250485704256A3D152364C8047780FC78421578CB59C38 0xA5 SWAP12 PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN GASLIMIT 0x49 POP CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ",
2050 "sourceMap": "290:11412:2:-;;;1407:1;1383:25;;2657:108;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1102:95:0;;1006:7;;1102:95;;;;;;;;;;;;;;;;1231:4;;;;;;;;;-1:-1:-1;1231:4:0;;;;;1265:10;;;;;;;;;;;-1:-1:-1;1265:10:0;;;;;;;1074:272;;;;;;;;;1215:22;1074:272;;;;1255:21;1074:272;;;;;;;;;;;1327:4;1074:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1074:272:0;;;;;;;1051:305;;;;;;;;1032:16;:324;;;2688:7:2;:20;;-1:-1:-1;2688:20:2;2698:10;2688:20;;;2722:4;2718:8;;;2736:1;:5;;;;-1:-1:-1;2751:3:2;:7;-1:-1:-1;;290:11412:2;-1:-1:-1;290:11412:2;;"
2051 },
2052 "deployedBytecode": {
2053 "linkReferences": {},
2054 "object": "608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032",
2055 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x241 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x145 JUMPI DUP1 PUSH4 0xC45A0155 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0xD505ACCF GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xDDCA3F43 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDDCA3F43 EQ PUSH2 0x781 JUMPI DUP1 PUSH4 0xE77FC7A4 EQ PUSH2 0x789 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x7E8 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x6E8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x746 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xC45A0155 EQ PUSH2 0x6AF JUMPI DUP1 PUSH4 0xC55DAE63 EQ PUSH2 0x6B7 JUMPI DUP1 PUSH4 0xC5700A02 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xD21220A7 EQ PUSH2 0x6E0 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x89AFCB44 GT PUSH2 0x114 JUMPI DUP1 PUSH4 0xA9059CBB GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0xBC25CF77 EQ PUSH2 0x67C JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x89AFCB44 EQ PUSH2 0x5E7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x633 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x534 JUMPI DUP1 PUSH4 0x7464FC3D EQ PUSH2 0x567 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0x808413FA EQ PUSH2 0x5A2 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x2E52D606 GT PUSH2 0x1D8 JUMPI DUP1 PUSH4 0x3644E515 GT PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x5A2EE019 GT PUSH2 0x18C JUMPI DUP1 PUSH4 0x5A2EE019 EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x5A3D5493 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x501 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x4E1 JUMPI DUP1 PUSH4 0x5909C0D5 EQ PUSH2 0x4E9 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x2E52D606 EQ PUSH2 0x4AB JUMPI DUP1 PUSH4 0x2EC2FE3D EQ PUSH2 0x4B3 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x4BB JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x4C3 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0xDFE1681 GT PUSH2 0x214 JUMPI DUP1 PUSH4 0xDFE1681 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x435 JUMPI DUP1 PUSH4 0x2DD2A921 EQ PUSH2 0x478 JUMPI PUSH2 0x241 JUMP JUMPDEST DUP1 PUSH4 0x22C0D9F EQ PUSH2 0x246 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0x902F1AC EQ PUSH2 0x35E JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x39D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x25C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x40 DUP4 ADD CALLDATALOAD AND SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH1 0x80 DUP2 ADD PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x2A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x2D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x7F0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2E9 PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x323 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x30B JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x350 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x366 PUSH2 0xEFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND DUP2 MSTORE SWAP3 SWAP1 SWAP4 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH4 0xFFFFFFFF AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0xF52 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3F2 PUSH2 0xF69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x423 PUSH2 0xF85 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x44B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0xF8B JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x48E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x106A JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1137 JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x113D JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1159 JUMP JUMPDEST PUSH2 0x4CB PUSH2 0x117D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x423 PUSH2 0x1182 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1188 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x118E JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1194 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x517 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x119A JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1644 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1656 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x165C JUMP JUMPDEST PUSH2 0x5AA PUSH2 0x166E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP4 ADD MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 RETURN JUMPDEST PUSH2 0x61A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1699 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB ADD SWAP1 RETURN JUMPDEST PUSH2 0x2E9 PUSH2 0x1BC0 JUMP JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x651 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x1BF9 JUMP JUMPDEST PUSH2 0x423 PUSH2 0x1C06 JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C0C JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x1E02 JUMP JUMPDEST PUSH2 0x3F2 PUSH2 0x1E1E JUMP JUMPDEST PUSH2 0x6C7 PUSH2 0x1E3A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x3F2 PUSH2 0x1E66 JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x1E82 JUMP JUMPDEST PUSH2 0x423 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x214E JUMP JUMPDEST PUSH2 0x423 PUSH2 0x216B JUMP JUMPDEST PUSH2 0x2DF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x79F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD DUP3 AND SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x2171 JUMP JUMPDEST PUSH2 0x2DF PUSH2 0x23CE JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x861 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE DUP5 ISZERO ISZERO DUP1 PUSH2 0x874 JUMPI POP PUSH1 0x0 DUP5 GT JUMPDEST PUSH2 0x8C9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3108 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8D4 PUSH2 0xEFD JUMP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 LT DUP1 ISZERO PUSH2 0x907 JUMPI POP DUP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 LT JUMPDEST PUSH2 0x95C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3151 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 SWAP1 DUP2 AND SWAP1 DUP10 AND DUP3 EQ DUP1 ISZERO SWAP1 PUSH2 0x9C1 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST PUSH2 0xA2C JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F544F0000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP11 ISZERO PUSH2 0xA3D JUMPI PUSH2 0xA3D DUP3 DUP11 DUP14 PUSH2 0x25B4 JUMP JUMPDEST DUP10 ISZERO PUSH2 0xA4E JUMPI PUSH2 0xA4E DUP2 DUP11 DUP13 PUSH2 0x25B4 JUMP JUMPDEST DUP7 ISZERO PUSH2 0xB30 JUMPI DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x10D1E85C CALLER DUP14 DUP14 DUP13 DUP13 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP5 DUP5 DUP3 DUP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP SWAP7 POP POP POP POP POP POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB2B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xBC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP6 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC38 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0x0 SWAP2 POP POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP11 SWAP1 SUB DUP4 GT PUSH2 0xC8C JUMPI PUSH1 0x0 PUSH2 0xCA2 JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 GT PUSH2 0xCC6 JUMPI PUSH1 0x0 PUSH2 0xCDC JUMP JUMPDEST DUP10 DUP6 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB DUP4 SUB JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 GT DUP1 PUSH2 0xCED JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST PUSH2 0xD42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x312D PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD76 PUSH2 0xD58 DUP5 PUSH1 0x3 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0xD6A DUP8 PUSH2 0x3E8 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xD8E PUSH2 0xD58 DUP5 PUSH1 0x3 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH2 0xDC6 PUSH3 0xF4240 PUSH2 0xDBA PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 DUP2 AND SWAP1 DUP12 AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0xDD6 DUP4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST LT ISZERO PUSH2 0xE43 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xC PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204B0000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP PUSH2 0xE51 DUP5 DUP5 DUP9 DUP9 PUSH2 0x28B9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE DUP1 DUP3 ADD DUP14 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP12 AND SWAP2 CALLER SWAP2 PUSH32 0xD78AD95FA46C994B6551D0DA85FC275FE613CE37657FB8D5E3D130840159D822 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG3 POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x556E697377617020563200000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP3 PUSH15 0x10000000000000000000000000000 DUP4 DIV SWAP1 SWAP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF5F CALLER DUP5 DUP5 PUSH2 0x2B75 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x1055 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x1023 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x1060 DUP5 DUP5 DUP5 PUSH2 0x2BE4 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x10F0 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0xB SLOAD DUP2 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xE SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA SLOAD DUP2 JUMP JUMPDEST PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x120D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP2 SWAP1 SSTORE DUP1 PUSH2 0x121D PUSH2 0xEFD JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP6 POP SWAP2 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x12C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x138A DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13AE DUP4 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 AND PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x13BC DUP8 DUP8 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP4 SWAP5 POP SWAP1 SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x13F0 JUMPI DUP8 PUSH2 0x13F2 JUMP JUMPDEST DUP9 JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x1423 JUMPI DUP10 PUSH2 0x1425 JUMP JUMPDEST DUP9 JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3E8 PUSH1 0xA SLOAD DUP2 PUSH2 0x1436 JUMPI INVALID JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP1 SWAP2 DIV SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x146A JUMPI DUP7 PUSH2 0x146C JUMP JUMPDEST DUP8 JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x14A3 JUMPI PUSH1 0xB SLOAD DUP10 EXP DUP4 MUL PUSH2 0x14AB JUMP JUMPDEST PUSH1 0xB SLOAD DUP9 EXP DUP4 MUL JUMPDEST SWAP1 POP DUP6 PUSH2 0x14E4 JUMPI PUSH2 0x14D0 PUSH2 0x3E8 PUSH2 0xD6A PUSH2 0x14CB DUP6 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH2 0x2E51 JUMP JUMPDEST SWAP14 POP PUSH2 0x14DF PUSH1 0x0 PUSH2 0x3E8 PUSH2 0x2EA3 JUMP JUMPDEST PUSH2 0x1541 JUMP JUMPDEST PUSH2 0x153E PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x1508 DUP5 DUP10 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x150F JUMPI INVALID JUMPDEST DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0x1531 DUP5 DUP11 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x1538 JUMPI INVALID JUMPDEST DIV PUSH2 0x2F53 JUMP JUMPDEST SWAP14 POP JUMPDEST PUSH1 0x0 DUP15 GT PUSH2 0x159A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x319A PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15A4 DUP16 DUP16 PUSH2 0x2EA3 JUMP JUMPDEST PUSH2 0x15B0 DUP12 DUP12 DUP16 DUP16 PUSH2 0x28B9 JUMP JUMPDEST DUP7 ISZERO PUSH2 0x15F2 JUMPI PUSH1 0xD SLOAD PUSH2 0x15EE SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH1 0x10 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP11 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP11 SWAP1 MSTORE DUP2 MLOAD CALLER SWAP3 PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F SWAP3 DUP3 SWAP1 SUB ADD SWAP1 LOG2 POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP SWAP10 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xA SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x170D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP2 SWAP1 SSTORE DUP1 PUSH2 0x171D PUSH2 0xEFD JUMP JUMPDEST POP PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP5 SWAP7 POP SWAP3 SWAP5 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP4 SWAP2 AND SWAP2 PUSH1 0x0 SWAP2 DUP5 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x179F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x17C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x183D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1851 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1867 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ADDRESS PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0xA SLOAD SWAP3 SWAP4 POP SWAP2 PUSH2 0x3E8 SWAP1 DIV SWAP1 PUSH2 0x1890 DUP10 DUP10 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 DUP3 SWAP2 PUSH2 0x18DE SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND SWAP2 AND EQ PUSH2 0x18CF JUMPI PUSH1 0xB SLOAD DUP9 EXP DUP6 MUL PUSH2 0x18D1 JUMP JUMPDEST DUP8 JUMPDEST DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST DUP2 PUSH2 0x18E5 JUMPI INVALID JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x6 SLOAD SWAP3 SWAP1 SWAP2 DIV SWAP14 POP DUP3 SWAP2 PUSH2 0x1929 SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND SWAP2 AND EQ PUSH2 0x1922 JUMPI PUSH1 0xB SLOAD DUP8 EXP DUP6 MUL PUSH2 0x18D1 JUMP JUMPDEST DUP6 DUP8 PUSH2 0x27C1 JUMP JUMPDEST DUP2 PUSH2 0x1930 JUMPI INVALID JUMPDEST DIV SWAP11 POP PUSH1 0x0 DUP13 GT DUP1 ISZERO PUSH2 0x1943 JUMPI POP PUSH1 0x0 DUP12 GT JUMPDEST PUSH2 0x1998 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3172 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x19A2 ADDRESS DUP6 PUSH2 0x2F6B JUMP JUMPDEST PUSH2 0x19AD DUP9 DUP15 DUP15 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0x19B8 DUP8 DUP15 DUP14 PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1A4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP8 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AD4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1AEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP5 POP PUSH2 0x1AFA DUP7 DUP7 DUP13 DUP13 PUSH2 0x28B9 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x1B3C JUMPI PUSH1 0xD SLOAD PUSH2 0x1B38 SWAP1 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST PUSH1 0x10 SSTORE JUMPDEST DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDCCD412F0B1252819CB1FD330B93224CA42612892BB3F4F789976E6D81936496 DUP15 DUP15 PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP POP POP POP POP PUSH1 0x1 PUSH1 0x11 DUP2 SWAP1 SSTORE POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x554E492D56320000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF5F CALLER DUP5 DUP5 PUSH2 0x2BE4 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x1C7D JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE PUSH1 0x6 SLOAD PUSH1 0x7 SLOAD PUSH1 0xD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP5 SWAP1 SWAP4 AND SWAP3 PUSH2 0x1D59 SWAP3 DUP6 SWAP3 DUP8 SWAP3 PUSH2 0x1D54 SWAP3 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 DUP6 SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1D46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x1DF8 SWAP3 DUP5 SWAP3 DUP8 SWAP3 PUSH2 0x1D54 SWAP3 PUSH15 0x10000000000000000000000000000 SWAP1 DIV PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 PUSH1 0x11 SSTORE POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x1EF1 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2052 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x20CD JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x2138 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x2143 DUP10 DUP10 DUP10 PUSH2 0x2B75 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xC SLOAD DUP2 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x21F7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20464F5242494444454E000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP3 LT ISZERO PUSH2 0x2267 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A206578706F6E656E74206D757374206265203E3D2031 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP4 LT ISZERO PUSH2 0x22D7 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20736C6F7065206D757374206265203E3D2031000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0x2347 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20666565206D757374206265203E3D20310000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP9 DUP10 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP8 DUP10 AND SWAP8 DUP3 AND SWAP8 SWAP1 SWAP8 OR SWAP1 SWAP7 SSTORE PUSH1 0x8 DUP1 SLOAD SWAP6 DUP9 AND SWAP6 DUP8 AND SWAP6 SWAP1 SWAP6 OR SWAP1 SWAP5 SSTORE PUSH1 0x9 DUP1 SLOAD SWAP4 SWAP1 SWAP7 AND SWAP3 SWAP1 SWAP5 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP4 SSTORE PUSH1 0xA SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0xB SSTORE PUSH1 0xC SSTORE JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x1 EQ PUSH2 0x243F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204C4F434B4544000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x11 SSTORE PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x25AD SWAP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24CA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2553 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2567 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x257D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0xD SLOAD PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND SWAP2 PUSH15 0x10000000000000000000000000000 SWAP1 DIV AND PUSH2 0x28B9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x11 SSTORE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x19 DUP2 MSTORE PUSH32 0x7472616E7366657228616464726573732C75696E743235362900000000000000 PUSH1 0x20 SWAP2 DUP3 ADD MSTORE DUP2 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP1 DUP4 ADD DUP7 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x64 SWAP1 SWAP3 ADD DUP5 MSTORE SWAP2 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xA9059CBB00000000000000000000000000000000000000000000000000000000 OR DUP2 MSTORE SWAP3 MLOAD DUP2 MLOAD PUSH1 0x0 SWAP5 PUSH1 0x60 SWAP5 DUP10 AND SWAP4 SWAP3 SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x26BA JUMPI DUP1 MLOAD DUP3 MSTORE PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x267D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP2 POP POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x271C JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2721 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x274F JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x274F JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x274C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD JUMPDEST PUSH2 0x27BA JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A205452414E534645525F4641494C4544000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO DUP1 PUSH2 0x27DC JUMPI POP POP DUP1 DUP3 MUL DUP3 DUP3 DUP3 DUP2 PUSH2 0x27D9 JUMPI INVALID JUMPDEST DIV EQ JUMPDEST PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6D756C2D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 GT DUP1 ISZERO SWAP1 PUSH2 0x28E5 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO JUMPDEST PUSH2 0x2950 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A204F564552464C4F5700000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0xD SLOAD PUSH4 0xFFFFFFFF TIMESTAMP DUP2 AND SWAP2 PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP2 AND DUP3 SUB SWAP1 DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x29A0 JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x29BB JUMPI POP PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x2A6B JUMPI DUP1 PUSH4 0xFFFFFFFF AND PUSH2 0x29FE DUP6 PUSH2 0x29D4 DUP7 PUSH2 0x3030 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3054 AND JUMP JUMPDEST PUSH1 0xE DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x2A3E DUP5 PUSH2 0x29D4 DUP8 PUSH2 0x3030 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP3 SWAP1 SWAP3 MUL ADD SWAP1 SSTORE JUMPDEST PUSH1 0xD DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000 AND PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP2 SWAP1 SWAP2 OR PUSH32 0xFFFFFFFF0000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 DUP9 DUP4 AND DUP2 MUL SWAP2 SWAP1 SWAP2 OR PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH4 0xFFFFFFFF DUP8 AND MUL OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP4 DIV SWAP1 SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH32 0x1C411E9A96E071241C2F21F7726B17AE89E3CAB4C78BE50E062B03A9FFFBBAD1 SWAP3 SWAP2 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2C1A SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x2C5C SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x17E7E58 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2D5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x10 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND ISZERO DUP1 ISZERO SWAP5 POP SWAP2 SWAP3 POP SWAP1 PUSH2 0x2E3D JUMPI DUP1 ISZERO PUSH2 0x2E38 JUMPI PUSH1 0x0 PUSH2 0x2DB1 PUSH2 0x14CB PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 DUP2 AND SWAP1 DUP9 AND PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2DBE DUP4 PUSH2 0x2E51 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2E35 JUMPI PUSH1 0x0 PUSH2 0x2DEC PUSH2 0x2DDD DUP5 DUP5 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E11 DUP4 PUSH2 0x2E05 DUP7 PUSH1 0x5 PUSH4 0xFFFFFFFF PUSH2 0x27C1 AND JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP4 DUP2 PUSH2 0x2E1E JUMPI INVALID JUMPDEST DIV SWAP1 POP DUP1 ISZERO PUSH2 0x2E31 JUMPI PUSH2 0x2E31 DUP8 DUP3 PUSH2 0x2EA3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP JUMPDEST PUSH2 0x2E49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2E49 JUMPI PUSH1 0x0 PUSH1 0x10 SSTORE JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x2E94 JUMPI POP DUP1 PUSH1 0x1 PUSH1 0x2 DUP3 DIV ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2E8E JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 DUP2 PUSH2 0x2E7D JUMPI INVALID JUMPDEST DIV ADD DUP2 PUSH2 0x2E86 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH2 0x2E66 JUMP JUMPDEST POP PUSH2 0x2E9E JUMP JUMPDEST DUP2 ISZERO PUSH2 0x2E9E JUMPI POP PUSH1 0x1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x2EB6 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2EEE SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x3095 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x2F62 JUMPI DUP2 PUSH2 0x2F64 JUMP JUMPDEST DUP3 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x2FA1 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2FDB SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x2847 AND JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH15 0x10000000000000000000000000000 MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH14 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND DUP2 PUSH2 0x308D JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0xF63 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4F SSTORE SLOAD POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x49 0x4E POP SSTORE SLOAD 0x5F COINBASE 0x4D 0x4F SSTORE 0x4E SLOAD SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F TIMESTAMP SSTORE MSTORE 0x4E GASLIMIT DIFFICULTY SSTORE PUSH15 0x697377617056323A20494E53554646 0x49 NUMBER 0x49 GASLIMIT 0x4E SLOAD 0x5F 0x4C 0x49 MLOAD SSTORE 0x49 DIFFICULTY 0x49 SLOAD MSIZE 0x5F 0x4D 0x49 0x4E SLOAD GASLIMIT DIFFICULTY LOG2 PUSH6 0x627A7A723158 KECCAK256 SWAP9 MSTORE8 0xEB 0x4C PUSH25 0x3734250485704256A3D152364C8047780FC78421578CB59C38 0xA5 SWAP12 PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN ",
2056 "sourceMap": "290:11412:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;290:11412:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9261:1862;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9261:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9261:1862:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9261:1862:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;9261:1862:2;;-1:-1:-1;9261:1862:2;-1:-1:-1;9261:1862:2;:::i;:::-;;184:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;184:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1552:227:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2177:144:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2177:144:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;592:21:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;319:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;2469:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2469:295:0;;;;;;;;;;;;;;;;;;:::i;3422:156:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3422:156:2;;;;:::i;818:13::-;;;:::i;676:24::-;;;:::i;605:108:0:-;;;:::i;278:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;464:31;;;:::i;1203:32:2:-;;;:::i;706:13::-;;;:::i;1241:32::-;;;:::i;5863:1609::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5863:1609:2;;;;:::i;349:41:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;349:41:0;;;;:::i;1279:17:2:-;;;:::i;719:38:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;719:38:0;;;;:::i;1785:187:2:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7581:1571;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7581:1571:2;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;232:40:0;;;:::i;2327:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2327:136:0;;;;;;;;;:::i;417:46:2:-;;;:::i;11169:329::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11169:329:2;;;;:::i;564:22::-;;;:::i;646:24::-;;;:::i;1107:33::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;619:21;;;:::i;2770:662:0:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2770:662:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;396:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;396:61:0;;;;;;;;;;;:::i;893:15:2:-;;;:::i;2827:589::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2827:589:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11544:156::-;;;:::i;9261:1862::-;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;9374:14;;;;:32;;;9405:1;9392:10;:14;9374:32;9366:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9459:17;9478;9501:13;:11;:13::i;:::-;9458:56;;;;;9560:9;9547:22;;:10;:22;:48;;;;;9586:9;9573:22;;:10;:22;9547:48;9539:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9773:6;;9807;;9644:13;;;;9773:6;;;;;9807;;;;9831:13;;;;;;;:30;;;9854:7;9848:13;;:2;:13;;;;9831:30;9823:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9901:14;;9897:58;;9917:38;9931:7;9940:2;9944:10;9917:13;:38::i;:::-;10003:14;;9999:58;;10019:38;10033:7;10042:2;10046:10;10019:13;:38::i;:::-;10105:15;;10101:97;;10139:2;10122:34;;;10157:10;10169;10181;10193:4;;10122:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10122:76:2;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10122:76:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10122:76:2;;;;10101:97;10219:40;;;;;;10253:4;10219:40;;;;;;:25;;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;10219:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10219:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10219:40:2;10280;;;;;;10314:4;10280:40;;;;;;10219;;-1:-1:-1;10280:25:2;;;;;;:40;;;;;10219;;10280;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;10280:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10280:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10280:40:2;;-1:-1:-1;10340:14:2;;-1:-1:-1;;10368:22:2;;;;;;10357:33;;:75;;10431:1;10357:75;;;10417:10;10405:9;:22;;;10393:8;:35;10357:75;10340:92;;10442:14;10482:10;10470:9;:22;;;10459:8;:33;:75;;10533:1;10459:75;;;10519:10;10507:9;:22;;;10495:8;:35;10459:75;10442:92;;10564:1;10552:9;:13;:30;;;;10581:1;10569:9;:13;10552:30;10544:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10707:21;10731:40;10754:16;:9;10768:1;10754:16;:13;:16;:::i;:::-;10731:18;:8;10744:4;10731:18;:12;:18;:::i;:::-;:22;:40;:22;:40;:::i;:::-;10707:64;-1:-1:-1;10781:21:2;10805:40;10828:16;:9;10842:1;10828:16;:13;:16;:::i;10805:40::-;10781:64;-1:-1:-1;10905:43:2;10940:7;10905:30;;:15;;;;:30;;;:19;:30;:::i;:::-;:34;:43;:34;:43;:::i;:::-;10863:38;:16;10884;10863:38;:20;:38;:::i;:::-;:85;;10855:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:1;;10986:49;10994:8;11004;11014:9;11025;10986:7;:49::i;:::-;11050:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11055:10;;11050:66;;;;;;;;;-1:-1:-1;;1538:1:2;1527:8;:12;-1:-1:-1;;;;;;;;;9261:1862:2:o;184:42:0:-;;;;;;;;;;;;;;;;;;;:::o;1552:227:2:-;1684:8;;;;;;;1714;;;;;;;1754:18;;;;;;1552:227::o;2177:144:0:-;2241:4;2257:36;2266:10;2278:7;2287:5;2257:8;:36::i;:::-;-1:-1:-1;2310:4:0;2177:144;;;;;:::o;592:21:2:-;;;;;;:::o;319:24:0:-;;;;:::o;2469:295::-;2567:15;;;2547:4;2567:15;;;:9;:15;;;;;;;;2583:10;2567:27;;;;;;;;2603:2;2567:39;2563:138;;2652:15;;;;;;;:9;:15;;;;;;;;2668:10;2652:27;;;;;;;;:38;;2684:5;2652:38;:31;:38;:::i;:::-;2622:15;;;;;;;:9;:15;;;;;;;;2638:10;2622:27;;;;;;;:68;2563:138;2710:26;2720:4;2726:2;2730:5;2710:9;:26::i;:::-;-1:-1:-1;2753:4:0;2469:295;;;;;:::o;3422:156:2:-;3505:9;;;;3491:10;:23;3483:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3549:9;:22;;;;;;;;;;;;;;;3422:156::o;818:13::-;;;;:::o;676:24::-;;;;;;:::o;605:108:0:-;647:66;605:108;:::o;278:35::-;311:2;278:35;:::o;464:31::-;;;;:::o;1203:32:2:-;;;;:::o;706:13::-;;;;:::o;1241:32::-;;;;:::o;5863:1609::-;5912:14;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;;;1505:1;5981:13;:11;:13::i;:::-;-1:-1:-1;6042:6:2;;6035:39;;;;;;6068:4;6035:39;;;;;;5938:56;;-1:-1:-1;5938:56:2;;-1:-1:-1;6019:13:2;;6042:6;;;;;6035:24;;:39;;;;;;;;;;;;;;6042:6;6035:39;;;5:2:-1;;;;30:1;27;20:12;5:2;6035:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6035:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6035:39:2;6107:6;;6100:39;;;;;;6133:4;6100:39;;;;;;6035;;-1:-1:-1;6084:13:2;;6107:6;;;;;6100:24;;:39;;;;;6035;;6100;;;;;;;;6107:6;6100:39;;;5:2:-1;;;;30:1;27;20:12;5:2;6100:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6100:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6100:39:2;;-1:-1:-1;6149:12:2;6164:23;:8;:23;;;;:12;:23;:::i;:::-;6149:38;-1:-1:-1;6197:12:2;6212:23;:8;:23;;;;:12;:23;:::i;:::-;6197:38;;6245:10;6258:30;6267:9;6278;6258:8;:30::i;:::-;6298:17;6318:11;;6449:9;;6439:6;;6245:43;;-1:-1:-1;6318:11:2;;6449:9;6439:6;;;6449:9;;6439:19;:43;;6473:9;6439:43;;;6461:9;6439:43;6525:9;;6515:6;;6417:65;;-1:-1:-1;6492:20:2;;6525:9;6515:6;;;6525:9;;6515:19;:43;;6549:9;6515:43;;;6537:9;6515:43;6492:66;;6568:10;6585:4;6581:1;;:8;;;;;6630:9;;6620:6;;6581:8;;;;;-1:-1:-1;6599:18:2;;6630:9;6620:6;;;6630:9;;6620:19;:39;;6652:7;6620:39;;;6642:7;6620:39;6701:9;;6691:6;;6599:60;;-1:-1:-1;6669:19:2;;6701:9;6691:6;;;6701:9;;6691:19;:73;;6761:1;;6750:7;:12;6741:5;:22;6691:73;;;6734:1;;6723:7;:12;6714:5;:22;6691:73;6669:95;-1:-1:-1;6779:17:2;6775:378;;6824:67;458:5;6824:44;6834:33;:13;6852:14;6834:33;:17;:33;:::i;:::-;6824:9;:44::i;:67::-;6812:79;;6904:36;6918:1;458:5;6904;:36::i;:::-;6775:378;;;7038:104;7047:45;;;:31;:13;7065:12;7047:31;:17;:31;:::i;:::-;:45;;;;;;7094:47;;;:32;:14;7113:12;7094:32;:18;:32;:::i;:::-;:47;;;;;;7038:8;:104::i;:::-;7026:116;;6775:378;7183:1;7171:9;:13;7163:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7239:20;7245:2;7249:9;7239:5;:20::i;:::-;7270:49;7278:8;7288;7298:9;7309;7270:7;:49::i;:::-;7333:5;7329:47;;;7367:8;;7348:28;;7367:8;7353;;;;7367;;;;7348:28;:18;:28;:::i;:::-;7340:5;:36;7329:47;7431:34;;;;;;;;;;;;;;7436:10;;7431:34;;;;;;;;-1:-1:-1;;1538:1:2;1527:8;:12;-1:-1:-1;5863:1609:2;;;-1:-1:-1;;;;;;;;;;;5863:1609:2:o;349:41:0:-;;;;;;;;;;;;;:::o;1279:17:2:-;;;;:::o;719:38:0:-;;;;;;;;;;;;;:::o;1785:187:2:-;1904:9;;1928:1;;1944;;1962:3;;1904:9;;;;;1928:1;;1944;;1785:187::o;7581:1571::-;7630:12;7644;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;;;1505:1;7710:13;:11;:13::i;:::-;-1:-1:-1;7766:6:2;;7846;;7924:40;;;;;;7958:4;7924:40;;;;;;7668:55;;-1:-1:-1;7668:55:2;;-1:-1:-1;7766:6:2;;;;;7846;;;7748:15;;7766:6;;7924:25;;:40;;;;;;;;;;;;;;7766:6;7924:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7924:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7924:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7924:40:2;7990;;;;;;8024:4;7990:40;;;;;;7924;;-1:-1:-1;7974:13:2;;7990:25;;;;;;:40;;;;;7924;;7990;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7990:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7990:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7990:40:2;8075:4;8040:14;8057:24;;;:9;7990:40;8057:24;;;;;8104:1;;7990:40;;-1:-1:-1;8057:24:2;8108:4;8104:8;;;8135:30;8144:9;8155;8135:8;:30::i;:::-;8175:17;8195:11;8328:9;;8318:6;;8122:43;;-1:-1:-1;8195:11:2;;;;8304:71;;8328:9;8318:6;;;8328:9;;8318:19;:56;;8372:1;;8360:8;:13;8351:5;:23;8318:56;;;8340:8;8318:56;8304:9;;:71;:13;:71;:::i;:::-;:86;;;;;8482:9;;8472:6;;8304:86;;;;;-1:-1:-1;8533:12:2;;8458:71;;8482:9;8472:6;;;8482:9;;8472:19;:56;;8526:1;;8514:8;:13;8505:5;:23;8472:56;;;8458:9;8494:8;8458:13;:71::i;:::-;:87;;;;;;8448:97;;8621:1;8611:7;:11;:26;;;;;8636:1;8626:7;:11;8611:26;8603:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8692:31;8706:4;8713:9;8692:5;:31::i;:::-;8733:35;8747:7;8756:2;8760:7;8733:13;:35::i;:::-;8778;8792:7;8801:2;8805:7;8778:13;:35::i;:::-;8834:40;;;;;;8868:4;8834:40;;;;;;:25;;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8834:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8834:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8834:40:2;8895;;;;;;8929:4;8895:40;;;;;;8834;;-1:-1:-1;8895:25:2;;;;;;:40;;;;;8834;;8895;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8895:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8895:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8895:40:2;;-1:-1:-1;8946:49:2;8954:8;8895:40;8974:9;8985;8946:7;:49::i;:::-;9009:5;9005:47;;;9043:8;;9024:28;;9043:8;9029;;;;9043;;;;9024:28;:18;:28;:::i;:::-;9016:5;:36;9005:47;9142:2;9107:38;;9112:10;9107:38;;;9124:7;9133;9107:38;;;;;;;;;;;;;;;;;;;;;;;;1516:1;;;;;;;;;;1538;1527:8;:12;;;;7581:1571;;;:::o;232:40:0:-;;;;;;;;;;;;;;;;;;;:::o;2327:136::-;2387:4;2403:32;2413:10;2425:2;2429:5;2403:9;:32::i;417:46:2:-;458:5;417:46;:::o;11169:329::-;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;11237:6;;11286;;11389:8;;11344:40;;;;;;11378:4;11344:40;;;;;;11237:6;;;;;11286;;;;11317:82;;11237:6;;11340:2;;11344:54;;11389:8;;;11237:6;;11344:25;;:40;;;;;;;;;;;;;;;11237:6;11344:40;;;5:2:-1;;;;30:1;27;20:12;5:2;11344:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11344:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11344:40:2;;:54;:44;:54;:::i;:::-;11317:13;:82::i;:::-;11481:8;;11436:40;;;;;;11470:4;11436:40;;;;;;11409:82;;11423:7;;11432:2;;11436:54;;11481:8;;;;;;11436:25;;;;;;:40;;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;11409:82:2;-1:-1:-1;;1538:1:2;1527:8;:12;-1:-1:-1;11169:329:2:o;564:22::-;;;;;;:::o;646:24::-;;;;;;:::o;1107:33::-;;;;;;;;;:::o;619:21::-;;;;;;:::o;2770:662:0:-;2915:15;2903:8;:27;;2895:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:16;;3160:13;;;;2963:14;3160:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3109:77;;647:66;3109:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3109:77:0;;;;;3099:88;;;;;;3003:198;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3003:198:0;;;;;;2980:231;;;;;;;;;3248:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:14;;3160:15;3248:26;;;;;-1:-1:-1;3248:26:0;;;;;;;;;;3160:15;3248:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3248:26:0;;;;;;-1:-1:-1;;3292:30:0;;;;;;;:59;;;3346:5;3326:25;;:16;:25;;;3292:59;3284:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3394:31;3403:5;3410:7;3419:5;3394:8;:31::i;:::-;2770:662;;;;;;;;;:::o;396:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;893:15:2:-;;;;:::o;2827:589::-;2997:7;;;;2983:10;:21;2975:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3075:1;3067:4;:9;;3059:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3141:1;3131:6;:11;;3123:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3202:1;3194:4;:9;;3186:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3245:6;:16;;;;;;;;;;;;;;3271:6;:16;;;;;;;;;;;;;;;3297:9;:22;;;;;;;;;;;;;;;3329:9;:22;;;;;;;;;;;;;;;;;3361:1;:10;;;;3381:1;:8;3399:3;:10;2827:589::o;11544:156::-;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;11599:6;;11592:39;;;;;;11625:4;11592:39;;;;;;11584:109;;11599:6;;;11592:24;;:39;;;;;;;;;;;;;;11599:6;11592:39;;;5:2:-1;;;;30:1;27;20:12;5:2;11592:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11592:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11592:39:2;11640:6;;11633:39;;;;;;11666:4;11633:39;;;;;;11640:6;;;;;11633:24;;:39;;;;;11592;;11633;;;;;;;;11640:6;11633:39;;;5:2:-1;;;;30:1;27;20:12;5:2;11633:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11633:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11633:39:2;11674:8;;;;;;;11684;;;;11584:7;:109::i;:::-;1538:1;1527:8;:12;11544:156::o;1978:284::-;521:34;;;;;;;;;;;;;;;;;2105:43;;2094:10;2105:43;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2105:43:2;;;;;;25:18:-1;;;61:17;;2105:43:2;182:15:-1;2105:43:2;179:29:-1;160:49;;2094:55:2;;;;2059:12;;2073:17;;2094:10;;;2105:43;2094:55;;;25:18:-1;2094:55:2;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2094:55:2;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2058:91:2;;;;2167:7;:57;;;;-1:-1:-1;2179:11:2;;:16;;:44;;;2210:4;2199:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2199:24:2;2179:44;2159:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1978:284;;;;;:::o;420:140:9:-;472:6;498;;;:30;;-1:-1:-1;;513:5:9;;;527:1;522;513:5;522:1;508:15;;;;;:20;498:30;490:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:127;370:5;;;365:16;;;;357:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4001:847:2;4112:23;;;;;;:50;;-1:-1:-1;4139:23:2;;;;4112:50;4104:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:18;;4227:23;:15;:23;;;4299:18;;;;;4282:35;;;4354:15;;;;;;:33;;-1:-1:-1;4373:14:2;;;;;4354:33;:51;;;;-1:-1:-1;4391:14:2;;;;;4354:51;4350:332;;;4558:11;4505:64;;4510:44;4544:9;4510:27;4527:9;4510:16;:27::i;:::-;:33;;;:44;:33;:44;:::i;:::-;4481:20;:88;;4505:50;;;;;:64;;;;4481:88;;;4607:64;;;4612:44;4646:9;4612:27;4629:9;4612:16;:27::i;:44::-;4583:20;:88;;4607:50;;;;;:64;;;;4583:88;;;4350:332;4691:8;:28;;;;;;;;;;;;4729;;;;;;;;;;;;4767:35;;;;;;;;;;;;4817:24;;;4822:8;;;4817:24;;4832:8;;;;;;;4817:24;;;;;;;;;;;;;;;;;4001:847;;;;;;:::o;1783:166:0:-;1863:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1911:31;;;;;;;;;;;;;;;;;1783:166;;;:::o;1955:216::-;2048:15;;;;;;;:9;:15;;;;;;:26;;2068:5;2048:26;:19;:26;:::i;:::-;2030:15;;;;;;;;:9;:15;;;;;;:44;;;;2100:13;;;;;;;:24;;2118:5;2100:24;:17;:24;:::i;:::-;2084:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2139:25;;;;;;;2084:13;;2139:25;;;;;;;;;;;;;1955:216;;;:::o;4935:819:2:-;5008:10;5030:13;5064:7;;;;;;;;;;;5046:32;;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5046:34:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5046:34:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5046:34:2;5141:5;;5098:19;;;;;;;-1:-1:-1;5046:34:2;;-1:-1:-1;5141:5:2;5171:577;;5200:11;;5196:485;;5231:10;5244:41;5254:30;;:15;;;;:30;;;:19;:30;:::i;5244:41::-;5231:54;;5303:14;5320:17;5330:6;5320:9;:17::i;:::-;5303:34;;5367:9;5359:5;:17;5355:312;;;5400:14;5417:37;5433:20;:5;5443:9;5433:20;:9;:20;:::i;:::-;5417:11;;;:37;:15;:37;:::i;:::-;5400:54;-1:-1:-1;5476:16:2;5495:27;5512:9;5495:12;:5;5505:1;5495:12;:9;:12;:::i;:::-;:16;:27;:16;:27;:::i;:::-;5476:46;;5544:14;5573:11;5561:9;:23;;;;;;;-1:-1:-1;5610:13:2;;5606:42;;5625:23;5631:5;5638:9;5625:5;:23::i;:::-;5355:312;;;;5196:485;;;5171:577;;;5701:11;;5697:51;;5736:1;5728:5;:9;5697:51;4935:819;;;;;;:::o;307:292:8:-;352:6;378:1;374;:5;370:223;;;-1:-1:-1;399:1:8;431;427;423:5;;:9;446:89;457:1;453;:5;446:89;;;482:1;478:5;;519:1;514;510;506;:5;;;;;;:9;505:15;;;;;;501:19;;446:89;;;370:223;;;;555:6;;551:42;;-1:-1:-1;581:1:8;551:42;307:292;;;:::o;1369:197:0:-;1441:11;;:22;;1457:5;1441:22;:15;:22;:::i;:::-;1427:11;:36;;;1489:13;;;;;:9;:13;;;;;;:24;;1507:5;1489:24;:17;:24;:::i;:::-;1473:13;;;;;;;:9;:13;;;;;;;;:40;;;;1528:31;;;;;;;1473:13;;;;1528:31;;;;;;;;;;1369:197;;:::o;98:94:8:-;150:6;176:1;172;:5;:13;;184:1;172:13;;;180:1;172:13;168:17;98:94;-1:-1:-1;;;98:94:8:o;1572:205:0:-;1650:15;;;;;;;:9;:15;;;;;;:26;;1670:5;1650:26;:19;:26;:::i;:::-;1632:15;;;;;;;:9;:15;;;;;:44;;;;1700:11;:22;;1716:5;1700:22;:15;:22;:::i;:::-;1686:11;:36;;;1737:33;;;;;;;;;;;;;;;;;;;;;;1572:205;;:::o;283:118:10:-;358:10;;231:6;358:17;;283:118::o;469:106::-;529:9;558:10;;;554:14;;;558:10;554:14;;;;;;469:106;-1:-1:-1;;;469:106:10:o;155:126:9:-;238:5;;;233:16;;;;225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
2057 }
2058 },
2059 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"baseToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"blockTimestampLast\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurveParams\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_baseToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_m\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_n\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"_reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"_reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"_blockTimestampLast\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pairOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_slope\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_exp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"m\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"n\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pairOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_nextOwner\",\"type\":\"address\"}],\"name\":\"setPairOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/UniswapV2Pair.sol\":\"UniswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/UniswapV2ERC20.sol\":{\"keccak256\":\"0x0599f3684aef3e5f1144e14df1ddd39be24948b7cff125af9c9beca4bc94e1a2\",\"urls\":[\"bzz-raw://962b5efd230c60ce591afed08be4f1def46222da230a527c98c92ee27cf64583\",\"dweb:/ipfs/Qmf5wW4T7F9sNQ1eAgaj94KcFS3hrtU5tTZyPZr8QhgXr8\"]},\"contracts/UniswapV2Pair.sol\":{\"keccak256\":\"0x214708a723b69b80431bb6ff0207462e938957c6d638dcd1225387717fafdcc8\",\"urls\":[\"bzz-raw://0d0920b68c6df6d144af05bb38ad8eb1d4728a723109a85e4ef6fa8689afdcb8\",\"dweb:/ipfs/QmZakyMCHRkAUzY6vADF3aNLT229VMcfkN8weP715AD5dy\"]},\"contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]},\"contracts/interfaces/IUniswapV2Callee.sol\":{\"keccak256\":\"0xdb17a1fb73e261e736ae8862be2d9a32964fc4b3741f48980f5cdc9d92b99a96\",\"urls\":[\"bzz-raw://468dab23a95d9d9b7d6ce74008d45eef3de2f137ede604e6be6c5e7d0121c5e9\",\"dweb:/ipfs/QmcXwjTfp6tCRgf1KsNQyUAtrqKhiaN6fbaHVGr22eficP\"]},\"contracts/interfaces/IUniswapV2ERC20.sol\":{\"keccak256\":\"0x9e433765e9ef7b4ff5e406b260b222c47c2aa27d36df756db708064fcb239ae7\",\"urls\":[\"bzz-raw://5b67c24a5e1652b51ad2f37adad2905519f0e05e7c8b2b4d8b3e00b429bb9213\",\"dweb:/ipfs/QmarJq43GabAGGSqtMUb87ACYQt73mSFbXKyFAPDXpbFNM\"]},\"contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe8802e837a33aa4c7c5c97a9051b8ac7480e5735910ff7a624839b0b7c607320\",\"urls\":[\"bzz-raw://575e1a1d3a7e55879a22b4ca5b0be62ed05cf2e7a4b90ab4901d0c8436b0a329\",\"dweb:/ipfs/QmRnCbMdhjfsz2BocoTwwZeZEKJthA6N54pZhaHqYiRwmS\"]},\"contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x71f1f5865f89932201757a28dde71a4ae3aac5be8a563efdc0f290716ea3c0b6\",\"urls\":[\"bzz-raw://079f5f64c3ba58ca1bce36fb992f3833928a96d7309c81a6baddf780526fb9cc\",\"dweb:/ipfs/QmSoPgWdeDbYuTSjR6JmV5BpA6NYBEvHvALEAPpqJkzwHA\"]},\"contracts/libraries/Math.sol\":{\"keccak256\":\"0x05927cb4aa14897bd567607522c18d2d518fa803ade6f870fac244c6f3702a3b\",\"urls\":[\"bzz-raw://b2805464c2d75cbdd726d6bd5c9b8d1f2c8566b606ec769ffa9a194a42248862\",\"dweb:/ipfs/QmWBa9BsCH8gbncvDFXmfMJX1USTHvAREtc8C7nz6miQpw\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x9c8465de751317860b623cd77f7f53f41a84b6624c0580ee526dcf7a2b7cb80c\",\"urls\":[\"bzz-raw://9b371b3eb0649b486f76cd628cc060354d1ac11fa8baed1170567271655f05d7\",\"dweb:/ipfs/QmTUg31wK9UyX6o1Q1mxE4DQhuc1rWGBanNTu1uagNVQB6\"]},\"contracts/libraries/UQ112x112.sol\":{\"keccak256\":\"0x2240694530251ab376ae468d0a2d3ee8b3109e56f2acadbc203cdf341506dd31\",\"urls\":[\"bzz-raw://56f55c411faa2924df0915ff77129b9d8c64d3e4d28554e7234f3774ac95958a\",\"dweb:/ipfs/QmYrzUurXL8ijzS8EnLtQTVD7fKPReosg2DsEPXXCY7ec3\"]}},\"version\":1}",
2060 "interface": [
2061 {
2062 "inputs": [],
2063 "payable": false,
2064 "stateMutability": "nonpayable",
2065 "type": "constructor"
2066 },
2067 {
2068 "anonymous": false,
2069 "inputs": [
2070 {
2071 "indexed": true,
2072 "internalType": "address",
2073 "name": "owner",
2074 "type": "address"
2075 },
2076 {
2077 "indexed": true,
2078 "internalType": "address",
2079 "name": "spender",
2080 "type": "address"
2081 },
2082 {
2083 "indexed": false,
2084 "internalType": "uint256",
2085 "name": "value",
2086 "type": "uint256"
2087 }
2088 ],
2089 "name": "Approval",
2090 "type": "event"
2091 },
2092 {
2093 "anonymous": false,
2094 "inputs": [
2095 {
2096 "indexed": true,
2097 "internalType": "address",
2098 "name": "sender",
2099 "type": "address"
2100 },
2101 {
2102 "indexed": false,
2103 "internalType": "uint256",
2104 "name": "amount0",
2105 "type": "uint256"
2106 },
2107 {
2108 "indexed": false,
2109 "internalType": "uint256",
2110 "name": "amount1",
2111 "type": "uint256"
2112 },
2113 {
2114 "indexed": true,
2115 "internalType": "address",
2116 "name": "to",
2117 "type": "address"
2118 }
2119 ],
2120 "name": "Burn",
2121 "type": "event"
2122 },
2123 {
2124 "anonymous": false,
2125 "inputs": [
2126 {
2127 "indexed": true,
2128 "internalType": "address",
2129 "name": "sender",
2130 "type": "address"
2131 },
2132 {
2133 "indexed": false,
2134 "internalType": "uint256",
2135 "name": "amount0",
2136 "type": "uint256"
2137 },
2138 {
2139 "indexed": false,
2140 "internalType": "uint256",
2141 "name": "amount1",
2142 "type": "uint256"
2143 }
2144 ],
2145 "name": "Mint",
2146 "type": "event"
2147 },
2148 {
2149 "anonymous": false,
2150 "inputs": [
2151 {
2152 "indexed": true,
2153 "internalType": "address",
2154 "name": "sender",
2155 "type": "address"
2156 },
2157 {
2158 "indexed": false,
2159 "internalType": "uint256",
2160 "name": "amount0In",
2161 "type": "uint256"
2162 },
2163 {
2164 "indexed": false,
2165 "internalType": "uint256",
2166 "name": "amount1In",
2167 "type": "uint256"
2168 },
2169 {
2170 "indexed": false,
2171 "internalType": "uint256",
2172 "name": "amount0Out",
2173 "type": "uint256"
2174 },
2175 {
2176 "indexed": false,
2177 "internalType": "uint256",
2178 "name": "amount1Out",
2179 "type": "uint256"
2180 },
2181 {
2182 "indexed": true,
2183 "internalType": "address",
2184 "name": "to",
2185 "type": "address"
2186 }
2187 ],
2188 "name": "Swap",
2189 "type": "event"
2190 },
2191 {
2192 "anonymous": false,
2193 "inputs": [
2194 {
2195 "indexed": false,
2196 "internalType": "uint112",
2197 "name": "reserve0",
2198 "type": "uint112"
2199 },
2200 {
2201 "indexed": false,
2202 "internalType": "uint112",
2203 "name": "reserve1",
2204 "type": "uint112"
2205 }
2206 ],
2207 "name": "Sync",
2208 "type": "event"
2209 },
2210 {
2211 "anonymous": false,
2212 "inputs": [
2213 {
2214 "indexed": true,
2215 "internalType": "address",
2216 "name": "from",
2217 "type": "address"
2218 },
2219 {
2220 "indexed": true,
2221 "internalType": "address",
2222 "name": "to",
2223 "type": "address"
2224 },
2225 {
2226 "indexed": false,
2227 "internalType": "uint256",
2228 "name": "value",
2229 "type": "uint256"
2230 }
2231 ],
2232 "name": "Transfer",
2233 "type": "event"
2234 },
2235 {
2236 "constant": true,
2237 "inputs": [],
2238 "name": "DOMAIN_SEPARATOR",
2239 "outputs": [
2240 {
2241 "internalType": "bytes32",
2242 "name": "",
2243 "type": "bytes32"
2244 }
2245 ],
2246 "payable": false,
2247 "stateMutability": "view",
2248 "type": "function"
2249 },
2250 {
2251 "constant": true,
2252 "inputs": [],
2253 "name": "MINIMUM_LIQUIDITY",
2254 "outputs": [
2255 {
2256 "internalType": "uint256",
2257 "name": "",
2258 "type": "uint256"
2259 }
2260 ],
2261 "payable": false,
2262 "stateMutability": "view",
2263 "type": "function"
2264 },
2265 {
2266 "constant": true,
2267 "inputs": [],
2268 "name": "PERMIT_TYPEHASH",
2269 "outputs": [
2270 {
2271 "internalType": "bytes32",
2272 "name": "",
2273 "type": "bytes32"
2274 }
2275 ],
2276 "payable": false,
2277 "stateMutability": "view",
2278 "type": "function"
2279 },
2280 {
2281 "constant": true,
2282 "inputs": [
2283 {
2284 "internalType": "address",
2285 "name": "",
2286 "type": "address"
2287 },
2288 {
2289 "internalType": "address",
2290 "name": "",
2291 "type": "address"
2292 }
2293 ],
2294 "name": "allowance",
2295 "outputs": [
2296 {
2297 "internalType": "uint256",
2298 "name": "",
2299 "type": "uint256"
2300 }
2301 ],
2302 "payable": false,
2303 "stateMutability": "view",
2304 "type": "function"
2305 },
2306 {
2307 "constant": false,
2308 "inputs": [
2309 {
2310 "internalType": "address",
2311 "name": "spender",
2312 "type": "address"
2313 },
2314 {
2315 "internalType": "uint256",
2316 "name": "value",
2317 "type": "uint256"
2318 }
2319 ],
2320 "name": "approve",
2321 "outputs": [
2322 {
2323 "internalType": "bool",
2324 "name": "",
2325 "type": "bool"
2326 }
2327 ],
2328 "payable": false,
2329 "stateMutability": "nonpayable",
2330 "type": "function"
2331 },
2332 {
2333 "constant": true,
2334 "inputs": [
2335 {
2336 "internalType": "address",
2337 "name": "",
2338 "type": "address"
2339 }
2340 ],
2341 "name": "balanceOf",
2342 "outputs": [
2343 {
2344 "internalType": "uint256",
2345 "name": "",
2346 "type": "uint256"
2347 }
2348 ],
2349 "payable": false,
2350 "stateMutability": "view",
2351 "type": "function"
2352 },
2353 {
2354 "constant": true,
2355 "inputs": [],
2356 "name": "baseToken",
2357 "outputs": [
2358 {
2359 "internalType": "address",
2360 "name": "",
2361 "type": "address"
2362 }
2363 ],
2364 "payable": false,
2365 "stateMutability": "view",
2366 "type": "function"
2367 },
2368 {
2369 "constant": true,
2370 "inputs": [],
2371 "name": "blockTimestampLast",
2372 "outputs": [
2373 {
2374 "internalType": "uint32",
2375 "name": "",
2376 "type": "uint32"
2377 }
2378 ],
2379 "payable": false,
2380 "stateMutability": "view",
2381 "type": "function"
2382 },
2383 {
2384 "constant": false,
2385 "inputs": [
2386 {
2387 "internalType": "address",
2388 "name": "to",
2389 "type": "address"
2390 }
2391 ],
2392 "name": "burn",
2393 "outputs": [
2394 {
2395 "internalType": "uint256",
2396 "name": "amount0",
2397 "type": "uint256"
2398 },
2399 {
2400 "internalType": "uint256",
2401 "name": "amount1",
2402 "type": "uint256"
2403 }
2404 ],
2405 "payable": false,
2406 "stateMutability": "nonpayable",
2407 "type": "function"
2408 },
2409 {
2410 "constant": true,
2411 "inputs": [],
2412 "name": "decimals",
2413 "outputs": [
2414 {
2415 "internalType": "uint8",
2416 "name": "",
2417 "type": "uint8"
2418 }
2419 ],
2420 "payable": false,
2421 "stateMutability": "view",
2422 "type": "function"
2423 },
2424 {
2425 "constant": true,
2426 "inputs": [],
2427 "name": "factory",
2428 "outputs": [
2429 {
2430 "internalType": "address",
2431 "name": "",
2432 "type": "address"
2433 }
2434 ],
2435 "payable": false,
2436 "stateMutability": "view",
2437 "type": "function"
2438 },
2439 {
2440 "constant": true,
2441 "inputs": [],
2442 "name": "fee",
2443 "outputs": [
2444 {
2445 "internalType": "uint256",
2446 "name": "",
2447 "type": "uint256"
2448 }
2449 ],
2450 "payable": false,
2451 "stateMutability": "view",
2452 "type": "function"
2453 },
2454 {
2455 "constant": true,
2456 "inputs": [],
2457 "name": "getCurveParams",
2458 "outputs": [
2459 {
2460 "internalType": "address",
2461 "name": "_baseToken",
2462 "type": "address"
2463 },
2464 {
2465 "internalType": "uint256",
2466 "name": "_m",
2467 "type": "uint256"
2468 },
2469 {
2470 "internalType": "uint256",
2471 "name": "_n",
2472 "type": "uint256"
2473 },
2474 {
2475 "internalType": "uint256",
2476 "name": "_fee",
2477 "type": "uint256"
2478 }
2479 ],
2480 "payable": false,
2481 "stateMutability": "view",
2482 "type": "function"
2483 },
2484 {
2485 "constant": true,
2486 "inputs": [],
2487 "name": "getReserves",
2488 "outputs": [
2489 {
2490 "internalType": "uint112",
2491 "name": "_reserve0",
2492 "type": "uint112"
2493 },
2494 {
2495 "internalType": "uint112",
2496 "name": "_reserve1",
2497 "type": "uint112"
2498 },
2499 {
2500 "internalType": "uint32",
2501 "name": "_blockTimestampLast",
2502 "type": "uint32"
2503 }
2504 ],
2505 "payable": false,
2506 "stateMutability": "view",
2507 "type": "function"
2508 },
2509 {
2510 "constant": false,
2511 "inputs": [
2512 {
2513 "internalType": "address",
2514 "name": "_token0",
2515 "type": "address"
2516 },
2517 {
2518 "internalType": "address",
2519 "name": "_token1",
2520 "type": "address"
2521 },
2522 {
2523 "internalType": "address",
2524 "name": "_baseToken",
2525 "type": "address"
2526 },
2527 {
2528 "internalType": "address",
2529 "name": "_pairOwner",
2530 "type": "address"
2531 },
2532 {
2533 "internalType": "uint256",
2534 "name": "_slope",
2535 "type": "uint256"
2536 },
2537 {
2538 "internalType": "uint256",
2539 "name": "_exp",
2540 "type": "uint256"
2541 },
2542 {
2543 "internalType": "uint256",
2544 "name": "_fee",
2545 "type": "uint256"
2546 }
2547 ],
2548 "name": "initialize",
2549 "outputs": [],
2550 "payable": false,
2551 "stateMutability": "nonpayable",
2552 "type": "function"
2553 },
2554 {
2555 "constant": true,
2556 "inputs": [],
2557 "name": "kLast",
2558 "outputs": [
2559 {
2560 "internalType": "uint256",
2561 "name": "",
2562 "type": "uint256"
2563 }
2564 ],
2565 "payable": false,
2566 "stateMutability": "view",
2567 "type": "function"
2568 },
2569 {
2570 "constant": true,
2571 "inputs": [],
2572 "name": "m",
2573 "outputs": [
2574 {
2575 "internalType": "uint256",
2576 "name": "",
2577 "type": "uint256"
2578 }
2579 ],
2580 "payable": false,
2581 "stateMutability": "view",
2582 "type": "function"
2583 },
2584 {
2585 "constant": false,
2586 "inputs": [
2587 {
2588 "internalType": "address",
2589 "name": "to",
2590 "type": "address"
2591 }
2592 ],
2593 "name": "mint",
2594 "outputs": [
2595 {
2596 "internalType": "uint256",
2597 "name": "liquidity",
2598 "type": "uint256"
2599 }
2600 ],
2601 "payable": false,
2602 "stateMutability": "nonpayable",
2603 "type": "function"
2604 },
2605 {
2606 "constant": true,
2607 "inputs": [],
2608 "name": "n",
2609 "outputs": [
2610 {
2611 "internalType": "uint256",
2612 "name": "",
2613 "type": "uint256"
2614 }
2615 ],
2616 "payable": false,
2617 "stateMutability": "view",
2618 "type": "function"
2619 },
2620 {
2621 "constant": true,
2622 "inputs": [],
2623 "name": "name",
2624 "outputs": [
2625 {
2626 "internalType": "string",
2627 "name": "",
2628 "type": "string"
2629 }
2630 ],
2631 "payable": false,
2632 "stateMutability": "view",
2633 "type": "function"
2634 },
2635 {
2636 "constant": true,
2637 "inputs": [
2638 {
2639 "internalType": "address",
2640 "name": "",
2641 "type": "address"
2642 }
2643 ],
2644 "name": "nonces",
2645 "outputs": [
2646 {
2647 "internalType": "uint256",
2648 "name": "",
2649 "type": "uint256"
2650 }
2651 ],
2652 "payable": false,
2653 "stateMutability": "view",
2654 "type": "function"
2655 },
2656 {
2657 "constant": true,
2658 "inputs": [],
2659 "name": "pairOwner",
2660 "outputs": [
2661 {
2662 "internalType": "address",
2663 "name": "",
2664 "type": "address"
2665 }
2666 ],
2667 "payable": false,
2668 "stateMutability": "view",
2669 "type": "function"
2670 },
2671 {
2672 "constant": false,
2673 "inputs": [
2674 {
2675 "internalType": "address",
2676 "name": "owner",
2677 "type": "address"
2678 },
2679 {
2680 "internalType": "address",
2681 "name": "spender",
2682 "type": "address"
2683 },
2684 {
2685 "internalType": "uint256",
2686 "name": "value",
2687 "type": "uint256"
2688 },
2689 {
2690 "internalType": "uint256",
2691 "name": "deadline",
2692 "type": "uint256"
2693 },
2694 {
2695 "internalType": "uint8",
2696 "name": "v",
2697 "type": "uint8"
2698 },
2699 {
2700 "internalType": "bytes32",
2701 "name": "r",
2702 "type": "bytes32"
2703 },
2704 {
2705 "internalType": "bytes32",
2706 "name": "s",
2707 "type": "bytes32"
2708 }
2709 ],
2710 "name": "permit",
2711 "outputs": [],
2712 "payable": false,
2713 "stateMutability": "nonpayable",
2714 "type": "function"
2715 },
2716 {
2717 "constant": true,
2718 "inputs": [],
2719 "name": "price0CumulativeLast",
2720 "outputs": [
2721 {
2722 "internalType": "uint256",
2723 "name": "",
2724 "type": "uint256"
2725 }
2726 ],
2727 "payable": false,
2728 "stateMutability": "view",
2729 "type": "function"
2730 },
2731 {
2732 "constant": true,
2733 "inputs": [],
2734 "name": "price1CumulativeLast",
2735 "outputs": [
2736 {
2737 "internalType": "uint256",
2738 "name": "",
2739 "type": "uint256"
2740 }
2741 ],
2742 "payable": false,
2743 "stateMutability": "view",
2744 "type": "function"
2745 },
2746 {
2747 "constant": false,
2748 "inputs": [
2749 {
2750 "internalType": "address",
2751 "name": "_nextOwner",
2752 "type": "address"
2753 }
2754 ],
2755 "name": "setPairOwner",
2756 "outputs": [],
2757 "payable": false,
2758 "stateMutability": "nonpayable",
2759 "type": "function"
2760 },
2761 {
2762 "constant": false,
2763 "inputs": [
2764 {
2765 "internalType": "address",
2766 "name": "to",
2767 "type": "address"
2768 }
2769 ],
2770 "name": "skim",
2771 "outputs": [],
2772 "payable": false,
2773 "stateMutability": "nonpayable",
2774 "type": "function"
2775 },
2776 {
2777 "constant": false,
2778 "inputs": [
2779 {
2780 "internalType": "uint256",
2781 "name": "amount0Out",
2782 "type": "uint256"
2783 },
2784 {
2785 "internalType": "uint256",
2786 "name": "amount1Out",
2787 "type": "uint256"
2788 },
2789 {
2790 "internalType": "address",
2791 "name": "to",
2792 "type": "address"
2793 },
2794 {
2795 "internalType": "bytes",
2796 "name": "data",
2797 "type": "bytes"
2798 }
2799 ],
2800 "name": "swap",
2801 "outputs": [],
2802 "payable": false,
2803 "stateMutability": "nonpayable",
2804 "type": "function"
2805 },
2806 {
2807 "constant": true,
2808 "inputs": [],
2809 "name": "symbol",
2810 "outputs": [
2811 {
2812 "internalType": "string",
2813 "name": "",
2814 "type": "string"
2815 }
2816 ],
2817 "payable": false,
2818 "stateMutability": "view",
2819 "type": "function"
2820 },
2821 {
2822 "constant": false,
2823 "inputs": [],
2824 "name": "sync",
2825 "outputs": [],
2826 "payable": false,
2827 "stateMutability": "nonpayable",
2828 "type": "function"
2829 },
2830 {
2831 "constant": true,
2832 "inputs": [],
2833 "name": "token0",
2834 "outputs": [
2835 {
2836 "internalType": "address",
2837 "name": "",
2838 "type": "address"
2839 }
2840 ],
2841 "payable": false,
2842 "stateMutability": "view",
2843 "type": "function"
2844 },
2845 {
2846 "constant": true,
2847 "inputs": [],
2848 "name": "token1",
2849 "outputs": [
2850 {
2851 "internalType": "address",
2852 "name": "",
2853 "type": "address"
2854 }
2855 ],
2856 "payable": false,
2857 "stateMutability": "view",
2858 "type": "function"
2859 },
2860 {
2861 "constant": true,
2862 "inputs": [],
2863 "name": "totalSupply",
2864 "outputs": [
2865 {
2866 "internalType": "uint256",
2867 "name": "",
2868 "type": "uint256"
2869 }
2870 ],
2871 "payable": false,
2872 "stateMutability": "view",
2873 "type": "function"
2874 },
2875 {
2876 "constant": false,
2877 "inputs": [
2878 {
2879 "internalType": "address",
2880 "name": "to",
2881 "type": "address"
2882 },
2883 {
2884 "internalType": "uint256",
2885 "name": "value",
2886 "type": "uint256"
2887 }
2888 ],
2889 "name": "transfer",
2890 "outputs": [
2891 {
2892 "internalType": "bool",
2893 "name": "",
2894 "type": "bool"
2895 }
2896 ],
2897 "payable": false,
2898 "stateMutability": "nonpayable",
2899 "type": "function"
2900 },
2901 {
2902 "constant": false,
2903 "inputs": [
2904 {
2905 "internalType": "address",
2906 "name": "from",
2907 "type": "address"
2908 },
2909 {
2910 "internalType": "address",
2911 "name": "to",
2912 "type": "address"
2913 },
2914 {
2915 "internalType": "uint256",
2916 "name": "value",
2917 "type": "uint256"
2918 }
2919 ],
2920 "name": "transferFrom",
2921 "outputs": [
2922 {
2923 "internalType": "bool",
2924 "name": "",
2925 "type": "bool"
2926 }
2927 ],
2928 "payable": false,
2929 "stateMutability": "nonpayable",
2930 "type": "function"
2931 }
2932 ],
2933 "bytecode": "6080604052600160115534801561001557600080fd5b5060405146908060526133128239604080519182900360520182208282018252600a808452692ab734b9bbb0b8102b1960b11b602094850152825180840184526001808252603160f81b918601919091528351808601939093527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738838501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606084015260808301969096523060a0808401919091528351808403909101815260c090920190925280519201919091206003908155600580546001600160a01b031916331790556103e8909155600b9290925550600c556131f68061011c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
2934 "bin": "6080604052600160115534801561001557600080fd5b5060405146908060526133128239604080519182900360520182208282018252600a808452692ab734b9bbb0b8102b1960b11b602094850152825180840184526001808252603160f81b918601919091528351808601939093527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738838501527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606084015260808301969096523060a0808401919091528351808403909101815260c090920190925280519201919091206003908155600580546001600160a01b031916331790556103e8909155600b9290925550600c556131f68061011c6000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
2935 "bin-runtime": "608060405234801561001057600080fd5b50600436106102415760003560e01c806370a0823111610145578063c45a0155116100bd578063d505accf1161008c578063ddca3f4311610071578063ddca3f4314610781578063e77fc7a414610789578063fff6cae9146107e857610241565b8063d505accf146106e8578063dd62ed3e1461074657610241565b8063c45a0155146106af578063c55dae63146106b7578063c5700a02146106bf578063d21220a7146106e057610241565b806389afcb4411610114578063a9059cbb116100f9578063a9059cbb1461063b578063ba9a7a5614610674578063bc25cf771461067c57610241565b806389afcb44146105e757806395d89b411461063357610241565b806370a08231146105345780637464fc3d146105675780637ecebe001461056f578063808413fa146105a257610241565b80632e52d606116101d85780633644e515116101a75780635a2ee0191161018c5780635a2ee019146104f15780635a3d5493146104f95780636a6278421461050157610241565b80633644e515146104e15780635909c0d5146104e957610241565b80632e52d606146104ab5780632ec2fe3d146104b357806330adf81f146104bb578063313ce567146104c357610241565b80630dfe1681116102145780630dfe1681146103ea57806318160ddd1461041b57806323b872dd146104355780632dd2a9211461047857610241565b8063022c0d9f1461024657806306fdde03146102e15780630902f1ac1461035e578063095ea7b31461039d575b600080fd5b6102df6004803603608081101561025c57600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff60408301351691908101906080810160608201356401000000008111156102a057600080fd5b8201836020820111156102b257600080fd5b803590602001918460018302840111640100000000831117156102d457600080fd5b5090925090506107f0565b005b6102e9610ec4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561032357818101518382015260200161030b565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610366610efd565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103d6600480360360408110156103b357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610f52565b604080519115158252519081900360200190f35b6103f2610f69565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b610423610f85565b60408051918252519081900360200190f35b6103d66004803603606081101561044b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f8b565b6102df6004803603602081101561048e57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661106a565b610423611137565b6103f261113d565b610423611159565b6104cb61117d565b6040805160ff9092168252519081900360200190f35b610423611182565b610423611188565b61042361118e565b610423611194565b6104236004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661119a565b6104236004803603602081101561054a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611644565b610423611656565b6104236004803603602081101561058557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661165c565b6105aa61166e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352838301919091526060830152519081900360800190f35b61061a600480360360208110156105fd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611699565b6040805192835260208301919091528051918290030190f35b6102e9611bc0565b6103d66004803603604081101561065157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611bf9565b610423611c06565b6102df6004803603602081101561069257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c0c565b6103f2611e02565b6103f2611e1e565b6106c7611e3a565b6040805163ffffffff9092168252519081900360200190f35b6103f2611e66565b6102df600480360360e08110156106fe57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611e82565b6104236004803603604081101561075c57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661214e565b61042361216b565b6102df600480360360e081101561079f57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135612171565b6102df6123ce565b60115460011461086157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155841515806108745750600084115b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806131086025913960400191505060405180910390fd5b6000806108d4610efd565b5091509150816dffffffffffffffffffffffffffff16871080156109075750806dffffffffffffffffffffffffffff1686105b61095c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806131516021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff9182169190811690891682148015906109c157508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610a2c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a15610a3d57610a3d828a8d6125b4565b8915610a4e57610a4e818a8c6125b4565b8615610b30578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610b1757600080fd5b505af1158015610b2b573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610b9c57600080fd5b505afa158015610bb0573d6000803e3d6000fd5b505050506040513d6020811015610bc657600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610c3857600080fd5b505afa158015610c4c573d6000803e3d6000fd5b505050506040513d6020811015610c6257600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610c8c576000610ca2565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610cc6576000610cdc565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ced5750600081115b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061312d6024913960400191505060405180910390fd5b6000610d76610d5884600363ffffffff6127c116565b610d6a876103e863ffffffff6127c116565b9063ffffffff61284716565b90506000610d8e610d5884600363ffffffff6127c116565b9050610dc6620f4240610dba6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6127c116565b9063ffffffff6127c116565b610dd6838363ffffffff6127c116565b1015610e4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610e51848488886128b9565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001601155505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b600d546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610f5f338484612b75565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146110555773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054611023908363ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b611060848484612be4565b5060019392505050565b60095473ffffffffffffffffffffffffffffffffffffffff1633146110f057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600b5481565b60095473ffffffffffffffffffffffffffffffffffffffff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b600e5481565b600a5481565b600f5481565b600060115460011461120d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061121d610efd565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561129757600080fd5b505afa1580156112ab573d6000803e3d6000fd5b505050506040513d60208110156112c157600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d602081101561136457600080fd5b50519050600061138a836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113ae836dffffffffffffffffffffffffffff871663ffffffff61284716565b905060006113bc8787612cc5565b60008054600854600654939450909273ffffffffffffffffffffffffffffffffffffffff9081169116146113f057876113f2565b885b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114235789611425565b885b905060006103e8600a548161143657fe5b60085460065492909104925060009173ffffffffffffffffffffffffffffffffffffffff90811691161461146a578661146c565b875b60085460065491925060009173ffffffffffffffffffffffffffffffffffffffff9081169116146114a357600b54890a83026114ab565b600b54880a83025b9050856114e4576114d06103e8610d6a6114cb858563ffffffff6127c116565b612e51565b9d506114df60006103e8612ea3565b611541565b61153e6dffffffffffffffffffffffffffff8616611508848963ffffffff6127c116565b8161150f57fe5b046dffffffffffffffffffffffffffff8616611531848a63ffffffff6127c116565b8161153857fe5b04612f53565b9d505b60008e1161159a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b6115a48f8f612ea3565b6115b08b8b8f8f6128b9565b86156115f257600d546115ee906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b604080518a8152602081018a9052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a25050600160115550999b9a5050505050505050505050565b60016020526000908152604090205481565b60105481565b60046020526000908152604090205481565b600854600a54600b54600c5473ffffffffffffffffffffffffffffffffffffffff9093169391929091565b60008060115460011461170d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b600060118190558061171d610efd565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b15801561179f57600080fd5b505afa1580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561183d57600080fd5b505afa158015611851573d6000803e3d6000fd5b505050506040513d602081101561186757600080fd5b505130600090815260016020526040812054600a54929350916103e89004906118908989612cc5565b600054600854600654929350909182916118de9173ffffffffffffffffffffffffffffffffffffffff9081169116146118cf57600b54880a85026118d1565b875b869063ffffffff6127c116565b816118e557fe5b600854600654929091049d5082916119299173ffffffffffffffffffffffffffffffffffffffff91821691161461192257600b54870a85026118d1565b85876127c1565b8161193057fe5b049a5060008c118015611943575060008b115b611998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806131726028913960400191505060405180910390fd5b6119a23085612f6b565b6119ad888e8e6125b4565b6119b8878e8d6125b4565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8a16916370a08231916024808301926020929190829003018186803b158015611a2457600080fd5b505afa158015611a38573d6000803e3d6000fd5b505050506040513d6020811015611a4e57600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191975073ffffffffffffffffffffffffffffffffffffffff8916916370a0823191602480820192602092909190829003018186803b158015611ac057600080fd5b505afa158015611ad4573d6000803e3d6000fd5b505050506040513d6020811015611aea57600080fd5b50519450611afa86868c8c6128b9565b8115611b3c57600d54611b38906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6127c116565b6010555b8c73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968e8e604051808381526020018281526020019250505060405180910390a3505050505050505050506001601181905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610f5f338484612be4565b6103e881565b601154600114611c7d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654600754600d54604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611d599285928792611d54926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b505afa158015611d30573d6000803e3d6000fd5b505050506040513d6020811015611d4657600080fd5b50519063ffffffff61284716565b6125b4565b600d54604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611df89284928792611d54926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b158015611d1c57600080fd5b5050600160115550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60085473ffffffffffffffffffffffffffffffffffffffff1681565b600d547c0100000000000000000000000000000000000000000000000000000000900463ffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611ef157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015612052573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906120cd57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61213857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b612143898989612b75565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c5481565b60055473ffffffffffffffffffffffffffffffffffffffff1633146121f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600182101561226757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f556e697377617056323a206578706f6e656e74206d757374206265203e3d2031604482015290519081900360640190fd5b60018310156122d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e697377617056323a20736c6f7065206d757374206265203e3d2031000000604482015290519081900360640190fd5b600181101561234757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e697377617056323a20666565206d757374206265203e3d20310000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9889167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216179091556007805497891697821697909717909655600880549588169587169590951790945560098054939096169290941691909117909355600a92909255600b55600c55565b60115460011461243f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000601155600654604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516125ad9273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b1580156124b657600080fd5b505afa1580156124ca573d6000803e3d6000fd5b505050506040513d60208110156124e057600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b15801561255357600080fd5b505afa158015612567573d6000803e3d6000fd5b505050506040513d602081101561257d57600080fd5b5051600d546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166128b9565b6001601155565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106126ba57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161267d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461271c576040519150601f19603f3d011682016040523d82523d6000602084013e612721565b606091505b509150915081801561274f57508051158061274f575080806020019051602081101561274c57600080fd5b50515b6127ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806127dc575050808202828282816127d957fe5b04145b610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff84118015906128e557506dffffffffffffffffffffffffffff8311155b61295057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b600d5463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906129a057506dffffffffffffffffffffffffffff841615155b80156129bb57506dffffffffffffffffffffffffffff831615155b15612a6b578063ffffffff166129fe856129d486613030565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff61305416565b600e80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612a3e846129d487613030565b600f80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600d80547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612c1a908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612c5c908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015612d3057600080fd5b505afa158015612d44573d6000803e3d6000fd5b505050506040513d6020811015612d5a57600080fd5b505160105473ffffffffffffffffffffffffffffffffffffffff8216158015945091925090612e3d578015612e38576000612db16114cb6dffffffffffffffffffffffffffff88811690881663ffffffff6127c116565b90506000612dbe83612e51565b905080821115612e35576000612dec612ddd848463ffffffff61284716565b6000549063ffffffff6127c116565b90506000612e1183612e0586600563ffffffff6127c116565b9063ffffffff61309516565b90506000818381612e1e57fe5b0490508015612e3157612e318782612ea3565b5050505b50505b612e49565b8015612e495760006010555b505092915050565b60006003821115612e94575080600160028204015b81811015612e8e57809150600281828581612e7d57fe5b040181612e8657fe5b049050612e66565b50612e9e565b8115612e9e575060015b919050565b600054612eb6908263ffffffff61309516565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612eee908263ffffffff61309516565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612f625781612f64565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260016020526040902054612fa1908263ffffffff61284716565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612fdb908263ffffffff61284716565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84168161308d57fe5b049392505050565b80820182811015610f6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a723158209853eb4c783734250485704256a3d152364c8047780fc78421578cb59c38a59b64736f6c63430005100032",
2936 "srcmap": "290:11412:2:-;;;1407:1;1383:25;;2657:108;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1102:95:0;;1006:7;;1102:95;;;;;;;;;;;;;;;;1231:4;;;;;;;;;-1:-1:-1;1231:4:0;;;;;1265:10;;;;;;;;;;;-1:-1:-1;1265:10:0;;;;;;;1074:272;;;;;;;;;1215:22;1074:272;;;;1255:21;1074:272;;;;;;;;;;;1327:4;1074:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1074:272:0;;;;;;;1051:305;;;;;;;;1032:16;:324;;;2688:7:2;:20;;-1:-1:-1;2688:20:2;2698:10;2688:20;;;2722:4;2718:8;;;2736:1;:5;;;;-1:-1:-1;2751:3:2;:7;-1:-1:-1;;290:11412:2;-1:-1:-1;290:11412:2;;",
2937 "srcmap-runtime": "290:11412:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;290:11412:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9261:1862;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9261:1862:2;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9261:1862:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9261:1862:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;9261:1862:2;;-1:-1:-1;9261:1862:2;-1:-1:-1;9261:1862:2;:::i;:::-;;184:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;184:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1552:227:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2177:144:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2177:144:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;592:21:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;319:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;2469:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2469:295:0;;;;;;;;;;;;;;;;;;:::i;3422:156:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3422:156:2;;;;:::i;818:13::-;;;:::i;676:24::-;;;:::i;605:108:0:-;;;:::i;278:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;464:31;;;:::i;1203:32:2:-;;;:::i;706:13::-;;;:::i;1241:32::-;;;:::i;5863:1609::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5863:1609:2;;;;:::i;349:41:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;349:41:0;;;;:::i;1279:17:2:-;;;:::i;719:38:0:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;719:38:0;;;;:::i;1785:187:2:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7581:1571;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7581:1571:2;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;232:40:0;;;:::i;2327:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2327:136:0;;;;;;;;;:::i;417:46:2:-;;;:::i;11169:329::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11169:329:2;;;;:::i;564:22::-;;;:::i;646:24::-;;;:::i;1107:33::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;619:21;;;:::i;2770:662:0:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2770:662:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;396:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;396:61:0;;;;;;;;;;;:::i;893:15:2:-;;;:::i;2827:589::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2827:589:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11544:156::-;;;:::i;9261:1862::-;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;9374:14;;;;:32;;;9405:1;9392:10;:14;9374:32;9366:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9459:17;9478;9501:13;:11;:13::i;:::-;9458:56;;;;;9560:9;9547:22;;:10;:22;:48;;;;;9586:9;9573:22;;:10;:22;9547:48;9539:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9773:6;;9807;;9644:13;;;;9773:6;;;;;9807;;;;9831:13;;;;;;;:30;;;9854:7;9848:13;;:2;:13;;;;9831:30;9823:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9901:14;;9897:58;;9917:38;9931:7;9940:2;9944:10;9917:13;:38::i;:::-;10003:14;;9999:58;;10019:38;10033:7;10042:2;10046:10;10019:13;:38::i;:::-;10105:15;;10101:97;;10139:2;10122:34;;;10157:10;10169;10181;10193:4;;10122:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10122:76:2;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10122:76:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10122:76:2;;;;10101:97;10219:40;;;;;;10253:4;10219:40;;;;;;:25;;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;10219:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10219:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10219:40:2;10280;;;;;;10314:4;10280:40;;;;;;10219;;-1:-1:-1;10280:25:2;;;;;;:40;;;;;10219;;10280;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;10280:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10280:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10280:40:2;;-1:-1:-1;10340:14:2;;-1:-1:-1;;10368:22:2;;;;;;10357:33;;:75;;10431:1;10357:75;;;10417:10;10405:9;:22;;;10393:8;:35;10357:75;10340:92;;10442:14;10482:10;10470:9;:22;;;10459:8;:33;:75;;10533:1;10459:75;;;10519:10;10507:9;:22;;;10495:8;:35;10459:75;10442:92;;10564:1;10552:9;:13;:30;;;;10581:1;10569:9;:13;10552:30;10544:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10707:21;10731:40;10754:16;:9;10768:1;10754:16;:13;:16;:::i;:::-;10731:18;:8;10744:4;10731:18;:12;:18;:::i;:::-;:22;:40;:22;:40;:::i;:::-;10707:64;-1:-1:-1;10781:21:2;10805:40;10828:16;:9;10842:1;10828:16;:13;:16;:::i;10805:40::-;10781:64;-1:-1:-1;10905:43:2;10940:7;10905:30;;:15;;;;:30;;;:19;:30;:::i;:::-;:34;:43;:34;:43;:::i;:::-;10863:38;:16;10884;10863:38;:20;:38;:::i;:::-;:85;;10855:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:1;;10986:49;10994:8;11004;11014:9;11025;10986:7;:49::i;:::-;11050:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11055:10;;11050:66;;;;;;;;;-1:-1:-1;;1538:1:2;1527:8;:12;-1:-1:-1;;;;;;;;;9261:1862:2:o;184:42:0:-;;;;;;;;;;;;;;;;;;;:::o;1552:227:2:-;1684:8;;;;;;;1714;;;;;;;1754:18;;;;;;1552:227::o;2177:144:0:-;2241:4;2257:36;2266:10;2278:7;2287:5;2257:8;:36::i;:::-;-1:-1:-1;2310:4:0;2177:144;;;;;:::o;592:21:2:-;;;;;;:::o;319:24:0:-;;;;:::o;2469:295::-;2567:15;;;2547:4;2567:15;;;:9;:15;;;;;;;;2583:10;2567:27;;;;;;;;2603:2;2567:39;2563:138;;2652:15;;;;;;;:9;:15;;;;;;;;2668:10;2652:27;;;;;;;;:38;;2684:5;2652:38;:31;:38;:::i;:::-;2622:15;;;;;;;:9;:15;;;;;;;;2638:10;2622:27;;;;;;;:68;2563:138;2710:26;2720:4;2726:2;2730:5;2710:9;:26::i;:::-;-1:-1:-1;2753:4:0;2469:295;;;;;:::o;3422:156:2:-;3505:9;;;;3491:10;:23;3483:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3549:9;:22;;;;;;;;;;;;;;;3422:156::o;818:13::-;;;;:::o;676:24::-;;;;;;:::o;605:108:0:-;647:66;605:108;:::o;278:35::-;311:2;278:35;:::o;464:31::-;;;;:::o;1203:32:2:-;;;;:::o;706:13::-;;;;:::o;1241:32::-;;;;:::o;5863:1609::-;5912:14;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;;;1505:1;5981:13;:11;:13::i;:::-;-1:-1:-1;6042:6:2;;6035:39;;;;;;6068:4;6035:39;;;;;;5938:56;;-1:-1:-1;5938:56:2;;-1:-1:-1;6019:13:2;;6042:6;;;;;6035:24;;:39;;;;;;;;;;;;;;6042:6;6035:39;;;5:2:-1;;;;30:1;27;20:12;5:2;6035:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6035:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6035:39:2;6107:6;;6100:39;;;;;;6133:4;6100:39;;;;;;6035;;-1:-1:-1;6084:13:2;;6107:6;;;;;6100:24;;:39;;;;;6035;;6100;;;;;;;;6107:6;6100:39;;;5:2:-1;;;;30:1;27;20:12;5:2;6100:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6100:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6100:39:2;;-1:-1:-1;6149:12:2;6164:23;:8;:23;;;;:12;:23;:::i;:::-;6149:38;-1:-1:-1;6197:12:2;6212:23;:8;:23;;;;:12;:23;:::i;:::-;6197:38;;6245:10;6258:30;6267:9;6278;6258:8;:30::i;:::-;6298:17;6318:11;;6449:9;;6439:6;;6245:43;;-1:-1:-1;6318:11:2;;6449:9;6439:6;;;6449:9;;6439:19;:43;;6473:9;6439:43;;;6461:9;6439:43;6525:9;;6515:6;;6417:65;;-1:-1:-1;6492:20:2;;6525:9;6515:6;;;6525:9;;6515:19;:43;;6549:9;6515:43;;;6537:9;6515:43;6492:66;;6568:10;6585:4;6581:1;;:8;;;;;6630:9;;6620:6;;6581:8;;;;;-1:-1:-1;6599:18:2;;6630:9;6620:6;;;6630:9;;6620:19;:39;;6652:7;6620:39;;;6642:7;6620:39;6701:9;;6691:6;;6599:60;;-1:-1:-1;6669:19:2;;6701:9;6691:6;;;6701:9;;6691:19;:73;;6761:1;;6750:7;:12;6741:5;:22;6691:73;;;6734:1;;6723:7;:12;6714:5;:22;6691:73;6669:95;-1:-1:-1;6779:17:2;6775:378;;6824:67;458:5;6824:44;6834:33;:13;6852:14;6834:33;:17;:33;:::i;:::-;6824:9;:44::i;:67::-;6812:79;;6904:36;6918:1;458:5;6904;:36::i;:::-;6775:378;;;7038:104;7047:45;;;:31;:13;7065:12;7047:31;:17;:31;:::i;:::-;:45;;;;;;7094:47;;;:32;:14;7113:12;7094:32;:18;:32;:::i;:::-;:47;;;;;;7038:8;:104::i;:::-;7026:116;;6775:378;7183:1;7171:9;:13;7163:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7239:20;7245:2;7249:9;7239:5;:20::i;:::-;7270:49;7278:8;7288;7298:9;7309;7270:7;:49::i;:::-;7333:5;7329:47;;;7367:8;;7348:28;;7367:8;7353;;;;7367;;;;7348:28;:18;:28;:::i;:::-;7340:5;:36;7329:47;7431:34;;;;;;;;;;;;;;7436:10;;7431:34;;;;;;;;-1:-1:-1;;1538:1:2;1527:8;:12;-1:-1:-1;5863:1609:2;;;-1:-1:-1;;;;;;;;;;;5863:1609:2:o;349:41:0:-;;;;;;;;;;;;;:::o;1279:17:2:-;;;;:::o;719:38:0:-;;;;;;;;;;;;;:::o;1785:187:2:-;1904:9;;1928:1;;1944;;1962:3;;1904:9;;;;;1928:1;;1944;;1785:187::o;7581:1571::-;7630:12;7644;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;;;1505:1;7710:13;:11;:13::i;:::-;-1:-1:-1;7766:6:2;;7846;;7924:40;;;;;;7958:4;7924:40;;;;;;7668:55;;-1:-1:-1;7668:55:2;;-1:-1:-1;7766:6:2;;;;;7846;;;7748:15;;7766:6;;7924:25;;:40;;;;;;;;;;;;;;7766:6;7924:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7924:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7924:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7924:40:2;7990;;;;;;8024:4;7990:40;;;;;;7924;;-1:-1:-1;7974:13:2;;7990:25;;;;;;:40;;;;;7924;;7990;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7990:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7990:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7990:40:2;8075:4;8040:14;8057:24;;;:9;7990:40;8057:24;;;;;8104:1;;7990:40;;-1:-1:-1;8057:24:2;8108:4;8104:8;;;8135:30;8144:9;8155;8135:8;:30::i;:::-;8175:17;8195:11;8328:9;;8318:6;;8122:43;;-1:-1:-1;8195:11:2;;;;8304:71;;8328:9;8318:6;;;8328:9;;8318:19;:56;;8372:1;;8360:8;:13;8351:5;:23;8318:56;;;8340:8;8318:56;8304:9;;:71;:13;:71;:::i;:::-;:86;;;;;8482:9;;8472:6;;8304:86;;;;;-1:-1:-1;8533:12:2;;8458:71;;8482:9;8472:6;;;8482:9;;8472:19;:56;;8526:1;;8514:8;:13;8505:5;:23;8472:56;;;8458:9;8494:8;8458:13;:71::i;:::-;:87;;;;;;8448:97;;8621:1;8611:7;:11;:26;;;;;8636:1;8626:7;:11;8611:26;8603:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8692:31;8706:4;8713:9;8692:5;:31::i;:::-;8733:35;8747:7;8756:2;8760:7;8733:13;:35::i;:::-;8778;8792:7;8801:2;8805:7;8778:13;:35::i;:::-;8834:40;;;;;;8868:4;8834:40;;;;;;:25;;;;;;:40;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8834:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8834:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8834:40:2;8895;;;;;;8929:4;8895:40;;;;;;8834;;-1:-1:-1;8895:25:2;;;;;;:40;;;;;8834;;8895;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8895:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8895:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8895:40:2;;-1:-1:-1;8946:49:2;8954:8;8895:40;8974:9;8985;8946:7;:49::i;:::-;9009:5;9005:47;;;9043:8;;9024:28;;9043:8;9029;;;;9043;;;;9024:28;:18;:28;:::i;:::-;9016:5;:36;9005:47;9142:2;9107:38;;9112:10;9107:38;;;9124:7;9133;9107:38;;;;;;;;;;;;;;;;;;;;;;;;1516:1;;;;;;;;;;1538;1527:8;:12;;;;7581:1571;;;:::o;232:40:0:-;;;;;;;;;;;;;;;;;;;:::o;2327:136::-;2387:4;2403:32;2413:10;2425:2;2429:5;2403:9;:32::i;417:46:2:-;458:5;417:46;:::o;11169:329::-;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;11237:6;;11286;;11389:8;;11344:40;;;;;;11378:4;11344:40;;;;;;11237:6;;;;;11286;;;;11317:82;;11237:6;;11340:2;;11344:54;;11389:8;;;11237:6;;11344:25;;:40;;;;;;;;;;;;;;;11237:6;11344:40;;;5:2:-1;;;;30:1;27;20:12;5:2;11344:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11344:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11344:40:2;;:54;:44;:54;:::i;:::-;11317:13;:82::i;:::-;11481:8;;11436:40;;;;;;11470:4;11436:40;;;;;;11409:82;;11423:7;;11432:2;;11436:54;;11481:8;;;;;;11436:25;;;;;;:40;;;;;;;;;;;;;;;:25;:40;;;5:2:-1;;;;30:1;27;20:12;11409:82:2;-1:-1:-1;;1538:1:2;1527:8;:12;-1:-1:-1;11169:329:2:o;564:22::-;;;;;;:::o;646:24::-;;;;;;:::o;1107:33::-;;;;;;;;;:::o;619:21::-;;;;;;:::o;2770:662:0:-;2915:15;2903:8;:27;;2895:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:16;;3160:13;;;;2963:14;3160:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3109:77;;647:66;3109:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3109:77:0;;;;;3099:88;;;;;;3003:198;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3003:198:0;;;;;;2980:231;;;;;;;;;3248:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:14;;3160:15;3248:26;;;;;-1:-1:-1;3248:26:0;;;;;;;;;;3160:15;3248:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3248:26:0;;;;;;-1:-1:-1;;3292:30:0;;;;;;;:59;;;3346:5;3326:25;;:16;:25;;;3292:59;3284:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3394:31;3403:5;3410:7;3419:5;3394:8;:31::i;:::-;2770:662;;;;;;;;;:::o;396:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;893:15:2:-;;;;:::o;2827:589::-;2997:7;;;;2983:10;:21;2975:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3075:1;3067:4;:9;;3059:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3141:1;3131:6;:11;;3123:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3202:1;3194:4;:9;;3186:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3245:6;:16;;;;;;;;;;;;;;3271:6;:16;;;;;;;;;;;;;;;3297:9;:22;;;;;;;;;;;;;;;3329:9;:22;;;;;;;;;;;;;;;;;3361:1;:10;;;;3381:1;:8;3399:3;:10;2827:589::o;11544:156::-;1449:8;;1461:1;1449:13;1441:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1505:1;1494:8;:12;11599:6;;11592:39;;;;;;11625:4;11592:39;;;;;;11584:109;;11599:6;;;11592:24;;:39;;;;;;;;;;;;;;11599:6;11592:39;;;5:2:-1;;;;30:1;27;20:12;5:2;11592:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11592:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11592:39:2;11640:6;;11633:39;;;;;;11666:4;11633:39;;;;;;11640:6;;;;;11633:24;;:39;;;;;11592;;11633;;;;;;;;11640:6;11633:39;;;5:2:-1;;;;30:1;27;20:12;5:2;11633:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11633:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11633:39:2;11674:8;;;;;;;11684;;;;11584:7;:109::i;:::-;1538:1;1527:8;:12;11544:156::o;1978:284::-;521:34;;;;;;;;;;;;;;;;;2105:43;;2094:10;2105:43;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2105:43:2;;;;;;25:18:-1;;;61:17;;2105:43:2;182:15:-1;2105:43:2;179:29:-1;160:49;;2094:55:2;;;;2059:12;;2073:17;;2094:10;;;2105:43;2094:55;;;25:18:-1;2094:55:2;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2094:55:2;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2058:91:2;;;;2167:7;:57;;;;-1:-1:-1;2179:11:2;;:16;;:44;;;2210:4;2199:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2199:24:2;2179:44;2159:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1978:284;;;;;:::o;420:140:9:-;472:6;498;;;:30;;-1:-1:-1;;513:5:9;;;527:1;522;513:5;522:1;508:15;;;;;:20;498:30;490:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:127;370:5;;;365:16;;;;357:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4001:847:2;4112:23;;;;;;:50;;-1:-1:-1;4139:23:2;;;;4112:50;4104:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:18;;4227:23;:15;:23;;;4299:18;;;;;4282:35;;;4354:15;;;;;;:33;;-1:-1:-1;4373:14:2;;;;;4354:33;:51;;;;-1:-1:-1;4391:14:2;;;;;4354:51;4350:332;;;4558:11;4505:64;;4510:44;4544:9;4510:27;4527:9;4510:16;:27::i;:::-;:33;;;:44;:33;:44;:::i;:::-;4481:20;:88;;4505:50;;;;;:64;;;;4481:88;;;4607:64;;;4612:44;4646:9;4612:27;4629:9;4612:16;:27::i;:44::-;4583:20;:88;;4607:50;;;;;:64;;;;4583:88;;;4350:332;4691:8;:28;;;;;;;;;;;;4729;;;;;;;;;;;;4767:35;;;;;;;;;;;;4817:24;;;4822:8;;;4817:24;;4832:8;;;;;;;4817:24;;;;;;;;;;;;;;;;;4001:847;;;;;;:::o;1783:166:0:-;1863:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1911:31;;;;;;;;;;;;;;;;;1783:166;;;:::o;1955:216::-;2048:15;;;;;;;:9;:15;;;;;;:26;;2068:5;2048:26;:19;:26;:::i;:::-;2030:15;;;;;;;;:9;:15;;;;;;:44;;;;2100:13;;;;;;;:24;;2118:5;2100:24;:17;:24;:::i;:::-;2084:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2139:25;;;;;;;2084:13;;2139:25;;;;;;;;;;;;;1955:216;;;:::o;4935:819:2:-;5008:10;5030:13;5064:7;;;;;;;;;;;5046:32;;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5046:34:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5046:34:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5046:34:2;5141:5;;5098:19;;;;;;;-1:-1:-1;5046:34:2;;-1:-1:-1;5141:5:2;5171:577;;5200:11;;5196:485;;5231:10;5244:41;5254:30;;:15;;;;:30;;;:19;:30;:::i;5244:41::-;5231:54;;5303:14;5320:17;5330:6;5320:9;:17::i;:::-;5303:34;;5367:9;5359:5;:17;5355:312;;;5400:14;5417:37;5433:20;:5;5443:9;5433:20;:9;:20;:::i;:::-;5417:11;;;:37;:15;:37;:::i;:::-;5400:54;-1:-1:-1;5476:16:2;5495:27;5512:9;5495:12;:5;5505:1;5495:12;:9;:12;:::i;:::-;:16;:27;:16;:27;:::i;:::-;5476:46;;5544:14;5573:11;5561:9;:23;;;;;;;-1:-1:-1;5610:13:2;;5606:42;;5625:23;5631:5;5638:9;5625:5;:23::i;:::-;5355:312;;;;5196:485;;;5171:577;;;5701:11;;5697:51;;5736:1;5728:5;:9;5697:51;4935:819;;;;;;:::o;307:292:8:-;352:6;378:1;374;:5;370:223;;;-1:-1:-1;399:1:8;431;427;423:5;;:9;446:89;457:1;453;:5;446:89;;;482:1;478:5;;519:1;514;510;506;:5;;;;;;:9;505:15;;;;;;501:19;;446:89;;;370:223;;;;555:6;;551:42;;-1:-1:-1;581:1:8;551:42;307:292;;;:::o;1369:197:0:-;1441:11;;:22;;1457:5;1441:22;:15;:22;:::i;:::-;1427:11;:36;;;1489:13;;;;;:9;:13;;;;;;:24;;1507:5;1489:24;:17;:24;:::i;:::-;1473:13;;;;;;;:9;:13;;;;;;;;:40;;;;1528:31;;;;;;;1473:13;;;;1528:31;;;;;;;;;;1369:197;;:::o;98:94:8:-;150:6;176:1;172;:5;:13;;184:1;172:13;;;180:1;172:13;168:17;98:94;-1:-1:-1;;;98:94:8:o;1572:205:0:-;1650:15;;;;;;;:9;:15;;;;;;:26;;1670:5;1650:26;:19;:26;:::i;:::-;1632:15;;;;;;;:9;:15;;;;;:44;;;;1700:11;:22;;1716:5;1700:22;:15;:22;:::i;:::-;1686:11;:36;;;1737:33;;;;;;;;;;;;;;;;;;;;;;1572:205;;:::o;283:118:10:-;358:10;;231:6;358:17;;283:118::o;469:106::-;529:9;558:10;;;554:14;;;558:10;554:14;;;;;;469:106;-1:-1:-1;;;469:106:10:o;155:126:9:-;238:5;;;233:16;;;;225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
2938 },
2939 "contracts/interfaces/IERC20.sol:IERC20": {
2940 "abi": [
2941 {
2942 "anonymous": false,
2943 "inputs": [
2944 {
2945 "indexed": true,
2946 "internalType": "address",
2947 "name": "owner",
2948 "type": "address"
2949 },
2950 {
2951 "indexed": true,
2952 "internalType": "address",
2953 "name": "spender",
2954 "type": "address"
2955 },
2956 {
2957 "indexed": false,
2958 "internalType": "uint256",
2959 "name": "value",
2960 "type": "uint256"
2961 }
2962 ],
2963 "name": "Approval",
2964 "type": "event"
2965 },
2966 {
2967 "anonymous": false,
2968 "inputs": [
2969 {
2970 "indexed": true,
2971 "internalType": "address",
2972 "name": "from",
2973 "type": "address"
2974 },
2975 {
2976 "indexed": true,
2977 "internalType": "address",
2978 "name": "to",
2979 "type": "address"
2980 },
2981 {
2982 "indexed": false,
2983 "internalType": "uint256",
2984 "name": "value",
2985 "type": "uint256"
2986 }
2987 ],
2988 "name": "Transfer",
2989 "type": "event"
2990 },
2991 {
2992 "constant": true,
2993 "inputs": [
2994 {
2995 "internalType": "address",
2996 "name": "owner",
2997 "type": "address"
2998 },
2999 {
3000 "internalType": "address",
3001 "name": "spender",
3002 "type": "address"
3003 }
3004 ],
3005 "name": "allowance",
3006 "outputs": [
3007 {
3008 "internalType": "uint256",
3009 "name": "",
3010 "type": "uint256"
3011 }
3012 ],
3013 "payable": false,
3014 "stateMutability": "view",
3015 "type": "function"
3016 },
3017 {
3018 "constant": false,
3019 "inputs": [
3020 {
3021 "internalType": "address",
3022 "name": "spender",
3023 "type": "address"
3024 },
3025 {
3026 "internalType": "uint256",
3027 "name": "value",
3028 "type": "uint256"
3029 }
3030 ],
3031 "name": "approve",
3032 "outputs": [
3033 {
3034 "internalType": "bool",
3035 "name": "",
3036 "type": "bool"
3037 }
3038 ],
3039 "payable": false,
3040 "stateMutability": "nonpayable",
3041 "type": "function"
3042 },
3043 {
3044 "constant": true,
3045 "inputs": [
3046 {
3047 "internalType": "address",
3048 "name": "owner",
3049 "type": "address"
3050 }
3051 ],
3052 "name": "balanceOf",
3053 "outputs": [
3054 {
3055 "internalType": "uint256",
3056 "name": "",
3057 "type": "uint256"
3058 }
3059 ],
3060 "payable": false,
3061 "stateMutability": "view",
3062 "type": "function"
3063 },
3064 {
3065 "constant": true,
3066 "inputs": [],
3067 "name": "decimals",
3068 "outputs": [
3069 {
3070 "internalType": "uint8",
3071 "name": "",
3072 "type": "uint8"
3073 }
3074 ],
3075 "payable": false,
3076 "stateMutability": "view",
3077 "type": "function"
3078 },
3079 {
3080 "constant": true,
3081 "inputs": [],
3082 "name": "name",
3083 "outputs": [
3084 {
3085 "internalType": "string",
3086 "name": "",
3087 "type": "string"
3088 }
3089 ],
3090 "payable": false,
3091 "stateMutability": "view",
3092 "type": "function"
3093 },
3094 {
3095 "constant": true,
3096 "inputs": [],
3097 "name": "symbol",
3098 "outputs": [
3099 {
3100 "internalType": "string",
3101 "name": "",
3102 "type": "string"
3103 }
3104 ],
3105 "payable": false,
3106 "stateMutability": "view",
3107 "type": "function"
3108 },
3109 {
3110 "constant": true,
3111 "inputs": [],
3112 "name": "totalSupply",
3113 "outputs": [
3114 {
3115 "internalType": "uint256",
3116 "name": "",
3117 "type": "uint256"
3118 }
3119 ],
3120 "payable": false,
3121 "stateMutability": "view",
3122 "type": "function"
3123 },
3124 {
3125 "constant": false,
3126 "inputs": [
3127 {
3128 "internalType": "address",
3129 "name": "to",
3130 "type": "address"
3131 },
3132 {
3133 "internalType": "uint256",
3134 "name": "value",
3135 "type": "uint256"
3136 }
3137 ],
3138 "name": "transfer",
3139 "outputs": [
3140 {
3141 "internalType": "bool",
3142 "name": "",
3143 "type": "bool"
3144 }
3145 ],
3146 "payable": false,
3147 "stateMutability": "nonpayable",
3148 "type": "function"
3149 },
3150 {
3151 "constant": false,
3152 "inputs": [
3153 {
3154 "internalType": "address",
3155 "name": "from",
3156 "type": "address"
3157 },
3158 {
3159 "internalType": "address",
3160 "name": "to",
3161 "type": "address"
3162 },
3163 {
3164 "internalType": "uint256",
3165 "name": "value",
3166 "type": "uint256"
3167 }
3168 ],
3169 "name": "transferFrom",
3170 "outputs": [
3171 {
3172 "internalType": "bool",
3173 "name": "",
3174 "type": "bool"
3175 }
3176 ],
3177 "payable": false,
3178 "stateMutability": "nonpayable",
3179 "type": "function"
3180 }
3181 ],
3182 "evm": {
3183 "bytecode": {
3184 "linkReferences": {},
3185 "object": "",
3186 "opcodes": "",
3187 "sourceMap": ""
3188 },
3189 "deployedBytecode": {
3190 "linkReferences": {},
3191 "object": "",
3192 "opcodes": "",
3193 "sourceMap": ""
3194 }
3195 },
3196 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x61db17aebc5d812c7002d15c1da954065e56abe49d64b14c034abe5604d70eb3\",\"urls\":[\"bzz-raw://b006685e753f9120469f10b09c159f222d4cb8b507a6c1f0c14ed50c883ebe66\",\"dweb:/ipfs/QmSyY7iTugbczPwfGK67etiyPULenYGzzRYbt8aabwwkUb\"]}},\"version\":1}",
3197 "interface": [
3198 {
3199 "anonymous": false,
3200 "inputs": [
3201 {
3202 "indexed": true,
3203 "internalType": "address",
3204 "name": "owner",
3205 "type": "address"
3206 },
3207 {
3208 "indexed": true,
3209 "internalType": "address",
3210 "name": "spender",
3211 "type": "address"
3212 },
3213 {
3214 "indexed": false,
3215 "internalType": "uint256",
3216 "name": "value",
3217 "type": "uint256"
3218 }
3219 ],
3220 "name": "Approval",
3221 "type": "event"
3222 },
3223 {
3224 "anonymous": false,
3225 "inputs": [
3226 {
3227 "indexed": true,
3228 "internalType": "address",
3229 "name": "from",
3230 "type": "address"
3231 },
3232 {
3233 "indexed": true,
3234 "internalType": "address",
3235 "name": "to",
3236 "type": "address"
3237 },
3238 {
3239 "indexed": false,
3240 "internalType": "uint256",
3241 "name": "value",
3242 "type": "uint256"
3243 }
3244 ],
3245 "name": "Transfer",
3246 "type": "event"
3247 },
3248 {
3249 "constant": true,
3250 "inputs": [
3251 {
3252 "internalType": "address",
3253 "name": "owner",
3254 "type": "address"
3255 },
3256 {
3257 "internalType": "address",
3258 "name": "spender",
3259 "type": "address"
3260 }
3261 ],
3262 "name": "allowance",
3263 "outputs": [
3264 {
3265 "internalType": "uint256",
3266 "name": "",
3267 "type": "uint256"
3268 }
3269 ],
3270 "payable": false,
3271 "stateMutability": "view",
3272 "type": "function"
3273 },
3274 {
3275 "constant": false,
3276 "inputs": [
3277 {
3278 "internalType": "address",
3279 "name": "spender",
3280 "type": "address"
3281 },
3282 {
3283 "internalType": "uint256",
3284 "name": "value",
3285 "type": "uint256"
3286 }
3287 ],
3288 "name": "approve",
3289 "outputs": [
3290 {
3291 "internalType": "bool",
3292 "name": "",
3293 "type": "bool"
3294 }
3295 ],
3296 "payable": false,
3297 "stateMutability": "nonpayable",
3298 "type": "function"
3299 },
3300 {
3301 "constant": true,
3302 "inputs": [
3303 {
3304 "internalType": "address",
3305 "name": "owner",
3306 "type": "address"
3307 }
3308 ],
3309 "name": "balanceOf",
3310 "outputs": [
3311 {
3312 "internalType": "uint256",
3313 "name": "",
3314 "type": "uint256"
3315 }
3316 ],
3317 "payable": false,
3318 "stateMutability": "view",
3319 "type": "function"
3320 },
3321 {
3322 "constant": true,
3323 "inputs": [],
3324 "name": "decimals",
3325 "outputs": [
3326 {
3327 "internalType": "uint8",
3328 "name": "",
3329 "type": "uint8"
3330 }
3331 ],
3332 "payable": false,
3333 "stateMutability": "view",
3334 "type": "function"
3335 },
3336 {
3337 "constant": true,
3338 "inputs": [],
3339 "name": "name",
3340 "outputs": [
3341 {
3342 "internalType": "string",
3343 "name": "",
3344 "type": "string"
3345 }
3346 ],
3347 "payable": false,
3348 "stateMutability": "view",
3349 "type": "function"
3350 },
3351 {
3352 "constant": true,
3353 "inputs": [],
3354 "name": "symbol",
3355 "outputs": [
3356 {
3357 "internalType": "string",
3358 "name": "",
3359 "type": "string"
3360 }
3361 ],
3362 "payable": false,
3363 "stateMutability": "view",
3364 "type": "function"
3365 },
3366 {
3367 "constant": true,
3368 "inputs": [],
3369 "name": "totalSupply",
3370 "outputs": [
3371 {
3372 "internalType": "uint256",
3373 "name": "",
3374 "type": "uint256"
3375 }
3376 ],
3377 "payable": false,
3378 "stateMutability": "view",
3379 "type": "function"
3380 },
3381 {
3382 "constant": false,
3383 "inputs": [
3384 {
3385 "internalType": "address",
3386 "name": "to",
3387 "type": "address"
3388 },
3389 {
3390 "internalType": "uint256",
3391 "name": "value",
3392 "type": "uint256"
3393 }
3394 ],
3395 "name": "transfer",
3396 "outputs": [
3397 {
3398 "internalType": "bool",
3399 "name": "",
3400 "type": "bool"
3401 }
3402 ],
3403 "payable": false,
3404 "stateMutability": "nonpayable",
3405 "type": "function"
3406 },
3407 {
3408 "constant": false,
3409 "inputs": [
3410 {
3411 "internalType": "address",
3412 "name": "from",
3413 "type": "address"
3414 },
3415 {
3416 "internalType": "address",
3417 "name": "to",
3418 "type": "address"
3419 },
3420 {
3421 "internalType": "uint256",
3422 "name": "value",
3423 "type": "uint256"
3424 }
3425 ],
3426 "name": "transferFrom",
3427 "outputs": [
3428 {
3429 "internalType": "bool",
3430 "name": "",
3431 "type": "bool"
3432 }
3433 ],
3434 "payable": false,
3435 "stateMutability": "nonpayable",
3436 "type": "function"
3437 }
3438 ],
3439 "bytecode": "",
3440 "bin": "",
3441 "bin-runtime": "",
3442 "srcmap": "",
3443 "srcmap-runtime": ""
3444 },
3445 "contracts/interfaces/IUniswapV2Callee.sol:IUniswapV2Callee": {
3446 "abi": [
3447 {
3448 "constant": false,
3449 "inputs": [
3450 {
3451 "internalType": "address",
3452 "name": "sender",
3453 "type": "address"
3454 },
3455 {
3456 "internalType": "uint256",
3457 "name": "amount0",
3458 "type": "uint256"
3459 },
3460 {
3461 "internalType": "uint256",
3462 "name": "amount1",
3463 "type": "uint256"
3464 },
3465 {
3466 "internalType": "bytes",
3467 "name": "data",
3468 "type": "bytes"
3469 }
3470 ],
3471 "name": "uniswapV2Call",
3472 "outputs": [],
3473 "payable": false,
3474 "stateMutability": "nonpayable",
3475 "type": "function"
3476 }
3477 ],
3478 "evm": {
3479 "bytecode": {
3480 "linkReferences": {},
3481 "object": "",
3482 "opcodes": "",
3483 "sourceMap": ""
3484 },
3485 "deployedBytecode": {
3486 "linkReferences": {},
3487 "object": "",
3488 "opcodes": "",
3489 "sourceMap": ""
3490 }
3491 },
3492 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2Callee.sol\":\"IUniswapV2Callee\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2Callee.sol\":{\"keccak256\":\"0xdb17a1fb73e261e736ae8862be2d9a32964fc4b3741f48980f5cdc9d92b99a96\",\"urls\":[\"bzz-raw://468dab23a95d9d9b7d6ce74008d45eef3de2f137ede604e6be6c5e7d0121c5e9\",\"dweb:/ipfs/QmcXwjTfp6tCRgf1KsNQyUAtrqKhiaN6fbaHVGr22eficP\"]}},\"version\":1}",
3493 "interface": [
3494 {
3495 "constant": false,
3496 "inputs": [
3497 {
3498 "internalType": "address",
3499 "name": "sender",
3500 "type": "address"
3501 },
3502 {
3503 "internalType": "uint256",
3504 "name": "amount0",
3505 "type": "uint256"
3506 },
3507 {
3508 "internalType": "uint256",
3509 "name": "amount1",
3510 "type": "uint256"
3511 },
3512 {
3513 "internalType": "bytes",
3514 "name": "data",
3515 "type": "bytes"
3516 }
3517 ],
3518 "name": "uniswapV2Call",
3519 "outputs": [],
3520 "payable": false,
3521 "stateMutability": "nonpayable",
3522 "type": "function"
3523 }
3524 ],
3525 "bytecode": "",
3526 "bin": "",
3527 "bin-runtime": "",
3528 "srcmap": "",
3529 "srcmap-runtime": ""
3530 },
3531 "contracts/interfaces/IUniswapV2ERC20.sol:IUniswapV2ERC20": {
3532 "abi": [
3533 {
3534 "anonymous": false,
3535 "inputs": [
3536 {
3537 "indexed": true,
3538 "internalType": "address",
3539 "name": "owner",
3540 "type": "address"
3541 },
3542 {
3543 "indexed": true,
3544 "internalType": "address",
3545 "name": "spender",
3546 "type": "address"
3547 },
3548 {
3549 "indexed": false,
3550 "internalType": "uint256",
3551 "name": "value",
3552 "type": "uint256"
3553 }
3554 ],
3555 "name": "Approval",
3556 "type": "event"
3557 },
3558 {
3559 "anonymous": false,
3560 "inputs": [
3561 {
3562 "indexed": true,
3563 "internalType": "address",
3564 "name": "from",
3565 "type": "address"
3566 },
3567 {
3568 "indexed": true,
3569 "internalType": "address",
3570 "name": "to",
3571 "type": "address"
3572 },
3573 {
3574 "indexed": false,
3575 "internalType": "uint256",
3576 "name": "value",
3577 "type": "uint256"
3578 }
3579 ],
3580 "name": "Transfer",
3581 "type": "event"
3582 },
3583 {
3584 "constant": true,
3585 "inputs": [],
3586 "name": "DOMAIN_SEPARATOR",
3587 "outputs": [
3588 {
3589 "internalType": "bytes32",
3590 "name": "",
3591 "type": "bytes32"
3592 }
3593 ],
3594 "payable": false,
3595 "stateMutability": "view",
3596 "type": "function"
3597 },
3598 {
3599 "constant": true,
3600 "inputs": [],
3601 "name": "PERMIT_TYPEHASH",
3602 "outputs": [
3603 {
3604 "internalType": "bytes32",
3605 "name": "",
3606 "type": "bytes32"
3607 }
3608 ],
3609 "payable": false,
3610 "stateMutability": "pure",
3611 "type": "function"
3612 },
3613 {
3614 "constant": true,
3615 "inputs": [
3616 {
3617 "internalType": "address",
3618 "name": "owner",
3619 "type": "address"
3620 },
3621 {
3622 "internalType": "address",
3623 "name": "spender",
3624 "type": "address"
3625 }
3626 ],
3627 "name": "allowance",
3628 "outputs": [
3629 {
3630 "internalType": "uint256",
3631 "name": "",
3632 "type": "uint256"
3633 }
3634 ],
3635 "payable": false,
3636 "stateMutability": "view",
3637 "type": "function"
3638 },
3639 {
3640 "constant": false,
3641 "inputs": [
3642 {
3643 "internalType": "address",
3644 "name": "spender",
3645 "type": "address"
3646 },
3647 {
3648 "internalType": "uint256",
3649 "name": "value",
3650 "type": "uint256"
3651 }
3652 ],
3653 "name": "approve",
3654 "outputs": [
3655 {
3656 "internalType": "bool",
3657 "name": "",
3658 "type": "bool"
3659 }
3660 ],
3661 "payable": false,
3662 "stateMutability": "nonpayable",
3663 "type": "function"
3664 },
3665 {
3666 "constant": true,
3667 "inputs": [
3668 {
3669 "internalType": "address",
3670 "name": "owner",
3671 "type": "address"
3672 }
3673 ],
3674 "name": "balanceOf",
3675 "outputs": [
3676 {
3677 "internalType": "uint256",
3678 "name": "",
3679 "type": "uint256"
3680 }
3681 ],
3682 "payable": false,
3683 "stateMutability": "view",
3684 "type": "function"
3685 },
3686 {
3687 "constant": true,
3688 "inputs": [],
3689 "name": "decimals",
3690 "outputs": [
3691 {
3692 "internalType": "uint8",
3693 "name": "",
3694 "type": "uint8"
3695 }
3696 ],
3697 "payable": false,
3698 "stateMutability": "pure",
3699 "type": "function"
3700 },
3701 {
3702 "constant": true,
3703 "inputs": [],
3704 "name": "name",
3705 "outputs": [
3706 {
3707 "internalType": "string",
3708 "name": "",
3709 "type": "string"
3710 }
3711 ],
3712 "payable": false,
3713 "stateMutability": "pure",
3714 "type": "function"
3715 },
3716 {
3717 "constant": true,
3718 "inputs": [
3719 {
3720 "internalType": "address",
3721 "name": "owner",
3722 "type": "address"
3723 }
3724 ],
3725 "name": "nonces",
3726 "outputs": [
3727 {
3728 "internalType": "uint256",
3729 "name": "",
3730 "type": "uint256"
3731 }
3732 ],
3733 "payable": false,
3734 "stateMutability": "view",
3735 "type": "function"
3736 },
3737 {
3738 "constant": false,
3739 "inputs": [
3740 {
3741 "internalType": "address",
3742 "name": "owner",
3743 "type": "address"
3744 },
3745 {
3746 "internalType": "address",
3747 "name": "spender",
3748 "type": "address"
3749 },
3750 {
3751 "internalType": "uint256",
3752 "name": "value",
3753 "type": "uint256"
3754 },
3755 {
3756 "internalType": "uint256",
3757 "name": "deadline",
3758 "type": "uint256"
3759 },
3760 {
3761 "internalType": "uint8",
3762 "name": "v",
3763 "type": "uint8"
3764 },
3765 {
3766 "internalType": "bytes32",
3767 "name": "r",
3768 "type": "bytes32"
3769 },
3770 {
3771 "internalType": "bytes32",
3772 "name": "s",
3773 "type": "bytes32"
3774 }
3775 ],
3776 "name": "permit",
3777 "outputs": [],
3778 "payable": false,
3779 "stateMutability": "nonpayable",
3780 "type": "function"
3781 },
3782 {
3783 "constant": true,
3784 "inputs": [],
3785 "name": "symbol",
3786 "outputs": [
3787 {
3788 "internalType": "string",
3789 "name": "",
3790 "type": "string"
3791 }
3792 ],
3793 "payable": false,
3794 "stateMutability": "pure",
3795 "type": "function"
3796 },
3797 {
3798 "constant": true,
3799 "inputs": [],
3800 "name": "totalSupply",
3801 "outputs": [
3802 {
3803 "internalType": "uint256",
3804 "name": "",
3805 "type": "uint256"
3806 }
3807 ],
3808 "payable": false,
3809 "stateMutability": "view",
3810 "type": "function"
3811 },
3812 {
3813 "constant": false,
3814 "inputs": [
3815 {
3816 "internalType": "address",
3817 "name": "to",
3818 "type": "address"
3819 },
3820 {
3821 "internalType": "uint256",
3822 "name": "value",
3823 "type": "uint256"
3824 }
3825 ],
3826 "name": "transfer",
3827 "outputs": [
3828 {
3829 "internalType": "bool",
3830 "name": "",
3831 "type": "bool"
3832 }
3833 ],
3834 "payable": false,
3835 "stateMutability": "nonpayable",
3836 "type": "function"
3837 },
3838 {
3839 "constant": false,
3840 "inputs": [
3841 {
3842 "internalType": "address",
3843 "name": "from",
3844 "type": "address"
3845 },
3846 {
3847 "internalType": "address",
3848 "name": "to",
3849 "type": "address"
3850 },
3851 {
3852 "internalType": "uint256",
3853 "name": "value",
3854 "type": "uint256"
3855 }
3856 ],
3857 "name": "transferFrom",
3858 "outputs": [
3859 {
3860 "internalType": "bool",
3861 "name": "",
3862 "type": "bool"
3863 }
3864 ],
3865 "payable": false,
3866 "stateMutability": "nonpayable",
3867 "type": "function"
3868 }
3869 ],
3870 "evm": {
3871 "bytecode": {
3872 "linkReferences": {},
3873 "object": "",
3874 "opcodes": "",
3875 "sourceMap": ""
3876 },
3877 "deployedBytecode": {
3878 "linkReferences": {},
3879 "object": "",
3880 "opcodes": "",
3881 "sourceMap": ""
3882 }
3883 },
3884 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2ERC20.sol\":\"IUniswapV2ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2ERC20.sol\":{\"keccak256\":\"0x9e433765e9ef7b4ff5e406b260b222c47c2aa27d36df756db708064fcb239ae7\",\"urls\":[\"bzz-raw://5b67c24a5e1652b51ad2f37adad2905519f0e05e7c8b2b4d8b3e00b429bb9213\",\"dweb:/ipfs/QmarJq43GabAGGSqtMUb87ACYQt73mSFbXKyFAPDXpbFNM\"]}},\"version\":1}",
3885 "interface": [
3886 {
3887 "anonymous": false,
3888 "inputs": [
3889 {
3890 "indexed": true,
3891 "internalType": "address",
3892 "name": "owner",
3893 "type": "address"
3894 },
3895 {
3896 "indexed": true,
3897 "internalType": "address",
3898 "name": "spender",
3899 "type": "address"
3900 },
3901 {
3902 "indexed": false,
3903 "internalType": "uint256",
3904 "name": "value",
3905 "type": "uint256"
3906 }
3907 ],
3908 "name": "Approval",
3909 "type": "event"
3910 },
3911 {
3912 "anonymous": false,
3913 "inputs": [
3914 {
3915 "indexed": true,
3916 "internalType": "address",
3917 "name": "from",
3918 "type": "address"
3919 },
3920 {
3921 "indexed": true,
3922 "internalType": "address",
3923 "name": "to",
3924 "type": "address"
3925 },
3926 {
3927 "indexed": false,
3928 "internalType": "uint256",
3929 "name": "value",
3930 "type": "uint256"
3931 }
3932 ],
3933 "name": "Transfer",
3934 "type": "event"
3935 },
3936 {
3937 "constant": true,
3938 "inputs": [],
3939 "name": "DOMAIN_SEPARATOR",
3940 "outputs": [
3941 {
3942 "internalType": "bytes32",
3943 "name": "",
3944 "type": "bytes32"
3945 }
3946 ],
3947 "payable": false,
3948 "stateMutability": "view",
3949 "type": "function"
3950 },
3951 {
3952 "constant": true,
3953 "inputs": [],
3954 "name": "PERMIT_TYPEHASH",
3955 "outputs": [
3956 {
3957 "internalType": "bytes32",
3958 "name": "",
3959 "type": "bytes32"
3960 }
3961 ],
3962 "payable": false,
3963 "stateMutability": "pure",
3964 "type": "function"
3965 },
3966 {
3967 "constant": true,
3968 "inputs": [
3969 {
3970 "internalType": "address",
3971 "name": "owner",
3972 "type": "address"
3973 },
3974 {
3975 "internalType": "address",
3976 "name": "spender",
3977 "type": "address"
3978 }
3979 ],
3980 "name": "allowance",
3981 "outputs": [
3982 {
3983 "internalType": "uint256",
3984 "name": "",
3985 "type": "uint256"
3986 }
3987 ],
3988 "payable": false,
3989 "stateMutability": "view",
3990 "type": "function"
3991 },
3992 {
3993 "constant": false,
3994 "inputs": [
3995 {
3996 "internalType": "address",
3997 "name": "spender",
3998 "type": "address"
3999 },
4000 {
4001 "internalType": "uint256",
4002 "name": "value",
4003 "type": "uint256"
4004 }
4005 ],
4006 "name": "approve",
4007 "outputs": [
4008 {
4009 "internalType": "bool",
4010 "name": "",
4011 "type": "bool"
4012 }
4013 ],
4014 "payable": false,
4015 "stateMutability": "nonpayable",
4016 "type": "function"
4017 },
4018 {
4019 "constant": true,
4020 "inputs": [
4021 {
4022 "internalType": "address",
4023 "name": "owner",
4024 "type": "address"
4025 }
4026 ],
4027 "name": "balanceOf",
4028 "outputs": [
4029 {
4030 "internalType": "uint256",
4031 "name": "",
4032 "type": "uint256"
4033 }
4034 ],
4035 "payable": false,
4036 "stateMutability": "view",
4037 "type": "function"
4038 },
4039 {
4040 "constant": true,
4041 "inputs": [],
4042 "name": "decimals",
4043 "outputs": [
4044 {
4045 "internalType": "uint8",
4046 "name": "",
4047 "type": "uint8"
4048 }
4049 ],
4050 "payable": false,
4051 "stateMutability": "pure",
4052 "type": "function"
4053 },
4054 {
4055 "constant": true,
4056 "inputs": [],
4057 "name": "name",
4058 "outputs": [
4059 {
4060 "internalType": "string",
4061 "name": "",
4062 "type": "string"
4063 }
4064 ],
4065 "payable": false,
4066 "stateMutability": "pure",
4067 "type": "function"
4068 },
4069 {
4070 "constant": true,
4071 "inputs": [
4072 {
4073 "internalType": "address",
4074 "name": "owner",
4075 "type": "address"
4076 }
4077 ],
4078 "name": "nonces",
4079 "outputs": [
4080 {
4081 "internalType": "uint256",
4082 "name": "",
4083 "type": "uint256"
4084 }
4085 ],
4086 "payable": false,
4087 "stateMutability": "view",
4088 "type": "function"
4089 },
4090 {
4091 "constant": false,
4092 "inputs": [
4093 {
4094 "internalType": "address",
4095 "name": "owner",
4096 "type": "address"
4097 },
4098 {
4099 "internalType": "address",
4100 "name": "spender",
4101 "type": "address"
4102 },
4103 {
4104 "internalType": "uint256",
4105 "name": "value",
4106 "type": "uint256"
4107 },
4108 {
4109 "internalType": "uint256",
4110 "name": "deadline",
4111 "type": "uint256"
4112 },
4113 {
4114 "internalType": "uint8",
4115 "name": "v",
4116 "type": "uint8"
4117 },
4118 {
4119 "internalType": "bytes32",
4120 "name": "r",
4121 "type": "bytes32"
4122 },
4123 {
4124 "internalType": "bytes32",
4125 "name": "s",
4126 "type": "bytes32"
4127 }
4128 ],
4129 "name": "permit",
4130 "outputs": [],
4131 "payable": false,
4132 "stateMutability": "nonpayable",
4133 "type": "function"
4134 },
4135 {
4136 "constant": true,
4137 "inputs": [],
4138 "name": "symbol",
4139 "outputs": [
4140 {
4141 "internalType": "string",
4142 "name": "",
4143 "type": "string"
4144 }
4145 ],
4146 "payable": false,
4147 "stateMutability": "pure",
4148 "type": "function"
4149 },
4150 {
4151 "constant": true,
4152 "inputs": [],
4153 "name": "totalSupply",
4154 "outputs": [
4155 {
4156 "internalType": "uint256",
4157 "name": "",
4158 "type": "uint256"
4159 }
4160 ],
4161 "payable": false,
4162 "stateMutability": "view",
4163 "type": "function"
4164 },
4165 {
4166 "constant": false,
4167 "inputs": [
4168 {
4169 "internalType": "address",
4170 "name": "to",
4171 "type": "address"
4172 },
4173 {
4174 "internalType": "uint256",
4175 "name": "value",
4176 "type": "uint256"
4177 }
4178 ],
4179 "name": "transfer",
4180 "outputs": [
4181 {
4182 "internalType": "bool",
4183 "name": "",
4184 "type": "bool"
4185 }
4186 ],
4187 "payable": false,
4188 "stateMutability": "nonpayable",
4189 "type": "function"
4190 },
4191 {
4192 "constant": false,
4193 "inputs": [
4194 {
4195 "internalType": "address",
4196 "name": "from",
4197 "type": "address"
4198 },
4199 {
4200 "internalType": "address",
4201 "name": "to",
4202 "type": "address"
4203 },
4204 {
4205 "internalType": "uint256",
4206 "name": "value",
4207 "type": "uint256"
4208 }
4209 ],
4210 "name": "transferFrom",
4211 "outputs": [
4212 {
4213 "internalType": "bool",
4214 "name": "",
4215 "type": "bool"
4216 }
4217 ],
4218 "payable": false,
4219 "stateMutability": "nonpayable",
4220 "type": "function"
4221 }
4222 ],
4223 "bytecode": "",
4224 "bin": "",
4225 "bin-runtime": "",
4226 "srcmap": "",
4227 "srcmap-runtime": ""
4228 },
4229 "contracts/interfaces/IUniswapV2Factory.sol:IUniswapV2Factory": {
4230 "abi": [
4231 {
4232 "anonymous": false,
4233 "inputs": [
4234 {
4235 "indexed": true,
4236 "internalType": "address",
4237 "name": "token0",
4238 "type": "address"
4239 },
4240 {
4241 "indexed": true,
4242 "internalType": "address",
4243 "name": "token1",
4244 "type": "address"
4245 },
4246 {
4247 "indexed": false,
4248 "internalType": "address",
4249 "name": "pair",
4250 "type": "address"
4251 },
4252 {
4253 "indexed": false,
4254 "internalType": "uint256",
4255 "name": "",
4256 "type": "uint256"
4257 }
4258 ],
4259 "name": "PairCreated",
4260 "type": "event"
4261 },
4262 {
4263 "constant": true,
4264 "inputs": [
4265 {
4266 "internalType": "uint256",
4267 "name": "",
4268 "type": "uint256"
4269 }
4270 ],
4271 "name": "allPairs",
4272 "outputs": [
4273 {
4274 "internalType": "address",
4275 "name": "pair",
4276 "type": "address"
4277 }
4278 ],
4279 "payable": false,
4280 "stateMutability": "view",
4281 "type": "function"
4282 },
4283 {
4284 "constant": true,
4285 "inputs": [],
4286 "name": "allPairsLength",
4287 "outputs": [
4288 {
4289 "internalType": "uint256",
4290 "name": "",
4291 "type": "uint256"
4292 }
4293 ],
4294 "payable": false,
4295 "stateMutability": "view",
4296 "type": "function"
4297 },
4298 {
4299 "constant": false,
4300 "inputs": [
4301 {
4302 "internalType": "address",
4303 "name": "tokenA",
4304 "type": "address"
4305 },
4306 {
4307 "internalType": "address",
4308 "name": "tokenB",
4309 "type": "address"
4310 },
4311 {
4312 "internalType": "address",
4313 "name": "baseToken",
4314 "type": "address"
4315 },
4316 {
4317 "internalType": "address",
4318 "name": "poolOwner",
4319 "type": "address"
4320 },
4321 {
4322 "internalType": "uint256",
4323 "name": "m",
4324 "type": "uint256"
4325 },
4326 {
4327 "internalType": "uint256",
4328 "name": "n",
4329 "type": "uint256"
4330 },
4331 {
4332 "internalType": "uint256",
4333 "name": "fee",
4334 "type": "uint256"
4335 }
4336 ],
4337 "name": "createPair",
4338 "outputs": [
4339 {
4340 "internalType": "address",
4341 "name": "pair",
4342 "type": "address"
4343 }
4344 ],
4345 "payable": false,
4346 "stateMutability": "nonpayable",
4347 "type": "function"
4348 },
4349 {
4350 "constant": true,
4351 "inputs": [],
4352 "name": "feeTo",
4353 "outputs": [
4354 {
4355 "internalType": "address",
4356 "name": "",
4357 "type": "address"
4358 }
4359 ],
4360 "payable": false,
4361 "stateMutability": "view",
4362 "type": "function"
4363 },
4364 {
4365 "constant": true,
4366 "inputs": [],
4367 "name": "feeToSetter",
4368 "outputs": [
4369 {
4370 "internalType": "address",
4371 "name": "",
4372 "type": "address"
4373 }
4374 ],
4375 "payable": false,
4376 "stateMutability": "view",
4377 "type": "function"
4378 },
4379 {
4380 "constant": true,
4381 "inputs": [
4382 {
4383 "internalType": "address",
4384 "name": "tokenA",
4385 "type": "address"
4386 },
4387 {
4388 "internalType": "address",
4389 "name": "tokenB",
4390 "type": "address"
4391 }
4392 ],
4393 "name": "getPair",
4394 "outputs": [
4395 {
4396 "internalType": "address",
4397 "name": "pair",
4398 "type": "address"
4399 }
4400 ],
4401 "payable": false,
4402 "stateMutability": "view",
4403 "type": "function"
4404 },
4405 {
4406 "constant": false,
4407 "inputs": [
4408 {
4409 "internalType": "address",
4410 "name": "",
4411 "type": "address"
4412 }
4413 ],
4414 "name": "setFeeTo",
4415 "outputs": [],
4416 "payable": false,
4417 "stateMutability": "nonpayable",
4418 "type": "function"
4419 },
4420 {
4421 "constant": false,
4422 "inputs": [
4423 {
4424 "internalType": "address",
4425 "name": "",
4426 "type": "address"
4427 }
4428 ],
4429 "name": "setFeeToSetter",
4430 "outputs": [],
4431 "payable": false,
4432 "stateMutability": "nonpayable",
4433 "type": "function"
4434 }
4435 ],
4436 "evm": {
4437 "bytecode": {
4438 "linkReferences": {},
4439 "object": "",
4440 "opcodes": "",
4441 "sourceMap": ""
4442 },
4443 "deployedBytecode": {
4444 "linkReferences": {},
4445 "object": "",
4446 "opcodes": "",
4447 "sourceMap": ""
4448 }
4449 },
4450 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"PairCreated\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"allPairsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"poolOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"m\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"n\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"createPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeTo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeToSetter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getPair\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeTo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setFeeToSetter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2Factory.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2Factory.sol\":{\"keccak256\":\"0xe8802e837a33aa4c7c5c97a9051b8ac7480e5735910ff7a624839b0b7c607320\",\"urls\":[\"bzz-raw://575e1a1d3a7e55879a22b4ca5b0be62ed05cf2e7a4b90ab4901d0c8436b0a329\",\"dweb:/ipfs/QmRnCbMdhjfsz2BocoTwwZeZEKJthA6N54pZhaHqYiRwmS\"]}},\"version\":1}",
4451 "interface": [
4452 {
4453 "anonymous": false,
4454 "inputs": [
4455 {
4456 "indexed": true,
4457 "internalType": "address",
4458 "name": "token0",
4459 "type": "address"
4460 },
4461 {
4462 "indexed": true,
4463 "internalType": "address",
4464 "name": "token1",
4465 "type": "address"
4466 },
4467 {
4468 "indexed": false,
4469 "internalType": "address",
4470 "name": "pair",
4471 "type": "address"
4472 },
4473 {
4474 "indexed": false,
4475 "internalType": "uint256",
4476 "name": "",
4477 "type": "uint256"
4478 }
4479 ],
4480 "name": "PairCreated",
4481 "type": "event"
4482 },
4483 {
4484 "constant": true,
4485 "inputs": [
4486 {
4487 "internalType": "uint256",
4488 "name": "",
4489 "type": "uint256"
4490 }
4491 ],
4492 "name": "allPairs",
4493 "outputs": [
4494 {
4495 "internalType": "address",
4496 "name": "pair",
4497 "type": "address"
4498 }
4499 ],
4500 "payable": false,
4501 "stateMutability": "view",
4502 "type": "function"
4503 },
4504 {
4505 "constant": true,
4506 "inputs": [],
4507 "name": "allPairsLength",
4508 "outputs": [
4509 {
4510 "internalType": "uint256",
4511 "name": "",
4512 "type": "uint256"
4513 }
4514 ],
4515 "payable": false,
4516 "stateMutability": "view",
4517 "type": "function"
4518 },
4519 {
4520 "constant": false,
4521 "inputs": [
4522 {
4523 "internalType": "address",
4524 "name": "tokenA",
4525 "type": "address"
4526 },
4527 {
4528 "internalType": "address",
4529 "name": "tokenB",
4530 "type": "address"
4531 },
4532 {
4533 "internalType": "address",
4534 "name": "baseToken",
4535 "type": "address"
4536 },
4537 {
4538 "internalType": "address",
4539 "name": "poolOwner",
4540 "type": "address"
4541 },
4542 {
4543 "internalType": "uint256",
4544 "name": "m",
4545 "type": "uint256"
4546 },
4547 {
4548 "internalType": "uint256",
4549 "name": "n",
4550 "type": "uint256"
4551 },
4552 {
4553 "internalType": "uint256",
4554 "name": "fee",
4555 "type": "uint256"
4556 }
4557 ],
4558 "name": "createPair",
4559 "outputs": [
4560 {
4561 "internalType": "address",
4562 "name": "pair",
4563 "type": "address"
4564 }
4565 ],
4566 "payable": false,
4567 "stateMutability": "nonpayable",
4568 "type": "function"
4569 },
4570 {
4571 "constant": true,
4572 "inputs": [],
4573 "name": "feeTo",
4574 "outputs": [
4575 {
4576 "internalType": "address",
4577 "name": "",
4578 "type": "address"
4579 }
4580 ],
4581 "payable": false,
4582 "stateMutability": "view",
4583 "type": "function"
4584 },
4585 {
4586 "constant": true,
4587 "inputs": [],
4588 "name": "feeToSetter",
4589 "outputs": [
4590 {
4591 "internalType": "address",
4592 "name": "",
4593 "type": "address"
4594 }
4595 ],
4596 "payable": false,
4597 "stateMutability": "view",
4598 "type": "function"
4599 },
4600 {
4601 "constant": true,
4602 "inputs": [
4603 {
4604 "internalType": "address",
4605 "name": "tokenA",
4606 "type": "address"
4607 },
4608 {
4609 "internalType": "address",
4610 "name": "tokenB",
4611 "type": "address"
4612 }
4613 ],
4614 "name": "getPair",
4615 "outputs": [
4616 {
4617 "internalType": "address",
4618 "name": "pair",
4619 "type": "address"
4620 }
4621 ],
4622 "payable": false,
4623 "stateMutability": "view",
4624 "type": "function"
4625 },
4626 {
4627 "constant": false,
4628 "inputs": [
4629 {
4630 "internalType": "address",
4631 "name": "",
4632 "type": "address"
4633 }
4634 ],
4635 "name": "setFeeTo",
4636 "outputs": [],
4637 "payable": false,
4638 "stateMutability": "nonpayable",
4639 "type": "function"
4640 },
4641 {
4642 "constant": false,
4643 "inputs": [
4644 {
4645 "internalType": "address",
4646 "name": "",
4647 "type": "address"
4648 }
4649 ],
4650 "name": "setFeeToSetter",
4651 "outputs": [],
4652 "payable": false,
4653 "stateMutability": "nonpayable",
4654 "type": "function"
4655 }
4656 ],
4657 "bytecode": "",
4658 "bin": "",
4659 "bin-runtime": "",
4660 "srcmap": "",
4661 "srcmap-runtime": ""
4662 },
4663 "contracts/interfaces/IUniswapV2Pair.sol:IUniswapV2Pair": {
4664 "abi": [
4665 {
4666 "anonymous": false,
4667 "inputs": [
4668 {
4669 "indexed": true,
4670 "internalType": "address",
4671 "name": "owner",
4672 "type": "address"
4673 },
4674 {
4675 "indexed": true,
4676 "internalType": "address",
4677 "name": "spender",
4678 "type": "address"
4679 },
4680 {
4681 "indexed": false,
4682 "internalType": "uint256",
4683 "name": "value",
4684 "type": "uint256"
4685 }
4686 ],
4687 "name": "Approval",
4688 "type": "event"
4689 },
4690 {
4691 "anonymous": false,
4692 "inputs": [
4693 {
4694 "indexed": true,
4695 "internalType": "address",
4696 "name": "sender",
4697 "type": "address"
4698 },
4699 {
4700 "indexed": false,
4701 "internalType": "uint256",
4702 "name": "amount0",
4703 "type": "uint256"
4704 },
4705 {
4706 "indexed": false,
4707 "internalType": "uint256",
4708 "name": "amount1",
4709 "type": "uint256"
4710 },
4711 {
4712 "indexed": true,
4713 "internalType": "address",
4714 "name": "to",
4715 "type": "address"
4716 }
4717 ],
4718 "name": "Burn",
4719 "type": "event"
4720 },
4721 {
4722 "anonymous": false,
4723 "inputs": [
4724 {
4725 "indexed": true,
4726 "internalType": "address",
4727 "name": "sender",
4728 "type": "address"
4729 },
4730 {
4731 "indexed": false,
4732 "internalType": "uint256",
4733 "name": "amount0",
4734 "type": "uint256"
4735 },
4736 {
4737 "indexed": false,
4738 "internalType": "uint256",
4739 "name": "amount1",
4740 "type": "uint256"
4741 }
4742 ],
4743 "name": "Mint",
4744 "type": "event"
4745 },
4746 {
4747 "anonymous": false,
4748 "inputs": [
4749 {
4750 "indexed": true,
4751 "internalType": "address",
4752 "name": "sender",
4753 "type": "address"
4754 },
4755 {
4756 "indexed": false,
4757 "internalType": "uint256",
4758 "name": "amount0In",
4759 "type": "uint256"
4760 },
4761 {
4762 "indexed": false,
4763 "internalType": "uint256",
4764 "name": "amount1In",
4765 "type": "uint256"
4766 },
4767 {
4768 "indexed": false,
4769 "internalType": "uint256",
4770 "name": "amount0Out",
4771 "type": "uint256"
4772 },
4773 {
4774 "indexed": false,
4775 "internalType": "uint256",
4776 "name": "amount1Out",
4777 "type": "uint256"
4778 },
4779 {
4780 "indexed": true,
4781 "internalType": "address",
4782 "name": "to",
4783 "type": "address"
4784 }
4785 ],
4786 "name": "Swap",
4787 "type": "event"
4788 },
4789 {
4790 "anonymous": false,
4791 "inputs": [
4792 {
4793 "indexed": false,
4794 "internalType": "uint112",
4795 "name": "reserve0",
4796 "type": "uint112"
4797 },
4798 {
4799 "indexed": false,
4800 "internalType": "uint112",
4801 "name": "reserve1",
4802 "type": "uint112"
4803 }
4804 ],
4805 "name": "Sync",
4806 "type": "event"
4807 },
4808 {
4809 "anonymous": false,
4810 "inputs": [
4811 {
4812 "indexed": true,
4813 "internalType": "address",
4814 "name": "from",
4815 "type": "address"
4816 },
4817 {
4818 "indexed": true,
4819 "internalType": "address",
4820 "name": "to",
4821 "type": "address"
4822 },
4823 {
4824 "indexed": false,
4825 "internalType": "uint256",
4826 "name": "value",
4827 "type": "uint256"
4828 }
4829 ],
4830 "name": "Transfer",
4831 "type": "event"
4832 },
4833 {
4834 "constant": true,
4835 "inputs": [],
4836 "name": "DOMAIN_SEPARATOR",
4837 "outputs": [
4838 {
4839 "internalType": "bytes32",
4840 "name": "",
4841 "type": "bytes32"
4842 }
4843 ],
4844 "payable": false,
4845 "stateMutability": "view",
4846 "type": "function"
4847 },
4848 {
4849 "constant": true,
4850 "inputs": [],
4851 "name": "MINIMUM_LIQUIDITY",
4852 "outputs": [
4853 {
4854 "internalType": "uint256",
4855 "name": "",
4856 "type": "uint256"
4857 }
4858 ],
4859 "payable": false,
4860 "stateMutability": "pure",
4861 "type": "function"
4862 },
4863 {
4864 "constant": true,
4865 "inputs": [],
4866 "name": "PERMIT_TYPEHASH",
4867 "outputs": [
4868 {
4869 "internalType": "bytes32",
4870 "name": "",
4871 "type": "bytes32"
4872 }
4873 ],
4874 "payable": false,
4875 "stateMutability": "pure",
4876 "type": "function"
4877 },
4878 {
4879 "constant": true,
4880 "inputs": [
4881 {
4882 "internalType": "address",
4883 "name": "owner",
4884 "type": "address"
4885 },
4886 {
4887 "internalType": "address",
4888 "name": "spender",
4889 "type": "address"
4890 }
4891 ],
4892 "name": "allowance",
4893 "outputs": [
4894 {
4895 "internalType": "uint256",
4896 "name": "",
4897 "type": "uint256"
4898 }
4899 ],
4900 "payable": false,
4901 "stateMutability": "view",
4902 "type": "function"
4903 },
4904 {
4905 "constant": false,
4906 "inputs": [
4907 {
4908 "internalType": "address",
4909 "name": "spender",
4910 "type": "address"
4911 },
4912 {
4913 "internalType": "uint256",
4914 "name": "value",
4915 "type": "uint256"
4916 }
4917 ],
4918 "name": "approve",
4919 "outputs": [
4920 {
4921 "internalType": "bool",
4922 "name": "",
4923 "type": "bool"
4924 }
4925 ],
4926 "payable": false,
4927 "stateMutability": "nonpayable",
4928 "type": "function"
4929 },
4930 {
4931 "constant": true,
4932 "inputs": [
4933 {
4934 "internalType": "address",
4935 "name": "owner",
4936 "type": "address"
4937 }
4938 ],
4939 "name": "balanceOf",
4940 "outputs": [
4941 {
4942 "internalType": "uint256",
4943 "name": "",
4944 "type": "uint256"
4945 }
4946 ],
4947 "payable": false,
4948 "stateMutability": "view",
4949 "type": "function"
4950 },
4951 {
4952 "constant": false,
4953 "inputs": [
4954 {
4955 "internalType": "address",
4956 "name": "to",
4957 "type": "address"
4958 }
4959 ],
4960 "name": "burn",
4961 "outputs": [
4962 {
4963 "internalType": "uint256",
4964 "name": "amount0",
4965 "type": "uint256"
4966 },
4967 {
4968 "internalType": "uint256",
4969 "name": "amount1",
4970 "type": "uint256"
4971 }
4972 ],
4973 "payable": false,
4974 "stateMutability": "nonpayable",
4975 "type": "function"
4976 },
4977 {
4978 "constant": true,
4979 "inputs": [],
4980 "name": "decimals",
4981 "outputs": [
4982 {
4983 "internalType": "uint8",
4984 "name": "",
4985 "type": "uint8"
4986 }
4987 ],
4988 "payable": false,
4989 "stateMutability": "pure",
4990 "type": "function"
4991 },
4992 {
4993 "constant": true,
4994 "inputs": [],
4995 "name": "factory",
4996 "outputs": [
4997 {
4998 "internalType": "address",
4999 "name": "",
5000 "type": "address"
5001 }
5002 ],
5003 "payable": false,
5004 "stateMutability": "view",
5005 "type": "function"
5006 },
5007 {
5008 "constant": true,
5009 "inputs": [],
5010 "name": "getCurveParams",
5011 "outputs": [
5012 {
5013 "internalType": "address",
5014 "name": "baseToken",
5015 "type": "address"
5016 },
5017 {
5018 "internalType": "uint256",
5019 "name": "m",
5020 "type": "uint256"
5021 },
5022 {
5023 "internalType": "uint256",
5024 "name": "n",
5025 "type": "uint256"
5026 },
5027 {
5028 "internalType": "uint256",
5029 "name": "fee",
5030 "type": "uint256"
5031 }
5032 ],
5033 "payable": false,
5034 "stateMutability": "view",
5035 "type": "function"
5036 },
5037 {
5038 "constant": true,
5039 "inputs": [],
5040 "name": "getReserves",
5041 "outputs": [
5042 {
5043 "internalType": "uint112",
5044 "name": "reserve0",
5045 "type": "uint112"
5046 },
5047 {
5048 "internalType": "uint112",
5049 "name": "reserve1",
5050 "type": "uint112"
5051 },
5052 {
5053 "internalType": "uint32",
5054 "name": "blockTimestampLast",
5055 "type": "uint32"
5056 }
5057 ],
5058 "payable": false,
5059 "stateMutability": "view",
5060 "type": "function"
5061 },
5062 {
5063 "constant": false,
5064 "inputs": [
5065 {
5066 "internalType": "address",
5067 "name": "",
5068 "type": "address"
5069 },
5070 {
5071 "internalType": "address",
5072 "name": "",
5073 "type": "address"
5074 },
5075 {
5076 "internalType": "address",
5077 "name": "",
5078 "type": "address"
5079 },
5080 {
5081 "internalType": "address",
5082 "name": "",
5083 "type": "address"
5084 },
5085 {
5086 "internalType": "uint256",
5087 "name": "",
5088 "type": "uint256"
5089 },
5090 {
5091 "internalType": "uint256",
5092 "name": "",
5093 "type": "uint256"
5094 },
5095 {
5096 "internalType": "uint256",
5097 "name": "",
5098 "type": "uint256"
5099 }
5100 ],
5101 "name": "initialize",
5102 "outputs": [],
5103 "payable": false,
5104 "stateMutability": "nonpayable",
5105 "type": "function"
5106 },
5107 {
5108 "constant": true,
5109 "inputs": [],
5110 "name": "kLast",
5111 "outputs": [
5112 {
5113 "internalType": "uint256",
5114 "name": "",
5115 "type": "uint256"
5116 }
5117 ],
5118 "payable": false,
5119 "stateMutability": "view",
5120 "type": "function"
5121 },
5122 {
5123 "constant": false,
5124 "inputs": [
5125 {
5126 "internalType": "address",
5127 "name": "to",
5128 "type": "address"
5129 }
5130 ],
5131 "name": "mint",
5132 "outputs": [
5133 {
5134 "internalType": "uint256",
5135 "name": "liquidity",
5136 "type": "uint256"
5137 }
5138 ],
5139 "payable": false,
5140 "stateMutability": "nonpayable",
5141 "type": "function"
5142 },
5143 {
5144 "constant": true,
5145 "inputs": [],
5146 "name": "name",
5147 "outputs": [
5148 {
5149 "internalType": "string",
5150 "name": "",
5151 "type": "string"
5152 }
5153 ],
5154 "payable": false,
5155 "stateMutability": "pure",
5156 "type": "function"
5157 },
5158 {
5159 "constant": true,
5160 "inputs": [
5161 {
5162 "internalType": "address",
5163 "name": "owner",
5164 "type": "address"
5165 }
5166 ],
5167 "name": "nonces",
5168 "outputs": [
5169 {
5170 "internalType": "uint256",
5171 "name": "",
5172 "type": "uint256"
5173 }
5174 ],
5175 "payable": false,
5176 "stateMutability": "view",
5177 "type": "function"
5178 },
5179 {
5180 "constant": false,
5181 "inputs": [
5182 {
5183 "internalType": "address",
5184 "name": "owner",
5185 "type": "address"
5186 },
5187 {
5188 "internalType": "address",
5189 "name": "spender",
5190 "type": "address"
5191 },
5192 {
5193 "internalType": "uint256",
5194 "name": "value",
5195 "type": "uint256"
5196 },
5197 {
5198 "internalType": "uint256",
5199 "name": "deadline",
5200 "type": "uint256"
5201 },
5202 {
5203 "internalType": "uint8",
5204 "name": "v",
5205 "type": "uint8"
5206 },
5207 {
5208 "internalType": "bytes32",
5209 "name": "r",
5210 "type": "bytes32"
5211 },
5212 {
5213 "internalType": "bytes32",
5214 "name": "s",
5215 "type": "bytes32"
5216 }
5217 ],
5218 "name": "permit",
5219 "outputs": [],
5220 "payable": false,
5221 "stateMutability": "nonpayable",
5222 "type": "function"
5223 },
5224 {
5225 "constant": true,
5226 "inputs": [],
5227 "name": "price0CumulativeLast",
5228 "outputs": [
5229 {
5230 "internalType": "uint256",
5231 "name": "",
5232 "type": "uint256"
5233 }
5234 ],
5235 "payable": false,
5236 "stateMutability": "view",
5237 "type": "function"
5238 },
5239 {
5240 "constant": true,
5241 "inputs": [],
5242 "name": "price1CumulativeLast",
5243 "outputs": [
5244 {
5245 "internalType": "uint256",
5246 "name": "",
5247 "type": "uint256"
5248 }
5249 ],
5250 "payable": false,
5251 "stateMutability": "view",
5252 "type": "function"
5253 },
5254 {
5255 "constant": false,
5256 "inputs": [
5257 {
5258 "internalType": "address",
5259 "name": "",
5260 "type": "address"
5261 }
5262 ],
5263 "name": "setPairOwner",
5264 "outputs": [],
5265 "payable": false,
5266 "stateMutability": "nonpayable",
5267 "type": "function"
5268 },
5269 {
5270 "constant": false,
5271 "inputs": [
5272 {
5273 "internalType": "address",
5274 "name": "to",
5275 "type": "address"
5276 }
5277 ],
5278 "name": "skim",
5279 "outputs": [],
5280 "payable": false,
5281 "stateMutability": "nonpayable",
5282 "type": "function"
5283 },
5284 {
5285 "constant": false,
5286 "inputs": [
5287 {
5288 "internalType": "uint256",
5289 "name": "amount0Out",
5290 "type": "uint256"
5291 },
5292 {
5293 "internalType": "uint256",
5294 "name": "amount1Out",
5295 "type": "uint256"
5296 },
5297 {
5298 "internalType": "address",
5299 "name": "to",
5300 "type": "address"
5301 },
5302 {
5303 "internalType": "bytes",
5304 "name": "data",
5305 "type": "bytes"
5306 }
5307 ],
5308 "name": "swap",
5309 "outputs": [],
5310 "payable": false,
5311 "stateMutability": "nonpayable",
5312 "type": "function"
5313 },
5314 {
5315 "constant": true,
5316 "inputs": [],
5317 "name": "symbol",
5318 "outputs": [
5319 {
5320 "internalType": "string",
5321 "name": "",
5322 "type": "string"
5323 }
5324 ],
5325 "payable": false,
5326 "stateMutability": "pure",
5327 "type": "function"
5328 },
5329 {
5330 "constant": false,
5331 "inputs": [],
5332 "name": "sync",
5333 "outputs": [],
5334 "payable": false,
5335 "stateMutability": "nonpayable",
5336 "type": "function"
5337 },
5338 {
5339 "constant": true,
5340 "inputs": [],
5341 "name": "token0",
5342 "outputs": [
5343 {
5344 "internalType": "address",
5345 "name": "",
5346 "type": "address"
5347 }
5348 ],
5349 "payable": false,
5350 "stateMutability": "view",
5351 "type": "function"
5352 },
5353 {
5354 "constant": true,
5355 "inputs": [],
5356 "name": "token1",
5357 "outputs": [
5358 {
5359 "internalType": "address",
5360 "name": "",
5361 "type": "address"
5362 }
5363 ],
5364 "payable": false,
5365 "stateMutability": "view",
5366 "type": "function"
5367 },
5368 {
5369 "constant": true,
5370 "inputs": [],
5371 "name": "totalSupply",
5372 "outputs": [
5373 {
5374 "internalType": "uint256",
5375 "name": "",
5376 "type": "uint256"
5377 }
5378 ],
5379 "payable": false,
5380 "stateMutability": "view",
5381 "type": "function"
5382 },
5383 {
5384 "constant": false,
5385 "inputs": [
5386 {
5387 "internalType": "address",
5388 "name": "to",
5389 "type": "address"
5390 },
5391 {
5392 "internalType": "uint256",
5393 "name": "value",
5394 "type": "uint256"
5395 }
5396 ],
5397 "name": "transfer",
5398 "outputs": [
5399 {
5400 "internalType": "bool",
5401 "name": "",
5402 "type": "bool"
5403 }
5404 ],
5405 "payable": false,
5406 "stateMutability": "nonpayable",
5407 "type": "function"
5408 },
5409 {
5410 "constant": false,
5411 "inputs": [
5412 {
5413 "internalType": "address",
5414 "name": "from",
5415 "type": "address"
5416 },
5417 {
5418 "internalType": "address",
5419 "name": "to",
5420 "type": "address"
5421 },
5422 {
5423 "internalType": "uint256",
5424 "name": "value",
5425 "type": "uint256"
5426 }
5427 ],
5428 "name": "transferFrom",
5429 "outputs": [
5430 {
5431 "internalType": "bool",
5432 "name": "",
5433 "type": "bool"
5434 }
5435 ],
5436 "payable": false,
5437 "stateMutability": "nonpayable",
5438 "type": "function"
5439 }
5440 ],
5441 "evm": {
5442 "bytecode": {
5443 "linkReferences": {},
5444 "object": "",
5445 "opcodes": "",
5446 "sourceMap": ""
5447 },
5448 "deployedBytecode": {
5449 "linkReferences": {},
5450 "object": "",
5451 "opcodes": "",
5452 "sourceMap": ""
5453 }
5454 },
5455 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurveParams\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"m\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"n\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"setPairOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IUniswapV2Pair.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IUniswapV2Pair.sol\":{\"keccak256\":\"0x71f1f5865f89932201757a28dde71a4ae3aac5be8a563efdc0f290716ea3c0b6\",\"urls\":[\"bzz-raw://079f5f64c3ba58ca1bce36fb992f3833928a96d7309c81a6baddf780526fb9cc\",\"dweb:/ipfs/QmSoPgWdeDbYuTSjR6JmV5BpA6NYBEvHvALEAPpqJkzwHA\"]}},\"version\":1}",
5456 "interface": [
5457 {
5458 "anonymous": false,
5459 "inputs": [
5460 {
5461 "indexed": true,
5462 "internalType": "address",
5463 "name": "owner",
5464 "type": "address"
5465 },
5466 {
5467 "indexed": true,
5468 "internalType": "address",
5469 "name": "spender",
5470 "type": "address"
5471 },
5472 {
5473 "indexed": false,
5474 "internalType": "uint256",
5475 "name": "value",
5476 "type": "uint256"
5477 }
5478 ],
5479 "name": "Approval",
5480 "type": "event"
5481 },
5482 {
5483 "anonymous": false,
5484 "inputs": [
5485 {
5486 "indexed": true,
5487 "internalType": "address",
5488 "name": "sender",
5489 "type": "address"
5490 },
5491 {
5492 "indexed": false,
5493 "internalType": "uint256",
5494 "name": "amount0",
5495 "type": "uint256"
5496 },
5497 {
5498 "indexed": false,
5499 "internalType": "uint256",
5500 "name": "amount1",
5501 "type": "uint256"
5502 },
5503 {
5504 "indexed": true,
5505 "internalType": "address",
5506 "name": "to",
5507 "type": "address"
5508 }
5509 ],
5510 "name": "Burn",
5511 "type": "event"
5512 },
5513 {
5514 "anonymous": false,
5515 "inputs": [
5516 {
5517 "indexed": true,
5518 "internalType": "address",
5519 "name": "sender",
5520 "type": "address"
5521 },
5522 {
5523 "indexed": false,
5524 "internalType": "uint256",
5525 "name": "amount0",
5526 "type": "uint256"
5527 },
5528 {
5529 "indexed": false,
5530 "internalType": "uint256",
5531 "name": "amount1",
5532 "type": "uint256"
5533 }
5534 ],
5535 "name": "Mint",
5536 "type": "event"
5537 },
5538 {
5539 "anonymous": false,
5540 "inputs": [
5541 {
5542 "indexed": true,
5543 "internalType": "address",
5544 "name": "sender",
5545 "type": "address"
5546 },
5547 {
5548 "indexed": false,
5549 "internalType": "uint256",
5550 "name": "amount0In",
5551 "type": "uint256"
5552 },
5553 {
5554 "indexed": false,
5555 "internalType": "uint256",
5556 "name": "amount1In",
5557 "type": "uint256"
5558 },
5559 {
5560 "indexed": false,
5561 "internalType": "uint256",
5562 "name": "amount0Out",
5563 "type": "uint256"
5564 },
5565 {
5566 "indexed": false,
5567 "internalType": "uint256",
5568 "name": "amount1Out",
5569 "type": "uint256"
5570 },
5571 {
5572 "indexed": true,
5573 "internalType": "address",
5574 "name": "to",
5575 "type": "address"
5576 }
5577 ],
5578 "name": "Swap",
5579 "type": "event"
5580 },
5581 {
5582 "anonymous": false,
5583 "inputs": [
5584 {
5585 "indexed": false,
5586 "internalType": "uint112",
5587 "name": "reserve0",
5588 "type": "uint112"
5589 },
5590 {
5591 "indexed": false,
5592 "internalType": "uint112",
5593 "name": "reserve1",
5594 "type": "uint112"
5595 }
5596 ],
5597 "name": "Sync",
5598 "type": "event"
5599 },
5600 {
5601 "anonymous": false,
5602 "inputs": [
5603 {
5604 "indexed": true,
5605 "internalType": "address",
5606 "name": "from",
5607 "type": "address"
5608 },
5609 {
5610 "indexed": true,
5611 "internalType": "address",
5612 "name": "to",
5613 "type": "address"
5614 },
5615 {
5616 "indexed": false,
5617 "internalType": "uint256",
5618 "name": "value",
5619 "type": "uint256"
5620 }
5621 ],
5622 "name": "Transfer",
5623 "type": "event"
5624 },
5625 {
5626 "constant": true,
5627 "inputs": [],
5628 "name": "DOMAIN_SEPARATOR",
5629 "outputs": [
5630 {
5631 "internalType": "bytes32",
5632 "name": "",
5633 "type": "bytes32"
5634 }
5635 ],
5636 "payable": false,
5637 "stateMutability": "view",
5638 "type": "function"
5639 },
5640 {
5641 "constant": true,
5642 "inputs": [],
5643 "name": "MINIMUM_LIQUIDITY",
5644 "outputs": [
5645 {
5646 "internalType": "uint256",
5647 "name": "",
5648 "type": "uint256"
5649 }
5650 ],
5651 "payable": false,
5652 "stateMutability": "pure",
5653 "type": "function"
5654 },
5655 {
5656 "constant": true,
5657 "inputs": [],
5658 "name": "PERMIT_TYPEHASH",
5659 "outputs": [
5660 {
5661 "internalType": "bytes32",
5662 "name": "",
5663 "type": "bytes32"
5664 }
5665 ],
5666 "payable": false,
5667 "stateMutability": "pure",
5668 "type": "function"
5669 },
5670 {
5671 "constant": true,
5672 "inputs": [
5673 {
5674 "internalType": "address",
5675 "name": "owner",
5676 "type": "address"
5677 },
5678 {
5679 "internalType": "address",
5680 "name": "spender",
5681 "type": "address"
5682 }
5683 ],
5684 "name": "allowance",
5685 "outputs": [
5686 {
5687 "internalType": "uint256",
5688 "name": "",
5689 "type": "uint256"
5690 }
5691 ],
5692 "payable": false,
5693 "stateMutability": "view",
5694 "type": "function"
5695 },
5696 {
5697 "constant": false,
5698 "inputs": [
5699 {
5700 "internalType": "address",
5701 "name": "spender",
5702 "type": "address"
5703 },
5704 {
5705 "internalType": "uint256",
5706 "name": "value",
5707 "type": "uint256"
5708 }
5709 ],
5710 "name": "approve",
5711 "outputs": [
5712 {
5713 "internalType": "bool",
5714 "name": "",
5715 "type": "bool"
5716 }
5717 ],
5718 "payable": false,
5719 "stateMutability": "nonpayable",
5720 "type": "function"
5721 },
5722 {
5723 "constant": true,
5724 "inputs": [
5725 {
5726 "internalType": "address",
5727 "name": "owner",
5728 "type": "address"
5729 }
5730 ],
5731 "name": "balanceOf",
5732 "outputs": [
5733 {
5734 "internalType": "uint256",
5735 "name": "",
5736 "type": "uint256"
5737 }
5738 ],
5739 "payable": false,
5740 "stateMutability": "view",
5741 "type": "function"
5742 },
5743 {
5744 "constant": false,
5745 "inputs": [
5746 {
5747 "internalType": "address",
5748 "name": "to",
5749 "type": "address"
5750 }
5751 ],
5752 "name": "burn",
5753 "outputs": [
5754 {
5755 "internalType": "uint256",
5756 "name": "amount0",
5757 "type": "uint256"
5758 },
5759 {
5760 "internalType": "uint256",
5761 "name": "amount1",
5762 "type": "uint256"
5763 }
5764 ],
5765 "payable": false,
5766 "stateMutability": "nonpayable",
5767 "type": "function"
5768 },
5769 {
5770 "constant": true,
5771 "inputs": [],
5772 "name": "decimals",
5773 "outputs": [
5774 {
5775 "internalType": "uint8",
5776 "name": "",
5777 "type": "uint8"
5778 }
5779 ],
5780 "payable": false,
5781 "stateMutability": "pure",
5782 "type": "function"
5783 },
5784 {
5785 "constant": true,
5786 "inputs": [],
5787 "name": "factory",
5788 "outputs": [
5789 {
5790 "internalType": "address",
5791 "name": "",
5792 "type": "address"
5793 }
5794 ],
5795 "payable": false,
5796 "stateMutability": "view",
5797 "type": "function"
5798 },
5799 {
5800 "constant": true,
5801 "inputs": [],
5802 "name": "getCurveParams",
5803 "outputs": [
5804 {
5805 "internalType": "address",
5806 "name": "baseToken",
5807 "type": "address"
5808 },
5809 {
5810 "internalType": "uint256",
5811 "name": "m",
5812 "type": "uint256"
5813 },
5814 {
5815 "internalType": "uint256",
5816 "name": "n",
5817 "type": "uint256"
5818 },
5819 {
5820 "internalType": "uint256",
5821 "name": "fee",
5822 "type": "uint256"
5823 }
5824 ],
5825 "payable": false,
5826 "stateMutability": "view",
5827 "type": "function"
5828 },
5829 {
5830 "constant": true,
5831 "inputs": [],
5832 "name": "getReserves",
5833 "outputs": [
5834 {
5835 "internalType": "uint112",
5836 "name": "reserve0",
5837 "type": "uint112"
5838 },
5839 {
5840 "internalType": "uint112",
5841 "name": "reserve1",
5842 "type": "uint112"
5843 },
5844 {
5845 "internalType": "uint32",
5846 "name": "blockTimestampLast",
5847 "type": "uint32"
5848 }
5849 ],
5850 "payable": false,
5851 "stateMutability": "view",
5852 "type": "function"
5853 },
5854 {
5855 "constant": false,
5856 "inputs": [
5857 {
5858 "internalType": "address",
5859 "name": "",
5860 "type": "address"
5861 },
5862 {
5863 "internalType": "address",
5864 "name": "",
5865 "type": "address"
5866 },
5867 {
5868 "internalType": "address",
5869 "name": "",
5870 "type": "address"
5871 },
5872 {
5873 "internalType": "address",
5874 "name": "",
5875 "type": "address"
5876 },
5877 {
5878 "internalType": "uint256",
5879 "name": "",
5880 "type": "uint256"
5881 },
5882 {
5883 "internalType": "uint256",
5884 "name": "",
5885 "type": "uint256"
5886 },
5887 {
5888 "internalType": "uint256",
5889 "name": "",
5890 "type": "uint256"
5891 }
5892 ],
5893 "name": "initialize",
5894 "outputs": [],
5895 "payable": false,
5896 "stateMutability": "nonpayable",
5897 "type": "function"
5898 },
5899 {
5900 "constant": true,
5901 "inputs": [],
5902 "name": "kLast",
5903 "outputs": [
5904 {
5905 "internalType": "uint256",
5906 "name": "",
5907 "type": "uint256"
5908 }
5909 ],
5910 "payable": false,
5911 "stateMutability": "view",
5912 "type": "function"
5913 },
5914 {
5915 "constant": false,
5916 "inputs": [
5917 {
5918 "internalType": "address",
5919 "name": "to",
5920 "type": "address"
5921 }
5922 ],
5923 "name": "mint",
5924 "outputs": [
5925 {
5926 "internalType": "uint256",
5927 "name": "liquidity",
5928 "type": "uint256"
5929 }
5930 ],
5931 "payable": false,
5932 "stateMutability": "nonpayable",
5933 "type": "function"
5934 },
5935 {
5936 "constant": true,
5937 "inputs": [],
5938 "name": "name",
5939 "outputs": [
5940 {
5941 "internalType": "string",
5942 "name": "",
5943 "type": "string"
5944 }
5945 ],
5946 "payable": false,
5947 "stateMutability": "pure",
5948 "type": "function"
5949 },
5950 {
5951 "constant": true,
5952 "inputs": [
5953 {
5954 "internalType": "address",
5955 "name": "owner",
5956 "type": "address"
5957 }
5958 ],
5959 "name": "nonces",
5960 "outputs": [
5961 {
5962 "internalType": "uint256",
5963 "name": "",
5964 "type": "uint256"
5965 }
5966 ],
5967 "payable": false,
5968 "stateMutability": "view",
5969 "type": "function"
5970 },
5971 {
5972 "constant": false,
5973 "inputs": [
5974 {
5975 "internalType": "address",
5976 "name": "owner",
5977 "type": "address"
5978 },
5979 {
5980 "internalType": "address",
5981 "name": "spender",
5982 "type": "address"
5983 },
5984 {
5985 "internalType": "uint256",
5986 "name": "value",
5987 "type": "uint256"
5988 },
5989 {
5990 "internalType": "uint256",
5991 "name": "deadline",
5992 "type": "uint256"
5993 },
5994 {
5995 "internalType": "uint8",
5996 "name": "v",
5997 "type": "uint8"
5998 },
5999 {
6000 "internalType": "bytes32",
6001 "name": "r",
6002 "type": "bytes32"
6003 },
6004 {
6005 "internalType": "bytes32",
6006 "name": "s",
6007 "type": "bytes32"
6008 }
6009 ],
6010 "name": "permit",
6011 "outputs": [],
6012 "payable": false,
6013 "stateMutability": "nonpayable",
6014 "type": "function"
6015 },
6016 {
6017 "constant": true,
6018 "inputs": [],
6019 "name": "price0CumulativeLast",
6020 "outputs": [
6021 {
6022 "internalType": "uint256",
6023 "name": "",
6024 "type": "uint256"
6025 }
6026 ],
6027 "payable": false,
6028 "stateMutability": "view",
6029 "type": "function"
6030 },
6031 {
6032 "constant": true,
6033 "inputs": [],
6034 "name": "price1CumulativeLast",
6035 "outputs": [
6036 {
6037 "internalType": "uint256",
6038 "name": "",
6039 "type": "uint256"
6040 }
6041 ],
6042 "payable": false,
6043 "stateMutability": "view",
6044 "type": "function"
6045 },
6046 {
6047 "constant": false,
6048 "inputs": [
6049 {
6050 "internalType": "address",
6051 "name": "",
6052 "type": "address"
6053 }
6054 ],
6055 "name": "setPairOwner",
6056 "outputs": [],
6057 "payable": false,
6058 "stateMutability": "nonpayable",
6059 "type": "function"
6060 },
6061 {
6062 "constant": false,
6063 "inputs": [
6064 {
6065 "internalType": "address",
6066 "name": "to",
6067 "type": "address"
6068 }
6069 ],
6070 "name": "skim",
6071 "outputs": [],
6072 "payable": false,
6073 "stateMutability": "nonpayable",
6074 "type": "function"
6075 },
6076 {
6077 "constant": false,
6078 "inputs": [
6079 {
6080 "internalType": "uint256",
6081 "name": "amount0Out",
6082 "type": "uint256"
6083 },
6084 {
6085 "internalType": "uint256",
6086 "name": "amount1Out",
6087 "type": "uint256"
6088 },
6089 {
6090 "internalType": "address",
6091 "name": "to",
6092 "type": "address"
6093 },
6094 {
6095 "internalType": "bytes",
6096 "name": "data",
6097 "type": "bytes"
6098 }
6099 ],
6100 "name": "swap",
6101 "outputs": [],
6102 "payable": false,
6103 "stateMutability": "nonpayable",
6104 "type": "function"
6105 },
6106 {
6107 "constant": true,
6108 "inputs": [],
6109 "name": "symbol",
6110 "outputs": [
6111 {
6112 "internalType": "string",
6113 "name": "",
6114 "type": "string"
6115 }
6116 ],
6117 "payable": false,
6118 "stateMutability": "pure",
6119 "type": "function"
6120 },
6121 {
6122 "constant": false,
6123 "inputs": [],
6124 "name": "sync",
6125 "outputs": [],
6126 "payable": false,
6127 "stateMutability": "nonpayable",
6128 "type": "function"
6129 },
6130 {
6131 "constant": true,
6132 "inputs": [],
6133 "name": "token0",
6134 "outputs": [
6135 {
6136 "internalType": "address",
6137 "name": "",
6138 "type": "address"
6139 }
6140 ],
6141 "payable": false,
6142 "stateMutability": "view",
6143 "type": "function"
6144 },
6145 {
6146 "constant": true,
6147 "inputs": [],
6148 "name": "token1",
6149 "outputs": [
6150 {
6151 "internalType": "address",
6152 "name": "",
6153 "type": "address"
6154 }
6155 ],
6156 "payable": false,
6157 "stateMutability": "view",
6158 "type": "function"
6159 },
6160 {
6161 "constant": true,
6162 "inputs": [],
6163 "name": "totalSupply",
6164 "outputs": [
6165 {
6166 "internalType": "uint256",
6167 "name": "",
6168 "type": "uint256"
6169 }
6170 ],
6171 "payable": false,
6172 "stateMutability": "view",
6173 "type": "function"
6174 },
6175 {
6176 "constant": false,
6177 "inputs": [
6178 {
6179 "internalType": "address",
6180 "name": "to",
6181 "type": "address"
6182 },
6183 {
6184 "internalType": "uint256",
6185 "name": "value",
6186 "type": "uint256"
6187 }
6188 ],
6189 "name": "transfer",
6190 "outputs": [
6191 {
6192 "internalType": "bool",
6193 "name": "",
6194 "type": "bool"
6195 }
6196 ],
6197 "payable": false,
6198 "stateMutability": "nonpayable",
6199 "type": "function"
6200 },
6201 {
6202 "constant": false,
6203 "inputs": [
6204 {
6205 "internalType": "address",
6206 "name": "from",
6207 "type": "address"
6208 },
6209 {
6210 "internalType": "address",
6211 "name": "to",
6212 "type": "address"
6213 },
6214 {
6215 "internalType": "uint256",
6216 "name": "value",
6217 "type": "uint256"
6218 }
6219 ],
6220 "name": "transferFrom",
6221 "outputs": [
6222 {
6223 "internalType": "bool",
6224 "name": "",
6225 "type": "bool"
6226 }
6227 ],
6228 "payable": false,
6229 "stateMutability": "nonpayable",
6230 "type": "function"
6231 }
6232 ],
6233 "bytecode": "",
6234 "bin": "",
6235 "bin-runtime": "",
6236 "srcmap": "",
6237 "srcmap-runtime": ""
6238 },
6239 "contracts/libraries/Math.sol:Math": {
6240 "abi": [],
6241 "evm": {
6242 "bytecode": {
6243 "linkReferences": {},
6244 "object": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158207ba4db805307129f0ffeb2a16c292808aaebce5e4d7d6e9cfd0796d4d8cec11564736f6c63430005100032",
6245 "opcodes": "PUSH1 0x55 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH28 0xA4DB805307129F0FFEB2A16C292808AAEBCE5E4D7D6E9CFD0796D4D8 0xCE 0xC1 ISZERO PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN ",
6246 "sourceMap": "79:522:8:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"
6247 },
6248 "deployedBytecode": {
6249 "linkReferences": {},
6250 "object": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158207ba4db805307129f0ffeb2a16c292808aaebce5e4d7d6e9cfd0796d4d8cec11564736f6c63430005100032",
6251 "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH28 0xA4DB805307129F0FFEB2A16C292808AAEBCE5E4D7D6E9CFD0796D4D8 0xCE 0xC1 ISZERO PUSH5 0x736F6C6343 STOP SDIV LT STOP ORIGIN ",
6252 "sourceMap": "79:522:8:-;;;;;;;;"
6253 }
6254 },
6255 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/Math.sol\":\"Math\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/libraries/Math.sol\":{\"keccak256\":\"0x05927cb4aa14897bd567607522c18d2d518fa803ade6f870fac244c6f3702a3b\",\"urls\":[\"bzz-raw://b2805464c2d75cbdd726d6bd5c9b8d1f2c8566b606ec769ffa9a194a42248862\",\"dweb:/ipfs/QmWBa9BsCH8gbncvDFXmfMJX1USTHvAREtc8C7nz6miQpw\"]}},\"version\":1}",
6256 "interface": [],
6257 "bytecode": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158207ba4db805307129f0ffeb2a16c292808aaebce5e4d7d6e9cfd0796d4d8cec11564736f6c63430005100032",
6258 "bin": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158207ba4db805307129f0ffeb2a16c292808aaebce5e4d7d6e9cfd0796d4d8cec11564736f6c63430005100032",
6259 "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158207ba4db805307129f0ffeb2a16c292808aaebce5e4d7d6e9cfd0796d4d8cec11564736f6c63430005100032",
6260 "srcmap": "79:522:8:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
6261 "srcmap-runtime": "79:522:8:-;;;;;;;;"
6262 },
6263 "contracts/libraries/SafeMath.sol:SafeMath": {
6264 "abi": [],
6265 "evm": {
6266 "bytecode": {
6267 "linkReferences": {},
6268 "object": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158203c0bf53663e5b2e5e11865bb035c7a2a5bbe93e3494cedcfc11169dd22796a9f64736f6c63430005100032",
6269 "opcodes": "PUSH1 0x55 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 EXTCODECOPY SIGNEXTEND CREATE2 CALLDATASIZE PUSH4 0xE5B2E5E1 XOR PUSH6 0xBB035C7A2A5B 0xBE SWAP4 0xE3 0x49 0x4C 0xED 0xCF 0xC1 GT PUSH10 0xDD22796A9F64736F6C63 NUMBER STOP SDIV LT STOP ORIGIN ",
6270 "sourceMap": "132:430:9:-;;:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"
6271 },
6272 "deployedBytecode": {
6273 "linkReferences": {},
6274 "object": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158203c0bf53663e5b2e5e11865bb035c7a2a5bbe93e3494cedcfc11169dd22796a9f64736f6c63430005100032",
6275 "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 EXTCODECOPY SIGNEXTEND CREATE2 CALLDATASIZE PUSH4 0xE5B2E5E1 XOR PUSH6 0xBB035C7A2A5B 0xBE SWAP4 0xE3 0x49 0x4C 0xED 0xCF 0xC1 GT PUSH10 0xDD22796A9F64736F6C63 NUMBER STOP SDIV LT STOP ORIGIN ",
6276 "sourceMap": "132:430:9:-;;;;;;;;"
6277 }
6278 },
6279 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x9c8465de751317860b623cd77f7f53f41a84b6624c0580ee526dcf7a2b7cb80c\",\"urls\":[\"bzz-raw://9b371b3eb0649b486f76cd628cc060354d1ac11fa8baed1170567271655f05d7\",\"dweb:/ipfs/QmTUg31wK9UyX6o1Q1mxE4DQhuc1rWGBanNTu1uagNVQB6\"]}},\"version\":1}",
6280 "interface": [],
6281 "bytecode": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158203c0bf53663e5b2e5e11865bb035c7a2a5bbe93e3494cedcfc11169dd22796a9f64736f6c63430005100032",
6282 "bin": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158203c0bf53663e5b2e5e11865bb035c7a2a5bbe93e3494cedcfc11169dd22796a9f64736f6c63430005100032",
6283 "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158203c0bf53663e5b2e5e11865bb035c7a2a5bbe93e3494cedcfc11169dd22796a9f64736f6c63430005100032",
6284 "srcmap": "132:430:9:-;;:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
6285 "srcmap-runtime": "132:430:9:-;;;;;;;;"
6286 },
6287 "contracts/libraries/UQ112x112.sol:UQ112x112": {
6288 "abi": [],
6289 "evm": {
6290 "bytecode": {
6291 "linkReferences": {},
6292 "object": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820ad9fed179bd34cf0e9c3c4943ffbd69b29244112b105c85929fec1735f806ec064736f6c63430005100032",
6293 "opcodes": "PUSH1 0x55 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xAD SWAP16 0xED OR SWAP12 0xD3 0x4C CREATE 0xE9 0xC3 0xC4 SWAP5 EXTCODEHASH 0xFB 0xD6 SWAP12 0x29 0x24 COINBASE SLT 0xB1 SDIV 0xC8 MSIZE 0x29 INVALID 0xC1 PUSH20 0x5F806EC064736F6C634300051000320000000000 ",
6294 "sourceMap": "183:394:10:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"
6295 },
6296 "deployedBytecode": {
6297 "linkReferences": {},
6298 "object": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820ad9fed179bd34cf0e9c3c4943ffbd69b29244112b105c85929fec1735f806ec064736f6c63430005100032",
6299 "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xAD SWAP16 0xED OR SWAP12 0xD3 0x4C CREATE 0xE9 0xC3 0xC4 SWAP5 EXTCODEHASH 0xFB 0xD6 SWAP12 0x29 0x24 COINBASE SLT 0xB1 SDIV 0xC8 MSIZE 0x29 INVALID 0xC1 PUSH20 0x5F806EC064736F6C634300051000320000000000 ",
6300 "sourceMap": "183:394:10:-;;;;;;;;"
6301 }
6302 },
6303 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/UQ112x112.sol\":\"UQ112x112\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/libraries/UQ112x112.sol\":{\"keccak256\":\"0x2240694530251ab376ae468d0a2d3ee8b3109e56f2acadbc203cdf341506dd31\",\"urls\":[\"bzz-raw://56f55c411faa2924df0915ff77129b9d8c64d3e4d28554e7234f3774ac95958a\",\"dweb:/ipfs/QmYrzUurXL8ijzS8EnLtQTVD7fKPReosg2DsEPXXCY7ec3\"]}},\"version\":1}",
6304 "interface": [],
6305 "bytecode": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820ad9fed179bd34cf0e9c3c4943ffbd69b29244112b105c85929fec1735f806ec064736f6c63430005100032",
6306 "bin": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820ad9fed179bd34cf0e9c3c4943ffbd69b29244112b105c85929fec1735f806ec064736f6c63430005100032",
6307 "bin-runtime": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820ad9fed179bd34cf0e9c3c4943ffbd69b29244112b105c85929fec1735f806ec064736f6c63430005100032",
6308 "srcmap": "183:394:10:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
6309 "srcmap-runtime": "183:394:10:-;;;;;;;;"
6310 },
6311 "contracts/test/ERC20.sol:ERC20": {
6312 "abi": [
6313 {
6314 "inputs": [
6315 {
6316 "internalType": "uint256",
6317 "name": "_totalSupply",
6318 "type": "uint256"
6319 }
6320 ],
6321 "payable": false,
6322 "stateMutability": "nonpayable",
6323 "type": "constructor"
6324 },
6325 {
6326 "anonymous": false,
6327 "inputs": [
6328 {
6329 "indexed": true,
6330 "internalType": "address",
6331 "name": "owner",
6332 "type": "address"
6333 },
6334 {
6335 "indexed": true,
6336 "internalType": "address",
6337 "name": "spender",
6338 "type": "address"
6339 },
6340 {
6341 "indexed": false,
6342 "internalType": "uint256",
6343 "name": "value",
6344 "type": "uint256"
6345 }
6346 ],
6347 "name": "Approval",
6348 "type": "event"
6349 },
6350 {
6351 "anonymous": false,
6352 "inputs": [
6353 {
6354 "indexed": true,
6355 "internalType": "address",
6356 "name": "from",
6357 "type": "address"
6358 },
6359 {
6360 "indexed": true,
6361 "internalType": "address",
6362 "name": "to",
6363 "type": "address"
6364 },
6365 {
6366 "indexed": false,
6367 "internalType": "uint256",
6368 "name": "value",
6369 "type": "uint256"
6370 }
6371 ],
6372 "name": "Transfer",
6373 "type": "event"
6374 },
6375 {
6376 "constant": true,
6377 "inputs": [],
6378 "name": "DOMAIN_SEPARATOR",
6379 "outputs": [
6380 {
6381 "internalType": "bytes32",
6382 "name": "",
6383 "type": "bytes32"
6384 }
6385 ],
6386 "payable": false,
6387 "stateMutability": "view",
6388 "type": "function"
6389 },
6390 {
6391 "constant": true,
6392 "inputs": [],
6393 "name": "PERMIT_TYPEHASH",
6394 "outputs": [
6395 {
6396 "internalType": "bytes32",
6397 "name": "",
6398 "type": "bytes32"
6399 }
6400 ],
6401 "payable": false,
6402 "stateMutability": "view",
6403 "type": "function"
6404 },
6405 {
6406 "constant": true,
6407 "inputs": [
6408 {
6409 "internalType": "address",
6410 "name": "",
6411 "type": "address"
6412 },
6413 {
6414 "internalType": "address",
6415 "name": "",
6416 "type": "address"
6417 }
6418 ],
6419 "name": "allowance",
6420 "outputs": [
6421 {
6422 "internalType": "uint256",
6423 "name": "",
6424 "type": "uint256"
6425 }
6426 ],
6427 "payable": false,
6428 "stateMutability": "view",
6429 "type": "function"
6430 },
6431 {
6432 "constant": false,
6433 "inputs": [
6434 {
6435 "internalType": "address",
6436 "name": "spender",
6437 "type": "address"
6438 },
6439 {
6440 "internalType": "uint256",
6441 "name": "value",
6442 "type": "uint256"
6443 }
6444 ],
6445 "name": "approve",
6446 "outputs": [
6447 {
6448 "internalType": "bool",
6449 "name": "",
6450 "type": "bool"
6451 }
6452 ],
6453 "payable": false,
6454 "stateMutability": "nonpayable",
6455 "type": "function"
6456 },
6457 {
6458 "constant": true,
6459 "inputs": [
6460 {
6461 "internalType": "address",
6462 "name": "",
6463 "type": "address"
6464 }
6465 ],
6466 "name": "balanceOf",
6467 "outputs": [
6468 {
6469 "internalType": "uint256",
6470 "name": "",
6471 "type": "uint256"
6472 }
6473 ],
6474 "payable": false,
6475 "stateMutability": "view",
6476 "type": "function"
6477 },
6478 {
6479 "constant": true,
6480 "inputs": [],
6481 "name": "decimals",
6482 "outputs": [
6483 {
6484 "internalType": "uint8",
6485 "name": "",
6486 "type": "uint8"
6487 }
6488 ],
6489 "payable": false,
6490 "stateMutability": "view",
6491 "type": "function"
6492 },
6493 {
6494 "constant": true,
6495 "inputs": [],
6496 "name": "name",
6497 "outputs": [
6498 {
6499 "internalType": "string",
6500 "name": "",
6501 "type": "string"
6502 }
6503 ],
6504 "payable": false,
6505 "stateMutability": "view",
6506 "type": "function"
6507 },
6508 {
6509 "constant": true,
6510 "inputs": [
6511 {
6512 "internalType": "address",
6513 "name": "",
6514 "type": "address"
6515 }
6516 ],
6517 "name": "nonces",
6518 "outputs": [
6519 {
6520 "internalType": "uint256",
6521 "name": "",
6522 "type": "uint256"
6523 }
6524 ],
6525 "payable": false,
6526 "stateMutability": "view",
6527 "type": "function"
6528 },
6529 {
6530 "constant": false,
6531 "inputs": [
6532 {
6533 "internalType": "address",
6534 "name": "owner",
6535 "type": "address"
6536 },
6537 {
6538 "internalType": "address",
6539 "name": "spender",
6540 "type": "address"
6541 },
6542 {
6543 "internalType": "uint256",
6544 "name": "value",
6545 "type": "uint256"
6546 },
6547 {
6548 "internalType": "uint256",
6549 "name": "deadline",
6550 "type": "uint256"
6551 },
6552 {
6553 "internalType": "uint8",
6554 "name": "v",
6555 "type": "uint8"
6556 },
6557 {
6558 "internalType": "bytes32",
6559 "name": "r",
6560 "type": "bytes32"
6561 },
6562 {
6563 "internalType": "bytes32",
6564 "name": "s",
6565 "type": "bytes32"
6566 }
6567 ],
6568 "name": "permit",
6569 "outputs": [],
6570 "payable": false,
6571 "stateMutability": "nonpayable",
6572 "type": "function"
6573 },
6574 {
6575 "constant": true,
6576 "inputs": [],
6577 "name": "symbol",
6578 "outputs": [
6579 {
6580 "internalType": "string",
6581 "name": "",
6582 "type": "string"
6583 }
6584 ],
6585 "payable": false,
6586 "stateMutability": "view",
6587 "type": "function"
6588 },
6589 {
6590 "constant": true,
6591 "inputs": [],
6592 "name": "totalSupply",
6593 "outputs": [
6594 {
6595 "internalType": "uint256",
6596 "name": "",
6597 "type": "uint256"
6598 }
6599 ],
6600 "payable": false,
6601 "stateMutability": "view",
6602 "type": "function"
6603 },
6604 {
6605 "constant": false,
6606 "inputs": [
6607 {
6608 "internalType": "address",
6609 "name": "to",
6610 "type": "address"
6611 },
6612 {
6613 "internalType": "uint256",
6614 "name": "value",
6615 "type": "uint256"
6616 }
6617 ],
6618 "name": "transfer",
6619 "outputs": [
6620 {
6621 "internalType": "bool",
6622 "name": "",
6623 "type": "bool"
6624 }
6625 ],
6626 "payable": false,
6627 "stateMutability": "nonpayable",
6628 "type": "function"
6629 },
6630 {
6631 "constant": false,
6632 "inputs": [
6633 {
6634 "internalType": "address",
6635 "name": "from",
6636 "type": "address"
6637 },
6638 {
6639 "internalType": "address",
6640 "name": "to",
6641 "type": "address"
6642 },
6643 {
6644 "internalType": "uint256",
6645 "name": "value",
6646 "type": "uint256"
6647 }
6648 ],
6649 "name": "transferFrom",
6650 "outputs": [
6651 {
6652 "internalType": "bool",
6653 "name": "",
6654 "type": "bool"
6655 }
6656 ],
6657 "payable": false,
6658 "stateMutability": "nonpayable",
6659 "type": "function"
6660 }
6661 ],
6662 "evm": {
6663 "bytecode": {
6664 "linkReferences": {},
6665 "object": "608060405234801561001057600080fd5b50604051610d18380380610d188339818101604052602081101561003357600080fd5b50516040514690806052610cc68239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c0909401905282519201919091206003555061011633826001600160e01b0361011c16565b5061021c565b610135816000546101be60201b6109f41790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101669183906109f46101be821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610216576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610a9b8061022b6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a72315820e3f3ec6f4a8cee6fbefe1b9c955988a62bcbf83a8c9054ce283b36ba5f8aa16d64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
6666 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0xD18 CODESIZE SUB DUP1 PUSH2 0xD18 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 MLOAD CHAINID SWAP1 DUP1 PUSH1 0x52 PUSH2 0xCC6 DUP3 CODECOPY PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB PUSH1 0x52 ADD DUP3 KECCAK256 DUP3 DUP3 ADD DUP3 MSTORE PUSH1 0xA DUP4 MSTORE PUSH10 0x2AB734B9BBB0B8102B19 PUSH1 0xB1 SHL PUSH1 0x20 SWAP4 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP4 ADD DUP4 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x31 PUSH1 0xF8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xBFCC8EF98FFBF7B6C3FEC7BF5185B566B9863E35A9D83ACD49AD6824B5969738 DUP2 DUP4 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE ADDRESS PUSH1 0xA0 DUP1 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP5 ADD SWAP1 MSTORE DUP3 MLOAD SWAP3 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x3 SSTORE POP PUSH2 0x116 CALLER DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB PUSH2 0x11C AND JUMP JUMPDEST POP PUSH2 0x21C JUMP JUMPDEST PUSH2 0x135 DUP2 PUSH1 0x0 SLOAD PUSH2 0x1BE PUSH1 0x20 SHL PUSH2 0x9F4 OR SWAP1 SWAP2 SWAP1 PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH2 0x166 SWAP2 DUP4 SWAP1 PUSH2 0x9F4 PUSH2 0x1BE DUP3 SHL OR SWAP1 SHR JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP4 MLOAD DUP6 DUP2 MSTORE SWAP4 MLOAD SWAP3 SWAP4 SWAP2 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x216 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA9B DUP1 PUSH2 0x22B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x340 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x26C JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x213 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x37B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x4B0 JUMP JUMPDEST PUSH2 0x21B PUSH2 0x4D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4DF JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4F1 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x503 JUMP JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x53C JUMP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x549 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x556E697377617020563200000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x832 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x49B JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x469 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x8A1 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x4A6 DUP5 DUP5 DUP5 PUSH2 0x913 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x554E492D56320000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x913 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x794 JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x7FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x80A DUP10 DUP10 DUP10 PUSH2 0x832 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x949 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x8A1 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x98B SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x9F4 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xE3 RETURN 0xEC PUSH16 0x4A8CEE6FBEFE1B9C955988A62BCBF83A DUP13 SWAP1 SLOAD 0xCE 0x28 EXTCODESIZE CALLDATASIZE 0xBA 0x5F DUP11 LOG1 PUSH14 0x64736F6C63430005100032454950 CALLDATACOPY BALANCE ORIGIN DIFFICULTY PUSH16 0x6D61696E28737472696E67206E616D65 0x2C PUSH20 0x7472696E672076657273696F6E2C75696E743235 CALLDATASIZE KECCAK256 PUSH4 0x6861696E 0x49 PUSH5 0x2C61646472 PUSH6 0x737320766572 PUSH10 0x6679696E67436F6E7472 PUSH2 0x6374 0x29 ",
6667 "sourceMap": "59:127:11:-;;;98:86;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:86:11;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;98:86:11;1102:95:0;;1006:7;;1102:95;;;;;;;;;;;;;;;;1231:4;;;;;;;;-1:-1:-1;;;1231:4:0;;;;;1265:10;;;;;;;;;;-1:-1:-1;;;1265:10:0;;;;1074:272;;;;;;;;;1215:22;1074:272;;;;1255:21;1074:272;;;;;;;;;;;1327:4;1074:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1074:272:0;;;;;;1051:305;;;;;;;;1032:16;:324;-1:-1:-1;146:31:11;152:10;164:12;-1:-1:-1;;;;;146:5:11;:31;:::i;:::-;98:86;59:127;;1369:197:0;1441:22;1457:5;1441:11;;:15;;;;;;:22;;;;:::i;:::-;1427:11;:36;;;-1:-1:-1;;;;;1489:13:0;;;;:9;:13;;;;;;;;;:24;;1507:5;;1489:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1473:13:0;;;;;;:9;:13;;;;;;;;:40;;;;1528:31;;;;;;;1473:13;;;;1528:31;;;;;;;;;;1369:197;;:::o;155:126:9:-;238:5;;;233:16;;;;225:49;;;;;-1:-1:-1;;;225:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;155:126;;;;:::o;59:127:11:-;;;;;;;"
6668 },
6669 "deployedBytecode": {
6670 "linkReferences": {},
6671 "object": "608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a72315820e3f3ec6f4a8cee6fbefe1b9c955988a62bcbf83a8c9054ce283b36ba5f8aa16d64736f6c63430005100032",
6672 "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3644E515 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x29F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x340 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x3644E515 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x26C JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x30ADF81F EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x213 JUMPI PUSH2 0xDF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1AE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xEC PUSH2 0x37B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x126 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x153 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x3B4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 ADD CALLDATALOAD PUSH2 0x3D1 JUMP JUMPDEST PUSH2 0x1B6 PUSH2 0x4B0 JUMP JUMPDEST PUSH2 0x21B PUSH2 0x4D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x1B6 PUSH2 0x4D9 JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x24F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4DF JUMP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x282 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4F1 JUMP JUMPDEST PUSH2 0xEC PUSH2 0x503 JUMP JUMPDEST PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD AND SWAP1 PUSH1 0x20 ADD CALLDATALOAD PUSH2 0x53C JUMP JUMPDEST PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xE0 DUP2 LT ISZERO PUSH2 0x2F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP1 SWAP2 AND SWAP1 PUSH1 0x40 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xFF PUSH1 0x80 DUP3 ADD CALLDATALOAD AND SWAP1 PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP1 PUSH1 0xC0 ADD CALLDATALOAD PUSH2 0x549 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x356 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 ADD CALLDATALOAD AND PUSH2 0x815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x556E697377617020563200000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x832 JUMP JUMPDEST POP PUSH1 0x1 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF EQ PUSH2 0x49B JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH2 0x469 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x8A1 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SSTORE JUMPDEST PUSH2 0x4A6 DUP5 DUP5 DUP5 PUSH2 0x913 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 JUMP JUMPDEST PUSH1 0x12 DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x554E492D56320000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C1 CALLER DUP5 DUP5 PUSH2 0x913 JUMP JUMPDEST TIMESTAMP DUP5 LT ISZERO PUSH2 0x5B8 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20455850495245440000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP10 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE DUP3 MLOAD PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP2 DUP7 ADD MSTORE DUP1 DUP5 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP6 DUP14 AND PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x80 DUP6 ADD DUP13 SWAP1 MSTORE PUSH1 0xA0 DUP6 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0xC0 DUP1 DUP6 ADD DUP12 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP7 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xE0 DUP6 ADD DUP3 MSTORE DUP1 MLOAD SWAP1 DUP4 ADD KECCAK256 PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 PUSH2 0x100 DUP7 ADD MSTORE PUSH2 0x102 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH2 0x122 DUP1 DUP6 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP1 MLOAD DUP1 DUP6 SUB SWAP1 SWAP7 ADD DUP7 MSTORE PUSH2 0x142 DUP5 ADD DUP1 DUP3 MSTORE DUP7 MLOAD SWAP7 DUP4 ADD SWAP7 SWAP1 SWAP7 KECCAK256 SWAP6 DUP4 SWAP1 MSTORE PUSH2 0x162 DUP5 ADD DUP1 DUP3 MSTORE DUP7 SWAP1 MSTORE PUSH1 0xFF DUP10 AND PUSH2 0x182 DUP6 ADD MSTORE PUSH2 0x1A2 DUP5 ADD DUP9 SWAP1 MSTORE PUSH2 0x1C2 DUP5 ADD DUP8 SWAP1 MSTORE MLOAD SWAP2 SWAP4 SWAP3 PUSH2 0x1E2 DUP1 DUP3 ADD SWAP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 ADD SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x794 JUMPI POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0x7FF JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E697377617056323A20494E56414C49445F5349474E415455524500000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH2 0x80A DUP10 DUP10 DUP10 PUSH2 0x832 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP2 MLOAD PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP3 DUP2 SWAP1 SUB SWAP1 SWAP2 ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 SUB DUP3 DUP2 GT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D7375622D756E646572666C6F770000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x949 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x8A1 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SWAP4 SWAP1 SWAP4 SSTORE SWAP1 DUP5 AND DUP2 MSTORE KECCAK256 SLOAD PUSH2 0x98B SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x9F4 AND JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP5 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SWAP5 SWAP1 SWAP5 SSTORE DUP1 MLOAD DUP6 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP4 SWAP3 DUP8 AND SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP3 SWAP2 DUP3 SWAP1 SUB ADD SWAP1 LOG3 POP POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP3 DUP2 LT ISZERO PUSH2 0x3C5 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x64732D6D6174682D6164642D6F766572666C6F77000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xE3 RETURN 0xEC PUSH16 0x4A8CEE6FBEFE1B9C955988A62BCBF83A DUP13 SWAP1 SLOAD 0xCE 0x28 EXTCODESIZE CALLDATASIZE 0xBA 0x5F DUP11 LOG1 PUSH14 0x64736F6C63430005100032000000 ",
6673 "sourceMap": "59:127:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;59:127:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;184:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2177:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2177:144:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;319:24;;;:::i;:::-;;;;;;;;;;;;;;;;2469:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2469:295:0;;;;;;;;;;;;;;;;;;:::i;605:108::-;;;:::i;278:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;464:31;;;:::i;349:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;349:41:0;;;;:::i;719:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;719:38:0;;;;:::i;232:40::-;;;:::i;2327:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2327:136:0;;;;;;;;;:::i;2770:662::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2770:662:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;396:61;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;396:61:0;;;;;;;;;;;:::i;184:42::-;;;;;;;;;;;;;;;;;;;:::o;2177:144::-;2241:4;2257:36;2266:10;2278:7;2287:5;2257:8;:36::i;:::-;-1:-1:-1;2310:4:0;2177:144;;;;;:::o;319:24::-;;;;:::o;2469:295::-;2567:15;;;2547:4;2567:15;;;:9;:15;;;;;;;;2583:10;2567:27;;;;;;;;2603:2;2567:39;2563:138;;2652:15;;;;;;;:9;:15;;;;;;;;2668:10;2652:27;;;;;;;;:38;;2684:5;2652:38;:31;:38;:::i;:::-;2622:15;;;;;;;:9;:15;;;;;;;;2638:10;2622:27;;;;;;;:68;2563:138;2710:26;2720:4;2726:2;2730:5;2710:9;:26::i;:::-;-1:-1:-1;2753:4:0;2469:295;;;;;:::o;605:108::-;647:66;605:108;:::o;278:35::-;311:2;278:35;:::o;464:31::-;;;;:::o;349:41::-;;;;;;;;;;;;;:::o;719:38::-;;;;;;;;;;;;;:::o;232:40::-;;;;;;;;;;;;;;;;;;;:::o;2327:136::-;2387:4;2403:32;2413:10;2425:2;2429:5;2403:9;:32::i;2770:662::-;2915:15;2903:8;:27;;2895:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:16;;3160:13;;;;2963:14;3160:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3109:77;;647:66;3109:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3109:77:0;;;;;3099:88;;;;;;3003:198;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3003:198:0;;;;;;2980:231;;;;;;;;;3248:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:14;;3160:15;3248:26;;;;;-1:-1:-1;3248:26:0;;;;;;;;;;3160:15;3248:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3248:26:0;;;;;;-1:-1:-1;;3292:30:0;;;;;;;:59;;;3346:5;3326:25;;:16;:25;;;3292:59;3284:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3394:31;3403:5;3410:7;3419:5;3394:8;:31::i;:::-;2770:662;;;;;;;;;:::o;396:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1783:166::-;1863:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1911:31;;;;;;;;;;;;;;;;;1783:166;;;:::o;287:127:9:-;370:5;;;365:16;;;;357:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1955:216:0;2048:15;;;;;;;:9;:15;;;;;;:26;;2068:5;2048:26;:19;:26;:::i;:::-;2030:15;;;;;;;;:9;:15;;;;;;:44;;;;2100:13;;;;;;;:24;;2118:5;2100:24;:17;:24;:::i;:::-;2084:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2139:25;;;;;;;2084:13;;2139:25;;;;;;;;;;;;;1955:216;;;:::o;155:126:9:-;238:5;;;233:16;;;;225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
6674 }
6675 },
6676 "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/test/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/UniswapV2ERC20.sol\":{\"keccak256\":\"0x0599f3684aef3e5f1144e14df1ddd39be24948b7cff125af9c9beca4bc94e1a2\",\"urls\":[\"bzz-raw://962b5efd230c60ce591afed08be4f1def46222da230a527c98c92ee27cf64583\",\"dweb:/ipfs/Qmf5wW4T7F9sNQ1eAgaj94KcFS3hrtU5tTZyPZr8QhgXr8\"]},\"contracts/interfaces/IUniswapV2ERC20.sol\":{\"keccak256\":\"0x9e433765e9ef7b4ff5e406b260b222c47c2aa27d36df756db708064fcb239ae7\",\"urls\":[\"bzz-raw://5b67c24a5e1652b51ad2f37adad2905519f0e05e7c8b2b4d8b3e00b429bb9213\",\"dweb:/ipfs/QmarJq43GabAGGSqtMUb87ACYQt73mSFbXKyFAPDXpbFNM\"]},\"contracts/libraries/SafeMath.sol\":{\"keccak256\":\"0x9c8465de751317860b623cd77f7f53f41a84b6624c0580ee526dcf7a2b7cb80c\",\"urls\":[\"bzz-raw://9b371b3eb0649b486f76cd628cc060354d1ac11fa8baed1170567271655f05d7\",\"dweb:/ipfs/QmTUg31wK9UyX6o1Q1mxE4DQhuc1rWGBanNTu1uagNVQB6\"]},\"contracts/test/ERC20.sol\":{\"keccak256\":\"0xdfda774190646fc792c22f423ff46ed92725b986fb4ff0c95a17b7d6c20c0c63\",\"urls\":[\"bzz-raw://65ea2828e2a0d75cb575b4a2c82b514e0ed6a3da63872f051c8e6538967e2fef\",\"dweb:/ipfs/QmWhVFcUMVpkcqbuSWCptjw3MogaC3a3pJE6EJrHYkZwRN\"]}},\"version\":1}",
6677 "interface": [
6678 {
6679 "inputs": [
6680 {
6681 "internalType": "uint256",
6682 "name": "_totalSupply",
6683 "type": "uint256"
6684 }
6685 ],
6686 "payable": false,
6687 "stateMutability": "nonpayable",
6688 "type": "constructor"
6689 },
6690 {
6691 "anonymous": false,
6692 "inputs": [
6693 {
6694 "indexed": true,
6695 "internalType": "address",
6696 "name": "owner",
6697 "type": "address"
6698 },
6699 {
6700 "indexed": true,
6701 "internalType": "address",
6702 "name": "spender",
6703 "type": "address"
6704 },
6705 {
6706 "indexed": false,
6707 "internalType": "uint256",
6708 "name": "value",
6709 "type": "uint256"
6710 }
6711 ],
6712 "name": "Approval",
6713 "type": "event"
6714 },
6715 {
6716 "anonymous": false,
6717 "inputs": [
6718 {
6719 "indexed": true,
6720 "internalType": "address",
6721 "name": "from",
6722 "type": "address"
6723 },
6724 {
6725 "indexed": true,
6726 "internalType": "address",
6727 "name": "to",
6728 "type": "address"
6729 },
6730 {
6731 "indexed": false,
6732 "internalType": "uint256",
6733 "name": "value",
6734 "type": "uint256"
6735 }
6736 ],
6737 "name": "Transfer",
6738 "type": "event"
6739 },
6740 {
6741 "constant": true,
6742 "inputs": [],
6743 "name": "DOMAIN_SEPARATOR",
6744 "outputs": [
6745 {
6746 "internalType": "bytes32",
6747 "name": "",
6748 "type": "bytes32"
6749 }
6750 ],
6751 "payable": false,
6752 "stateMutability": "view",
6753 "type": "function"
6754 },
6755 {
6756 "constant": true,
6757 "inputs": [],
6758 "name": "PERMIT_TYPEHASH",
6759 "outputs": [
6760 {
6761 "internalType": "bytes32",
6762 "name": "",
6763 "type": "bytes32"
6764 }
6765 ],
6766 "payable": false,
6767 "stateMutability": "view",
6768 "type": "function"
6769 },
6770 {
6771 "constant": true,
6772 "inputs": [
6773 {
6774 "internalType": "address",
6775 "name": "",
6776 "type": "address"
6777 },
6778 {
6779 "internalType": "address",
6780 "name": "",
6781 "type": "address"
6782 }
6783 ],
6784 "name": "allowance",
6785 "outputs": [
6786 {
6787 "internalType": "uint256",
6788 "name": "",
6789 "type": "uint256"
6790 }
6791 ],
6792 "payable": false,
6793 "stateMutability": "view",
6794 "type": "function"
6795 },
6796 {
6797 "constant": false,
6798 "inputs": [
6799 {
6800 "internalType": "address",
6801 "name": "spender",
6802 "type": "address"
6803 },
6804 {
6805 "internalType": "uint256",
6806 "name": "value",
6807 "type": "uint256"
6808 }
6809 ],
6810 "name": "approve",
6811 "outputs": [
6812 {
6813 "internalType": "bool",
6814 "name": "",
6815 "type": "bool"
6816 }
6817 ],
6818 "payable": false,
6819 "stateMutability": "nonpayable",
6820 "type": "function"
6821 },
6822 {
6823 "constant": true,
6824 "inputs": [
6825 {
6826 "internalType": "address",
6827 "name": "",
6828 "type": "address"
6829 }
6830 ],
6831 "name": "balanceOf",
6832 "outputs": [
6833 {
6834 "internalType": "uint256",
6835 "name": "",
6836 "type": "uint256"
6837 }
6838 ],
6839 "payable": false,
6840 "stateMutability": "view",
6841 "type": "function"
6842 },
6843 {
6844 "constant": true,
6845 "inputs": [],
6846 "name": "decimals",
6847 "outputs": [
6848 {
6849 "internalType": "uint8",
6850 "name": "",
6851 "type": "uint8"
6852 }
6853 ],
6854 "payable": false,
6855 "stateMutability": "view",
6856 "type": "function"
6857 },
6858 {
6859 "constant": true,
6860 "inputs": [],
6861 "name": "name",
6862 "outputs": [
6863 {
6864 "internalType": "string",
6865 "name": "",
6866 "type": "string"
6867 }
6868 ],
6869 "payable": false,
6870 "stateMutability": "view",
6871 "type": "function"
6872 },
6873 {
6874 "constant": true,
6875 "inputs": [
6876 {
6877 "internalType": "address",
6878 "name": "",
6879 "type": "address"
6880 }
6881 ],
6882 "name": "nonces",
6883 "outputs": [
6884 {
6885 "internalType": "uint256",
6886 "name": "",
6887 "type": "uint256"
6888 }
6889 ],
6890 "payable": false,
6891 "stateMutability": "view",
6892 "type": "function"
6893 },
6894 {
6895 "constant": false,
6896 "inputs": [
6897 {
6898 "internalType": "address",
6899 "name": "owner",
6900 "type": "address"
6901 },
6902 {
6903 "internalType": "address",
6904 "name": "spender",
6905 "type": "address"
6906 },
6907 {
6908 "internalType": "uint256",
6909 "name": "value",
6910 "type": "uint256"
6911 },
6912 {
6913 "internalType": "uint256",
6914 "name": "deadline",
6915 "type": "uint256"
6916 },
6917 {
6918 "internalType": "uint8",
6919 "name": "v",
6920 "type": "uint8"
6921 },
6922 {
6923 "internalType": "bytes32",
6924 "name": "r",
6925 "type": "bytes32"
6926 },
6927 {
6928 "internalType": "bytes32",
6929 "name": "s",
6930 "type": "bytes32"
6931 }
6932 ],
6933 "name": "permit",
6934 "outputs": [],
6935 "payable": false,
6936 "stateMutability": "nonpayable",
6937 "type": "function"
6938 },
6939 {
6940 "constant": true,
6941 "inputs": [],
6942 "name": "symbol",
6943 "outputs": [
6944 {
6945 "internalType": "string",
6946 "name": "",
6947 "type": "string"
6948 }
6949 ],
6950 "payable": false,
6951 "stateMutability": "view",
6952 "type": "function"
6953 },
6954 {
6955 "constant": true,
6956 "inputs": [],
6957 "name": "totalSupply",
6958 "outputs": [
6959 {
6960 "internalType": "uint256",
6961 "name": "",
6962 "type": "uint256"
6963 }
6964 ],
6965 "payable": false,
6966 "stateMutability": "view",
6967 "type": "function"
6968 },
6969 {
6970 "constant": false,
6971 "inputs": [
6972 {
6973 "internalType": "address",
6974 "name": "to",
6975 "type": "address"
6976 },
6977 {
6978 "internalType": "uint256",
6979 "name": "value",
6980 "type": "uint256"
6981 }
6982 ],
6983 "name": "transfer",
6984 "outputs": [
6985 {
6986 "internalType": "bool",
6987 "name": "",
6988 "type": "bool"
6989 }
6990 ],
6991 "payable": false,
6992 "stateMutability": "nonpayable",
6993 "type": "function"
6994 },
6995 {
6996 "constant": false,
6997 "inputs": [
6998 {
6999 "internalType": "address",
7000 "name": "from",
7001 "type": "address"
7002 },
7003 {
7004 "internalType": "address",
7005 "name": "to",
7006 "type": "address"
7007 },
7008 {
7009 "internalType": "uint256",
7010 "name": "value",
7011 "type": "uint256"
7012 }
7013 ],
7014 "name": "transferFrom",
7015 "outputs": [
7016 {
7017 "internalType": "bool",
7018 "name": "",
7019 "type": "bool"
7020 }
7021 ],
7022 "payable": false,
7023 "stateMutability": "nonpayable",
7024 "type": "function"
7025 }
7026 ],
7027 "bytecode": "608060405234801561001057600080fd5b50604051610d18380380610d188339818101604052602081101561003357600080fd5b50516040514690806052610cc68239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c0909401905282519201919091206003555061011633826001600160e01b0361011c16565b5061021c565b610135816000546101be60201b6109f41790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101669183906109f46101be821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610216576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610a9b8061022b6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a72315820e3f3ec6f4a8cee6fbefe1b9c955988a62bcbf83a8c9054ce283b36ba5f8aa16d64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
7028 "bin": "608060405234801561001057600080fd5b50604051610d18380380610d188339818101604052602081101561003357600080fd5b50516040514690806052610cc68239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c0909401905282519201919091206003555061011633826001600160e01b0361011c16565b5061021c565b610135816000546101be60201b6109f41790919060201c565b60009081556001600160a01b0383168152600160209081526040909120546101669183906109f46101be821b17901c565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b80820182811015610216576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b92915050565b610a9b8061022b6000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a72315820e3f3ec6f4a8cee6fbefe1b9c955988a62bcbf83a8c9054ce283b36ba5f8aa16d64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
7029 "bin-runtime": "608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461029f578063a9059cbb146102a7578063d505accf146102e0578063dd62ed3e14610340576100df565b80633644e5151461023157806370a08231146102395780637ecebe001461026c576100df565b806323b872dd116100bd57806323b872dd146101c857806330adf81f1461020b578063313ce56714610213576100df565b806306fdde03146100e4578063095ea7b31461016157806318160ddd146101ae575b600080fd5b6100ec61037b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012657818101518382015260200161010e565b50505050905090810190601f1680156101535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61019a6004803603604081101561017757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356103b4565b604080519115158252519081900360200190f35b6101b66103cb565b60408051918252519081900360200190f35b61019a600480360360608110156101de57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356103d1565b6101b66104b0565b61021b6104d4565b6040805160ff9092168252519081900360200190f35b6101b66104d9565b6101b66004803603602081101561024f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104df565b6101b66004803603602081101561028257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f1565b6100ec610503565b61019a600480360360408110156102bd57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561053c565b61033e600480360360e08110156102f657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610549565b005b6101b66004803603604081101561035657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610815565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b60006103c1338484610832565b5060015b92915050565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461049b5773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610469908363ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b6104a6848484610913565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b60006103c1338484610913565b428410156105b857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015610719573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81161580159061079457508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107ff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61080a898989610832565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b808203828111156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054610949908263ffffffff6108a116565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020526040808220939093559084168152205461098b908263ffffffff6109f416565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b808201828110156103c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfea265627a7a72315820e3f3ec6f4a8cee6fbefe1b9c955988a62bcbf83a8c9054ce283b36ba5f8aa16d64736f6c63430005100032",
7030 "srcmap": "59:127:11:-;;;98:86;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:86:11;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;98:86:11;1102:95:0;;1006:7;;1102:95;;;;;;;;;;;;;;;;1231:4;;;;;;;;-1:-1:-1;;;1231:4:0;;;;;1265:10;;;;;;;;;;-1:-1:-1;;;1265:10:0;;;;1074:272;;;;;;;;;1215:22;1074:272;;;;1255:21;1074:272;;;;;;;;;;;1327:4;1074:272;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1074:272:0;;;;;;1051:305;;;;;;;;1032:16;:324;-1:-1:-1;146:31:11;152:10;164:12;-1:-1:-1;;;;;146:5:11;:31;:::i;:::-;98:86;59:127;;1369:197:0;1441:22;1457:5;1441:11;;:15;;;;;;:22;;;;:::i;:::-;1427:11;:36;;;-1:-1:-1;;;;;1489:13:0;;;;:9;:13;;;;;;;;;:24;;1507:5;;1489:17;;;;;:24;;:::i;:::-;-1:-1:-1;;;;;1473:13:0;;;;;;:9;:13;;;;;;;;:40;;;;1528:31;;;;;;;1473:13;;;;1528:31;;;;;;;;;;1369:197;;:::o;155:126:9:-;238:5;;;233:16;;;;225:49;;;;;-1:-1:-1;;;225:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;155:126;;;;:::o;59:127:11:-;;;;;;;",
7031 "srcmap-runtime": "59:127:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;59:127:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;184:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2177:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2177:144:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;319:24;;;:::i;:::-;;;;;;;;;;;;;;;;2469:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2469:295:0;;;;;;;;;;;;;;;;;;:::i;605:108::-;;;:::i;278:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;464:31;;;:::i;349:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;349:41:0;;;;:::i;719:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;719:38:0;;;;:::i;232:40::-;;;:::i;2327:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2327:136:0;;;;;;;;;:::i;2770:662::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2770:662:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;396:61;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;396:61:0;;;;;;;;;;;:::i;184:42::-;;;;;;;;;;;;;;;;;;;:::o;2177:144::-;2241:4;2257:36;2266:10;2278:7;2287:5;2257:8;:36::i;:::-;-1:-1:-1;2310:4:0;2177:144;;;;;:::o;319:24::-;;;;:::o;2469:295::-;2567:15;;;2547:4;2567:15;;;:9;:15;;;;;;;;2583:10;2567:27;;;;;;;;2603:2;2567:39;2563:138;;2652:15;;;;;;;:9;:15;;;;;;;;2668:10;2652:27;;;;;;;;:38;;2684:5;2652:38;:31;:38;:::i;:::-;2622:15;;;;;;;:9;:15;;;;;;;;2638:10;2622:27;;;;;;;:68;2563:138;2710:26;2720:4;2726:2;2730:5;2710:9;:26::i;:::-;-1:-1:-1;2753:4:0;2469:295;;;;;:::o;605:108::-;647:66;605:108;:::o;278:35::-;311:2;278:35;:::o;464:31::-;;;;:::o;349:41::-;;;;;;;;;;;;;:::o;719:38::-;;;;;;;;;;;;;:::o;232:40::-;;;;;;;;;;;;;;;;;;;:::o;2327:136::-;2387:4;2403:32;2413:10;2425:2;2429:5;2403:9;:32::i;2770:662::-;2915:15;2903:8;:27;;2895:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:16;;3160:13;;;;2963:14;3160:13;;;:6;:13;;;;;;;;:15;;;;;;;;;3109:77;;647:66;3109:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3109:77:0;;;;;3099:88;;;;;;3003:198;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3003:198:0;;;;;;2980:231;;;;;;;;;3248:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2963:14;;3160:15;3248:26;;;;;-1:-1:-1;3248:26:0;;;;;;;;;;3160:15;3248:26;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3248:26:0;;;;;;-1:-1:-1;;3292:30:0;;;;;;;:59;;;3346:5;3326:25;;:16;:25;;;3292:59;3284:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3394:31;3403:5;3410:7;3419:5;3394:8;:31::i;:::-;2770:662;;;;;;;;;:::o;396:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;1783:166::-;1863:16;;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;1911:31;;;;;;;;;;;;;;;;;1783:166;;;:::o;287:127:9:-;370:5;;;365:16;;;;357:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1955:216:0;2048:15;;;;;;;:9;:15;;;;;;:26;;2068:5;2048:26;:19;:26;:::i;:::-;2030:15;;;;;;;;:9;:15;;;;;;:44;;;;2100:13;;;;;;;:24;;2118:5;2100:24;:17;:24;:::i;:::-;2084:13;;;;;;;;:9;:13;;;;;;;;;:40;;;;2139:25;;;;;;;2084:13;;2139:25;;;;;;;;;;;;;1955:216;;;:::o;155:126:9:-;238:5;;;233:16;;;;225:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
7032 }
7033 },
7034 "sources": {
7035 "contracts/UniswapV2ERC20.sol": {
7036 "id": 0,
7037 "AST": {
7038 "absolutePath": "contracts/UniswapV2ERC20.sol",
7039 "exportedSymbols": {
7040 "UniswapV2ERC20": [
7041 384
7042 ]
7043 },
7044 "id": 385,
7045 "nodeType": "SourceUnit",
7046 "nodes": [
7047 {
7048 "id": 1,
7049 "literals": [
7050 "solidity",
7051 "=",
7052 "0.5",
7053 ".16"
7054 ],
7055 "nodeType": "PragmaDirective",
7056 "src": "0:24:0"
7057 },
7058 {
7059 "absolutePath": "contracts/interfaces/IUniswapV2ERC20.sol",
7060 "file": "./interfaces/IUniswapV2ERC20.sol",
7061 "id": 2,
7062 "nodeType": "ImportDirective",
7063 "scope": 385,
7064 "sourceUnit": 2051,
7065 "src": "26:42:0",
7066 "symbolAliases": [],
7067 "unitAlias": ""
7068 },
7069 {
7070 "absolutePath": "contracts/libraries/SafeMath.sol",
7071 "file": "./libraries/SafeMath.sol",
7072 "id": 3,
7073 "nodeType": "ImportDirective",
7074 "scope": 385,
7075 "sourceUnit": 2543,
7076 "src": "69:34:0",
7077 "symbolAliases": [],
7078 "unitAlias": ""
7079 },
7080 {
7081 "baseContracts": [
7082 {
7083 "arguments": null,
7084 "baseName": {
7085 "contractScope": null,
7086 "id": 4,
7087 "name": "IUniswapV2ERC20",
7088 "nodeType": "UserDefinedTypeName",
7089 "referencedDeclaration": 2050,
7090 "src": "132:15:0",
7091 "typeDescriptions": {
7092 "typeIdentifier": "t_contract$_IUniswapV2ERC20_$2050",
7093 "typeString": "contract IUniswapV2ERC20"
7094 }
7095 },
7096 "id": 5,
7097 "nodeType": "InheritanceSpecifier",
7098 "src": "132:15:0"
7099 }
7100 ],
7101 "contractDependencies": [
7102 2050
7103 ],
7104 "contractKind": "contract",
7105 "documentation": null,
7106 "fullyImplemented": true,
7107 "id": 384,
7108 "linearizedBaseContracts": [
7109 384,
7110 2050
7111 ],
7112 "name": "UniswapV2ERC20",
7113 "nodeType": "ContractDefinition",
7114 "nodes": [
7115 {
7116 "id": 8,
7117 "libraryName": {
7118 "contractScope": null,
7119 "id": 6,
7120 "name": "SafeMath",
7121 "nodeType": "UserDefinedTypeName",
7122 "referencedDeclaration": 2542,
7123 "src": "160:8:0",
7124 "typeDescriptions": {
7125 "typeIdentifier": "t_contract$_SafeMath_$2542",
7126 "typeString": "library SafeMath"
7127 }
7128 },
7129 "nodeType": "UsingForDirective",
7130 "src": "154:24:0",
7131 "typeName": {
7132 "id": 7,
7133 "name": "uint",
7134 "nodeType": "ElementaryTypeName",
7135 "src": "173:4:0",
7136 "typeDescriptions": {
7137 "typeIdentifier": "t_uint256",
7138 "typeString": "uint256"
7139 }
7140 }
7141 },
7142 {
7143 "constant": true,
7144 "id": 11,
7145 "name": "name",
7146 "nodeType": "VariableDeclaration",
7147 "scope": 384,
7148 "src": "184:42:0",
7149 "stateVariable": true,
7150 "storageLocation": "default",
7151 "typeDescriptions": {
7152 "typeIdentifier": "t_string_memory",
7153 "typeString": "string"
7154 },
7155 "typeName": {
7156 "id": 9,
7157 "name": "string",
7158 "nodeType": "ElementaryTypeName",
7159 "src": "184:6:0",
7160 "typeDescriptions": {
7161 "typeIdentifier": "t_string_storage_ptr",
7162 "typeString": "string"
7163 }
7164 },
7165 "value": {
7166 "argumentTypes": null,
7167 "hexValue": "556e6973776170205632",
7168 "id": 10,
7169 "isConstant": false,
7170 "isLValue": false,
7171 "isPure": true,
7172 "kind": "string",
7173 "lValueRequested": false,
7174 "nodeType": "Literal",
7175 "src": "214:12:0",
7176 "subdenomination": null,
7177 "typeDescriptions": {
7178 "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738",
7179 "typeString": "literal_string \"Uniswap V2\""
7180 },
7181 "value": "Uniswap V2"
7182 },
7183 "visibility": "public"
7184 },
7185 {
7186 "constant": true,
7187 "id": 14,
7188 "name": "symbol",
7189 "nodeType": "VariableDeclaration",
7190 "scope": 384,
7191 "src": "232:40:0",
7192 "stateVariable": true,
7193 "storageLocation": "default",
7194 "typeDescriptions": {
7195 "typeIdentifier": "t_string_memory",
7196 "typeString": "string"
7197 },
7198 "typeName": {
7199 "id": 12,
7200 "name": "string",
7201 "nodeType": "ElementaryTypeName",
7202 "src": "232:6:0",
7203 "typeDescriptions": {
7204 "typeIdentifier": "t_string_storage_ptr",
7205 "typeString": "string"
7206 }
7207 },
7208 "value": {
7209 "argumentTypes": null,
7210 "hexValue": "554e492d5632",
7211 "id": 13,
7212 "isConstant": false,
7213 "isLValue": false,
7214 "isPure": true,
7215 "kind": "string",
7216 "lValueRequested": false,
7217 "nodeType": "Literal",
7218 "src": "264:8:0",
7219 "subdenomination": null,
7220 "typeDescriptions": {
7221 "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255",
7222 "typeString": "literal_string \"UNI-V2\""
7223 },
7224 "value": "UNI-V2"
7225 },
7226 "visibility": "public"
7227 },
7228 {
7229 "constant": true,
7230 "id": 17,
7231 "name": "decimals",
7232 "nodeType": "VariableDeclaration",
7233 "scope": 384,
7234 "src": "278:35:0",
7235 "stateVariable": true,
7236 "storageLocation": "default",
7237 "typeDescriptions": {
7238 "typeIdentifier": "t_uint8",
7239 "typeString": "uint8"
7240 },
7241 "typeName": {
7242 "id": 15,
7243 "name": "uint8",
7244 "nodeType": "ElementaryTypeName",
7245 "src": "278:5:0",
7246 "typeDescriptions": {
7247 "typeIdentifier": "t_uint8",
7248 "typeString": "uint8"
7249 }
7250 },
7251 "value": {
7252 "argumentTypes": null,
7253 "hexValue": "3138",
7254 "id": 16,
7255 "isConstant": false,
7256 "isLValue": false,
7257 "isPure": true,
7258 "kind": "number",
7259 "lValueRequested": false,
7260 "nodeType": "Literal",
7261 "src": "311:2:0",
7262 "subdenomination": null,
7263 "typeDescriptions": {
7264 "typeIdentifier": "t_rational_18_by_1",
7265 "typeString": "int_const 18"
7266 },
7267 "value": "18"
7268 },
7269 "visibility": "public"
7270 },
7271 {
7272 "constant": false,
7273 "id": 19,
7274 "name": "totalSupply",
7275 "nodeType": "VariableDeclaration",
7276 "scope": 384,
7277 "src": "319:24:0",
7278 "stateVariable": true,
7279 "storageLocation": "default",
7280 "typeDescriptions": {
7281 "typeIdentifier": "t_uint256",
7282 "typeString": "uint256"
7283 },
7284 "typeName": {
7285 "id": 18,
7286 "name": "uint",
7287 "nodeType": "ElementaryTypeName",
7288 "src": "319:4:0",
7289 "typeDescriptions": {
7290 "typeIdentifier": "t_uint256",
7291 "typeString": "uint256"
7292 }
7293 },
7294 "value": null,
7295 "visibility": "public"
7296 },
7297 {
7298 "constant": false,
7299 "id": 23,
7300 "name": "balanceOf",
7301 "nodeType": "VariableDeclaration",
7302 "scope": 384,
7303 "src": "349:41:0",
7304 "stateVariable": true,
7305 "storageLocation": "default",
7306 "typeDescriptions": {
7307 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7308 "typeString": "mapping(address => uint256)"
7309 },
7310 "typeName": {
7311 "id": 22,
7312 "keyType": {
7313 "id": 20,
7314 "name": "address",
7315 "nodeType": "ElementaryTypeName",
7316 "src": "357:7:0",
7317 "typeDescriptions": {
7318 "typeIdentifier": "t_address",
7319 "typeString": "address"
7320 }
7321 },
7322 "nodeType": "Mapping",
7323 "src": "349:24:0",
7324 "typeDescriptions": {
7325 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7326 "typeString": "mapping(address => uint256)"
7327 },
7328 "valueType": {
7329 "id": 21,
7330 "name": "uint",
7331 "nodeType": "ElementaryTypeName",
7332 "src": "368:4:0",
7333 "typeDescriptions": {
7334 "typeIdentifier": "t_uint256",
7335 "typeString": "uint256"
7336 }
7337 }
7338 },
7339 "value": null,
7340 "visibility": "public"
7341 },
7342 {
7343 "constant": false,
7344 "id": 29,
7345 "name": "allowance",
7346 "nodeType": "VariableDeclaration",
7347 "scope": 384,
7348 "src": "396:61:0",
7349 "stateVariable": true,
7350 "storageLocation": "default",
7351 "typeDescriptions": {
7352 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
7353 "typeString": "mapping(address => mapping(address => uint256))"
7354 },
7355 "typeName": {
7356 "id": 28,
7357 "keyType": {
7358 "id": 24,
7359 "name": "address",
7360 "nodeType": "ElementaryTypeName",
7361 "src": "404:7:0",
7362 "typeDescriptions": {
7363 "typeIdentifier": "t_address",
7364 "typeString": "address"
7365 }
7366 },
7367 "nodeType": "Mapping",
7368 "src": "396:44:0",
7369 "typeDescriptions": {
7370 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
7371 "typeString": "mapping(address => mapping(address => uint256))"
7372 },
7373 "valueType": {
7374 "id": 27,
7375 "keyType": {
7376 "id": 25,
7377 "name": "address",
7378 "nodeType": "ElementaryTypeName",
7379 "src": "423:7:0",
7380 "typeDescriptions": {
7381 "typeIdentifier": "t_address",
7382 "typeString": "address"
7383 }
7384 },
7385 "nodeType": "Mapping",
7386 "src": "415:24:0",
7387 "typeDescriptions": {
7388 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7389 "typeString": "mapping(address => uint256)"
7390 },
7391 "valueType": {
7392 "id": 26,
7393 "name": "uint",
7394 "nodeType": "ElementaryTypeName",
7395 "src": "434:4:0",
7396 "typeDescriptions": {
7397 "typeIdentifier": "t_uint256",
7398 "typeString": "uint256"
7399 }
7400 }
7401 }
7402 },
7403 "value": null,
7404 "visibility": "public"
7405 },
7406 {
7407 "constant": false,
7408 "id": 31,
7409 "name": "DOMAIN_SEPARATOR",
7410 "nodeType": "VariableDeclaration",
7411 "scope": 384,
7412 "src": "464:31:0",
7413 "stateVariable": true,
7414 "storageLocation": "default",
7415 "typeDescriptions": {
7416 "typeIdentifier": "t_bytes32",
7417 "typeString": "bytes32"
7418 },
7419 "typeName": {
7420 "id": 30,
7421 "name": "bytes32",
7422 "nodeType": "ElementaryTypeName",
7423 "src": "464:7:0",
7424 "typeDescriptions": {
7425 "typeIdentifier": "t_bytes32",
7426 "typeString": "bytes32"
7427 }
7428 },
7429 "value": null,
7430 "visibility": "public"
7431 },
7432 {
7433 "constant": true,
7434 "id": 34,
7435 "name": "PERMIT_TYPEHASH",
7436 "nodeType": "VariableDeclaration",
7437 "scope": 384,
7438 "src": "605:108:0",
7439 "stateVariable": true,
7440 "storageLocation": "default",
7441 "typeDescriptions": {
7442 "typeIdentifier": "t_bytes32",
7443 "typeString": "bytes32"
7444 },
7445 "typeName": {
7446 "id": 32,
7447 "name": "bytes32",
7448 "nodeType": "ElementaryTypeName",
7449 "src": "605:7:0",
7450 "typeDescriptions": {
7451 "typeIdentifier": "t_bytes32",
7452 "typeString": "bytes32"
7453 }
7454 },
7455 "value": {
7456 "argumentTypes": null,
7457 "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339",
7458 "id": 33,
7459 "isConstant": false,
7460 "isLValue": false,
7461 "isPure": true,
7462 "kind": "number",
7463 "lValueRequested": false,
7464 "nodeType": "Literal",
7465 "src": "647:66:0",
7466 "subdenomination": null,
7467 "typeDescriptions": {
7468 "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1",
7469 "typeString": "int_const 4995...(69 digits omitted)...3241"
7470 },
7471 "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9"
7472 },
7473 "visibility": "public"
7474 },
7475 {
7476 "constant": false,
7477 "id": 38,
7478 "name": "nonces",
7479 "nodeType": "VariableDeclaration",
7480 "scope": 384,
7481 "src": "719:38:0",
7482 "stateVariable": true,
7483 "storageLocation": "default",
7484 "typeDescriptions": {
7485 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7486 "typeString": "mapping(address => uint256)"
7487 },
7488 "typeName": {
7489 "id": 37,
7490 "keyType": {
7491 "id": 35,
7492 "name": "address",
7493 "nodeType": "ElementaryTypeName",
7494 "src": "727:7:0",
7495 "typeDescriptions": {
7496 "typeIdentifier": "t_address",
7497 "typeString": "address"
7498 }
7499 },
7500 "nodeType": "Mapping",
7501 "src": "719:24:0",
7502 "typeDescriptions": {
7503 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
7504 "typeString": "mapping(address => uint256)"
7505 },
7506 "valueType": {
7507 "id": 36,
7508 "name": "uint",
7509 "nodeType": "ElementaryTypeName",
7510 "src": "738:4:0",
7511 "typeDescriptions": {
7512 "typeIdentifier": "t_uint256",
7513 "typeString": "uint256"
7514 }
7515 }
7516 },
7517 "value": null,
7518 "visibility": "public"
7519 },
7520 {
7521 "anonymous": false,
7522 "documentation": null,
7523 "id": 46,
7524 "name": "Approval",
7525 "nodeType": "EventDefinition",
7526 "parameters": {
7527 "id": 45,
7528 "nodeType": "ParameterList",
7529 "parameters": [
7530 {
7531 "constant": false,
7532 "id": 40,
7533 "indexed": true,
7534 "name": "owner",
7535 "nodeType": "VariableDeclaration",
7536 "scope": 46,
7537 "src": "779:21:0",
7538 "stateVariable": false,
7539 "storageLocation": "default",
7540 "typeDescriptions": {
7541 "typeIdentifier": "t_address",
7542 "typeString": "address"
7543 },
7544 "typeName": {
7545 "id": 39,
7546 "name": "address",
7547 "nodeType": "ElementaryTypeName",
7548 "src": "779:7:0",
7549 "stateMutability": "nonpayable",
7550 "typeDescriptions": {
7551 "typeIdentifier": "t_address",
7552 "typeString": "address"
7553 }
7554 },
7555 "value": null,
7556 "visibility": "internal"
7557 },
7558 {
7559 "constant": false,
7560 "id": 42,
7561 "indexed": true,
7562 "name": "spender",
7563 "nodeType": "VariableDeclaration",
7564 "scope": 46,
7565 "src": "802:23:0",
7566 "stateVariable": false,
7567 "storageLocation": "default",
7568 "typeDescriptions": {
7569 "typeIdentifier": "t_address",
7570 "typeString": "address"
7571 },
7572 "typeName": {
7573 "id": 41,
7574 "name": "address",
7575 "nodeType": "ElementaryTypeName",
7576 "src": "802:7:0",
7577 "stateMutability": "nonpayable",
7578 "typeDescriptions": {
7579 "typeIdentifier": "t_address",
7580 "typeString": "address"
7581 }
7582 },
7583 "value": null,
7584 "visibility": "internal"
7585 },
7586 {
7587 "constant": false,
7588 "id": 44,
7589 "indexed": false,
7590 "name": "value",
7591 "nodeType": "VariableDeclaration",
7592 "scope": 46,
7593 "src": "827:10:0",
7594 "stateVariable": false,
7595 "storageLocation": "default",
7596 "typeDescriptions": {
7597 "typeIdentifier": "t_uint256",
7598 "typeString": "uint256"
7599 },
7600 "typeName": {
7601 "id": 43,
7602 "name": "uint",
7603 "nodeType": "ElementaryTypeName",
7604 "src": "827:4:0",
7605 "typeDescriptions": {
7606 "typeIdentifier": "t_uint256",
7607 "typeString": "uint256"
7608 }
7609 },
7610 "value": null,
7611 "visibility": "internal"
7612 }
7613 ],
7614 "src": "778:60:0"
7615 },
7616 "src": "764:75:0"
7617 },
7618 {
7619 "anonymous": false,
7620 "documentation": null,
7621 "id": 54,
7622 "name": "Transfer",
7623 "nodeType": "EventDefinition",
7624 "parameters": {
7625 "id": 53,
7626 "nodeType": "ParameterList",
7627 "parameters": [
7628 {
7629 "constant": false,
7630 "id": 48,
7631 "indexed": true,
7632 "name": "from",
7633 "nodeType": "VariableDeclaration",
7634 "scope": 54,
7635 "src": "859:20:0",
7636 "stateVariable": false,
7637 "storageLocation": "default",
7638 "typeDescriptions": {
7639 "typeIdentifier": "t_address",
7640 "typeString": "address"
7641 },
7642 "typeName": {
7643 "id": 47,
7644 "name": "address",
7645 "nodeType": "ElementaryTypeName",
7646 "src": "859:7:0",
7647 "stateMutability": "nonpayable",
7648 "typeDescriptions": {
7649 "typeIdentifier": "t_address",
7650 "typeString": "address"
7651 }
7652 },
7653 "value": null,
7654 "visibility": "internal"
7655 },
7656 {
7657 "constant": false,
7658 "id": 50,
7659 "indexed": true,
7660 "name": "to",
7661 "nodeType": "VariableDeclaration",
7662 "scope": 54,
7663 "src": "881:18:0",
7664 "stateVariable": false,
7665 "storageLocation": "default",
7666 "typeDescriptions": {
7667 "typeIdentifier": "t_address",
7668 "typeString": "address"
7669 },
7670 "typeName": {
7671 "id": 49,
7672 "name": "address",
7673 "nodeType": "ElementaryTypeName",
7674 "src": "881:7:0",
7675 "stateMutability": "nonpayable",
7676 "typeDescriptions": {
7677 "typeIdentifier": "t_address",
7678 "typeString": "address"
7679 }
7680 },
7681 "value": null,
7682 "visibility": "internal"
7683 },
7684 {
7685 "constant": false,
7686 "id": 52,
7687 "indexed": false,
7688 "name": "value",
7689 "nodeType": "VariableDeclaration",
7690 "scope": 54,
7691 "src": "901:10:0",
7692 "stateVariable": false,
7693 "storageLocation": "default",
7694 "typeDescriptions": {
7695 "typeIdentifier": "t_uint256",
7696 "typeString": "uint256"
7697 },
7698 "typeName": {
7699 "id": 51,
7700 "name": "uint",
7701 "nodeType": "ElementaryTypeName",
7702 "src": "901:4:0",
7703 "typeDescriptions": {
7704 "typeIdentifier": "t_uint256",
7705 "typeString": "uint256"
7706 }
7707 },
7708 "value": null,
7709 "visibility": "internal"
7710 }
7711 ],
7712 "src": "858:54:0"
7713 },
7714 "src": "844:69:0"
7715 },
7716 {
7717 "body": {
7718 "id": 86,
7719 "nodeType": "Block",
7720 "src": "940:423:0",
7721 "statements": [
7722 {
7723 "assignments": [
7724 58
7725 ],
7726 "declarations": [
7727 {
7728 "constant": false,
7729 "id": 58,
7730 "name": "chainId",
7731 "nodeType": "VariableDeclaration",
7732 "scope": 86,
7733 "src": "950:12:0",
7734 "stateVariable": false,
7735 "storageLocation": "default",
7736 "typeDescriptions": {
7737 "typeIdentifier": "t_uint256",
7738 "typeString": "uint256"
7739 },
7740 "typeName": {
7741 "id": 57,
7742 "name": "uint",
7743 "nodeType": "ElementaryTypeName",
7744 "src": "950:4:0",
7745 "typeDescriptions": {
7746 "typeIdentifier": "t_uint256",
7747 "typeString": "uint256"
7748 }
7749 },
7750 "value": null,
7751 "visibility": "internal"
7752 }
7753 ],
7754 "id": 59,
7755 "initialValue": null,
7756 "nodeType": "VariableDeclarationStatement",
7757 "src": "950:12:0"
7758 },
7759 {
7760 "externalReferences": [
7761 {
7762 "chainId": {
7763 "declaration": 58,
7764 "isOffset": false,
7765 "isSlot": false,
7766 "src": "995:7:0",
7767 "valueSize": 1
7768 }
7769 }
7770 ],
7771 "id": 60,
7772 "nodeType": "InlineAssembly",
7773 "operations": "{ chainId := chainid() }",
7774 "src": "972:51:0"
7775 },
7776 {
7777 "expression": {
7778 "argumentTypes": null,
7779 "id": 84,
7780 "isConstant": false,
7781 "isLValue": false,
7782 "isPure": false,
7783 "lValueRequested": false,
7784 "leftHandSide": {
7785 "argumentTypes": null,
7786 "id": 61,
7787 "name": "DOMAIN_SEPARATOR",
7788 "nodeType": "Identifier",
7789 "overloadedDeclarations": [],
7790 "referencedDeclaration": 31,
7791 "src": "1032:16:0",
7792 "typeDescriptions": {
7793 "typeIdentifier": "t_bytes32",
7794 "typeString": "bytes32"
7795 }
7796 },
7797 "nodeType": "Assignment",
7798 "operator": "=",
7799 "rightHandSide": {
7800 "argumentTypes": null,
7801 "arguments": [
7802 {
7803 "argumentTypes": null,
7804 "arguments": [
7805 {
7806 "argumentTypes": null,
7807 "arguments": [
7808 {
7809 "argumentTypes": null,
7810 "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429",
7811 "id": 66,
7812 "isConstant": false,
7813 "isLValue": false,
7814 "isPure": true,
7815 "kind": "string",
7816 "lValueRequested": false,
7817 "nodeType": "Literal",
7818 "src": "1112:84:0",
7819 "subdenomination": null,
7820 "typeDescriptions": {
7821 "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f",
7822 "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""
7823 },
7824 "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
7825 }
7826 ],
7827 "expression": {
7828 "argumentTypes": [
7829 {
7830 "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f",
7831 "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""
7832 }
7833 ],
7834 "id": 65,
7835 "name": "keccak256",
7836 "nodeType": "Identifier",
7837 "overloadedDeclarations": [],
7838 "referencedDeclaration": 2611,
7839 "src": "1102:9:0",
7840 "typeDescriptions": {
7841 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
7842 "typeString": "function (bytes memory) pure returns (bytes32)"
7843 }
7844 },
7845 "id": 67,
7846 "isConstant": false,
7847 "isLValue": false,
7848 "isPure": true,
7849 "kind": "functionCall",
7850 "lValueRequested": false,
7851 "names": [],
7852 "nodeType": "FunctionCall",
7853 "src": "1102:95:0",
7854 "typeDescriptions": {
7855 "typeIdentifier": "t_bytes32",
7856 "typeString": "bytes32"
7857 }
7858 },
7859 {
7860 "argumentTypes": null,
7861 "arguments": [
7862 {
7863 "argumentTypes": null,
7864 "arguments": [
7865 {
7866 "argumentTypes": null,
7867 "id": 70,
7868 "name": "name",
7869 "nodeType": "Identifier",
7870 "overloadedDeclarations": [],
7871 "referencedDeclaration": 11,
7872 "src": "1231:4:0",
7873 "typeDescriptions": {
7874 "typeIdentifier": "t_string_memory",
7875 "typeString": "string memory"
7876 }
7877 }
7878 ],
7879 "expression": {
7880 "argumentTypes": [
7881 {
7882 "typeIdentifier": "t_string_memory",
7883 "typeString": "string memory"
7884 }
7885 ],
7886 "id": 69,
7887 "isConstant": false,
7888 "isLValue": false,
7889 "isPure": true,
7890 "lValueRequested": false,
7891 "nodeType": "ElementaryTypeNameExpression",
7892 "src": "1225:5:0",
7893 "typeDescriptions": {
7894 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
7895 "typeString": "type(bytes storage pointer)"
7896 },
7897 "typeName": "bytes"
7898 },
7899 "id": 71,
7900 "isConstant": false,
7901 "isLValue": false,
7902 "isPure": true,
7903 "kind": "typeConversion",
7904 "lValueRequested": false,
7905 "names": [],
7906 "nodeType": "FunctionCall",
7907 "src": "1225:11:0",
7908 "typeDescriptions": {
7909 "typeIdentifier": "t_bytes_memory_ptr",
7910 "typeString": "bytes memory"
7911 }
7912 }
7913 ],
7914 "expression": {
7915 "argumentTypes": [
7916 {
7917 "typeIdentifier": "t_bytes_memory_ptr",
7918 "typeString": "bytes memory"
7919 }
7920 ],
7921 "id": 68,
7922 "name": "keccak256",
7923 "nodeType": "Identifier",
7924 "overloadedDeclarations": [],
7925 "referencedDeclaration": 2611,
7926 "src": "1215:9:0",
7927 "typeDescriptions": {
7928 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
7929 "typeString": "function (bytes memory) pure returns (bytes32)"
7930 }
7931 },
7932 "id": 72,
7933 "isConstant": false,
7934 "isLValue": false,
7935 "isPure": true,
7936 "kind": "functionCall",
7937 "lValueRequested": false,
7938 "names": [],
7939 "nodeType": "FunctionCall",
7940 "src": "1215:22:0",
7941 "typeDescriptions": {
7942 "typeIdentifier": "t_bytes32",
7943 "typeString": "bytes32"
7944 }
7945 },
7946 {
7947 "argumentTypes": null,
7948 "arguments": [
7949 {
7950 "argumentTypes": null,
7951 "arguments": [
7952 {
7953 "argumentTypes": null,
7954 "hexValue": "31",
7955 "id": 75,
7956 "isConstant": false,
7957 "isLValue": false,
7958 "isPure": true,
7959 "kind": "string",
7960 "lValueRequested": false,
7961 "nodeType": "Literal",
7962 "src": "1271:3:0",
7963 "subdenomination": null,
7964 "typeDescriptions": {
7965 "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6",
7966 "typeString": "literal_string \"1\""
7967 },
7968 "value": "1"
7969 }
7970 ],
7971 "expression": {
7972 "argumentTypes": [
7973 {
7974 "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6",
7975 "typeString": "literal_string \"1\""
7976 }
7977 ],
7978 "id": 74,
7979 "isConstant": false,
7980 "isLValue": false,
7981 "isPure": true,
7982 "lValueRequested": false,
7983 "nodeType": "ElementaryTypeNameExpression",
7984 "src": "1265:5:0",
7985 "typeDescriptions": {
7986 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
7987 "typeString": "type(bytes storage pointer)"
7988 },
7989 "typeName": "bytes"
7990 },
7991 "id": 76,
7992 "isConstant": false,
7993 "isLValue": false,
7994 "isPure": true,
7995 "kind": "typeConversion",
7996 "lValueRequested": false,
7997 "names": [],
7998 "nodeType": "FunctionCall",
7999 "src": "1265:10:0",
8000 "typeDescriptions": {
8001 "typeIdentifier": "t_bytes_memory_ptr",
8002 "typeString": "bytes memory"
8003 }
8004 }
8005 ],
8006 "expression": {
8007 "argumentTypes": [
8008 {
8009 "typeIdentifier": "t_bytes_memory_ptr",
8010 "typeString": "bytes memory"
8011 }
8012 ],
8013 "id": 73,
8014 "name": "keccak256",
8015 "nodeType": "Identifier",
8016 "overloadedDeclarations": [],
8017 "referencedDeclaration": 2611,
8018 "src": "1255:9:0",
8019 "typeDescriptions": {
8020 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
8021 "typeString": "function (bytes memory) pure returns (bytes32)"
8022 }
8023 },
8024 "id": 77,
8025 "isConstant": false,
8026 "isLValue": false,
8027 "isPure": true,
8028 "kind": "functionCall",
8029 "lValueRequested": false,
8030 "names": [],
8031 "nodeType": "FunctionCall",
8032 "src": "1255:21:0",
8033 "typeDescriptions": {
8034 "typeIdentifier": "t_bytes32",
8035 "typeString": "bytes32"
8036 }
8037 },
8038 {
8039 "argumentTypes": null,
8040 "id": 78,
8041 "name": "chainId",
8042 "nodeType": "Identifier",
8043 "overloadedDeclarations": [],
8044 "referencedDeclaration": 58,
8045 "src": "1294:7:0",
8046 "typeDescriptions": {
8047 "typeIdentifier": "t_uint256",
8048 "typeString": "uint256"
8049 }
8050 },
8051 {
8052 "argumentTypes": null,
8053 "arguments": [
8054 {
8055 "argumentTypes": null,
8056 "id": 80,
8057 "name": "this",
8058 "nodeType": "Identifier",
8059 "overloadedDeclarations": [],
8060 "referencedDeclaration": 2635,
8061 "src": "1327:4:0",
8062 "typeDescriptions": {
8063 "typeIdentifier": "t_contract$_UniswapV2ERC20_$384",
8064 "typeString": "contract UniswapV2ERC20"
8065 }
8066 }
8067 ],
8068 "expression": {
8069 "argumentTypes": [
8070 {
8071 "typeIdentifier": "t_contract$_UniswapV2ERC20_$384",
8072 "typeString": "contract UniswapV2ERC20"
8073 }
8074 ],
8075 "id": 79,
8076 "isConstant": false,
8077 "isLValue": false,
8078 "isPure": true,
8079 "lValueRequested": false,
8080 "nodeType": "ElementaryTypeNameExpression",
8081 "src": "1319:7:0",
8082 "typeDescriptions": {
8083 "typeIdentifier": "t_type$_t_address_$",
8084 "typeString": "type(address)"
8085 },
8086 "typeName": "address"
8087 },
8088 "id": 81,
8089 "isConstant": false,
8090 "isLValue": false,
8091 "isPure": false,
8092 "kind": "typeConversion",
8093 "lValueRequested": false,
8094 "names": [],
8095 "nodeType": "FunctionCall",
8096 "src": "1319:13:0",
8097 "typeDescriptions": {
8098 "typeIdentifier": "t_address",
8099 "typeString": "address"
8100 }
8101 }
8102 ],
8103 "expression": {
8104 "argumentTypes": [
8105 {
8106 "typeIdentifier": "t_bytes32",
8107 "typeString": "bytes32"
8108 },
8109 {
8110 "typeIdentifier": "t_bytes32",
8111 "typeString": "bytes32"
8112 },
8113 {
8114 "typeIdentifier": "t_bytes32",
8115 "typeString": "bytes32"
8116 },
8117 {
8118 "typeIdentifier": "t_uint256",
8119 "typeString": "uint256"
8120 },
8121 {
8122 "typeIdentifier": "t_address",
8123 "typeString": "address"
8124 }
8125 ],
8126 "expression": {
8127 "argumentTypes": null,
8128 "id": 63,
8129 "name": "abi",
8130 "nodeType": "Identifier",
8131 "overloadedDeclarations": [],
8132 "referencedDeclaration": 2604,
8133 "src": "1074:3:0",
8134 "typeDescriptions": {
8135 "typeIdentifier": "t_magic_abi",
8136 "typeString": "abi"
8137 }
8138 },
8139 "id": 64,
8140 "isConstant": false,
8141 "isLValue": false,
8142 "isPure": true,
8143 "lValueRequested": false,
8144 "memberName": "encode",
8145 "nodeType": "MemberAccess",
8146 "referencedDeclaration": null,
8147 "src": "1074:10:0",
8148 "typeDescriptions": {
8149 "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
8150 "typeString": "function () pure returns (bytes memory)"
8151 }
8152 },
8153 "id": 82,
8154 "isConstant": false,
8155 "isLValue": false,
8156 "isPure": false,
8157 "kind": "functionCall",
8158 "lValueRequested": false,
8159 "names": [],
8160 "nodeType": "FunctionCall",
8161 "src": "1074:272:0",
8162 "typeDescriptions": {
8163 "typeIdentifier": "t_bytes_memory_ptr",
8164 "typeString": "bytes memory"
8165 }
8166 }
8167 ],
8168 "expression": {
8169 "argumentTypes": [
8170 {
8171 "typeIdentifier": "t_bytes_memory_ptr",
8172 "typeString": "bytes memory"
8173 }
8174 ],
8175 "id": 62,
8176 "name": "keccak256",
8177 "nodeType": "Identifier",
8178 "overloadedDeclarations": [],
8179 "referencedDeclaration": 2611,
8180 "src": "1051:9:0",
8181 "typeDescriptions": {
8182 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
8183 "typeString": "function (bytes memory) pure returns (bytes32)"
8184 }
8185 },
8186 "id": 83,
8187 "isConstant": false,
8188 "isLValue": false,
8189 "isPure": false,
8190 "kind": "functionCall",
8191 "lValueRequested": false,
8192 "names": [],
8193 "nodeType": "FunctionCall",
8194 "src": "1051:305:0",
8195 "typeDescriptions": {
8196 "typeIdentifier": "t_bytes32",
8197 "typeString": "bytes32"
8198 }
8199 },
8200 "src": "1032:324:0",
8201 "typeDescriptions": {
8202 "typeIdentifier": "t_bytes32",
8203 "typeString": "bytes32"
8204 }
8205 },
8206 "id": 85,
8207 "nodeType": "ExpressionStatement",
8208 "src": "1032:324:0"
8209 }
8210 ]
8211 },
8212 "documentation": null,
8213 "id": 87,
8214 "implemented": true,
8215 "kind": "constructor",
8216 "modifiers": [],
8217 "name": "",
8218 "nodeType": "FunctionDefinition",
8219 "parameters": {
8220 "id": 55,
8221 "nodeType": "ParameterList",
8222 "parameters": [],
8223 "src": "930:2:0"
8224 },
8225 "returnParameters": {
8226 "id": 56,
8227 "nodeType": "ParameterList",
8228 "parameters": [],
8229 "src": "940:0:0"
8230 },
8231 "scope": 384,
8232 "src": "919:444:0",
8233 "stateMutability": "nonpayable",
8234 "superFunction": null,
8235 "visibility": "public"
8236 },
8237 {
8238 "body": {
8239 "id": 120,
8240 "nodeType": "Block",
8241 "src": "1417:149:0",
8242 "statements": [
8243 {
8244 "expression": {
8245 "argumentTypes": null,
8246 "id": 99,
8247 "isConstant": false,
8248 "isLValue": false,
8249 "isPure": false,
8250 "lValueRequested": false,
8251 "leftHandSide": {
8252 "argumentTypes": null,
8253 "id": 94,
8254 "name": "totalSupply",
8255 "nodeType": "Identifier",
8256 "overloadedDeclarations": [],
8257 "referencedDeclaration": 19,
8258 "src": "1427:11:0",
8259 "typeDescriptions": {
8260 "typeIdentifier": "t_uint256",
8261 "typeString": "uint256"
8262 }
8263 },
8264 "nodeType": "Assignment",
8265 "operator": "=",
8266 "rightHandSide": {
8267 "argumentTypes": null,
8268 "arguments": [
8269 {
8270 "argumentTypes": null,
8271 "id": 97,
8272 "name": "value",
8273 "nodeType": "Identifier",
8274 "overloadedDeclarations": [],
8275 "referencedDeclaration": 91,
8276 "src": "1457:5:0",
8277 "typeDescriptions": {
8278 "typeIdentifier": "t_uint256",
8279 "typeString": "uint256"
8280 }
8281 }
8282 ],
8283 "expression": {
8284 "argumentTypes": [
8285 {
8286 "typeIdentifier": "t_uint256",
8287 "typeString": "uint256"
8288 }
8289 ],
8290 "expression": {
8291 "argumentTypes": null,
8292 "id": 95,
8293 "name": "totalSupply",
8294 "nodeType": "Identifier",
8295 "overloadedDeclarations": [],
8296 "referencedDeclaration": 19,
8297 "src": "1441:11:0",
8298 "typeDescriptions": {
8299 "typeIdentifier": "t_uint256",
8300 "typeString": "uint256"
8301 }
8302 },
8303 "id": 96,
8304 "isConstant": false,
8305 "isLValue": false,
8306 "isPure": false,
8307 "lValueRequested": false,
8308 "memberName": "add",
8309 "nodeType": "MemberAccess",
8310 "referencedDeclaration": 2491,
8311 "src": "1441:15:0",
8312 "typeDescriptions": {
8313 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8314 "typeString": "function (uint256,uint256) pure returns (uint256)"
8315 }
8316 },
8317 "id": 98,
8318 "isConstant": false,
8319 "isLValue": false,
8320 "isPure": false,
8321 "kind": "functionCall",
8322 "lValueRequested": false,
8323 "names": [],
8324 "nodeType": "FunctionCall",
8325 "src": "1441:22:0",
8326 "typeDescriptions": {
8327 "typeIdentifier": "t_uint256",
8328 "typeString": "uint256"
8329 }
8330 },
8331 "src": "1427:36:0",
8332 "typeDescriptions": {
8333 "typeIdentifier": "t_uint256",
8334 "typeString": "uint256"
8335 }
8336 },
8337 "id": 100,
8338 "nodeType": "ExpressionStatement",
8339 "src": "1427:36:0"
8340 },
8341 {
8342 "expression": {
8343 "argumentTypes": null,
8344 "id": 110,
8345 "isConstant": false,
8346 "isLValue": false,
8347 "isPure": false,
8348 "lValueRequested": false,
8349 "leftHandSide": {
8350 "argumentTypes": null,
8351 "baseExpression": {
8352 "argumentTypes": null,
8353 "id": 101,
8354 "name": "balanceOf",
8355 "nodeType": "Identifier",
8356 "overloadedDeclarations": [],
8357 "referencedDeclaration": 23,
8358 "src": "1473:9:0",
8359 "typeDescriptions": {
8360 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8361 "typeString": "mapping(address => uint256)"
8362 }
8363 },
8364 "id": 103,
8365 "indexExpression": {
8366 "argumentTypes": null,
8367 "id": 102,
8368 "name": "to",
8369 "nodeType": "Identifier",
8370 "overloadedDeclarations": [],
8371 "referencedDeclaration": 89,
8372 "src": "1483:2:0",
8373 "typeDescriptions": {
8374 "typeIdentifier": "t_address",
8375 "typeString": "address"
8376 }
8377 },
8378 "isConstant": false,
8379 "isLValue": true,
8380 "isPure": false,
8381 "lValueRequested": true,
8382 "nodeType": "IndexAccess",
8383 "src": "1473:13:0",
8384 "typeDescriptions": {
8385 "typeIdentifier": "t_uint256",
8386 "typeString": "uint256"
8387 }
8388 },
8389 "nodeType": "Assignment",
8390 "operator": "=",
8391 "rightHandSide": {
8392 "argumentTypes": null,
8393 "arguments": [
8394 {
8395 "argumentTypes": null,
8396 "id": 108,
8397 "name": "value",
8398 "nodeType": "Identifier",
8399 "overloadedDeclarations": [],
8400 "referencedDeclaration": 91,
8401 "src": "1507:5:0",
8402 "typeDescriptions": {
8403 "typeIdentifier": "t_uint256",
8404 "typeString": "uint256"
8405 }
8406 }
8407 ],
8408 "expression": {
8409 "argumentTypes": [
8410 {
8411 "typeIdentifier": "t_uint256",
8412 "typeString": "uint256"
8413 }
8414 ],
8415 "expression": {
8416 "argumentTypes": null,
8417 "baseExpression": {
8418 "argumentTypes": null,
8419 "id": 104,
8420 "name": "balanceOf",
8421 "nodeType": "Identifier",
8422 "overloadedDeclarations": [],
8423 "referencedDeclaration": 23,
8424 "src": "1489:9:0",
8425 "typeDescriptions": {
8426 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8427 "typeString": "mapping(address => uint256)"
8428 }
8429 },
8430 "id": 106,
8431 "indexExpression": {
8432 "argumentTypes": null,
8433 "id": 105,
8434 "name": "to",
8435 "nodeType": "Identifier",
8436 "overloadedDeclarations": [],
8437 "referencedDeclaration": 89,
8438 "src": "1499:2:0",
8439 "typeDescriptions": {
8440 "typeIdentifier": "t_address",
8441 "typeString": "address"
8442 }
8443 },
8444 "isConstant": false,
8445 "isLValue": true,
8446 "isPure": false,
8447 "lValueRequested": false,
8448 "nodeType": "IndexAccess",
8449 "src": "1489:13:0",
8450 "typeDescriptions": {
8451 "typeIdentifier": "t_uint256",
8452 "typeString": "uint256"
8453 }
8454 },
8455 "id": 107,
8456 "isConstant": false,
8457 "isLValue": false,
8458 "isPure": false,
8459 "lValueRequested": false,
8460 "memberName": "add",
8461 "nodeType": "MemberAccess",
8462 "referencedDeclaration": 2491,
8463 "src": "1489:17:0",
8464 "typeDescriptions": {
8465 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8466 "typeString": "function (uint256,uint256) pure returns (uint256)"
8467 }
8468 },
8469 "id": 109,
8470 "isConstant": false,
8471 "isLValue": false,
8472 "isPure": false,
8473 "kind": "functionCall",
8474 "lValueRequested": false,
8475 "names": [],
8476 "nodeType": "FunctionCall",
8477 "src": "1489:24:0",
8478 "typeDescriptions": {
8479 "typeIdentifier": "t_uint256",
8480 "typeString": "uint256"
8481 }
8482 },
8483 "src": "1473:40:0",
8484 "typeDescriptions": {
8485 "typeIdentifier": "t_uint256",
8486 "typeString": "uint256"
8487 }
8488 },
8489 "id": 111,
8490 "nodeType": "ExpressionStatement",
8491 "src": "1473:40:0"
8492 },
8493 {
8494 "eventCall": {
8495 "argumentTypes": null,
8496 "arguments": [
8497 {
8498 "argumentTypes": null,
8499 "arguments": [
8500 {
8501 "argumentTypes": null,
8502 "hexValue": "30",
8503 "id": 114,
8504 "isConstant": false,
8505 "isLValue": false,
8506 "isPure": true,
8507 "kind": "number",
8508 "lValueRequested": false,
8509 "nodeType": "Literal",
8510 "src": "1545:1:0",
8511 "subdenomination": null,
8512 "typeDescriptions": {
8513 "typeIdentifier": "t_rational_0_by_1",
8514 "typeString": "int_const 0"
8515 },
8516 "value": "0"
8517 }
8518 ],
8519 "expression": {
8520 "argumentTypes": [
8521 {
8522 "typeIdentifier": "t_rational_0_by_1",
8523 "typeString": "int_const 0"
8524 }
8525 ],
8526 "id": 113,
8527 "isConstant": false,
8528 "isLValue": false,
8529 "isPure": true,
8530 "lValueRequested": false,
8531 "nodeType": "ElementaryTypeNameExpression",
8532 "src": "1537:7:0",
8533 "typeDescriptions": {
8534 "typeIdentifier": "t_type$_t_address_$",
8535 "typeString": "type(address)"
8536 },
8537 "typeName": "address"
8538 },
8539 "id": 115,
8540 "isConstant": false,
8541 "isLValue": false,
8542 "isPure": true,
8543 "kind": "typeConversion",
8544 "lValueRequested": false,
8545 "names": [],
8546 "nodeType": "FunctionCall",
8547 "src": "1537:10:0",
8548 "typeDescriptions": {
8549 "typeIdentifier": "t_address_payable",
8550 "typeString": "address payable"
8551 }
8552 },
8553 {
8554 "argumentTypes": null,
8555 "id": 116,
8556 "name": "to",
8557 "nodeType": "Identifier",
8558 "overloadedDeclarations": [],
8559 "referencedDeclaration": 89,
8560 "src": "1549:2:0",
8561 "typeDescriptions": {
8562 "typeIdentifier": "t_address",
8563 "typeString": "address"
8564 }
8565 },
8566 {
8567 "argumentTypes": null,
8568 "id": 117,
8569 "name": "value",
8570 "nodeType": "Identifier",
8571 "overloadedDeclarations": [],
8572 "referencedDeclaration": 91,
8573 "src": "1553:5:0",
8574 "typeDescriptions": {
8575 "typeIdentifier": "t_uint256",
8576 "typeString": "uint256"
8577 }
8578 }
8579 ],
8580 "expression": {
8581 "argumentTypes": [
8582 {
8583 "typeIdentifier": "t_address_payable",
8584 "typeString": "address payable"
8585 },
8586 {
8587 "typeIdentifier": "t_address",
8588 "typeString": "address"
8589 },
8590 {
8591 "typeIdentifier": "t_uint256",
8592 "typeString": "uint256"
8593 }
8594 ],
8595 "id": 112,
8596 "name": "Transfer",
8597 "nodeType": "Identifier",
8598 "overloadedDeclarations": [
8599 54
8600 ],
8601 "referencedDeclaration": 54,
8602 "src": "1528:8:0",
8603 "typeDescriptions": {
8604 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
8605 "typeString": "function (address,address,uint256)"
8606 }
8607 },
8608 "id": 118,
8609 "isConstant": false,
8610 "isLValue": false,
8611 "isPure": false,
8612 "kind": "functionCall",
8613 "lValueRequested": false,
8614 "names": [],
8615 "nodeType": "FunctionCall",
8616 "src": "1528:31:0",
8617 "typeDescriptions": {
8618 "typeIdentifier": "t_tuple$__$",
8619 "typeString": "tuple()"
8620 }
8621 },
8622 "id": 119,
8623 "nodeType": "EmitStatement",
8624 "src": "1523:36:0"
8625 }
8626 ]
8627 },
8628 "documentation": null,
8629 "id": 121,
8630 "implemented": true,
8631 "kind": "function",
8632 "modifiers": [],
8633 "name": "_mint",
8634 "nodeType": "FunctionDefinition",
8635 "parameters": {
8636 "id": 92,
8637 "nodeType": "ParameterList",
8638 "parameters": [
8639 {
8640 "constant": false,
8641 "id": 89,
8642 "name": "to",
8643 "nodeType": "VariableDeclaration",
8644 "scope": 121,
8645 "src": "1384:10:0",
8646 "stateVariable": false,
8647 "storageLocation": "default",
8648 "typeDescriptions": {
8649 "typeIdentifier": "t_address",
8650 "typeString": "address"
8651 },
8652 "typeName": {
8653 "id": 88,
8654 "name": "address",
8655 "nodeType": "ElementaryTypeName",
8656 "src": "1384:7:0",
8657 "stateMutability": "nonpayable",
8658 "typeDescriptions": {
8659 "typeIdentifier": "t_address",
8660 "typeString": "address"
8661 }
8662 },
8663 "value": null,
8664 "visibility": "internal"
8665 },
8666 {
8667 "constant": false,
8668 "id": 91,
8669 "name": "value",
8670 "nodeType": "VariableDeclaration",
8671 "scope": 121,
8672 "src": "1396:10:0",
8673 "stateVariable": false,
8674 "storageLocation": "default",
8675 "typeDescriptions": {
8676 "typeIdentifier": "t_uint256",
8677 "typeString": "uint256"
8678 },
8679 "typeName": {
8680 "id": 90,
8681 "name": "uint",
8682 "nodeType": "ElementaryTypeName",
8683 "src": "1396:4:0",
8684 "typeDescriptions": {
8685 "typeIdentifier": "t_uint256",
8686 "typeString": "uint256"
8687 }
8688 },
8689 "value": null,
8690 "visibility": "internal"
8691 }
8692 ],
8693 "src": "1383:24:0"
8694 },
8695 "returnParameters": {
8696 "id": 93,
8697 "nodeType": "ParameterList",
8698 "parameters": [],
8699 "src": "1417:0:0"
8700 },
8701 "scope": 384,
8702 "src": "1369:197:0",
8703 "stateMutability": "nonpayable",
8704 "superFunction": null,
8705 "visibility": "internal"
8706 },
8707 {
8708 "body": {
8709 "id": 154,
8710 "nodeType": "Block",
8711 "src": "1622:155:0",
8712 "statements": [
8713 {
8714 "expression": {
8715 "argumentTypes": null,
8716 "id": 137,
8717 "isConstant": false,
8718 "isLValue": false,
8719 "isPure": false,
8720 "lValueRequested": false,
8721 "leftHandSide": {
8722 "argumentTypes": null,
8723 "baseExpression": {
8724 "argumentTypes": null,
8725 "id": 128,
8726 "name": "balanceOf",
8727 "nodeType": "Identifier",
8728 "overloadedDeclarations": [],
8729 "referencedDeclaration": 23,
8730 "src": "1632:9:0",
8731 "typeDescriptions": {
8732 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8733 "typeString": "mapping(address => uint256)"
8734 }
8735 },
8736 "id": 130,
8737 "indexExpression": {
8738 "argumentTypes": null,
8739 "id": 129,
8740 "name": "from",
8741 "nodeType": "Identifier",
8742 "overloadedDeclarations": [],
8743 "referencedDeclaration": 123,
8744 "src": "1642:4:0",
8745 "typeDescriptions": {
8746 "typeIdentifier": "t_address",
8747 "typeString": "address"
8748 }
8749 },
8750 "isConstant": false,
8751 "isLValue": true,
8752 "isPure": false,
8753 "lValueRequested": true,
8754 "nodeType": "IndexAccess",
8755 "src": "1632:15:0",
8756 "typeDescriptions": {
8757 "typeIdentifier": "t_uint256",
8758 "typeString": "uint256"
8759 }
8760 },
8761 "nodeType": "Assignment",
8762 "operator": "=",
8763 "rightHandSide": {
8764 "argumentTypes": null,
8765 "arguments": [
8766 {
8767 "argumentTypes": null,
8768 "id": 135,
8769 "name": "value",
8770 "nodeType": "Identifier",
8771 "overloadedDeclarations": [],
8772 "referencedDeclaration": 125,
8773 "src": "1670:5:0",
8774 "typeDescriptions": {
8775 "typeIdentifier": "t_uint256",
8776 "typeString": "uint256"
8777 }
8778 }
8779 ],
8780 "expression": {
8781 "argumentTypes": [
8782 {
8783 "typeIdentifier": "t_uint256",
8784 "typeString": "uint256"
8785 }
8786 ],
8787 "expression": {
8788 "argumentTypes": null,
8789 "baseExpression": {
8790 "argumentTypes": null,
8791 "id": 131,
8792 "name": "balanceOf",
8793 "nodeType": "Identifier",
8794 "overloadedDeclarations": [],
8795 "referencedDeclaration": 23,
8796 "src": "1650:9:0",
8797 "typeDescriptions": {
8798 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
8799 "typeString": "mapping(address => uint256)"
8800 }
8801 },
8802 "id": 133,
8803 "indexExpression": {
8804 "argumentTypes": null,
8805 "id": 132,
8806 "name": "from",
8807 "nodeType": "Identifier",
8808 "overloadedDeclarations": [],
8809 "referencedDeclaration": 123,
8810 "src": "1660:4:0",
8811 "typeDescriptions": {
8812 "typeIdentifier": "t_address",
8813 "typeString": "address"
8814 }
8815 },
8816 "isConstant": false,
8817 "isLValue": true,
8818 "isPure": false,
8819 "lValueRequested": false,
8820 "nodeType": "IndexAccess",
8821 "src": "1650:15:0",
8822 "typeDescriptions": {
8823 "typeIdentifier": "t_uint256",
8824 "typeString": "uint256"
8825 }
8826 },
8827 "id": 134,
8828 "isConstant": false,
8829 "isLValue": false,
8830 "isPure": false,
8831 "lValueRequested": false,
8832 "memberName": "sub",
8833 "nodeType": "MemberAccess",
8834 "referencedDeclaration": 2513,
8835 "src": "1650:19:0",
8836 "typeDescriptions": {
8837 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8838 "typeString": "function (uint256,uint256) pure returns (uint256)"
8839 }
8840 },
8841 "id": 136,
8842 "isConstant": false,
8843 "isLValue": false,
8844 "isPure": false,
8845 "kind": "functionCall",
8846 "lValueRequested": false,
8847 "names": [],
8848 "nodeType": "FunctionCall",
8849 "src": "1650:26:0",
8850 "typeDescriptions": {
8851 "typeIdentifier": "t_uint256",
8852 "typeString": "uint256"
8853 }
8854 },
8855 "src": "1632:44:0",
8856 "typeDescriptions": {
8857 "typeIdentifier": "t_uint256",
8858 "typeString": "uint256"
8859 }
8860 },
8861 "id": 138,
8862 "nodeType": "ExpressionStatement",
8863 "src": "1632:44:0"
8864 },
8865 {
8866 "expression": {
8867 "argumentTypes": null,
8868 "id": 144,
8869 "isConstant": false,
8870 "isLValue": false,
8871 "isPure": false,
8872 "lValueRequested": false,
8873 "leftHandSide": {
8874 "argumentTypes": null,
8875 "id": 139,
8876 "name": "totalSupply",
8877 "nodeType": "Identifier",
8878 "overloadedDeclarations": [],
8879 "referencedDeclaration": 19,
8880 "src": "1686:11:0",
8881 "typeDescriptions": {
8882 "typeIdentifier": "t_uint256",
8883 "typeString": "uint256"
8884 }
8885 },
8886 "nodeType": "Assignment",
8887 "operator": "=",
8888 "rightHandSide": {
8889 "argumentTypes": null,
8890 "arguments": [
8891 {
8892 "argumentTypes": null,
8893 "id": 142,
8894 "name": "value",
8895 "nodeType": "Identifier",
8896 "overloadedDeclarations": [],
8897 "referencedDeclaration": 125,
8898 "src": "1716:5:0",
8899 "typeDescriptions": {
8900 "typeIdentifier": "t_uint256",
8901 "typeString": "uint256"
8902 }
8903 }
8904 ],
8905 "expression": {
8906 "argumentTypes": [
8907 {
8908 "typeIdentifier": "t_uint256",
8909 "typeString": "uint256"
8910 }
8911 ],
8912 "expression": {
8913 "argumentTypes": null,
8914 "id": 140,
8915 "name": "totalSupply",
8916 "nodeType": "Identifier",
8917 "overloadedDeclarations": [],
8918 "referencedDeclaration": 19,
8919 "src": "1700:11:0",
8920 "typeDescriptions": {
8921 "typeIdentifier": "t_uint256",
8922 "typeString": "uint256"
8923 }
8924 },
8925 "id": 141,
8926 "isConstant": false,
8927 "isLValue": false,
8928 "isPure": false,
8929 "lValueRequested": false,
8930 "memberName": "sub",
8931 "nodeType": "MemberAccess",
8932 "referencedDeclaration": 2513,
8933 "src": "1700:15:0",
8934 "typeDescriptions": {
8935 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
8936 "typeString": "function (uint256,uint256) pure returns (uint256)"
8937 }
8938 },
8939 "id": 143,
8940 "isConstant": false,
8941 "isLValue": false,
8942 "isPure": false,
8943 "kind": "functionCall",
8944 "lValueRequested": false,
8945 "names": [],
8946 "nodeType": "FunctionCall",
8947 "src": "1700:22:0",
8948 "typeDescriptions": {
8949 "typeIdentifier": "t_uint256",
8950 "typeString": "uint256"
8951 }
8952 },
8953 "src": "1686:36:0",
8954 "typeDescriptions": {
8955 "typeIdentifier": "t_uint256",
8956 "typeString": "uint256"
8957 }
8958 },
8959 "id": 145,
8960 "nodeType": "ExpressionStatement",
8961 "src": "1686:36:0"
8962 },
8963 {
8964 "eventCall": {
8965 "argumentTypes": null,
8966 "arguments": [
8967 {
8968 "argumentTypes": null,
8969 "id": 147,
8970 "name": "from",
8971 "nodeType": "Identifier",
8972 "overloadedDeclarations": [],
8973 "referencedDeclaration": 123,
8974 "src": "1746:4:0",
8975 "typeDescriptions": {
8976 "typeIdentifier": "t_address",
8977 "typeString": "address"
8978 }
8979 },
8980 {
8981 "argumentTypes": null,
8982 "arguments": [
8983 {
8984 "argumentTypes": null,
8985 "hexValue": "30",
8986 "id": 149,
8987 "isConstant": false,
8988 "isLValue": false,
8989 "isPure": true,
8990 "kind": "number",
8991 "lValueRequested": false,
8992 "nodeType": "Literal",
8993 "src": "1760:1:0",
8994 "subdenomination": null,
8995 "typeDescriptions": {
8996 "typeIdentifier": "t_rational_0_by_1",
8997 "typeString": "int_const 0"
8998 },
8999 "value": "0"
9000 }
9001 ],
9002 "expression": {
9003 "argumentTypes": [
9004 {
9005 "typeIdentifier": "t_rational_0_by_1",
9006 "typeString": "int_const 0"
9007 }
9008 ],
9009 "id": 148,
9010 "isConstant": false,
9011 "isLValue": false,
9012 "isPure": true,
9013 "lValueRequested": false,
9014 "nodeType": "ElementaryTypeNameExpression",
9015 "src": "1752:7:0",
9016 "typeDescriptions": {
9017 "typeIdentifier": "t_type$_t_address_$",
9018 "typeString": "type(address)"
9019 },
9020 "typeName": "address"
9021 },
9022 "id": 150,
9023 "isConstant": false,
9024 "isLValue": false,
9025 "isPure": true,
9026 "kind": "typeConversion",
9027 "lValueRequested": false,
9028 "names": [],
9029 "nodeType": "FunctionCall",
9030 "src": "1752:10:0",
9031 "typeDescriptions": {
9032 "typeIdentifier": "t_address_payable",
9033 "typeString": "address payable"
9034 }
9035 },
9036 {
9037 "argumentTypes": null,
9038 "id": 151,
9039 "name": "value",
9040 "nodeType": "Identifier",
9041 "overloadedDeclarations": [],
9042 "referencedDeclaration": 125,
9043 "src": "1764:5:0",
9044 "typeDescriptions": {
9045 "typeIdentifier": "t_uint256",
9046 "typeString": "uint256"
9047 }
9048 }
9049 ],
9050 "expression": {
9051 "argumentTypes": [
9052 {
9053 "typeIdentifier": "t_address",
9054 "typeString": "address"
9055 },
9056 {
9057 "typeIdentifier": "t_address_payable",
9058 "typeString": "address payable"
9059 },
9060 {
9061 "typeIdentifier": "t_uint256",
9062 "typeString": "uint256"
9063 }
9064 ],
9065 "id": 146,
9066 "name": "Transfer",
9067 "nodeType": "Identifier",
9068 "overloadedDeclarations": [
9069 54
9070 ],
9071 "referencedDeclaration": 54,
9072 "src": "1737:8:0",
9073 "typeDescriptions": {
9074 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
9075 "typeString": "function (address,address,uint256)"
9076 }
9077 },
9078 "id": 152,
9079 "isConstant": false,
9080 "isLValue": false,
9081 "isPure": false,
9082 "kind": "functionCall",
9083 "lValueRequested": false,
9084 "names": [],
9085 "nodeType": "FunctionCall",
9086 "src": "1737:33:0",
9087 "typeDescriptions": {
9088 "typeIdentifier": "t_tuple$__$",
9089 "typeString": "tuple()"
9090 }
9091 },
9092 "id": 153,
9093 "nodeType": "EmitStatement",
9094 "src": "1732:38:0"
9095 }
9096 ]
9097 },
9098 "documentation": null,
9099 "id": 155,
9100 "implemented": true,
9101 "kind": "function",
9102 "modifiers": [],
9103 "name": "_burn",
9104 "nodeType": "FunctionDefinition",
9105 "parameters": {
9106 "id": 126,
9107 "nodeType": "ParameterList",
9108 "parameters": [
9109 {
9110 "constant": false,
9111 "id": 123,
9112 "name": "from",
9113 "nodeType": "VariableDeclaration",
9114 "scope": 155,
9115 "src": "1587:12:0",
9116 "stateVariable": false,
9117 "storageLocation": "default",
9118 "typeDescriptions": {
9119 "typeIdentifier": "t_address",
9120 "typeString": "address"
9121 },
9122 "typeName": {
9123 "id": 122,
9124 "name": "address",
9125 "nodeType": "ElementaryTypeName",
9126 "src": "1587:7:0",
9127 "stateMutability": "nonpayable",
9128 "typeDescriptions": {
9129 "typeIdentifier": "t_address",
9130 "typeString": "address"
9131 }
9132 },
9133 "value": null,
9134 "visibility": "internal"
9135 },
9136 {
9137 "constant": false,
9138 "id": 125,
9139 "name": "value",
9140 "nodeType": "VariableDeclaration",
9141 "scope": 155,
9142 "src": "1601:10:0",
9143 "stateVariable": false,
9144 "storageLocation": "default",
9145 "typeDescriptions": {
9146 "typeIdentifier": "t_uint256",
9147 "typeString": "uint256"
9148 },
9149 "typeName": {
9150 "id": 124,
9151 "name": "uint",
9152 "nodeType": "ElementaryTypeName",
9153 "src": "1601:4:0",
9154 "typeDescriptions": {
9155 "typeIdentifier": "t_uint256",
9156 "typeString": "uint256"
9157 }
9158 },
9159 "value": null,
9160 "visibility": "internal"
9161 }
9162 ],
9163 "src": "1586:26:0"
9164 },
9165 "returnParameters": {
9166 "id": 127,
9167 "nodeType": "ParameterList",
9168 "parameters": [],
9169 "src": "1622:0:0"
9170 },
9171 "scope": 384,
9172 "src": "1572:205:0",
9173 "stateMutability": "nonpayable",
9174 "superFunction": null,
9175 "visibility": "internal"
9176 },
9177 {
9178 "body": {
9179 "id": 178,
9180 "nodeType": "Block",
9181 "src": "1853:96:0",
9182 "statements": [
9183 {
9184 "expression": {
9185 "argumentTypes": null,
9186 "id": 170,
9187 "isConstant": false,
9188 "isLValue": false,
9189 "isPure": false,
9190 "lValueRequested": false,
9191 "leftHandSide": {
9192 "argumentTypes": null,
9193 "baseExpression": {
9194 "argumentTypes": null,
9195 "baseExpression": {
9196 "argumentTypes": null,
9197 "id": 164,
9198 "name": "allowance",
9199 "nodeType": "Identifier",
9200 "overloadedDeclarations": [],
9201 "referencedDeclaration": 29,
9202 "src": "1863:9:0",
9203 "typeDescriptions": {
9204 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
9205 "typeString": "mapping(address => mapping(address => uint256))"
9206 }
9207 },
9208 "id": 167,
9209 "indexExpression": {
9210 "argumentTypes": null,
9211 "id": 165,
9212 "name": "owner",
9213 "nodeType": "Identifier",
9214 "overloadedDeclarations": [],
9215 "referencedDeclaration": 157,
9216 "src": "1873:5:0",
9217 "typeDescriptions": {
9218 "typeIdentifier": "t_address",
9219 "typeString": "address"
9220 }
9221 },
9222 "isConstant": false,
9223 "isLValue": true,
9224 "isPure": false,
9225 "lValueRequested": false,
9226 "nodeType": "IndexAccess",
9227 "src": "1863:16:0",
9228 "typeDescriptions": {
9229 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9230 "typeString": "mapping(address => uint256)"
9231 }
9232 },
9233 "id": 168,
9234 "indexExpression": {
9235 "argumentTypes": null,
9236 "id": 166,
9237 "name": "spender",
9238 "nodeType": "Identifier",
9239 "overloadedDeclarations": [],
9240 "referencedDeclaration": 159,
9241 "src": "1880:7:0",
9242 "typeDescriptions": {
9243 "typeIdentifier": "t_address",
9244 "typeString": "address"
9245 }
9246 },
9247 "isConstant": false,
9248 "isLValue": true,
9249 "isPure": false,
9250 "lValueRequested": true,
9251 "nodeType": "IndexAccess",
9252 "src": "1863:25:0",
9253 "typeDescriptions": {
9254 "typeIdentifier": "t_uint256",
9255 "typeString": "uint256"
9256 }
9257 },
9258 "nodeType": "Assignment",
9259 "operator": "=",
9260 "rightHandSide": {
9261 "argumentTypes": null,
9262 "id": 169,
9263 "name": "value",
9264 "nodeType": "Identifier",
9265 "overloadedDeclarations": [],
9266 "referencedDeclaration": 161,
9267 "src": "1891:5:0",
9268 "typeDescriptions": {
9269 "typeIdentifier": "t_uint256",
9270 "typeString": "uint256"
9271 }
9272 },
9273 "src": "1863:33:0",
9274 "typeDescriptions": {
9275 "typeIdentifier": "t_uint256",
9276 "typeString": "uint256"
9277 }
9278 },
9279 "id": 171,
9280 "nodeType": "ExpressionStatement",
9281 "src": "1863:33:0"
9282 },
9283 {
9284 "eventCall": {
9285 "argumentTypes": null,
9286 "arguments": [
9287 {
9288 "argumentTypes": null,
9289 "id": 173,
9290 "name": "owner",
9291 "nodeType": "Identifier",
9292 "overloadedDeclarations": [],
9293 "referencedDeclaration": 157,
9294 "src": "1920:5:0",
9295 "typeDescriptions": {
9296 "typeIdentifier": "t_address",
9297 "typeString": "address"
9298 }
9299 },
9300 {
9301 "argumentTypes": null,
9302 "id": 174,
9303 "name": "spender",
9304 "nodeType": "Identifier",
9305 "overloadedDeclarations": [],
9306 "referencedDeclaration": 159,
9307 "src": "1927:7:0",
9308 "typeDescriptions": {
9309 "typeIdentifier": "t_address",
9310 "typeString": "address"
9311 }
9312 },
9313 {
9314 "argumentTypes": null,
9315 "id": 175,
9316 "name": "value",
9317 "nodeType": "Identifier",
9318 "overloadedDeclarations": [],
9319 "referencedDeclaration": 161,
9320 "src": "1936:5:0",
9321 "typeDescriptions": {
9322 "typeIdentifier": "t_uint256",
9323 "typeString": "uint256"
9324 }
9325 }
9326 ],
9327 "expression": {
9328 "argumentTypes": [
9329 {
9330 "typeIdentifier": "t_address",
9331 "typeString": "address"
9332 },
9333 {
9334 "typeIdentifier": "t_address",
9335 "typeString": "address"
9336 },
9337 {
9338 "typeIdentifier": "t_uint256",
9339 "typeString": "uint256"
9340 }
9341 ],
9342 "id": 172,
9343 "name": "Approval",
9344 "nodeType": "Identifier",
9345 "overloadedDeclarations": [
9346 46
9347 ],
9348 "referencedDeclaration": 46,
9349 "src": "1911:8:0",
9350 "typeDescriptions": {
9351 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
9352 "typeString": "function (address,address,uint256)"
9353 }
9354 },
9355 "id": 176,
9356 "isConstant": false,
9357 "isLValue": false,
9358 "isPure": false,
9359 "kind": "functionCall",
9360 "lValueRequested": false,
9361 "names": [],
9362 "nodeType": "FunctionCall",
9363 "src": "1911:31:0",
9364 "typeDescriptions": {
9365 "typeIdentifier": "t_tuple$__$",
9366 "typeString": "tuple()"
9367 }
9368 },
9369 "id": 177,
9370 "nodeType": "EmitStatement",
9371 "src": "1906:36:0"
9372 }
9373 ]
9374 },
9375 "documentation": null,
9376 "id": 179,
9377 "implemented": true,
9378 "kind": "function",
9379 "modifiers": [],
9380 "name": "_approve",
9381 "nodeType": "FunctionDefinition",
9382 "parameters": {
9383 "id": 162,
9384 "nodeType": "ParameterList",
9385 "parameters": [
9386 {
9387 "constant": false,
9388 "id": 157,
9389 "name": "owner",
9390 "nodeType": "VariableDeclaration",
9391 "scope": 179,
9392 "src": "1801:13:0",
9393 "stateVariable": false,
9394 "storageLocation": "default",
9395 "typeDescriptions": {
9396 "typeIdentifier": "t_address",
9397 "typeString": "address"
9398 },
9399 "typeName": {
9400 "id": 156,
9401 "name": "address",
9402 "nodeType": "ElementaryTypeName",
9403 "src": "1801:7:0",
9404 "stateMutability": "nonpayable",
9405 "typeDescriptions": {
9406 "typeIdentifier": "t_address",
9407 "typeString": "address"
9408 }
9409 },
9410 "value": null,
9411 "visibility": "internal"
9412 },
9413 {
9414 "constant": false,
9415 "id": 159,
9416 "name": "spender",
9417 "nodeType": "VariableDeclaration",
9418 "scope": 179,
9419 "src": "1816:15:0",
9420 "stateVariable": false,
9421 "storageLocation": "default",
9422 "typeDescriptions": {
9423 "typeIdentifier": "t_address",
9424 "typeString": "address"
9425 },
9426 "typeName": {
9427 "id": 158,
9428 "name": "address",
9429 "nodeType": "ElementaryTypeName",
9430 "src": "1816:7:0",
9431 "stateMutability": "nonpayable",
9432 "typeDescriptions": {
9433 "typeIdentifier": "t_address",
9434 "typeString": "address"
9435 }
9436 },
9437 "value": null,
9438 "visibility": "internal"
9439 },
9440 {
9441 "constant": false,
9442 "id": 161,
9443 "name": "value",
9444 "nodeType": "VariableDeclaration",
9445 "scope": 179,
9446 "src": "1833:10:0",
9447 "stateVariable": false,
9448 "storageLocation": "default",
9449 "typeDescriptions": {
9450 "typeIdentifier": "t_uint256",
9451 "typeString": "uint256"
9452 },
9453 "typeName": {
9454 "id": 160,
9455 "name": "uint",
9456 "nodeType": "ElementaryTypeName",
9457 "src": "1833:4:0",
9458 "typeDescriptions": {
9459 "typeIdentifier": "t_uint256",
9460 "typeString": "uint256"
9461 }
9462 },
9463 "value": null,
9464 "visibility": "internal"
9465 }
9466 ],
9467 "src": "1800:44:0"
9468 },
9469 "returnParameters": {
9470 "id": 163,
9471 "nodeType": "ParameterList",
9472 "parameters": [],
9473 "src": "1853:0:0"
9474 },
9475 "scope": 384,
9476 "src": "1783:166:0",
9477 "stateMutability": "nonpayable",
9478 "superFunction": null,
9479 "visibility": "private"
9480 },
9481 {
9482 "body": {
9483 "id": 216,
9484 "nodeType": "Block",
9485 "src": "2020:151:0",
9486 "statements": [
9487 {
9488 "expression": {
9489 "argumentTypes": null,
9490 "id": 197,
9491 "isConstant": false,
9492 "isLValue": false,
9493 "isPure": false,
9494 "lValueRequested": false,
9495 "leftHandSide": {
9496 "argumentTypes": null,
9497 "baseExpression": {
9498 "argumentTypes": null,
9499 "id": 188,
9500 "name": "balanceOf",
9501 "nodeType": "Identifier",
9502 "overloadedDeclarations": [],
9503 "referencedDeclaration": 23,
9504 "src": "2030:9:0",
9505 "typeDescriptions": {
9506 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9507 "typeString": "mapping(address => uint256)"
9508 }
9509 },
9510 "id": 190,
9511 "indexExpression": {
9512 "argumentTypes": null,
9513 "id": 189,
9514 "name": "from",
9515 "nodeType": "Identifier",
9516 "overloadedDeclarations": [],
9517 "referencedDeclaration": 181,
9518 "src": "2040:4:0",
9519 "typeDescriptions": {
9520 "typeIdentifier": "t_address",
9521 "typeString": "address"
9522 }
9523 },
9524 "isConstant": false,
9525 "isLValue": true,
9526 "isPure": false,
9527 "lValueRequested": true,
9528 "nodeType": "IndexAccess",
9529 "src": "2030:15:0",
9530 "typeDescriptions": {
9531 "typeIdentifier": "t_uint256",
9532 "typeString": "uint256"
9533 }
9534 },
9535 "nodeType": "Assignment",
9536 "operator": "=",
9537 "rightHandSide": {
9538 "argumentTypes": null,
9539 "arguments": [
9540 {
9541 "argumentTypes": null,
9542 "id": 195,
9543 "name": "value",
9544 "nodeType": "Identifier",
9545 "overloadedDeclarations": [],
9546 "referencedDeclaration": 185,
9547 "src": "2068:5:0",
9548 "typeDescriptions": {
9549 "typeIdentifier": "t_uint256",
9550 "typeString": "uint256"
9551 }
9552 }
9553 ],
9554 "expression": {
9555 "argumentTypes": [
9556 {
9557 "typeIdentifier": "t_uint256",
9558 "typeString": "uint256"
9559 }
9560 ],
9561 "expression": {
9562 "argumentTypes": null,
9563 "baseExpression": {
9564 "argumentTypes": null,
9565 "id": 191,
9566 "name": "balanceOf",
9567 "nodeType": "Identifier",
9568 "overloadedDeclarations": [],
9569 "referencedDeclaration": 23,
9570 "src": "2048:9:0",
9571 "typeDescriptions": {
9572 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9573 "typeString": "mapping(address => uint256)"
9574 }
9575 },
9576 "id": 193,
9577 "indexExpression": {
9578 "argumentTypes": null,
9579 "id": 192,
9580 "name": "from",
9581 "nodeType": "Identifier",
9582 "overloadedDeclarations": [],
9583 "referencedDeclaration": 181,
9584 "src": "2058:4:0",
9585 "typeDescriptions": {
9586 "typeIdentifier": "t_address",
9587 "typeString": "address"
9588 }
9589 },
9590 "isConstant": false,
9591 "isLValue": true,
9592 "isPure": false,
9593 "lValueRequested": false,
9594 "nodeType": "IndexAccess",
9595 "src": "2048:15:0",
9596 "typeDescriptions": {
9597 "typeIdentifier": "t_uint256",
9598 "typeString": "uint256"
9599 }
9600 },
9601 "id": 194,
9602 "isConstant": false,
9603 "isLValue": false,
9604 "isPure": false,
9605 "lValueRequested": false,
9606 "memberName": "sub",
9607 "nodeType": "MemberAccess",
9608 "referencedDeclaration": 2513,
9609 "src": "2048:19:0",
9610 "typeDescriptions": {
9611 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
9612 "typeString": "function (uint256,uint256) pure returns (uint256)"
9613 }
9614 },
9615 "id": 196,
9616 "isConstant": false,
9617 "isLValue": false,
9618 "isPure": false,
9619 "kind": "functionCall",
9620 "lValueRequested": false,
9621 "names": [],
9622 "nodeType": "FunctionCall",
9623 "src": "2048:26:0",
9624 "typeDescriptions": {
9625 "typeIdentifier": "t_uint256",
9626 "typeString": "uint256"
9627 }
9628 },
9629 "src": "2030:44:0",
9630 "typeDescriptions": {
9631 "typeIdentifier": "t_uint256",
9632 "typeString": "uint256"
9633 }
9634 },
9635 "id": 198,
9636 "nodeType": "ExpressionStatement",
9637 "src": "2030:44:0"
9638 },
9639 {
9640 "expression": {
9641 "argumentTypes": null,
9642 "id": 208,
9643 "isConstant": false,
9644 "isLValue": false,
9645 "isPure": false,
9646 "lValueRequested": false,
9647 "leftHandSide": {
9648 "argumentTypes": null,
9649 "baseExpression": {
9650 "argumentTypes": null,
9651 "id": 199,
9652 "name": "balanceOf",
9653 "nodeType": "Identifier",
9654 "overloadedDeclarations": [],
9655 "referencedDeclaration": 23,
9656 "src": "2084:9:0",
9657 "typeDescriptions": {
9658 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9659 "typeString": "mapping(address => uint256)"
9660 }
9661 },
9662 "id": 201,
9663 "indexExpression": {
9664 "argumentTypes": null,
9665 "id": 200,
9666 "name": "to",
9667 "nodeType": "Identifier",
9668 "overloadedDeclarations": [],
9669 "referencedDeclaration": 183,
9670 "src": "2094:2:0",
9671 "typeDescriptions": {
9672 "typeIdentifier": "t_address",
9673 "typeString": "address"
9674 }
9675 },
9676 "isConstant": false,
9677 "isLValue": true,
9678 "isPure": false,
9679 "lValueRequested": true,
9680 "nodeType": "IndexAccess",
9681 "src": "2084:13:0",
9682 "typeDescriptions": {
9683 "typeIdentifier": "t_uint256",
9684 "typeString": "uint256"
9685 }
9686 },
9687 "nodeType": "Assignment",
9688 "operator": "=",
9689 "rightHandSide": {
9690 "argumentTypes": null,
9691 "arguments": [
9692 {
9693 "argumentTypes": null,
9694 "id": 206,
9695 "name": "value",
9696 "nodeType": "Identifier",
9697 "overloadedDeclarations": [],
9698 "referencedDeclaration": 185,
9699 "src": "2118:5:0",
9700 "typeDescriptions": {
9701 "typeIdentifier": "t_uint256",
9702 "typeString": "uint256"
9703 }
9704 }
9705 ],
9706 "expression": {
9707 "argumentTypes": [
9708 {
9709 "typeIdentifier": "t_uint256",
9710 "typeString": "uint256"
9711 }
9712 ],
9713 "expression": {
9714 "argumentTypes": null,
9715 "baseExpression": {
9716 "argumentTypes": null,
9717 "id": 202,
9718 "name": "balanceOf",
9719 "nodeType": "Identifier",
9720 "overloadedDeclarations": [],
9721 "referencedDeclaration": 23,
9722 "src": "2100:9:0",
9723 "typeDescriptions": {
9724 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
9725 "typeString": "mapping(address => uint256)"
9726 }
9727 },
9728 "id": 204,
9729 "indexExpression": {
9730 "argumentTypes": null,
9731 "id": 203,
9732 "name": "to",
9733 "nodeType": "Identifier",
9734 "overloadedDeclarations": [],
9735 "referencedDeclaration": 183,
9736 "src": "2110:2:0",
9737 "typeDescriptions": {
9738 "typeIdentifier": "t_address",
9739 "typeString": "address"
9740 }
9741 },
9742 "isConstant": false,
9743 "isLValue": true,
9744 "isPure": false,
9745 "lValueRequested": false,
9746 "nodeType": "IndexAccess",
9747 "src": "2100:13:0",
9748 "typeDescriptions": {
9749 "typeIdentifier": "t_uint256",
9750 "typeString": "uint256"
9751 }
9752 },
9753 "id": 205,
9754 "isConstant": false,
9755 "isLValue": false,
9756 "isPure": false,
9757 "lValueRequested": false,
9758 "memberName": "add",
9759 "nodeType": "MemberAccess",
9760 "referencedDeclaration": 2491,
9761 "src": "2100:17:0",
9762 "typeDescriptions": {
9763 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
9764 "typeString": "function (uint256,uint256) pure returns (uint256)"
9765 }
9766 },
9767 "id": 207,
9768 "isConstant": false,
9769 "isLValue": false,
9770 "isPure": false,
9771 "kind": "functionCall",
9772 "lValueRequested": false,
9773 "names": [],
9774 "nodeType": "FunctionCall",
9775 "src": "2100:24:0",
9776 "typeDescriptions": {
9777 "typeIdentifier": "t_uint256",
9778 "typeString": "uint256"
9779 }
9780 },
9781 "src": "2084:40:0",
9782 "typeDescriptions": {
9783 "typeIdentifier": "t_uint256",
9784 "typeString": "uint256"
9785 }
9786 },
9787 "id": 209,
9788 "nodeType": "ExpressionStatement",
9789 "src": "2084:40:0"
9790 },
9791 {
9792 "eventCall": {
9793 "argumentTypes": null,
9794 "arguments": [
9795 {
9796 "argumentTypes": null,
9797 "id": 211,
9798 "name": "from",
9799 "nodeType": "Identifier",
9800 "overloadedDeclarations": [],
9801 "referencedDeclaration": 181,
9802 "src": "2148:4:0",
9803 "typeDescriptions": {
9804 "typeIdentifier": "t_address",
9805 "typeString": "address"
9806 }
9807 },
9808 {
9809 "argumentTypes": null,
9810 "id": 212,
9811 "name": "to",
9812 "nodeType": "Identifier",
9813 "overloadedDeclarations": [],
9814 "referencedDeclaration": 183,
9815 "src": "2154:2:0",
9816 "typeDescriptions": {
9817 "typeIdentifier": "t_address",
9818 "typeString": "address"
9819 }
9820 },
9821 {
9822 "argumentTypes": null,
9823 "id": 213,
9824 "name": "value",
9825 "nodeType": "Identifier",
9826 "overloadedDeclarations": [],
9827 "referencedDeclaration": 185,
9828 "src": "2158:5:0",
9829 "typeDescriptions": {
9830 "typeIdentifier": "t_uint256",
9831 "typeString": "uint256"
9832 }
9833 }
9834 ],
9835 "expression": {
9836 "argumentTypes": [
9837 {
9838 "typeIdentifier": "t_address",
9839 "typeString": "address"
9840 },
9841 {
9842 "typeIdentifier": "t_address",
9843 "typeString": "address"
9844 },
9845 {
9846 "typeIdentifier": "t_uint256",
9847 "typeString": "uint256"
9848 }
9849 ],
9850 "id": 210,
9851 "name": "Transfer",
9852 "nodeType": "Identifier",
9853 "overloadedDeclarations": [
9854 54
9855 ],
9856 "referencedDeclaration": 54,
9857 "src": "2139:8:0",
9858 "typeDescriptions": {
9859 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
9860 "typeString": "function (address,address,uint256)"
9861 }
9862 },
9863 "id": 214,
9864 "isConstant": false,
9865 "isLValue": false,
9866 "isPure": false,
9867 "kind": "functionCall",
9868 "lValueRequested": false,
9869 "names": [],
9870 "nodeType": "FunctionCall",
9871 "src": "2139:25:0",
9872 "typeDescriptions": {
9873 "typeIdentifier": "t_tuple$__$",
9874 "typeString": "tuple()"
9875 }
9876 },
9877 "id": 215,
9878 "nodeType": "EmitStatement",
9879 "src": "2134:30:0"
9880 }
9881 ]
9882 },
9883 "documentation": null,
9884 "id": 217,
9885 "implemented": true,
9886 "kind": "function",
9887 "modifiers": [],
9888 "name": "_transfer",
9889 "nodeType": "FunctionDefinition",
9890 "parameters": {
9891 "id": 186,
9892 "nodeType": "ParameterList",
9893 "parameters": [
9894 {
9895 "constant": false,
9896 "id": 181,
9897 "name": "from",
9898 "nodeType": "VariableDeclaration",
9899 "scope": 217,
9900 "src": "1974:12:0",
9901 "stateVariable": false,
9902 "storageLocation": "default",
9903 "typeDescriptions": {
9904 "typeIdentifier": "t_address",
9905 "typeString": "address"
9906 },
9907 "typeName": {
9908 "id": 180,
9909 "name": "address",
9910 "nodeType": "ElementaryTypeName",
9911 "src": "1974:7:0",
9912 "stateMutability": "nonpayable",
9913 "typeDescriptions": {
9914 "typeIdentifier": "t_address",
9915 "typeString": "address"
9916 }
9917 },
9918 "value": null,
9919 "visibility": "internal"
9920 },
9921 {
9922 "constant": false,
9923 "id": 183,
9924 "name": "to",
9925 "nodeType": "VariableDeclaration",
9926 "scope": 217,
9927 "src": "1988:10:0",
9928 "stateVariable": false,
9929 "storageLocation": "default",
9930 "typeDescriptions": {
9931 "typeIdentifier": "t_address",
9932 "typeString": "address"
9933 },
9934 "typeName": {
9935 "id": 182,
9936 "name": "address",
9937 "nodeType": "ElementaryTypeName",
9938 "src": "1988:7:0",
9939 "stateMutability": "nonpayable",
9940 "typeDescriptions": {
9941 "typeIdentifier": "t_address",
9942 "typeString": "address"
9943 }
9944 },
9945 "value": null,
9946 "visibility": "internal"
9947 },
9948 {
9949 "constant": false,
9950 "id": 185,
9951 "name": "value",
9952 "nodeType": "VariableDeclaration",
9953 "scope": 217,
9954 "src": "2000:10:0",
9955 "stateVariable": false,
9956 "storageLocation": "default",
9957 "typeDescriptions": {
9958 "typeIdentifier": "t_uint256",
9959 "typeString": "uint256"
9960 },
9961 "typeName": {
9962 "id": 184,
9963 "name": "uint",
9964 "nodeType": "ElementaryTypeName",
9965 "src": "2000:4:0",
9966 "typeDescriptions": {
9967 "typeIdentifier": "t_uint256",
9968 "typeString": "uint256"
9969 }
9970 },
9971 "value": null,
9972 "visibility": "internal"
9973 }
9974 ],
9975 "src": "1973:38:0"
9976 },
9977 "returnParameters": {
9978 "id": 187,
9979 "nodeType": "ParameterList",
9980 "parameters": [],
9981 "src": "2020:0:0"
9982 },
9983 "scope": 384,
9984 "src": "1955:216:0",
9985 "stateMutability": "nonpayable",
9986 "superFunction": null,
9987 "visibility": "private"
9988 },
9989 {
9990 "body": {
9991 "id": 235,
9992 "nodeType": "Block",
9993 "src": "2247:74:0",
9994 "statements": [
9995 {
9996 "expression": {
9997 "argumentTypes": null,
9998 "arguments": [
9999 {
10000 "argumentTypes": null,
10001 "expression": {
10002 "argumentTypes": null,
10003 "id": 227,
10004 "name": "msg",
10005 "nodeType": "Identifier",
10006 "overloadedDeclarations": [],
10007 "referencedDeclaration": 2617,
10008 "src": "2266:3:0",
10009 "typeDescriptions": {
10010 "typeIdentifier": "t_magic_message",
10011 "typeString": "msg"
10012 }
10013 },
10014 "id": 228,
10015 "isConstant": false,
10016 "isLValue": false,
10017 "isPure": false,
10018 "lValueRequested": false,
10019 "memberName": "sender",
10020 "nodeType": "MemberAccess",
10021 "referencedDeclaration": null,
10022 "src": "2266:10:0",
10023 "typeDescriptions": {
10024 "typeIdentifier": "t_address_payable",
10025 "typeString": "address payable"
10026 }
10027 },
10028 {
10029 "argumentTypes": null,
10030 "id": 229,
10031 "name": "spender",
10032 "nodeType": "Identifier",
10033 "overloadedDeclarations": [],
10034 "referencedDeclaration": 219,
10035 "src": "2278:7:0",
10036 "typeDescriptions": {
10037 "typeIdentifier": "t_address",
10038 "typeString": "address"
10039 }
10040 },
10041 {
10042 "argumentTypes": null,
10043 "id": 230,
10044 "name": "value",
10045 "nodeType": "Identifier",
10046 "overloadedDeclarations": [],
10047 "referencedDeclaration": 221,
10048 "src": "2287:5:0",
10049 "typeDescriptions": {
10050 "typeIdentifier": "t_uint256",
10051 "typeString": "uint256"
10052 }
10053 }
10054 ],
10055 "expression": {
10056 "argumentTypes": [
10057 {
10058 "typeIdentifier": "t_address_payable",
10059 "typeString": "address payable"
10060 },
10061 {
10062 "typeIdentifier": "t_address",
10063 "typeString": "address"
10064 },
10065 {
10066 "typeIdentifier": "t_uint256",
10067 "typeString": "uint256"
10068 }
10069 ],
10070 "id": 226,
10071 "name": "_approve",
10072 "nodeType": "Identifier",
10073 "overloadedDeclarations": [],
10074 "referencedDeclaration": 179,
10075 "src": "2257:8:0",
10076 "typeDescriptions": {
10077 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
10078 "typeString": "function (address,address,uint256)"
10079 }
10080 },
10081 "id": 231,
10082 "isConstant": false,
10083 "isLValue": false,
10084 "isPure": false,
10085 "kind": "functionCall",
10086 "lValueRequested": false,
10087 "names": [],
10088 "nodeType": "FunctionCall",
10089 "src": "2257:36:0",
10090 "typeDescriptions": {
10091 "typeIdentifier": "t_tuple$__$",
10092 "typeString": "tuple()"
10093 }
10094 },
10095 "id": 232,
10096 "nodeType": "ExpressionStatement",
10097 "src": "2257:36:0"
10098 },
10099 {
10100 "expression": {
10101 "argumentTypes": null,
10102 "hexValue": "74727565",
10103 "id": 233,
10104 "isConstant": false,
10105 "isLValue": false,
10106 "isPure": true,
10107 "kind": "bool",
10108 "lValueRequested": false,
10109 "nodeType": "Literal",
10110 "src": "2310:4:0",
10111 "subdenomination": null,
10112 "typeDescriptions": {
10113 "typeIdentifier": "t_bool",
10114 "typeString": "bool"
10115 },
10116 "value": "true"
10117 },
10118 "functionReturnParameters": 225,
10119 "id": 234,
10120 "nodeType": "Return",
10121 "src": "2303:11:0"
10122 }
10123 ]
10124 },
10125 "documentation": null,
10126 "id": 236,
10127 "implemented": true,
10128 "kind": "function",
10129 "modifiers": [],
10130 "name": "approve",
10131 "nodeType": "FunctionDefinition",
10132 "parameters": {
10133 "id": 222,
10134 "nodeType": "ParameterList",
10135 "parameters": [
10136 {
10137 "constant": false,
10138 "id": 219,
10139 "name": "spender",
10140 "nodeType": "VariableDeclaration",
10141 "scope": 236,
10142 "src": "2194:15:0",
10143 "stateVariable": false,
10144 "storageLocation": "default",
10145 "typeDescriptions": {
10146 "typeIdentifier": "t_address",
10147 "typeString": "address"
10148 },
10149 "typeName": {
10150 "id": 218,
10151 "name": "address",
10152 "nodeType": "ElementaryTypeName",
10153 "src": "2194:7:0",
10154 "stateMutability": "nonpayable",
10155 "typeDescriptions": {
10156 "typeIdentifier": "t_address",
10157 "typeString": "address"
10158 }
10159 },
10160 "value": null,
10161 "visibility": "internal"
10162 },
10163 {
10164 "constant": false,
10165 "id": 221,
10166 "name": "value",
10167 "nodeType": "VariableDeclaration",
10168 "scope": 236,
10169 "src": "2211:10:0",
10170 "stateVariable": false,
10171 "storageLocation": "default",
10172 "typeDescriptions": {
10173 "typeIdentifier": "t_uint256",
10174 "typeString": "uint256"
10175 },
10176 "typeName": {
10177 "id": 220,
10178 "name": "uint",
10179 "nodeType": "ElementaryTypeName",
10180 "src": "2211:4:0",
10181 "typeDescriptions": {
10182 "typeIdentifier": "t_uint256",
10183 "typeString": "uint256"
10184 }
10185 },
10186 "value": null,
10187 "visibility": "internal"
10188 }
10189 ],
10190 "src": "2193:29:0"
10191 },
10192 "returnParameters": {
10193 "id": 225,
10194 "nodeType": "ParameterList",
10195 "parameters": [
10196 {
10197 "constant": false,
10198 "id": 224,
10199 "name": "",
10200 "nodeType": "VariableDeclaration",
10201 "scope": 236,
10202 "src": "2241:4:0",
10203 "stateVariable": false,
10204 "storageLocation": "default",
10205 "typeDescriptions": {
10206 "typeIdentifier": "t_bool",
10207 "typeString": "bool"
10208 },
10209 "typeName": {
10210 "id": 223,
10211 "name": "bool",
10212 "nodeType": "ElementaryTypeName",
10213 "src": "2241:4:0",
10214 "typeDescriptions": {
10215 "typeIdentifier": "t_bool",
10216 "typeString": "bool"
10217 }
10218 },
10219 "value": null,
10220 "visibility": "internal"
10221 }
10222 ],
10223 "src": "2240:6:0"
10224 },
10225 "scope": 384,
10226 "src": "2177:144:0",
10227 "stateMutability": "nonpayable",
10228 "superFunction": 1995,
10229 "visibility": "external"
10230 },
10231 {
10232 "body": {
10233 "id": 254,
10234 "nodeType": "Block",
10235 "src": "2393:70:0",
10236 "statements": [
10237 {
10238 "expression": {
10239 "argumentTypes": null,
10240 "arguments": [
10241 {
10242 "argumentTypes": null,
10243 "expression": {
10244 "argumentTypes": null,
10245 "id": 246,
10246 "name": "msg",
10247 "nodeType": "Identifier",
10248 "overloadedDeclarations": [],
10249 "referencedDeclaration": 2617,
10250 "src": "2413:3:0",
10251 "typeDescriptions": {
10252 "typeIdentifier": "t_magic_message",
10253 "typeString": "msg"
10254 }
10255 },
10256 "id": 247,
10257 "isConstant": false,
10258 "isLValue": false,
10259 "isPure": false,
10260 "lValueRequested": false,
10261 "memberName": "sender",
10262 "nodeType": "MemberAccess",
10263 "referencedDeclaration": null,
10264 "src": "2413:10:0",
10265 "typeDescriptions": {
10266 "typeIdentifier": "t_address_payable",
10267 "typeString": "address payable"
10268 }
10269 },
10270 {
10271 "argumentTypes": null,
10272 "id": 248,
10273 "name": "to",
10274 "nodeType": "Identifier",
10275 "overloadedDeclarations": [],
10276 "referencedDeclaration": 238,
10277 "src": "2425:2:0",
10278 "typeDescriptions": {
10279 "typeIdentifier": "t_address",
10280 "typeString": "address"
10281 }
10282 },
10283 {
10284 "argumentTypes": null,
10285 "id": 249,
10286 "name": "value",
10287 "nodeType": "Identifier",
10288 "overloadedDeclarations": [],
10289 "referencedDeclaration": 240,
10290 "src": "2429:5:0",
10291 "typeDescriptions": {
10292 "typeIdentifier": "t_uint256",
10293 "typeString": "uint256"
10294 }
10295 }
10296 ],
10297 "expression": {
10298 "argumentTypes": [
10299 {
10300 "typeIdentifier": "t_address_payable",
10301 "typeString": "address payable"
10302 },
10303 {
10304 "typeIdentifier": "t_address",
10305 "typeString": "address"
10306 },
10307 {
10308 "typeIdentifier": "t_uint256",
10309 "typeString": "uint256"
10310 }
10311 ],
10312 "id": 245,
10313 "name": "_transfer",
10314 "nodeType": "Identifier",
10315 "overloadedDeclarations": [],
10316 "referencedDeclaration": 217,
10317 "src": "2403:9:0",
10318 "typeDescriptions": {
10319 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
10320 "typeString": "function (address,address,uint256)"
10321 }
10322 },
10323 "id": 250,
10324 "isConstant": false,
10325 "isLValue": false,
10326 "isPure": false,
10327 "kind": "functionCall",
10328 "lValueRequested": false,
10329 "names": [],
10330 "nodeType": "FunctionCall",
10331 "src": "2403:32:0",
10332 "typeDescriptions": {
10333 "typeIdentifier": "t_tuple$__$",
10334 "typeString": "tuple()"
10335 }
10336 },
10337 "id": 251,
10338 "nodeType": "ExpressionStatement",
10339 "src": "2403:32:0"
10340 },
10341 {
10342 "expression": {
10343 "argumentTypes": null,
10344 "hexValue": "74727565",
10345 "id": 252,
10346 "isConstant": false,
10347 "isLValue": false,
10348 "isPure": true,
10349 "kind": "bool",
10350 "lValueRequested": false,
10351 "nodeType": "Literal",
10352 "src": "2452:4:0",
10353 "subdenomination": null,
10354 "typeDescriptions": {
10355 "typeIdentifier": "t_bool",
10356 "typeString": "bool"
10357 },
10358 "value": "true"
10359 },
10360 "functionReturnParameters": 244,
10361 "id": 253,
10362 "nodeType": "Return",
10363 "src": "2445:11:0"
10364 }
10365 ]
10366 },
10367 "documentation": null,
10368 "id": 255,
10369 "implemented": true,
10370 "kind": "function",
10371 "modifiers": [],
10372 "name": "transfer",
10373 "nodeType": "FunctionDefinition",
10374 "parameters": {
10375 "id": 241,
10376 "nodeType": "ParameterList",
10377 "parameters": [
10378 {
10379 "constant": false,
10380 "id": 238,
10381 "name": "to",
10382 "nodeType": "VariableDeclaration",
10383 "scope": 255,
10384 "src": "2345:10:0",
10385 "stateVariable": false,
10386 "storageLocation": "default",
10387 "typeDescriptions": {
10388 "typeIdentifier": "t_address",
10389 "typeString": "address"
10390 },
10391 "typeName": {
10392 "id": 237,
10393 "name": "address",
10394 "nodeType": "ElementaryTypeName",
10395 "src": "2345:7:0",
10396 "stateMutability": "nonpayable",
10397 "typeDescriptions": {
10398 "typeIdentifier": "t_address",
10399 "typeString": "address"
10400 }
10401 },
10402 "value": null,
10403 "visibility": "internal"
10404 },
10405 {
10406 "constant": false,
10407 "id": 240,
10408 "name": "value",
10409 "nodeType": "VariableDeclaration",
10410 "scope": 255,
10411 "src": "2357:10:0",
10412 "stateVariable": false,
10413 "storageLocation": "default",
10414 "typeDescriptions": {
10415 "typeIdentifier": "t_uint256",
10416 "typeString": "uint256"
10417 },
10418 "typeName": {
10419 "id": 239,
10420 "name": "uint",
10421 "nodeType": "ElementaryTypeName",
10422 "src": "2357:4:0",
10423 "typeDescriptions": {
10424 "typeIdentifier": "t_uint256",
10425 "typeString": "uint256"
10426 }
10427 },
10428 "value": null,
10429 "visibility": "internal"
10430 }
10431 ],
10432 "src": "2344:24:0"
10433 },
10434 "returnParameters": {
10435 "id": 244,
10436 "nodeType": "ParameterList",
10437 "parameters": [
10438 {
10439 "constant": false,
10440 "id": 243,
10441 "name": "",
10442 "nodeType": "VariableDeclaration",
10443 "scope": 255,
10444 "src": "2387:4:0",
10445 "stateVariable": false,
10446 "storageLocation": "default",
10447 "typeDescriptions": {
10448 "typeIdentifier": "t_bool",
10449 "typeString": "bool"
10450 },
10451 "typeName": {
10452 "id": 242,
10453 "name": "bool",
10454 "nodeType": "ElementaryTypeName",
10455 "src": "2387:4:0",
10456 "typeDescriptions": {
10457 "typeIdentifier": "t_bool",
10458 "typeString": "bool"
10459 }
10460 },
10461 "value": null,
10462 "visibility": "internal"
10463 }
10464 ],
10465 "src": "2386:6:0"
10466 },
10467 "scope": 384,
10468 "src": "2327:136:0",
10469 "stateMutability": "nonpayable",
10470 "superFunction": 2004,
10471 "visibility": "external"
10472 },
10473 {
10474 "body": {
10475 "id": 304,
10476 "nodeType": "Block",
10477 "src": "2553:211:0",
10478 "statements": [
10479 {
10480 "condition": {
10481 "argumentTypes": null,
10482 "commonType": {
10483 "typeIdentifier": "t_uint256",
10484 "typeString": "uint256"
10485 },
10486 "id": 276,
10487 "isConstant": false,
10488 "isLValue": false,
10489 "isPure": false,
10490 "lValueRequested": false,
10491 "leftExpression": {
10492 "argumentTypes": null,
10493 "baseExpression": {
10494 "argumentTypes": null,
10495 "baseExpression": {
10496 "argumentTypes": null,
10497 "id": 266,
10498 "name": "allowance",
10499 "nodeType": "Identifier",
10500 "overloadedDeclarations": [],
10501 "referencedDeclaration": 29,
10502 "src": "2567:9:0",
10503 "typeDescriptions": {
10504 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
10505 "typeString": "mapping(address => mapping(address => uint256))"
10506 }
10507 },
10508 "id": 268,
10509 "indexExpression": {
10510 "argumentTypes": null,
10511 "id": 267,
10512 "name": "from",
10513 "nodeType": "Identifier",
10514 "overloadedDeclarations": [],
10515 "referencedDeclaration": 257,
10516 "src": "2577:4:0",
10517 "typeDescriptions": {
10518 "typeIdentifier": "t_address",
10519 "typeString": "address"
10520 }
10521 },
10522 "isConstant": false,
10523 "isLValue": true,
10524 "isPure": false,
10525 "lValueRequested": false,
10526 "nodeType": "IndexAccess",
10527 "src": "2567:15:0",
10528 "typeDescriptions": {
10529 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10530 "typeString": "mapping(address => uint256)"
10531 }
10532 },
10533 "id": 271,
10534 "indexExpression": {
10535 "argumentTypes": null,
10536 "expression": {
10537 "argumentTypes": null,
10538 "id": 269,
10539 "name": "msg",
10540 "nodeType": "Identifier",
10541 "overloadedDeclarations": [],
10542 "referencedDeclaration": 2617,
10543 "src": "2583:3:0",
10544 "typeDescriptions": {
10545 "typeIdentifier": "t_magic_message",
10546 "typeString": "msg"
10547 }
10548 },
10549 "id": 270,
10550 "isConstant": false,
10551 "isLValue": false,
10552 "isPure": false,
10553 "lValueRequested": false,
10554 "memberName": "sender",
10555 "nodeType": "MemberAccess",
10556 "referencedDeclaration": null,
10557 "src": "2583:10:0",
10558 "typeDescriptions": {
10559 "typeIdentifier": "t_address_payable",
10560 "typeString": "address payable"
10561 }
10562 },
10563 "isConstant": false,
10564 "isLValue": true,
10565 "isPure": false,
10566 "lValueRequested": false,
10567 "nodeType": "IndexAccess",
10568 "src": "2567:27:0",
10569 "typeDescriptions": {
10570 "typeIdentifier": "t_uint256",
10571 "typeString": "uint256"
10572 }
10573 },
10574 "nodeType": "BinaryOperation",
10575 "operator": "!=",
10576 "rightExpression": {
10577 "argumentTypes": null,
10578 "arguments": [
10579 {
10580 "argumentTypes": null,
10581 "id": 274,
10582 "isConstant": false,
10583 "isLValue": false,
10584 "isPure": true,
10585 "lValueRequested": false,
10586 "nodeType": "UnaryOperation",
10587 "operator": "-",
10588 "prefix": true,
10589 "src": "2603:2:0",
10590 "subExpression": {
10591 "argumentTypes": null,
10592 "hexValue": "31",
10593 "id": 273,
10594 "isConstant": false,
10595 "isLValue": false,
10596 "isPure": true,
10597 "kind": "number",
10598 "lValueRequested": false,
10599 "nodeType": "Literal",
10600 "src": "2604:1:0",
10601 "subdenomination": null,
10602 "typeDescriptions": {
10603 "typeIdentifier": "t_rational_1_by_1",
10604 "typeString": "int_const 1"
10605 },
10606 "value": "1"
10607 },
10608 "typeDescriptions": {
10609 "typeIdentifier": "t_rational_minus_1_by_1",
10610 "typeString": "int_const -1"
10611 }
10612 }
10613 ],
10614 "expression": {
10615 "argumentTypes": [
10616 {
10617 "typeIdentifier": "t_rational_minus_1_by_1",
10618 "typeString": "int_const -1"
10619 }
10620 ],
10621 "id": 272,
10622 "isConstant": false,
10623 "isLValue": false,
10624 "isPure": true,
10625 "lValueRequested": false,
10626 "nodeType": "ElementaryTypeNameExpression",
10627 "src": "2598:4:0",
10628 "typeDescriptions": {
10629 "typeIdentifier": "t_type$_t_uint256_$",
10630 "typeString": "type(uint256)"
10631 },
10632 "typeName": "uint"
10633 },
10634 "id": 275,
10635 "isConstant": false,
10636 "isLValue": false,
10637 "isPure": true,
10638 "kind": "typeConversion",
10639 "lValueRequested": false,
10640 "names": [],
10641 "nodeType": "FunctionCall",
10642 "src": "2598:8:0",
10643 "typeDescriptions": {
10644 "typeIdentifier": "t_uint256",
10645 "typeString": "uint256"
10646 }
10647 },
10648 "src": "2567:39:0",
10649 "typeDescriptions": {
10650 "typeIdentifier": "t_bool",
10651 "typeString": "bool"
10652 }
10653 },
10654 "falseBody": null,
10655 "id": 295,
10656 "nodeType": "IfStatement",
10657 "src": "2563:138:0",
10658 "trueBody": {
10659 "id": 294,
10660 "nodeType": "Block",
10661 "src": "2608:93:0",
10662 "statements": [
10663 {
10664 "expression": {
10665 "argumentTypes": null,
10666 "id": 292,
10667 "isConstant": false,
10668 "isLValue": false,
10669 "isPure": false,
10670 "lValueRequested": false,
10671 "leftHandSide": {
10672 "argumentTypes": null,
10673 "baseExpression": {
10674 "argumentTypes": null,
10675 "baseExpression": {
10676 "argumentTypes": null,
10677 "id": 277,
10678 "name": "allowance",
10679 "nodeType": "Identifier",
10680 "overloadedDeclarations": [],
10681 "referencedDeclaration": 29,
10682 "src": "2622:9:0",
10683 "typeDescriptions": {
10684 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
10685 "typeString": "mapping(address => mapping(address => uint256))"
10686 }
10687 },
10688 "id": 281,
10689 "indexExpression": {
10690 "argumentTypes": null,
10691 "id": 278,
10692 "name": "from",
10693 "nodeType": "Identifier",
10694 "overloadedDeclarations": [],
10695 "referencedDeclaration": 257,
10696 "src": "2632:4:0",
10697 "typeDescriptions": {
10698 "typeIdentifier": "t_address",
10699 "typeString": "address"
10700 }
10701 },
10702 "isConstant": false,
10703 "isLValue": true,
10704 "isPure": false,
10705 "lValueRequested": false,
10706 "nodeType": "IndexAccess",
10707 "src": "2622:15:0",
10708 "typeDescriptions": {
10709 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10710 "typeString": "mapping(address => uint256)"
10711 }
10712 },
10713 "id": 282,
10714 "indexExpression": {
10715 "argumentTypes": null,
10716 "expression": {
10717 "argumentTypes": null,
10718 "id": 279,
10719 "name": "msg",
10720 "nodeType": "Identifier",
10721 "overloadedDeclarations": [],
10722 "referencedDeclaration": 2617,
10723 "src": "2638:3:0",
10724 "typeDescriptions": {
10725 "typeIdentifier": "t_magic_message",
10726 "typeString": "msg"
10727 }
10728 },
10729 "id": 280,
10730 "isConstant": false,
10731 "isLValue": false,
10732 "isPure": false,
10733 "lValueRequested": false,
10734 "memberName": "sender",
10735 "nodeType": "MemberAccess",
10736 "referencedDeclaration": null,
10737 "src": "2638:10:0",
10738 "typeDescriptions": {
10739 "typeIdentifier": "t_address_payable",
10740 "typeString": "address payable"
10741 }
10742 },
10743 "isConstant": false,
10744 "isLValue": true,
10745 "isPure": false,
10746 "lValueRequested": true,
10747 "nodeType": "IndexAccess",
10748 "src": "2622:27:0",
10749 "typeDescriptions": {
10750 "typeIdentifier": "t_uint256",
10751 "typeString": "uint256"
10752 }
10753 },
10754 "nodeType": "Assignment",
10755 "operator": "=",
10756 "rightHandSide": {
10757 "argumentTypes": null,
10758 "arguments": [
10759 {
10760 "argumentTypes": null,
10761 "id": 290,
10762 "name": "value",
10763 "nodeType": "Identifier",
10764 "overloadedDeclarations": [],
10765 "referencedDeclaration": 261,
10766 "src": "2684:5:0",
10767 "typeDescriptions": {
10768 "typeIdentifier": "t_uint256",
10769 "typeString": "uint256"
10770 }
10771 }
10772 ],
10773 "expression": {
10774 "argumentTypes": [
10775 {
10776 "typeIdentifier": "t_uint256",
10777 "typeString": "uint256"
10778 }
10779 ],
10780 "expression": {
10781 "argumentTypes": null,
10782 "baseExpression": {
10783 "argumentTypes": null,
10784 "baseExpression": {
10785 "argumentTypes": null,
10786 "id": 283,
10787 "name": "allowance",
10788 "nodeType": "Identifier",
10789 "overloadedDeclarations": [],
10790 "referencedDeclaration": 29,
10791 "src": "2652:9:0",
10792 "typeDescriptions": {
10793 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
10794 "typeString": "mapping(address => mapping(address => uint256))"
10795 }
10796 },
10797 "id": 285,
10798 "indexExpression": {
10799 "argumentTypes": null,
10800 "id": 284,
10801 "name": "from",
10802 "nodeType": "Identifier",
10803 "overloadedDeclarations": [],
10804 "referencedDeclaration": 257,
10805 "src": "2662:4:0",
10806 "typeDescriptions": {
10807 "typeIdentifier": "t_address",
10808 "typeString": "address"
10809 }
10810 },
10811 "isConstant": false,
10812 "isLValue": true,
10813 "isPure": false,
10814 "lValueRequested": false,
10815 "nodeType": "IndexAccess",
10816 "src": "2652:15:0",
10817 "typeDescriptions": {
10818 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
10819 "typeString": "mapping(address => uint256)"
10820 }
10821 },
10822 "id": 288,
10823 "indexExpression": {
10824 "argumentTypes": null,
10825 "expression": {
10826 "argumentTypes": null,
10827 "id": 286,
10828 "name": "msg",
10829 "nodeType": "Identifier",
10830 "overloadedDeclarations": [],
10831 "referencedDeclaration": 2617,
10832 "src": "2668:3:0",
10833 "typeDescriptions": {
10834 "typeIdentifier": "t_magic_message",
10835 "typeString": "msg"
10836 }
10837 },
10838 "id": 287,
10839 "isConstant": false,
10840 "isLValue": false,
10841 "isPure": false,
10842 "lValueRequested": false,
10843 "memberName": "sender",
10844 "nodeType": "MemberAccess",
10845 "referencedDeclaration": null,
10846 "src": "2668:10:0",
10847 "typeDescriptions": {
10848 "typeIdentifier": "t_address_payable",
10849 "typeString": "address payable"
10850 }
10851 },
10852 "isConstant": false,
10853 "isLValue": true,
10854 "isPure": false,
10855 "lValueRequested": false,
10856 "nodeType": "IndexAccess",
10857 "src": "2652:27:0",
10858 "typeDescriptions": {
10859 "typeIdentifier": "t_uint256",
10860 "typeString": "uint256"
10861 }
10862 },
10863 "id": 289,
10864 "isConstant": false,
10865 "isLValue": false,
10866 "isPure": false,
10867 "lValueRequested": false,
10868 "memberName": "sub",
10869 "nodeType": "MemberAccess",
10870 "referencedDeclaration": 2513,
10871 "src": "2652:31:0",
10872 "typeDescriptions": {
10873 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
10874 "typeString": "function (uint256,uint256) pure returns (uint256)"
10875 }
10876 },
10877 "id": 291,
10878 "isConstant": false,
10879 "isLValue": false,
10880 "isPure": false,
10881 "kind": "functionCall",
10882 "lValueRequested": false,
10883 "names": [],
10884 "nodeType": "FunctionCall",
10885 "src": "2652:38:0",
10886 "typeDescriptions": {
10887 "typeIdentifier": "t_uint256",
10888 "typeString": "uint256"
10889 }
10890 },
10891 "src": "2622:68:0",
10892 "typeDescriptions": {
10893 "typeIdentifier": "t_uint256",
10894 "typeString": "uint256"
10895 }
10896 },
10897 "id": 293,
10898 "nodeType": "ExpressionStatement",
10899 "src": "2622:68:0"
10900 }
10901 ]
10902 }
10903 },
10904 {
10905 "expression": {
10906 "argumentTypes": null,
10907 "arguments": [
10908 {
10909 "argumentTypes": null,
10910 "id": 297,
10911 "name": "from",
10912 "nodeType": "Identifier",
10913 "overloadedDeclarations": [],
10914 "referencedDeclaration": 257,
10915 "src": "2720:4:0",
10916 "typeDescriptions": {
10917 "typeIdentifier": "t_address",
10918 "typeString": "address"
10919 }
10920 },
10921 {
10922 "argumentTypes": null,
10923 "id": 298,
10924 "name": "to",
10925 "nodeType": "Identifier",
10926 "overloadedDeclarations": [],
10927 "referencedDeclaration": 259,
10928 "src": "2726:2:0",
10929 "typeDescriptions": {
10930 "typeIdentifier": "t_address",
10931 "typeString": "address"
10932 }
10933 },
10934 {
10935 "argumentTypes": null,
10936 "id": 299,
10937 "name": "value",
10938 "nodeType": "Identifier",
10939 "overloadedDeclarations": [],
10940 "referencedDeclaration": 261,
10941 "src": "2730:5:0",
10942 "typeDescriptions": {
10943 "typeIdentifier": "t_uint256",
10944 "typeString": "uint256"
10945 }
10946 }
10947 ],
10948 "expression": {
10949 "argumentTypes": [
10950 {
10951 "typeIdentifier": "t_address",
10952 "typeString": "address"
10953 },
10954 {
10955 "typeIdentifier": "t_address",
10956 "typeString": "address"
10957 },
10958 {
10959 "typeIdentifier": "t_uint256",
10960 "typeString": "uint256"
10961 }
10962 ],
10963 "id": 296,
10964 "name": "_transfer",
10965 "nodeType": "Identifier",
10966 "overloadedDeclarations": [],
10967 "referencedDeclaration": 217,
10968 "src": "2710:9:0",
10969 "typeDescriptions": {
10970 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
10971 "typeString": "function (address,address,uint256)"
10972 }
10973 },
10974 "id": 300,
10975 "isConstant": false,
10976 "isLValue": false,
10977 "isPure": false,
10978 "kind": "functionCall",
10979 "lValueRequested": false,
10980 "names": [],
10981 "nodeType": "FunctionCall",
10982 "src": "2710:26:0",
10983 "typeDescriptions": {
10984 "typeIdentifier": "t_tuple$__$",
10985 "typeString": "tuple()"
10986 }
10987 },
10988 "id": 301,
10989 "nodeType": "ExpressionStatement",
10990 "src": "2710:26:0"
10991 },
10992 {
10993 "expression": {
10994 "argumentTypes": null,
10995 "hexValue": "74727565",
10996 "id": 302,
10997 "isConstant": false,
10998 "isLValue": false,
10999 "isPure": true,
11000 "kind": "bool",
11001 "lValueRequested": false,
11002 "nodeType": "Literal",
11003 "src": "2753:4:0",
11004 "subdenomination": null,
11005 "typeDescriptions": {
11006 "typeIdentifier": "t_bool",
11007 "typeString": "bool"
11008 },
11009 "value": "true"
11010 },
11011 "functionReturnParameters": 265,
11012 "id": 303,
11013 "nodeType": "Return",
11014 "src": "2746:11:0"
11015 }
11016 ]
11017 },
11018 "documentation": null,
11019 "id": 305,
11020 "implemented": true,
11021 "kind": "function",
11022 "modifiers": [],
11023 "name": "transferFrom",
11024 "nodeType": "FunctionDefinition",
11025 "parameters": {
11026 "id": 262,
11027 "nodeType": "ParameterList",
11028 "parameters": [
11029 {
11030 "constant": false,
11031 "id": 257,
11032 "name": "from",
11033 "nodeType": "VariableDeclaration",
11034 "scope": 305,
11035 "src": "2491:12:0",
11036 "stateVariable": false,
11037 "storageLocation": "default",
11038 "typeDescriptions": {
11039 "typeIdentifier": "t_address",
11040 "typeString": "address"
11041 },
11042 "typeName": {
11043 "id": 256,
11044 "name": "address",
11045 "nodeType": "ElementaryTypeName",
11046 "src": "2491:7:0",
11047 "stateMutability": "nonpayable",
11048 "typeDescriptions": {
11049 "typeIdentifier": "t_address",
11050 "typeString": "address"
11051 }
11052 },
11053 "value": null,
11054 "visibility": "internal"
11055 },
11056 {
11057 "constant": false,
11058 "id": 259,
11059 "name": "to",
11060 "nodeType": "VariableDeclaration",
11061 "scope": 305,
11062 "src": "2505:10:0",
11063 "stateVariable": false,
11064 "storageLocation": "default",
11065 "typeDescriptions": {
11066 "typeIdentifier": "t_address",
11067 "typeString": "address"
11068 },
11069 "typeName": {
11070 "id": 258,
11071 "name": "address",
11072 "nodeType": "ElementaryTypeName",
11073 "src": "2505:7:0",
11074 "stateMutability": "nonpayable",
11075 "typeDescriptions": {
11076 "typeIdentifier": "t_address",
11077 "typeString": "address"
11078 }
11079 },
11080 "value": null,
11081 "visibility": "internal"
11082 },
11083 {
11084 "constant": false,
11085 "id": 261,
11086 "name": "value",
11087 "nodeType": "VariableDeclaration",
11088 "scope": 305,
11089 "src": "2517:10:0",
11090 "stateVariable": false,
11091 "storageLocation": "default",
11092 "typeDescriptions": {
11093 "typeIdentifier": "t_uint256",
11094 "typeString": "uint256"
11095 },
11096 "typeName": {
11097 "id": 260,
11098 "name": "uint",
11099 "nodeType": "ElementaryTypeName",
11100 "src": "2517:4:0",
11101 "typeDescriptions": {
11102 "typeIdentifier": "t_uint256",
11103 "typeString": "uint256"
11104 }
11105 },
11106 "value": null,
11107 "visibility": "internal"
11108 }
11109 ],
11110 "src": "2490:38:0"
11111 },
11112 "returnParameters": {
11113 "id": 265,
11114 "nodeType": "ParameterList",
11115 "parameters": [
11116 {
11117 "constant": false,
11118 "id": 264,
11119 "name": "",
11120 "nodeType": "VariableDeclaration",
11121 "scope": 305,
11122 "src": "2547:4:0",
11123 "stateVariable": false,
11124 "storageLocation": "default",
11125 "typeDescriptions": {
11126 "typeIdentifier": "t_bool",
11127 "typeString": "bool"
11128 },
11129 "typeName": {
11130 "id": 263,
11131 "name": "bool",
11132 "nodeType": "ElementaryTypeName",
11133 "src": "2547:4:0",
11134 "typeDescriptions": {
11135 "typeIdentifier": "t_bool",
11136 "typeString": "bool"
11137 }
11138 },
11139 "value": null,
11140 "visibility": "internal"
11141 }
11142 ],
11143 "src": "2546:6:0"
11144 },
11145 "scope": 384,
11146 "src": "2469:295:0",
11147 "stateMutability": "nonpayable",
11148 "superFunction": 2015,
11149 "visibility": "external"
11150 },
11151 {
11152 "body": {
11153 "id": 382,
11154 "nodeType": "Block",
11155 "src": "2885:547:0",
11156 "statements": [
11157 {
11158 "expression": {
11159 "argumentTypes": null,
11160 "arguments": [
11161 {
11162 "argumentTypes": null,
11163 "commonType": {
11164 "typeIdentifier": "t_uint256",
11165 "typeString": "uint256"
11166 },
11167 "id": 326,
11168 "isConstant": false,
11169 "isLValue": false,
11170 "isPure": false,
11171 "lValueRequested": false,
11172 "leftExpression": {
11173 "argumentTypes": null,
11174 "id": 323,
11175 "name": "deadline",
11176 "nodeType": "Identifier",
11177 "overloadedDeclarations": [],
11178 "referencedDeclaration": 313,
11179 "src": "2903:8:0",
11180 "typeDescriptions": {
11181 "typeIdentifier": "t_uint256",
11182 "typeString": "uint256"
11183 }
11184 },
11185 "nodeType": "BinaryOperation",
11186 "operator": ">=",
11187 "rightExpression": {
11188 "argumentTypes": null,
11189 "expression": {
11190 "argumentTypes": null,
11191 "id": 324,
11192 "name": "block",
11193 "nodeType": "Identifier",
11194 "overloadedDeclarations": [],
11195 "referencedDeclaration": 2607,
11196 "src": "2915:5:0",
11197 "typeDescriptions": {
11198 "typeIdentifier": "t_magic_block",
11199 "typeString": "block"
11200 }
11201 },
11202 "id": 325,
11203 "isConstant": false,
11204 "isLValue": false,
11205 "isPure": false,
11206 "lValueRequested": false,
11207 "memberName": "timestamp",
11208 "nodeType": "MemberAccess",
11209 "referencedDeclaration": null,
11210 "src": "2915:15:0",
11211 "typeDescriptions": {
11212 "typeIdentifier": "t_uint256",
11213 "typeString": "uint256"
11214 }
11215 },
11216 "src": "2903:27:0",
11217 "typeDescriptions": {
11218 "typeIdentifier": "t_bool",
11219 "typeString": "bool"
11220 }
11221 },
11222 {
11223 "argumentTypes": null,
11224 "hexValue": "556e697377617056323a2045585049524544",
11225 "id": 327,
11226 "isConstant": false,
11227 "isLValue": false,
11228 "isPure": true,
11229 "kind": "string",
11230 "lValueRequested": false,
11231 "nodeType": "Literal",
11232 "src": "2932:20:0",
11233 "subdenomination": null,
11234 "typeDescriptions": {
11235 "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87",
11236 "typeString": "literal_string \"UniswapV2: EXPIRED\""
11237 },
11238 "value": "UniswapV2: EXPIRED"
11239 }
11240 ],
11241 "expression": {
11242 "argumentTypes": [
11243 {
11244 "typeIdentifier": "t_bool",
11245 "typeString": "bool"
11246 },
11247 {
11248 "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87",
11249 "typeString": "literal_string \"UniswapV2: EXPIRED\""
11250 }
11251 ],
11252 "id": 322,
11253 "name": "require",
11254 "nodeType": "Identifier",
11255 "overloadedDeclarations": [
11256 2620,
11257 2621
11258 ],
11259 "referencedDeclaration": 2621,
11260 "src": "2895:7:0",
11261 "typeDescriptions": {
11262 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
11263 "typeString": "function (bool,string memory) pure"
11264 }
11265 },
11266 "id": 328,
11267 "isConstant": false,
11268 "isLValue": false,
11269 "isPure": false,
11270 "kind": "functionCall",
11271 "lValueRequested": false,
11272 "names": [],
11273 "nodeType": "FunctionCall",
11274 "src": "2895:58:0",
11275 "typeDescriptions": {
11276 "typeIdentifier": "t_tuple$__$",
11277 "typeString": "tuple()"
11278 }
11279 },
11280 "id": 329,
11281 "nodeType": "ExpressionStatement",
11282 "src": "2895:58:0"
11283 },
11284 {
11285 "assignments": [
11286 331
11287 ],
11288 "declarations": [
11289 {
11290 "constant": false,
11291 "id": 331,
11292 "name": "digest",
11293 "nodeType": "VariableDeclaration",
11294 "scope": 382,
11295 "src": "2963:14:0",
11296 "stateVariable": false,
11297 "storageLocation": "default",
11298 "typeDescriptions": {
11299 "typeIdentifier": "t_bytes32",
11300 "typeString": "bytes32"
11301 },
11302 "typeName": {
11303 "id": 330,
11304 "name": "bytes32",
11305 "nodeType": "ElementaryTypeName",
11306 "src": "2963:7:0",
11307 "typeDescriptions": {
11308 "typeIdentifier": "t_bytes32",
11309 "typeString": "bytes32"
11310 }
11311 },
11312 "value": null,
11313 "visibility": "internal"
11314 }
11315 ],
11316 "id": 353,
11317 "initialValue": {
11318 "argumentTypes": null,
11319 "arguments": [
11320 {
11321 "argumentTypes": null,
11322 "arguments": [
11323 {
11324 "argumentTypes": null,
11325 "hexValue": "1901",
11326 "id": 335,
11327 "isConstant": false,
11328 "isLValue": false,
11329 "isPure": true,
11330 "kind": "string",
11331 "lValueRequested": false,
11332 "nodeType": "Literal",
11333 "src": "3037:10:0",
11334 "subdenomination": null,
11335 "typeDescriptions": {
11336 "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
11337 "typeString": "literal_string \"\u0019\u0001\""
11338 },
11339 "value": "\u0019\u0001"
11340 },
11341 {
11342 "argumentTypes": null,
11343 "id": 336,
11344 "name": "DOMAIN_SEPARATOR",
11345 "nodeType": "Identifier",
11346 "overloadedDeclarations": [],
11347 "referencedDeclaration": 31,
11348 "src": "3065:16:0",
11349 "typeDescriptions": {
11350 "typeIdentifier": "t_bytes32",
11351 "typeString": "bytes32"
11352 }
11353 },
11354 {
11355 "argumentTypes": null,
11356 "arguments": [
11357 {
11358 "argumentTypes": null,
11359 "arguments": [
11360 {
11361 "argumentTypes": null,
11362 "id": 340,
11363 "name": "PERMIT_TYPEHASH",
11364 "nodeType": "Identifier",
11365 "overloadedDeclarations": [],
11366 "referencedDeclaration": 34,
11367 "src": "3120:15:0",
11368 "typeDescriptions": {
11369 "typeIdentifier": "t_bytes32",
11370 "typeString": "bytes32"
11371 }
11372 },
11373 {
11374 "argumentTypes": null,
11375 "id": 341,
11376 "name": "owner",
11377 "nodeType": "Identifier",
11378 "overloadedDeclarations": [],
11379 "referencedDeclaration": 307,
11380 "src": "3137:5:0",
11381 "typeDescriptions": {
11382 "typeIdentifier": "t_address",
11383 "typeString": "address"
11384 }
11385 },
11386 {
11387 "argumentTypes": null,
11388 "id": 342,
11389 "name": "spender",
11390 "nodeType": "Identifier",
11391 "overloadedDeclarations": [],
11392 "referencedDeclaration": 309,
11393 "src": "3144:7:0",
11394 "typeDescriptions": {
11395 "typeIdentifier": "t_address",
11396 "typeString": "address"
11397 }
11398 },
11399 {
11400 "argumentTypes": null,
11401 "id": 343,
11402 "name": "value",
11403 "nodeType": "Identifier",
11404 "overloadedDeclarations": [],
11405 "referencedDeclaration": 311,
11406 "src": "3153:5:0",
11407 "typeDescriptions": {
11408 "typeIdentifier": "t_uint256",
11409 "typeString": "uint256"
11410 }
11411 },
11412 {
11413 "argumentTypes": null,
11414 "id": 347,
11415 "isConstant": false,
11416 "isLValue": false,
11417 "isPure": false,
11418 "lValueRequested": false,
11419 "nodeType": "UnaryOperation",
11420 "operator": "++",
11421 "prefix": false,
11422 "src": "3160:15:0",
11423 "subExpression": {
11424 "argumentTypes": null,
11425 "baseExpression": {
11426 "argumentTypes": null,
11427 "id": 344,
11428 "name": "nonces",
11429 "nodeType": "Identifier",
11430 "overloadedDeclarations": [],
11431 "referencedDeclaration": 38,
11432 "src": "3160:6:0",
11433 "typeDescriptions": {
11434 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
11435 "typeString": "mapping(address => uint256)"
11436 }
11437 },
11438 "id": 346,
11439 "indexExpression": {
11440 "argumentTypes": null,
11441 "id": 345,
11442 "name": "owner",
11443 "nodeType": "Identifier",
11444 "overloadedDeclarations": [],
11445 "referencedDeclaration": 307,
11446 "src": "3167:5:0",
11447 "typeDescriptions": {
11448 "typeIdentifier": "t_address",
11449 "typeString": "address"
11450 }
11451 },
11452 "isConstant": false,
11453 "isLValue": true,
11454 "isPure": false,
11455 "lValueRequested": true,
11456 "nodeType": "IndexAccess",
11457 "src": "3160:13:0",
11458 "typeDescriptions": {
11459 "typeIdentifier": "t_uint256",
11460 "typeString": "uint256"
11461 }
11462 },
11463 "typeDescriptions": {
11464 "typeIdentifier": "t_uint256",
11465 "typeString": "uint256"
11466 }
11467 },
11468 {
11469 "argumentTypes": null,
11470 "id": 348,
11471 "name": "deadline",
11472 "nodeType": "Identifier",
11473 "overloadedDeclarations": [],
11474 "referencedDeclaration": 313,
11475 "src": "3177:8:0",
11476 "typeDescriptions": {
11477 "typeIdentifier": "t_uint256",
11478 "typeString": "uint256"
11479 }
11480 }
11481 ],
11482 "expression": {
11483 "argumentTypes": [
11484 {
11485 "typeIdentifier": "t_bytes32",
11486 "typeString": "bytes32"
11487 },
11488 {
11489 "typeIdentifier": "t_address",
11490 "typeString": "address"
11491 },
11492 {
11493 "typeIdentifier": "t_address",
11494 "typeString": "address"
11495 },
11496 {
11497 "typeIdentifier": "t_uint256",
11498 "typeString": "uint256"
11499 },
11500 {
11501 "typeIdentifier": "t_uint256",
11502 "typeString": "uint256"
11503 },
11504 {
11505 "typeIdentifier": "t_uint256",
11506 "typeString": "uint256"
11507 }
11508 ],
11509 "expression": {
11510 "argumentTypes": null,
11511 "id": 338,
11512 "name": "abi",
11513 "nodeType": "Identifier",
11514 "overloadedDeclarations": [],
11515 "referencedDeclaration": 2604,
11516 "src": "3109:3:0",
11517 "typeDescriptions": {
11518 "typeIdentifier": "t_magic_abi",
11519 "typeString": "abi"
11520 }
11521 },
11522 "id": 339,
11523 "isConstant": false,
11524 "isLValue": false,
11525 "isPure": true,
11526 "lValueRequested": false,
11527 "memberName": "encode",
11528 "nodeType": "MemberAccess",
11529 "referencedDeclaration": null,
11530 "src": "3109:10:0",
11531 "typeDescriptions": {
11532 "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
11533 "typeString": "function () pure returns (bytes memory)"
11534 }
11535 },
11536 "id": 349,
11537 "isConstant": false,
11538 "isLValue": false,
11539 "isPure": false,
11540 "kind": "functionCall",
11541 "lValueRequested": false,
11542 "names": [],
11543 "nodeType": "FunctionCall",
11544 "src": "3109:77:0",
11545 "typeDescriptions": {
11546 "typeIdentifier": "t_bytes_memory_ptr",
11547 "typeString": "bytes memory"
11548 }
11549 }
11550 ],
11551 "expression": {
11552 "argumentTypes": [
11553 {
11554 "typeIdentifier": "t_bytes_memory_ptr",
11555 "typeString": "bytes memory"
11556 }
11557 ],
11558 "id": 337,
11559 "name": "keccak256",
11560 "nodeType": "Identifier",
11561 "overloadedDeclarations": [],
11562 "referencedDeclaration": 2611,
11563 "src": "3099:9:0",
11564 "typeDescriptions": {
11565 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
11566 "typeString": "function (bytes memory) pure returns (bytes32)"
11567 }
11568 },
11569 "id": 350,
11570 "isConstant": false,
11571 "isLValue": false,
11572 "isPure": false,
11573 "kind": "functionCall",
11574 "lValueRequested": false,
11575 "names": [],
11576 "nodeType": "FunctionCall",
11577 "src": "3099:88:0",
11578 "typeDescriptions": {
11579 "typeIdentifier": "t_bytes32",
11580 "typeString": "bytes32"
11581 }
11582 }
11583 ],
11584 "expression": {
11585 "argumentTypes": [
11586 {
11587 "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541",
11588 "typeString": "literal_string \"\u0019\u0001\""
11589 },
11590 {
11591 "typeIdentifier": "t_bytes32",
11592 "typeString": "bytes32"
11593 },
11594 {
11595 "typeIdentifier": "t_bytes32",
11596 "typeString": "bytes32"
11597 }
11598 ],
11599 "expression": {
11600 "argumentTypes": null,
11601 "id": 333,
11602 "name": "abi",
11603 "nodeType": "Identifier",
11604 "overloadedDeclarations": [],
11605 "referencedDeclaration": 2604,
11606 "src": "3003:3:0",
11607 "typeDescriptions": {
11608 "typeIdentifier": "t_magic_abi",
11609 "typeString": "abi"
11610 }
11611 },
11612 "id": 334,
11613 "isConstant": false,
11614 "isLValue": false,
11615 "isPure": true,
11616 "lValueRequested": false,
11617 "memberName": "encodePacked",
11618 "nodeType": "MemberAccess",
11619 "referencedDeclaration": null,
11620 "src": "3003:16:0",
11621 "typeDescriptions": {
11622 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
11623 "typeString": "function () pure returns (bytes memory)"
11624 }
11625 },
11626 "id": 351,
11627 "isConstant": false,
11628 "isLValue": false,
11629 "isPure": false,
11630 "kind": "functionCall",
11631 "lValueRequested": false,
11632 "names": [],
11633 "nodeType": "FunctionCall",
11634 "src": "3003:198:0",
11635 "typeDescriptions": {
11636 "typeIdentifier": "t_bytes_memory_ptr",
11637 "typeString": "bytes memory"
11638 }
11639 }
11640 ],
11641 "expression": {
11642 "argumentTypes": [
11643 {
11644 "typeIdentifier": "t_bytes_memory_ptr",
11645 "typeString": "bytes memory"
11646 }
11647 ],
11648 "id": 332,
11649 "name": "keccak256",
11650 "nodeType": "Identifier",
11651 "overloadedDeclarations": [],
11652 "referencedDeclaration": 2611,
11653 "src": "2980:9:0",
11654 "typeDescriptions": {
11655 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
11656 "typeString": "function (bytes memory) pure returns (bytes32)"
11657 }
11658 },
11659 "id": 352,
11660 "isConstant": false,
11661 "isLValue": false,
11662 "isPure": false,
11663 "kind": "functionCall",
11664 "lValueRequested": false,
11665 "names": [],
11666 "nodeType": "FunctionCall",
11667 "src": "2980:231:0",
11668 "typeDescriptions": {
11669 "typeIdentifier": "t_bytes32",
11670 "typeString": "bytes32"
11671 }
11672 },
11673 "nodeType": "VariableDeclarationStatement",
11674 "src": "2963:248:0"
11675 },
11676 {
11677 "assignments": [
11678 355
11679 ],
11680 "declarations": [
11681 {
11682 "constant": false,
11683 "id": 355,
11684 "name": "recoveredAddress",
11685 "nodeType": "VariableDeclaration",
11686 "scope": 382,
11687 "src": "3221:24:0",
11688 "stateVariable": false,
11689 "storageLocation": "default",
11690 "typeDescriptions": {
11691 "typeIdentifier": "t_address",
11692 "typeString": "address"
11693 },
11694 "typeName": {
11695 "id": 354,
11696 "name": "address",
11697 "nodeType": "ElementaryTypeName",
11698 "src": "3221:7:0",
11699 "stateMutability": "nonpayable",
11700 "typeDescriptions": {
11701 "typeIdentifier": "t_address",
11702 "typeString": "address"
11703 }
11704 },
11705 "value": null,
11706 "visibility": "internal"
11707 }
11708 ],
11709 "id": 362,
11710 "initialValue": {
11711 "argumentTypes": null,
11712 "arguments": [
11713 {
11714 "argumentTypes": null,
11715 "id": 357,
11716 "name": "digest",
11717 "nodeType": "Identifier",
11718 "overloadedDeclarations": [],
11719 "referencedDeclaration": 331,
11720 "src": "3258:6:0",
11721 "typeDescriptions": {
11722 "typeIdentifier": "t_bytes32",
11723 "typeString": "bytes32"
11724 }
11725 },
11726 {
11727 "argumentTypes": null,
11728 "id": 358,
11729 "name": "v",
11730 "nodeType": "Identifier",
11731 "overloadedDeclarations": [],
11732 "referencedDeclaration": 315,
11733 "src": "3266:1:0",
11734 "typeDescriptions": {
11735 "typeIdentifier": "t_uint8",
11736 "typeString": "uint8"
11737 }
11738 },
11739 {
11740 "argumentTypes": null,
11741 "id": 359,
11742 "name": "r",
11743 "nodeType": "Identifier",
11744 "overloadedDeclarations": [],
11745 "referencedDeclaration": 317,
11746 "src": "3269:1:0",
11747 "typeDescriptions": {
11748 "typeIdentifier": "t_bytes32",
11749 "typeString": "bytes32"
11750 }
11751 },
11752 {
11753 "argumentTypes": null,
11754 "id": 360,
11755 "name": "s",
11756 "nodeType": "Identifier",
11757 "overloadedDeclarations": [],
11758 "referencedDeclaration": 319,
11759 "src": "3272:1:0",
11760 "typeDescriptions": {
11761 "typeIdentifier": "t_bytes32",
11762 "typeString": "bytes32"
11763 }
11764 }
11765 ],
11766 "expression": {
11767 "argumentTypes": [
11768 {
11769 "typeIdentifier": "t_bytes32",
11770 "typeString": "bytes32"
11771 },
11772 {
11773 "typeIdentifier": "t_uint8",
11774 "typeString": "uint8"
11775 },
11776 {
11777 "typeIdentifier": "t_bytes32",
11778 "typeString": "bytes32"
11779 },
11780 {
11781 "typeIdentifier": "t_bytes32",
11782 "typeString": "bytes32"
11783 }
11784 ],
11785 "id": 356,
11786 "name": "ecrecover",
11787 "nodeType": "Identifier",
11788 "overloadedDeclarations": [],
11789 "referencedDeclaration": 2609,
11790 "src": "3248:9:0",
11791 "typeDescriptions": {
11792 "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
11793 "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
11794 }
11795 },
11796 "id": 361,
11797 "isConstant": false,
11798 "isLValue": false,
11799 "isPure": false,
11800 "kind": "functionCall",
11801 "lValueRequested": false,
11802 "names": [],
11803 "nodeType": "FunctionCall",
11804 "src": "3248:26:0",
11805 "typeDescriptions": {
11806 "typeIdentifier": "t_address",
11807 "typeString": "address"
11808 }
11809 },
11810 "nodeType": "VariableDeclarationStatement",
11811 "src": "3221:53:0"
11812 },
11813 {
11814 "expression": {
11815 "argumentTypes": null,
11816 "arguments": [
11817 {
11818 "argumentTypes": null,
11819 "commonType": {
11820 "typeIdentifier": "t_bool",
11821 "typeString": "bool"
11822 },
11823 "id": 372,
11824 "isConstant": false,
11825 "isLValue": false,
11826 "isPure": false,
11827 "lValueRequested": false,
11828 "leftExpression": {
11829 "argumentTypes": null,
11830 "commonType": {
11831 "typeIdentifier": "t_address",
11832 "typeString": "address"
11833 },
11834 "id": 368,
11835 "isConstant": false,
11836 "isLValue": false,
11837 "isPure": false,
11838 "lValueRequested": false,
11839 "leftExpression": {
11840 "argumentTypes": null,
11841 "id": 364,
11842 "name": "recoveredAddress",
11843 "nodeType": "Identifier",
11844 "overloadedDeclarations": [],
11845 "referencedDeclaration": 355,
11846 "src": "3292:16:0",
11847 "typeDescriptions": {
11848 "typeIdentifier": "t_address",
11849 "typeString": "address"
11850 }
11851 },
11852 "nodeType": "BinaryOperation",
11853 "operator": "!=",
11854 "rightExpression": {
11855 "argumentTypes": null,
11856 "arguments": [
11857 {
11858 "argumentTypes": null,
11859 "hexValue": "30",
11860 "id": 366,
11861 "isConstant": false,
11862 "isLValue": false,
11863 "isPure": true,
11864 "kind": "number",
11865 "lValueRequested": false,
11866 "nodeType": "Literal",
11867 "src": "3320:1:0",
11868 "subdenomination": null,
11869 "typeDescriptions": {
11870 "typeIdentifier": "t_rational_0_by_1",
11871 "typeString": "int_const 0"
11872 },
11873 "value": "0"
11874 }
11875 ],
11876 "expression": {
11877 "argumentTypes": [
11878 {
11879 "typeIdentifier": "t_rational_0_by_1",
11880 "typeString": "int_const 0"
11881 }
11882 ],
11883 "id": 365,
11884 "isConstant": false,
11885 "isLValue": false,
11886 "isPure": true,
11887 "lValueRequested": false,
11888 "nodeType": "ElementaryTypeNameExpression",
11889 "src": "3312:7:0",
11890 "typeDescriptions": {
11891 "typeIdentifier": "t_type$_t_address_$",
11892 "typeString": "type(address)"
11893 },
11894 "typeName": "address"
11895 },
11896 "id": 367,
11897 "isConstant": false,
11898 "isLValue": false,
11899 "isPure": true,
11900 "kind": "typeConversion",
11901 "lValueRequested": false,
11902 "names": [],
11903 "nodeType": "FunctionCall",
11904 "src": "3312:10:0",
11905 "typeDescriptions": {
11906 "typeIdentifier": "t_address_payable",
11907 "typeString": "address payable"
11908 }
11909 },
11910 "src": "3292:30:0",
11911 "typeDescriptions": {
11912 "typeIdentifier": "t_bool",
11913 "typeString": "bool"
11914 }
11915 },
11916 "nodeType": "BinaryOperation",
11917 "operator": "&&",
11918 "rightExpression": {
11919 "argumentTypes": null,
11920 "commonType": {
11921 "typeIdentifier": "t_address",
11922 "typeString": "address"
11923 },
11924 "id": 371,
11925 "isConstant": false,
11926 "isLValue": false,
11927 "isPure": false,
11928 "lValueRequested": false,
11929 "leftExpression": {
11930 "argumentTypes": null,
11931 "id": 369,
11932 "name": "recoveredAddress",
11933 "nodeType": "Identifier",
11934 "overloadedDeclarations": [],
11935 "referencedDeclaration": 355,
11936 "src": "3326:16:0",
11937 "typeDescriptions": {
11938 "typeIdentifier": "t_address",
11939 "typeString": "address"
11940 }
11941 },
11942 "nodeType": "BinaryOperation",
11943 "operator": "==",
11944 "rightExpression": {
11945 "argumentTypes": null,
11946 "id": 370,
11947 "name": "owner",
11948 "nodeType": "Identifier",
11949 "overloadedDeclarations": [],
11950 "referencedDeclaration": 307,
11951 "src": "3346:5:0",
11952 "typeDescriptions": {
11953 "typeIdentifier": "t_address",
11954 "typeString": "address"
11955 }
11956 },
11957 "src": "3326:25:0",
11958 "typeDescriptions": {
11959 "typeIdentifier": "t_bool",
11960 "typeString": "bool"
11961 }
11962 },
11963 "src": "3292:59:0",
11964 "typeDescriptions": {
11965 "typeIdentifier": "t_bool",
11966 "typeString": "bool"
11967 }
11968 },
11969 {
11970 "argumentTypes": null,
11971 "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245",
11972 "id": 373,
11973 "isConstant": false,
11974 "isLValue": false,
11975 "isPure": true,
11976 "kind": "string",
11977 "lValueRequested": false,
11978 "nodeType": "Literal",
11979 "src": "3353:30:0",
11980 "subdenomination": null,
11981 "typeDescriptions": {
11982 "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56",
11983 "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\""
11984 },
11985 "value": "UniswapV2: INVALID_SIGNATURE"
11986 }
11987 ],
11988 "expression": {
11989 "argumentTypes": [
11990 {
11991 "typeIdentifier": "t_bool",
11992 "typeString": "bool"
11993 },
11994 {
11995 "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56",
11996 "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\""
11997 }
11998 ],
11999 "id": 363,
12000 "name": "require",
12001 "nodeType": "Identifier",
12002 "overloadedDeclarations": [
12003 2620,
12004 2621
12005 ],
12006 "referencedDeclaration": 2621,
12007 "src": "3284:7:0",
12008 "typeDescriptions": {
12009 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
12010 "typeString": "function (bool,string memory) pure"
12011 }
12012 },
12013 "id": 374,
12014 "isConstant": false,
12015 "isLValue": false,
12016 "isPure": false,
12017 "kind": "functionCall",
12018 "lValueRequested": false,
12019 "names": [],
12020 "nodeType": "FunctionCall",
12021 "src": "3284:100:0",
12022 "typeDescriptions": {
12023 "typeIdentifier": "t_tuple$__$",
12024 "typeString": "tuple()"
12025 }
12026 },
12027 "id": 375,
12028 "nodeType": "ExpressionStatement",
12029 "src": "3284:100:0"
12030 },
12031 {
12032 "expression": {
12033 "argumentTypes": null,
12034 "arguments": [
12035 {
12036 "argumentTypes": null,
12037 "id": 377,
12038 "name": "owner",
12039 "nodeType": "Identifier",
12040 "overloadedDeclarations": [],
12041 "referencedDeclaration": 307,
12042 "src": "3403:5:0",
12043 "typeDescriptions": {
12044 "typeIdentifier": "t_address",
12045 "typeString": "address"
12046 }
12047 },
12048 {
12049 "argumentTypes": null,
12050 "id": 378,
12051 "name": "spender",
12052 "nodeType": "Identifier",
12053 "overloadedDeclarations": [],
12054 "referencedDeclaration": 309,
12055 "src": "3410:7:0",
12056 "typeDescriptions": {
12057 "typeIdentifier": "t_address",
12058 "typeString": "address"
12059 }
12060 },
12061 {
12062 "argumentTypes": null,
12063 "id": 379,
12064 "name": "value",
12065 "nodeType": "Identifier",
12066 "overloadedDeclarations": [],
12067 "referencedDeclaration": 311,
12068 "src": "3419:5:0",
12069 "typeDescriptions": {
12070 "typeIdentifier": "t_uint256",
12071 "typeString": "uint256"
12072 }
12073 }
12074 ],
12075 "expression": {
12076 "argumentTypes": [
12077 {
12078 "typeIdentifier": "t_address",
12079 "typeString": "address"
12080 },
12081 {
12082 "typeIdentifier": "t_address",
12083 "typeString": "address"
12084 },
12085 {
12086 "typeIdentifier": "t_uint256",
12087 "typeString": "uint256"
12088 }
12089 ],
12090 "id": 376,
12091 "name": "_approve",
12092 "nodeType": "Identifier",
12093 "overloadedDeclarations": [],
12094 "referencedDeclaration": 179,
12095 "src": "3394:8:0",
12096 "typeDescriptions": {
12097 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
12098 "typeString": "function (address,address,uint256)"
12099 }
12100 },
12101 "id": 380,
12102 "isConstant": false,
12103 "isLValue": false,
12104 "isPure": false,
12105 "kind": "functionCall",
12106 "lValueRequested": false,
12107 "names": [],
12108 "nodeType": "FunctionCall",
12109 "src": "3394:31:0",
12110 "typeDescriptions": {
12111 "typeIdentifier": "t_tuple$__$",
12112 "typeString": "tuple()"
12113 }
12114 },
12115 "id": 381,
12116 "nodeType": "ExpressionStatement",
12117 "src": "3394:31:0"
12118 }
12119 ]
12120 },
12121 "documentation": null,
12122 "id": 383,
12123 "implemented": true,
12124 "kind": "function",
12125 "modifiers": [],
12126 "name": "permit",
12127 "nodeType": "FunctionDefinition",
12128 "parameters": {
12129 "id": 320,
12130 "nodeType": "ParameterList",
12131 "parameters": [
12132 {
12133 "constant": false,
12134 "id": 307,
12135 "name": "owner",
12136 "nodeType": "VariableDeclaration",
12137 "scope": 383,
12138 "src": "2786:13:0",
12139 "stateVariable": false,
12140 "storageLocation": "default",
12141 "typeDescriptions": {
12142 "typeIdentifier": "t_address",
12143 "typeString": "address"
12144 },
12145 "typeName": {
12146 "id": 306,
12147 "name": "address",
12148 "nodeType": "ElementaryTypeName",
12149 "src": "2786:7:0",
12150 "stateMutability": "nonpayable",
12151 "typeDescriptions": {
12152 "typeIdentifier": "t_address",
12153 "typeString": "address"
12154 }
12155 },
12156 "value": null,
12157 "visibility": "internal"
12158 },
12159 {
12160 "constant": false,
12161 "id": 309,
12162 "name": "spender",
12163 "nodeType": "VariableDeclaration",
12164 "scope": 383,
12165 "src": "2801:15:0",
12166 "stateVariable": false,
12167 "storageLocation": "default",
12168 "typeDescriptions": {
12169 "typeIdentifier": "t_address",
12170 "typeString": "address"
12171 },
12172 "typeName": {
12173 "id": 308,
12174 "name": "address",
12175 "nodeType": "ElementaryTypeName",
12176 "src": "2801:7:0",
12177 "stateMutability": "nonpayable",
12178 "typeDescriptions": {
12179 "typeIdentifier": "t_address",
12180 "typeString": "address"
12181 }
12182 },
12183 "value": null,
12184 "visibility": "internal"
12185 },
12186 {
12187 "constant": false,
12188 "id": 311,
12189 "name": "value",
12190 "nodeType": "VariableDeclaration",
12191 "scope": 383,
12192 "src": "2818:10:0",
12193 "stateVariable": false,
12194 "storageLocation": "default",
12195 "typeDescriptions": {
12196 "typeIdentifier": "t_uint256",
12197 "typeString": "uint256"
12198 },
12199 "typeName": {
12200 "id": 310,
12201 "name": "uint",
12202 "nodeType": "ElementaryTypeName",
12203 "src": "2818:4:0",
12204 "typeDescriptions": {
12205 "typeIdentifier": "t_uint256",
12206 "typeString": "uint256"
12207 }
12208 },
12209 "value": null,
12210 "visibility": "internal"
12211 },
12212 {
12213 "constant": false,
12214 "id": 313,
12215 "name": "deadline",
12216 "nodeType": "VariableDeclaration",
12217 "scope": 383,
12218 "src": "2830:13:0",
12219 "stateVariable": false,
12220 "storageLocation": "default",
12221 "typeDescriptions": {
12222 "typeIdentifier": "t_uint256",
12223 "typeString": "uint256"
12224 },
12225 "typeName": {
12226 "id": 312,
12227 "name": "uint",
12228 "nodeType": "ElementaryTypeName",
12229 "src": "2830:4:0",
12230 "typeDescriptions": {
12231 "typeIdentifier": "t_uint256",
12232 "typeString": "uint256"
12233 }
12234 },
12235 "value": null,
12236 "visibility": "internal"
12237 },
12238 {
12239 "constant": false,
12240 "id": 315,
12241 "name": "v",
12242 "nodeType": "VariableDeclaration",
12243 "scope": 383,
12244 "src": "2845:7:0",
12245 "stateVariable": false,
12246 "storageLocation": "default",
12247 "typeDescriptions": {
12248 "typeIdentifier": "t_uint8",
12249 "typeString": "uint8"
12250 },
12251 "typeName": {
12252 "id": 314,
12253 "name": "uint8",
12254 "nodeType": "ElementaryTypeName",
12255 "src": "2845:5:0",
12256 "typeDescriptions": {
12257 "typeIdentifier": "t_uint8",
12258 "typeString": "uint8"
12259 }
12260 },
12261 "value": null,
12262 "visibility": "internal"
12263 },
12264 {
12265 "constant": false,
12266 "id": 317,
12267 "name": "r",
12268 "nodeType": "VariableDeclaration",
12269 "scope": 383,
12270 "src": "2854:9:0",
12271 "stateVariable": false,
12272 "storageLocation": "default",
12273 "typeDescriptions": {
12274 "typeIdentifier": "t_bytes32",
12275 "typeString": "bytes32"
12276 },
12277 "typeName": {
12278 "id": 316,
12279 "name": "bytes32",
12280 "nodeType": "ElementaryTypeName",
12281 "src": "2854:7:0",
12282 "typeDescriptions": {
12283 "typeIdentifier": "t_bytes32",
12284 "typeString": "bytes32"
12285 }
12286 },
12287 "value": null,
12288 "visibility": "internal"
12289 },
12290 {
12291 "constant": false,
12292 "id": 319,
12293 "name": "s",
12294 "nodeType": "VariableDeclaration",
12295 "scope": 383,
12296 "src": "2865:9:0",
12297 "stateVariable": false,
12298 "storageLocation": "default",
12299 "typeDescriptions": {
12300 "typeIdentifier": "t_bytes32",
12301 "typeString": "bytes32"
12302 },
12303 "typeName": {
12304 "id": 318,
12305 "name": "bytes32",
12306 "nodeType": "ElementaryTypeName",
12307 "src": "2865:7:0",
12308 "typeDescriptions": {
12309 "typeIdentifier": "t_bytes32",
12310 "typeString": "bytes32"
12311 }
12312 },
12313 "value": null,
12314 "visibility": "internal"
12315 }
12316 ],
12317 "src": "2785:90:0"
12318 },
12319 "returnParameters": {
12320 "id": 321,
12321 "nodeType": "ParameterList",
12322 "parameters": [],
12323 "src": "2885:0:0"
12324 },
12325 "scope": 384,
12326 "src": "2770:662:0",
12327 "stateMutability": "nonpayable",
12328 "superFunction": 2049,
12329 "visibility": "external"
12330 }
12331 ],
12332 "scope": 385,
12333 "src": "105:3329:0"
12334 }
12335 ],
12336 "src": "0:3435:0"
12337 }
12338 },
12339 "contracts/UniswapV2Factory.sol": {
12340 "id": 1,
12341 "AST": {
12342 "absolutePath": "contracts/UniswapV2Factory.sol",
12343 "exportedSymbols": {
12344 "UniswapV2Factory": [
12345 594
12346 ]
12347 },
12348 "id": 595,
12349 "nodeType": "SourceUnit",
12350 "nodes": [
12351 {
12352 "id": 386,
12353 "literals": [
12354 "solidity",
12355 "=",
12356 "0.5",
12357 ".16"
12358 ],
12359 "nodeType": "PragmaDirective",
12360 "src": "0:24:1"
12361 },
12362 {
12363 "absolutePath": "contracts/interfaces/IUniswapV2Factory.sol",
12364 "file": "./interfaces/IUniswapV2Factory.sol",
12365 "id": 387,
12366 "nodeType": "ImportDirective",
12367 "scope": 595,
12368 "sourceUnit": 2124,
12369 "src": "26:44:1",
12370 "symbolAliases": [],
12371 "unitAlias": ""
12372 },
12373 {
12374 "absolutePath": "contracts/UniswapV2Pair.sol",
12375 "file": "./UniswapV2Pair.sol",
12376 "id": 388,
12377 "nodeType": "ImportDirective",
12378 "scope": 595,
12379 "sourceUnit": 1835,
12380 "src": "71:29:1",
12381 "symbolAliases": [],
12382 "unitAlias": ""
12383 },
12384 {
12385 "baseContracts": [
12386 {
12387 "arguments": null,
12388 "baseName": {
12389 "contractScope": null,
12390 "id": 389,
12391 "name": "IUniswapV2Factory",
12392 "nodeType": "UserDefinedTypeName",
12393 "referencedDeclaration": 2123,
12394 "src": "131:17:1",
12395 "typeDescriptions": {
12396 "typeIdentifier": "t_contract$_IUniswapV2Factory_$2123",
12397 "typeString": "contract IUniswapV2Factory"
12398 }
12399 },
12400 "id": 390,
12401 "nodeType": "InheritanceSpecifier",
12402 "src": "131:17:1"
12403 }
12404 ],
12405 "contractDependencies": [
12406 1834,
12407 2123
12408 ],
12409 "contractKind": "contract",
12410 "documentation": null,
12411 "fullyImplemented": true,
12412 "id": 594,
12413 "linearizedBaseContracts": [
12414 594,
12415 2123
12416 ],
12417 "name": "UniswapV2Factory",
12418 "nodeType": "ContractDefinition",
12419 "nodes": [
12420 {
12421 "constant": false,
12422 "id": 392,
12423 "name": "feeTo",
12424 "nodeType": "VariableDeclaration",
12425 "scope": 594,
12426 "src": "155:20:1",
12427 "stateVariable": true,
12428 "storageLocation": "default",
12429 "typeDescriptions": {
12430 "typeIdentifier": "t_address",
12431 "typeString": "address"
12432 },
12433 "typeName": {
12434 "id": 391,
12435 "name": "address",
12436 "nodeType": "ElementaryTypeName",
12437 "src": "155:7:1",
12438 "stateMutability": "nonpayable",
12439 "typeDescriptions": {
12440 "typeIdentifier": "t_address",
12441 "typeString": "address"
12442 }
12443 },
12444 "value": null,
12445 "visibility": "public"
12446 },
12447 {
12448 "constant": false,
12449 "id": 394,
12450 "name": "feeToSetter",
12451 "nodeType": "VariableDeclaration",
12452 "scope": 594,
12453 "src": "181:26:1",
12454 "stateVariable": true,
12455 "storageLocation": "default",
12456 "typeDescriptions": {
12457 "typeIdentifier": "t_address",
12458 "typeString": "address"
12459 },
12460 "typeName": {
12461 "id": 393,
12462 "name": "address",
12463 "nodeType": "ElementaryTypeName",
12464 "src": "181:7:1",
12465 "stateMutability": "nonpayable",
12466 "typeDescriptions": {
12467 "typeIdentifier": "t_address",
12468 "typeString": "address"
12469 }
12470 },
12471 "value": null,
12472 "visibility": "public"
12473 },
12474 {
12475 "constant": false,
12476 "id": 400,
12477 "name": "getPair",
12478 "nodeType": "VariableDeclaration",
12479 "scope": 594,
12480 "src": "214:62:1",
12481 "stateVariable": true,
12482 "storageLocation": "default",
12483 "typeDescriptions": {
12484 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
12485 "typeString": "mapping(address => mapping(address => address))"
12486 },
12487 "typeName": {
12488 "id": 399,
12489 "keyType": {
12490 "id": 395,
12491 "name": "address",
12492 "nodeType": "ElementaryTypeName",
12493 "src": "222:7:1",
12494 "typeDescriptions": {
12495 "typeIdentifier": "t_address",
12496 "typeString": "address"
12497 }
12498 },
12499 "nodeType": "Mapping",
12500 "src": "214:47:1",
12501 "typeDescriptions": {
12502 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
12503 "typeString": "mapping(address => mapping(address => address))"
12504 },
12505 "valueType": {
12506 "id": 398,
12507 "keyType": {
12508 "id": 396,
12509 "name": "address",
12510 "nodeType": "ElementaryTypeName",
12511 "src": "241:7:1",
12512 "typeDescriptions": {
12513 "typeIdentifier": "t_address",
12514 "typeString": "address"
12515 }
12516 },
12517 "nodeType": "Mapping",
12518 "src": "233:27:1",
12519 "typeDescriptions": {
12520 "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
12521 "typeString": "mapping(address => address)"
12522 },
12523 "valueType": {
12524 "id": 397,
12525 "name": "address",
12526 "nodeType": "ElementaryTypeName",
12527 "src": "252:7:1",
12528 "stateMutability": "nonpayable",
12529 "typeDescriptions": {
12530 "typeIdentifier": "t_address",
12531 "typeString": "address"
12532 }
12533 }
12534 }
12535 },
12536 "value": null,
12537 "visibility": "public"
12538 },
12539 {
12540 "constant": false,
12541 "id": 403,
12542 "name": "allPairs",
12543 "nodeType": "VariableDeclaration",
12544 "scope": 594,
12545 "src": "282:25:1",
12546 "stateVariable": true,
12547 "storageLocation": "default",
12548 "typeDescriptions": {
12549 "typeIdentifier": "t_array$_t_address_$dyn_storage",
12550 "typeString": "address[]"
12551 },
12552 "typeName": {
12553 "baseType": {
12554 "id": 401,
12555 "name": "address",
12556 "nodeType": "ElementaryTypeName",
12557 "src": "282:7:1",
12558 "stateMutability": "nonpayable",
12559 "typeDescriptions": {
12560 "typeIdentifier": "t_address",
12561 "typeString": "address"
12562 }
12563 },
12564 "id": 402,
12565 "length": null,
12566 "nodeType": "ArrayTypeName",
12567 "src": "282:9:1",
12568 "typeDescriptions": {
12569 "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
12570 "typeString": "address[]"
12571 }
12572 },
12573 "value": null,
12574 "visibility": "public"
12575 },
12576 {
12577 "anonymous": false,
12578 "documentation": null,
12579 "id": 413,
12580 "name": "PairCreated",
12581 "nodeType": "EventDefinition",
12582 "parameters": {
12583 "id": 412,
12584 "nodeType": "ParameterList",
12585 "parameters": [
12586 {
12587 "constant": false,
12588 "id": 405,
12589 "indexed": true,
12590 "name": "token0",
12591 "nodeType": "VariableDeclaration",
12592 "scope": 413,
12593 "src": "332:22:1",
12594 "stateVariable": false,
12595 "storageLocation": "default",
12596 "typeDescriptions": {
12597 "typeIdentifier": "t_address",
12598 "typeString": "address"
12599 },
12600 "typeName": {
12601 "id": 404,
12602 "name": "address",
12603 "nodeType": "ElementaryTypeName",
12604 "src": "332:7:1",
12605 "stateMutability": "nonpayable",
12606 "typeDescriptions": {
12607 "typeIdentifier": "t_address",
12608 "typeString": "address"
12609 }
12610 },
12611 "value": null,
12612 "visibility": "internal"
12613 },
12614 {
12615 "constant": false,
12616 "id": 407,
12617 "indexed": true,
12618 "name": "token1",
12619 "nodeType": "VariableDeclaration",
12620 "scope": 413,
12621 "src": "356:22:1",
12622 "stateVariable": false,
12623 "storageLocation": "default",
12624 "typeDescriptions": {
12625 "typeIdentifier": "t_address",
12626 "typeString": "address"
12627 },
12628 "typeName": {
12629 "id": 406,
12630 "name": "address",
12631 "nodeType": "ElementaryTypeName",
12632 "src": "356:7:1",
12633 "stateMutability": "nonpayable",
12634 "typeDescriptions": {
12635 "typeIdentifier": "t_address",
12636 "typeString": "address"
12637 }
12638 },
12639 "value": null,
12640 "visibility": "internal"
12641 },
12642 {
12643 "constant": false,
12644 "id": 409,
12645 "indexed": false,
12646 "name": "pair",
12647 "nodeType": "VariableDeclaration",
12648 "scope": 413,
12649 "src": "380:12:1",
12650 "stateVariable": false,
12651 "storageLocation": "default",
12652 "typeDescriptions": {
12653 "typeIdentifier": "t_address",
12654 "typeString": "address"
12655 },
12656 "typeName": {
12657 "id": 408,
12658 "name": "address",
12659 "nodeType": "ElementaryTypeName",
12660 "src": "380:7:1",
12661 "stateMutability": "nonpayable",
12662 "typeDescriptions": {
12663 "typeIdentifier": "t_address",
12664 "typeString": "address"
12665 }
12666 },
12667 "value": null,
12668 "visibility": "internal"
12669 },
12670 {
12671 "constant": false,
12672 "id": 411,
12673 "indexed": false,
12674 "name": "",
12675 "nodeType": "VariableDeclaration",
12676 "scope": 413,
12677 "src": "394:4:1",
12678 "stateVariable": false,
12679 "storageLocation": "default",
12680 "typeDescriptions": {
12681 "typeIdentifier": "t_uint256",
12682 "typeString": "uint256"
12683 },
12684 "typeName": {
12685 "id": 410,
12686 "name": "uint",
12687 "nodeType": "ElementaryTypeName",
12688 "src": "394:4:1",
12689 "typeDescriptions": {
12690 "typeIdentifier": "t_uint256",
12691 "typeString": "uint256"
12692 }
12693 },
12694 "value": null,
12695 "visibility": "internal"
12696 }
12697 ],
12698 "src": "331:68:1"
12699 },
12700 "src": "314:86:1"
12701 },
12702 {
12703 "body": {
12704 "id": 422,
12705 "nodeType": "Block",
12706 "src": "447:43:1",
12707 "statements": [
12708 {
12709 "expression": {
12710 "argumentTypes": null,
12711 "id": 420,
12712 "isConstant": false,
12713 "isLValue": false,
12714 "isPure": false,
12715 "lValueRequested": false,
12716 "leftHandSide": {
12717 "argumentTypes": null,
12718 "id": 418,
12719 "name": "feeToSetter",
12720 "nodeType": "Identifier",
12721 "overloadedDeclarations": [],
12722 "referencedDeclaration": 394,
12723 "src": "457:11:1",
12724 "typeDescriptions": {
12725 "typeIdentifier": "t_address",
12726 "typeString": "address"
12727 }
12728 },
12729 "nodeType": "Assignment",
12730 "operator": "=",
12731 "rightHandSide": {
12732 "argumentTypes": null,
12733 "id": 419,
12734 "name": "_feeToSetter",
12735 "nodeType": "Identifier",
12736 "overloadedDeclarations": [],
12737 "referencedDeclaration": 415,
12738 "src": "471:12:1",
12739 "typeDescriptions": {
12740 "typeIdentifier": "t_address",
12741 "typeString": "address"
12742 }
12743 },
12744 "src": "457:26:1",
12745 "typeDescriptions": {
12746 "typeIdentifier": "t_address",
12747 "typeString": "address"
12748 }
12749 },
12750 "id": 421,
12751 "nodeType": "ExpressionStatement",
12752 "src": "457:26:1"
12753 }
12754 ]
12755 },
12756 "documentation": null,
12757 "id": 423,
12758 "implemented": true,
12759 "kind": "constructor",
12760 "modifiers": [],
12761 "name": "",
12762 "nodeType": "FunctionDefinition",
12763 "parameters": {
12764 "id": 416,
12765 "nodeType": "ParameterList",
12766 "parameters": [
12767 {
12768 "constant": false,
12769 "id": 415,
12770 "name": "_feeToSetter",
12771 "nodeType": "VariableDeclaration",
12772 "scope": 423,
12773 "src": "418:20:1",
12774 "stateVariable": false,
12775 "storageLocation": "default",
12776 "typeDescriptions": {
12777 "typeIdentifier": "t_address",
12778 "typeString": "address"
12779 },
12780 "typeName": {
12781 "id": 414,
12782 "name": "address",
12783 "nodeType": "ElementaryTypeName",
12784 "src": "418:7:1",
12785 "stateMutability": "nonpayable",
12786 "typeDescriptions": {
12787 "typeIdentifier": "t_address",
12788 "typeString": "address"
12789 }
12790 },
12791 "value": null,
12792 "visibility": "internal"
12793 }
12794 ],
12795 "src": "417:22:1"
12796 },
12797 "returnParameters": {
12798 "id": 417,
12799 "nodeType": "ParameterList",
12800 "parameters": [],
12801 "src": "447:0:1"
12802 },
12803 "scope": 594,
12804 "src": "406:84:1",
12805 "stateMutability": "nonpayable",
12806 "superFunction": null,
12807 "visibility": "public"
12808 },
12809 {
12810 "body": {
12811 "id": 431,
12812 "nodeType": "Block",
12813 "src": "551:39:1",
12814 "statements": [
12815 {
12816 "expression": {
12817 "argumentTypes": null,
12818 "expression": {
12819 "argumentTypes": null,
12820 "id": 428,
12821 "name": "allPairs",
12822 "nodeType": "Identifier",
12823 "overloadedDeclarations": [],
12824 "referencedDeclaration": 403,
12825 "src": "568:8:1",
12826 "typeDescriptions": {
12827 "typeIdentifier": "t_array$_t_address_$dyn_storage",
12828 "typeString": "address[] storage ref"
12829 }
12830 },
12831 "id": 429,
12832 "isConstant": false,
12833 "isLValue": true,
12834 "isPure": false,
12835 "lValueRequested": false,
12836 "memberName": "length",
12837 "nodeType": "MemberAccess",
12838 "referencedDeclaration": null,
12839 "src": "568:15:1",
12840 "typeDescriptions": {
12841 "typeIdentifier": "t_uint256",
12842 "typeString": "uint256"
12843 }
12844 },
12845 "functionReturnParameters": 427,
12846 "id": 430,
12847 "nodeType": "Return",
12848 "src": "561:22:1"
12849 }
12850 ]
12851 },
12852 "documentation": null,
12853 "id": 432,
12854 "implemented": true,
12855 "kind": "function",
12856 "modifiers": [],
12857 "name": "allPairsLength",
12858 "nodeType": "FunctionDefinition",
12859 "parameters": {
12860 "id": 424,
12861 "nodeType": "ParameterList",
12862 "parameters": [],
12863 "src": "519:2:1"
12864 },
12865 "returnParameters": {
12866 "id": 427,
12867 "nodeType": "ParameterList",
12868 "parameters": [
12869 {
12870 "constant": false,
12871 "id": 426,
12872 "name": "",
12873 "nodeType": "VariableDeclaration",
12874 "scope": 432,
12875 "src": "545:4:1",
12876 "stateVariable": false,
12877 "storageLocation": "default",
12878 "typeDescriptions": {
12879 "typeIdentifier": "t_uint256",
12880 "typeString": "uint256"
12881 },
12882 "typeName": {
12883 "id": 425,
12884 "name": "uint",
12885 "nodeType": "ElementaryTypeName",
12886 "src": "545:4:1",
12887 "typeDescriptions": {
12888 "typeIdentifier": "t_uint256",
12889 "typeString": "uint256"
12890 }
12891 },
12892 "value": null,
12893 "visibility": "internal"
12894 }
12895 ],
12896 "src": "544:6:1"
12897 },
12898 "scope": 594,
12899 "src": "496:94:1",
12900 "stateMutability": "view",
12901 "superFunction": 2093,
12902 "visibility": "external"
12903 },
12904 {
12905 "body": {
12906 "id": 556,
12907 "nodeType": "Block",
12908 "src": "744:897:1",
12909 "statements": [
12910 {
12911 "expression": {
12912 "argumentTypes": null,
12913 "arguments": [
12914 {
12915 "argumentTypes": null,
12916 "commonType": {
12917 "typeIdentifier": "t_address",
12918 "typeString": "address"
12919 },
12920 "id": 454,
12921 "isConstant": false,
12922 "isLValue": false,
12923 "isPure": false,
12924 "lValueRequested": false,
12925 "leftExpression": {
12926 "argumentTypes": null,
12927 "id": 452,
12928 "name": "tokenA",
12929 "nodeType": "Identifier",
12930 "overloadedDeclarations": [],
12931 "referencedDeclaration": 434,
12932 "src": "762:6:1",
12933 "typeDescriptions": {
12934 "typeIdentifier": "t_address",
12935 "typeString": "address"
12936 }
12937 },
12938 "nodeType": "BinaryOperation",
12939 "operator": "!=",
12940 "rightExpression": {
12941 "argumentTypes": null,
12942 "id": 453,
12943 "name": "tokenB",
12944 "nodeType": "Identifier",
12945 "overloadedDeclarations": [],
12946 "referencedDeclaration": 436,
12947 "src": "772:6:1",
12948 "typeDescriptions": {
12949 "typeIdentifier": "t_address",
12950 "typeString": "address"
12951 }
12952 },
12953 "src": "762:16:1",
12954 "typeDescriptions": {
12955 "typeIdentifier": "t_bool",
12956 "typeString": "bool"
12957 }
12958 },
12959 {
12960 "argumentTypes": null,
12961 "hexValue": "556e697377617056323a204944454e544943414c5f414444524553534553",
12962 "id": 455,
12963 "isConstant": false,
12964 "isLValue": false,
12965 "isPure": true,
12966 "kind": "string",
12967 "lValueRequested": false,
12968 "nodeType": "Literal",
12969 "src": "780:32:1",
12970 "subdenomination": null,
12971 "typeDescriptions": {
12972 "typeIdentifier": "t_stringliteral_1af2ec9097b2f8bc2dcfea53a9ab4b2cdab42fa29e9a9e04dcb14b4efcc8aa70",
12973 "typeString": "literal_string \"UniswapV2: IDENTICAL_ADDRESSES\""
12974 },
12975 "value": "UniswapV2: IDENTICAL_ADDRESSES"
12976 }
12977 ],
12978 "expression": {
12979 "argumentTypes": [
12980 {
12981 "typeIdentifier": "t_bool",
12982 "typeString": "bool"
12983 },
12984 {
12985 "typeIdentifier": "t_stringliteral_1af2ec9097b2f8bc2dcfea53a9ab4b2cdab42fa29e9a9e04dcb14b4efcc8aa70",
12986 "typeString": "literal_string \"UniswapV2: IDENTICAL_ADDRESSES\""
12987 }
12988 ],
12989 "id": 451,
12990 "name": "require",
12991 "nodeType": "Identifier",
12992 "overloadedDeclarations": [
12993 2620,
12994 2621
12995 ],
12996 "referencedDeclaration": 2621,
12997 "src": "754:7:1",
12998 "typeDescriptions": {
12999 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
13000 "typeString": "function (bool,string memory) pure"
13001 }
13002 },
13003 "id": 456,
13004 "isConstant": false,
13005 "isLValue": false,
13006 "isPure": false,
13007 "kind": "functionCall",
13008 "lValueRequested": false,
13009 "names": [],
13010 "nodeType": "FunctionCall",
13011 "src": "754:59:1",
13012 "typeDescriptions": {
13013 "typeIdentifier": "t_tuple$__$",
13014 "typeString": "tuple()"
13015 }
13016 },
13017 "id": 457,
13018 "nodeType": "ExpressionStatement",
13019 "src": "754:59:1"
13020 },
13021 {
13022 "assignments": [
13023 459,
13024 461
13025 ],
13026 "declarations": [
13027 {
13028 "constant": false,
13029 "id": 459,
13030 "name": "token0",
13031 "nodeType": "VariableDeclaration",
13032 "scope": 556,
13033 "src": "824:14:1",
13034 "stateVariable": false,
13035 "storageLocation": "default",
13036 "typeDescriptions": {
13037 "typeIdentifier": "t_address",
13038 "typeString": "address"
13039 },
13040 "typeName": {
13041 "id": 458,
13042 "name": "address",
13043 "nodeType": "ElementaryTypeName",
13044 "src": "824:7:1",
13045 "stateMutability": "nonpayable",
13046 "typeDescriptions": {
13047 "typeIdentifier": "t_address",
13048 "typeString": "address"
13049 }
13050 },
13051 "value": null,
13052 "visibility": "internal"
13053 },
13054 {
13055 "constant": false,
13056 "id": 461,
13057 "name": "token1",
13058 "nodeType": "VariableDeclaration",
13059 "scope": 556,
13060 "src": "840:14:1",
13061 "stateVariable": false,
13062 "storageLocation": "default",
13063 "typeDescriptions": {
13064 "typeIdentifier": "t_address",
13065 "typeString": "address"
13066 },
13067 "typeName": {
13068 "id": 460,
13069 "name": "address",
13070 "nodeType": "ElementaryTypeName",
13071 "src": "840:7:1",
13072 "stateMutability": "nonpayable",
13073 "typeDescriptions": {
13074 "typeIdentifier": "t_address",
13075 "typeString": "address"
13076 }
13077 },
13078 "value": null,
13079 "visibility": "internal"
13080 }
13081 ],
13082 "id": 472,
13083 "initialValue": {
13084 "argumentTypes": null,
13085 "condition": {
13086 "argumentTypes": null,
13087 "commonType": {
13088 "typeIdentifier": "t_address",
13089 "typeString": "address"
13090 },
13091 "id": 464,
13092 "isConstant": false,
13093 "isLValue": false,
13094 "isPure": false,
13095 "lValueRequested": false,
13096 "leftExpression": {
13097 "argumentTypes": null,
13098 "id": 462,
13099 "name": "tokenA",
13100 "nodeType": "Identifier",
13101 "overloadedDeclarations": [],
13102 "referencedDeclaration": 434,
13103 "src": "858:6:1",
13104 "typeDescriptions": {
13105 "typeIdentifier": "t_address",
13106 "typeString": "address"
13107 }
13108 },
13109 "nodeType": "BinaryOperation",
13110 "operator": "<",
13111 "rightExpression": {
13112 "argumentTypes": null,
13113 "id": 463,
13114 "name": "tokenB",
13115 "nodeType": "Identifier",
13116 "overloadedDeclarations": [],
13117 "referencedDeclaration": 436,
13118 "src": "867:6:1",
13119 "typeDescriptions": {
13120 "typeIdentifier": "t_address",
13121 "typeString": "address"
13122 }
13123 },
13124 "src": "858:15:1",
13125 "typeDescriptions": {
13126 "typeIdentifier": "t_bool",
13127 "typeString": "bool"
13128 }
13129 },
13130 "falseExpression": {
13131 "argumentTypes": null,
13132 "components": [
13133 {
13134 "argumentTypes": null,
13135 "id": 468,
13136 "name": "tokenB",
13137 "nodeType": "Identifier",
13138 "overloadedDeclarations": [],
13139 "referencedDeclaration": 436,
13140 "src": "896:6:1",
13141 "typeDescriptions": {
13142 "typeIdentifier": "t_address",
13143 "typeString": "address"
13144 }
13145 },
13146 {
13147 "argumentTypes": null,
13148 "id": 469,
13149 "name": "tokenA",
13150 "nodeType": "Identifier",
13151 "overloadedDeclarations": [],
13152 "referencedDeclaration": 434,
13153 "src": "904:6:1",
13154 "typeDescriptions": {
13155 "typeIdentifier": "t_address",
13156 "typeString": "address"
13157 }
13158 }
13159 ],
13160 "id": 470,
13161 "isConstant": false,
13162 "isInlineArray": false,
13163 "isLValue": false,
13164 "isPure": false,
13165 "lValueRequested": false,
13166 "nodeType": "TupleExpression",
13167 "src": "895:16:1",
13168 "typeDescriptions": {
13169 "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
13170 "typeString": "tuple(address,address)"
13171 }
13172 },
13173 "id": 471,
13174 "isConstant": false,
13175 "isLValue": false,
13176 "isPure": false,
13177 "lValueRequested": false,
13178 "nodeType": "Conditional",
13179 "src": "858:53:1",
13180 "trueExpression": {
13181 "argumentTypes": null,
13182 "components": [
13183 {
13184 "argumentTypes": null,
13185 "id": 465,
13186 "name": "tokenA",
13187 "nodeType": "Identifier",
13188 "overloadedDeclarations": [],
13189 "referencedDeclaration": 434,
13190 "src": "877:6:1",
13191 "typeDescriptions": {
13192 "typeIdentifier": "t_address",
13193 "typeString": "address"
13194 }
13195 },
13196 {
13197 "argumentTypes": null,
13198 "id": 466,
13199 "name": "tokenB",
13200 "nodeType": "Identifier",
13201 "overloadedDeclarations": [],
13202 "referencedDeclaration": 436,
13203 "src": "885:6:1",
13204 "typeDescriptions": {
13205 "typeIdentifier": "t_address",
13206 "typeString": "address"
13207 }
13208 }
13209 ],
13210 "id": 467,
13211 "isConstant": false,
13212 "isInlineArray": false,
13213 "isLValue": false,
13214 "isPure": false,
13215 "lValueRequested": false,
13216 "nodeType": "TupleExpression",
13217 "src": "876:16:1",
13218 "typeDescriptions": {
13219 "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
13220 "typeString": "tuple(address,address)"
13221 }
13222 },
13223 "typeDescriptions": {
13224 "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
13225 "typeString": "tuple(address,address)"
13226 }
13227 },
13228 "nodeType": "VariableDeclarationStatement",
13229 "src": "823:88:1"
13230 },
13231 {
13232 "expression": {
13233 "argumentTypes": null,
13234 "arguments": [
13235 {
13236 "argumentTypes": null,
13237 "commonType": {
13238 "typeIdentifier": "t_address",
13239 "typeString": "address"
13240 },
13241 "id": 478,
13242 "isConstant": false,
13243 "isLValue": false,
13244 "isPure": false,
13245 "lValueRequested": false,
13246 "leftExpression": {
13247 "argumentTypes": null,
13248 "id": 474,
13249 "name": "token0",
13250 "nodeType": "Identifier",
13251 "overloadedDeclarations": [],
13252 "referencedDeclaration": 459,
13253 "src": "929:6:1",
13254 "typeDescriptions": {
13255 "typeIdentifier": "t_address",
13256 "typeString": "address"
13257 }
13258 },
13259 "nodeType": "BinaryOperation",
13260 "operator": "!=",
13261 "rightExpression": {
13262 "argumentTypes": null,
13263 "arguments": [
13264 {
13265 "argumentTypes": null,
13266 "hexValue": "30",
13267 "id": 476,
13268 "isConstant": false,
13269 "isLValue": false,
13270 "isPure": true,
13271 "kind": "number",
13272 "lValueRequested": false,
13273 "nodeType": "Literal",
13274 "src": "947:1:1",
13275 "subdenomination": null,
13276 "typeDescriptions": {
13277 "typeIdentifier": "t_rational_0_by_1",
13278 "typeString": "int_const 0"
13279 },
13280 "value": "0"
13281 }
13282 ],
13283 "expression": {
13284 "argumentTypes": [
13285 {
13286 "typeIdentifier": "t_rational_0_by_1",
13287 "typeString": "int_const 0"
13288 }
13289 ],
13290 "id": 475,
13291 "isConstant": false,
13292 "isLValue": false,
13293 "isPure": true,
13294 "lValueRequested": false,
13295 "nodeType": "ElementaryTypeNameExpression",
13296 "src": "939:7:1",
13297 "typeDescriptions": {
13298 "typeIdentifier": "t_type$_t_address_$",
13299 "typeString": "type(address)"
13300 },
13301 "typeName": "address"
13302 },
13303 "id": 477,
13304 "isConstant": false,
13305 "isLValue": false,
13306 "isPure": true,
13307 "kind": "typeConversion",
13308 "lValueRequested": false,
13309 "names": [],
13310 "nodeType": "FunctionCall",
13311 "src": "939:10:1",
13312 "typeDescriptions": {
13313 "typeIdentifier": "t_address_payable",
13314 "typeString": "address payable"
13315 }
13316 },
13317 "src": "929:20:1",
13318 "typeDescriptions": {
13319 "typeIdentifier": "t_bool",
13320 "typeString": "bool"
13321 }
13322 },
13323 {
13324 "argumentTypes": null,
13325 "hexValue": "556e697377617056323a205a45524f5f41444452455353",
13326 "id": 479,
13327 "isConstant": false,
13328 "isLValue": false,
13329 "isPure": true,
13330 "kind": "string",
13331 "lValueRequested": false,
13332 "nodeType": "Literal",
13333 "src": "951:25:1",
13334 "subdenomination": null,
13335 "typeDescriptions": {
13336 "typeIdentifier": "t_stringliteral_9fd3496d51391106f97d9c12d75d9ef2543a217eeaf4b9c52c6fdbe23f45a5ae",
13337 "typeString": "literal_string \"UniswapV2: ZERO_ADDRESS\""
13338 },
13339 "value": "UniswapV2: ZERO_ADDRESS"
13340 }
13341 ],
13342 "expression": {
13343 "argumentTypes": [
13344 {
13345 "typeIdentifier": "t_bool",
13346 "typeString": "bool"
13347 },
13348 {
13349 "typeIdentifier": "t_stringliteral_9fd3496d51391106f97d9c12d75d9ef2543a217eeaf4b9c52c6fdbe23f45a5ae",
13350 "typeString": "literal_string \"UniswapV2: ZERO_ADDRESS\""
13351 }
13352 ],
13353 "id": 473,
13354 "name": "require",
13355 "nodeType": "Identifier",
13356 "overloadedDeclarations": [
13357 2620,
13358 2621
13359 ],
13360 "referencedDeclaration": 2621,
13361 "src": "921:7:1",
13362 "typeDescriptions": {
13363 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
13364 "typeString": "function (bool,string memory) pure"
13365 }
13366 },
13367 "id": 480,
13368 "isConstant": false,
13369 "isLValue": false,
13370 "isPure": false,
13371 "kind": "functionCall",
13372 "lValueRequested": false,
13373 "names": [],
13374 "nodeType": "FunctionCall",
13375 "src": "921:56:1",
13376 "typeDescriptions": {
13377 "typeIdentifier": "t_tuple$__$",
13378 "typeString": "tuple()"
13379 }
13380 },
13381 "id": 481,
13382 "nodeType": "ExpressionStatement",
13383 "src": "921:56:1"
13384 },
13385 {
13386 "expression": {
13387 "argumentTypes": null,
13388 "arguments": [
13389 {
13390 "argumentTypes": null,
13391 "commonType": {
13392 "typeIdentifier": "t_address",
13393 "typeString": "address"
13394 },
13395 "id": 491,
13396 "isConstant": false,
13397 "isLValue": false,
13398 "isPure": false,
13399 "lValueRequested": false,
13400 "leftExpression": {
13401 "argumentTypes": null,
13402 "baseExpression": {
13403 "argumentTypes": null,
13404 "baseExpression": {
13405 "argumentTypes": null,
13406 "id": 483,
13407 "name": "getPair",
13408 "nodeType": "Identifier",
13409 "overloadedDeclarations": [],
13410 "referencedDeclaration": 400,
13411 "src": "995:7:1",
13412 "typeDescriptions": {
13413 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
13414 "typeString": "mapping(address => mapping(address => address))"
13415 }
13416 },
13417 "id": 485,
13418 "indexExpression": {
13419 "argumentTypes": null,
13420 "id": 484,
13421 "name": "token0",
13422 "nodeType": "Identifier",
13423 "overloadedDeclarations": [],
13424 "referencedDeclaration": 459,
13425 "src": "1003:6:1",
13426 "typeDescriptions": {
13427 "typeIdentifier": "t_address",
13428 "typeString": "address"
13429 }
13430 },
13431 "isConstant": false,
13432 "isLValue": true,
13433 "isPure": false,
13434 "lValueRequested": false,
13435 "nodeType": "IndexAccess",
13436 "src": "995:15:1",
13437 "typeDescriptions": {
13438 "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
13439 "typeString": "mapping(address => address)"
13440 }
13441 },
13442 "id": 487,
13443 "indexExpression": {
13444 "argumentTypes": null,
13445 "id": 486,
13446 "name": "token1",
13447 "nodeType": "Identifier",
13448 "overloadedDeclarations": [],
13449 "referencedDeclaration": 461,
13450 "src": "1011:6:1",
13451 "typeDescriptions": {
13452 "typeIdentifier": "t_address",
13453 "typeString": "address"
13454 }
13455 },
13456 "isConstant": false,
13457 "isLValue": true,
13458 "isPure": false,
13459 "lValueRequested": false,
13460 "nodeType": "IndexAccess",
13461 "src": "995:23:1",
13462 "typeDescriptions": {
13463 "typeIdentifier": "t_address",
13464 "typeString": "address"
13465 }
13466 },
13467 "nodeType": "BinaryOperation",
13468 "operator": "==",
13469 "rightExpression": {
13470 "argumentTypes": null,
13471 "arguments": [
13472 {
13473 "argumentTypes": null,
13474 "hexValue": "30",
13475 "id": 489,
13476 "isConstant": false,
13477 "isLValue": false,
13478 "isPure": true,
13479 "kind": "number",
13480 "lValueRequested": false,
13481 "nodeType": "Literal",
13482 "src": "1030:1:1",
13483 "subdenomination": null,
13484 "typeDescriptions": {
13485 "typeIdentifier": "t_rational_0_by_1",
13486 "typeString": "int_const 0"
13487 },
13488 "value": "0"
13489 }
13490 ],
13491 "expression": {
13492 "argumentTypes": [
13493 {
13494 "typeIdentifier": "t_rational_0_by_1",
13495 "typeString": "int_const 0"
13496 }
13497 ],
13498 "id": 488,
13499 "isConstant": false,
13500 "isLValue": false,
13501 "isPure": true,
13502 "lValueRequested": false,
13503 "nodeType": "ElementaryTypeNameExpression",
13504 "src": "1022:7:1",
13505 "typeDescriptions": {
13506 "typeIdentifier": "t_type$_t_address_$",
13507 "typeString": "type(address)"
13508 },
13509 "typeName": "address"
13510 },
13511 "id": 490,
13512 "isConstant": false,
13513 "isLValue": false,
13514 "isPure": true,
13515 "kind": "typeConversion",
13516 "lValueRequested": false,
13517 "names": [],
13518 "nodeType": "FunctionCall",
13519 "src": "1022:10:1",
13520 "typeDescriptions": {
13521 "typeIdentifier": "t_address_payable",
13522 "typeString": "address payable"
13523 }
13524 },
13525 "src": "995:37:1",
13526 "typeDescriptions": {
13527 "typeIdentifier": "t_bool",
13528 "typeString": "bool"
13529 }
13530 },
13531 {
13532 "argumentTypes": null,
13533 "hexValue": "556e697377617056323a20504149525f455849535453",
13534 "id": 492,
13535 "isConstant": false,
13536 "isLValue": false,
13537 "isPure": true,
13538 "kind": "string",
13539 "lValueRequested": false,
13540 "nodeType": "Literal",
13541 "src": "1034:24:1",
13542 "subdenomination": null,
13543 "typeDescriptions": {
13544 "typeIdentifier": "t_stringliteral_7597a3317d1f47998beb266ffa8b5f1f9be064321f01552ef08c1fe9eeb777db",
13545 "typeString": "literal_string \"UniswapV2: PAIR_EXISTS\""
13546 },
13547 "value": "UniswapV2: PAIR_EXISTS"
13548 }
13549 ],
13550 "expression": {
13551 "argumentTypes": [
13552 {
13553 "typeIdentifier": "t_bool",
13554 "typeString": "bool"
13555 },
13556 {
13557 "typeIdentifier": "t_stringliteral_7597a3317d1f47998beb266ffa8b5f1f9be064321f01552ef08c1fe9eeb777db",
13558 "typeString": "literal_string \"UniswapV2: PAIR_EXISTS\""
13559 }
13560 ],
13561 "id": 482,
13562 "name": "require",
13563 "nodeType": "Identifier",
13564 "overloadedDeclarations": [
13565 2620,
13566 2621
13567 ],
13568 "referencedDeclaration": 2621,
13569 "src": "987:7:1",
13570 "typeDescriptions": {
13571 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
13572 "typeString": "function (bool,string memory) pure"
13573 }
13574 },
13575 "id": 493,
13576 "isConstant": false,
13577 "isLValue": false,
13578 "isPure": false,
13579 "kind": "functionCall",
13580 "lValueRequested": false,
13581 "names": [],
13582 "nodeType": "FunctionCall",
13583 "src": "987:72:1",
13584 "typeDescriptions": {
13585 "typeIdentifier": "t_tuple$__$",
13586 "typeString": "tuple()"
13587 }
13588 },
13589 "id": 494,
13590 "nodeType": "ExpressionStatement",
13591 "src": "987:72:1"
13592 },
13593 {
13594 "assignments": [
13595 496
13596 ],
13597 "declarations": [
13598 {
13599 "constant": false,
13600 "id": 496,
13601 "name": "bytecode",
13602 "nodeType": "VariableDeclaration",
13603 "scope": 556,
13604 "src": "1099:21:1",
13605 "stateVariable": false,
13606 "storageLocation": "memory",
13607 "typeDescriptions": {
13608 "typeIdentifier": "t_bytes_memory_ptr",
13609 "typeString": "bytes"
13610 },
13611 "typeName": {
13612 "id": 495,
13613 "name": "bytes",
13614 "nodeType": "ElementaryTypeName",
13615 "src": "1099:5:1",
13616 "typeDescriptions": {
13617 "typeIdentifier": "t_bytes_storage_ptr",
13618 "typeString": "bytes"
13619 }
13620 },
13621 "value": null,
13622 "visibility": "internal"
13623 }
13624 ],
13625 "id": 501,
13626 "initialValue": {
13627 "argumentTypes": null,
13628 "expression": {
13629 "argumentTypes": null,
13630 "arguments": [
13631 {
13632 "argumentTypes": null,
13633 "id": 498,
13634 "name": "UniswapV2Pair",
13635 "nodeType": "Identifier",
13636 "overloadedDeclarations": [],
13637 "referencedDeclaration": 1834,
13638 "src": "1128:13:1",
13639 "typeDescriptions": {
13640 "typeIdentifier": "t_type$_t_contract$_UniswapV2Pair_$1834_$",
13641 "typeString": "type(contract UniswapV2Pair)"
13642 }
13643 }
13644 ],
13645 "expression": {
13646 "argumentTypes": [
13647 {
13648 "typeIdentifier": "t_type$_t_contract$_UniswapV2Pair_$1834_$",
13649 "typeString": "type(contract UniswapV2Pair)"
13650 }
13651 ],
13652 "id": 497,
13653 "name": "type",
13654 "nodeType": "Identifier",
13655 "overloadedDeclarations": [],
13656 "referencedDeclaration": 2630,
13657 "src": "1123:4:1",
13658 "typeDescriptions": {
13659 "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$",
13660 "typeString": "function (address) pure"
13661 }
13662 },
13663 "id": 499,
13664 "isConstant": false,
13665 "isLValue": false,
13666 "isPure": true,
13667 "kind": "functionCall",
13668 "lValueRequested": false,
13669 "names": [],
13670 "nodeType": "FunctionCall",
13671 "src": "1123:19:1",
13672 "typeDescriptions": {
13673 "typeIdentifier": "t_magic_meta_type_t_contract$_UniswapV2Pair_$1834",
13674 "typeString": "type(contract UniswapV2Pair)"
13675 }
13676 },
13677 "id": 500,
13678 "isConstant": false,
13679 "isLValue": false,
13680 "isPure": true,
13681 "lValueRequested": false,
13682 "memberName": "creationCode",
13683 "nodeType": "MemberAccess",
13684 "referencedDeclaration": null,
13685 "src": "1123:32:1",
13686 "typeDescriptions": {
13687 "typeIdentifier": "t_bytes_memory_ptr",
13688 "typeString": "bytes memory"
13689 }
13690 },
13691 "nodeType": "VariableDeclarationStatement",
13692 "src": "1099:56:1"
13693 },
13694 {
13695 "assignments": [
13696 503
13697 ],
13698 "declarations": [
13699 {
13700 "constant": false,
13701 "id": 503,
13702 "name": "salt",
13703 "nodeType": "VariableDeclaration",
13704 "scope": 556,
13705 "src": "1165:12:1",
13706 "stateVariable": false,
13707 "storageLocation": "default",
13708 "typeDescriptions": {
13709 "typeIdentifier": "t_bytes32",
13710 "typeString": "bytes32"
13711 },
13712 "typeName": {
13713 "id": 502,
13714 "name": "bytes32",
13715 "nodeType": "ElementaryTypeName",
13716 "src": "1165:7:1",
13717 "typeDescriptions": {
13718 "typeIdentifier": "t_bytes32",
13719 "typeString": "bytes32"
13720 }
13721 },
13722 "value": null,
13723 "visibility": "internal"
13724 }
13725 ],
13726 "id": 511,
13727 "initialValue": {
13728 "argumentTypes": null,
13729 "arguments": [
13730 {
13731 "argumentTypes": null,
13732 "arguments": [
13733 {
13734 "argumentTypes": null,
13735 "id": 507,
13736 "name": "token0",
13737 "nodeType": "Identifier",
13738 "overloadedDeclarations": [],
13739 "referencedDeclaration": 459,
13740 "src": "1207:6:1",
13741 "typeDescriptions": {
13742 "typeIdentifier": "t_address",
13743 "typeString": "address"
13744 }
13745 },
13746 {
13747 "argumentTypes": null,
13748 "id": 508,
13749 "name": "token1",
13750 "nodeType": "Identifier",
13751 "overloadedDeclarations": [],
13752 "referencedDeclaration": 461,
13753 "src": "1215:6:1",
13754 "typeDescriptions": {
13755 "typeIdentifier": "t_address",
13756 "typeString": "address"
13757 }
13758 }
13759 ],
13760 "expression": {
13761 "argumentTypes": [
13762 {
13763 "typeIdentifier": "t_address",
13764 "typeString": "address"
13765 },
13766 {
13767 "typeIdentifier": "t_address",
13768 "typeString": "address"
13769 }
13770 ],
13771 "expression": {
13772 "argumentTypes": null,
13773 "id": 505,
13774 "name": "abi",
13775 "nodeType": "Identifier",
13776 "overloadedDeclarations": [],
13777 "referencedDeclaration": 2604,
13778 "src": "1190:3:1",
13779 "typeDescriptions": {
13780 "typeIdentifier": "t_magic_abi",
13781 "typeString": "abi"
13782 }
13783 },
13784 "id": 506,
13785 "isConstant": false,
13786 "isLValue": false,
13787 "isPure": true,
13788 "lValueRequested": false,
13789 "memberName": "encodePacked",
13790 "nodeType": "MemberAccess",
13791 "referencedDeclaration": null,
13792 "src": "1190:16:1",
13793 "typeDescriptions": {
13794 "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
13795 "typeString": "function () pure returns (bytes memory)"
13796 }
13797 },
13798 "id": 509,
13799 "isConstant": false,
13800 "isLValue": false,
13801 "isPure": false,
13802 "kind": "functionCall",
13803 "lValueRequested": false,
13804 "names": [],
13805 "nodeType": "FunctionCall",
13806 "src": "1190:32:1",
13807 "typeDescriptions": {
13808 "typeIdentifier": "t_bytes_memory_ptr",
13809 "typeString": "bytes memory"
13810 }
13811 }
13812 ],
13813 "expression": {
13814 "argumentTypes": [
13815 {
13816 "typeIdentifier": "t_bytes_memory_ptr",
13817 "typeString": "bytes memory"
13818 }
13819 ],
13820 "id": 504,
13821 "name": "keccak256",
13822 "nodeType": "Identifier",
13823 "overloadedDeclarations": [],
13824 "referencedDeclaration": 2611,
13825 "src": "1180:9:1",
13826 "typeDescriptions": {
13827 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
13828 "typeString": "function (bytes memory) pure returns (bytes32)"
13829 }
13830 },
13831 "id": 510,
13832 "isConstant": false,
13833 "isLValue": false,
13834 "isPure": false,
13835 "kind": "functionCall",
13836 "lValueRequested": false,
13837 "names": [],
13838 "nodeType": "FunctionCall",
13839 "src": "1180:43:1",
13840 "typeDescriptions": {
13841 "typeIdentifier": "t_bytes32",
13842 "typeString": "bytes32"
13843 }
13844 },
13845 "nodeType": "VariableDeclarationStatement",
13846 "src": "1165:58:1"
13847 },
13848 {
13849 "externalReferences": [
13850 {
13851 "pair": {
13852 "declaration": 449,
13853 "isOffset": false,
13854 "isSlot": false,
13855 "src": "1256:4:1",
13856 "valueSize": 1
13857 }
13858 },
13859 {
13860 "bytecode": {
13861 "declaration": 496,
13862 "isOffset": false,
13863 "isSlot": false,
13864 "src": "1300:8:1",
13865 "valueSize": 1
13866 }
13867 },
13868 {
13869 "bytecode": {
13870 "declaration": 496,
13871 "isOffset": false,
13872 "isSlot": false,
13873 "src": "1279:8:1",
13874 "valueSize": 1
13875 }
13876 },
13877 {
13878 "salt": {
13879 "declaration": 503,
13880 "isOffset": false,
13881 "isSlot": false,
13882 "src": "1311:4:1",
13883 "valueSize": 1
13884 }
13885 }
13886 ],
13887 "id": 512,
13888 "nodeType": "InlineAssembly",
13889 "operations": "{\n pair := create2(0, add(bytecode, 32), mload(bytecode), salt)\n}",
13890 "src": "1233:93:1"
13891 },
13892 {
13893 "expression": {
13894 "argumentTypes": null,
13895 "arguments": [
13896 {
13897 "argumentTypes": null,
13898 "id": 517,
13899 "name": "token0",
13900 "nodeType": "Identifier",
13901 "overloadedDeclarations": [],
13902 "referencedDeclaration": 459,
13903 "src": "1367:6:1",
13904 "typeDescriptions": {
13905 "typeIdentifier": "t_address",
13906 "typeString": "address"
13907 }
13908 },
13909 {
13910 "argumentTypes": null,
13911 "id": 518,
13912 "name": "token1",
13913 "nodeType": "Identifier",
13914 "overloadedDeclarations": [],
13915 "referencedDeclaration": 461,
13916 "src": "1375:6:1",
13917 "typeDescriptions": {
13918 "typeIdentifier": "t_address",
13919 "typeString": "address"
13920 }
13921 },
13922 {
13923 "argumentTypes": null,
13924 "id": 519,
13925 "name": "baseToken",
13926 "nodeType": "Identifier",
13927 "overloadedDeclarations": [],
13928 "referencedDeclaration": 438,
13929 "src": "1383:9:1",
13930 "typeDescriptions": {
13931 "typeIdentifier": "t_address",
13932 "typeString": "address"
13933 }
13934 },
13935 {
13936 "argumentTypes": null,
13937 "id": 520,
13938 "name": "pairOwner",
13939 "nodeType": "Identifier",
13940 "overloadedDeclarations": [],
13941 "referencedDeclaration": 440,
13942 "src": "1394:9:1",
13943 "typeDescriptions": {
13944 "typeIdentifier": "t_address",
13945 "typeString": "address"
13946 }
13947 },
13948 {
13949 "argumentTypes": null,
13950 "id": 521,
13951 "name": "m",
13952 "nodeType": "Identifier",
13953 "overloadedDeclarations": [],
13954 "referencedDeclaration": 442,
13955 "src": "1405:1:1",
13956 "typeDescriptions": {
13957 "typeIdentifier": "t_uint256",
13958 "typeString": "uint256"
13959 }
13960 },
13961 {
13962 "argumentTypes": null,
13963 "id": 522,
13964 "name": "n",
13965 "nodeType": "Identifier",
13966 "overloadedDeclarations": [],
13967 "referencedDeclaration": 444,
13968 "src": "1408:1:1",
13969 "typeDescriptions": {
13970 "typeIdentifier": "t_uint256",
13971 "typeString": "uint256"
13972 }
13973 },
13974 {
13975 "argumentTypes": null,
13976 "id": 523,
13977 "name": "fee",
13978 "nodeType": "Identifier",
13979 "overloadedDeclarations": [],
13980 "referencedDeclaration": 446,
13981 "src": "1411:3:1",
13982 "typeDescriptions": {
13983 "typeIdentifier": "t_uint256",
13984 "typeString": "uint256"
13985 }
13986 }
13987 ],
13988 "expression": {
13989 "argumentTypes": [
13990 {
13991 "typeIdentifier": "t_address",
13992 "typeString": "address"
13993 },
13994 {
13995 "typeIdentifier": "t_address",
13996 "typeString": "address"
13997 },
13998 {
13999 "typeIdentifier": "t_address",
14000 "typeString": "address"
14001 },
14002 {
14003 "typeIdentifier": "t_address",
14004 "typeString": "address"
14005 },
14006 {
14007 "typeIdentifier": "t_uint256",
14008 "typeString": "uint256"
14009 },
14010 {
14011 "typeIdentifier": "t_uint256",
14012 "typeString": "uint256"
14013 },
14014 {
14015 "typeIdentifier": "t_uint256",
14016 "typeString": "uint256"
14017 }
14018 ],
14019 "expression": {
14020 "argumentTypes": null,
14021 "arguments": [
14022 {
14023 "argumentTypes": null,
14024 "id": 514,
14025 "name": "pair",
14026 "nodeType": "Identifier",
14027 "overloadedDeclarations": [],
14028 "referencedDeclaration": 449,
14029 "src": "1350:4:1",
14030 "typeDescriptions": {
14031 "typeIdentifier": "t_address",
14032 "typeString": "address"
14033 }
14034 }
14035 ],
14036 "expression": {
14037 "argumentTypes": [
14038 {
14039 "typeIdentifier": "t_address",
14040 "typeString": "address"
14041 }
14042 ],
14043 "id": 513,
14044 "name": "IUniswapV2Pair",
14045 "nodeType": "Identifier",
14046 "overloadedDeclarations": [],
14047 "referencedDeclaration": 2391,
14048 "src": "1335:14:1",
14049 "typeDescriptions": {
14050 "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$2391_$",
14051 "typeString": "type(contract IUniswapV2Pair)"
14052 }
14053 },
14054 "id": 515,
14055 "isConstant": false,
14056 "isLValue": false,
14057 "isPure": false,
14058 "kind": "typeConversion",
14059 "lValueRequested": false,
14060 "names": [],
14061 "nodeType": "FunctionCall",
14062 "src": "1335:20:1",
14063 "typeDescriptions": {
14064 "typeIdentifier": "t_contract$_IUniswapV2Pair_$2391",
14065 "typeString": "contract IUniswapV2Pair"
14066 }
14067 },
14068 "id": 516,
14069 "isConstant": false,
14070 "isLValue": false,
14071 "isPure": false,
14072 "lValueRequested": false,
14073 "memberName": "initialize",
14074 "nodeType": "MemberAccess",
14075 "referencedDeclaration": 2385,
14076 "src": "1335:31:1",
14077 "typeDescriptions": {
14078 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
14079 "typeString": "function (address,address,address,address,uint256,uint256,uint256) external"
14080 }
14081 },
14082 "id": 524,
14083 "isConstant": false,
14084 "isLValue": false,
14085 "isPure": false,
14086 "kind": "functionCall",
14087 "lValueRequested": false,
14088 "names": [],
14089 "nodeType": "FunctionCall",
14090 "src": "1335:80:1",
14091 "typeDescriptions": {
14092 "typeIdentifier": "t_tuple$__$",
14093 "typeString": "tuple()"
14094 }
14095 },
14096 "id": 525,
14097 "nodeType": "ExpressionStatement",
14098 "src": "1335:80:1"
14099 },
14100 {
14101 "expression": {
14102 "argumentTypes": null,
14103 "id": 532,
14104 "isConstant": false,
14105 "isLValue": false,
14106 "isPure": false,
14107 "lValueRequested": false,
14108 "leftHandSide": {
14109 "argumentTypes": null,
14110 "baseExpression": {
14111 "argumentTypes": null,
14112 "baseExpression": {
14113 "argumentTypes": null,
14114 "id": 526,
14115 "name": "getPair",
14116 "nodeType": "Identifier",
14117 "overloadedDeclarations": [],
14118 "referencedDeclaration": 400,
14119 "src": "1425:7:1",
14120 "typeDescriptions": {
14121 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
14122 "typeString": "mapping(address => mapping(address => address))"
14123 }
14124 },
14125 "id": 529,
14126 "indexExpression": {
14127 "argumentTypes": null,
14128 "id": 527,
14129 "name": "token0",
14130 "nodeType": "Identifier",
14131 "overloadedDeclarations": [],
14132 "referencedDeclaration": 459,
14133 "src": "1433:6:1",
14134 "typeDescriptions": {
14135 "typeIdentifier": "t_address",
14136 "typeString": "address"
14137 }
14138 },
14139 "isConstant": false,
14140 "isLValue": true,
14141 "isPure": false,
14142 "lValueRequested": false,
14143 "nodeType": "IndexAccess",
14144 "src": "1425:15:1",
14145 "typeDescriptions": {
14146 "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
14147 "typeString": "mapping(address => address)"
14148 }
14149 },
14150 "id": 530,
14151 "indexExpression": {
14152 "argumentTypes": null,
14153 "id": 528,
14154 "name": "token1",
14155 "nodeType": "Identifier",
14156 "overloadedDeclarations": [],
14157 "referencedDeclaration": 461,
14158 "src": "1441:6:1",
14159 "typeDescriptions": {
14160 "typeIdentifier": "t_address",
14161 "typeString": "address"
14162 }
14163 },
14164 "isConstant": false,
14165 "isLValue": true,
14166 "isPure": false,
14167 "lValueRequested": true,
14168 "nodeType": "IndexAccess",
14169 "src": "1425:23:1",
14170 "typeDescriptions": {
14171 "typeIdentifier": "t_address",
14172 "typeString": "address"
14173 }
14174 },
14175 "nodeType": "Assignment",
14176 "operator": "=",
14177 "rightHandSide": {
14178 "argumentTypes": null,
14179 "id": 531,
14180 "name": "pair",
14181 "nodeType": "Identifier",
14182 "overloadedDeclarations": [],
14183 "referencedDeclaration": 449,
14184 "src": "1451:4:1",
14185 "typeDescriptions": {
14186 "typeIdentifier": "t_address",
14187 "typeString": "address"
14188 }
14189 },
14190 "src": "1425:30:1",
14191 "typeDescriptions": {
14192 "typeIdentifier": "t_address",
14193 "typeString": "address"
14194 }
14195 },
14196 "id": 533,
14197 "nodeType": "ExpressionStatement",
14198 "src": "1425:30:1"
14199 },
14200 {
14201 "expression": {
14202 "argumentTypes": null,
14203 "id": 540,
14204 "isConstant": false,
14205 "isLValue": false,
14206 "isPure": false,
14207 "lValueRequested": false,
14208 "leftHandSide": {
14209 "argumentTypes": null,
14210 "baseExpression": {
14211 "argumentTypes": null,
14212 "baseExpression": {
14213 "argumentTypes": null,
14214 "id": 534,
14215 "name": "getPair",
14216 "nodeType": "Identifier",
14217 "overloadedDeclarations": [],
14218 "referencedDeclaration": 400,
14219 "src": "1465:7:1",
14220 "typeDescriptions": {
14221 "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
14222 "typeString": "mapping(address => mapping(address => address))"
14223 }
14224 },
14225 "id": 537,
14226 "indexExpression": {
14227 "argumentTypes": null,
14228 "id": 535,
14229 "name": "token1",
14230 "nodeType": "Identifier",
14231 "overloadedDeclarations": [],
14232 "referencedDeclaration": 461,
14233 "src": "1473:6:1",
14234 "typeDescriptions": {
14235 "typeIdentifier": "t_address",
14236 "typeString": "address"
14237 }
14238 },
14239 "isConstant": false,
14240 "isLValue": true,
14241 "isPure": false,
14242 "lValueRequested": false,
14243 "nodeType": "IndexAccess",
14244 "src": "1465:15:1",
14245 "typeDescriptions": {
14246 "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
14247 "typeString": "mapping(address => address)"
14248 }
14249 },
14250 "id": 538,
14251 "indexExpression": {
14252 "argumentTypes": null,
14253 "id": 536,
14254 "name": "token0",
14255 "nodeType": "Identifier",
14256 "overloadedDeclarations": [],
14257 "referencedDeclaration": 459,
14258 "src": "1481:6:1",
14259 "typeDescriptions": {
14260 "typeIdentifier": "t_address",
14261 "typeString": "address"
14262 }
14263 },
14264 "isConstant": false,
14265 "isLValue": true,
14266 "isPure": false,
14267 "lValueRequested": true,
14268 "nodeType": "IndexAccess",
14269 "src": "1465:23:1",
14270 "typeDescriptions": {
14271 "typeIdentifier": "t_address",
14272 "typeString": "address"
14273 }
14274 },
14275 "nodeType": "Assignment",
14276 "operator": "=",
14277 "rightHandSide": {
14278 "argumentTypes": null,
14279 "id": 539,
14280 "name": "pair",
14281 "nodeType": "Identifier",
14282 "overloadedDeclarations": [],
14283 "referencedDeclaration": 449,
14284 "src": "1491:4:1",
14285 "typeDescriptions": {
14286 "typeIdentifier": "t_address",
14287 "typeString": "address"
14288 }
14289 },
14290 "src": "1465:30:1",
14291 "typeDescriptions": {
14292 "typeIdentifier": "t_address",
14293 "typeString": "address"
14294 }
14295 },
14296 "id": 541,
14297 "nodeType": "ExpressionStatement",
14298 "src": "1465:30:1"
14299 },
14300 {
14301 "expression": {
14302 "argumentTypes": null,
14303 "arguments": [
14304 {
14305 "argumentTypes": null,
14306 "id": 545,
14307 "name": "pair",
14308 "nodeType": "Identifier",
14309 "overloadedDeclarations": [],
14310 "referencedDeclaration": 449,
14311 "src": "1564:4:1",
14312 "typeDescriptions": {
14313 "typeIdentifier": "t_address",
14314 "typeString": "address"
14315 }
14316 }
14317 ],
14318 "expression": {
14319 "argumentTypes": [
14320 {
14321 "typeIdentifier": "t_address",
14322 "typeString": "address"
14323 }
14324 ],
14325 "expression": {
14326 "argumentTypes": null,
14327 "id": 542,
14328 "name": "allPairs",
14329 "nodeType": "Identifier",
14330 "overloadedDeclarations": [],
14331 "referencedDeclaration": 403,
14332 "src": "1550:8:1",
14333 "typeDescriptions": {
14334 "typeIdentifier": "t_array$_t_address_$dyn_storage",
14335 "typeString": "address[] storage ref"
14336 }
14337 },
14338 "id": 544,
14339 "isConstant": false,
14340 "isLValue": false,
14341 "isPure": false,
14342 "lValueRequested": false,
14343 "memberName": "push",
14344 "nodeType": "MemberAccess",
14345 "referencedDeclaration": null,
14346 "src": "1550:13:1",
14347 "typeDescriptions": {
14348 "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$",
14349 "typeString": "function (address) returns (uint256)"
14350 }
14351 },
14352 "id": 546,
14353 "isConstant": false,
14354 "isLValue": false,
14355 "isPure": false,
14356 "kind": "functionCall",
14357 "lValueRequested": false,
14358 "names": [],
14359 "nodeType": "FunctionCall",
14360 "src": "1550:19:1",
14361 "typeDescriptions": {
14362 "typeIdentifier": "t_uint256",
14363 "typeString": "uint256"
14364 }
14365 },
14366 "id": 547,
14367 "nodeType": "ExpressionStatement",
14368 "src": "1550:19:1"
14369 },
14370 {
14371 "eventCall": {
14372 "argumentTypes": null,
14373 "arguments": [
14374 {
14375 "argumentTypes": null,
14376 "id": 549,
14377 "name": "token0",
14378 "nodeType": "Identifier",
14379 "overloadedDeclarations": [],
14380 "referencedDeclaration": 459,
14381 "src": "1596:6:1",
14382 "typeDescriptions": {
14383 "typeIdentifier": "t_address",
14384 "typeString": "address"
14385 }
14386 },
14387 {
14388 "argumentTypes": null,
14389 "id": 550,
14390 "name": "token1",
14391 "nodeType": "Identifier",
14392 "overloadedDeclarations": [],
14393 "referencedDeclaration": 461,
14394 "src": "1604:6:1",
14395 "typeDescriptions": {
14396 "typeIdentifier": "t_address",
14397 "typeString": "address"
14398 }
14399 },
14400 {
14401 "argumentTypes": null,
14402 "id": 551,
14403 "name": "pair",
14404 "nodeType": "Identifier",
14405 "overloadedDeclarations": [],
14406 "referencedDeclaration": 449,
14407 "src": "1612:4:1",
14408 "typeDescriptions": {
14409 "typeIdentifier": "t_address",
14410 "typeString": "address"
14411 }
14412 },
14413 {
14414 "argumentTypes": null,
14415 "expression": {
14416 "argumentTypes": null,
14417 "id": 552,
14418 "name": "allPairs",
14419 "nodeType": "Identifier",
14420 "overloadedDeclarations": [],
14421 "referencedDeclaration": 403,
14422 "src": "1618:8:1",
14423 "typeDescriptions": {
14424 "typeIdentifier": "t_array$_t_address_$dyn_storage",
14425 "typeString": "address[] storage ref"
14426 }
14427 },
14428 "id": 553,
14429 "isConstant": false,
14430 "isLValue": true,
14431 "isPure": false,
14432 "lValueRequested": false,
14433 "memberName": "length",
14434 "nodeType": "MemberAccess",
14435 "referencedDeclaration": null,
14436 "src": "1618:15:1",
14437 "typeDescriptions": {
14438 "typeIdentifier": "t_uint256",
14439 "typeString": "uint256"
14440 }
14441 }
14442 ],
14443 "expression": {
14444 "argumentTypes": [
14445 {
14446 "typeIdentifier": "t_address",
14447 "typeString": "address"
14448 },
14449 {
14450 "typeIdentifier": "t_address",
14451 "typeString": "address"
14452 },
14453 {
14454 "typeIdentifier": "t_address",
14455 "typeString": "address"
14456 },
14457 {
14458 "typeIdentifier": "t_uint256",
14459 "typeString": "uint256"
14460 }
14461 ],
14462 "id": 548,
14463 "name": "PairCreated",
14464 "nodeType": "Identifier",
14465 "overloadedDeclarations": [
14466 413
14467 ],
14468 "referencedDeclaration": 413,
14469 "src": "1584:11:1",
14470 "typeDescriptions": {
14471 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$",
14472 "typeString": "function (address,address,address,uint256)"
14473 }
14474 },
14475 "id": 554,
14476 "isConstant": false,
14477 "isLValue": false,
14478 "isPure": false,
14479 "kind": "functionCall",
14480 "lValueRequested": false,
14481 "names": [],
14482 "nodeType": "FunctionCall",
14483 "src": "1584:50:1",
14484 "typeDescriptions": {
14485 "typeIdentifier": "t_tuple$__$",
14486 "typeString": "tuple()"
14487 }
14488 },
14489 "id": 555,
14490 "nodeType": "EmitStatement",
14491 "src": "1579:55:1"
14492 }
14493 ]
14494 },
14495 "documentation": null,
14496 "id": 557,
14497 "implemented": true,
14498 "kind": "function",
14499 "modifiers": [],
14500 "name": "createPair",
14501 "nodeType": "FunctionDefinition",
14502 "parameters": {
14503 "id": 447,
14504 "nodeType": "ParameterList",
14505 "parameters": [
14506 {
14507 "constant": false,
14508 "id": 434,
14509 "name": "tokenA",
14510 "nodeType": "VariableDeclaration",
14511 "scope": 557,
14512 "src": "616:14:1",
14513 "stateVariable": false,
14514 "storageLocation": "default",
14515 "typeDescriptions": {
14516 "typeIdentifier": "t_address",
14517 "typeString": "address"
14518 },
14519 "typeName": {
14520 "id": 433,
14521 "name": "address",
14522 "nodeType": "ElementaryTypeName",
14523 "src": "616:7:1",
14524 "stateMutability": "nonpayable",
14525 "typeDescriptions": {
14526 "typeIdentifier": "t_address",
14527 "typeString": "address"
14528 }
14529 },
14530 "value": null,
14531 "visibility": "internal"
14532 },
14533 {
14534 "constant": false,
14535 "id": 436,
14536 "name": "tokenB",
14537 "nodeType": "VariableDeclaration",
14538 "scope": 557,
14539 "src": "632:14:1",
14540 "stateVariable": false,
14541 "storageLocation": "default",
14542 "typeDescriptions": {
14543 "typeIdentifier": "t_address",
14544 "typeString": "address"
14545 },
14546 "typeName": {
14547 "id": 435,
14548 "name": "address",
14549 "nodeType": "ElementaryTypeName",
14550 "src": "632:7:1",
14551 "stateMutability": "nonpayable",
14552 "typeDescriptions": {
14553 "typeIdentifier": "t_address",
14554 "typeString": "address"
14555 }
14556 },
14557 "value": null,
14558 "visibility": "internal"
14559 },
14560 {
14561 "constant": false,
14562 "id": 438,
14563 "name": "baseToken",
14564 "nodeType": "VariableDeclaration",
14565 "scope": 557,
14566 "src": "648:17:1",
14567 "stateVariable": false,
14568 "storageLocation": "default",
14569 "typeDescriptions": {
14570 "typeIdentifier": "t_address",
14571 "typeString": "address"
14572 },
14573 "typeName": {
14574 "id": 437,
14575 "name": "address",
14576 "nodeType": "ElementaryTypeName",
14577 "src": "648:7:1",
14578 "stateMutability": "nonpayable",
14579 "typeDescriptions": {
14580 "typeIdentifier": "t_address",
14581 "typeString": "address"
14582 }
14583 },
14584 "value": null,
14585 "visibility": "internal"
14586 },
14587 {
14588 "constant": false,
14589 "id": 440,
14590 "name": "pairOwner",
14591 "nodeType": "VariableDeclaration",
14592 "scope": 557,
14593 "src": "667:17:1",
14594 "stateVariable": false,
14595 "storageLocation": "default",
14596 "typeDescriptions": {
14597 "typeIdentifier": "t_address",
14598 "typeString": "address"
14599 },
14600 "typeName": {
14601 "id": 439,
14602 "name": "address",
14603 "nodeType": "ElementaryTypeName",
14604 "src": "667:7:1",
14605 "stateMutability": "nonpayable",
14606 "typeDescriptions": {
14607 "typeIdentifier": "t_address",
14608 "typeString": "address"
14609 }
14610 },
14611 "value": null,
14612 "visibility": "internal"
14613 },
14614 {
14615 "constant": false,
14616 "id": 442,
14617 "name": "m",
14618 "nodeType": "VariableDeclaration",
14619 "scope": 557,
14620 "src": "686:6:1",
14621 "stateVariable": false,
14622 "storageLocation": "default",
14623 "typeDescriptions": {
14624 "typeIdentifier": "t_uint256",
14625 "typeString": "uint256"
14626 },
14627 "typeName": {
14628 "id": 441,
14629 "name": "uint",
14630 "nodeType": "ElementaryTypeName",
14631 "src": "686:4:1",
14632 "typeDescriptions": {
14633 "typeIdentifier": "t_uint256",
14634 "typeString": "uint256"
14635 }
14636 },
14637 "value": null,
14638 "visibility": "internal"
14639 },
14640 {
14641 "constant": false,
14642 "id": 444,
14643 "name": "n",
14644 "nodeType": "VariableDeclaration",
14645 "scope": 557,
14646 "src": "694:6:1",
14647 "stateVariable": false,
14648 "storageLocation": "default",
14649 "typeDescriptions": {
14650 "typeIdentifier": "t_uint256",
14651 "typeString": "uint256"
14652 },
14653 "typeName": {
14654 "id": 443,
14655 "name": "uint",
14656 "nodeType": "ElementaryTypeName",
14657 "src": "694:4:1",
14658 "typeDescriptions": {
14659 "typeIdentifier": "t_uint256",
14660 "typeString": "uint256"
14661 }
14662 },
14663 "value": null,
14664 "visibility": "internal"
14665 },
14666 {
14667 "constant": false,
14668 "id": 446,
14669 "name": "fee",
14670 "nodeType": "VariableDeclaration",
14671 "scope": 557,
14672 "src": "702:8:1",
14673 "stateVariable": false,
14674 "storageLocation": "default",
14675 "typeDescriptions": {
14676 "typeIdentifier": "t_uint256",
14677 "typeString": "uint256"
14678 },
14679 "typeName": {
14680 "id": 445,
14681 "name": "uint",
14682 "nodeType": "ElementaryTypeName",
14683 "src": "702:4:1",
14684 "typeDescriptions": {
14685 "typeIdentifier": "t_uint256",
14686 "typeString": "uint256"
14687 }
14688 },
14689 "value": null,
14690 "visibility": "internal"
14691 }
14692 ],
14693 "src": "615:96:1"
14694 },
14695 "returnParameters": {
14696 "id": 450,
14697 "nodeType": "ParameterList",
14698 "parameters": [
14699 {
14700 "constant": false,
14701 "id": 449,
14702 "name": "pair",
14703 "nodeType": "VariableDeclaration",
14704 "scope": 557,
14705 "src": "730:12:1",
14706 "stateVariable": false,
14707 "storageLocation": "default",
14708 "typeDescriptions": {
14709 "typeIdentifier": "t_address",
14710 "typeString": "address"
14711 },
14712 "typeName": {
14713 "id": 448,
14714 "name": "address",
14715 "nodeType": "ElementaryTypeName",
14716 "src": "730:7:1",
14717 "stateMutability": "nonpayable",
14718 "typeDescriptions": {
14719 "typeIdentifier": "t_address",
14720 "typeString": "address"
14721 }
14722 },
14723 "value": null,
14724 "visibility": "internal"
14725 }
14726 ],
14727 "src": "729:14:1"
14728 },
14729 "scope": 594,
14730 "src": "596:1045:1",
14731 "stateMutability": "nonpayable",
14732 "superFunction": 2112,
14733 "visibility": "external"
14734 },
14735 {
14736 "body": {
14737 "id": 574,
14738 "nodeType": "Block",
14739 "src": "1690:99:1",
14740 "statements": [
14741 {
14742 "expression": {
14743 "argumentTypes": null,
14744 "arguments": [
14745 {
14746 "argumentTypes": null,
14747 "commonType": {
14748 "typeIdentifier": "t_address",
14749 "typeString": "address"
14750 },
14751 "id": 566,
14752 "isConstant": false,
14753 "isLValue": false,
14754 "isPure": false,
14755 "lValueRequested": false,
14756 "leftExpression": {
14757 "argumentTypes": null,
14758 "expression": {
14759 "argumentTypes": null,
14760 "id": 563,
14761 "name": "msg",
14762 "nodeType": "Identifier",
14763 "overloadedDeclarations": [],
14764 "referencedDeclaration": 2617,
14765 "src": "1708:3:1",
14766 "typeDescriptions": {
14767 "typeIdentifier": "t_magic_message",
14768 "typeString": "msg"
14769 }
14770 },
14771 "id": 564,
14772 "isConstant": false,
14773 "isLValue": false,
14774 "isPure": false,
14775 "lValueRequested": false,
14776 "memberName": "sender",
14777 "nodeType": "MemberAccess",
14778 "referencedDeclaration": null,
14779 "src": "1708:10:1",
14780 "typeDescriptions": {
14781 "typeIdentifier": "t_address_payable",
14782 "typeString": "address payable"
14783 }
14784 },
14785 "nodeType": "BinaryOperation",
14786 "operator": "==",
14787 "rightExpression": {
14788 "argumentTypes": null,
14789 "id": 565,
14790 "name": "feeToSetter",
14791 "nodeType": "Identifier",
14792 "overloadedDeclarations": [],
14793 "referencedDeclaration": 394,
14794 "src": "1722:11:1",
14795 "typeDescriptions": {
14796 "typeIdentifier": "t_address",
14797 "typeString": "address"
14798 }
14799 },
14800 "src": "1708:25:1",
14801 "typeDescriptions": {
14802 "typeIdentifier": "t_bool",
14803 "typeString": "bool"
14804 }
14805 },
14806 {
14807 "argumentTypes": null,
14808 "hexValue": "556e697377617056323a20464f5242494444454e",
14809 "id": 567,
14810 "isConstant": false,
14811 "isLValue": false,
14812 "isPure": true,
14813 "kind": "string",
14814 "lValueRequested": false,
14815 "nodeType": "Literal",
14816 "src": "1735:22:1",
14817 "subdenomination": null,
14818 "typeDescriptions": {
14819 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
14820 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
14821 },
14822 "value": "UniswapV2: FORBIDDEN"
14823 }
14824 ],
14825 "expression": {
14826 "argumentTypes": [
14827 {
14828 "typeIdentifier": "t_bool",
14829 "typeString": "bool"
14830 },
14831 {
14832 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
14833 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
14834 }
14835 ],
14836 "id": 562,
14837 "name": "require",
14838 "nodeType": "Identifier",
14839 "overloadedDeclarations": [
14840 2620,
14841 2621
14842 ],
14843 "referencedDeclaration": 2621,
14844 "src": "1700:7:1",
14845 "typeDescriptions": {
14846 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
14847 "typeString": "function (bool,string memory) pure"
14848 }
14849 },
14850 "id": 568,
14851 "isConstant": false,
14852 "isLValue": false,
14853 "isPure": false,
14854 "kind": "functionCall",
14855 "lValueRequested": false,
14856 "names": [],
14857 "nodeType": "FunctionCall",
14858 "src": "1700:58:1",
14859 "typeDescriptions": {
14860 "typeIdentifier": "t_tuple$__$",
14861 "typeString": "tuple()"
14862 }
14863 },
14864 "id": 569,
14865 "nodeType": "ExpressionStatement",
14866 "src": "1700:58:1"
14867 },
14868 {
14869 "expression": {
14870 "argumentTypes": null,
14871 "id": 572,
14872 "isConstant": false,
14873 "isLValue": false,
14874 "isPure": false,
14875 "lValueRequested": false,
14876 "leftHandSide": {
14877 "argumentTypes": null,
14878 "id": 570,
14879 "name": "feeTo",
14880 "nodeType": "Identifier",
14881 "overloadedDeclarations": [],
14882 "referencedDeclaration": 392,
14883 "src": "1768:5:1",
14884 "typeDescriptions": {
14885 "typeIdentifier": "t_address",
14886 "typeString": "address"
14887 }
14888 },
14889 "nodeType": "Assignment",
14890 "operator": "=",
14891 "rightHandSide": {
14892 "argumentTypes": null,
14893 "id": 571,
14894 "name": "_feeTo",
14895 "nodeType": "Identifier",
14896 "overloadedDeclarations": [],
14897 "referencedDeclaration": 559,
14898 "src": "1776:6:1",
14899 "typeDescriptions": {
14900 "typeIdentifier": "t_address",
14901 "typeString": "address"
14902 }
14903 },
14904 "src": "1768:14:1",
14905 "typeDescriptions": {
14906 "typeIdentifier": "t_address",
14907 "typeString": "address"
14908 }
14909 },
14910 "id": 573,
14911 "nodeType": "ExpressionStatement",
14912 "src": "1768:14:1"
14913 }
14914 ]
14915 },
14916 "documentation": null,
14917 "id": 575,
14918 "implemented": true,
14919 "kind": "function",
14920 "modifiers": [],
14921 "name": "setFeeTo",
14922 "nodeType": "FunctionDefinition",
14923 "parameters": {
14924 "id": 560,
14925 "nodeType": "ParameterList",
14926 "parameters": [
14927 {
14928 "constant": false,
14929 "id": 559,
14930 "name": "_feeTo",
14931 "nodeType": "VariableDeclaration",
14932 "scope": 575,
14933 "src": "1665:14:1",
14934 "stateVariable": false,
14935 "storageLocation": "default",
14936 "typeDescriptions": {
14937 "typeIdentifier": "t_address",
14938 "typeString": "address"
14939 },
14940 "typeName": {
14941 "id": 558,
14942 "name": "address",
14943 "nodeType": "ElementaryTypeName",
14944 "src": "1665:7:1",
14945 "stateMutability": "nonpayable",
14946 "typeDescriptions": {
14947 "typeIdentifier": "t_address",
14948 "typeString": "address"
14949 }
14950 },
14951 "value": null,
14952 "visibility": "internal"
14953 }
14954 ],
14955 "src": "1664:16:1"
14956 },
14957 "returnParameters": {
14958 "id": 561,
14959 "nodeType": "ParameterList",
14960 "parameters": [],
14961 "src": "1690:0:1"
14962 },
14963 "scope": 594,
14964 "src": "1647:142:1",
14965 "stateMutability": "nonpayable",
14966 "superFunction": 2117,
14967 "visibility": "external"
14968 },
14969 {
14970 "body": {
14971 "id": 592,
14972 "nodeType": "Block",
14973 "src": "1850:111:1",
14974 "statements": [
14975 {
14976 "expression": {
14977 "argumentTypes": null,
14978 "arguments": [
14979 {
14980 "argumentTypes": null,
14981 "commonType": {
14982 "typeIdentifier": "t_address",
14983 "typeString": "address"
14984 },
14985 "id": 584,
14986 "isConstant": false,
14987 "isLValue": false,
14988 "isPure": false,
14989 "lValueRequested": false,
14990 "leftExpression": {
14991 "argumentTypes": null,
14992 "expression": {
14993 "argumentTypes": null,
14994 "id": 581,
14995 "name": "msg",
14996 "nodeType": "Identifier",
14997 "overloadedDeclarations": [],
14998 "referencedDeclaration": 2617,
14999 "src": "1868:3:1",
15000 "typeDescriptions": {
15001 "typeIdentifier": "t_magic_message",
15002 "typeString": "msg"
15003 }
15004 },
15005 "id": 582,
15006 "isConstant": false,
15007 "isLValue": false,
15008 "isPure": false,
15009 "lValueRequested": false,
15010 "memberName": "sender",
15011 "nodeType": "MemberAccess",
15012 "referencedDeclaration": null,
15013 "src": "1868:10:1",
15014 "typeDescriptions": {
15015 "typeIdentifier": "t_address_payable",
15016 "typeString": "address payable"
15017 }
15018 },
15019 "nodeType": "BinaryOperation",
15020 "operator": "==",
15021 "rightExpression": {
15022 "argumentTypes": null,
15023 "id": 583,
15024 "name": "feeToSetter",
15025 "nodeType": "Identifier",
15026 "overloadedDeclarations": [],
15027 "referencedDeclaration": 394,
15028 "src": "1882:11:1",
15029 "typeDescriptions": {
15030 "typeIdentifier": "t_address",
15031 "typeString": "address"
15032 }
15033 },
15034 "src": "1868:25:1",
15035 "typeDescriptions": {
15036 "typeIdentifier": "t_bool",
15037 "typeString": "bool"
15038 }
15039 },
15040 {
15041 "argumentTypes": null,
15042 "hexValue": "556e697377617056323a20464f5242494444454e",
15043 "id": 585,
15044 "isConstant": false,
15045 "isLValue": false,
15046 "isPure": true,
15047 "kind": "string",
15048 "lValueRequested": false,
15049 "nodeType": "Literal",
15050 "src": "1895:22:1",
15051 "subdenomination": null,
15052 "typeDescriptions": {
15053 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
15054 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
15055 },
15056 "value": "UniswapV2: FORBIDDEN"
15057 }
15058 ],
15059 "expression": {
15060 "argumentTypes": [
15061 {
15062 "typeIdentifier": "t_bool",
15063 "typeString": "bool"
15064 },
15065 {
15066 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
15067 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
15068 }
15069 ],
15070 "id": 580,
15071 "name": "require",
15072 "nodeType": "Identifier",
15073 "overloadedDeclarations": [
15074 2620,
15075 2621
15076 ],
15077 "referencedDeclaration": 2621,
15078 "src": "1860:7:1",
15079 "typeDescriptions": {
15080 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
15081 "typeString": "function (bool,string memory) pure"
15082 }
15083 },
15084 "id": 586,
15085 "isConstant": false,
15086 "isLValue": false,
15087 "isPure": false,
15088 "kind": "functionCall",
15089 "lValueRequested": false,
15090 "names": [],
15091 "nodeType": "FunctionCall",
15092 "src": "1860:58:1",
15093 "typeDescriptions": {
15094 "typeIdentifier": "t_tuple$__$",
15095 "typeString": "tuple()"
15096 }
15097 },
15098 "id": 587,
15099 "nodeType": "ExpressionStatement",
15100 "src": "1860:58:1"
15101 },
15102 {
15103 "expression": {
15104 "argumentTypes": null,
15105 "id": 590,
15106 "isConstant": false,
15107 "isLValue": false,
15108 "isPure": false,
15109 "lValueRequested": false,
15110 "leftHandSide": {
15111 "argumentTypes": null,
15112 "id": 588,
15113 "name": "feeToSetter",
15114 "nodeType": "Identifier",
15115 "overloadedDeclarations": [],
15116 "referencedDeclaration": 394,
15117 "src": "1928:11:1",
15118 "typeDescriptions": {
15119 "typeIdentifier": "t_address",
15120 "typeString": "address"
15121 }
15122 },
15123 "nodeType": "Assignment",
15124 "operator": "=",
15125 "rightHandSide": {
15126 "argumentTypes": null,
15127 "id": 589,
15128 "name": "_feeToSetter",
15129 "nodeType": "Identifier",
15130 "overloadedDeclarations": [],
15131 "referencedDeclaration": 577,
15132 "src": "1942:12:1",
15133 "typeDescriptions": {
15134 "typeIdentifier": "t_address",
15135 "typeString": "address"
15136 }
15137 },
15138 "src": "1928:26:1",
15139 "typeDescriptions": {
15140 "typeIdentifier": "t_address",
15141 "typeString": "address"
15142 }
15143 },
15144 "id": 591,
15145 "nodeType": "ExpressionStatement",
15146 "src": "1928:26:1"
15147 }
15148 ]
15149 },
15150 "documentation": null,
15151 "id": 593,
15152 "implemented": true,
15153 "kind": "function",
15154 "modifiers": [],
15155 "name": "setFeeToSetter",
15156 "nodeType": "FunctionDefinition",
15157 "parameters": {
15158 "id": 578,
15159 "nodeType": "ParameterList",
15160 "parameters": [
15161 {
15162 "constant": false,
15163 "id": 577,
15164 "name": "_feeToSetter",
15165 "nodeType": "VariableDeclaration",
15166 "scope": 593,
15167 "src": "1819:20:1",
15168 "stateVariable": false,
15169 "storageLocation": "default",
15170 "typeDescriptions": {
15171 "typeIdentifier": "t_address",
15172 "typeString": "address"
15173 },
15174 "typeName": {
15175 "id": 576,
15176 "name": "address",
15177 "nodeType": "ElementaryTypeName",
15178 "src": "1819:7:1",
15179 "stateMutability": "nonpayable",
15180 "typeDescriptions": {
15181 "typeIdentifier": "t_address",
15182 "typeString": "address"
15183 }
15184 },
15185 "value": null,
15186 "visibility": "internal"
15187 }
15188 ],
15189 "src": "1818:22:1"
15190 },
15191 "returnParameters": {
15192 "id": 579,
15193 "nodeType": "ParameterList",
15194 "parameters": [],
15195 "src": "1850:0:1"
15196 },
15197 "scope": 594,
15198 "src": "1795:166:1",
15199 "stateMutability": "nonpayable",
15200 "superFunction": 2122,
15201 "visibility": "external"
15202 }
15203 ],
15204 "scope": 595,
15205 "src": "102:1861:1"
15206 }
15207 ],
15208 "src": "0:1964:1"
15209 }
15210 },
15211 "contracts/UniswapV2Pair.sol": {
15212 "id": 2,
15213 "AST": {
15214 "absolutePath": "contracts/UniswapV2Pair.sol",
15215 "exportedSymbols": {
15216 "UniswapV2Pair": [
15217 1834
15218 ]
15219 },
15220 "id": 1835,
15221 "nodeType": "SourceUnit",
15222 "nodes": [
15223 {
15224 "id": 596,
15225 "literals": [
15226 "solidity",
15227 "=",
15228 "0.5",
15229 ".16"
15230 ],
15231 "nodeType": "PragmaDirective",
15232 "src": "0:24:2"
15233 },
15234 {
15235 "absolutePath": "contracts/interfaces/IUniswapV2Pair.sol",
15236 "file": "./interfaces/IUniswapV2Pair.sol",
15237 "id": 597,
15238 "nodeType": "ImportDirective",
15239 "scope": 1835,
15240 "sourceUnit": 2392,
15241 "src": "26:41:2",
15242 "symbolAliases": [],
15243 "unitAlias": ""
15244 },
15245 {
15246 "absolutePath": "contracts/UniswapV2ERC20.sol",
15247 "file": "./UniswapV2ERC20.sol",
15248 "id": 598,
15249 "nodeType": "ImportDirective",
15250 "scope": 1835,
15251 "sourceUnit": 385,
15252 "src": "68:30:2",
15253 "symbolAliases": [],
15254 "unitAlias": ""
15255 },
15256 {
15257 "absolutePath": "contracts/libraries/Math.sol",
15258 "file": "./libraries/Math.sol",
15259 "id": 599,
15260 "nodeType": "ImportDirective",
15261 "scope": 1835,
15262 "sourceUnit": 2468,
15263 "src": "99:30:2",
15264 "symbolAliases": [],
15265 "unitAlias": ""
15266 },
15267 {
15268 "absolutePath": "contracts/libraries/UQ112x112.sol",
15269 "file": "./libraries/UQ112x112.sol",
15270 "id": 600,
15271 "nodeType": "ImportDirective",
15272 "scope": 1835,
15273 "sourceUnit": 2585,
15274 "src": "130:35:2",
15275 "symbolAliases": [],
15276 "unitAlias": ""
15277 },
15278 {
15279 "absolutePath": "contracts/interfaces/IERC20.sol",
15280 "file": "./interfaces/IERC20.sol",
15281 "id": 601,
15282 "nodeType": "ImportDirective",
15283 "scope": 1835,
15284 "sourceUnit": 1919,
15285 "src": "166:33:2",
15286 "symbolAliases": [],
15287 "unitAlias": ""
15288 },
15289 {
15290 "absolutePath": "contracts/interfaces/IUniswapV2Factory.sol",
15291 "file": "./interfaces/IUniswapV2Factory.sol",
15292 "id": 602,
15293 "nodeType": "ImportDirective",
15294 "scope": 1835,
15295 "sourceUnit": 2124,
15296 "src": "200:44:2",
15297 "symbolAliases": [],
15298 "unitAlias": ""
15299 },
15300 {
15301 "absolutePath": "contracts/interfaces/IUniswapV2Callee.sol",
15302 "file": "./interfaces/IUniswapV2Callee.sol",
15303 "id": 603,
15304 "nodeType": "ImportDirective",
15305 "scope": 1835,
15306 "sourceUnit": 1933,
15307 "src": "245:43:2",
15308 "symbolAliases": [],
15309 "unitAlias": ""
15310 },
15311 {
15312 "baseContracts": [
15313 {
15314 "arguments": null,
15315 "baseName": {
15316 "contractScope": null,
15317 "id": 604,
15318 "name": "IUniswapV2Pair",
15319 "nodeType": "UserDefinedTypeName",
15320 "referencedDeclaration": 2391,
15321 "src": "316:14:2",
15322 "typeDescriptions": {
15323 "typeIdentifier": "t_contract$_IUniswapV2Pair_$2391",
15324 "typeString": "contract IUniswapV2Pair"
15325 }
15326 },
15327 "id": 605,
15328 "nodeType": "InheritanceSpecifier",
15329 "src": "316:14:2"
15330 },
15331 {
15332 "arguments": null,
15333 "baseName": {
15334 "contractScope": null,
15335 "id": 606,
15336 "name": "UniswapV2ERC20",
15337 "nodeType": "UserDefinedTypeName",
15338 "referencedDeclaration": 384,
15339 "src": "332:14:2",
15340 "typeDescriptions": {
15341 "typeIdentifier": "t_contract$_UniswapV2ERC20_$384",
15342 "typeString": "contract UniswapV2ERC20"
15343 }
15344 },
15345 "id": 607,
15346 "nodeType": "InheritanceSpecifier",
15347 "src": "332:14:2"
15348 }
15349 ],
15350 "contractDependencies": [
15351 384,
15352 2050,
15353 2391
15354 ],
15355 "contractKind": "contract",
15356 "documentation": null,
15357 "fullyImplemented": true,
15358 "id": 1834,
15359 "linearizedBaseContracts": [
15360 1834,
15361 384,
15362 2050,
15363 2391
15364 ],
15365 "name": "UniswapV2Pair",
15366 "nodeType": "ContractDefinition",
15367 "nodes": [
15368 {
15369 "id": 610,
15370 "libraryName": {
15371 "contractScope": null,
15372 "id": 608,
15373 "name": "SafeMath",
15374 "nodeType": "UserDefinedTypeName",
15375 "referencedDeclaration": 2542,
15376 "src": "359:8:2",
15377 "typeDescriptions": {
15378 "typeIdentifier": "t_contract$_SafeMath_$2542",
15379 "typeString": "library SafeMath"
15380 }
15381 },
15382 "nodeType": "UsingForDirective",
15383 "src": "353:25:2",
15384 "typeName": {
15385 "id": 609,
15386 "name": "uint",
15387 "nodeType": "ElementaryTypeName",
15388 "src": "373:4:2",
15389 "typeDescriptions": {
15390 "typeIdentifier": "t_uint256",
15391 "typeString": "uint256"
15392 }
15393 }
15394 },
15395 {
15396 "id": 613,
15397 "libraryName": {
15398 "contractScope": null,
15399 "id": 611,
15400 "name": "UQ112x112",
15401 "nodeType": "UserDefinedTypeName",
15402 "referencedDeclaration": 2584,
15403 "src": "389:9:2",
15404 "typeDescriptions": {
15405 "typeIdentifier": "t_contract$_UQ112x112_$2584",
15406 "typeString": "library UQ112x112"
15407 }
15408 },
15409 "nodeType": "UsingForDirective",
15410 "src": "383:28:2",
15411 "typeName": {
15412 "id": 612,
15413 "name": "uint224",
15414 "nodeType": "ElementaryTypeName",
15415 "src": "403:7:2",
15416 "typeDescriptions": {
15417 "typeIdentifier": "t_uint224",
15418 "typeString": "uint224"
15419 }
15420 }
15421 },
15422 {
15423 "constant": true,
15424 "id": 618,
15425 "name": "MINIMUM_LIQUIDITY",
15426 "nodeType": "VariableDeclaration",
15427 "scope": 1834,
15428 "src": "417:46:2",
15429 "stateVariable": true,
15430 "storageLocation": "default",
15431 "typeDescriptions": {
15432 "typeIdentifier": "t_uint256",
15433 "typeString": "uint256"
15434 },
15435 "typeName": {
15436 "id": 614,
15437 "name": "uint",
15438 "nodeType": "ElementaryTypeName",
15439 "src": "417:4:2",
15440 "typeDescriptions": {
15441 "typeIdentifier": "t_uint256",
15442 "typeString": "uint256"
15443 }
15444 },
15445 "value": {
15446 "argumentTypes": null,
15447 "commonType": {
15448 "typeIdentifier": "t_rational_1000_by_1",
15449 "typeString": "int_const 1000"
15450 },
15451 "id": 617,
15452 "isConstant": false,
15453 "isLValue": false,
15454 "isPure": true,
15455 "lValueRequested": false,
15456 "leftExpression": {
15457 "argumentTypes": null,
15458 "hexValue": "3130",
15459 "id": 615,
15460 "isConstant": false,
15461 "isLValue": false,
15462 "isPure": true,
15463 "kind": "number",
15464 "lValueRequested": false,
15465 "nodeType": "Literal",
15466 "src": "458:2:2",
15467 "subdenomination": null,
15468 "typeDescriptions": {
15469 "typeIdentifier": "t_rational_10_by_1",
15470 "typeString": "int_const 10"
15471 },
15472 "value": "10"
15473 },
15474 "nodeType": "BinaryOperation",
15475 "operator": "**",
15476 "rightExpression": {
15477 "argumentTypes": null,
15478 "hexValue": "33",
15479 "id": 616,
15480 "isConstant": false,
15481 "isLValue": false,
15482 "isPure": true,
15483 "kind": "number",
15484 "lValueRequested": false,
15485 "nodeType": "Literal",
15486 "src": "462:1:2",
15487 "subdenomination": null,
15488 "typeDescriptions": {
15489 "typeIdentifier": "t_rational_3_by_1",
15490 "typeString": "int_const 3"
15491 },
15492 "value": "3"
15493 },
15494 "src": "458:5:2",
15495 "typeDescriptions": {
15496 "typeIdentifier": "t_rational_1000_by_1",
15497 "typeString": "int_const 1000"
15498 }
15499 },
15500 "visibility": "public"
15501 },
15502 {
15503 "constant": true,
15504 "id": 627,
15505 "name": "SELECTOR",
15506 "nodeType": "VariableDeclaration",
15507 "scope": 1834,
15508 "src": "469:88:2",
15509 "stateVariable": true,
15510 "storageLocation": "default",
15511 "typeDescriptions": {
15512 "typeIdentifier": "t_bytes4",
15513 "typeString": "bytes4"
15514 },
15515 "typeName": {
15516 "id": 619,
15517 "name": "bytes4",
15518 "nodeType": "ElementaryTypeName",
15519 "src": "469:6:2",
15520 "typeDescriptions": {
15521 "typeIdentifier": "t_bytes4",
15522 "typeString": "bytes4"
15523 }
15524 },
15525 "value": {
15526 "argumentTypes": null,
15527 "arguments": [
15528 {
15529 "argumentTypes": null,
15530 "arguments": [
15531 {
15532 "argumentTypes": null,
15533 "arguments": [
15534 {
15535 "argumentTypes": null,
15536 "hexValue": "7472616e7366657228616464726573732c75696e7432353629",
15537 "id": 623,
15538 "isConstant": false,
15539 "isLValue": false,
15540 "isPure": true,
15541 "kind": "string",
15542 "lValueRequested": false,
15543 "nodeType": "Literal",
15544 "src": "527:27:2",
15545 "subdenomination": null,
15546 "typeDescriptions": {
15547 "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
15548 "typeString": "literal_string \"transfer(address,uint256)\""
15549 },
15550 "value": "transfer(address,uint256)"
15551 }
15552 ],
15553 "expression": {
15554 "argumentTypes": [
15555 {
15556 "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
15557 "typeString": "literal_string \"transfer(address,uint256)\""
15558 }
15559 ],
15560 "id": 622,
15561 "isConstant": false,
15562 "isLValue": false,
15563 "isPure": true,
15564 "lValueRequested": false,
15565 "nodeType": "ElementaryTypeNameExpression",
15566 "src": "521:5:2",
15567 "typeDescriptions": {
15568 "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
15569 "typeString": "type(bytes storage pointer)"
15570 },
15571 "typeName": "bytes"
15572 },
15573 "id": 624,
15574 "isConstant": false,
15575 "isLValue": false,
15576 "isPure": true,
15577 "kind": "typeConversion",
15578 "lValueRequested": false,
15579 "names": [],
15580 "nodeType": "FunctionCall",
15581 "src": "521:34:2",
15582 "typeDescriptions": {
15583 "typeIdentifier": "t_bytes_memory_ptr",
15584 "typeString": "bytes memory"
15585 }
15586 }
15587 ],
15588 "expression": {
15589 "argumentTypes": [
15590 {
15591 "typeIdentifier": "t_bytes_memory_ptr",
15592 "typeString": "bytes memory"
15593 }
15594 ],
15595 "id": 621,
15596 "name": "keccak256",
15597 "nodeType": "Identifier",
15598 "overloadedDeclarations": [],
15599 "referencedDeclaration": 2611,
15600 "src": "511:9:2",
15601 "typeDescriptions": {
15602 "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
15603 "typeString": "function (bytes memory) pure returns (bytes32)"
15604 }
15605 },
15606 "id": 625,
15607 "isConstant": false,
15608 "isLValue": false,
15609 "isPure": true,
15610 "kind": "functionCall",
15611 "lValueRequested": false,
15612 "names": [],
15613 "nodeType": "FunctionCall",
15614 "src": "511:45:2",
15615 "typeDescriptions": {
15616 "typeIdentifier": "t_bytes32",
15617 "typeString": "bytes32"
15618 }
15619 }
15620 ],
15621 "expression": {
15622 "argumentTypes": [
15623 {
15624 "typeIdentifier": "t_bytes32",
15625 "typeString": "bytes32"
15626 }
15627 ],
15628 "id": 620,
15629 "isConstant": false,
15630 "isLValue": false,
15631 "isPure": true,
15632 "lValueRequested": false,
15633 "nodeType": "ElementaryTypeNameExpression",
15634 "src": "504:6:2",
15635 "typeDescriptions": {
15636 "typeIdentifier": "t_type$_t_bytes4_$",
15637 "typeString": "type(bytes4)"
15638 },
15639 "typeName": "bytes4"
15640 },
15641 "id": 626,
15642 "isConstant": false,
15643 "isLValue": false,
15644 "isPure": true,
15645 "kind": "typeConversion",
15646 "lValueRequested": false,
15647 "names": [],
15648 "nodeType": "FunctionCall",
15649 "src": "504:53:2",
15650 "typeDescriptions": {
15651 "typeIdentifier": "t_bytes4",
15652 "typeString": "bytes4"
15653 }
15654 },
15655 "visibility": "private"
15656 },
15657 {
15658 "constant": false,
15659 "id": 629,
15660 "name": "factory",
15661 "nodeType": "VariableDeclaration",
15662 "scope": 1834,
15663 "src": "564:22:2",
15664 "stateVariable": true,
15665 "storageLocation": "default",
15666 "typeDescriptions": {
15667 "typeIdentifier": "t_address",
15668 "typeString": "address"
15669 },
15670 "typeName": {
15671 "id": 628,
15672 "name": "address",
15673 "nodeType": "ElementaryTypeName",
15674 "src": "564:7:2",
15675 "stateMutability": "nonpayable",
15676 "typeDescriptions": {
15677 "typeIdentifier": "t_address",
15678 "typeString": "address"
15679 }
15680 },
15681 "value": null,
15682 "visibility": "public"
15683 },
15684 {
15685 "constant": false,
15686 "id": 631,
15687 "name": "token0",
15688 "nodeType": "VariableDeclaration",
15689 "scope": 1834,
15690 "src": "592:21:2",
15691 "stateVariable": true,
15692 "storageLocation": "default",
15693 "typeDescriptions": {
15694 "typeIdentifier": "t_address",
15695 "typeString": "address"
15696 },
15697 "typeName": {
15698 "id": 630,
15699 "name": "address",
15700 "nodeType": "ElementaryTypeName",
15701 "src": "592:7:2",
15702 "stateMutability": "nonpayable",
15703 "typeDescriptions": {
15704 "typeIdentifier": "t_address",
15705 "typeString": "address"
15706 }
15707 },
15708 "value": null,
15709 "visibility": "public"
15710 },
15711 {
15712 "constant": false,
15713 "id": 633,
15714 "name": "token1",
15715 "nodeType": "VariableDeclaration",
15716 "scope": 1834,
15717 "src": "619:21:2",
15718 "stateVariable": true,
15719 "storageLocation": "default",
15720 "typeDescriptions": {
15721 "typeIdentifier": "t_address",
15722 "typeString": "address"
15723 },
15724 "typeName": {
15725 "id": 632,
15726 "name": "address",
15727 "nodeType": "ElementaryTypeName",
15728 "src": "619:7:2",
15729 "stateMutability": "nonpayable",
15730 "typeDescriptions": {
15731 "typeIdentifier": "t_address",
15732 "typeString": "address"
15733 }
15734 },
15735 "value": null,
15736 "visibility": "public"
15737 },
15738 {
15739 "constant": false,
15740 "id": 635,
15741 "name": "baseToken",
15742 "nodeType": "VariableDeclaration",
15743 "scope": 1834,
15744 "src": "646:24:2",
15745 "stateVariable": true,
15746 "storageLocation": "default",
15747 "typeDescriptions": {
15748 "typeIdentifier": "t_address",
15749 "typeString": "address"
15750 },
15751 "typeName": {
15752 "id": 634,
15753 "name": "address",
15754 "nodeType": "ElementaryTypeName",
15755 "src": "646:7:2",
15756 "stateMutability": "nonpayable",
15757 "typeDescriptions": {
15758 "typeIdentifier": "t_address",
15759 "typeString": "address"
15760 }
15761 },
15762 "value": null,
15763 "visibility": "public"
15764 },
15765 {
15766 "constant": false,
15767 "id": 637,
15768 "name": "pairOwner",
15769 "nodeType": "VariableDeclaration",
15770 "scope": 1834,
15771 "src": "676:24:2",
15772 "stateVariable": true,
15773 "storageLocation": "default",
15774 "typeDescriptions": {
15775 "typeIdentifier": "t_address",
15776 "typeString": "address"
15777 },
15778 "typeName": {
15779 "id": 636,
15780 "name": "address",
15781 "nodeType": "ElementaryTypeName",
15782 "src": "676:7:2",
15783 "stateMutability": "nonpayable",
15784 "typeDescriptions": {
15785 "typeIdentifier": "t_address",
15786 "typeString": "address"
15787 }
15788 },
15789 "value": null,
15790 "visibility": "public"
15791 },
15792 {
15793 "constant": false,
15794 "id": 639,
15795 "name": "m",
15796 "nodeType": "VariableDeclaration",
15797 "scope": 1834,
15798 "src": "706:13:2",
15799 "stateVariable": true,
15800 "storageLocation": "default",
15801 "typeDescriptions": {
15802 "typeIdentifier": "t_uint256",
15803 "typeString": "uint256"
15804 },
15805 "typeName": {
15806 "id": 638,
15807 "name": "uint",
15808 "nodeType": "ElementaryTypeName",
15809 "src": "706:4:2",
15810 "typeDescriptions": {
15811 "typeIdentifier": "t_uint256",
15812 "typeString": "uint256"
15813 }
15814 },
15815 "value": null,
15816 "visibility": "public"
15817 },
15818 {
15819 "constant": false,
15820 "id": 641,
15821 "name": "n",
15822 "nodeType": "VariableDeclaration",
15823 "scope": 1834,
15824 "src": "818:13:2",
15825 "stateVariable": true,
15826 "storageLocation": "default",
15827 "typeDescriptions": {
15828 "typeIdentifier": "t_uint256",
15829 "typeString": "uint256"
15830 },
15831 "typeName": {
15832 "id": 640,
15833 "name": "uint",
15834 "nodeType": "ElementaryTypeName",
15835 "src": "818:4:2",
15836 "typeDescriptions": {
15837 "typeIdentifier": "t_uint256",
15838 "typeString": "uint256"
15839 }
15840 },
15841 "value": null,
15842 "visibility": "public"
15843 },
15844 {
15845 "constant": false,
15846 "id": 643,
15847 "name": "fee",
15848 "nodeType": "VariableDeclaration",
15849 "scope": 1834,
15850 "src": "893:15:2",
15851 "stateVariable": true,
15852 "storageLocation": "default",
15853 "typeDescriptions": {
15854 "typeIdentifier": "t_uint256",
15855 "typeString": "uint256"
15856 },
15857 "typeName": {
15858 "id": 642,
15859 "name": "uint",
15860 "nodeType": "ElementaryTypeName",
15861 "src": "893:4:2",
15862 "typeDescriptions": {
15863 "typeIdentifier": "t_uint256",
15864 "typeString": "uint256"
15865 }
15866 },
15867 "value": null,
15868 "visibility": "public"
15869 },
15870 {
15871 "constant": false,
15872 "id": 645,
15873 "name": "reserve0",
15874 "nodeType": "VariableDeclaration",
15875 "scope": 1834,
15876 "src": "915:24:2",
15877 "stateVariable": true,
15878 "storageLocation": "default",
15879 "typeDescriptions": {
15880 "typeIdentifier": "t_uint112",
15881 "typeString": "uint112"
15882 },
15883 "typeName": {
15884 "id": 644,
15885 "name": "uint112",
15886 "nodeType": "ElementaryTypeName",
15887 "src": "915:7:2",
15888 "typeDescriptions": {
15889 "typeIdentifier": "t_uint112",
15890 "typeString": "uint112"
15891 }
15892 },
15893 "value": null,
15894 "visibility": "private"
15895 },
15896 {
15897 "constant": false,
15898 "id": 647,
15899 "name": "reserve1",
15900 "nodeType": "VariableDeclaration",
15901 "scope": 1834,
15902 "src": "1011:24:2",
15903 "stateVariable": true,
15904 "storageLocation": "default",
15905 "typeDescriptions": {
15906 "typeIdentifier": "t_uint112",
15907 "typeString": "uint112"
15908 },
15909 "typeName": {
15910 "id": 646,
15911 "name": "uint112",
15912 "nodeType": "ElementaryTypeName",
15913 "src": "1011:7:2",
15914 "typeDescriptions": {
15915 "typeIdentifier": "t_uint112",
15916 "typeString": "uint112"
15917 }
15918 },
15919 "value": null,
15920 "visibility": "private"
15921 },
15922 {
15923 "constant": false,
15924 "id": 649,
15925 "name": "blockTimestampLast",
15926 "nodeType": "VariableDeclaration",
15927 "scope": 1834,
15928 "src": "1107:33:2",
15929 "stateVariable": true,
15930 "storageLocation": "default",
15931 "typeDescriptions": {
15932 "typeIdentifier": "t_uint32",
15933 "typeString": "uint32"
15934 },
15935 "typeName": {
15936 "id": 648,
15937 "name": "uint32",
15938 "nodeType": "ElementaryTypeName",
15939 "src": "1107:6:2",
15940 "typeDescriptions": {
15941 "typeIdentifier": "t_uint32",
15942 "typeString": "uint32"
15943 }
15944 },
15945 "value": null,
15946 "visibility": "public"
15947 },
15948 {
15949 "constant": false,
15950 "id": 651,
15951 "name": "price0CumulativeLast",
15952 "nodeType": "VariableDeclaration",
15953 "scope": 1834,
15954 "src": "1203:32:2",
15955 "stateVariable": true,
15956 "storageLocation": "default",
15957 "typeDescriptions": {
15958 "typeIdentifier": "t_uint256",
15959 "typeString": "uint256"
15960 },
15961 "typeName": {
15962 "id": 650,
15963 "name": "uint",
15964 "nodeType": "ElementaryTypeName",
15965 "src": "1203:4:2",
15966 "typeDescriptions": {
15967 "typeIdentifier": "t_uint256",
15968 "typeString": "uint256"
15969 }
15970 },
15971 "value": null,
15972 "visibility": "public"
15973 },
15974 {
15975 "constant": false,
15976 "id": 653,
15977 "name": "price1CumulativeLast",
15978 "nodeType": "VariableDeclaration",
15979 "scope": 1834,
15980 "src": "1241:32:2",
15981 "stateVariable": true,
15982 "storageLocation": "default",
15983 "typeDescriptions": {
15984 "typeIdentifier": "t_uint256",
15985 "typeString": "uint256"
15986 },
15987 "typeName": {
15988 "id": 652,
15989 "name": "uint",
15990 "nodeType": "ElementaryTypeName",
15991 "src": "1241:4:2",
15992 "typeDescriptions": {
15993 "typeIdentifier": "t_uint256",
15994 "typeString": "uint256"
15995 }
15996 },
15997 "value": null,
15998 "visibility": "public"
15999 },
16000 {
16001 "constant": false,
16002 "id": 655,
16003 "name": "kLast",
16004 "nodeType": "VariableDeclaration",
16005 "scope": 1834,
16006 "src": "1279:17:2",
16007 "stateVariable": true,
16008 "storageLocation": "default",
16009 "typeDescriptions": {
16010 "typeIdentifier": "t_uint256",
16011 "typeString": "uint256"
16012 },
16013 "typeName": {
16014 "id": 654,
16015 "name": "uint",
16016 "nodeType": "ElementaryTypeName",
16017 "src": "1279:4:2",
16018 "typeDescriptions": {
16019 "typeIdentifier": "t_uint256",
16020 "typeString": "uint256"
16021 }
16022 },
16023 "value": null,
16024 "visibility": "public"
16025 },
16026 {
16027 "constant": false,
16028 "id": 658,
16029 "name": "unlocked",
16030 "nodeType": "VariableDeclaration",
16031 "scope": 1834,
16032 "src": "1383:25:2",
16033 "stateVariable": true,
16034 "storageLocation": "default",
16035 "typeDescriptions": {
16036 "typeIdentifier": "t_uint256",
16037 "typeString": "uint256"
16038 },
16039 "typeName": {
16040 "id": 656,
16041 "name": "uint",
16042 "nodeType": "ElementaryTypeName",
16043 "src": "1383:4:2",
16044 "typeDescriptions": {
16045 "typeIdentifier": "t_uint256",
16046 "typeString": "uint256"
16047 }
16048 },
16049 "value": {
16050 "argumentTypes": null,
16051 "hexValue": "31",
16052 "id": 657,
16053 "isConstant": false,
16054 "isLValue": false,
16055 "isPure": true,
16056 "kind": "number",
16057 "lValueRequested": false,
16058 "nodeType": "Literal",
16059 "src": "1407:1:2",
16060 "subdenomination": null,
16061 "typeDescriptions": {
16062 "typeIdentifier": "t_rational_1_by_1",
16063 "typeString": "int_const 1"
16064 },
16065 "value": "1"
16066 },
16067 "visibility": "private"
16068 },
16069 {
16070 "body": {
16071 "id": 676,
16072 "nodeType": "Block",
16073 "src": "1431:115:2",
16074 "statements": [
16075 {
16076 "expression": {
16077 "argumentTypes": null,
16078 "arguments": [
16079 {
16080 "argumentTypes": null,
16081 "commonType": {
16082 "typeIdentifier": "t_uint256",
16083 "typeString": "uint256"
16084 },
16085 "id": 663,
16086 "isConstant": false,
16087 "isLValue": false,
16088 "isPure": false,
16089 "lValueRequested": false,
16090 "leftExpression": {
16091 "argumentTypes": null,
16092 "id": 661,
16093 "name": "unlocked",
16094 "nodeType": "Identifier",
16095 "overloadedDeclarations": [],
16096 "referencedDeclaration": 658,
16097 "src": "1449:8:2",
16098 "typeDescriptions": {
16099 "typeIdentifier": "t_uint256",
16100 "typeString": "uint256"
16101 }
16102 },
16103 "nodeType": "BinaryOperation",
16104 "operator": "==",
16105 "rightExpression": {
16106 "argumentTypes": null,
16107 "hexValue": "31",
16108 "id": 662,
16109 "isConstant": false,
16110 "isLValue": false,
16111 "isPure": true,
16112 "kind": "number",
16113 "lValueRequested": false,
16114 "nodeType": "Literal",
16115 "src": "1461:1:2",
16116 "subdenomination": null,
16117 "typeDescriptions": {
16118 "typeIdentifier": "t_rational_1_by_1",
16119 "typeString": "int_const 1"
16120 },
16121 "value": "1"
16122 },
16123 "src": "1449:13:2",
16124 "typeDescriptions": {
16125 "typeIdentifier": "t_bool",
16126 "typeString": "bool"
16127 }
16128 },
16129 {
16130 "argumentTypes": null,
16131 "hexValue": "556e697377617056323a204c4f434b4544",
16132 "id": 664,
16133 "isConstant": false,
16134 "isLValue": false,
16135 "isPure": true,
16136 "kind": "string",
16137 "lValueRequested": false,
16138 "nodeType": "Literal",
16139 "src": "1464:19:2",
16140 "subdenomination": null,
16141 "typeDescriptions": {
16142 "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a",
16143 "typeString": "literal_string \"UniswapV2: LOCKED\""
16144 },
16145 "value": "UniswapV2: LOCKED"
16146 }
16147 ],
16148 "expression": {
16149 "argumentTypes": [
16150 {
16151 "typeIdentifier": "t_bool",
16152 "typeString": "bool"
16153 },
16154 {
16155 "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a",
16156 "typeString": "literal_string \"UniswapV2: LOCKED\""
16157 }
16158 ],
16159 "id": 660,
16160 "name": "require",
16161 "nodeType": "Identifier",
16162 "overloadedDeclarations": [
16163 2620,
16164 2621
16165 ],
16166 "referencedDeclaration": 2621,
16167 "src": "1441:7:2",
16168 "typeDescriptions": {
16169 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
16170 "typeString": "function (bool,string memory) pure"
16171 }
16172 },
16173 "id": 665,
16174 "isConstant": false,
16175 "isLValue": false,
16176 "isPure": false,
16177 "kind": "functionCall",
16178 "lValueRequested": false,
16179 "names": [],
16180 "nodeType": "FunctionCall",
16181 "src": "1441:43:2",
16182 "typeDescriptions": {
16183 "typeIdentifier": "t_tuple$__$",
16184 "typeString": "tuple()"
16185 }
16186 },
16187 "id": 666,
16188 "nodeType": "ExpressionStatement",
16189 "src": "1441:43:2"
16190 },
16191 {
16192 "expression": {
16193 "argumentTypes": null,
16194 "id": 669,
16195 "isConstant": false,
16196 "isLValue": false,
16197 "isPure": false,
16198 "lValueRequested": false,
16199 "leftHandSide": {
16200 "argumentTypes": null,
16201 "id": 667,
16202 "name": "unlocked",
16203 "nodeType": "Identifier",
16204 "overloadedDeclarations": [],
16205 "referencedDeclaration": 658,
16206 "src": "1494:8:2",
16207 "typeDescriptions": {
16208 "typeIdentifier": "t_uint256",
16209 "typeString": "uint256"
16210 }
16211 },
16212 "nodeType": "Assignment",
16213 "operator": "=",
16214 "rightHandSide": {
16215 "argumentTypes": null,
16216 "hexValue": "30",
16217 "id": 668,
16218 "isConstant": false,
16219 "isLValue": false,
16220 "isPure": true,
16221 "kind": "number",
16222 "lValueRequested": false,
16223 "nodeType": "Literal",
16224 "src": "1505:1:2",
16225 "subdenomination": null,
16226 "typeDescriptions": {
16227 "typeIdentifier": "t_rational_0_by_1",
16228 "typeString": "int_const 0"
16229 },
16230 "value": "0"
16231 },
16232 "src": "1494:12:2",
16233 "typeDescriptions": {
16234 "typeIdentifier": "t_uint256",
16235 "typeString": "uint256"
16236 }
16237 },
16238 "id": 670,
16239 "nodeType": "ExpressionStatement",
16240 "src": "1494:12:2"
16241 },
16242 {
16243 "id": 671,
16244 "nodeType": "PlaceholderStatement",
16245 "src": "1516:1:2"
16246 },
16247 {
16248 "expression": {
16249 "argumentTypes": null,
16250 "id": 674,
16251 "isConstant": false,
16252 "isLValue": false,
16253 "isPure": false,
16254 "lValueRequested": false,
16255 "leftHandSide": {
16256 "argumentTypes": null,
16257 "id": 672,
16258 "name": "unlocked",
16259 "nodeType": "Identifier",
16260 "overloadedDeclarations": [],
16261 "referencedDeclaration": 658,
16262 "src": "1527:8:2",
16263 "typeDescriptions": {
16264 "typeIdentifier": "t_uint256",
16265 "typeString": "uint256"
16266 }
16267 },
16268 "nodeType": "Assignment",
16269 "operator": "=",
16270 "rightHandSide": {
16271 "argumentTypes": null,
16272 "hexValue": "31",
16273 "id": 673,
16274 "isConstant": false,
16275 "isLValue": false,
16276 "isPure": true,
16277 "kind": "number",
16278 "lValueRequested": false,
16279 "nodeType": "Literal",
16280 "src": "1538:1:2",
16281 "subdenomination": null,
16282 "typeDescriptions": {
16283 "typeIdentifier": "t_rational_1_by_1",
16284 "typeString": "int_const 1"
16285 },
16286 "value": "1"
16287 },
16288 "src": "1527:12:2",
16289 "typeDescriptions": {
16290 "typeIdentifier": "t_uint256",
16291 "typeString": "uint256"
16292 }
16293 },
16294 "id": 675,
16295 "nodeType": "ExpressionStatement",
16296 "src": "1527:12:2"
16297 }
16298 ]
16299 },
16300 "documentation": null,
16301 "id": 677,
16302 "name": "lock",
16303 "nodeType": "ModifierDefinition",
16304 "parameters": {
16305 "id": 659,
16306 "nodeType": "ParameterList",
16307 "parameters": [],
16308 "src": "1428:2:2"
16309 },
16310 "src": "1415:131:2",
16311 "visibility": "internal"
16312 },
16313 {
16314 "body": {
16315 "id": 698,
16316 "nodeType": "Block",
16317 "src": "1662:117:2",
16318 "statements": [
16319 {
16320 "expression": {
16321 "argumentTypes": null,
16322 "id": 688,
16323 "isConstant": false,
16324 "isLValue": false,
16325 "isPure": false,
16326 "lValueRequested": false,
16327 "leftHandSide": {
16328 "argumentTypes": null,
16329 "id": 686,
16330 "name": "_reserve0",
16331 "nodeType": "Identifier",
16332 "overloadedDeclarations": [],
16333 "referencedDeclaration": 680,
16334 "src": "1672:9:2",
16335 "typeDescriptions": {
16336 "typeIdentifier": "t_uint112",
16337 "typeString": "uint112"
16338 }
16339 },
16340 "nodeType": "Assignment",
16341 "operator": "=",
16342 "rightHandSide": {
16343 "argumentTypes": null,
16344 "id": 687,
16345 "name": "reserve0",
16346 "nodeType": "Identifier",
16347 "overloadedDeclarations": [],
16348 "referencedDeclaration": 645,
16349 "src": "1684:8:2",
16350 "typeDescriptions": {
16351 "typeIdentifier": "t_uint112",
16352 "typeString": "uint112"
16353 }
16354 },
16355 "src": "1672:20:2",
16356 "typeDescriptions": {
16357 "typeIdentifier": "t_uint112",
16358 "typeString": "uint112"
16359 }
16360 },
16361 "id": 689,
16362 "nodeType": "ExpressionStatement",
16363 "src": "1672:20:2"
16364 },
16365 {
16366 "expression": {
16367 "argumentTypes": null,
16368 "id": 692,
16369 "isConstant": false,
16370 "isLValue": false,
16371 "isPure": false,
16372 "lValueRequested": false,
16373 "leftHandSide": {
16374 "argumentTypes": null,
16375 "id": 690,
16376 "name": "_reserve1",
16377 "nodeType": "Identifier",
16378 "overloadedDeclarations": [],
16379 "referencedDeclaration": 682,
16380 "src": "1702:9:2",
16381 "typeDescriptions": {
16382 "typeIdentifier": "t_uint112",
16383 "typeString": "uint112"
16384 }
16385 },
16386 "nodeType": "Assignment",
16387 "operator": "=",
16388 "rightHandSide": {
16389 "argumentTypes": null,
16390 "id": 691,
16391 "name": "reserve1",
16392 "nodeType": "Identifier",
16393 "overloadedDeclarations": [],
16394 "referencedDeclaration": 647,
16395 "src": "1714:8:2",
16396 "typeDescriptions": {
16397 "typeIdentifier": "t_uint112",
16398 "typeString": "uint112"
16399 }
16400 },
16401 "src": "1702:20:2",
16402 "typeDescriptions": {
16403 "typeIdentifier": "t_uint112",
16404 "typeString": "uint112"
16405 }
16406 },
16407 "id": 693,
16408 "nodeType": "ExpressionStatement",
16409 "src": "1702:20:2"
16410 },
16411 {
16412 "expression": {
16413 "argumentTypes": null,
16414 "id": 696,
16415 "isConstant": false,
16416 "isLValue": false,
16417 "isPure": false,
16418 "lValueRequested": false,
16419 "leftHandSide": {
16420 "argumentTypes": null,
16421 "id": 694,
16422 "name": "_blockTimestampLast",
16423 "nodeType": "Identifier",
16424 "overloadedDeclarations": [],
16425 "referencedDeclaration": 684,
16426 "src": "1732:19:2",
16427 "typeDescriptions": {
16428 "typeIdentifier": "t_uint32",
16429 "typeString": "uint32"
16430 }
16431 },
16432 "nodeType": "Assignment",
16433 "operator": "=",
16434 "rightHandSide": {
16435 "argumentTypes": null,
16436 "id": 695,
16437 "name": "blockTimestampLast",
16438 "nodeType": "Identifier",
16439 "overloadedDeclarations": [],
16440 "referencedDeclaration": 649,
16441 "src": "1754:18:2",
16442 "typeDescriptions": {
16443 "typeIdentifier": "t_uint32",
16444 "typeString": "uint32"
16445 }
16446 },
16447 "src": "1732:40:2",
16448 "typeDescriptions": {
16449 "typeIdentifier": "t_uint32",
16450 "typeString": "uint32"
16451 }
16452 },
16453 "id": 697,
16454 "nodeType": "ExpressionStatement",
16455 "src": "1732:40:2"
16456 }
16457 ]
16458 },
16459 "documentation": null,
16460 "id": 699,
16461 "implemented": true,
16462 "kind": "function",
16463 "modifiers": [],
16464 "name": "getReserves",
16465 "nodeType": "FunctionDefinition",
16466 "parameters": {
16467 "id": 678,
16468 "nodeType": "ParameterList",
16469 "parameters": [],
16470 "src": "1572:2:2"
16471 },
16472 "returnParameters": {
16473 "id": 685,
16474 "nodeType": "ParameterList",
16475 "parameters": [
16476 {
16477 "constant": false,
16478 "id": 680,
16479 "name": "_reserve0",
16480 "nodeType": "VariableDeclaration",
16481 "scope": 699,
16482 "src": "1596:17:2",
16483 "stateVariable": false,
16484 "storageLocation": "default",
16485 "typeDescriptions": {
16486 "typeIdentifier": "t_uint112",
16487 "typeString": "uint112"
16488 },
16489 "typeName": {
16490 "id": 679,
16491 "name": "uint112",
16492 "nodeType": "ElementaryTypeName",
16493 "src": "1596:7:2",
16494 "typeDescriptions": {
16495 "typeIdentifier": "t_uint112",
16496 "typeString": "uint112"
16497 }
16498 },
16499 "value": null,
16500 "visibility": "internal"
16501 },
16502 {
16503 "constant": false,
16504 "id": 682,
16505 "name": "_reserve1",
16506 "nodeType": "VariableDeclaration",
16507 "scope": 699,
16508 "src": "1615:17:2",
16509 "stateVariable": false,
16510 "storageLocation": "default",
16511 "typeDescriptions": {
16512 "typeIdentifier": "t_uint112",
16513 "typeString": "uint112"
16514 },
16515 "typeName": {
16516 "id": 681,
16517 "name": "uint112",
16518 "nodeType": "ElementaryTypeName",
16519 "src": "1615:7:2",
16520 "typeDescriptions": {
16521 "typeIdentifier": "t_uint112",
16522 "typeString": "uint112"
16523 }
16524 },
16525 "value": null,
16526 "visibility": "internal"
16527 },
16528 {
16529 "constant": false,
16530 "id": 684,
16531 "name": "_blockTimestampLast",
16532 "nodeType": "VariableDeclaration",
16533 "scope": 699,
16534 "src": "1634:26:2",
16535 "stateVariable": false,
16536 "storageLocation": "default",
16537 "typeDescriptions": {
16538 "typeIdentifier": "t_uint32",
16539 "typeString": "uint32"
16540 },
16541 "typeName": {
16542 "id": 683,
16543 "name": "uint32",
16544 "nodeType": "ElementaryTypeName",
16545 "src": "1634:6:2",
16546 "typeDescriptions": {
16547 "typeIdentifier": "t_uint32",
16548 "typeString": "uint32"
16549 }
16550 },
16551 "value": null,
16552 "visibility": "internal"
16553 }
16554 ],
16555 "src": "1595:66:2"
16556 },
16557 "scope": 1834,
16558 "src": "1552:227:2",
16559 "stateMutability": "view",
16560 "superFunction": 2307,
16561 "visibility": "public"
16562 },
16563 {
16564 "body": {
16565 "id": 726,
16566 "nodeType": "Block",
16567 "src": "1881:91:2",
16568 "statements": [
16569 {
16570 "expression": {
16571 "argumentTypes": null,
16572 "id": 712,
16573 "isConstant": false,
16574 "isLValue": false,
16575 "isPure": false,
16576 "lValueRequested": false,
16577 "leftHandSide": {
16578 "argumentTypes": null,
16579 "id": 710,
16580 "name": "_baseToken",
16581 "nodeType": "Identifier",
16582 "overloadedDeclarations": [],
16583 "referencedDeclaration": 702,
16584 "src": "1891:10:2",
16585 "typeDescriptions": {
16586 "typeIdentifier": "t_address",
16587 "typeString": "address"
16588 }
16589 },
16590 "nodeType": "Assignment",
16591 "operator": "=",
16592 "rightHandSide": {
16593 "argumentTypes": null,
16594 "id": 711,
16595 "name": "baseToken",
16596 "nodeType": "Identifier",
16597 "overloadedDeclarations": [],
16598 "referencedDeclaration": 635,
16599 "src": "1904:9:2",
16600 "typeDescriptions": {
16601 "typeIdentifier": "t_address",
16602 "typeString": "address"
16603 }
16604 },
16605 "src": "1891:22:2",
16606 "typeDescriptions": {
16607 "typeIdentifier": "t_address",
16608 "typeString": "address"
16609 }
16610 },
16611 "id": 713,
16612 "nodeType": "ExpressionStatement",
16613 "src": "1891:22:2"
16614 },
16615 {
16616 "expression": {
16617 "argumentTypes": null,
16618 "id": 716,
16619 "isConstant": false,
16620 "isLValue": false,
16621 "isPure": false,
16622 "lValueRequested": false,
16623 "leftHandSide": {
16624 "argumentTypes": null,
16625 "id": 714,
16626 "name": "_m",
16627 "nodeType": "Identifier",
16628 "overloadedDeclarations": [],
16629 "referencedDeclaration": 704,
16630 "src": "1923:2:2",
16631 "typeDescriptions": {
16632 "typeIdentifier": "t_uint256",
16633 "typeString": "uint256"
16634 }
16635 },
16636 "nodeType": "Assignment",
16637 "operator": "=",
16638 "rightHandSide": {
16639 "argumentTypes": null,
16640 "id": 715,
16641 "name": "m",
16642 "nodeType": "Identifier",
16643 "overloadedDeclarations": [],
16644 "referencedDeclaration": 639,
16645 "src": "1928:1:2",
16646 "typeDescriptions": {
16647 "typeIdentifier": "t_uint256",
16648 "typeString": "uint256"
16649 }
16650 },
16651 "src": "1923:6:2",
16652 "typeDescriptions": {
16653 "typeIdentifier": "t_uint256",
16654 "typeString": "uint256"
16655 }
16656 },
16657 "id": 717,
16658 "nodeType": "ExpressionStatement",
16659 "src": "1923:6:2"
16660 },
16661 {
16662 "expression": {
16663 "argumentTypes": null,
16664 "id": 720,
16665 "isConstant": false,
16666 "isLValue": false,
16667 "isPure": false,
16668 "lValueRequested": false,
16669 "leftHandSide": {
16670 "argumentTypes": null,
16671 "id": 718,
16672 "name": "_n",
16673 "nodeType": "Identifier",
16674 "overloadedDeclarations": [],
16675 "referencedDeclaration": 706,
16676 "src": "1939:2:2",
16677 "typeDescriptions": {
16678 "typeIdentifier": "t_uint256",
16679 "typeString": "uint256"
16680 }
16681 },
16682 "nodeType": "Assignment",
16683 "operator": "=",
16684 "rightHandSide": {
16685 "argumentTypes": null,
16686 "id": 719,
16687 "name": "n",
16688 "nodeType": "Identifier",
16689 "overloadedDeclarations": [],
16690 "referencedDeclaration": 641,
16691 "src": "1944:1:2",
16692 "typeDescriptions": {
16693 "typeIdentifier": "t_uint256",
16694 "typeString": "uint256"
16695 }
16696 },
16697 "src": "1939:6:2",
16698 "typeDescriptions": {
16699 "typeIdentifier": "t_uint256",
16700 "typeString": "uint256"
16701 }
16702 },
16703 "id": 721,
16704 "nodeType": "ExpressionStatement",
16705 "src": "1939:6:2"
16706 },
16707 {
16708 "expression": {
16709 "argumentTypes": null,
16710 "id": 724,
16711 "isConstant": false,
16712 "isLValue": false,
16713 "isPure": false,
16714 "lValueRequested": false,
16715 "leftHandSide": {
16716 "argumentTypes": null,
16717 "id": 722,
16718 "name": "_fee",
16719 "nodeType": "Identifier",
16720 "overloadedDeclarations": [],
16721 "referencedDeclaration": 708,
16722 "src": "1955:4:2",
16723 "typeDescriptions": {
16724 "typeIdentifier": "t_uint256",
16725 "typeString": "uint256"
16726 }
16727 },
16728 "nodeType": "Assignment",
16729 "operator": "=",
16730 "rightHandSide": {
16731 "argumentTypes": null,
16732 "id": 723,
16733 "name": "fee",
16734 "nodeType": "Identifier",
16735 "overloadedDeclarations": [],
16736 "referencedDeclaration": 643,
16737 "src": "1962:3:2",
16738 "typeDescriptions": {
16739 "typeIdentifier": "t_uint256",
16740 "typeString": "uint256"
16741 }
16742 },
16743 "src": "1955:10:2",
16744 "typeDescriptions": {
16745 "typeIdentifier": "t_uint256",
16746 "typeString": "uint256"
16747 }
16748 },
16749 "id": 725,
16750 "nodeType": "ExpressionStatement",
16751 "src": "1955:10:2"
16752 }
16753 ]
16754 },
16755 "documentation": null,
16756 "id": 727,
16757 "implemented": true,
16758 "kind": "function",
16759 "modifiers": [],
16760 "name": "getCurveParams",
16761 "nodeType": "FunctionDefinition",
16762 "parameters": {
16763 "id": 700,
16764 "nodeType": "ParameterList",
16765 "parameters": [],
16766 "src": "1808:2:2"
16767 },
16768 "returnParameters": {
16769 "id": 709,
16770 "nodeType": "ParameterList",
16771 "parameters": [
16772 {
16773 "constant": false,
16774 "id": 702,
16775 "name": "_baseToken",
16776 "nodeType": "VariableDeclaration",
16777 "scope": 727,
16778 "src": "1832:18:2",
16779 "stateVariable": false,
16780 "storageLocation": "default",
16781 "typeDescriptions": {
16782 "typeIdentifier": "t_address",
16783 "typeString": "address"
16784 },
16785 "typeName": {
16786 "id": 701,
16787 "name": "address",
16788 "nodeType": "ElementaryTypeName",
16789 "src": "1832:7:2",
16790 "stateMutability": "nonpayable",
16791 "typeDescriptions": {
16792 "typeIdentifier": "t_address",
16793 "typeString": "address"
16794 }
16795 },
16796 "value": null,
16797 "visibility": "internal"
16798 },
16799 {
16800 "constant": false,
16801 "id": 704,
16802 "name": "_m",
16803 "nodeType": "VariableDeclaration",
16804 "scope": 727,
16805 "src": "1852:7:2",
16806 "stateVariable": false,
16807 "storageLocation": "default",
16808 "typeDescriptions": {
16809 "typeIdentifier": "t_uint256",
16810 "typeString": "uint256"
16811 },
16812 "typeName": {
16813 "id": 703,
16814 "name": "uint",
16815 "nodeType": "ElementaryTypeName",
16816 "src": "1852:4:2",
16817 "typeDescriptions": {
16818 "typeIdentifier": "t_uint256",
16819 "typeString": "uint256"
16820 }
16821 },
16822 "value": null,
16823 "visibility": "internal"
16824 },
16825 {
16826 "constant": false,
16827 "id": 706,
16828 "name": "_n",
16829 "nodeType": "VariableDeclaration",
16830 "scope": 727,
16831 "src": "1861:7:2",
16832 "stateVariable": false,
16833 "storageLocation": "default",
16834 "typeDescriptions": {
16835 "typeIdentifier": "t_uint256",
16836 "typeString": "uint256"
16837 },
16838 "typeName": {
16839 "id": 705,
16840 "name": "uint",
16841 "nodeType": "ElementaryTypeName",
16842 "src": "1861:4:2",
16843 "typeDescriptions": {
16844 "typeIdentifier": "t_uint256",
16845 "typeString": "uint256"
16846 }
16847 },
16848 "value": null,
16849 "visibility": "internal"
16850 },
16851 {
16852 "constant": false,
16853 "id": 708,
16854 "name": "_fee",
16855 "nodeType": "VariableDeclaration",
16856 "scope": 727,
16857 "src": "1870:9:2",
16858 "stateVariable": false,
16859 "storageLocation": "default",
16860 "typeDescriptions": {
16861 "typeIdentifier": "t_uint256",
16862 "typeString": "uint256"
16863 },
16864 "typeName": {
16865 "id": 707,
16866 "name": "uint",
16867 "nodeType": "ElementaryTypeName",
16868 "src": "1870:4:2",
16869 "typeDescriptions": {
16870 "typeIdentifier": "t_uint256",
16871 "typeString": "uint256"
16872 }
16873 },
16874 "value": null,
16875 "visibility": "internal"
16876 }
16877 ],
16878 "src": "1831:49:2"
16879 },
16880 "scope": 1834,
16881 "src": "1785:187:2",
16882 "stateMutability": "view",
16883 "superFunction": 2318,
16884 "visibility": "public"
16885 },
16886 {
16887 "body": {
16888 "id": 768,
16889 "nodeType": "Block",
16890 "src": "2048:214:2",
16891 "statements": [
16892 {
16893 "assignments": [
16894 737,
16895 739
16896 ],
16897 "declarations": [
16898 {
16899 "constant": false,
16900 "id": 737,
16901 "name": "success",
16902 "nodeType": "VariableDeclaration",
16903 "scope": 768,
16904 "src": "2059:12:2",
16905 "stateVariable": false,
16906 "storageLocation": "default",
16907 "typeDescriptions": {
16908 "typeIdentifier": "t_bool",
16909 "typeString": "bool"
16910 },
16911 "typeName": {
16912 "id": 736,
16913 "name": "bool",
16914 "nodeType": "ElementaryTypeName",
16915 "src": "2059:4:2",
16916 "typeDescriptions": {
16917 "typeIdentifier": "t_bool",
16918 "typeString": "bool"
16919 }
16920 },
16921 "value": null,
16922 "visibility": "internal"
16923 },
16924 {
16925 "constant": false,
16926 "id": 739,
16927 "name": "data",
16928 "nodeType": "VariableDeclaration",
16929 "scope": 768,
16930 "src": "2073:17:2",
16931 "stateVariable": false,
16932 "storageLocation": "memory",
16933 "typeDescriptions": {
16934 "typeIdentifier": "t_bytes_memory_ptr",
16935 "typeString": "bytes"
16936 },
16937 "typeName": {
16938 "id": 738,
16939 "name": "bytes",
16940 "nodeType": "ElementaryTypeName",
16941 "src": "2073:5:2",
16942 "typeDescriptions": {
16943 "typeIdentifier": "t_bytes_storage_ptr",
16944 "typeString": "bytes"
16945 }
16946 },
16947 "value": null,
16948 "visibility": "internal"
16949 }
16950 ],
16951 "id": 749,
16952 "initialValue": {
16953 "argumentTypes": null,
16954 "arguments": [
16955 {
16956 "argumentTypes": null,
16957 "arguments": [
16958 {
16959 "argumentTypes": null,
16960 "id": 744,
16961 "name": "SELECTOR",
16962 "nodeType": "Identifier",
16963 "overloadedDeclarations": [],
16964 "referencedDeclaration": 627,
16965 "src": "2128:8:2",
16966 "typeDescriptions": {
16967 "typeIdentifier": "t_bytes4",
16968 "typeString": "bytes4"
16969 }
16970 },
16971 {
16972 "argumentTypes": null,
16973 "id": 745,
16974 "name": "to",
16975 "nodeType": "Identifier",
16976 "overloadedDeclarations": [],
16977 "referencedDeclaration": 731,
16978 "src": "2138:2:2",
16979 "typeDescriptions": {
16980 "typeIdentifier": "t_address",
16981 "typeString": "address"
16982 }
16983 },
16984 {
16985 "argumentTypes": null,
16986 "id": 746,
16987 "name": "value",
16988 "nodeType": "Identifier",
16989 "overloadedDeclarations": [],
16990 "referencedDeclaration": 733,
16991 "src": "2142:5:2",
16992 "typeDescriptions": {
16993 "typeIdentifier": "t_uint256",
16994 "typeString": "uint256"
16995 }
16996 }
16997 ],
16998 "expression": {
16999 "argumentTypes": [
17000 {
17001 "typeIdentifier": "t_bytes4",
17002 "typeString": "bytes4"
17003 },
17004 {
17005 "typeIdentifier": "t_address",
17006 "typeString": "address"
17007 },
17008 {
17009 "typeIdentifier": "t_uint256",
17010 "typeString": "uint256"
17011 }
17012 ],
17013 "expression": {
17014 "argumentTypes": null,
17015 "id": 742,
17016 "name": "abi",
17017 "nodeType": "Identifier",
17018 "overloadedDeclarations": [],
17019 "referencedDeclaration": 2604,
17020 "src": "2105:3:2",
17021 "typeDescriptions": {
17022 "typeIdentifier": "t_magic_abi",
17023 "typeString": "abi"
17024 }
17025 },
17026 "id": 743,
17027 "isConstant": false,
17028 "isLValue": false,
17029 "isPure": true,
17030 "lValueRequested": false,
17031 "memberName": "encodeWithSelector",
17032 "nodeType": "MemberAccess",
17033 "referencedDeclaration": null,
17034 "src": "2105:22:2",
17035 "typeDescriptions": {
17036 "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
17037 "typeString": "function (bytes4) pure returns (bytes memory)"
17038 }
17039 },
17040 "id": 747,
17041 "isConstant": false,
17042 "isLValue": false,
17043 "isPure": false,
17044 "kind": "functionCall",
17045 "lValueRequested": false,
17046 "names": [],
17047 "nodeType": "FunctionCall",
17048 "src": "2105:43:2",
17049 "typeDescriptions": {
17050 "typeIdentifier": "t_bytes_memory_ptr",
17051 "typeString": "bytes memory"
17052 }
17053 }
17054 ],
17055 "expression": {
17056 "argumentTypes": [
17057 {
17058 "typeIdentifier": "t_bytes_memory_ptr",
17059 "typeString": "bytes memory"
17060 }
17061 ],
17062 "expression": {
17063 "argumentTypes": null,
17064 "id": 740,
17065 "name": "token",
17066 "nodeType": "Identifier",
17067 "overloadedDeclarations": [],
17068 "referencedDeclaration": 729,
17069 "src": "2094:5:2",
17070 "typeDescriptions": {
17071 "typeIdentifier": "t_address",
17072 "typeString": "address"
17073 }
17074 },
17075 "id": 741,
17076 "isConstant": false,
17077 "isLValue": false,
17078 "isPure": false,
17079 "lValueRequested": false,
17080 "memberName": "call",
17081 "nodeType": "MemberAccess",
17082 "referencedDeclaration": null,
17083 "src": "2094:10:2",
17084 "typeDescriptions": {
17085 "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
17086 "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
17087 }
17088 },
17089 "id": 748,
17090 "isConstant": false,
17091 "isLValue": false,
17092 "isPure": false,
17093 "kind": "functionCall",
17094 "lValueRequested": false,
17095 "names": [],
17096 "nodeType": "FunctionCall",
17097 "src": "2094:55:2",
17098 "typeDescriptions": {
17099 "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
17100 "typeString": "tuple(bool,bytes memory)"
17101 }
17102 },
17103 "nodeType": "VariableDeclarationStatement",
17104 "src": "2058:91:2"
17105 },
17106 {
17107 "expression": {
17108 "argumentTypes": null,
17109 "arguments": [
17110 {
17111 "argumentTypes": null,
17112 "commonType": {
17113 "typeIdentifier": "t_bool",
17114 "typeString": "bool"
17115 },
17116 "id": 764,
17117 "isConstant": false,
17118 "isLValue": false,
17119 "isPure": false,
17120 "lValueRequested": false,
17121 "leftExpression": {
17122 "argumentTypes": null,
17123 "id": 751,
17124 "name": "success",
17125 "nodeType": "Identifier",
17126 "overloadedDeclarations": [],
17127 "referencedDeclaration": 737,
17128 "src": "2167:7:2",
17129 "typeDescriptions": {
17130 "typeIdentifier": "t_bool",
17131 "typeString": "bool"
17132 }
17133 },
17134 "nodeType": "BinaryOperation",
17135 "operator": "&&",
17136 "rightExpression": {
17137 "argumentTypes": null,
17138 "components": [
17139 {
17140 "argumentTypes": null,
17141 "commonType": {
17142 "typeIdentifier": "t_bool",
17143 "typeString": "bool"
17144 },
17145 "id": 762,
17146 "isConstant": false,
17147 "isLValue": false,
17148 "isPure": false,
17149 "lValueRequested": false,
17150 "leftExpression": {
17151 "argumentTypes": null,
17152 "commonType": {
17153 "typeIdentifier": "t_uint256",
17154 "typeString": "uint256"
17155 },
17156 "id": 755,
17157 "isConstant": false,
17158 "isLValue": false,
17159 "isPure": false,
17160 "lValueRequested": false,
17161 "leftExpression": {
17162 "argumentTypes": null,
17163 "expression": {
17164 "argumentTypes": null,
17165 "id": 752,
17166 "name": "data",
17167 "nodeType": "Identifier",
17168 "overloadedDeclarations": [],
17169 "referencedDeclaration": 739,
17170 "src": "2179:4:2",
17171 "typeDescriptions": {
17172 "typeIdentifier": "t_bytes_memory_ptr",
17173 "typeString": "bytes memory"
17174 }
17175 },
17176 "id": 753,
17177 "isConstant": false,
17178 "isLValue": false,
17179 "isPure": false,
17180 "lValueRequested": false,
17181 "memberName": "length",
17182 "nodeType": "MemberAccess",
17183 "referencedDeclaration": null,
17184 "src": "2179:11:2",
17185 "typeDescriptions": {
17186 "typeIdentifier": "t_uint256",
17187 "typeString": "uint256"
17188 }
17189 },
17190 "nodeType": "BinaryOperation",
17191 "operator": "==",
17192 "rightExpression": {
17193 "argumentTypes": null,
17194 "hexValue": "30",
17195 "id": 754,
17196 "isConstant": false,
17197 "isLValue": false,
17198 "isPure": true,
17199 "kind": "number",
17200 "lValueRequested": false,
17201 "nodeType": "Literal",
17202 "src": "2194:1:2",
17203 "subdenomination": null,
17204 "typeDescriptions": {
17205 "typeIdentifier": "t_rational_0_by_1",
17206 "typeString": "int_const 0"
17207 },
17208 "value": "0"
17209 },
17210 "src": "2179:16:2",
17211 "typeDescriptions": {
17212 "typeIdentifier": "t_bool",
17213 "typeString": "bool"
17214 }
17215 },
17216 "nodeType": "BinaryOperation",
17217 "operator": "||",
17218 "rightExpression": {
17219 "argumentTypes": null,
17220 "arguments": [
17221 {
17222 "argumentTypes": null,
17223 "id": 758,
17224 "name": "data",
17225 "nodeType": "Identifier",
17226 "overloadedDeclarations": [],
17227 "referencedDeclaration": 739,
17228 "src": "2210:4:2",
17229 "typeDescriptions": {
17230 "typeIdentifier": "t_bytes_memory_ptr",
17231 "typeString": "bytes memory"
17232 }
17233 },
17234 {
17235 "argumentTypes": null,
17236 "components": [
17237 {
17238 "argumentTypes": null,
17239 "id": 759,
17240 "isConstant": false,
17241 "isLValue": false,
17242 "isPure": true,
17243 "lValueRequested": false,
17244 "nodeType": "ElementaryTypeNameExpression",
17245 "src": "2217:4:2",
17246 "typeDescriptions": {
17247 "typeIdentifier": "t_type$_t_bool_$",
17248 "typeString": "type(bool)"
17249 },
17250 "typeName": "bool"
17251 }
17252 ],
17253 "id": 760,
17254 "isConstant": false,
17255 "isInlineArray": false,
17256 "isLValue": false,
17257 "isPure": true,
17258 "lValueRequested": false,
17259 "nodeType": "TupleExpression",
17260 "src": "2216:6:2",
17261 "typeDescriptions": {
17262 "typeIdentifier": "t_type$_t_bool_$",
17263 "typeString": "type(bool)"
17264 }
17265 }
17266 ],
17267 "expression": {
17268 "argumentTypes": [
17269 {
17270 "typeIdentifier": "t_bytes_memory_ptr",
17271 "typeString": "bytes memory"
17272 },
17273 {
17274 "typeIdentifier": "t_type$_t_bool_$",
17275 "typeString": "type(bool)"
17276 }
17277 ],
17278 "expression": {
17279 "argumentTypes": null,
17280 "id": 756,
17281 "name": "abi",
17282 "nodeType": "Identifier",
17283 "overloadedDeclarations": [],
17284 "referencedDeclaration": 2604,
17285 "src": "2199:3:2",
17286 "typeDescriptions": {
17287 "typeIdentifier": "t_magic_abi",
17288 "typeString": "abi"
17289 }
17290 },
17291 "id": 757,
17292 "isConstant": false,
17293 "isLValue": false,
17294 "isPure": true,
17295 "lValueRequested": false,
17296 "memberName": "decode",
17297 "nodeType": "MemberAccess",
17298 "referencedDeclaration": null,
17299 "src": "2199:10:2",
17300 "typeDescriptions": {
17301 "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
17302 "typeString": "function () pure"
17303 }
17304 },
17305 "id": 761,
17306 "isConstant": false,
17307 "isLValue": false,
17308 "isPure": false,
17309 "kind": "functionCall",
17310 "lValueRequested": false,
17311 "names": [],
17312 "nodeType": "FunctionCall",
17313 "src": "2199:24:2",
17314 "typeDescriptions": {
17315 "typeIdentifier": "t_bool",
17316 "typeString": "bool"
17317 }
17318 },
17319 "src": "2179:44:2",
17320 "typeDescriptions": {
17321 "typeIdentifier": "t_bool",
17322 "typeString": "bool"
17323 }
17324 }
17325 ],
17326 "id": 763,
17327 "isConstant": false,
17328 "isInlineArray": false,
17329 "isLValue": false,
17330 "isPure": false,
17331 "lValueRequested": false,
17332 "nodeType": "TupleExpression",
17333 "src": "2178:46:2",
17334 "typeDescriptions": {
17335 "typeIdentifier": "t_bool",
17336 "typeString": "bool"
17337 }
17338 },
17339 "src": "2167:57:2",
17340 "typeDescriptions": {
17341 "typeIdentifier": "t_bool",
17342 "typeString": "bool"
17343 }
17344 },
17345 {
17346 "argumentTypes": null,
17347 "hexValue": "556e697377617056323a205452414e534645525f4641494c4544",
17348 "id": 765,
17349 "isConstant": false,
17350 "isLValue": false,
17351 "isPure": true,
17352 "kind": "string",
17353 "lValueRequested": false,
17354 "nodeType": "Literal",
17355 "src": "2226:28:2",
17356 "subdenomination": null,
17357 "typeDescriptions": {
17358 "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2",
17359 "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\""
17360 },
17361 "value": "UniswapV2: TRANSFER_FAILED"
17362 }
17363 ],
17364 "expression": {
17365 "argumentTypes": [
17366 {
17367 "typeIdentifier": "t_bool",
17368 "typeString": "bool"
17369 },
17370 {
17371 "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2",
17372 "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\""
17373 }
17374 ],
17375 "id": 750,
17376 "name": "require",
17377 "nodeType": "Identifier",
17378 "overloadedDeclarations": [
17379 2620,
17380 2621
17381 ],
17382 "referencedDeclaration": 2621,
17383 "src": "2159:7:2",
17384 "typeDescriptions": {
17385 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
17386 "typeString": "function (bool,string memory) pure"
17387 }
17388 },
17389 "id": 766,
17390 "isConstant": false,
17391 "isLValue": false,
17392 "isPure": false,
17393 "kind": "functionCall",
17394 "lValueRequested": false,
17395 "names": [],
17396 "nodeType": "FunctionCall",
17397 "src": "2159:96:2",
17398 "typeDescriptions": {
17399 "typeIdentifier": "t_tuple$__$",
17400 "typeString": "tuple()"
17401 }
17402 },
17403 "id": 767,
17404 "nodeType": "ExpressionStatement",
17405 "src": "2159:96:2"
17406 }
17407 ]
17408 },
17409 "documentation": null,
17410 "id": 769,
17411 "implemented": true,
17412 "kind": "function",
17413 "modifiers": [],
17414 "name": "_safeTransfer",
17415 "nodeType": "FunctionDefinition",
17416 "parameters": {
17417 "id": 734,
17418 "nodeType": "ParameterList",
17419 "parameters": [
17420 {
17421 "constant": false,
17422 "id": 729,
17423 "name": "token",
17424 "nodeType": "VariableDeclaration",
17425 "scope": 769,
17426 "src": "2001:13:2",
17427 "stateVariable": false,
17428 "storageLocation": "default",
17429 "typeDescriptions": {
17430 "typeIdentifier": "t_address",
17431 "typeString": "address"
17432 },
17433 "typeName": {
17434 "id": 728,
17435 "name": "address",
17436 "nodeType": "ElementaryTypeName",
17437 "src": "2001:7:2",
17438 "stateMutability": "nonpayable",
17439 "typeDescriptions": {
17440 "typeIdentifier": "t_address",
17441 "typeString": "address"
17442 }
17443 },
17444 "value": null,
17445 "visibility": "internal"
17446 },
17447 {
17448 "constant": false,
17449 "id": 731,
17450 "name": "to",
17451 "nodeType": "VariableDeclaration",
17452 "scope": 769,
17453 "src": "2016:10:2",
17454 "stateVariable": false,
17455 "storageLocation": "default",
17456 "typeDescriptions": {
17457 "typeIdentifier": "t_address",
17458 "typeString": "address"
17459 },
17460 "typeName": {
17461 "id": 730,
17462 "name": "address",
17463 "nodeType": "ElementaryTypeName",
17464 "src": "2016:7:2",
17465 "stateMutability": "nonpayable",
17466 "typeDescriptions": {
17467 "typeIdentifier": "t_address",
17468 "typeString": "address"
17469 }
17470 },
17471 "value": null,
17472 "visibility": "internal"
17473 },
17474 {
17475 "constant": false,
17476 "id": 733,
17477 "name": "value",
17478 "nodeType": "VariableDeclaration",
17479 "scope": 769,
17480 "src": "2028:10:2",
17481 "stateVariable": false,
17482 "storageLocation": "default",
17483 "typeDescriptions": {
17484 "typeIdentifier": "t_uint256",
17485 "typeString": "uint256"
17486 },
17487 "typeName": {
17488 "id": 732,
17489 "name": "uint",
17490 "nodeType": "ElementaryTypeName",
17491 "src": "2028:4:2",
17492 "typeDescriptions": {
17493 "typeIdentifier": "t_uint256",
17494 "typeString": "uint256"
17495 }
17496 },
17497 "value": null,
17498 "visibility": "internal"
17499 }
17500 ],
17501 "src": "2000:39:2"
17502 },
17503 "returnParameters": {
17504 "id": 735,
17505 "nodeType": "ParameterList",
17506 "parameters": [],
17507 "src": "2048:0:2"
17508 },
17509 "scope": 1834,
17510 "src": "1978:284:2",
17511 "stateMutability": "nonpayable",
17512 "superFunction": null,
17513 "visibility": "private"
17514 },
17515 {
17516 "anonymous": false,
17517 "documentation": null,
17518 "id": 777,
17519 "name": "Mint",
17520 "nodeType": "EventDefinition",
17521 "parameters": {
17522 "id": 776,
17523 "nodeType": "ParameterList",
17524 "parameters": [
17525 {
17526 "constant": false,
17527 "id": 771,
17528 "indexed": true,
17529 "name": "sender",
17530 "nodeType": "VariableDeclaration",
17531 "scope": 777,
17532 "src": "2279:22:2",
17533 "stateVariable": false,
17534 "storageLocation": "default",
17535 "typeDescriptions": {
17536 "typeIdentifier": "t_address",
17537 "typeString": "address"
17538 },
17539 "typeName": {
17540 "id": 770,
17541 "name": "address",
17542 "nodeType": "ElementaryTypeName",
17543 "src": "2279:7:2",
17544 "stateMutability": "nonpayable",
17545 "typeDescriptions": {
17546 "typeIdentifier": "t_address",
17547 "typeString": "address"
17548 }
17549 },
17550 "value": null,
17551 "visibility": "internal"
17552 },
17553 {
17554 "constant": false,
17555 "id": 773,
17556 "indexed": false,
17557 "name": "amount0",
17558 "nodeType": "VariableDeclaration",
17559 "scope": 777,
17560 "src": "2303:12:2",
17561 "stateVariable": false,
17562 "storageLocation": "default",
17563 "typeDescriptions": {
17564 "typeIdentifier": "t_uint256",
17565 "typeString": "uint256"
17566 },
17567 "typeName": {
17568 "id": 772,
17569 "name": "uint",
17570 "nodeType": "ElementaryTypeName",
17571 "src": "2303:4:2",
17572 "typeDescriptions": {
17573 "typeIdentifier": "t_uint256",
17574 "typeString": "uint256"
17575 }
17576 },
17577 "value": null,
17578 "visibility": "internal"
17579 },
17580 {
17581 "constant": false,
17582 "id": 775,
17583 "indexed": false,
17584 "name": "amount1",
17585 "nodeType": "VariableDeclaration",
17586 "scope": 777,
17587 "src": "2317:12:2",
17588 "stateVariable": false,
17589 "storageLocation": "default",
17590 "typeDescriptions": {
17591 "typeIdentifier": "t_uint256",
17592 "typeString": "uint256"
17593 },
17594 "typeName": {
17595 "id": 774,
17596 "name": "uint",
17597 "nodeType": "ElementaryTypeName",
17598 "src": "2317:4:2",
17599 "typeDescriptions": {
17600 "typeIdentifier": "t_uint256",
17601 "typeString": "uint256"
17602 }
17603 },
17604 "value": null,
17605 "visibility": "internal"
17606 }
17607 ],
17608 "src": "2278:52:2"
17609 },
17610 "src": "2268:63:2"
17611 },
17612 {
17613 "anonymous": false,
17614 "documentation": null,
17615 "id": 787,
17616 "name": "Burn",
17617 "nodeType": "EventDefinition",
17618 "parameters": {
17619 "id": 786,
17620 "nodeType": "ParameterList",
17621 "parameters": [
17622 {
17623 "constant": false,
17624 "id": 779,
17625 "indexed": true,
17626 "name": "sender",
17627 "nodeType": "VariableDeclaration",
17628 "scope": 787,
17629 "src": "2347:22:2",
17630 "stateVariable": false,
17631 "storageLocation": "default",
17632 "typeDescriptions": {
17633 "typeIdentifier": "t_address",
17634 "typeString": "address"
17635 },
17636 "typeName": {
17637 "id": 778,
17638 "name": "address",
17639 "nodeType": "ElementaryTypeName",
17640 "src": "2347:7:2",
17641 "stateMutability": "nonpayable",
17642 "typeDescriptions": {
17643 "typeIdentifier": "t_address",
17644 "typeString": "address"
17645 }
17646 },
17647 "value": null,
17648 "visibility": "internal"
17649 },
17650 {
17651 "constant": false,
17652 "id": 781,
17653 "indexed": false,
17654 "name": "amount0",
17655 "nodeType": "VariableDeclaration",
17656 "scope": 787,
17657 "src": "2371:12:2",
17658 "stateVariable": false,
17659 "storageLocation": "default",
17660 "typeDescriptions": {
17661 "typeIdentifier": "t_uint256",
17662 "typeString": "uint256"
17663 },
17664 "typeName": {
17665 "id": 780,
17666 "name": "uint",
17667 "nodeType": "ElementaryTypeName",
17668 "src": "2371:4:2",
17669 "typeDescriptions": {
17670 "typeIdentifier": "t_uint256",
17671 "typeString": "uint256"
17672 }
17673 },
17674 "value": null,
17675 "visibility": "internal"
17676 },
17677 {
17678 "constant": false,
17679 "id": 783,
17680 "indexed": false,
17681 "name": "amount1",
17682 "nodeType": "VariableDeclaration",
17683 "scope": 787,
17684 "src": "2385:12:2",
17685 "stateVariable": false,
17686 "storageLocation": "default",
17687 "typeDescriptions": {
17688 "typeIdentifier": "t_uint256",
17689 "typeString": "uint256"
17690 },
17691 "typeName": {
17692 "id": 782,
17693 "name": "uint",
17694 "nodeType": "ElementaryTypeName",
17695 "src": "2385:4:2",
17696 "typeDescriptions": {
17697 "typeIdentifier": "t_uint256",
17698 "typeString": "uint256"
17699 }
17700 },
17701 "value": null,
17702 "visibility": "internal"
17703 },
17704 {
17705 "constant": false,
17706 "id": 785,
17707 "indexed": true,
17708 "name": "to",
17709 "nodeType": "VariableDeclaration",
17710 "scope": 787,
17711 "src": "2399:18:2",
17712 "stateVariable": false,
17713 "storageLocation": "default",
17714 "typeDescriptions": {
17715 "typeIdentifier": "t_address",
17716 "typeString": "address"
17717 },
17718 "typeName": {
17719 "id": 784,
17720 "name": "address",
17721 "nodeType": "ElementaryTypeName",
17722 "src": "2399:7:2",
17723 "stateMutability": "nonpayable",
17724 "typeDescriptions": {
17725 "typeIdentifier": "t_address",
17726 "typeString": "address"
17727 }
17728 },
17729 "value": null,
17730 "visibility": "internal"
17731 }
17732 ],
17733 "src": "2346:72:2"
17734 },
17735 "src": "2336:83:2"
17736 },
17737 {
17738 "anonymous": false,
17739 "documentation": null,
17740 "id": 801,
17741 "name": "Swap",
17742 "nodeType": "EventDefinition",
17743 "parameters": {
17744 "id": 800,
17745 "nodeType": "ParameterList",
17746 "parameters": [
17747 {
17748 "constant": false,
17749 "id": 789,
17750 "indexed": true,
17751 "name": "sender",
17752 "nodeType": "VariableDeclaration",
17753 "scope": 801,
17754 "src": "2444:22:2",
17755 "stateVariable": false,
17756 "storageLocation": "default",
17757 "typeDescriptions": {
17758 "typeIdentifier": "t_address",
17759 "typeString": "address"
17760 },
17761 "typeName": {
17762 "id": 788,
17763 "name": "address",
17764 "nodeType": "ElementaryTypeName",
17765 "src": "2444:7:2",
17766 "stateMutability": "nonpayable",
17767 "typeDescriptions": {
17768 "typeIdentifier": "t_address",
17769 "typeString": "address"
17770 }
17771 },
17772 "value": null,
17773 "visibility": "internal"
17774 },
17775 {
17776 "constant": false,
17777 "id": 791,
17778 "indexed": false,
17779 "name": "amount0In",
17780 "nodeType": "VariableDeclaration",
17781 "scope": 801,
17782 "src": "2476:14:2",
17783 "stateVariable": false,
17784 "storageLocation": "default",
17785 "typeDescriptions": {
17786 "typeIdentifier": "t_uint256",
17787 "typeString": "uint256"
17788 },
17789 "typeName": {
17790 "id": 790,
17791 "name": "uint",
17792 "nodeType": "ElementaryTypeName",
17793 "src": "2476:4:2",
17794 "typeDescriptions": {
17795 "typeIdentifier": "t_uint256",
17796 "typeString": "uint256"
17797 }
17798 },
17799 "value": null,
17800 "visibility": "internal"
17801 },
17802 {
17803 "constant": false,
17804 "id": 793,
17805 "indexed": false,
17806 "name": "amount1In",
17807 "nodeType": "VariableDeclaration",
17808 "scope": 801,
17809 "src": "2500:14:2",
17810 "stateVariable": false,
17811 "storageLocation": "default",
17812 "typeDescriptions": {
17813 "typeIdentifier": "t_uint256",
17814 "typeString": "uint256"
17815 },
17816 "typeName": {
17817 "id": 792,
17818 "name": "uint",
17819 "nodeType": "ElementaryTypeName",
17820 "src": "2500:4:2",
17821 "typeDescriptions": {
17822 "typeIdentifier": "t_uint256",
17823 "typeString": "uint256"
17824 }
17825 },
17826 "value": null,
17827 "visibility": "internal"
17828 },
17829 {
17830 "constant": false,
17831 "id": 795,
17832 "indexed": false,
17833 "name": "amount0Out",
17834 "nodeType": "VariableDeclaration",
17835 "scope": 801,
17836 "src": "2524:15:2",
17837 "stateVariable": false,
17838 "storageLocation": "default",
17839 "typeDescriptions": {
17840 "typeIdentifier": "t_uint256",
17841 "typeString": "uint256"
17842 },
17843 "typeName": {
17844 "id": 794,
17845 "name": "uint",
17846 "nodeType": "ElementaryTypeName",
17847 "src": "2524:4:2",
17848 "typeDescriptions": {
17849 "typeIdentifier": "t_uint256",
17850 "typeString": "uint256"
17851 }
17852 },
17853 "value": null,
17854 "visibility": "internal"
17855 },
17856 {
17857 "constant": false,
17858 "id": 797,
17859 "indexed": false,
17860 "name": "amount1Out",
17861 "nodeType": "VariableDeclaration",
17862 "scope": 801,
17863 "src": "2549:15:2",
17864 "stateVariable": false,
17865 "storageLocation": "default",
17866 "typeDescriptions": {
17867 "typeIdentifier": "t_uint256",
17868 "typeString": "uint256"
17869 },
17870 "typeName": {
17871 "id": 796,
17872 "name": "uint",
17873 "nodeType": "ElementaryTypeName",
17874 "src": "2549:4:2",
17875 "typeDescriptions": {
17876 "typeIdentifier": "t_uint256",
17877 "typeString": "uint256"
17878 }
17879 },
17880 "value": null,
17881 "visibility": "internal"
17882 },
17883 {
17884 "constant": false,
17885 "id": 799,
17886 "indexed": true,
17887 "name": "to",
17888 "nodeType": "VariableDeclaration",
17889 "scope": 801,
17890 "src": "2574:18:2",
17891 "stateVariable": false,
17892 "storageLocation": "default",
17893 "typeDescriptions": {
17894 "typeIdentifier": "t_address",
17895 "typeString": "address"
17896 },
17897 "typeName": {
17898 "id": 798,
17899 "name": "address",
17900 "nodeType": "ElementaryTypeName",
17901 "src": "2574:7:2",
17902 "stateMutability": "nonpayable",
17903 "typeDescriptions": {
17904 "typeIdentifier": "t_address",
17905 "typeString": "address"
17906 }
17907 },
17908 "value": null,
17909 "visibility": "internal"
17910 }
17911 ],
17912 "src": "2434:164:2"
17913 },
17914 "src": "2424:175:2"
17915 },
17916 {
17917 "anonymous": false,
17918 "documentation": null,
17919 "id": 807,
17920 "name": "Sync",
17921 "nodeType": "EventDefinition",
17922 "parameters": {
17923 "id": 806,
17924 "nodeType": "ParameterList",
17925 "parameters": [
17926 {
17927 "constant": false,
17928 "id": 803,
17929 "indexed": false,
17930 "name": "reserve0",
17931 "nodeType": "VariableDeclaration",
17932 "scope": 807,
17933 "src": "2615:16:2",
17934 "stateVariable": false,
17935 "storageLocation": "default",
17936 "typeDescriptions": {
17937 "typeIdentifier": "t_uint112",
17938 "typeString": "uint112"
17939 },
17940 "typeName": {
17941 "id": 802,
17942 "name": "uint112",
17943 "nodeType": "ElementaryTypeName",
17944 "src": "2615:7:2",
17945 "typeDescriptions": {
17946 "typeIdentifier": "t_uint112",
17947 "typeString": "uint112"
17948 }
17949 },
17950 "value": null,
17951 "visibility": "internal"
17952 },
17953 {
17954 "constant": false,
17955 "id": 805,
17956 "indexed": false,
17957 "name": "reserve1",
17958 "nodeType": "VariableDeclaration",
17959 "scope": 807,
17960 "src": "2633:16:2",
17961 "stateVariable": false,
17962 "storageLocation": "default",
17963 "typeDescriptions": {
17964 "typeIdentifier": "t_uint112",
17965 "typeString": "uint112"
17966 },
17967 "typeName": {
17968 "id": 804,
17969 "name": "uint112",
17970 "nodeType": "ElementaryTypeName",
17971 "src": "2633:7:2",
17972 "typeDescriptions": {
17973 "typeIdentifier": "t_uint112",
17974 "typeString": "uint112"
17975 }
17976 },
17977 "value": null,
17978 "visibility": "internal"
17979 }
17980 ],
17981 "src": "2614:36:2"
17982 },
17983 "src": "2604:47:2"
17984 },
17985 {
17986 "body": {
17987 "id": 827,
17988 "nodeType": "Block",
17989 "src": "2678:87:2",
17990 "statements": [
17991 {
17992 "expression": {
17993 "argumentTypes": null,
17994 "id": 813,
17995 "isConstant": false,
17996 "isLValue": false,
17997 "isPure": false,
17998 "lValueRequested": false,
17999 "leftHandSide": {
18000 "argumentTypes": null,
18001 "id": 810,
18002 "name": "factory",
18003 "nodeType": "Identifier",
18004 "overloadedDeclarations": [],
18005 "referencedDeclaration": 629,
18006 "src": "2688:7:2",
18007 "typeDescriptions": {
18008 "typeIdentifier": "t_address",
18009 "typeString": "address"
18010 }
18011 },
18012 "nodeType": "Assignment",
18013 "operator": "=",
18014 "rightHandSide": {
18015 "argumentTypes": null,
18016 "expression": {
18017 "argumentTypes": null,
18018 "id": 811,
18019 "name": "msg",
18020 "nodeType": "Identifier",
18021 "overloadedDeclarations": [],
18022 "referencedDeclaration": 2617,
18023 "src": "2698:3:2",
18024 "typeDescriptions": {
18025 "typeIdentifier": "t_magic_message",
18026 "typeString": "msg"
18027 }
18028 },
18029 "id": 812,
18030 "isConstant": false,
18031 "isLValue": false,
18032 "isPure": false,
18033 "lValueRequested": false,
18034 "memberName": "sender",
18035 "nodeType": "MemberAccess",
18036 "referencedDeclaration": null,
18037 "src": "2698:10:2",
18038 "typeDescriptions": {
18039 "typeIdentifier": "t_address_payable",
18040 "typeString": "address payable"
18041 }
18042 },
18043 "src": "2688:20:2",
18044 "typeDescriptions": {
18045 "typeIdentifier": "t_address",
18046 "typeString": "address"
18047 }
18048 },
18049 "id": 814,
18050 "nodeType": "ExpressionStatement",
18051 "src": "2688:20:2"
18052 },
18053 {
18054 "expression": {
18055 "argumentTypes": null,
18056 "id": 817,
18057 "isConstant": false,
18058 "isLValue": false,
18059 "isPure": false,
18060 "lValueRequested": false,
18061 "leftHandSide": {
18062 "argumentTypes": null,
18063 "id": 815,
18064 "name": "m",
18065 "nodeType": "Identifier",
18066 "overloadedDeclarations": [],
18067 "referencedDeclaration": 639,
18068 "src": "2718:1:2",
18069 "typeDescriptions": {
18070 "typeIdentifier": "t_uint256",
18071 "typeString": "uint256"
18072 }
18073 },
18074 "nodeType": "Assignment",
18075 "operator": "=",
18076 "rightHandSide": {
18077 "argumentTypes": null,
18078 "hexValue": "31303030",
18079 "id": 816,
18080 "isConstant": false,
18081 "isLValue": false,
18082 "isPure": true,
18083 "kind": "number",
18084 "lValueRequested": false,
18085 "nodeType": "Literal",
18086 "src": "2722:4:2",
18087 "subdenomination": null,
18088 "typeDescriptions": {
18089 "typeIdentifier": "t_rational_1000_by_1",
18090 "typeString": "int_const 1000"
18091 },
18092 "value": "1000"
18093 },
18094 "src": "2718:8:2",
18095 "typeDescriptions": {
18096 "typeIdentifier": "t_uint256",
18097 "typeString": "uint256"
18098 }
18099 },
18100 "id": 818,
18101 "nodeType": "ExpressionStatement",
18102 "src": "2718:8:2"
18103 },
18104 {
18105 "expression": {
18106 "argumentTypes": null,
18107 "id": 821,
18108 "isConstant": false,
18109 "isLValue": false,
18110 "isPure": false,
18111 "lValueRequested": false,
18112 "leftHandSide": {
18113 "argumentTypes": null,
18114 "id": 819,
18115 "name": "n",
18116 "nodeType": "Identifier",
18117 "overloadedDeclarations": [],
18118 "referencedDeclaration": 641,
18119 "src": "2736:1:2",
18120 "typeDescriptions": {
18121 "typeIdentifier": "t_uint256",
18122 "typeString": "uint256"
18123 }
18124 },
18125 "nodeType": "Assignment",
18126 "operator": "=",
18127 "rightHandSide": {
18128 "argumentTypes": null,
18129 "hexValue": "31",
18130 "id": 820,
18131 "isConstant": false,
18132 "isLValue": false,
18133 "isPure": true,
18134 "kind": "number",
18135 "lValueRequested": false,
18136 "nodeType": "Literal",
18137 "src": "2740:1:2",
18138 "subdenomination": null,
18139 "typeDescriptions": {
18140 "typeIdentifier": "t_rational_1_by_1",
18141 "typeString": "int_const 1"
18142 },
18143 "value": "1"
18144 },
18145 "src": "2736:5:2",
18146 "typeDescriptions": {
18147 "typeIdentifier": "t_uint256",
18148 "typeString": "uint256"
18149 }
18150 },
18151 "id": 822,
18152 "nodeType": "ExpressionStatement",
18153 "src": "2736:5:2"
18154 },
18155 {
18156 "expression": {
18157 "argumentTypes": null,
18158 "id": 825,
18159 "isConstant": false,
18160 "isLValue": false,
18161 "isPure": false,
18162 "lValueRequested": false,
18163 "leftHandSide": {
18164 "argumentTypes": null,
18165 "id": 823,
18166 "name": "fee",
18167 "nodeType": "Identifier",
18168 "overloadedDeclarations": [],
18169 "referencedDeclaration": 643,
18170 "src": "2751:3:2",
18171 "typeDescriptions": {
18172 "typeIdentifier": "t_uint256",
18173 "typeString": "uint256"
18174 }
18175 },
18176 "nodeType": "Assignment",
18177 "operator": "=",
18178 "rightHandSide": {
18179 "argumentTypes": null,
18180 "hexValue": "33",
18181 "id": 824,
18182 "isConstant": false,
18183 "isLValue": false,
18184 "isPure": true,
18185 "kind": "number",
18186 "lValueRequested": false,
18187 "nodeType": "Literal",
18188 "src": "2757:1:2",
18189 "subdenomination": null,
18190 "typeDescriptions": {
18191 "typeIdentifier": "t_rational_3_by_1",
18192 "typeString": "int_const 3"
18193 },
18194 "value": "3"
18195 },
18196 "src": "2751:7:2",
18197 "typeDescriptions": {
18198 "typeIdentifier": "t_uint256",
18199 "typeString": "uint256"
18200 }
18201 },
18202 "id": 826,
18203 "nodeType": "ExpressionStatement",
18204 "src": "2751:7:2"
18205 }
18206 ]
18207 },
18208 "documentation": null,
18209 "id": 828,
18210 "implemented": true,
18211 "kind": "constructor",
18212 "modifiers": [],
18213 "name": "",
18214 "nodeType": "FunctionDefinition",
18215 "parameters": {
18216 "id": 808,
18217 "nodeType": "ParameterList",
18218 "parameters": [],
18219 "src": "2668:2:2"
18220 },
18221 "returnParameters": {
18222 "id": 809,
18223 "nodeType": "ParameterList",
18224 "parameters": [],
18225 "src": "2678:0:2"
18226 },
18227 "scope": 1834,
18228 "src": "2657:108:2",
18229 "stateMutability": "nonpayable",
18230 "superFunction": null,
18231 "visibility": "public"
18232 },
18233 {
18234 "body": {
18235 "id": 902,
18236 "nodeType": "Block",
18237 "src": "2965:451:2",
18238 "statements": [
18239 {
18240 "expression": {
18241 "argumentTypes": null,
18242 "arguments": [
18243 {
18244 "argumentTypes": null,
18245 "commonType": {
18246 "typeIdentifier": "t_address",
18247 "typeString": "address"
18248 },
18249 "id": 849,
18250 "isConstant": false,
18251 "isLValue": false,
18252 "isPure": false,
18253 "lValueRequested": false,
18254 "leftExpression": {
18255 "argumentTypes": null,
18256 "expression": {
18257 "argumentTypes": null,
18258 "id": 846,
18259 "name": "msg",
18260 "nodeType": "Identifier",
18261 "overloadedDeclarations": [],
18262 "referencedDeclaration": 2617,
18263 "src": "2983:3:2",
18264 "typeDescriptions": {
18265 "typeIdentifier": "t_magic_message",
18266 "typeString": "msg"
18267 }
18268 },
18269 "id": 847,
18270 "isConstant": false,
18271 "isLValue": false,
18272 "isPure": false,
18273 "lValueRequested": false,
18274 "memberName": "sender",
18275 "nodeType": "MemberAccess",
18276 "referencedDeclaration": null,
18277 "src": "2983:10:2",
18278 "typeDescriptions": {
18279 "typeIdentifier": "t_address_payable",
18280 "typeString": "address payable"
18281 }
18282 },
18283 "nodeType": "BinaryOperation",
18284 "operator": "==",
18285 "rightExpression": {
18286 "argumentTypes": null,
18287 "id": 848,
18288 "name": "factory",
18289 "nodeType": "Identifier",
18290 "overloadedDeclarations": [],
18291 "referencedDeclaration": 629,
18292 "src": "2997:7:2",
18293 "typeDescriptions": {
18294 "typeIdentifier": "t_address",
18295 "typeString": "address"
18296 }
18297 },
18298 "src": "2983:21:2",
18299 "typeDescriptions": {
18300 "typeIdentifier": "t_bool",
18301 "typeString": "bool"
18302 }
18303 },
18304 {
18305 "argumentTypes": null,
18306 "hexValue": "556e697377617056323a20464f5242494444454e",
18307 "id": 850,
18308 "isConstant": false,
18309 "isLValue": false,
18310 "isPure": true,
18311 "kind": "string",
18312 "lValueRequested": false,
18313 "nodeType": "Literal",
18314 "src": "3006:22:2",
18315 "subdenomination": null,
18316 "typeDescriptions": {
18317 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
18318 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
18319 },
18320 "value": "UniswapV2: FORBIDDEN"
18321 }
18322 ],
18323 "expression": {
18324 "argumentTypes": [
18325 {
18326 "typeIdentifier": "t_bool",
18327 "typeString": "bool"
18328 },
18329 {
18330 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
18331 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
18332 }
18333 ],
18334 "id": 845,
18335 "name": "require",
18336 "nodeType": "Identifier",
18337 "overloadedDeclarations": [
18338 2620,
18339 2621
18340 ],
18341 "referencedDeclaration": 2621,
18342 "src": "2975:7:2",
18343 "typeDescriptions": {
18344 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
18345 "typeString": "function (bool,string memory) pure"
18346 }
18347 },
18348 "id": 851,
18349 "isConstant": false,
18350 "isLValue": false,
18351 "isPure": false,
18352 "kind": "functionCall",
18353 "lValueRequested": false,
18354 "names": [],
18355 "nodeType": "FunctionCall",
18356 "src": "2975:54:2",
18357 "typeDescriptions": {
18358 "typeIdentifier": "t_tuple$__$",
18359 "typeString": "tuple()"
18360 }
18361 },
18362 "id": 852,
18363 "nodeType": "ExpressionStatement",
18364 "src": "2975:54:2"
18365 },
18366 {
18367 "expression": {
18368 "argumentTypes": null,
18369 "arguments": [
18370 {
18371 "argumentTypes": null,
18372 "commonType": {
18373 "typeIdentifier": "t_uint256",
18374 "typeString": "uint256"
18375 },
18376 "id": 856,
18377 "isConstant": false,
18378 "isLValue": false,
18379 "isPure": false,
18380 "lValueRequested": false,
18381 "leftExpression": {
18382 "argumentTypes": null,
18383 "id": 854,
18384 "name": "_exp",
18385 "nodeType": "Identifier",
18386 "overloadedDeclarations": [],
18387 "referencedDeclaration": 840,
18388 "src": "3067:4:2",
18389 "typeDescriptions": {
18390 "typeIdentifier": "t_uint256",
18391 "typeString": "uint256"
18392 }
18393 },
18394 "nodeType": "BinaryOperation",
18395 "operator": ">=",
18396 "rightExpression": {
18397 "argumentTypes": null,
18398 "hexValue": "31",
18399 "id": 855,
18400 "isConstant": false,
18401 "isLValue": false,
18402 "isPure": true,
18403 "kind": "number",
18404 "lValueRequested": false,
18405 "nodeType": "Literal",
18406 "src": "3075:1:2",
18407 "subdenomination": null,
18408 "typeDescriptions": {
18409 "typeIdentifier": "t_rational_1_by_1",
18410 "typeString": "int_const 1"
18411 },
18412 "value": "1"
18413 },
18414 "src": "3067:9:2",
18415 "typeDescriptions": {
18416 "typeIdentifier": "t_bool",
18417 "typeString": "bool"
18418 }
18419 },
18420 {
18421 "argumentTypes": null,
18422 "hexValue": "556e697377617056323a206578706f6e656e74206d757374206265203e3d2031",
18423 "id": 857,
18424 "isConstant": false,
18425 "isLValue": false,
18426 "isPure": true,
18427 "kind": "string",
18428 "lValueRequested": false,
18429 "nodeType": "Literal",
18430 "src": "3078:34:2",
18431 "subdenomination": null,
18432 "typeDescriptions": {
18433 "typeIdentifier": "t_stringliteral_d82a92104e1a15c04c7bc96ce9b961251c48c638394bd9fc39b844f7cdd6502b",
18434 "typeString": "literal_string \"UniswapV2: exponent must be >= 1\""
18435 },
18436 "value": "UniswapV2: exponent must be >= 1"
18437 }
18438 ],
18439 "expression": {
18440 "argumentTypes": [
18441 {
18442 "typeIdentifier": "t_bool",
18443 "typeString": "bool"
18444 },
18445 {
18446 "typeIdentifier": "t_stringliteral_d82a92104e1a15c04c7bc96ce9b961251c48c638394bd9fc39b844f7cdd6502b",
18447 "typeString": "literal_string \"UniswapV2: exponent must be >= 1\""
18448 }
18449 ],
18450 "id": 853,
18451 "name": "require",
18452 "nodeType": "Identifier",
18453 "overloadedDeclarations": [
18454 2620,
18455 2621
18456 ],
18457 "referencedDeclaration": 2621,
18458 "src": "3059:7:2",
18459 "typeDescriptions": {
18460 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
18461 "typeString": "function (bool,string memory) pure"
18462 }
18463 },
18464 "id": 858,
18465 "isConstant": false,
18466 "isLValue": false,
18467 "isPure": false,
18468 "kind": "functionCall",
18469 "lValueRequested": false,
18470 "names": [],
18471 "nodeType": "FunctionCall",
18472 "src": "3059:54:2",
18473 "typeDescriptions": {
18474 "typeIdentifier": "t_tuple$__$",
18475 "typeString": "tuple()"
18476 }
18477 },
18478 "id": 859,
18479 "nodeType": "ExpressionStatement",
18480 "src": "3059:54:2"
18481 },
18482 {
18483 "expression": {
18484 "argumentTypes": null,
18485 "arguments": [
18486 {
18487 "argumentTypes": null,
18488 "commonType": {
18489 "typeIdentifier": "t_uint256",
18490 "typeString": "uint256"
18491 },
18492 "id": 863,
18493 "isConstant": false,
18494 "isLValue": false,
18495 "isPure": false,
18496 "lValueRequested": false,
18497 "leftExpression": {
18498 "argumentTypes": null,
18499 "id": 861,
18500 "name": "_slope",
18501 "nodeType": "Identifier",
18502 "overloadedDeclarations": [],
18503 "referencedDeclaration": 838,
18504 "src": "3131:6:2",
18505 "typeDescriptions": {
18506 "typeIdentifier": "t_uint256",
18507 "typeString": "uint256"
18508 }
18509 },
18510 "nodeType": "BinaryOperation",
18511 "operator": ">=",
18512 "rightExpression": {
18513 "argumentTypes": null,
18514 "hexValue": "31",
18515 "id": 862,
18516 "isConstant": false,
18517 "isLValue": false,
18518 "isPure": true,
18519 "kind": "number",
18520 "lValueRequested": false,
18521 "nodeType": "Literal",
18522 "src": "3141:1:2",
18523 "subdenomination": null,
18524 "typeDescriptions": {
18525 "typeIdentifier": "t_rational_1_by_1",
18526 "typeString": "int_const 1"
18527 },
18528 "value": "1"
18529 },
18530 "src": "3131:11:2",
18531 "typeDescriptions": {
18532 "typeIdentifier": "t_bool",
18533 "typeString": "bool"
18534 }
18535 },
18536 {
18537 "argumentTypes": null,
18538 "hexValue": "556e697377617056323a20736c6f7065206d757374206265203e3d2031",
18539 "id": 864,
18540 "isConstant": false,
18541 "isLValue": false,
18542 "isPure": true,
18543 "kind": "string",
18544 "lValueRequested": false,
18545 "nodeType": "Literal",
18546 "src": "3144:31:2",
18547 "subdenomination": null,
18548 "typeDescriptions": {
18549 "typeIdentifier": "t_stringliteral_2d74716794177248f6ce5e28f78a5b78d564efe3facf0767399ded6fdb223a53",
18550 "typeString": "literal_string \"UniswapV2: slope must be >= 1\""
18551 },
18552 "value": "UniswapV2: slope must be >= 1"
18553 }
18554 ],
18555 "expression": {
18556 "argumentTypes": [
18557 {
18558 "typeIdentifier": "t_bool",
18559 "typeString": "bool"
18560 },
18561 {
18562 "typeIdentifier": "t_stringliteral_2d74716794177248f6ce5e28f78a5b78d564efe3facf0767399ded6fdb223a53",
18563 "typeString": "literal_string \"UniswapV2: slope must be >= 1\""
18564 }
18565 ],
18566 "id": 860,
18567 "name": "require",
18568 "nodeType": "Identifier",
18569 "overloadedDeclarations": [
18570 2620,
18571 2621
18572 ],
18573 "referencedDeclaration": 2621,
18574 "src": "3123:7:2",
18575 "typeDescriptions": {
18576 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
18577 "typeString": "function (bool,string memory) pure"
18578 }
18579 },
18580 "id": 865,
18581 "isConstant": false,
18582 "isLValue": false,
18583 "isPure": false,
18584 "kind": "functionCall",
18585 "lValueRequested": false,
18586 "names": [],
18587 "nodeType": "FunctionCall",
18588 "src": "3123:53:2",
18589 "typeDescriptions": {
18590 "typeIdentifier": "t_tuple$__$",
18591 "typeString": "tuple()"
18592 }
18593 },
18594 "id": 866,
18595 "nodeType": "ExpressionStatement",
18596 "src": "3123:53:2"
18597 },
18598 {
18599 "expression": {
18600 "argumentTypes": null,
18601 "arguments": [
18602 {
18603 "argumentTypes": null,
18604 "commonType": {
18605 "typeIdentifier": "t_uint256",
18606 "typeString": "uint256"
18607 },
18608 "id": 870,
18609 "isConstant": false,
18610 "isLValue": false,
18611 "isPure": false,
18612 "lValueRequested": false,
18613 "leftExpression": {
18614 "argumentTypes": null,
18615 "id": 868,
18616 "name": "_fee",
18617 "nodeType": "Identifier",
18618 "overloadedDeclarations": [],
18619 "referencedDeclaration": 842,
18620 "src": "3194:4:2",
18621 "typeDescriptions": {
18622 "typeIdentifier": "t_uint256",
18623 "typeString": "uint256"
18624 }
18625 },
18626 "nodeType": "BinaryOperation",
18627 "operator": ">=",
18628 "rightExpression": {
18629 "argumentTypes": null,
18630 "hexValue": "31",
18631 "id": 869,
18632 "isConstant": false,
18633 "isLValue": false,
18634 "isPure": true,
18635 "kind": "number",
18636 "lValueRequested": false,
18637 "nodeType": "Literal",
18638 "src": "3202:1:2",
18639 "subdenomination": null,
18640 "typeDescriptions": {
18641 "typeIdentifier": "t_rational_1_by_1",
18642 "typeString": "int_const 1"
18643 },
18644 "value": "1"
18645 },
18646 "src": "3194:9:2",
18647 "typeDescriptions": {
18648 "typeIdentifier": "t_bool",
18649 "typeString": "bool"
18650 }
18651 },
18652 {
18653 "argumentTypes": null,
18654 "hexValue": "556e697377617056323a20666565206d757374206265203e3d2031",
18655 "id": 871,
18656 "isConstant": false,
18657 "isLValue": false,
18658 "isPure": true,
18659 "kind": "string",
18660 "lValueRequested": false,
18661 "nodeType": "Literal",
18662 "src": "3205:29:2",
18663 "subdenomination": null,
18664 "typeDescriptions": {
18665 "typeIdentifier": "t_stringliteral_5e92aaa907fc8f863de6cdbe6214748d84b9dfdfccd1e2e0df1451fe5bc10f6d",
18666 "typeString": "literal_string \"UniswapV2: fee must be >= 1\""
18667 },
18668 "value": "UniswapV2: fee must be >= 1"
18669 }
18670 ],
18671 "expression": {
18672 "argumentTypes": [
18673 {
18674 "typeIdentifier": "t_bool",
18675 "typeString": "bool"
18676 },
18677 {
18678 "typeIdentifier": "t_stringliteral_5e92aaa907fc8f863de6cdbe6214748d84b9dfdfccd1e2e0df1451fe5bc10f6d",
18679 "typeString": "literal_string \"UniswapV2: fee must be >= 1\""
18680 }
18681 ],
18682 "id": 867,
18683 "name": "require",
18684 "nodeType": "Identifier",
18685 "overloadedDeclarations": [
18686 2620,
18687 2621
18688 ],
18689 "referencedDeclaration": 2621,
18690 "src": "3186:7:2",
18691 "typeDescriptions": {
18692 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
18693 "typeString": "function (bool,string memory) pure"
18694 }
18695 },
18696 "id": 872,
18697 "isConstant": false,
18698 "isLValue": false,
18699 "isPure": false,
18700 "kind": "functionCall",
18701 "lValueRequested": false,
18702 "names": [],
18703 "nodeType": "FunctionCall",
18704 "src": "3186:49:2",
18705 "typeDescriptions": {
18706 "typeIdentifier": "t_tuple$__$",
18707 "typeString": "tuple()"
18708 }
18709 },
18710 "id": 873,
18711 "nodeType": "ExpressionStatement",
18712 "src": "3186:49:2"
18713 },
18714 {
18715 "expression": {
18716 "argumentTypes": null,
18717 "id": 876,
18718 "isConstant": false,
18719 "isLValue": false,
18720 "isPure": false,
18721 "lValueRequested": false,
18722 "leftHandSide": {
18723 "argumentTypes": null,
18724 "id": 874,
18725 "name": "token0",
18726 "nodeType": "Identifier",
18727 "overloadedDeclarations": [],
18728 "referencedDeclaration": 631,
18729 "src": "3245:6:2",
18730 "typeDescriptions": {
18731 "typeIdentifier": "t_address",
18732 "typeString": "address"
18733 }
18734 },
18735 "nodeType": "Assignment",
18736 "operator": "=",
18737 "rightHandSide": {
18738 "argumentTypes": null,
18739 "id": 875,
18740 "name": "_token0",
18741 "nodeType": "Identifier",
18742 "overloadedDeclarations": [],
18743 "referencedDeclaration": 830,
18744 "src": "3254:7:2",
18745 "typeDescriptions": {
18746 "typeIdentifier": "t_address",
18747 "typeString": "address"
18748 }
18749 },
18750 "src": "3245:16:2",
18751 "typeDescriptions": {
18752 "typeIdentifier": "t_address",
18753 "typeString": "address"
18754 }
18755 },
18756 "id": 877,
18757 "nodeType": "ExpressionStatement",
18758 "src": "3245:16:2"
18759 },
18760 {
18761 "expression": {
18762 "argumentTypes": null,
18763 "id": 880,
18764 "isConstant": false,
18765 "isLValue": false,
18766 "isPure": false,
18767 "lValueRequested": false,
18768 "leftHandSide": {
18769 "argumentTypes": null,
18770 "id": 878,
18771 "name": "token1",
18772 "nodeType": "Identifier",
18773 "overloadedDeclarations": [],
18774 "referencedDeclaration": 633,
18775 "src": "3271:6:2",
18776 "typeDescriptions": {
18777 "typeIdentifier": "t_address",
18778 "typeString": "address"
18779 }
18780 },
18781 "nodeType": "Assignment",
18782 "operator": "=",
18783 "rightHandSide": {
18784 "argumentTypes": null,
18785 "id": 879,
18786 "name": "_token1",
18787 "nodeType": "Identifier",
18788 "overloadedDeclarations": [],
18789 "referencedDeclaration": 832,
18790 "src": "3280:7:2",
18791 "typeDescriptions": {
18792 "typeIdentifier": "t_address",
18793 "typeString": "address"
18794 }
18795 },
18796 "src": "3271:16:2",
18797 "typeDescriptions": {
18798 "typeIdentifier": "t_address",
18799 "typeString": "address"
18800 }
18801 },
18802 "id": 881,
18803 "nodeType": "ExpressionStatement",
18804 "src": "3271:16:2"
18805 },
18806 {
18807 "expression": {
18808 "argumentTypes": null,
18809 "id": 884,
18810 "isConstant": false,
18811 "isLValue": false,
18812 "isPure": false,
18813 "lValueRequested": false,
18814 "leftHandSide": {
18815 "argumentTypes": null,
18816 "id": 882,
18817 "name": "baseToken",
18818 "nodeType": "Identifier",
18819 "overloadedDeclarations": [],
18820 "referencedDeclaration": 635,
18821 "src": "3297:9:2",
18822 "typeDescriptions": {
18823 "typeIdentifier": "t_address",
18824 "typeString": "address"
18825 }
18826 },
18827 "nodeType": "Assignment",
18828 "operator": "=",
18829 "rightHandSide": {
18830 "argumentTypes": null,
18831 "id": 883,
18832 "name": "_baseToken",
18833 "nodeType": "Identifier",
18834 "overloadedDeclarations": [],
18835 "referencedDeclaration": 834,
18836 "src": "3309:10:2",
18837 "typeDescriptions": {
18838 "typeIdentifier": "t_address",
18839 "typeString": "address"
18840 }
18841 },
18842 "src": "3297:22:2",
18843 "typeDescriptions": {
18844 "typeIdentifier": "t_address",
18845 "typeString": "address"
18846 }
18847 },
18848 "id": 885,
18849 "nodeType": "ExpressionStatement",
18850 "src": "3297:22:2"
18851 },
18852 {
18853 "expression": {
18854 "argumentTypes": null,
18855 "id": 888,
18856 "isConstant": false,
18857 "isLValue": false,
18858 "isPure": false,
18859 "lValueRequested": false,
18860 "leftHandSide": {
18861 "argumentTypes": null,
18862 "id": 886,
18863 "name": "pairOwner",
18864 "nodeType": "Identifier",
18865 "overloadedDeclarations": [],
18866 "referencedDeclaration": 637,
18867 "src": "3329:9:2",
18868 "typeDescriptions": {
18869 "typeIdentifier": "t_address",
18870 "typeString": "address"
18871 }
18872 },
18873 "nodeType": "Assignment",
18874 "operator": "=",
18875 "rightHandSide": {
18876 "argumentTypes": null,
18877 "id": 887,
18878 "name": "_pairOwner",
18879 "nodeType": "Identifier",
18880 "overloadedDeclarations": [],
18881 "referencedDeclaration": 836,
18882 "src": "3341:10:2",
18883 "typeDescriptions": {
18884 "typeIdentifier": "t_address",
18885 "typeString": "address"
18886 }
18887 },
18888 "src": "3329:22:2",
18889 "typeDescriptions": {
18890 "typeIdentifier": "t_address",
18891 "typeString": "address"
18892 }
18893 },
18894 "id": 889,
18895 "nodeType": "ExpressionStatement",
18896 "src": "3329:22:2"
18897 },
18898 {
18899 "expression": {
18900 "argumentTypes": null,
18901 "id": 892,
18902 "isConstant": false,
18903 "isLValue": false,
18904 "isPure": false,
18905 "lValueRequested": false,
18906 "leftHandSide": {
18907 "argumentTypes": null,
18908 "id": 890,
18909 "name": "m",
18910 "nodeType": "Identifier",
18911 "overloadedDeclarations": [],
18912 "referencedDeclaration": 639,
18913 "src": "3361:1:2",
18914 "typeDescriptions": {
18915 "typeIdentifier": "t_uint256",
18916 "typeString": "uint256"
18917 }
18918 },
18919 "nodeType": "Assignment",
18920 "operator": "=",
18921 "rightHandSide": {
18922 "argumentTypes": null,
18923 "id": 891,
18924 "name": "_slope",
18925 "nodeType": "Identifier",
18926 "overloadedDeclarations": [],
18927 "referencedDeclaration": 838,
18928 "src": "3365:6:2",
18929 "typeDescriptions": {
18930 "typeIdentifier": "t_uint256",
18931 "typeString": "uint256"
18932 }
18933 },
18934 "src": "3361:10:2",
18935 "typeDescriptions": {
18936 "typeIdentifier": "t_uint256",
18937 "typeString": "uint256"
18938 }
18939 },
18940 "id": 893,
18941 "nodeType": "ExpressionStatement",
18942 "src": "3361:10:2"
18943 },
18944 {
18945 "expression": {
18946 "argumentTypes": null,
18947 "id": 896,
18948 "isConstant": false,
18949 "isLValue": false,
18950 "isPure": false,
18951 "lValueRequested": false,
18952 "leftHandSide": {
18953 "argumentTypes": null,
18954 "id": 894,
18955 "name": "n",
18956 "nodeType": "Identifier",
18957 "overloadedDeclarations": [],
18958 "referencedDeclaration": 641,
18959 "src": "3381:1:2",
18960 "typeDescriptions": {
18961 "typeIdentifier": "t_uint256",
18962 "typeString": "uint256"
18963 }
18964 },
18965 "nodeType": "Assignment",
18966 "operator": "=",
18967 "rightHandSide": {
18968 "argumentTypes": null,
18969 "id": 895,
18970 "name": "_exp",
18971 "nodeType": "Identifier",
18972 "overloadedDeclarations": [],
18973 "referencedDeclaration": 840,
18974 "src": "3385:4:2",
18975 "typeDescriptions": {
18976 "typeIdentifier": "t_uint256",
18977 "typeString": "uint256"
18978 }
18979 },
18980 "src": "3381:8:2",
18981 "typeDescriptions": {
18982 "typeIdentifier": "t_uint256",
18983 "typeString": "uint256"
18984 }
18985 },
18986 "id": 897,
18987 "nodeType": "ExpressionStatement",
18988 "src": "3381:8:2"
18989 },
18990 {
18991 "expression": {
18992 "argumentTypes": null,
18993 "id": 900,
18994 "isConstant": false,
18995 "isLValue": false,
18996 "isPure": false,
18997 "lValueRequested": false,
18998 "leftHandSide": {
18999 "argumentTypes": null,
19000 "id": 898,
19001 "name": "fee",
19002 "nodeType": "Identifier",
19003 "overloadedDeclarations": [],
19004 "referencedDeclaration": 643,
19005 "src": "3399:3:2",
19006 "typeDescriptions": {
19007 "typeIdentifier": "t_uint256",
19008 "typeString": "uint256"
19009 }
19010 },
19011 "nodeType": "Assignment",
19012 "operator": "=",
19013 "rightHandSide": {
19014 "argumentTypes": null,
19015 "id": 899,
19016 "name": "_fee",
19017 "nodeType": "Identifier",
19018 "overloadedDeclarations": [],
19019 "referencedDeclaration": 842,
19020 "src": "3405:4:2",
19021 "typeDescriptions": {
19022 "typeIdentifier": "t_uint256",
19023 "typeString": "uint256"
19024 }
19025 },
19026 "src": "3399:10:2",
19027 "typeDescriptions": {
19028 "typeIdentifier": "t_uint256",
19029 "typeString": "uint256"
19030 }
19031 },
19032 "id": 901,
19033 "nodeType": "ExpressionStatement",
19034 "src": "3399:10:2"
19035 }
19036 ]
19037 },
19038 "documentation": null,
19039 "id": 903,
19040 "implemented": true,
19041 "kind": "function",
19042 "modifiers": [],
19043 "name": "initialize",
19044 "nodeType": "FunctionDefinition",
19045 "parameters": {
19046 "id": 843,
19047 "nodeType": "ParameterList",
19048 "parameters": [
19049 {
19050 "constant": false,
19051 "id": 830,
19052 "name": "_token0",
19053 "nodeType": "VariableDeclaration",
19054 "scope": 903,
19055 "src": "2847:15:2",
19056 "stateVariable": false,
19057 "storageLocation": "default",
19058 "typeDescriptions": {
19059 "typeIdentifier": "t_address",
19060 "typeString": "address"
19061 },
19062 "typeName": {
19063 "id": 829,
19064 "name": "address",
19065 "nodeType": "ElementaryTypeName",
19066 "src": "2847:7:2",
19067 "stateMutability": "nonpayable",
19068 "typeDescriptions": {
19069 "typeIdentifier": "t_address",
19070 "typeString": "address"
19071 }
19072 },
19073 "value": null,
19074 "visibility": "internal"
19075 },
19076 {
19077 "constant": false,
19078 "id": 832,
19079 "name": "_token1",
19080 "nodeType": "VariableDeclaration",
19081 "scope": 903,
19082 "src": "2864:15:2",
19083 "stateVariable": false,
19084 "storageLocation": "default",
19085 "typeDescriptions": {
19086 "typeIdentifier": "t_address",
19087 "typeString": "address"
19088 },
19089 "typeName": {
19090 "id": 831,
19091 "name": "address",
19092 "nodeType": "ElementaryTypeName",
19093 "src": "2864:7:2",
19094 "stateMutability": "nonpayable",
19095 "typeDescriptions": {
19096 "typeIdentifier": "t_address",
19097 "typeString": "address"
19098 }
19099 },
19100 "value": null,
19101 "visibility": "internal"
19102 },
19103 {
19104 "constant": false,
19105 "id": 834,
19106 "name": "_baseToken",
19107 "nodeType": "VariableDeclaration",
19108 "scope": 903,
19109 "src": "2881:18:2",
19110 "stateVariable": false,
19111 "storageLocation": "default",
19112 "typeDescriptions": {
19113 "typeIdentifier": "t_address",
19114 "typeString": "address"
19115 },
19116 "typeName": {
19117 "id": 833,
19118 "name": "address",
19119 "nodeType": "ElementaryTypeName",
19120 "src": "2881:7:2",
19121 "stateMutability": "nonpayable",
19122 "typeDescriptions": {
19123 "typeIdentifier": "t_address",
19124 "typeString": "address"
19125 }
19126 },
19127 "value": null,
19128 "visibility": "internal"
19129 },
19130 {
19131 "constant": false,
19132 "id": 836,
19133 "name": "_pairOwner",
19134 "nodeType": "VariableDeclaration",
19135 "scope": 903,
19136 "src": "2901:18:2",
19137 "stateVariable": false,
19138 "storageLocation": "default",
19139 "typeDescriptions": {
19140 "typeIdentifier": "t_address",
19141 "typeString": "address"
19142 },
19143 "typeName": {
19144 "id": 835,
19145 "name": "address",
19146 "nodeType": "ElementaryTypeName",
19147 "src": "2901:7:2",
19148 "stateMutability": "nonpayable",
19149 "typeDescriptions": {
19150 "typeIdentifier": "t_address",
19151 "typeString": "address"
19152 }
19153 },
19154 "value": null,
19155 "visibility": "internal"
19156 },
19157 {
19158 "constant": false,
19159 "id": 838,
19160 "name": "_slope",
19161 "nodeType": "VariableDeclaration",
19162 "scope": 903,
19163 "src": "2921:11:2",
19164 "stateVariable": false,
19165 "storageLocation": "default",
19166 "typeDescriptions": {
19167 "typeIdentifier": "t_uint256",
19168 "typeString": "uint256"
19169 },
19170 "typeName": {
19171 "id": 837,
19172 "name": "uint",
19173 "nodeType": "ElementaryTypeName",
19174 "src": "2921:4:2",
19175 "typeDescriptions": {
19176 "typeIdentifier": "t_uint256",
19177 "typeString": "uint256"
19178 }
19179 },
19180 "value": null,
19181 "visibility": "internal"
19182 },
19183 {
19184 "constant": false,
19185 "id": 840,
19186 "name": "_exp",
19187 "nodeType": "VariableDeclaration",
19188 "scope": 903,
19189 "src": "2934:9:2",
19190 "stateVariable": false,
19191 "storageLocation": "default",
19192 "typeDescriptions": {
19193 "typeIdentifier": "t_uint256",
19194 "typeString": "uint256"
19195 },
19196 "typeName": {
19197 "id": 839,
19198 "name": "uint",
19199 "nodeType": "ElementaryTypeName",
19200 "src": "2934:4:2",
19201 "typeDescriptions": {
19202 "typeIdentifier": "t_uint256",
19203 "typeString": "uint256"
19204 }
19205 },
19206 "value": null,
19207 "visibility": "internal"
19208 },
19209 {
19210 "constant": false,
19211 "id": 842,
19212 "name": "_fee",
19213 "nodeType": "VariableDeclaration",
19214 "scope": 903,
19215 "src": "2945:9:2",
19216 "stateVariable": false,
19217 "storageLocation": "default",
19218 "typeDescriptions": {
19219 "typeIdentifier": "t_uint256",
19220 "typeString": "uint256"
19221 },
19222 "typeName": {
19223 "id": 841,
19224 "name": "uint",
19225 "nodeType": "ElementaryTypeName",
19226 "src": "2945:4:2",
19227 "typeDescriptions": {
19228 "typeIdentifier": "t_uint256",
19229 "typeString": "uint256"
19230 }
19231 },
19232 "value": null,
19233 "visibility": "internal"
19234 }
19235 ],
19236 "src": "2846:109:2"
19237 },
19238 "returnParameters": {
19239 "id": 844,
19240 "nodeType": "ParameterList",
19241 "parameters": [],
19242 "src": "2965:0:2"
19243 },
19244 "scope": 1834,
19245 "src": "2827:589:2",
19246 "stateMutability": "nonpayable",
19247 "superFunction": 2385,
19248 "visibility": "external"
19249 },
19250 {
19251 "body": {
19252 "id": 920,
19253 "nodeType": "Block",
19254 "src": "3473:105:2",
19255 "statements": [
19256 {
19257 "expression": {
19258 "argumentTypes": null,
19259 "arguments": [
19260 {
19261 "argumentTypes": null,
19262 "commonType": {
19263 "typeIdentifier": "t_address",
19264 "typeString": "address"
19265 },
19266 "id": 912,
19267 "isConstant": false,
19268 "isLValue": false,
19269 "isPure": false,
19270 "lValueRequested": false,
19271 "leftExpression": {
19272 "argumentTypes": null,
19273 "expression": {
19274 "argumentTypes": null,
19275 "id": 909,
19276 "name": "msg",
19277 "nodeType": "Identifier",
19278 "overloadedDeclarations": [],
19279 "referencedDeclaration": 2617,
19280 "src": "3491:3:2",
19281 "typeDescriptions": {
19282 "typeIdentifier": "t_magic_message",
19283 "typeString": "msg"
19284 }
19285 },
19286 "id": 910,
19287 "isConstant": false,
19288 "isLValue": false,
19289 "isPure": false,
19290 "lValueRequested": false,
19291 "memberName": "sender",
19292 "nodeType": "MemberAccess",
19293 "referencedDeclaration": null,
19294 "src": "3491:10:2",
19295 "typeDescriptions": {
19296 "typeIdentifier": "t_address_payable",
19297 "typeString": "address payable"
19298 }
19299 },
19300 "nodeType": "BinaryOperation",
19301 "operator": "==",
19302 "rightExpression": {
19303 "argumentTypes": null,
19304 "id": 911,
19305 "name": "pairOwner",
19306 "nodeType": "Identifier",
19307 "overloadedDeclarations": [],
19308 "referencedDeclaration": 637,
19309 "src": "3505:9:2",
19310 "typeDescriptions": {
19311 "typeIdentifier": "t_address",
19312 "typeString": "address"
19313 }
19314 },
19315 "src": "3491:23:2",
19316 "typeDescriptions": {
19317 "typeIdentifier": "t_bool",
19318 "typeString": "bool"
19319 }
19320 },
19321 {
19322 "argumentTypes": null,
19323 "hexValue": "556e697377617056323a20464f5242494444454e",
19324 "id": 913,
19325 "isConstant": false,
19326 "isLValue": false,
19327 "isPure": true,
19328 "kind": "string",
19329 "lValueRequested": false,
19330 "nodeType": "Literal",
19331 "src": "3516:22:2",
19332 "subdenomination": null,
19333 "typeDescriptions": {
19334 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
19335 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
19336 },
19337 "value": "UniswapV2: FORBIDDEN"
19338 }
19339 ],
19340 "expression": {
19341 "argumentTypes": [
19342 {
19343 "typeIdentifier": "t_bool",
19344 "typeString": "bool"
19345 },
19346 {
19347 "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37",
19348 "typeString": "literal_string \"UniswapV2: FORBIDDEN\""
19349 }
19350 ],
19351 "id": 908,
19352 "name": "require",
19353 "nodeType": "Identifier",
19354 "overloadedDeclarations": [
19355 2620,
19356 2621
19357 ],
19358 "referencedDeclaration": 2621,
19359 "src": "3483:7:2",
19360 "typeDescriptions": {
19361 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
19362 "typeString": "function (bool,string memory) pure"
19363 }
19364 },
19365 "id": 914,
19366 "isConstant": false,
19367 "isLValue": false,
19368 "isPure": false,
19369 "kind": "functionCall",
19370 "lValueRequested": false,
19371 "names": [],
19372 "nodeType": "FunctionCall",
19373 "src": "3483:56:2",
19374 "typeDescriptions": {
19375 "typeIdentifier": "t_tuple$__$",
19376 "typeString": "tuple()"
19377 }
19378 },
19379 "id": 915,
19380 "nodeType": "ExpressionStatement",
19381 "src": "3483:56:2"
19382 },
19383 {
19384 "expression": {
19385 "argumentTypes": null,
19386 "id": 918,
19387 "isConstant": false,
19388 "isLValue": false,
19389 "isPure": false,
19390 "lValueRequested": false,
19391 "leftHandSide": {
19392 "argumentTypes": null,
19393 "id": 916,
19394 "name": "pairOwner",
19395 "nodeType": "Identifier",
19396 "overloadedDeclarations": [],
19397 "referencedDeclaration": 637,
19398 "src": "3549:9:2",
19399 "typeDescriptions": {
19400 "typeIdentifier": "t_address",
19401 "typeString": "address"
19402 }
19403 },
19404 "nodeType": "Assignment",
19405 "operator": "=",
19406 "rightHandSide": {
19407 "argumentTypes": null,
19408 "id": 917,
19409 "name": "_nextOwner",
19410 "nodeType": "Identifier",
19411 "overloadedDeclarations": [],
19412 "referencedDeclaration": 905,
19413 "src": "3561:10:2",
19414 "typeDescriptions": {
19415 "typeIdentifier": "t_address",
19416 "typeString": "address"
19417 }
19418 },
19419 "src": "3549:22:2",
19420 "typeDescriptions": {
19421 "typeIdentifier": "t_address",
19422 "typeString": "address"
19423 }
19424 },
19425 "id": 919,
19426 "nodeType": "ExpressionStatement",
19427 "src": "3549:22:2"
19428 }
19429 ]
19430 },
19431 "documentation": null,
19432 "id": 921,
19433 "implemented": true,
19434 "kind": "function",
19435 "modifiers": [],
19436 "name": "setPairOwner",
19437 "nodeType": "FunctionDefinition",
19438 "parameters": {
19439 "id": 906,
19440 "nodeType": "ParameterList",
19441 "parameters": [
19442 {
19443 "constant": false,
19444 "id": 905,
19445 "name": "_nextOwner",
19446 "nodeType": "VariableDeclaration",
19447 "scope": 921,
19448 "src": "3444:18:2",
19449 "stateVariable": false,
19450 "storageLocation": "default",
19451 "typeDescriptions": {
19452 "typeIdentifier": "t_address",
19453 "typeString": "address"
19454 },
19455 "typeName": {
19456 "id": 904,
19457 "name": "address",
19458 "nodeType": "ElementaryTypeName",
19459 "src": "3444:7:2",
19460 "stateMutability": "nonpayable",
19461 "typeDescriptions": {
19462 "typeIdentifier": "t_address",
19463 "typeString": "address"
19464 }
19465 },
19466 "value": null,
19467 "visibility": "internal"
19468 }
19469 ],
19470 "src": "3443:20:2"
19471 },
19472 "returnParameters": {
19473 "id": 907,
19474 "nodeType": "ParameterList",
19475 "parameters": [],
19476 "src": "3473:0:2"
19477 },
19478 "scope": 1834,
19479 "src": "3422:156:2",
19480 "stateMutability": "nonpayable",
19481 "superFunction": 2390,
19482 "visibility": "external"
19483 },
19484 {
19485 "body": {
19486 "id": 1028,
19487 "nodeType": "Block",
19488 "src": "4094:754:2",
19489 "statements": [
19490 {
19491 "expression": {
19492 "argumentTypes": null,
19493 "arguments": [
19494 {
19495 "argumentTypes": null,
19496 "commonType": {
19497 "typeIdentifier": "t_bool",
19498 "typeString": "bool"
19499 },
19500 "id": 945,
19501 "isConstant": false,
19502 "isLValue": false,
19503 "isPure": false,
19504 "lValueRequested": false,
19505 "leftExpression": {
19506 "argumentTypes": null,
19507 "commonType": {
19508 "typeIdentifier": "t_uint256",
19509 "typeString": "uint256"
19510 },
19511 "id": 938,
19512 "isConstant": false,
19513 "isLValue": false,
19514 "isPure": false,
19515 "lValueRequested": false,
19516 "leftExpression": {
19517 "argumentTypes": null,
19518 "id": 933,
19519 "name": "balance0",
19520 "nodeType": "Identifier",
19521 "overloadedDeclarations": [],
19522 "referencedDeclaration": 923,
19523 "src": "4112:8:2",
19524 "typeDescriptions": {
19525 "typeIdentifier": "t_uint256",
19526 "typeString": "uint256"
19527 }
19528 },
19529 "nodeType": "BinaryOperation",
19530 "operator": "<=",
19531 "rightExpression": {
19532 "argumentTypes": null,
19533 "arguments": [
19534 {
19535 "argumentTypes": null,
19536 "id": 936,
19537 "isConstant": false,
19538 "isLValue": false,
19539 "isPure": true,
19540 "lValueRequested": false,
19541 "nodeType": "UnaryOperation",
19542 "operator": "-",
19543 "prefix": true,
19544 "src": "4132:2:2",
19545 "subExpression": {
19546 "argumentTypes": null,
19547 "hexValue": "31",
19548 "id": 935,
19549 "isConstant": false,
19550 "isLValue": false,
19551 "isPure": true,
19552 "kind": "number",
19553 "lValueRequested": false,
19554 "nodeType": "Literal",
19555 "src": "4133:1:2",
19556 "subdenomination": null,
19557 "typeDescriptions": {
19558 "typeIdentifier": "t_rational_1_by_1",
19559 "typeString": "int_const 1"
19560 },
19561 "value": "1"
19562 },
19563 "typeDescriptions": {
19564 "typeIdentifier": "t_rational_minus_1_by_1",
19565 "typeString": "int_const -1"
19566 }
19567 }
19568 ],
19569 "expression": {
19570 "argumentTypes": [
19571 {
19572 "typeIdentifier": "t_rational_minus_1_by_1",
19573 "typeString": "int_const -1"
19574 }
19575 ],
19576 "id": 934,
19577 "isConstant": false,
19578 "isLValue": false,
19579 "isPure": true,
19580 "lValueRequested": false,
19581 "nodeType": "ElementaryTypeNameExpression",
19582 "src": "4124:7:2",
19583 "typeDescriptions": {
19584 "typeIdentifier": "t_type$_t_uint112_$",
19585 "typeString": "type(uint112)"
19586 },
19587 "typeName": "uint112"
19588 },
19589 "id": 937,
19590 "isConstant": false,
19591 "isLValue": false,
19592 "isPure": true,
19593 "kind": "typeConversion",
19594 "lValueRequested": false,
19595 "names": [],
19596 "nodeType": "FunctionCall",
19597 "src": "4124:11:2",
19598 "typeDescriptions": {
19599 "typeIdentifier": "t_uint112",
19600 "typeString": "uint112"
19601 }
19602 },
19603 "src": "4112:23:2",
19604 "typeDescriptions": {
19605 "typeIdentifier": "t_bool",
19606 "typeString": "bool"
19607 }
19608 },
19609 "nodeType": "BinaryOperation",
19610 "operator": "&&",
19611 "rightExpression": {
19612 "argumentTypes": null,
19613 "commonType": {
19614 "typeIdentifier": "t_uint256",
19615 "typeString": "uint256"
19616 },
19617 "id": 944,
19618 "isConstant": false,
19619 "isLValue": false,
19620 "isPure": false,
19621 "lValueRequested": false,
19622 "leftExpression": {
19623 "argumentTypes": null,
19624 "id": 939,
19625 "name": "balance1",
19626 "nodeType": "Identifier",
19627 "overloadedDeclarations": [],
19628 "referencedDeclaration": 925,
19629 "src": "4139:8:2",
19630 "typeDescriptions": {
19631 "typeIdentifier": "t_uint256",
19632 "typeString": "uint256"
19633 }
19634 },
19635 "nodeType": "BinaryOperation",
19636 "operator": "<=",
19637 "rightExpression": {
19638 "argumentTypes": null,
19639 "arguments": [
19640 {
19641 "argumentTypes": null,
19642 "id": 942,
19643 "isConstant": false,
19644 "isLValue": false,
19645 "isPure": true,
19646 "lValueRequested": false,
19647 "nodeType": "UnaryOperation",
19648 "operator": "-",
19649 "prefix": true,
19650 "src": "4159:2:2",
19651 "subExpression": {
19652 "argumentTypes": null,
19653 "hexValue": "31",
19654 "id": 941,
19655 "isConstant": false,
19656 "isLValue": false,
19657 "isPure": true,
19658 "kind": "number",
19659 "lValueRequested": false,
19660 "nodeType": "Literal",
19661 "src": "4160:1:2",
19662 "subdenomination": null,
19663 "typeDescriptions": {
19664 "typeIdentifier": "t_rational_1_by_1",
19665 "typeString": "int_const 1"
19666 },
19667 "value": "1"
19668 },
19669 "typeDescriptions": {
19670 "typeIdentifier": "t_rational_minus_1_by_1",
19671 "typeString": "int_const -1"
19672 }
19673 }
19674 ],
19675 "expression": {
19676 "argumentTypes": [
19677 {
19678 "typeIdentifier": "t_rational_minus_1_by_1",
19679 "typeString": "int_const -1"
19680 }
19681 ],
19682 "id": 940,
19683 "isConstant": false,
19684 "isLValue": false,
19685 "isPure": true,
19686 "lValueRequested": false,
19687 "nodeType": "ElementaryTypeNameExpression",
19688 "src": "4151:7:2",
19689 "typeDescriptions": {
19690 "typeIdentifier": "t_type$_t_uint112_$",
19691 "typeString": "type(uint112)"
19692 },
19693 "typeName": "uint112"
19694 },
19695 "id": 943,
19696 "isConstant": false,
19697 "isLValue": false,
19698 "isPure": true,
19699 "kind": "typeConversion",
19700 "lValueRequested": false,
19701 "names": [],
19702 "nodeType": "FunctionCall",
19703 "src": "4151:11:2",
19704 "typeDescriptions": {
19705 "typeIdentifier": "t_uint112",
19706 "typeString": "uint112"
19707 }
19708 },
19709 "src": "4139:23:2",
19710 "typeDescriptions": {
19711 "typeIdentifier": "t_bool",
19712 "typeString": "bool"
19713 }
19714 },
19715 "src": "4112:50:2",
19716 "typeDescriptions": {
19717 "typeIdentifier": "t_bool",
19718 "typeString": "bool"
19719 }
19720 },
19721 {
19722 "argumentTypes": null,
19723 "hexValue": "556e697377617056323a204f564552464c4f57",
19724 "id": 946,
19725 "isConstant": false,
19726 "isLValue": false,
19727 "isPure": true,
19728 "kind": "string",
19729 "lValueRequested": false,
19730 "nodeType": "Literal",
19731 "src": "4164:21:2",
19732 "subdenomination": null,
19733 "typeDescriptions": {
19734 "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928",
19735 "typeString": "literal_string \"UniswapV2: OVERFLOW\""
19736 },
19737 "value": "UniswapV2: OVERFLOW"
19738 }
19739 ],
19740 "expression": {
19741 "argumentTypes": [
19742 {
19743 "typeIdentifier": "t_bool",
19744 "typeString": "bool"
19745 },
19746 {
19747 "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928",
19748 "typeString": "literal_string \"UniswapV2: OVERFLOW\""
19749 }
19750 ],
19751 "id": 932,
19752 "name": "require",
19753 "nodeType": "Identifier",
19754 "overloadedDeclarations": [
19755 2620,
19756 2621
19757 ],
19758 "referencedDeclaration": 2621,
19759 "src": "4104:7:2",
19760 "typeDescriptions": {
19761 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
19762 "typeString": "function (bool,string memory) pure"
19763 }
19764 },
19765 "id": 947,
19766 "isConstant": false,
19767 "isLValue": false,
19768 "isPure": false,
19769 "kind": "functionCall",
19770 "lValueRequested": false,
19771 "names": [],
19772 "nodeType": "FunctionCall",
19773 "src": "4104:82:2",
19774 "typeDescriptions": {
19775 "typeIdentifier": "t_tuple$__$",
19776 "typeString": "tuple()"
19777 }
19778 },
19779 "id": 948,
19780 "nodeType": "ExpressionStatement",
19781 "src": "4104:82:2"
19782 },
19783 {
19784 "assignments": [
19785 950
19786 ],
19787 "declarations": [
19788 {
19789 "constant": false,
19790 "id": 950,
19791 "name": "blockTimestamp",
19792 "nodeType": "VariableDeclaration",
19793 "scope": 1028,
19794 "src": "4196:21:2",
19795 "stateVariable": false,
19796 "storageLocation": "default",
19797 "typeDescriptions": {
19798 "typeIdentifier": "t_uint32",
19799 "typeString": "uint32"
19800 },
19801 "typeName": {
19802 "id": 949,
19803 "name": "uint32",
19804 "nodeType": "ElementaryTypeName",
19805 "src": "4196:6:2",
19806 "typeDescriptions": {
19807 "typeIdentifier": "t_uint32",
19808 "typeString": "uint32"
19809 }
19810 },
19811 "value": null,
19812 "visibility": "internal"
19813 }
19814 ],
19815 "id": 959,
19816 "initialValue": {
19817 "argumentTypes": null,
19818 "arguments": [
19819 {
19820 "argumentTypes": null,
19821 "commonType": {
19822 "typeIdentifier": "t_uint256",
19823 "typeString": "uint256"
19824 },
19825 "id": 957,
19826 "isConstant": false,
19827 "isLValue": false,
19828 "isPure": false,
19829 "lValueRequested": false,
19830 "leftExpression": {
19831 "argumentTypes": null,
19832 "expression": {
19833 "argumentTypes": null,
19834 "id": 952,
19835 "name": "block",
19836 "nodeType": "Identifier",
19837 "overloadedDeclarations": [],
19838 "referencedDeclaration": 2607,
19839 "src": "4227:5:2",
19840 "typeDescriptions": {
19841 "typeIdentifier": "t_magic_block",
19842 "typeString": "block"
19843 }
19844 },
19845 "id": 953,
19846 "isConstant": false,
19847 "isLValue": false,
19848 "isPure": false,
19849 "lValueRequested": false,
19850 "memberName": "timestamp",
19851 "nodeType": "MemberAccess",
19852 "referencedDeclaration": null,
19853 "src": "4227:15:2",
19854 "typeDescriptions": {
19855 "typeIdentifier": "t_uint256",
19856 "typeString": "uint256"
19857 }
19858 },
19859 "nodeType": "BinaryOperation",
19860 "operator": "%",
19861 "rightExpression": {
19862 "argumentTypes": null,
19863 "commonType": {
19864 "typeIdentifier": "t_rational_4294967296_by_1",
19865 "typeString": "int_const 4294967296"
19866 },
19867 "id": 956,
19868 "isConstant": false,
19869 "isLValue": false,
19870 "isPure": true,
19871 "lValueRequested": false,
19872 "leftExpression": {
19873 "argumentTypes": null,
19874 "hexValue": "32",
19875 "id": 954,
19876 "isConstant": false,
19877 "isLValue": false,
19878 "isPure": true,
19879 "kind": "number",
19880 "lValueRequested": false,
19881 "nodeType": "Literal",
19882 "src": "4245:1:2",
19883 "subdenomination": null,
19884 "typeDescriptions": {
19885 "typeIdentifier": "t_rational_2_by_1",
19886 "typeString": "int_const 2"
19887 },
19888 "value": "2"
19889 },
19890 "nodeType": "BinaryOperation",
19891 "operator": "**",
19892 "rightExpression": {
19893 "argumentTypes": null,
19894 "hexValue": "3332",
19895 "id": 955,
19896 "isConstant": false,
19897 "isLValue": false,
19898 "isPure": true,
19899 "kind": "number",
19900 "lValueRequested": false,
19901 "nodeType": "Literal",
19902 "src": "4248:2:2",
19903 "subdenomination": null,
19904 "typeDescriptions": {
19905 "typeIdentifier": "t_rational_32_by_1",
19906 "typeString": "int_const 32"
19907 },
19908 "value": "32"
19909 },
19910 "src": "4245:5:2",
19911 "typeDescriptions": {
19912 "typeIdentifier": "t_rational_4294967296_by_1",
19913 "typeString": "int_const 4294967296"
19914 }
19915 },
19916 "src": "4227:23:2",
19917 "typeDescriptions": {
19918 "typeIdentifier": "t_uint256",
19919 "typeString": "uint256"
19920 }
19921 }
19922 ],
19923 "expression": {
19924 "argumentTypes": [
19925 {
19926 "typeIdentifier": "t_uint256",
19927 "typeString": "uint256"
19928 }
19929 ],
19930 "id": 951,
19931 "isConstant": false,
19932 "isLValue": false,
19933 "isPure": true,
19934 "lValueRequested": false,
19935 "nodeType": "ElementaryTypeNameExpression",
19936 "src": "4220:6:2",
19937 "typeDescriptions": {
19938 "typeIdentifier": "t_type$_t_uint32_$",
19939 "typeString": "type(uint32)"
19940 },
19941 "typeName": "uint32"
19942 },
19943 "id": 958,
19944 "isConstant": false,
19945 "isLValue": false,
19946 "isPure": false,
19947 "kind": "typeConversion",
19948 "lValueRequested": false,
19949 "names": [],
19950 "nodeType": "FunctionCall",
19951 "src": "4220:31:2",
19952 "typeDescriptions": {
19953 "typeIdentifier": "t_uint32",
19954 "typeString": "uint32"
19955 }
19956 },
19957 "nodeType": "VariableDeclarationStatement",
19958 "src": "4196:55:2"
19959 },
19960 {
19961 "assignments": [
19962 961
19963 ],
19964 "declarations": [
19965 {
19966 "constant": false,
19967 "id": 961,
19968 "name": "timeElapsed",
19969 "nodeType": "VariableDeclaration",
19970 "scope": 1028,
19971 "src": "4261:18:2",
19972 "stateVariable": false,
19973 "storageLocation": "default",
19974 "typeDescriptions": {
19975 "typeIdentifier": "t_uint32",
19976 "typeString": "uint32"
19977 },
19978 "typeName": {
19979 "id": 960,
19980 "name": "uint32",
19981 "nodeType": "ElementaryTypeName",
19982 "src": "4261:6:2",
19983 "typeDescriptions": {
19984 "typeIdentifier": "t_uint32",
19985 "typeString": "uint32"
19986 }
19987 },
19988 "value": null,
19989 "visibility": "internal"
19990 }
19991 ],
19992 "id": 965,
19993 "initialValue": {
19994 "argumentTypes": null,
19995 "commonType": {
19996 "typeIdentifier": "t_uint32",
19997 "typeString": "uint32"
19998 },
19999 "id": 964,
20000 "isConstant": false,
20001 "isLValue": false,
20002 "isPure": false,
20003 "lValueRequested": false,
20004 "leftExpression": {
20005 "argumentTypes": null,
20006 "id": 962,
20007 "name": "blockTimestamp",
20008 "nodeType": "Identifier",
20009 "overloadedDeclarations": [],
20010 "referencedDeclaration": 950,
20011 "src": "4282:14:2",
20012 "typeDescriptions": {
20013 "typeIdentifier": "t_uint32",
20014 "typeString": "uint32"
20015 }
20016 },
20017 "nodeType": "BinaryOperation",
20018 "operator": "-",
20019 "rightExpression": {
20020 "argumentTypes": null,
20021 "id": 963,
20022 "name": "blockTimestampLast",
20023 "nodeType": "Identifier",
20024 "overloadedDeclarations": [],
20025 "referencedDeclaration": 649,
20026 "src": "4299:18:2",
20027 "typeDescriptions": {
20028 "typeIdentifier": "t_uint32",
20029 "typeString": "uint32"
20030 }
20031 },
20032 "src": "4282:35:2",
20033 "typeDescriptions": {
20034 "typeIdentifier": "t_uint32",
20035 "typeString": "uint32"
20036 }
20037 },
20038 "nodeType": "VariableDeclarationStatement",
20039 "src": "4261:56:2"
20040 },
20041 {
20042 "condition": {
20043 "argumentTypes": null,
20044 "commonType": {
20045 "typeIdentifier": "t_bool",
20046 "typeString": "bool"
20047 },
20048 "id": 976,
20049 "isConstant": false,
20050 "isLValue": false,
20051 "isPure": false,
20052 "lValueRequested": false,
20053 "leftExpression": {
20054 "argumentTypes": null,
20055 "commonType": {
20056 "typeIdentifier": "t_bool",
20057 "typeString": "bool"
20058 },
20059 "id": 972,
20060 "isConstant": false,
20061 "isLValue": false,
20062 "isPure": false,
20063 "lValueRequested": false,
20064 "leftExpression": {
20065 "argumentTypes": null,
20066 "commonType": {
20067 "typeIdentifier": "t_uint32",
20068 "typeString": "uint32"
20069 },
20070 "id": 968,
20071 "isConstant": false,
20072 "isLValue": false,
20073 "isPure": false,
20074 "lValueRequested": false,
20075 "leftExpression": {
20076 "argumentTypes": null,
20077 "id": 966,
20078 "name": "timeElapsed",
20079 "nodeType": "Identifier",
20080 "overloadedDeclarations": [],
20081 "referencedDeclaration": 961,
20082 "src": "4354:11:2",
20083 "typeDescriptions": {
20084 "typeIdentifier": "t_uint32",
20085 "typeString": "uint32"
20086 }
20087 },
20088 "nodeType": "BinaryOperation",
20089 "operator": ">",
20090 "rightExpression": {
20091 "argumentTypes": null,
20092 "hexValue": "30",
20093 "id": 967,
20094 "isConstant": false,
20095 "isLValue": false,
20096 "isPure": true,
20097 "kind": "number",
20098 "lValueRequested": false,
20099 "nodeType": "Literal",
20100 "src": "4368:1:2",
20101 "subdenomination": null,
20102 "typeDescriptions": {
20103 "typeIdentifier": "t_rational_0_by_1",
20104 "typeString": "int_const 0"
20105 },
20106 "value": "0"
20107 },
20108 "src": "4354:15:2",
20109 "typeDescriptions": {
20110 "typeIdentifier": "t_bool",
20111 "typeString": "bool"
20112 }
20113 },
20114 "nodeType": "BinaryOperation",
20115 "operator": "&&",
20116 "rightExpression": {
20117 "argumentTypes": null,
20118 "commonType": {
20119 "typeIdentifier": "t_uint112",
20120 "typeString": "uint112"
20121 },
20122 "id": 971,
20123 "isConstant": false,
20124 "isLValue": false,
20125 "isPure": false,
20126 "lValueRequested": false,
20127 "leftExpression": {
20128 "argumentTypes": null,
20129 "id": 969,
20130 "name": "_reserve0",
20131 "nodeType": "Identifier",
20132 "overloadedDeclarations": [],
20133 "referencedDeclaration": 927,
20134 "src": "4373:9:2",
20135 "typeDescriptions": {
20136 "typeIdentifier": "t_uint112",
20137 "typeString": "uint112"
20138 }
20139 },
20140 "nodeType": "BinaryOperation",
20141 "operator": "!=",
20142 "rightExpression": {
20143 "argumentTypes": null,
20144 "hexValue": "30",
20145 "id": 970,
20146 "isConstant": false,
20147 "isLValue": false,
20148 "isPure": true,
20149 "kind": "number",
20150 "lValueRequested": false,
20151 "nodeType": "Literal",
20152 "src": "4386:1:2",
20153 "subdenomination": null,
20154 "typeDescriptions": {
20155 "typeIdentifier": "t_rational_0_by_1",
20156 "typeString": "int_const 0"
20157 },
20158 "value": "0"
20159 },
20160 "src": "4373:14:2",
20161 "typeDescriptions": {
20162 "typeIdentifier": "t_bool",
20163 "typeString": "bool"
20164 }
20165 },
20166 "src": "4354:33:2",
20167 "typeDescriptions": {
20168 "typeIdentifier": "t_bool",
20169 "typeString": "bool"
20170 }
20171 },
20172 "nodeType": "BinaryOperation",
20173 "operator": "&&",
20174 "rightExpression": {
20175 "argumentTypes": null,
20176 "commonType": {
20177 "typeIdentifier": "t_uint112",
20178 "typeString": "uint112"
20179 },
20180 "id": 975,
20181 "isConstant": false,
20182 "isLValue": false,
20183 "isPure": false,
20184 "lValueRequested": false,
20185 "leftExpression": {
20186 "argumentTypes": null,
20187 "id": 973,
20188 "name": "_reserve1",
20189 "nodeType": "Identifier",
20190 "overloadedDeclarations": [],
20191 "referencedDeclaration": 929,
20192 "src": "4391:9:2",
20193 "typeDescriptions": {
20194 "typeIdentifier": "t_uint112",
20195 "typeString": "uint112"
20196 }
20197 },
20198 "nodeType": "BinaryOperation",
20199 "operator": "!=",
20200 "rightExpression": {
20201 "argumentTypes": null,
20202 "hexValue": "30",
20203 "id": 974,
20204 "isConstant": false,
20205 "isLValue": false,
20206 "isPure": true,
20207 "kind": "number",
20208 "lValueRequested": false,
20209 "nodeType": "Literal",
20210 "src": "4404:1:2",
20211 "subdenomination": null,
20212 "typeDescriptions": {
20213 "typeIdentifier": "t_rational_0_by_1",
20214 "typeString": "int_const 0"
20215 },
20216 "value": "0"
20217 },
20218 "src": "4391:14:2",
20219 "typeDescriptions": {
20220 "typeIdentifier": "t_bool",
20221 "typeString": "bool"
20222 }
20223 },
20224 "src": "4354:51:2",
20225 "typeDescriptions": {
20226 "typeIdentifier": "t_bool",
20227 "typeString": "bool"
20228 }
20229 },
20230 "falseBody": null,
20231 "id": 1006,
20232 "nodeType": "IfStatement",
20233 "src": "4350:332:2",
20234 "trueBody": {
20235 "id": 1005,
20236 "nodeType": "Block",
20237 "src": "4407:275:2",
20238 "statements": [
20239 {
20240 "expression": {
20241 "argumentTypes": null,
20242 "id": 989,
20243 "isConstant": false,
20244 "isLValue": false,
20245 "isPure": false,
20246 "lValueRequested": false,
20247 "leftHandSide": {
20248 "argumentTypes": null,
20249 "id": 977,
20250 "name": "price0CumulativeLast",
20251 "nodeType": "Identifier",
20252 "overloadedDeclarations": [],
20253 "referencedDeclaration": 651,
20254 "src": "4481:20:2",
20255 "typeDescriptions": {
20256 "typeIdentifier": "t_uint256",
20257 "typeString": "uint256"
20258 }
20259 },
20260 "nodeType": "Assignment",
20261 "operator": "+=",
20262 "rightHandSide": {
20263 "argumentTypes": null,
20264 "commonType": {
20265 "typeIdentifier": "t_uint256",
20266 "typeString": "uint256"
20267 },
20268 "id": 988,
20269 "isConstant": false,
20270 "isLValue": false,
20271 "isPure": false,
20272 "lValueRequested": false,
20273 "leftExpression": {
20274 "argumentTypes": null,
20275 "arguments": [
20276 {
20277 "argumentTypes": null,
20278 "arguments": [
20279 {
20280 "argumentTypes": null,
20281 "id": 984,
20282 "name": "_reserve0",
20283 "nodeType": "Identifier",
20284 "overloadedDeclarations": [],
20285 "referencedDeclaration": 927,
20286 "src": "4544:9:2",
20287 "typeDescriptions": {
20288 "typeIdentifier": "t_uint112",
20289 "typeString": "uint112"
20290 }
20291 }
20292 ],
20293 "expression": {
20294 "argumentTypes": [
20295 {
20296 "typeIdentifier": "t_uint112",
20297 "typeString": "uint112"
20298 }
20299 ],
20300 "expression": {
20301 "argumentTypes": null,
20302 "arguments": [
20303 {
20304 "argumentTypes": null,
20305 "id": 981,
20306 "name": "_reserve1",
20307 "nodeType": "Identifier",
20308 "overloadedDeclarations": [],
20309 "referencedDeclaration": 929,
20310 "src": "4527:9:2",
20311 "typeDescriptions": {
20312 "typeIdentifier": "t_uint112",
20313 "typeString": "uint112"
20314 }
20315 }
20316 ],
20317 "expression": {
20318 "argumentTypes": [
20319 {
20320 "typeIdentifier": "t_uint112",
20321 "typeString": "uint112"
20322 }
20323 ],
20324 "expression": {
20325 "argumentTypes": null,
20326 "id": 979,
20327 "name": "UQ112x112",
20328 "nodeType": "Identifier",
20329 "overloadedDeclarations": [],
20330 "referencedDeclaration": 2584,
20331 "src": "4510:9:2",
20332 "typeDescriptions": {
20333 "typeIdentifier": "t_type$_t_contract$_UQ112x112_$2584_$",
20334 "typeString": "type(library UQ112x112)"
20335 }
20336 },
20337 "id": 980,
20338 "isConstant": false,
20339 "isLValue": false,
20340 "isPure": false,
20341 "lValueRequested": false,
20342 "memberName": "encode",
20343 "nodeType": "MemberAccess",
20344 "referencedDeclaration": 2565,
20345 "src": "4510:16:2",
20346 "typeDescriptions": {
20347 "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$",
20348 "typeString": "function (uint112) pure returns (uint224)"
20349 }
20350 },
20351 "id": 982,
20352 "isConstant": false,
20353 "isLValue": false,
20354 "isPure": false,
20355 "kind": "functionCall",
20356 "lValueRequested": false,
20357 "names": [],
20358 "nodeType": "FunctionCall",
20359 "src": "4510:27:2",
20360 "typeDescriptions": {
20361 "typeIdentifier": "t_uint224",
20362 "typeString": "uint224"
20363 }
20364 },
20365 "id": 983,
20366 "isConstant": false,
20367 "isLValue": false,
20368 "isPure": false,
20369 "lValueRequested": false,
20370 "memberName": "uqdiv",
20371 "nodeType": "MemberAccess",
20372 "referencedDeclaration": 2583,
20373 "src": "4510:33:2",
20374 "typeDescriptions": {
20375 "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$",
20376 "typeString": "function (uint224,uint112) pure returns (uint224)"
20377 }
20378 },
20379 "id": 985,
20380 "isConstant": false,
20381 "isLValue": false,
20382 "isPure": false,
20383 "kind": "functionCall",
20384 "lValueRequested": false,
20385 "names": [],
20386 "nodeType": "FunctionCall",
20387 "src": "4510:44:2",
20388 "typeDescriptions": {
20389 "typeIdentifier": "t_uint224",
20390 "typeString": "uint224"
20391 }
20392 }
20393 ],
20394 "expression": {
20395 "argumentTypes": [
20396 {
20397 "typeIdentifier": "t_uint224",
20398 "typeString": "uint224"
20399 }
20400 ],
20401 "id": 978,
20402 "isConstant": false,
20403 "isLValue": false,
20404 "isPure": true,
20405 "lValueRequested": false,
20406 "nodeType": "ElementaryTypeNameExpression",
20407 "src": "4505:4:2",
20408 "typeDescriptions": {
20409 "typeIdentifier": "t_type$_t_uint256_$",
20410 "typeString": "type(uint256)"
20411 },
20412 "typeName": "uint"
20413 },
20414 "id": 986,
20415 "isConstant": false,
20416 "isLValue": false,
20417 "isPure": false,
20418 "kind": "typeConversion",
20419 "lValueRequested": false,
20420 "names": [],
20421 "nodeType": "FunctionCall",
20422 "src": "4505:50:2",
20423 "typeDescriptions": {
20424 "typeIdentifier": "t_uint256",
20425 "typeString": "uint256"
20426 }
20427 },
20428 "nodeType": "BinaryOperation",
20429 "operator": "*",
20430 "rightExpression": {
20431 "argumentTypes": null,
20432 "id": 987,
20433 "name": "timeElapsed",
20434 "nodeType": "Identifier",
20435 "overloadedDeclarations": [],
20436 "referencedDeclaration": 961,
20437 "src": "4558:11:2",
20438 "typeDescriptions": {
20439 "typeIdentifier": "t_uint32",
20440 "typeString": "uint32"
20441 }
20442 },
20443 "src": "4505:64:2",
20444 "typeDescriptions": {
20445 "typeIdentifier": "t_uint256",
20446 "typeString": "uint256"
20447 }
20448 },
20449 "src": "4481:88:2",
20450 "typeDescriptions": {
20451 "typeIdentifier": "t_uint256",
20452 "typeString": "uint256"
20453 }
20454 },
20455 "id": 990,
20456 "nodeType": "ExpressionStatement",
20457 "src": "4481:88:2"
20458 },
20459 {
20460 "expression": {
20461 "argumentTypes": null,
20462 "id": 1003,
20463 "isConstant": false,
20464 "isLValue": false,
20465 "isPure": false,
20466 "lValueRequested": false,
20467 "leftHandSide": {
20468 "argumentTypes": null,
20469 "id": 991,
20470 "name": "price1CumulativeLast",
20471 "nodeType": "Identifier",
20472 "overloadedDeclarations": [],
20473 "referencedDeclaration": 653,
20474 "src": "4583:20:2",
20475 "typeDescriptions": {
20476 "typeIdentifier": "t_uint256",
20477 "typeString": "uint256"
20478 }
20479 },
20480 "nodeType": "Assignment",
20481 "operator": "+=",
20482 "rightHandSide": {
20483 "argumentTypes": null,
20484 "commonType": {
20485 "typeIdentifier": "t_uint256",
20486 "typeString": "uint256"
20487 },
20488 "id": 1002,
20489 "isConstant": false,
20490 "isLValue": false,
20491 "isPure": false,
20492 "lValueRequested": false,
20493 "leftExpression": {
20494 "argumentTypes": null,
20495 "arguments": [
20496 {
20497 "argumentTypes": null,
20498 "arguments": [
20499 {
20500 "argumentTypes": null,
20501 "id": 998,
20502 "name": "_reserve1",
20503 "nodeType": "Identifier",
20504 "overloadedDeclarations": [],
20505 "referencedDeclaration": 929,
20506 "src": "4646:9:2",
20507 "typeDescriptions": {
20508 "typeIdentifier": "t_uint112",
20509 "typeString": "uint112"
20510 }
20511 }
20512 ],
20513 "expression": {
20514 "argumentTypes": [
20515 {
20516 "typeIdentifier": "t_uint112",
20517 "typeString": "uint112"
20518 }
20519 ],
20520 "expression": {
20521 "argumentTypes": null,
20522 "arguments": [
20523 {
20524 "argumentTypes": null,
20525 "id": 995,
20526 "name": "_reserve0",
20527 "nodeType": "Identifier",
20528 "overloadedDeclarations": [],
20529 "referencedDeclaration": 927,
20530 "src": "4629:9:2",
20531 "typeDescriptions": {
20532 "typeIdentifier": "t_uint112",
20533 "typeString": "uint112"
20534 }
20535 }
20536 ],
20537 "expression": {
20538 "argumentTypes": [
20539 {
20540 "typeIdentifier": "t_uint112",
20541 "typeString": "uint112"
20542 }
20543 ],
20544 "expression": {
20545 "argumentTypes": null,
20546 "id": 993,
20547 "name": "UQ112x112",
20548 "nodeType": "Identifier",
20549 "overloadedDeclarations": [],
20550 "referencedDeclaration": 2584,
20551 "src": "4612:9:2",
20552 "typeDescriptions": {
20553 "typeIdentifier": "t_type$_t_contract$_UQ112x112_$2584_$",
20554 "typeString": "type(library UQ112x112)"
20555 }
20556 },
20557 "id": 994,
20558 "isConstant": false,
20559 "isLValue": false,
20560 "isPure": false,
20561 "lValueRequested": false,
20562 "memberName": "encode",
20563 "nodeType": "MemberAccess",
20564 "referencedDeclaration": 2565,
20565 "src": "4612:16:2",
20566 "typeDescriptions": {
20567 "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$",
20568 "typeString": "function (uint112) pure returns (uint224)"
20569 }
20570 },
20571 "id": 996,
20572 "isConstant": false,
20573 "isLValue": false,
20574 "isPure": false,
20575 "kind": "functionCall",
20576 "lValueRequested": false,
20577 "names": [],
20578 "nodeType": "FunctionCall",
20579 "src": "4612:27:2",
20580 "typeDescriptions": {
20581 "typeIdentifier": "t_uint224",
20582 "typeString": "uint224"
20583 }
20584 },
20585 "id": 997,
20586 "isConstant": false,
20587 "isLValue": false,
20588 "isPure": false,
20589 "lValueRequested": false,
20590 "memberName": "uqdiv",
20591 "nodeType": "MemberAccess",
20592 "referencedDeclaration": 2583,
20593 "src": "4612:33:2",
20594 "typeDescriptions": {
20595 "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$",
20596 "typeString": "function (uint224,uint112) pure returns (uint224)"
20597 }
20598 },
20599 "id": 999,
20600 "isConstant": false,
20601 "isLValue": false,
20602 "isPure": false,
20603 "kind": "functionCall",
20604 "lValueRequested": false,
20605 "names": [],
20606 "nodeType": "FunctionCall",
20607 "src": "4612:44:2",
20608 "typeDescriptions": {
20609 "typeIdentifier": "t_uint224",
20610 "typeString": "uint224"
20611 }
20612 }
20613 ],
20614 "expression": {
20615 "argumentTypes": [
20616 {
20617 "typeIdentifier": "t_uint224",
20618 "typeString": "uint224"
20619 }
20620 ],
20621 "id": 992,
20622 "isConstant": false,
20623 "isLValue": false,
20624 "isPure": true,
20625 "lValueRequested": false,
20626 "nodeType": "ElementaryTypeNameExpression",
20627 "src": "4607:4:2",
20628 "typeDescriptions": {
20629 "typeIdentifier": "t_type$_t_uint256_$",
20630 "typeString": "type(uint256)"
20631 },
20632 "typeName": "uint"
20633 },
20634 "id": 1000,
20635 "isConstant": false,
20636 "isLValue": false,
20637 "isPure": false,
20638 "kind": "typeConversion",
20639 "lValueRequested": false,
20640 "names": [],
20641 "nodeType": "FunctionCall",
20642 "src": "4607:50:2",
20643 "typeDescriptions": {
20644 "typeIdentifier": "t_uint256",
20645 "typeString": "uint256"
20646 }
20647 },
20648 "nodeType": "BinaryOperation",
20649 "operator": "*",
20650 "rightExpression": {
20651 "argumentTypes": null,
20652 "id": 1001,
20653 "name": "timeElapsed",
20654 "nodeType": "Identifier",
20655 "overloadedDeclarations": [],
20656 "referencedDeclaration": 961,
20657 "src": "4660:11:2",
20658 "typeDescriptions": {
20659 "typeIdentifier": "t_uint32",
20660 "typeString": "uint32"
20661 }
20662 },
20663 "src": "4607:64:2",
20664 "typeDescriptions": {
20665 "typeIdentifier": "t_uint256",
20666 "typeString": "uint256"
20667 }
20668 },
20669 "src": "4583:88:2",
20670 "typeDescriptions": {
20671 "typeIdentifier": "t_uint256",
20672 "typeString": "uint256"
20673 }
20674 },
20675 "id": 1004,
20676 "nodeType": "ExpressionStatement",
20677 "src": "4583:88:2"
20678 }
20679 ]
20680 }
20681 },
20682 {
20683 "expression": {
20684 "argumentTypes": null,
20685 "id": 1011,
20686 "isConstant": false,
20687 "isLValue": false,
20688 "isPure": false,
20689 "lValueRequested": false,
20690 "leftHandSide": {
20691 "argumentTypes": null,
20692 "id": 1007,
20693 "name": "reserve0",
20694 "nodeType": "Identifier",
20695 "overloadedDeclarations": [],
20696 "referencedDeclaration": 645,
20697 "src": "4691:8:2",
20698 "typeDescriptions": {
20699 "typeIdentifier": "t_uint112",
20700 "typeString": "uint112"
20701 }
20702 },
20703 "nodeType": "Assignment",
20704 "operator": "=",
20705 "rightHandSide": {
20706 "argumentTypes": null,
20707 "arguments": [
20708 {
20709 "argumentTypes": null,
20710 "id": 1009,
20711 "name": "balance0",
20712 "nodeType": "Identifier",
20713 "overloadedDeclarations": [],
20714 "referencedDeclaration": 923,
20715 "src": "4710:8:2",
20716 "typeDescriptions": {
20717 "typeIdentifier": "t_uint256",
20718 "typeString": "uint256"
20719 }
20720 }
20721 ],
20722 "expression": {
20723 "argumentTypes": [
20724 {
20725 "typeIdentifier": "t_uint256",
20726 "typeString": "uint256"
20727 }
20728 ],
20729 "id": 1008,
20730 "isConstant": false,
20731 "isLValue": false,
20732 "isPure": true,
20733 "lValueRequested": false,
20734 "nodeType": "ElementaryTypeNameExpression",
20735 "src": "4702:7:2",
20736 "typeDescriptions": {
20737 "typeIdentifier": "t_type$_t_uint112_$",
20738 "typeString": "type(uint112)"
20739 },
20740 "typeName": "uint112"
20741 },
20742 "id": 1010,
20743 "isConstant": false,
20744 "isLValue": false,
20745 "isPure": false,
20746 "kind": "typeConversion",
20747 "lValueRequested": false,
20748 "names": [],
20749 "nodeType": "FunctionCall",
20750 "src": "4702:17:2",
20751 "typeDescriptions": {
20752 "typeIdentifier": "t_uint112",
20753 "typeString": "uint112"
20754 }
20755 },
20756 "src": "4691:28:2",
20757 "typeDescriptions": {
20758 "typeIdentifier": "t_uint112",
20759 "typeString": "uint112"
20760 }
20761 },
20762 "id": 1012,
20763 "nodeType": "ExpressionStatement",
20764 "src": "4691:28:2"
20765 },
20766 {
20767 "expression": {
20768 "argumentTypes": null,
20769 "id": 1017,
20770 "isConstant": false,
20771 "isLValue": false,
20772 "isPure": false,
20773 "lValueRequested": false,
20774 "leftHandSide": {
20775 "argumentTypes": null,
20776 "id": 1013,
20777 "name": "reserve1",
20778 "nodeType": "Identifier",
20779 "overloadedDeclarations": [],
20780 "referencedDeclaration": 647,
20781 "src": "4729:8:2",
20782 "typeDescriptions": {
20783 "typeIdentifier": "t_uint112",
20784 "typeString": "uint112"
20785 }
20786 },
20787 "nodeType": "Assignment",
20788 "operator": "=",
20789 "rightHandSide": {
20790 "argumentTypes": null,
20791 "arguments": [
20792 {
20793 "argumentTypes": null,
20794 "id": 1015,
20795 "name": "balance1",
20796 "nodeType": "Identifier",
20797 "overloadedDeclarations": [],
20798 "referencedDeclaration": 925,
20799 "src": "4748:8:2",
20800 "typeDescriptions": {
20801 "typeIdentifier": "t_uint256",
20802 "typeString": "uint256"
20803 }
20804 }
20805 ],
20806 "expression": {
20807 "argumentTypes": [
20808 {
20809 "typeIdentifier": "t_uint256",
20810 "typeString": "uint256"
20811 }
20812 ],
20813 "id": 1014,
20814 "isConstant": false,
20815 "isLValue": false,
20816 "isPure": true,
20817 "lValueRequested": false,
20818 "nodeType": "ElementaryTypeNameExpression",
20819 "src": "4740:7:2",
20820 "typeDescriptions": {
20821 "typeIdentifier": "t_type$_t_uint112_$",
20822 "typeString": "type(uint112)"
20823 },
20824 "typeName": "uint112"
20825 },
20826 "id": 1016,
20827 "isConstant": false,
20828 "isLValue": false,
20829 "isPure": false,
20830 "kind": "typeConversion",
20831 "lValueRequested": false,
20832 "names": [],
20833 "nodeType": "FunctionCall",
20834 "src": "4740:17:2",
20835 "typeDescriptions": {
20836 "typeIdentifier": "t_uint112",
20837 "typeString": "uint112"
20838 }
20839 },
20840 "src": "4729:28:2",
20841 "typeDescriptions": {
20842 "typeIdentifier": "t_uint112",
20843 "typeString": "uint112"
20844 }
20845 },
20846 "id": 1018,
20847 "nodeType": "ExpressionStatement",
20848 "src": "4729:28:2"
20849 },
20850 {
20851 "expression": {
20852 "argumentTypes": null,
20853 "id": 1021,
20854 "isConstant": false,
20855 "isLValue": false,
20856 "isPure": false,
20857 "lValueRequested": false,
20858 "leftHandSide": {
20859 "argumentTypes": null,
20860 "id": 1019,
20861 "name": "blockTimestampLast",
20862 "nodeType": "Identifier",
20863 "overloadedDeclarations": [],
20864 "referencedDeclaration": 649,
20865 "src": "4767:18:2",
20866 "typeDescriptions": {
20867 "typeIdentifier": "t_uint32",
20868 "typeString": "uint32"
20869 }
20870 },
20871 "nodeType": "Assignment",
20872 "operator": "=",
20873 "rightHandSide": {
20874 "argumentTypes": null,
20875 "id": 1020,
20876 "name": "blockTimestamp",
20877 "nodeType": "Identifier",
20878 "overloadedDeclarations": [],
20879 "referencedDeclaration": 950,
20880 "src": "4788:14:2",
20881 "typeDescriptions": {
20882 "typeIdentifier": "t_uint32",
20883 "typeString": "uint32"
20884 }
20885 },
20886 "src": "4767:35:2",
20887 "typeDescriptions": {
20888 "typeIdentifier": "t_uint32",
20889 "typeString": "uint32"
20890 }
20891 },
20892 "id": 1022,
20893 "nodeType": "ExpressionStatement",
20894 "src": "4767:35:2"
20895 },
20896 {
20897 "eventCall": {
20898 "argumentTypes": null,
20899 "arguments": [
20900 {
20901 "argumentTypes": null,
20902 "id": 1024,
20903 "name": "reserve0",
20904 "nodeType": "Identifier",
20905 "overloadedDeclarations": [],
20906 "referencedDeclaration": 645,
20907 "src": "4822:8:2",
20908 "typeDescriptions": {
20909 "typeIdentifier": "t_uint112",
20910 "typeString": "uint112"
20911 }
20912 },
20913 {
20914 "argumentTypes": null,
20915 "id": 1025,
20916 "name": "reserve1",
20917 "nodeType": "Identifier",
20918 "overloadedDeclarations": [],
20919 "referencedDeclaration": 647,
20920 "src": "4832:8:2",
20921 "typeDescriptions": {
20922 "typeIdentifier": "t_uint112",
20923 "typeString": "uint112"
20924 }
20925 }
20926 ],
20927 "expression": {
20928 "argumentTypes": [
20929 {
20930 "typeIdentifier": "t_uint112",
20931 "typeString": "uint112"
20932 },
20933 {
20934 "typeIdentifier": "t_uint112",
20935 "typeString": "uint112"
20936 }
20937 ],
20938 "id": 1023,
20939 "name": "Sync",
20940 "nodeType": "Identifier",
20941 "overloadedDeclarations": [
20942 807
20943 ],
20944 "referencedDeclaration": 807,
20945 "src": "4817:4:2",
20946 "typeDescriptions": {
20947 "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$",
20948 "typeString": "function (uint112,uint112)"
20949 }
20950 },
20951 "id": 1026,
20952 "isConstant": false,
20953 "isLValue": false,
20954 "isPure": false,
20955 "kind": "functionCall",
20956 "lValueRequested": false,
20957 "names": [],
20958 "nodeType": "FunctionCall",
20959 "src": "4817:24:2",
20960 "typeDescriptions": {
20961 "typeIdentifier": "t_tuple$__$",
20962 "typeString": "tuple()"
20963 }
20964 },
20965 "id": 1027,
20966 "nodeType": "EmitStatement",
20967 "src": "4812:29:2"
20968 }
20969 ]
20970 },
20971 "documentation": null,
20972 "id": 1029,
20973 "implemented": true,
20974 "kind": "function",
20975 "modifiers": [],
20976 "name": "_update",
20977 "nodeType": "FunctionDefinition",
20978 "parameters": {
20979 "id": 930,
20980 "nodeType": "ParameterList",
20981 "parameters": [
20982 {
20983 "constant": false,
20984 "id": 923,
20985 "name": "balance0",
20986 "nodeType": "VariableDeclaration",
20987 "scope": 1029,
20988 "src": "4018:13:2",
20989 "stateVariable": false,
20990 "storageLocation": "default",
20991 "typeDescriptions": {
20992 "typeIdentifier": "t_uint256",
20993 "typeString": "uint256"
20994 },
20995 "typeName": {
20996 "id": 922,
20997 "name": "uint",
20998 "nodeType": "ElementaryTypeName",
20999 "src": "4018:4:2",
21000 "typeDescriptions": {
21001 "typeIdentifier": "t_uint256",
21002 "typeString": "uint256"
21003 }
21004 },
21005 "value": null,
21006 "visibility": "internal"
21007 },
21008 {
21009 "constant": false,
21010 "id": 925,
21011 "name": "balance1",
21012 "nodeType": "VariableDeclaration",
21013 "scope": 1029,
21014 "src": "4033:13:2",
21015 "stateVariable": false,
21016 "storageLocation": "default",
21017 "typeDescriptions": {
21018 "typeIdentifier": "t_uint256",
21019 "typeString": "uint256"
21020 },
21021 "typeName": {
21022 "id": 924,
21023 "name": "uint",
21024 "nodeType": "ElementaryTypeName",
21025 "src": "4033:4:2",
21026 "typeDescriptions": {
21027 "typeIdentifier": "t_uint256",
21028 "typeString": "uint256"
21029 }
21030 },
21031 "value": null,
21032 "visibility": "internal"
21033 },
21034 {
21035 "constant": false,
21036 "id": 927,
21037 "name": "_reserve0",
21038 "nodeType": "VariableDeclaration",
21039 "scope": 1029,
21040 "src": "4048:17:2",
21041 "stateVariable": false,
21042 "storageLocation": "default",
21043 "typeDescriptions": {
21044 "typeIdentifier": "t_uint112",
21045 "typeString": "uint112"
21046 },
21047 "typeName": {
21048 "id": 926,
21049 "name": "uint112",
21050 "nodeType": "ElementaryTypeName",
21051 "src": "4048:7:2",
21052 "typeDescriptions": {
21053 "typeIdentifier": "t_uint112",
21054 "typeString": "uint112"
21055 }
21056 },
21057 "value": null,
21058 "visibility": "internal"
21059 },
21060 {
21061 "constant": false,
21062 "id": 929,
21063 "name": "_reserve1",
21064 "nodeType": "VariableDeclaration",
21065 "scope": 1029,
21066 "src": "4067:17:2",
21067 "stateVariable": false,
21068 "storageLocation": "default",
21069 "typeDescriptions": {
21070 "typeIdentifier": "t_uint112",
21071 "typeString": "uint112"
21072 },
21073 "typeName": {
21074 "id": 928,
21075 "name": "uint112",
21076 "nodeType": "ElementaryTypeName",
21077 "src": "4067:7:2",
21078 "typeDescriptions": {
21079 "typeIdentifier": "t_uint112",
21080 "typeString": "uint112"
21081 }
21082 },
21083 "value": null,
21084 "visibility": "internal"
21085 }
21086 ],
21087 "src": "4017:68:2"
21088 },
21089 "returnParameters": {
21090 "id": 931,
21091 "nodeType": "ParameterList",
21092 "parameters": [],
21093 "src": "4094:0:2"
21094 },
21095 "scope": 1834,
21096 "src": "4001:847:2",
21097 "stateMutability": "nonpayable",
21098 "superFunction": null,
21099 "visibility": "private"
21100 },
21101 {
21102 "body": {
21103 "id": 1134,
21104 "nodeType": "Block",
21105 "src": "5020:734:2",
21106 "statements": [
21107 {
21108 "assignments": [
21109 1039
21110 ],
21111 "declarations": [
21112 {
21113 "constant": false,
21114 "id": 1039,
21115 "name": "feeTo",
21116 "nodeType": "VariableDeclaration",
21117 "scope": 1134,
21118 "src": "5030:13:2",
21119 "stateVariable": false,
21120 "storageLocation": "default",
21121 "typeDescriptions": {
21122 "typeIdentifier": "t_address",
21123 "typeString": "address"
21124 },
21125 "typeName": {
21126 "id": 1038,
21127 "name": "address",
21128 "nodeType": "ElementaryTypeName",
21129 "src": "5030:7:2",
21130 "stateMutability": "nonpayable",
21131 "typeDescriptions": {
21132 "typeIdentifier": "t_address",
21133 "typeString": "address"
21134 }
21135 },
21136 "value": null,
21137 "visibility": "internal"
21138 }
21139 ],
21140 "id": 1045,
21141 "initialValue": {
21142 "argumentTypes": null,
21143 "arguments": [],
21144 "expression": {
21145 "argumentTypes": [],
21146 "expression": {
21147 "argumentTypes": null,
21148 "arguments": [
21149 {
21150 "argumentTypes": null,
21151 "id": 1041,
21152 "name": "factory",
21153 "nodeType": "Identifier",
21154 "overloadedDeclarations": [],
21155 "referencedDeclaration": 629,
21156 "src": "5064:7:2",
21157 "typeDescriptions": {
21158 "typeIdentifier": "t_address",
21159 "typeString": "address"
21160 }
21161 }
21162 ],
21163 "expression": {
21164 "argumentTypes": [
21165 {
21166 "typeIdentifier": "t_address",
21167 "typeString": "address"
21168 }
21169 ],
21170 "id": 1040,
21171 "name": "IUniswapV2Factory",
21172 "nodeType": "Identifier",
21173 "overloadedDeclarations": [],
21174 "referencedDeclaration": 2123,
21175 "src": "5046:17:2",
21176 "typeDescriptions": {
21177 "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$2123_$",
21178 "typeString": "type(contract IUniswapV2Factory)"
21179 }
21180 },
21181 "id": 1042,
21182 "isConstant": false,
21183 "isLValue": false,
21184 "isPure": false,
21185 "kind": "typeConversion",
21186 "lValueRequested": false,
21187 "names": [],
21188 "nodeType": "FunctionCall",
21189 "src": "5046:26:2",
21190 "typeDescriptions": {
21191 "typeIdentifier": "t_contract$_IUniswapV2Factory_$2123",
21192 "typeString": "contract IUniswapV2Factory"
21193 }
21194 },
21195 "id": 1043,
21196 "isConstant": false,
21197 "isLValue": false,
21198 "isPure": false,
21199 "lValueRequested": false,
21200 "memberName": "feeTo",
21201 "nodeType": "MemberAccess",
21202 "referencedDeclaration": 2067,
21203 "src": "5046:32:2",
21204 "typeDescriptions": {
21205 "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
21206 "typeString": "function () view external returns (address)"
21207 }
21208 },
21209 "id": 1044,
21210 "isConstant": false,
21211 "isLValue": false,
21212 "isPure": false,
21213 "kind": "functionCall",
21214 "lValueRequested": false,
21215 "names": [],
21216 "nodeType": "FunctionCall",
21217 "src": "5046:34:2",
21218 "typeDescriptions": {
21219 "typeIdentifier": "t_address",
21220 "typeString": "address"
21221 }
21222 },
21223 "nodeType": "VariableDeclarationStatement",
21224 "src": "5030:50:2"
21225 },
21226 {
21227 "expression": {
21228 "argumentTypes": null,
21229 "id": 1052,
21230 "isConstant": false,
21231 "isLValue": false,
21232 "isPure": false,
21233 "lValueRequested": false,
21234 "leftHandSide": {
21235 "argumentTypes": null,
21236 "id": 1046,
21237 "name": "feeOn",
21238 "nodeType": "Identifier",
21239 "overloadedDeclarations": [],
21240 "referencedDeclaration": 1036,
21241 "src": "5090:5:2",
21242 "typeDescriptions": {
21243 "typeIdentifier": "t_bool",
21244 "typeString": "bool"
21245 }
21246 },
21247 "nodeType": "Assignment",
21248 "operator": "=",
21249 "rightHandSide": {
21250 "argumentTypes": null,
21251 "commonType": {
21252 "typeIdentifier": "t_address",
21253 "typeString": "address"
21254 },
21255 "id": 1051,
21256 "isConstant": false,
21257 "isLValue": false,
21258 "isPure": false,
21259 "lValueRequested": false,
21260 "leftExpression": {
21261 "argumentTypes": null,
21262 "id": 1047,
21263 "name": "feeTo",
21264 "nodeType": "Identifier",
21265 "overloadedDeclarations": [],
21266 "referencedDeclaration": 1039,
21267 "src": "5098:5:2",
21268 "typeDescriptions": {
21269 "typeIdentifier": "t_address",
21270 "typeString": "address"
21271 }
21272 },
21273 "nodeType": "BinaryOperation",
21274 "operator": "!=",
21275 "rightExpression": {
21276 "argumentTypes": null,
21277 "arguments": [
21278 {
21279 "argumentTypes": null,
21280 "hexValue": "30",
21281 "id": 1049,
21282 "isConstant": false,
21283 "isLValue": false,
21284 "isPure": true,
21285 "kind": "number",
21286 "lValueRequested": false,
21287 "nodeType": "Literal",
21288 "src": "5115:1:2",
21289 "subdenomination": null,
21290 "typeDescriptions": {
21291 "typeIdentifier": "t_rational_0_by_1",
21292 "typeString": "int_const 0"
21293 },
21294 "value": "0"
21295 }
21296 ],
21297 "expression": {
21298 "argumentTypes": [
21299 {
21300 "typeIdentifier": "t_rational_0_by_1",
21301 "typeString": "int_const 0"
21302 }
21303 ],
21304 "id": 1048,
21305 "isConstant": false,
21306 "isLValue": false,
21307 "isPure": true,
21308 "lValueRequested": false,
21309 "nodeType": "ElementaryTypeNameExpression",
21310 "src": "5107:7:2",
21311 "typeDescriptions": {
21312 "typeIdentifier": "t_type$_t_address_$",
21313 "typeString": "type(address)"
21314 },
21315 "typeName": "address"
21316 },
21317 "id": 1050,
21318 "isConstant": false,
21319 "isLValue": false,
21320 "isPure": true,
21321 "kind": "typeConversion",
21322 "lValueRequested": false,
21323 "names": [],
21324 "nodeType": "FunctionCall",
21325 "src": "5107:10:2",
21326 "typeDescriptions": {
21327 "typeIdentifier": "t_address_payable",
21328 "typeString": "address payable"
21329 }
21330 },
21331 "src": "5098:19:2",
21332 "typeDescriptions": {
21333 "typeIdentifier": "t_bool",
21334 "typeString": "bool"
21335 }
21336 },
21337 "src": "5090:27:2",
21338 "typeDescriptions": {
21339 "typeIdentifier": "t_bool",
21340 "typeString": "bool"
21341 }
21342 },
21343 "id": 1053,
21344 "nodeType": "ExpressionStatement",
21345 "src": "5090:27:2"
21346 },
21347 {
21348 "assignments": [
21349 1055
21350 ],
21351 "declarations": [
21352 {
21353 "constant": false,
21354 "id": 1055,
21355 "name": "_kLast",
21356 "nodeType": "VariableDeclaration",
21357 "scope": 1134,
21358 "src": "5127:11:2",
21359 "stateVariable": false,
21360 "storageLocation": "default",
21361 "typeDescriptions": {
21362 "typeIdentifier": "t_uint256",
21363 "typeString": "uint256"
21364 },
21365 "typeName": {
21366 "id": 1054,
21367 "name": "uint",
21368 "nodeType": "ElementaryTypeName",
21369 "src": "5127:4:2",
21370 "typeDescriptions": {
21371 "typeIdentifier": "t_uint256",
21372 "typeString": "uint256"
21373 }
21374 },
21375 "value": null,
21376 "visibility": "internal"
21377 }
21378 ],
21379 "id": 1057,
21380 "initialValue": {
21381 "argumentTypes": null,
21382 "id": 1056,
21383 "name": "kLast",
21384 "nodeType": "Identifier",
21385 "overloadedDeclarations": [],
21386 "referencedDeclaration": 655,
21387 "src": "5141:5:2",
21388 "typeDescriptions": {
21389 "typeIdentifier": "t_uint256",
21390 "typeString": "uint256"
21391 }
21392 },
21393 "nodeType": "VariableDeclarationStatement",
21394 "src": "5127:19:2"
21395 },
21396 {
21397 "condition": {
21398 "argumentTypes": null,
21399 "id": 1058,
21400 "name": "feeOn",
21401 "nodeType": "Identifier",
21402 "overloadedDeclarations": [],
21403 "referencedDeclaration": 1036,
21404 "src": "5175:5:2",
21405 "typeDescriptions": {
21406 "typeIdentifier": "t_bool",
21407 "typeString": "bool"
21408 }
21409 },
21410 "falseBody": {
21411 "condition": {
21412 "argumentTypes": null,
21413 "commonType": {
21414 "typeIdentifier": "t_uint256",
21415 "typeString": "uint256"
21416 },
21417 "id": 1126,
21418 "isConstant": false,
21419 "isLValue": false,
21420 "isPure": false,
21421 "lValueRequested": false,
21422 "leftExpression": {
21423 "argumentTypes": null,
21424 "id": 1124,
21425 "name": "_kLast",
21426 "nodeType": "Identifier",
21427 "overloadedDeclarations": [],
21428 "referencedDeclaration": 1055,
21429 "src": "5701:6:2",
21430 "typeDescriptions": {
21431 "typeIdentifier": "t_uint256",
21432 "typeString": "uint256"
21433 }
21434 },
21435 "nodeType": "BinaryOperation",
21436 "operator": "!=",
21437 "rightExpression": {
21438 "argumentTypes": null,
21439 "hexValue": "30",
21440 "id": 1125,
21441 "isConstant": false,
21442 "isLValue": false,
21443 "isPure": true,
21444 "kind": "number",
21445 "lValueRequested": false,
21446 "nodeType": "Literal",
21447 "src": "5711:1:2",
21448 "subdenomination": null,
21449 "typeDescriptions": {
21450 "typeIdentifier": "t_rational_0_by_1",
21451 "typeString": "int_const 0"
21452 },
21453 "value": "0"
21454 },
21455 "src": "5701:11:2",
21456 "typeDescriptions": {
21457 "typeIdentifier": "t_bool",
21458 "typeString": "bool"
21459 }
21460 },
21461 "falseBody": null,
21462 "id": 1132,
21463 "nodeType": "IfStatement",
21464 "src": "5697:51:2",
21465 "trueBody": {
21466 "id": 1131,
21467 "nodeType": "Block",
21468 "src": "5714:34:2",
21469 "statements": [
21470 {
21471 "expression": {
21472 "argumentTypes": null,
21473 "id": 1129,
21474 "isConstant": false,
21475 "isLValue": false,
21476 "isPure": false,
21477 "lValueRequested": false,
21478 "leftHandSide": {
21479 "argumentTypes": null,
21480 "id": 1127,
21481 "name": "kLast",
21482 "nodeType": "Identifier",
21483 "overloadedDeclarations": [],
21484 "referencedDeclaration": 655,
21485 "src": "5728:5:2",
21486 "typeDescriptions": {
21487 "typeIdentifier": "t_uint256",
21488 "typeString": "uint256"
21489 }
21490 },
21491 "nodeType": "Assignment",
21492 "operator": "=",
21493 "rightHandSide": {
21494 "argumentTypes": null,
21495 "hexValue": "30",
21496 "id": 1128,
21497 "isConstant": false,
21498 "isLValue": false,
21499 "isPure": true,
21500 "kind": "number",
21501 "lValueRequested": false,
21502 "nodeType": "Literal",
21503 "src": "5736:1:2",
21504 "subdenomination": null,
21505 "typeDescriptions": {
21506 "typeIdentifier": "t_rational_0_by_1",
21507 "typeString": "int_const 0"
21508 },
21509 "value": "0"
21510 },
21511 "src": "5728:9:2",
21512 "typeDescriptions": {
21513 "typeIdentifier": "t_uint256",
21514 "typeString": "uint256"
21515 }
21516 },
21517 "id": 1130,
21518 "nodeType": "ExpressionStatement",
21519 "src": "5728:9:2"
21520 }
21521 ]
21522 }
21523 },
21524 "id": 1133,
21525 "nodeType": "IfStatement",
21526 "src": "5171:577:2",
21527 "trueBody": {
21528 "id": 1123,
21529 "nodeType": "Block",
21530 "src": "5182:509:2",
21531 "statements": [
21532 {
21533 "condition": {
21534 "argumentTypes": null,
21535 "commonType": {
21536 "typeIdentifier": "t_uint256",
21537 "typeString": "uint256"
21538 },
21539 "id": 1061,
21540 "isConstant": false,
21541 "isLValue": false,
21542 "isPure": false,
21543 "lValueRequested": false,
21544 "leftExpression": {
21545 "argumentTypes": null,
21546 "id": 1059,
21547 "name": "_kLast",
21548 "nodeType": "Identifier",
21549 "overloadedDeclarations": [],
21550 "referencedDeclaration": 1055,
21551 "src": "5200:6:2",
21552 "typeDescriptions": {
21553 "typeIdentifier": "t_uint256",
21554 "typeString": "uint256"
21555 }
21556 },
21557 "nodeType": "BinaryOperation",
21558 "operator": "!=",
21559 "rightExpression": {
21560 "argumentTypes": null,
21561 "hexValue": "30",
21562 "id": 1060,
21563 "isConstant": false,
21564 "isLValue": false,
21565 "isPure": true,
21566 "kind": "number",
21567 "lValueRequested": false,
21568 "nodeType": "Literal",
21569 "src": "5210:1:2",
21570 "subdenomination": null,
21571 "typeDescriptions": {
21572 "typeIdentifier": "t_rational_0_by_1",
21573 "typeString": "int_const 0"
21574 },
21575 "value": "0"
21576 },
21577 "src": "5200:11:2",
21578 "typeDescriptions": {
21579 "typeIdentifier": "t_bool",
21580 "typeString": "bool"
21581 }
21582 },
21583 "falseBody": null,
21584 "id": 1122,
21585 "nodeType": "IfStatement",
21586 "src": "5196:485:2",
21587 "trueBody": {
21588 "id": 1121,
21589 "nodeType": "Block",
21590 "src": "5213:468:2",
21591 "statements": [
21592 {
21593 "assignments": [
21594 1063
21595 ],
21596 "declarations": [
21597 {
21598 "constant": false,
21599 "id": 1063,
21600 "name": "rootK",
21601 "nodeType": "VariableDeclaration",
21602 "scope": 1121,
21603 "src": "5231:10:2",
21604 "stateVariable": false,
21605 "storageLocation": "default",
21606 "typeDescriptions": {
21607 "typeIdentifier": "t_uint256",
21608 "typeString": "uint256"
21609 },
21610 "typeName": {
21611 "id": 1062,
21612 "name": "uint",
21613 "nodeType": "ElementaryTypeName",
21614 "src": "5231:4:2",
21615 "typeDescriptions": {
21616 "typeIdentifier": "t_uint256",
21617 "typeString": "uint256"
21618 }
21619 },
21620 "value": null,
21621 "visibility": "internal"
21622 }
21623 ],
21624 "id": 1073,
21625 "initialValue": {
21626 "argumentTypes": null,
21627 "arguments": [
21628 {
21629 "argumentTypes": null,
21630 "arguments": [
21631 {
21632 "argumentTypes": null,
21633 "id": 1070,
21634 "name": "_reserve1",
21635 "nodeType": "Identifier",
21636 "overloadedDeclarations": [],
21637 "referencedDeclaration": 1033,
21638 "src": "5274:9:2",
21639 "typeDescriptions": {
21640 "typeIdentifier": "t_uint112",
21641 "typeString": "uint112"
21642 }
21643 }
21644 ],
21645 "expression": {
21646 "argumentTypes": [
21647 {
21648 "typeIdentifier": "t_uint112",
21649 "typeString": "uint112"
21650 }
21651 ],
21652 "expression": {
21653 "argumentTypes": null,
21654 "arguments": [
21655 {
21656 "argumentTypes": null,
21657 "id": 1067,
21658 "name": "_reserve0",
21659 "nodeType": "Identifier",
21660 "overloadedDeclarations": [],
21661 "referencedDeclaration": 1031,
21662 "src": "5259:9:2",
21663 "typeDescriptions": {
21664 "typeIdentifier": "t_uint112",
21665 "typeString": "uint112"
21666 }
21667 }
21668 ],
21669 "expression": {
21670 "argumentTypes": [
21671 {
21672 "typeIdentifier": "t_uint112",
21673 "typeString": "uint112"
21674 }
21675 ],
21676 "id": 1066,
21677 "isConstant": false,
21678 "isLValue": false,
21679 "isPure": true,
21680 "lValueRequested": false,
21681 "nodeType": "ElementaryTypeNameExpression",
21682 "src": "5254:4:2",
21683 "typeDescriptions": {
21684 "typeIdentifier": "t_type$_t_uint256_$",
21685 "typeString": "type(uint256)"
21686 },
21687 "typeName": "uint"
21688 },
21689 "id": 1068,
21690 "isConstant": false,
21691 "isLValue": false,
21692 "isPure": false,
21693 "kind": "typeConversion",
21694 "lValueRequested": false,
21695 "names": [],
21696 "nodeType": "FunctionCall",
21697 "src": "5254:15:2",
21698 "typeDescriptions": {
21699 "typeIdentifier": "t_uint256",
21700 "typeString": "uint256"
21701 }
21702 },
21703 "id": 1069,
21704 "isConstant": false,
21705 "isLValue": false,
21706 "isPure": false,
21707 "lValueRequested": false,
21708 "memberName": "mul",
21709 "nodeType": "MemberAccess",
21710 "referencedDeclaration": 2541,
21711 "src": "5254:19:2",
21712 "typeDescriptions": {
21713 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
21714 "typeString": "function (uint256,uint256) pure returns (uint256)"
21715 }
21716 },
21717 "id": 1071,
21718 "isConstant": false,
21719 "isLValue": false,
21720 "isPure": false,
21721 "kind": "functionCall",
21722 "lValueRequested": false,
21723 "names": [],
21724 "nodeType": "FunctionCall",
21725 "src": "5254:30:2",
21726 "typeDescriptions": {
21727 "typeIdentifier": "t_uint256",
21728 "typeString": "uint256"
21729 }
21730 }
21731 ],
21732 "expression": {
21733 "argumentTypes": [
21734 {
21735 "typeIdentifier": "t_uint256",
21736 "typeString": "uint256"
21737 }
21738 ],
21739 "expression": {
21740 "argumentTypes": null,
21741 "id": 1064,
21742 "name": "Math",
21743 "nodeType": "Identifier",
21744 "overloadedDeclarations": [],
21745 "referencedDeclaration": 2467,
21746 "src": "5244:4:2",
21747 "typeDescriptions": {
21748 "typeIdentifier": "t_type$_t_contract$_Math_$2467_$",
21749 "typeString": "type(library Math)"
21750 }
21751 },
21752 "id": 1065,
21753 "isConstant": false,
21754 "isLValue": false,
21755 "isPure": false,
21756 "lValueRequested": false,
21757 "memberName": "sqrt",
21758 "nodeType": "MemberAccess",
21759 "referencedDeclaration": 2466,
21760 "src": "5244:9:2",
21761 "typeDescriptions": {
21762 "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
21763 "typeString": "function (uint256) pure returns (uint256)"
21764 }
21765 },
21766 "id": 1072,
21767 "isConstant": false,
21768 "isLValue": false,
21769 "isPure": false,
21770 "kind": "functionCall",
21771 "lValueRequested": false,
21772 "names": [],
21773 "nodeType": "FunctionCall",
21774 "src": "5244:41:2",
21775 "typeDescriptions": {
21776 "typeIdentifier": "t_uint256",
21777 "typeString": "uint256"
21778 }
21779 },
21780 "nodeType": "VariableDeclarationStatement",
21781 "src": "5231:54:2"
21782 },
21783 {
21784 "assignments": [
21785 1075
21786 ],
21787 "declarations": [
21788 {
21789 "constant": false,
21790 "id": 1075,
21791 "name": "rootKLast",
21792 "nodeType": "VariableDeclaration",
21793 "scope": 1121,
21794 "src": "5303:14:2",
21795 "stateVariable": false,
21796 "storageLocation": "default",
21797 "typeDescriptions": {
21798 "typeIdentifier": "t_uint256",
21799 "typeString": "uint256"
21800 },
21801 "typeName": {
21802 "id": 1074,
21803 "name": "uint",
21804 "nodeType": "ElementaryTypeName",
21805 "src": "5303:4:2",
21806 "typeDescriptions": {
21807 "typeIdentifier": "t_uint256",
21808 "typeString": "uint256"
21809 }
21810 },
21811 "value": null,
21812 "visibility": "internal"
21813 }
21814 ],
21815 "id": 1080,
21816 "initialValue": {
21817 "argumentTypes": null,
21818 "arguments": [
21819 {
21820 "argumentTypes": null,
21821 "id": 1078,
21822 "name": "_kLast",
21823 "nodeType": "Identifier",
21824 "overloadedDeclarations": [],
21825 "referencedDeclaration": 1055,
21826 "src": "5330:6:2",
21827 "typeDescriptions": {
21828 "typeIdentifier": "t_uint256",
21829 "typeString": "uint256"
21830 }
21831 }
21832 ],
21833 "expression": {
21834 "argumentTypes": [
21835 {
21836 "typeIdentifier": "t_uint256",
21837 "typeString": "uint256"
21838 }
21839 ],
21840 "expression": {
21841 "argumentTypes": null,
21842 "id": 1076,
21843 "name": "Math",
21844 "nodeType": "Identifier",
21845 "overloadedDeclarations": [],
21846 "referencedDeclaration": 2467,
21847 "src": "5320:4:2",
21848 "typeDescriptions": {
21849 "typeIdentifier": "t_type$_t_contract$_Math_$2467_$",
21850 "typeString": "type(library Math)"
21851 }
21852 },
21853 "id": 1077,
21854 "isConstant": false,
21855 "isLValue": false,
21856 "isPure": false,
21857 "lValueRequested": false,
21858 "memberName": "sqrt",
21859 "nodeType": "MemberAccess",
21860 "referencedDeclaration": 2466,
21861 "src": "5320:9:2",
21862 "typeDescriptions": {
21863 "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
21864 "typeString": "function (uint256) pure returns (uint256)"
21865 }
21866 },
21867 "id": 1079,
21868 "isConstant": false,
21869 "isLValue": false,
21870 "isPure": false,
21871 "kind": "functionCall",
21872 "lValueRequested": false,
21873 "names": [],
21874 "nodeType": "FunctionCall",
21875 "src": "5320:17:2",
21876 "typeDescriptions": {
21877 "typeIdentifier": "t_uint256",
21878 "typeString": "uint256"
21879 }
21880 },
21881 "nodeType": "VariableDeclarationStatement",
21882 "src": "5303:34:2"
21883 },
21884 {
21885 "condition": {
21886 "argumentTypes": null,
21887 "commonType": {
21888 "typeIdentifier": "t_uint256",
21889 "typeString": "uint256"
21890 },
21891 "id": 1083,
21892 "isConstant": false,
21893 "isLValue": false,
21894 "isPure": false,
21895 "lValueRequested": false,
21896 "leftExpression": {
21897 "argumentTypes": null,
21898 "id": 1081,
21899 "name": "rootK",
21900 "nodeType": "Identifier",
21901 "overloadedDeclarations": [],
21902 "referencedDeclaration": 1063,
21903 "src": "5359:5:2",
21904 "typeDescriptions": {
21905 "typeIdentifier": "t_uint256",
21906 "typeString": "uint256"
21907 }
21908 },
21909 "nodeType": "BinaryOperation",
21910 "operator": ">",
21911 "rightExpression": {
21912 "argumentTypes": null,
21913 "id": 1082,
21914 "name": "rootKLast",
21915 "nodeType": "Identifier",
21916 "overloadedDeclarations": [],
21917 "referencedDeclaration": 1075,
21918 "src": "5367:9:2",
21919 "typeDescriptions": {
21920 "typeIdentifier": "t_uint256",
21921 "typeString": "uint256"
21922 }
21923 },
21924 "src": "5359:17:2",
21925 "typeDescriptions": {
21926 "typeIdentifier": "t_bool",
21927 "typeString": "bool"
21928 }
21929 },
21930 "falseBody": null,
21931 "id": 1120,
21932 "nodeType": "IfStatement",
21933 "src": "5355:312:2",
21934 "trueBody": {
21935 "id": 1119,
21936 "nodeType": "Block",
21937 "src": "5378:289:2",
21938 "statements": [
21939 {
21940 "assignments": [
21941 1085
21942 ],
21943 "declarations": [
21944 {
21945 "constant": false,
21946 "id": 1085,
21947 "name": "numerator",
21948 "nodeType": "VariableDeclaration",
21949 "scope": 1119,
21950 "src": "5400:14:2",
21951 "stateVariable": false,
21952 "storageLocation": "default",
21953 "typeDescriptions": {
21954 "typeIdentifier": "t_uint256",
21955 "typeString": "uint256"
21956 },
21957 "typeName": {
21958 "id": 1084,
21959 "name": "uint",
21960 "nodeType": "ElementaryTypeName",
21961 "src": "5400:4:2",
21962 "typeDescriptions": {
21963 "typeIdentifier": "t_uint256",
21964 "typeString": "uint256"
21965 }
21966 },
21967 "value": null,
21968 "visibility": "internal"
21969 }
21970 ],
21971 "id": 1093,
21972 "initialValue": {
21973 "argumentTypes": null,
21974 "arguments": [
21975 {
21976 "argumentTypes": null,
21977 "arguments": [
21978 {
21979 "argumentTypes": null,
21980 "id": 1090,
21981 "name": "rootKLast",
21982 "nodeType": "Identifier",
21983 "overloadedDeclarations": [],
21984 "referencedDeclaration": 1075,
21985 "src": "5443:9:2",
21986 "typeDescriptions": {
21987 "typeIdentifier": "t_uint256",
21988 "typeString": "uint256"
21989 }
21990 }
21991 ],
21992 "expression": {
21993 "argumentTypes": [
21994 {
21995 "typeIdentifier": "t_uint256",
21996 "typeString": "uint256"
21997 }
21998 ],
21999 "expression": {
22000 "argumentTypes": null,
22001 "id": 1088,
22002 "name": "rootK",
22003 "nodeType": "Identifier",
22004 "overloadedDeclarations": [],
22005 "referencedDeclaration": 1063,
22006 "src": "5433:5:2",
22007 "typeDescriptions": {
22008 "typeIdentifier": "t_uint256",
22009 "typeString": "uint256"
22010 }
22011 },
22012 "id": 1089,
22013 "isConstant": false,
22014 "isLValue": false,
22015 "isPure": false,
22016 "lValueRequested": false,
22017 "memberName": "sub",
22018 "nodeType": "MemberAccess",
22019 "referencedDeclaration": 2513,
22020 "src": "5433:9:2",
22021 "typeDescriptions": {
22022 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
22023 "typeString": "function (uint256,uint256) pure returns (uint256)"
22024 }
22025 },
22026 "id": 1091,
22027 "isConstant": false,
22028 "isLValue": false,
22029 "isPure": false,
22030 "kind": "functionCall",
22031 "lValueRequested": false,
22032 "names": [],
22033 "nodeType": "FunctionCall",
22034 "src": "5433:20:2",
22035 "typeDescriptions": {
22036 "typeIdentifier": "t_uint256",
22037 "typeString": "uint256"
22038 }
22039 }
22040 ],
22041 "expression": {
22042 "argumentTypes": [
22043 {
22044 "typeIdentifier": "t_uint256",
22045 "typeString": "uint256"
22046 }
22047 ],
22048 "expression": {
22049 "argumentTypes": null,
22050 "id": 1086,
22051 "name": "totalSupply",
22052 "nodeType": "Identifier",
22053 "overloadedDeclarations": [],
22054 "referencedDeclaration": 19,
22055 "src": "5417:11:2",
22056 "typeDescriptions": {
22057 "typeIdentifier": "t_uint256",
22058 "typeString": "uint256"
22059 }
22060 },
22061 "id": 1087,
22062 "isConstant": false,
22063 "isLValue": false,
22064 "isPure": false,
22065 "lValueRequested": false,
22066 "memberName": "mul",
22067 "nodeType": "MemberAccess",
22068 "referencedDeclaration": 2541,
22069 "src": "5417:15:2",
22070 "typeDescriptions": {
22071 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
22072 "typeString": "function (uint256,uint256) pure returns (uint256)"
22073 }
22074 },
22075 "id": 1092,
22076 "isConstant": false,
22077 "isLValue": false,
22078 "isPure": false,
22079 "kind": "functionCall",
22080 "lValueRequested": false,
22081 "names": [],
22082 "nodeType": "FunctionCall",
22083 "src": "5417:37:2",
22084 "typeDescriptions": {
22085 "typeIdentifier": "t_uint256",
22086 "typeString": "uint256"
22087 }
22088 },
22089 "nodeType": "VariableDeclarationStatement",
22090 "src": "5400:54:2"
22091 },
22092 {
22093 "assignments": [
22094 1095
22095 ],
22096 "declarations": [
22097 {
22098 "constant": false,
22099 "id": 1095,
22100 "name": "denominator",
22101 "nodeType": "VariableDeclaration",
22102 "scope": 1119,
22103 "src": "5476:16:2",
22104 "stateVariable": false,
22105 "storageLocation": "default",
22106 "typeDescriptions": {
22107 "typeIdentifier": "t_uint256",
22108 "typeString": "uint256"
22109 },
22110 "typeName": {
22111 "id": 1094,
22112 "name": "uint",
22113 "nodeType": "ElementaryTypeName",
22114 "src": "5476:4:2",
22115 "typeDescriptions": {
22116 "typeIdentifier": "t_uint256",
22117 "typeString": "uint256"
22118 }
22119 },
22120 "value": null,
22121 "visibility": "internal"
22122 }
22123 ],
22124 "id": 1103,
22125 "initialValue": {
22126 "argumentTypes": null,
22127 "arguments": [
22128 {
22129 "argumentTypes": null,
22130 "id": 1101,
22131 "name": "rootKLast",
22132 "nodeType": "Identifier",
22133 "overloadedDeclarations": [],
22134 "referencedDeclaration": 1075,
22135 "src": "5512:9:2",
22136 "typeDescriptions": {
22137 "typeIdentifier": "t_uint256",
22138 "typeString": "uint256"
22139 }
22140 }
22141 ],
22142 "expression": {
22143 "argumentTypes": [
22144 {
22145 "typeIdentifier": "t_uint256",
22146 "typeString": "uint256"
22147 }
22148 ],
22149 "expression": {
22150 "argumentTypes": null,
22151 "arguments": [
22152 {
22153 "argumentTypes": null,
22154 "hexValue": "35",
22155 "id": 1098,
22156 "isConstant": false,
22157 "isLValue": false,
22158 "isPure": true,
22159 "kind": "number",
22160 "lValueRequested": false,
22161 "nodeType": "Literal",
22162 "src": "5505:1:2",
22163 "subdenomination": null,
22164 "typeDescriptions": {
22165 "typeIdentifier": "t_rational_5_by_1",
22166 "typeString": "int_const 5"
22167 },
22168 "value": "5"
22169 }
22170 ],
22171 "expression": {
22172 "argumentTypes": [
22173 {
22174 "typeIdentifier": "t_rational_5_by_1",
22175 "typeString": "int_const 5"
22176 }
22177 ],
22178 "expression": {
22179 "argumentTypes": null,
22180 "id": 1096,
22181 "name": "rootK",
22182 "nodeType": "Identifier",
22183 "overloadedDeclarations": [],
22184 "referencedDeclaration": 1063,
22185 "src": "5495:5:2",
22186 "typeDescriptions": {
22187 "typeIdentifier": "t_uint256",
22188 "typeString": "uint256"
22189 }
22190 },
22191 "id": 1097,
22192 "isConstant": false,
22193 "isLValue": false,
22194 "isPure": false,
22195 "lValueRequested": false,
22196 "memberName": "mul",
22197 "nodeType": "MemberAccess",
22198 "referencedDeclaration": 2541,
22199 "src": "5495:9:2",
22200 "typeDescriptions": {
22201 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
22202 "typeString": "function (uint256,uint256) pure returns (uint256)"
22203 }
22204 },
22205 "id": 1099,
22206 "isConstant": false,
22207 "isLValue": false,
22208 "isPure": false,
22209 "kind": "functionCall",
22210 "lValueRequested": false,
22211 "names": [],
22212 "nodeType": "FunctionCall",
22213 "src": "5495:12:2",
22214 "typeDescriptions": {
22215 "typeIdentifier": "t_uint256",
22216 "typeString": "uint256"
22217 }
22218 },
22219 "id": 1100,
22220 "isConstant": false,
22221 "isLValue": false,
22222 "isPure": false,
22223 "lValueRequested": false,
22224 "memberName": "add",
22225 "nodeType": "MemberAccess",
22226 "referencedDeclaration": 2491,
22227 "src": "5495:16:2",
22228 "typeDescriptions": {
22229 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
22230 "typeString": "function (uint256,uint256) pure returns (uint256)"
22231 }
22232 },
22233 "id": 1102,
22234 "isConstant": false,
22235 "isLValue": false,
22236 "isPure": false,
22237 "kind": "functionCall",
22238 "lValueRequested": false,
22239 "names": [],
22240 "nodeType": "FunctionCall",
22241 "src": "5495:27:2",
22242 "typeDescriptions": {
22243 "typeIdentifier": "t_uint256",
22244 "typeString": "uint256"
22245 }
22246 },
22247 "nodeType": "VariableDeclarationStatement",
22248 "src": "5476:46:2"
22249 },
22250 {
22251 "assignments": [
22252 1105
22253 ],
22254 "declarations": [
22255 {
22256 "constant": false,
22257 "id": 1105,
22258 "name": "liquidity",
22259 "nodeType": "VariableDeclaration",
22260 "scope": 1119,
22261 "src": "5544:14:2",
22262 "stateVariable": false,
22263 "storageLocation": "default",
22264 "typeDescriptions": {
22265 "typeIdentifier": "t_uint256",
22266 "typeString": "uint256"
22267 },
22268 "typeName": {
22269 "id": 1104,
22270 "name": "uint",
22271 "nodeType": "ElementaryTypeName",
22272 "src": "5544:4:2",
22273 "typeDescriptions": {
22274 "typeIdentifier": "t_uint256",
22275 "typeString": "uint256"
22276 }
22277 },
22278 "value": null,
22279 "visibility": "internal"
22280 }
22281 ],
22282 "id": 1109,
22283 "initialValue": {
22284 "argumentTypes": null,
22285 "commonType": {
22286 "typeIdentifier": "t_uint256",
22287 "typeString": "uint256"
22288 },
22289 "id": 1108,
22290 "isConstant": false,
22291 "isLValue": false,
22292 "isPure": false,
22293 "lValueRequested": false,
22294 "leftExpression": {
22295 "argumentTypes": null,
22296 "id": 1106,
22297 "name": "numerator",
22298 "nodeType": "Identifier",
22299 "overloadedDeclarations": [],
22300 "referencedDeclaration": 1085,
22301 "src": "5561:9:2",
22302 "typeDescriptions": {
22303 "typeIdentifier": "t_uint256",
22304 "typeString": "uint256"
22305 }
22306 },
22307 "nodeType": "BinaryOperation",
22308 "operator": "/",
22309 "rightExpression": {
22310 "argumentTypes": null,
22311 "id": 1107,
22312 "name": "denominator",
22313 "nodeType": "Identifier",
22314 "overloadedDeclarations": [],
22315 "referencedDeclaration": 1095,
22316 "src": "5573:11:2",
22317 "typeDescriptions": {
22318 "typeIdentifier": "t_uint256",
22319 "typeString": "uint256"
22320 }
22321 },
22322 "src": "5561:23:2",
22323 "typeDescriptions": {
22324 "typeIdentifier": "t_uint256",
22325 "typeString": "uint256"
22326 }
22327 },
22328 "nodeType": "VariableDeclarationStatement",
22329 "src": "5544:40:2"
22330 },
22331 {
22332 "condition": {
22333 "argumentTypes": null,
22334 "commonType": {
22335 "typeIdentifier": "t_uint256",
22336 "typeString": "uint256"
22337 },
22338 "id": 1112,
22339 "isConstant": false,
22340 "isLValue": false,
22341 "isPure": false,
22342 "lValueRequested": false,
22343 "leftExpression": {
22344 "argumentTypes": null,
22345 "id": 1110,
22346 "name": "liquidity",
22347 "nodeType": "Identifier",
22348 "overloadedDeclarations": [],
22349 "referencedDeclaration": 1105,
22350 "src": "5610:9:2",
22351 "typeDescriptions": {
22352 "typeIdentifier": "t_uint256",
22353 "typeString": "uint256"
22354 }
22355 },
22356 "nodeType": "BinaryOperation",
22357 "operator": ">",
22358 "rightExpression": {
22359 "argumentTypes": null,
22360 "hexValue": "30",
22361 "id": 1111,
22362 "isConstant": false,
22363 "isLValue": false,
22364 "isPure": true,
22365 "kind": "number",
22366 "lValueRequested": false,
22367 "nodeType": "Literal",
22368 "src": "5622:1:2",
22369 "subdenomination": null,
22370 "typeDescriptions": {
22371 "typeIdentifier": "t_rational_0_by_1",
22372 "typeString": "int_const 0"
22373 },
22374 "value": "0"
22375 },
22376 "src": "5610:13:2",
22377 "typeDescriptions": {
22378 "typeIdentifier": "t_bool",
22379 "typeString": "bool"
22380 }
22381 },
22382 "falseBody": null,
22383 "id": 1118,
22384 "nodeType": "IfStatement",
22385 "src": "5606:42:2",
22386 "trueBody": {
22387 "expression": {
22388 "argumentTypes": null,
22389 "arguments": [
22390 {
22391 "argumentTypes": null,
22392 "id": 1114,
22393 "name": "feeTo",
22394 "nodeType": "Identifier",
22395 "overloadedDeclarations": [],
22396 "referencedDeclaration": 1039,
22397 "src": "5631:5:2",
22398 "typeDescriptions": {
22399 "typeIdentifier": "t_address",
22400 "typeString": "address"
22401 }
22402 },
22403 {
22404 "argumentTypes": null,
22405 "id": 1115,
22406 "name": "liquidity",
22407 "nodeType": "Identifier",
22408 "overloadedDeclarations": [],
22409 "referencedDeclaration": 1105,
22410 "src": "5638:9:2",
22411 "typeDescriptions": {
22412 "typeIdentifier": "t_uint256",
22413 "typeString": "uint256"
22414 }
22415 }
22416 ],
22417 "expression": {
22418 "argumentTypes": [
22419 {
22420 "typeIdentifier": "t_address",
22421 "typeString": "address"
22422 },
22423 {
22424 "typeIdentifier": "t_uint256",
22425 "typeString": "uint256"
22426 }
22427 ],
22428 "id": 1113,
22429 "name": "_mint",
22430 "nodeType": "Identifier",
22431 "overloadedDeclarations": [],
22432 "referencedDeclaration": 121,
22433 "src": "5625:5:2",
22434 "typeDescriptions": {
22435 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
22436 "typeString": "function (address,uint256)"
22437 }
22438 },
22439 "id": 1116,
22440 "isConstant": false,
22441 "isLValue": false,
22442 "isPure": false,
22443 "kind": "functionCall",
22444 "lValueRequested": false,
22445 "names": [],
22446 "nodeType": "FunctionCall",
22447 "src": "5625:23:2",
22448 "typeDescriptions": {
22449 "typeIdentifier": "t_tuple$__$",
22450 "typeString": "tuple()"
22451 }
22452 },
22453 "id": 1117,
22454 "nodeType": "ExpressionStatement",
22455 "src": "5625:23:2"
22456 }
22457 }
22458 ]
22459 }
22460 }
22461 ]
22462 }
22463 }
22464 ]
22465 }
22466 }
22467 ]
22468 },
22469 "documentation": null,
22470 "id": 1135,
22471 "implemented": true,
22472 "kind": "function",
22473 "modifiers": [],
22474 "name": "_mintFee",
22475 "nodeType": "FunctionDefinition",
22476 "parameters": {
22477 "id": 1034,
22478 "nodeType": "ParameterList",
22479 "parameters": [
22480 {
22481 "constant": false,
22482 "id": 1031,
22483 "name": "_reserve0",
22484 "nodeType": "VariableDeclaration",
22485 "scope": 1135,
22486 "src": "4953:17:2",
22487 "stateVariable": false,
22488 "storageLocation": "default",
22489 "typeDescriptions": {
22490 "typeIdentifier": "t_uint112",
22491 "typeString": "uint112"
22492 },
22493 "typeName": {
22494 "id": 1030,
22495 "name": "uint112",
22496 "nodeType": "ElementaryTypeName",
22497 "src": "4953:7:2",
22498 "typeDescriptions": {
22499 "typeIdentifier": "t_uint112",
22500 "typeString": "uint112"
22501 }
22502 },
22503 "value": null,
22504 "visibility": "internal"
22505 },
22506 {
22507 "constant": false,
22508 "id": 1033,
22509 "name": "_reserve1",
22510 "nodeType": "VariableDeclaration",
22511 "scope": 1135,
22512 "src": "4972:17:2",
22513 "stateVariable": false,
22514 "storageLocation": "default",
22515 "typeDescriptions": {
22516 "typeIdentifier": "t_uint112",
22517 "typeString": "uint112"
22518 },
22519 "typeName": {
22520 "id": 1032,
22521 "name": "uint112",
22522 "nodeType": "ElementaryTypeName",
22523 "src": "4972:7:2",
22524 "typeDescriptions": {
22525 "typeIdentifier": "t_uint112",
22526 "typeString": "uint112"
22527 }
22528 },
22529 "value": null,
22530 "visibility": "internal"
22531 }
22532 ],
22533 "src": "4952:38:2"
22534 },
22535 "returnParameters": {
22536 "id": 1037,
22537 "nodeType": "ParameterList",
22538 "parameters": [
22539 {
22540 "constant": false,
22541 "id": 1036,
22542 "name": "feeOn",
22543 "nodeType": "VariableDeclaration",
22544 "scope": 1135,
22545 "src": "5008:10:2",
22546 "stateVariable": false,
22547 "storageLocation": "default",
22548 "typeDescriptions": {
22549 "typeIdentifier": "t_bool",
22550 "typeString": "bool"
22551 },
22552 "typeName": {
22553 "id": 1035,
22554 "name": "bool",
22555 "nodeType": "ElementaryTypeName",
22556 "src": "5008:4:2",
22557 "typeDescriptions": {
22558 "typeIdentifier": "t_bool",
22559 "typeString": "bool"
22560 }
22561 },
22562 "value": null,
22563 "visibility": "internal"
22564 }
22565 ],
22566 "src": "5007:12:2"
22567 },
22568 "scope": 1834,
22569 "src": "4935:819:2",
22570 "stateMutability": "nonpayable",
22571 "superFunction": null,
22572 "visibility": "private"
22573 },
22574 {
22575 "body": {
22576 "id": 1333,
22577 "nodeType": "Block",
22578 "src": "5928:1544:2",
22579 "statements": [
22580 {
22581 "assignments": [
22582 1145,
22583 1147,
22584 null
22585 ],
22586 "declarations": [
22587 {
22588 "constant": false,
22589 "id": 1145,
22590 "name": "_reserve0",
22591 "nodeType": "VariableDeclaration",
22592 "scope": 1333,
22593 "src": "5939:17:2",
22594 "stateVariable": false,
22595 "storageLocation": "default",
22596 "typeDescriptions": {
22597 "typeIdentifier": "t_uint112",
22598 "typeString": "uint112"
22599 },
22600 "typeName": {
22601 "id": 1144,
22602 "name": "uint112",
22603 "nodeType": "ElementaryTypeName",
22604 "src": "5939:7:2",
22605 "typeDescriptions": {
22606 "typeIdentifier": "t_uint112",
22607 "typeString": "uint112"
22608 }
22609 },
22610 "value": null,
22611 "visibility": "internal"
22612 },
22613 {
22614 "constant": false,
22615 "id": 1147,
22616 "name": "_reserve1",
22617 "nodeType": "VariableDeclaration",
22618 "scope": 1333,
22619 "src": "5958:17:2",
22620 "stateVariable": false,
22621 "storageLocation": "default",
22622 "typeDescriptions": {
22623 "typeIdentifier": "t_uint112",
22624 "typeString": "uint112"
22625 },
22626 "typeName": {
22627 "id": 1146,
22628 "name": "uint112",
22629 "nodeType": "ElementaryTypeName",
22630 "src": "5958:7:2",
22631 "typeDescriptions": {
22632 "typeIdentifier": "t_uint112",
22633 "typeString": "uint112"
22634 }
22635 },
22636 "value": null,
22637 "visibility": "internal"
22638 },
22639 null
22640 ],
22641 "id": 1150,
22642 "initialValue": {
22643 "argumentTypes": null,
22644 "arguments": [],
22645 "expression": {
22646 "argumentTypes": [],
22647 "id": 1148,
22648 "name": "getReserves",
22649 "nodeType": "Identifier",
22650 "overloadedDeclarations": [],
22651 "referencedDeclaration": 699,
22652 "src": "5981:11:2",
22653 "typeDescriptions": {
22654 "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$",
22655 "typeString": "function () view returns (uint112,uint112,uint32)"
22656 }
22657 },
22658 "id": 1149,
22659 "isConstant": false,
22660 "isLValue": false,
22661 "isPure": false,
22662 "kind": "functionCall",
22663 "lValueRequested": false,
22664 "names": [],
22665 "nodeType": "FunctionCall",
22666 "src": "5981:13:2",
22667 "typeDescriptions": {
22668 "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$",
22669 "typeString": "tuple(uint112,uint112,uint32)"
22670 }
22671 },
22672 "nodeType": "VariableDeclarationStatement",
22673 "src": "5938:56:2"
22674 },
22675 {
22676 "assignments": [
22677 1152
22678 ],
22679 "declarations": [
22680 {
22681 "constant": false,
22682 "id": 1152,
22683 "name": "balance0",
22684 "nodeType": "VariableDeclaration",
22685 "scope": 1333,
22686 "src": "6019:13:2",
22687 "stateVariable": false,
22688 "storageLocation": "default",
22689 "typeDescriptions": {
22690 "typeIdentifier": "t_uint256",
22691 "typeString": "uint256"
22692 },
22693 "typeName": {
22694 "id": 1151,
22695 "name": "uint",
22696 "nodeType": "ElementaryTypeName",
22697 "src": "6019:4:2",
22698 "typeDescriptions": {
22699 "typeIdentifier": "t_uint256",
22700 "typeString": "uint256"
22701 }
22702 },
22703 "value": null,
22704 "visibility": "internal"
22705 }
22706 ],
22707 "id": 1161,
22708 "initialValue": {
22709 "argumentTypes": null,
22710 "arguments": [
22711 {
22712 "argumentTypes": null,
22713 "arguments": [
22714 {
22715 "argumentTypes": null,
22716 "id": 1158,
22717 "name": "this",
22718 "nodeType": "Identifier",
22719 "overloadedDeclarations": [],
22720 "referencedDeclaration": 2649,
22721 "src": "6068:4:2",
22722 "typeDescriptions": {
22723 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
22724 "typeString": "contract UniswapV2Pair"
22725 }
22726 }
22727 ],
22728 "expression": {
22729 "argumentTypes": [
22730 {
22731 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
22732 "typeString": "contract UniswapV2Pair"
22733 }
22734 ],
22735 "id": 1157,
22736 "isConstant": false,
22737 "isLValue": false,
22738 "isPure": true,
22739 "lValueRequested": false,
22740 "nodeType": "ElementaryTypeNameExpression",
22741 "src": "6060:7:2",
22742 "typeDescriptions": {
22743 "typeIdentifier": "t_type$_t_address_$",
22744 "typeString": "type(address)"
22745 },
22746 "typeName": "address"
22747 },
22748 "id": 1159,
22749 "isConstant": false,
22750 "isLValue": false,
22751 "isPure": false,
22752 "kind": "typeConversion",
22753 "lValueRequested": false,
22754 "names": [],
22755 "nodeType": "FunctionCall",
22756 "src": "6060:13:2",
22757 "typeDescriptions": {
22758 "typeIdentifier": "t_address",
22759 "typeString": "address"
22760 }
22761 }
22762 ],
22763 "expression": {
22764 "argumentTypes": [
22765 {
22766 "typeIdentifier": "t_address",
22767 "typeString": "address"
22768 }
22769 ],
22770 "expression": {
22771 "argumentTypes": null,
22772 "arguments": [
22773 {
22774 "argumentTypes": null,
22775 "id": 1154,
22776 "name": "token0",
22777 "nodeType": "Identifier",
22778 "overloadedDeclarations": [],
22779 "referencedDeclaration": 631,
22780 "src": "6042:6:2",
22781 "typeDescriptions": {
22782 "typeIdentifier": "t_address",
22783 "typeString": "address"
22784 }
22785 }
22786 ],
22787 "expression": {
22788 "argumentTypes": [
22789 {
22790 "typeIdentifier": "t_address",
22791 "typeString": "address"
22792 }
22793 ],
22794 "id": 1153,
22795 "name": "IERC20",
22796 "nodeType": "Identifier",
22797 "overloadedDeclarations": [],
22798 "referencedDeclaration": 1918,
22799 "src": "6035:6:2",
22800 "typeDescriptions": {
22801 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
22802 "typeString": "type(contract IERC20)"
22803 }
22804 },
22805 "id": 1155,
22806 "isConstant": false,
22807 "isLValue": false,
22808 "isPure": false,
22809 "kind": "typeConversion",
22810 "lValueRequested": false,
22811 "names": [],
22812 "nodeType": "FunctionCall",
22813 "src": "6035:14:2",
22814 "typeDescriptions": {
22815 "typeIdentifier": "t_contract$_IERC20_$1918",
22816 "typeString": "contract IERC20"
22817 }
22818 },
22819 "id": 1156,
22820 "isConstant": false,
22821 "isLValue": false,
22822 "isPure": false,
22823 "lValueRequested": false,
22824 "memberName": "balanceOf",
22825 "nodeType": "MemberAccess",
22826 "referencedDeclaration": 1879,
22827 "src": "6035:24:2",
22828 "typeDescriptions": {
22829 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
22830 "typeString": "function (address) view external returns (uint256)"
22831 }
22832 },
22833 "id": 1160,
22834 "isConstant": false,
22835 "isLValue": false,
22836 "isPure": false,
22837 "kind": "functionCall",
22838 "lValueRequested": false,
22839 "names": [],
22840 "nodeType": "FunctionCall",
22841 "src": "6035:39:2",
22842 "typeDescriptions": {
22843 "typeIdentifier": "t_uint256",
22844 "typeString": "uint256"
22845 }
22846 },
22847 "nodeType": "VariableDeclarationStatement",
22848 "src": "6019:55:2"
22849 },
22850 {
22851 "assignments": [
22852 1163
22853 ],
22854 "declarations": [
22855 {
22856 "constant": false,
22857 "id": 1163,
22858 "name": "balance1",
22859 "nodeType": "VariableDeclaration",
22860 "scope": 1333,
22861 "src": "6084:13:2",
22862 "stateVariable": false,
22863 "storageLocation": "default",
22864 "typeDescriptions": {
22865 "typeIdentifier": "t_uint256",
22866 "typeString": "uint256"
22867 },
22868 "typeName": {
22869 "id": 1162,
22870 "name": "uint",
22871 "nodeType": "ElementaryTypeName",
22872 "src": "6084:4:2",
22873 "typeDescriptions": {
22874 "typeIdentifier": "t_uint256",
22875 "typeString": "uint256"
22876 }
22877 },
22878 "value": null,
22879 "visibility": "internal"
22880 }
22881 ],
22882 "id": 1172,
22883 "initialValue": {
22884 "argumentTypes": null,
22885 "arguments": [
22886 {
22887 "argumentTypes": null,
22888 "arguments": [
22889 {
22890 "argumentTypes": null,
22891 "id": 1169,
22892 "name": "this",
22893 "nodeType": "Identifier",
22894 "overloadedDeclarations": [],
22895 "referencedDeclaration": 2649,
22896 "src": "6133:4:2",
22897 "typeDescriptions": {
22898 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
22899 "typeString": "contract UniswapV2Pair"
22900 }
22901 }
22902 ],
22903 "expression": {
22904 "argumentTypes": [
22905 {
22906 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
22907 "typeString": "contract UniswapV2Pair"
22908 }
22909 ],
22910 "id": 1168,
22911 "isConstant": false,
22912 "isLValue": false,
22913 "isPure": true,
22914 "lValueRequested": false,
22915 "nodeType": "ElementaryTypeNameExpression",
22916 "src": "6125:7:2",
22917 "typeDescriptions": {
22918 "typeIdentifier": "t_type$_t_address_$",
22919 "typeString": "type(address)"
22920 },
22921 "typeName": "address"
22922 },
22923 "id": 1170,
22924 "isConstant": false,
22925 "isLValue": false,
22926 "isPure": false,
22927 "kind": "typeConversion",
22928 "lValueRequested": false,
22929 "names": [],
22930 "nodeType": "FunctionCall",
22931 "src": "6125:13:2",
22932 "typeDescriptions": {
22933 "typeIdentifier": "t_address",
22934 "typeString": "address"
22935 }
22936 }
22937 ],
22938 "expression": {
22939 "argumentTypes": [
22940 {
22941 "typeIdentifier": "t_address",
22942 "typeString": "address"
22943 }
22944 ],
22945 "expression": {
22946 "argumentTypes": null,
22947 "arguments": [
22948 {
22949 "argumentTypes": null,
22950 "id": 1165,
22951 "name": "token1",
22952 "nodeType": "Identifier",
22953 "overloadedDeclarations": [],
22954 "referencedDeclaration": 633,
22955 "src": "6107:6:2",
22956 "typeDescriptions": {
22957 "typeIdentifier": "t_address",
22958 "typeString": "address"
22959 }
22960 }
22961 ],
22962 "expression": {
22963 "argumentTypes": [
22964 {
22965 "typeIdentifier": "t_address",
22966 "typeString": "address"
22967 }
22968 ],
22969 "id": 1164,
22970 "name": "IERC20",
22971 "nodeType": "Identifier",
22972 "overloadedDeclarations": [],
22973 "referencedDeclaration": 1918,
22974 "src": "6100:6:2",
22975 "typeDescriptions": {
22976 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
22977 "typeString": "type(contract IERC20)"
22978 }
22979 },
22980 "id": 1166,
22981 "isConstant": false,
22982 "isLValue": false,
22983 "isPure": false,
22984 "kind": "typeConversion",
22985 "lValueRequested": false,
22986 "names": [],
22987 "nodeType": "FunctionCall",
22988 "src": "6100:14:2",
22989 "typeDescriptions": {
22990 "typeIdentifier": "t_contract$_IERC20_$1918",
22991 "typeString": "contract IERC20"
22992 }
22993 },
22994 "id": 1167,
22995 "isConstant": false,
22996 "isLValue": false,
22997 "isPure": false,
22998 "lValueRequested": false,
22999 "memberName": "balanceOf",
23000 "nodeType": "MemberAccess",
23001 "referencedDeclaration": 1879,
23002 "src": "6100:24:2",
23003 "typeDescriptions": {
23004 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
23005 "typeString": "function (address) view external returns (uint256)"
23006 }
23007 },
23008 "id": 1171,
23009 "isConstant": false,
23010 "isLValue": false,
23011 "isPure": false,
23012 "kind": "functionCall",
23013 "lValueRequested": false,
23014 "names": [],
23015 "nodeType": "FunctionCall",
23016 "src": "6100:39:2",
23017 "typeDescriptions": {
23018 "typeIdentifier": "t_uint256",
23019 "typeString": "uint256"
23020 }
23021 },
23022 "nodeType": "VariableDeclarationStatement",
23023 "src": "6084:55:2"
23024 },
23025 {
23026 "assignments": [
23027 1174
23028 ],
23029 "declarations": [
23030 {
23031 "constant": false,
23032 "id": 1174,
23033 "name": "amount0",
23034 "nodeType": "VariableDeclaration",
23035 "scope": 1333,
23036 "src": "6149:12:2",
23037 "stateVariable": false,
23038 "storageLocation": "default",
23039 "typeDescriptions": {
23040 "typeIdentifier": "t_uint256",
23041 "typeString": "uint256"
23042 },
23043 "typeName": {
23044 "id": 1173,
23045 "name": "uint",
23046 "nodeType": "ElementaryTypeName",
23047 "src": "6149:4:2",
23048 "typeDescriptions": {
23049 "typeIdentifier": "t_uint256",
23050 "typeString": "uint256"
23051 }
23052 },
23053 "value": null,
23054 "visibility": "internal"
23055 }
23056 ],
23057 "id": 1179,
23058 "initialValue": {
23059 "argumentTypes": null,
23060 "arguments": [
23061 {
23062 "argumentTypes": null,
23063 "id": 1177,
23064 "name": "_reserve0",
23065 "nodeType": "Identifier",
23066 "overloadedDeclarations": [],
23067 "referencedDeclaration": 1145,
23068 "src": "6177:9:2",
23069 "typeDescriptions": {
23070 "typeIdentifier": "t_uint112",
23071 "typeString": "uint112"
23072 }
23073 }
23074 ],
23075 "expression": {
23076 "argumentTypes": [
23077 {
23078 "typeIdentifier": "t_uint112",
23079 "typeString": "uint112"
23080 }
23081 ],
23082 "expression": {
23083 "argumentTypes": null,
23084 "id": 1175,
23085 "name": "balance0",
23086 "nodeType": "Identifier",
23087 "overloadedDeclarations": [],
23088 "referencedDeclaration": 1152,
23089 "src": "6164:8:2",
23090 "typeDescriptions": {
23091 "typeIdentifier": "t_uint256",
23092 "typeString": "uint256"
23093 }
23094 },
23095 "id": 1176,
23096 "isConstant": false,
23097 "isLValue": false,
23098 "isPure": false,
23099 "lValueRequested": false,
23100 "memberName": "sub",
23101 "nodeType": "MemberAccess",
23102 "referencedDeclaration": 2513,
23103 "src": "6164:12:2",
23104 "typeDescriptions": {
23105 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
23106 "typeString": "function (uint256,uint256) pure returns (uint256)"
23107 }
23108 },
23109 "id": 1178,
23110 "isConstant": false,
23111 "isLValue": false,
23112 "isPure": false,
23113 "kind": "functionCall",
23114 "lValueRequested": false,
23115 "names": [],
23116 "nodeType": "FunctionCall",
23117 "src": "6164:23:2",
23118 "typeDescriptions": {
23119 "typeIdentifier": "t_uint256",
23120 "typeString": "uint256"
23121 }
23122 },
23123 "nodeType": "VariableDeclarationStatement",
23124 "src": "6149:38:2"
23125 },
23126 {
23127 "assignments": [
23128 1181
23129 ],
23130 "declarations": [
23131 {
23132 "constant": false,
23133 "id": 1181,
23134 "name": "amount1",
23135 "nodeType": "VariableDeclaration",
23136 "scope": 1333,
23137 "src": "6197:12:2",
23138 "stateVariable": false,
23139 "storageLocation": "default",
23140 "typeDescriptions": {
23141 "typeIdentifier": "t_uint256",
23142 "typeString": "uint256"
23143 },
23144 "typeName": {
23145 "id": 1180,
23146 "name": "uint",
23147 "nodeType": "ElementaryTypeName",
23148 "src": "6197:4:2",
23149 "typeDescriptions": {
23150 "typeIdentifier": "t_uint256",
23151 "typeString": "uint256"
23152 }
23153 },
23154 "value": null,
23155 "visibility": "internal"
23156 }
23157 ],
23158 "id": 1186,
23159 "initialValue": {
23160 "argumentTypes": null,
23161 "arguments": [
23162 {
23163 "argumentTypes": null,
23164 "id": 1184,
23165 "name": "_reserve1",
23166 "nodeType": "Identifier",
23167 "overloadedDeclarations": [],
23168 "referencedDeclaration": 1147,
23169 "src": "6225:9:2",
23170 "typeDescriptions": {
23171 "typeIdentifier": "t_uint112",
23172 "typeString": "uint112"
23173 }
23174 }
23175 ],
23176 "expression": {
23177 "argumentTypes": [
23178 {
23179 "typeIdentifier": "t_uint112",
23180 "typeString": "uint112"
23181 }
23182 ],
23183 "expression": {
23184 "argumentTypes": null,
23185 "id": 1182,
23186 "name": "balance1",
23187 "nodeType": "Identifier",
23188 "overloadedDeclarations": [],
23189 "referencedDeclaration": 1163,
23190 "src": "6212:8:2",
23191 "typeDescriptions": {
23192 "typeIdentifier": "t_uint256",
23193 "typeString": "uint256"
23194 }
23195 },
23196 "id": 1183,
23197 "isConstant": false,
23198 "isLValue": false,
23199 "isPure": false,
23200 "lValueRequested": false,
23201 "memberName": "sub",
23202 "nodeType": "MemberAccess",
23203 "referencedDeclaration": 2513,
23204 "src": "6212:12:2",
23205 "typeDescriptions": {
23206 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
23207 "typeString": "function (uint256,uint256) pure returns (uint256)"
23208 }
23209 },
23210 "id": 1185,
23211 "isConstant": false,
23212 "isLValue": false,
23213 "isPure": false,
23214 "kind": "functionCall",
23215 "lValueRequested": false,
23216 "names": [],
23217 "nodeType": "FunctionCall",
23218 "src": "6212:23:2",
23219 "typeDescriptions": {
23220 "typeIdentifier": "t_uint256",
23221 "typeString": "uint256"
23222 }
23223 },
23224 "nodeType": "VariableDeclarationStatement",
23225 "src": "6197:38:2"
23226 },
23227 {
23228 "assignments": [
23229 1188
23230 ],
23231 "declarations": [
23232 {
23233 "constant": false,
23234 "id": 1188,
23235 "name": "feeOn",
23236 "nodeType": "VariableDeclaration",
23237 "scope": 1333,
23238 "src": "6245:10:2",
23239 "stateVariable": false,
23240 "storageLocation": "default",
23241 "typeDescriptions": {
23242 "typeIdentifier": "t_bool",
23243 "typeString": "bool"
23244 },
23245 "typeName": {
23246 "id": 1187,
23247 "name": "bool",
23248 "nodeType": "ElementaryTypeName",
23249 "src": "6245:4:2",
23250 "typeDescriptions": {
23251 "typeIdentifier": "t_bool",
23252 "typeString": "bool"
23253 }
23254 },
23255 "value": null,
23256 "visibility": "internal"
23257 }
23258 ],
23259 "id": 1193,
23260 "initialValue": {
23261 "argumentTypes": null,
23262 "arguments": [
23263 {
23264 "argumentTypes": null,
23265 "id": 1190,
23266 "name": "_reserve0",
23267 "nodeType": "Identifier",
23268 "overloadedDeclarations": [],
23269 "referencedDeclaration": 1145,
23270 "src": "6267:9:2",
23271 "typeDescriptions": {
23272 "typeIdentifier": "t_uint112",
23273 "typeString": "uint112"
23274 }
23275 },
23276 {
23277 "argumentTypes": null,
23278 "id": 1191,
23279 "name": "_reserve1",
23280 "nodeType": "Identifier",
23281 "overloadedDeclarations": [],
23282 "referencedDeclaration": 1147,
23283 "src": "6278:9:2",
23284 "typeDescriptions": {
23285 "typeIdentifier": "t_uint112",
23286 "typeString": "uint112"
23287 }
23288 }
23289 ],
23290 "expression": {
23291 "argumentTypes": [
23292 {
23293 "typeIdentifier": "t_uint112",
23294 "typeString": "uint112"
23295 },
23296 {
23297 "typeIdentifier": "t_uint112",
23298 "typeString": "uint112"
23299 }
23300 ],
23301 "id": 1189,
23302 "name": "_mintFee",
23303 "nodeType": "Identifier",
23304 "overloadedDeclarations": [],
23305 "referencedDeclaration": 1135,
23306 "src": "6258:8:2",
23307 "typeDescriptions": {
23308 "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$",
23309 "typeString": "function (uint112,uint112) returns (bool)"
23310 }
23311 },
23312 "id": 1192,
23313 "isConstant": false,
23314 "isLValue": false,
23315 "isPure": false,
23316 "kind": "functionCall",
23317 "lValueRequested": false,
23318 "names": [],
23319 "nodeType": "FunctionCall",
23320 "src": "6258:30:2",
23321 "typeDescriptions": {
23322 "typeIdentifier": "t_bool",
23323 "typeString": "bool"
23324 }
23325 },
23326 "nodeType": "VariableDeclarationStatement",
23327 "src": "6245:43:2"
23328 },
23329 {
23330 "assignments": [
23331 1195
23332 ],
23333 "declarations": [
23334 {
23335 "constant": false,
23336 "id": 1195,
23337 "name": "_totalSupply",
23338 "nodeType": "VariableDeclaration",
23339 "scope": 1333,
23340 "src": "6298:17:2",
23341 "stateVariable": false,
23342 "storageLocation": "default",
23343 "typeDescriptions": {
23344 "typeIdentifier": "t_uint256",
23345 "typeString": "uint256"
23346 },
23347 "typeName": {
23348 "id": 1194,
23349 "name": "uint",
23350 "nodeType": "ElementaryTypeName",
23351 "src": "6298:4:2",
23352 "typeDescriptions": {
23353 "typeIdentifier": "t_uint256",
23354 "typeString": "uint256"
23355 }
23356 },
23357 "value": null,
23358 "visibility": "internal"
23359 }
23360 ],
23361 "id": 1197,
23362 "initialValue": {
23363 "argumentTypes": null,
23364 "id": 1196,
23365 "name": "totalSupply",
23366 "nodeType": "Identifier",
23367 "overloadedDeclarations": [],
23368 "referencedDeclaration": 19,
23369 "src": "6318:11:2",
23370 "typeDescriptions": {
23371 "typeIdentifier": "t_uint256",
23372 "typeString": "uint256"
23373 }
23374 },
23375 "nodeType": "VariableDeclarationStatement",
23376 "src": "6298:31:2"
23377 },
23378 {
23379 "assignments": [
23380 1199
23381 ],
23382 "declarations": [
23383 {
23384 "constant": false,
23385 "id": 1199,
23386 "name": "reserveBase",
23387 "nodeType": "VariableDeclaration",
23388 "scope": 1333,
23389 "src": "6417:19:2",
23390 "stateVariable": false,
23391 "storageLocation": "default",
23392 "typeDescriptions": {
23393 "typeIdentifier": "t_uint112",
23394 "typeString": "uint112"
23395 },
23396 "typeName": {
23397 "id": 1198,
23398 "name": "uint112",
23399 "nodeType": "ElementaryTypeName",
23400 "src": "6417:7:2",
23401 "typeDescriptions": {
23402 "typeIdentifier": "t_uint112",
23403 "typeString": "uint112"
23404 }
23405 },
23406 "value": null,
23407 "visibility": "internal"
23408 }
23409 ],
23410 "id": 1206,
23411 "initialValue": {
23412 "argumentTypes": null,
23413 "condition": {
23414 "argumentTypes": null,
23415 "commonType": {
23416 "typeIdentifier": "t_address",
23417 "typeString": "address"
23418 },
23419 "id": 1202,
23420 "isConstant": false,
23421 "isLValue": false,
23422 "isPure": false,
23423 "lValueRequested": false,
23424 "leftExpression": {
23425 "argumentTypes": null,
23426 "id": 1200,
23427 "name": "token0",
23428 "nodeType": "Identifier",
23429 "overloadedDeclarations": [],
23430 "referencedDeclaration": 631,
23431 "src": "6439:6:2",
23432 "typeDescriptions": {
23433 "typeIdentifier": "t_address",
23434 "typeString": "address"
23435 }
23436 },
23437 "nodeType": "BinaryOperation",
23438 "operator": "==",
23439 "rightExpression": {
23440 "argumentTypes": null,
23441 "id": 1201,
23442 "name": "baseToken",
23443 "nodeType": "Identifier",
23444 "overloadedDeclarations": [],
23445 "referencedDeclaration": 635,
23446 "src": "6449:9:2",
23447 "typeDescriptions": {
23448 "typeIdentifier": "t_address",
23449 "typeString": "address"
23450 }
23451 },
23452 "src": "6439:19:2",
23453 "typeDescriptions": {
23454 "typeIdentifier": "t_bool",
23455 "typeString": "bool"
23456 }
23457 },
23458 "falseExpression": {
23459 "argumentTypes": null,
23460 "id": 1204,
23461 "name": "_reserve1",
23462 "nodeType": "Identifier",
23463 "overloadedDeclarations": [],
23464 "referencedDeclaration": 1147,
23465 "src": "6473:9:2",
23466 "typeDescriptions": {
23467 "typeIdentifier": "t_uint112",
23468 "typeString": "uint112"
23469 }
23470 },
23471 "id": 1205,
23472 "isConstant": false,
23473 "isLValue": false,
23474 "isPure": false,
23475 "lValueRequested": false,
23476 "nodeType": "Conditional",
23477 "src": "6439:43:2",
23478 "trueExpression": {
23479 "argumentTypes": null,
23480 "id": 1203,
23481 "name": "_reserve0",
23482 "nodeType": "Identifier",
23483 "overloadedDeclarations": [],
23484 "referencedDeclaration": 1145,
23485 "src": "6461:9:2",
23486 "typeDescriptions": {
23487 "typeIdentifier": "t_uint112",
23488 "typeString": "uint112"
23489 }
23490 },
23491 "typeDescriptions": {
23492 "typeIdentifier": "t_uint112",
23493 "typeString": "uint112"
23494 }
23495 },
23496 "nodeType": "VariableDeclarationStatement",
23497 "src": "6417:65:2"
23498 },
23499 {
23500 "assignments": [
23501 1208
23502 ],
23503 "declarations": [
23504 {
23505 "constant": false,
23506 "id": 1208,
23507 "name": "reserveQuote",
23508 "nodeType": "VariableDeclaration",
23509 "scope": 1333,
23510 "src": "6492:20:2",
23511 "stateVariable": false,
23512 "storageLocation": "default",
23513 "typeDescriptions": {
23514 "typeIdentifier": "t_uint112",
23515 "typeString": "uint112"
23516 },
23517 "typeName": {
23518 "id": 1207,
23519 "name": "uint112",
23520 "nodeType": "ElementaryTypeName",
23521 "src": "6492:7:2",
23522 "typeDescriptions": {
23523 "typeIdentifier": "t_uint112",
23524 "typeString": "uint112"
23525 }
23526 },
23527 "value": null,
23528 "visibility": "internal"
23529 }
23530 ],
23531 "id": 1215,
23532 "initialValue": {
23533 "argumentTypes": null,
23534 "condition": {
23535 "argumentTypes": null,
23536 "commonType": {
23537 "typeIdentifier": "t_address",
23538 "typeString": "address"
23539 },
23540 "id": 1211,
23541 "isConstant": false,
23542 "isLValue": false,
23543 "isPure": false,
23544 "lValueRequested": false,
23545 "leftExpression": {
23546 "argumentTypes": null,
23547 "id": 1209,
23548 "name": "token0",
23549 "nodeType": "Identifier",
23550 "overloadedDeclarations": [],
23551 "referencedDeclaration": 631,
23552 "src": "6515:6:2",
23553 "typeDescriptions": {
23554 "typeIdentifier": "t_address",
23555 "typeString": "address"
23556 }
23557 },
23558 "nodeType": "BinaryOperation",
23559 "operator": "==",
23560 "rightExpression": {
23561 "argumentTypes": null,
23562 "id": 1210,
23563 "name": "baseToken",
23564 "nodeType": "Identifier",
23565 "overloadedDeclarations": [],
23566 "referencedDeclaration": 635,
23567 "src": "6525:9:2",
23568 "typeDescriptions": {
23569 "typeIdentifier": "t_address",
23570 "typeString": "address"
23571 }
23572 },
23573 "src": "6515:19:2",
23574 "typeDescriptions": {
23575 "typeIdentifier": "t_bool",
23576 "typeString": "bool"
23577 }
23578 },
23579 "falseExpression": {
23580 "argumentTypes": null,
23581 "id": 1213,
23582 "name": "_reserve0",
23583 "nodeType": "Identifier",
23584 "overloadedDeclarations": [],
23585 "referencedDeclaration": 1145,
23586 "src": "6549:9:2",
23587 "typeDescriptions": {
23588 "typeIdentifier": "t_uint112",
23589 "typeString": "uint112"
23590 }
23591 },
23592 "id": 1214,
23593 "isConstant": false,
23594 "isLValue": false,
23595 "isPure": false,
23596 "lValueRequested": false,
23597 "nodeType": "Conditional",
23598 "src": "6515:43:2",
23599 "trueExpression": {
23600 "argumentTypes": null,
23601 "id": 1212,
23602 "name": "_reserve1",
23603 "nodeType": "Identifier",
23604 "overloadedDeclarations": [],
23605 "referencedDeclaration": 1147,
23606 "src": "6537:9:2",
23607 "typeDescriptions": {
23608 "typeIdentifier": "t_uint112",
23609 "typeString": "uint112"
23610 }
23611 },
23612 "typeDescriptions": {
23613 "typeIdentifier": "t_uint112",
23614 "typeString": "uint112"
23615 }
23616 },
23617 "nodeType": "VariableDeclarationStatement",
23618 "src": "6492:66:2"
23619 },
23620 {
23621 "assignments": [
23622 1217
23623 ],
23624 "declarations": [
23625 {
23626 "constant": false,
23627 "id": 1217,
23628 "name": "slope",
23629 "nodeType": "VariableDeclaration",
23630 "scope": 1333,
23631 "src": "6568:10:2",
23632 "stateVariable": false,
23633 "storageLocation": "default",
23634 "typeDescriptions": {
23635 "typeIdentifier": "t_uint256",
23636 "typeString": "uint256"
23637 },
23638 "typeName": {
23639 "id": 1216,
23640 "name": "uint",
23641 "nodeType": "ElementaryTypeName",
23642 "src": "6568:4:2",
23643 "typeDescriptions": {
23644 "typeIdentifier": "t_uint256",
23645 "typeString": "uint256"
23646 }
23647 },
23648 "value": null,
23649 "visibility": "internal"
23650 }
23651 ],
23652 "id": 1221,
23653 "initialValue": {
23654 "argumentTypes": null,
23655 "commonType": {
23656 "typeIdentifier": "t_uint256",
23657 "typeString": "uint256"
23658 },
23659 "id": 1220,
23660 "isConstant": false,
23661 "isLValue": false,
23662 "isPure": false,
23663 "lValueRequested": false,
23664 "leftExpression": {
23665 "argumentTypes": null,
23666 "id": 1218,
23667 "name": "m",
23668 "nodeType": "Identifier",
23669 "overloadedDeclarations": [],
23670 "referencedDeclaration": 639,
23671 "src": "6581:1:2",
23672 "typeDescriptions": {
23673 "typeIdentifier": "t_uint256",
23674 "typeString": "uint256"
23675 }
23676 },
23677 "nodeType": "BinaryOperation",
23678 "operator": "/",
23679 "rightExpression": {
23680 "argumentTypes": null,
23681 "hexValue": "31303030",
23682 "id": 1219,
23683 "isConstant": false,
23684 "isLValue": false,
23685 "isPure": true,
23686 "kind": "number",
23687 "lValueRequested": false,
23688 "nodeType": "Literal",
23689 "src": "6585:4:2",
23690 "subdenomination": null,
23691 "typeDescriptions": {
23692 "typeIdentifier": "t_rational_1000_by_1",
23693 "typeString": "int_const 1000"
23694 },
23695 "value": "1000"
23696 },
23697 "src": "6581:8:2",
23698 "typeDescriptions": {
23699 "typeIdentifier": "t_uint256",
23700 "typeString": "uint256"
23701 }
23702 },
23703 "nodeType": "VariableDeclarationStatement",
23704 "src": "6568:21:2"
23705 },
23706 {
23707 "assignments": [
23708 1223
23709 ],
23710 "declarations": [
23711 {
23712 "constant": false,
23713 "id": 1223,
23714 "name": "liquidityBase",
23715 "nodeType": "VariableDeclaration",
23716 "scope": 1333,
23717 "src": "6599:18:2",
23718 "stateVariable": false,
23719 "storageLocation": "default",
23720 "typeDescriptions": {
23721 "typeIdentifier": "t_uint256",
23722 "typeString": "uint256"
23723 },
23724 "typeName": {
23725 "id": 1222,
23726 "name": "uint",
23727 "nodeType": "ElementaryTypeName",
23728 "src": "6599:4:2",
23729 "typeDescriptions": {
23730 "typeIdentifier": "t_uint256",
23731 "typeString": "uint256"
23732 }
23733 },
23734 "value": null,
23735 "visibility": "internal"
23736 }
23737 ],
23738 "id": 1230,
23739 "initialValue": {
23740 "argumentTypes": null,
23741 "condition": {
23742 "argumentTypes": null,
23743 "commonType": {
23744 "typeIdentifier": "t_address",
23745 "typeString": "address"
23746 },
23747 "id": 1226,
23748 "isConstant": false,
23749 "isLValue": false,
23750 "isPure": false,
23751 "lValueRequested": false,
23752 "leftExpression": {
23753 "argumentTypes": null,
23754 "id": 1224,
23755 "name": "token0",
23756 "nodeType": "Identifier",
23757 "overloadedDeclarations": [],
23758 "referencedDeclaration": 631,
23759 "src": "6620:6:2",
23760 "typeDescriptions": {
23761 "typeIdentifier": "t_address",
23762 "typeString": "address"
23763 }
23764 },
23765 "nodeType": "BinaryOperation",
23766 "operator": "==",
23767 "rightExpression": {
23768 "argumentTypes": null,
23769 "id": 1225,
23770 "name": "baseToken",
23771 "nodeType": "Identifier",
23772 "overloadedDeclarations": [],
23773 "referencedDeclaration": 635,
23774 "src": "6630:9:2",
23775 "typeDescriptions": {
23776 "typeIdentifier": "t_address",
23777 "typeString": "address"
23778 }
23779 },
23780 "src": "6620:19:2",
23781 "typeDescriptions": {
23782 "typeIdentifier": "t_bool",
23783 "typeString": "bool"
23784 }
23785 },
23786 "falseExpression": {
23787 "argumentTypes": null,
23788 "id": 1228,
23789 "name": "amount1",
23790 "nodeType": "Identifier",
23791 "overloadedDeclarations": [],
23792 "referencedDeclaration": 1181,
23793 "src": "6652:7:2",
23794 "typeDescriptions": {
23795 "typeIdentifier": "t_uint256",
23796 "typeString": "uint256"
23797 }
23798 },
23799 "id": 1229,
23800 "isConstant": false,
23801 "isLValue": false,
23802 "isPure": false,
23803 "lValueRequested": false,
23804 "nodeType": "Conditional",
23805 "src": "6620:39:2",
23806 "trueExpression": {
23807 "argumentTypes": null,
23808 "id": 1227,
23809 "name": "amount0",
23810 "nodeType": "Identifier",
23811 "overloadedDeclarations": [],
23812 "referencedDeclaration": 1174,
23813 "src": "6642:7:2",
23814 "typeDescriptions": {
23815 "typeIdentifier": "t_uint256",
23816 "typeString": "uint256"
23817 }
23818 },
23819 "typeDescriptions": {
23820 "typeIdentifier": "t_uint256",
23821 "typeString": "uint256"
23822 }
23823 },
23824 "nodeType": "VariableDeclarationStatement",
23825 "src": "6599:60:2"
23826 },
23827 {
23828 "assignments": [
23829 1232
23830 ],
23831 "declarations": [
23832 {
23833 "constant": false,
23834 "id": 1232,
23835 "name": "liquidityQuote",
23836 "nodeType": "VariableDeclaration",
23837 "scope": 1333,
23838 "src": "6669:19:2",
23839 "stateVariable": false,
23840 "storageLocation": "default",
23841 "typeDescriptions": {
23842 "typeIdentifier": "t_uint256",
23843 "typeString": "uint256"
23844 },
23845 "typeName": {
23846 "id": 1231,
23847 "name": "uint",
23848 "nodeType": "ElementaryTypeName",
23849 "src": "6669:4:2",
23850 "typeDescriptions": {
23851 "typeIdentifier": "t_uint256",
23852 "typeString": "uint256"
23853 }
23854 },
23855 "value": null,
23856 "visibility": "internal"
23857 }
23858 ],
23859 "id": 1251,
23860 "initialValue": {
23861 "argumentTypes": null,
23862 "condition": {
23863 "argumentTypes": null,
23864 "commonType": {
23865 "typeIdentifier": "t_address",
23866 "typeString": "address"
23867 },
23868 "id": 1235,
23869 "isConstant": false,
23870 "isLValue": false,
23871 "isPure": false,
23872 "lValueRequested": false,
23873 "leftExpression": {
23874 "argumentTypes": null,
23875 "id": 1233,
23876 "name": "token0",
23877 "nodeType": "Identifier",
23878 "overloadedDeclarations": [],
23879 "referencedDeclaration": 631,
23880 "src": "6691:6:2",
23881 "typeDescriptions": {
23882 "typeIdentifier": "t_address",
23883 "typeString": "address"
23884 }
23885 },
23886 "nodeType": "BinaryOperation",
23887 "operator": "==",
23888 "rightExpression": {
23889 "argumentTypes": null,
23890 "id": 1234,
23891 "name": "baseToken",
23892 "nodeType": "Identifier",
23893 "overloadedDeclarations": [],
23894 "referencedDeclaration": 635,
23895 "src": "6701:9:2",
23896 "typeDescriptions": {
23897 "typeIdentifier": "t_address",
23898 "typeString": "address"
23899 }
23900 },
23901 "src": "6691:19:2",
23902 "typeDescriptions": {
23903 "typeIdentifier": "t_bool",
23904 "typeString": "bool"
23905 }
23906 },
23907 "falseExpression": {
23908 "argumentTypes": null,
23909 "components": [
23910 {
23911 "argumentTypes": null,
23912 "commonType": {
23913 "typeIdentifier": "t_uint256",
23914 "typeString": "uint256"
23915 },
23916 "id": 1248,
23917 "isConstant": false,
23918 "isLValue": false,
23919 "isPure": false,
23920 "lValueRequested": false,
23921 "leftExpression": {
23922 "argumentTypes": null,
23923 "id": 1243,
23924 "name": "slope",
23925 "nodeType": "Identifier",
23926 "overloadedDeclarations": [],
23927 "referencedDeclaration": 1217,
23928 "src": "6741:5:2",
23929 "typeDescriptions": {
23930 "typeIdentifier": "t_uint256",
23931 "typeString": "uint256"
23932 }
23933 },
23934 "nodeType": "BinaryOperation",
23935 "operator": "*",
23936 "rightExpression": {
23937 "argumentTypes": null,
23938 "components": [
23939 {
23940 "argumentTypes": null,
23941 "commonType": {
23942 "typeIdentifier": "t_uint256",
23943 "typeString": "uint256"
23944 },
23945 "id": 1246,
23946 "isConstant": false,
23947 "isLValue": false,
23948 "isPure": false,
23949 "lValueRequested": false,
23950 "leftExpression": {
23951 "argumentTypes": null,
23952 "id": 1244,
23953 "name": "amount0",
23954 "nodeType": "Identifier",
23955 "overloadedDeclarations": [],
23956 "referencedDeclaration": 1174,
23957 "src": "6750:7:2",
23958 "typeDescriptions": {
23959 "typeIdentifier": "t_uint256",
23960 "typeString": "uint256"
23961 }
23962 },
23963 "nodeType": "BinaryOperation",
23964 "operator": "**",
23965 "rightExpression": {
23966 "argumentTypes": null,
23967 "id": 1245,
23968 "name": "n",
23969 "nodeType": "Identifier",
23970 "overloadedDeclarations": [],
23971 "referencedDeclaration": 641,
23972 "src": "6761:1:2",
23973 "typeDescriptions": {
23974 "typeIdentifier": "t_uint256",
23975 "typeString": "uint256"
23976 }
23977 },
23978 "src": "6750:12:2",
23979 "typeDescriptions": {
23980 "typeIdentifier": "t_uint256",
23981 "typeString": "uint256"
23982 }
23983 }
23984 ],
23985 "id": 1247,
23986 "isConstant": false,
23987 "isInlineArray": false,
23988 "isLValue": false,
23989 "isPure": false,
23990 "lValueRequested": false,
23991 "nodeType": "TupleExpression",
23992 "src": "6749:14:2",
23993 "typeDescriptions": {
23994 "typeIdentifier": "t_uint256",
23995 "typeString": "uint256"
23996 }
23997 },
23998 "src": "6741:22:2",
23999 "typeDescriptions": {
24000 "typeIdentifier": "t_uint256",
24001 "typeString": "uint256"
24002 }
24003 }
24004 ],
24005 "id": 1249,
24006 "isConstant": false,
24007 "isInlineArray": false,
24008 "isLValue": false,
24009 "isPure": false,
24010 "lValueRequested": false,
24011 "nodeType": "TupleExpression",
24012 "src": "6740:24:2",
24013 "typeDescriptions": {
24014 "typeIdentifier": "t_uint256",
24015 "typeString": "uint256"
24016 }
24017 },
24018 "id": 1250,
24019 "isConstant": false,
24020 "isLValue": false,
24021 "isPure": false,
24022 "lValueRequested": false,
24023 "nodeType": "Conditional",
24024 "src": "6691:73:2",
24025 "trueExpression": {
24026 "argumentTypes": null,
24027 "components": [
24028 {
24029 "argumentTypes": null,
24030 "commonType": {
24031 "typeIdentifier": "t_uint256",
24032 "typeString": "uint256"
24033 },
24034 "id": 1241,
24035 "isConstant": false,
24036 "isLValue": false,
24037 "isPure": false,
24038 "lValueRequested": false,
24039 "leftExpression": {
24040 "argumentTypes": null,
24041 "id": 1236,
24042 "name": "slope",
24043 "nodeType": "Identifier",
24044 "overloadedDeclarations": [],
24045 "referencedDeclaration": 1217,
24046 "src": "6714:5:2",
24047 "typeDescriptions": {
24048 "typeIdentifier": "t_uint256",
24049 "typeString": "uint256"
24050 }
24051 },
24052 "nodeType": "BinaryOperation",
24053 "operator": "*",
24054 "rightExpression": {
24055 "argumentTypes": null,
24056 "components": [
24057 {
24058 "argumentTypes": null,
24059 "commonType": {
24060 "typeIdentifier": "t_uint256",
24061 "typeString": "uint256"
24062 },
24063 "id": 1239,
24064 "isConstant": false,
24065 "isLValue": false,
24066 "isPure": false,
24067 "lValueRequested": false,
24068 "leftExpression": {
24069 "argumentTypes": null,
24070 "id": 1237,
24071 "name": "amount1",
24072 "nodeType": "Identifier",
24073 "overloadedDeclarations": [],
24074 "referencedDeclaration": 1181,
24075 "src": "6723:7:2",
24076 "typeDescriptions": {
24077 "typeIdentifier": "t_uint256",
24078 "typeString": "uint256"
24079 }
24080 },
24081 "nodeType": "BinaryOperation",
24082 "operator": "**",
24083 "rightExpression": {
24084 "argumentTypes": null,
24085 "id": 1238,
24086 "name": "n",
24087 "nodeType": "Identifier",
24088 "overloadedDeclarations": [],
24089 "referencedDeclaration": 641,
24090 "src": "6734:1:2",
24091 "typeDescriptions": {
24092 "typeIdentifier": "t_uint256",
24093 "typeString": "uint256"
24094 }
24095 },
24096 "src": "6723:12:2",
24097 "typeDescriptions": {
24098 "typeIdentifier": "t_uint256",
24099 "typeString": "uint256"
24100 }
24101 }
24102 ],
24103 "id": 1240,
24104 "isConstant": false,
24105 "isInlineArray": false,
24106 "isLValue": false,
24107 "isPure": false,
24108 "lValueRequested": false,
24109 "nodeType": "TupleExpression",
24110 "src": "6722:14:2",
24111 "typeDescriptions": {
24112 "typeIdentifier": "t_uint256",
24113 "typeString": "uint256"
24114 }
24115 },
24116 "src": "6714:22:2",
24117 "typeDescriptions": {
24118 "typeIdentifier": "t_uint256",
24119 "typeString": "uint256"
24120 }
24121 }
24122 ],
24123 "id": 1242,
24124 "isConstant": false,
24125 "isInlineArray": false,
24126 "isLValue": false,
24127 "isPure": false,
24128 "lValueRequested": false,
24129 "nodeType": "TupleExpression",
24130 "src": "6713:24:2",
24131 "typeDescriptions": {
24132 "typeIdentifier": "t_uint256",
24133 "typeString": "uint256"
24134 }
24135 },
24136 "typeDescriptions": {
24137 "typeIdentifier": "t_uint256",
24138 "typeString": "uint256"
24139 }
24140 },
24141 "nodeType": "VariableDeclarationStatement",
24142 "src": "6669:95:2"
24143 },
24144 {
24145 "condition": {
24146 "argumentTypes": null,
24147 "commonType": {
24148 "typeIdentifier": "t_uint256",
24149 "typeString": "uint256"
24150 },
24151 "id": 1254,
24152 "isConstant": false,
24153 "isLValue": false,
24154 "isPure": false,
24155 "lValueRequested": false,
24156 "leftExpression": {
24157 "argumentTypes": null,
24158 "id": 1252,
24159 "name": "_totalSupply",
24160 "nodeType": "Identifier",
24161 "overloadedDeclarations": [],
24162 "referencedDeclaration": 1195,
24163 "src": "6779:12:2",
24164 "typeDescriptions": {
24165 "typeIdentifier": "t_uint256",
24166 "typeString": "uint256"
24167 }
24168 },
24169 "nodeType": "BinaryOperation",
24170 "operator": "==",
24171 "rightExpression": {
24172 "argumentTypes": null,
24173 "hexValue": "30",
24174 "id": 1253,
24175 "isConstant": false,
24176 "isLValue": false,
24177 "isPure": true,
24178 "kind": "number",
24179 "lValueRequested": false,
24180 "nodeType": "Literal",
24181 "src": "6795:1:2",
24182 "subdenomination": null,
24183 "typeDescriptions": {
24184 "typeIdentifier": "t_rational_0_by_1",
24185 "typeString": "int_const 0"
24186 },
24187 "value": "0"
24188 },
24189 "src": "6779:17:2",
24190 "typeDescriptions": {
24191 "typeIdentifier": "t_bool",
24192 "typeString": "bool"
24193 }
24194 },
24195 "falseBody": {
24196 "id": 1294,
24197 "nodeType": "Block",
24198 "src": "7012:141:2",
24199 "statements": [
24200 {
24201 "expression": {
24202 "argumentTypes": null,
24203 "id": 1292,
24204 "isConstant": false,
24205 "isLValue": false,
24206 "isPure": false,
24207 "lValueRequested": false,
24208 "leftHandSide": {
24209 "argumentTypes": null,
24210 "id": 1276,
24211 "name": "liquidity",
24212 "nodeType": "Identifier",
24213 "overloadedDeclarations": [],
24214 "referencedDeclaration": 1142,
24215 "src": "7026:9:2",
24216 "typeDescriptions": {
24217 "typeIdentifier": "t_uint256",
24218 "typeString": "uint256"
24219 }
24220 },
24221 "nodeType": "Assignment",
24222 "operator": "=",
24223 "rightHandSide": {
24224 "argumentTypes": null,
24225 "arguments": [
24226 {
24227 "argumentTypes": null,
24228 "commonType": {
24229 "typeIdentifier": "t_uint256",
24230 "typeString": "uint256"
24231 },
24232 "id": 1284,
24233 "isConstant": false,
24234 "isLValue": false,
24235 "isPure": false,
24236 "lValueRequested": false,
24237 "leftExpression": {
24238 "argumentTypes": null,
24239 "arguments": [
24240 {
24241 "argumentTypes": null,
24242 "id": 1281,
24243 "name": "_totalSupply",
24244 "nodeType": "Identifier",
24245 "overloadedDeclarations": [],
24246 "referencedDeclaration": 1195,
24247 "src": "7065:12:2",
24248 "typeDescriptions": {
24249 "typeIdentifier": "t_uint256",
24250 "typeString": "uint256"
24251 }
24252 }
24253 ],
24254 "expression": {
24255 "argumentTypes": [
24256 {
24257 "typeIdentifier": "t_uint256",
24258 "typeString": "uint256"
24259 }
24260 ],
24261 "expression": {
24262 "argumentTypes": null,
24263 "id": 1279,
24264 "name": "liquidityBase",
24265 "nodeType": "Identifier",
24266 "overloadedDeclarations": [],
24267 "referencedDeclaration": 1223,
24268 "src": "7047:13:2",
24269 "typeDescriptions": {
24270 "typeIdentifier": "t_uint256",
24271 "typeString": "uint256"
24272 }
24273 },
24274 "id": 1280,
24275 "isConstant": false,
24276 "isLValue": false,
24277 "isPure": false,
24278 "lValueRequested": false,
24279 "memberName": "mul",
24280 "nodeType": "MemberAccess",
24281 "referencedDeclaration": 2541,
24282 "src": "7047:17:2",
24283 "typeDescriptions": {
24284 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
24285 "typeString": "function (uint256,uint256) pure returns (uint256)"
24286 }
24287 },
24288 "id": 1282,
24289 "isConstant": false,
24290 "isLValue": false,
24291 "isPure": false,
24292 "kind": "functionCall",
24293 "lValueRequested": false,
24294 "names": [],
24295 "nodeType": "FunctionCall",
24296 "src": "7047:31:2",
24297 "typeDescriptions": {
24298 "typeIdentifier": "t_uint256",
24299 "typeString": "uint256"
24300 }
24301 },
24302 "nodeType": "BinaryOperation",
24303 "operator": "/",
24304 "rightExpression": {
24305 "argumentTypes": null,
24306 "id": 1283,
24307 "name": "reserveBase",
24308 "nodeType": "Identifier",
24309 "overloadedDeclarations": [],
24310 "referencedDeclaration": 1199,
24311 "src": "7081:11:2",
24312 "typeDescriptions": {
24313 "typeIdentifier": "t_uint112",
24314 "typeString": "uint112"
24315 }
24316 },
24317 "src": "7047:45:2",
24318 "typeDescriptions": {
24319 "typeIdentifier": "t_uint256",
24320 "typeString": "uint256"
24321 }
24322 },
24323 {
24324 "argumentTypes": null,
24325 "commonType": {
24326 "typeIdentifier": "t_uint256",
24327 "typeString": "uint256"
24328 },
24329 "id": 1290,
24330 "isConstant": false,
24331 "isLValue": false,
24332 "isPure": false,
24333 "lValueRequested": false,
24334 "leftExpression": {
24335 "argumentTypes": null,
24336 "arguments": [
24337 {
24338 "argumentTypes": null,
24339 "id": 1287,
24340 "name": "_totalSupply",
24341 "nodeType": "Identifier",
24342 "overloadedDeclarations": [],
24343 "referencedDeclaration": 1195,
24344 "src": "7113:12:2",
24345 "typeDescriptions": {
24346 "typeIdentifier": "t_uint256",
24347 "typeString": "uint256"
24348 }
24349 }
24350 ],
24351 "expression": {
24352 "argumentTypes": [
24353 {
24354 "typeIdentifier": "t_uint256",
24355 "typeString": "uint256"
24356 }
24357 ],
24358 "expression": {
24359 "argumentTypes": null,
24360 "id": 1285,
24361 "name": "liquidityQuote",
24362 "nodeType": "Identifier",
24363 "overloadedDeclarations": [],
24364 "referencedDeclaration": 1232,
24365 "src": "7094:14:2",
24366 "typeDescriptions": {
24367 "typeIdentifier": "t_uint256",
24368 "typeString": "uint256"
24369 }
24370 },
24371 "id": 1286,
24372 "isConstant": false,
24373 "isLValue": false,
24374 "isPure": false,
24375 "lValueRequested": false,
24376 "memberName": "mul",
24377 "nodeType": "MemberAccess",
24378 "referencedDeclaration": 2541,
24379 "src": "7094:18:2",
24380 "typeDescriptions": {
24381 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
24382 "typeString": "function (uint256,uint256) pure returns (uint256)"
24383 }
24384 },
24385 "id": 1288,
24386 "isConstant": false,
24387 "isLValue": false,
24388 "isPure": false,
24389 "kind": "functionCall",
24390 "lValueRequested": false,
24391 "names": [],
24392 "nodeType": "FunctionCall",
24393 "src": "7094:32:2",
24394 "typeDescriptions": {
24395 "typeIdentifier": "t_uint256",
24396 "typeString": "uint256"
24397 }
24398 },
24399 "nodeType": "BinaryOperation",
24400 "operator": "/",
24401 "rightExpression": {
24402 "argumentTypes": null,
24403 "id": 1289,
24404 "name": "reserveQuote",
24405 "nodeType": "Identifier",
24406 "overloadedDeclarations": [],
24407 "referencedDeclaration": 1208,
24408 "src": "7129:12:2",
24409 "typeDescriptions": {
24410 "typeIdentifier": "t_uint112",
24411 "typeString": "uint112"
24412 }
24413 },
24414 "src": "7094:47:2",
24415 "typeDescriptions": {
24416 "typeIdentifier": "t_uint256",
24417 "typeString": "uint256"
24418 }
24419 }
24420 ],
24421 "expression": {
24422 "argumentTypes": [
24423 {
24424 "typeIdentifier": "t_uint256",
24425 "typeString": "uint256"
24426 },
24427 {
24428 "typeIdentifier": "t_uint256",
24429 "typeString": "uint256"
24430 }
24431 ],
24432 "expression": {
24433 "argumentTypes": null,
24434 "id": 1277,
24435 "name": "Math",
24436 "nodeType": "Identifier",
24437 "overloadedDeclarations": [],
24438 "referencedDeclaration": 2467,
24439 "src": "7038:4:2",
24440 "typeDescriptions": {
24441 "typeIdentifier": "t_type$_t_contract$_Math_$2467_$",
24442 "typeString": "type(library Math)"
24443 }
24444 },
24445 "id": 1278,
24446 "isConstant": false,
24447 "isLValue": false,
24448 "isPure": false,
24449 "lValueRequested": false,
24450 "memberName": "min",
24451 "nodeType": "MemberAccess",
24452 "referencedDeclaration": 2412,
24453 "src": "7038:8:2",
24454 "typeDescriptions": {
24455 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
24456 "typeString": "function (uint256,uint256) pure returns (uint256)"
24457 }
24458 },
24459 "id": 1291,
24460 "isConstant": false,
24461 "isLValue": false,
24462 "isPure": false,
24463 "kind": "functionCall",
24464 "lValueRequested": false,
24465 "names": [],
24466 "nodeType": "FunctionCall",
24467 "src": "7038:104:2",
24468 "typeDescriptions": {
24469 "typeIdentifier": "t_uint256",
24470 "typeString": "uint256"
24471 }
24472 },
24473 "src": "7026:116:2",
24474 "typeDescriptions": {
24475 "typeIdentifier": "t_uint256",
24476 "typeString": "uint256"
24477 }
24478 },
24479 "id": 1293,
24480 "nodeType": "ExpressionStatement",
24481 "src": "7026:116:2"
24482 }
24483 ]
24484 },
24485 "id": 1295,
24486 "nodeType": "IfStatement",
24487 "src": "6775:378:2",
24488 "trueBody": {
24489 "id": 1275,
24490 "nodeType": "Block",
24491 "src": "6798:208:2",
24492 "statements": [
24493 {
24494 "expression": {
24495 "argumentTypes": null,
24496 "id": 1266,
24497 "isConstant": false,
24498 "isLValue": false,
24499 "isPure": false,
24500 "lValueRequested": false,
24501 "leftHandSide": {
24502 "argumentTypes": null,
24503 "id": 1255,
24504 "name": "liquidity",
24505 "nodeType": "Identifier",
24506 "overloadedDeclarations": [],
24507 "referencedDeclaration": 1142,
24508 "src": "6812:9:2",
24509 "typeDescriptions": {
24510 "typeIdentifier": "t_uint256",
24511 "typeString": "uint256"
24512 }
24513 },
24514 "nodeType": "Assignment",
24515 "operator": "=",
24516 "rightHandSide": {
24517 "argumentTypes": null,
24518 "arguments": [
24519 {
24520 "argumentTypes": null,
24521 "id": 1264,
24522 "name": "MINIMUM_LIQUIDITY",
24523 "nodeType": "Identifier",
24524 "overloadedDeclarations": [],
24525 "referencedDeclaration": 618,
24526 "src": "6873:17:2",
24527 "typeDescriptions": {
24528 "typeIdentifier": "t_uint256",
24529 "typeString": "uint256"
24530 }
24531 }
24532 ],
24533 "expression": {
24534 "argumentTypes": [
24535 {
24536 "typeIdentifier": "t_uint256",
24537 "typeString": "uint256"
24538 }
24539 ],
24540 "expression": {
24541 "argumentTypes": null,
24542 "arguments": [
24543 {
24544 "argumentTypes": null,
24545 "arguments": [
24546 {
24547 "argumentTypes": null,
24548 "id": 1260,
24549 "name": "liquidityQuote",
24550 "nodeType": "Identifier",
24551 "overloadedDeclarations": [],
24552 "referencedDeclaration": 1232,
24553 "src": "6852:14:2",
24554 "typeDescriptions": {
24555 "typeIdentifier": "t_uint256",
24556 "typeString": "uint256"
24557 }
24558 }
24559 ],
24560 "expression": {
24561 "argumentTypes": [
24562 {
24563 "typeIdentifier": "t_uint256",
24564 "typeString": "uint256"
24565 }
24566 ],
24567 "expression": {
24568 "argumentTypes": null,
24569 "id": 1258,
24570 "name": "liquidityBase",
24571 "nodeType": "Identifier",
24572 "overloadedDeclarations": [],
24573 "referencedDeclaration": 1223,
24574 "src": "6834:13:2",
24575 "typeDescriptions": {
24576 "typeIdentifier": "t_uint256",
24577 "typeString": "uint256"
24578 }
24579 },
24580 "id": 1259,
24581 "isConstant": false,
24582 "isLValue": false,
24583 "isPure": false,
24584 "lValueRequested": false,
24585 "memberName": "mul",
24586 "nodeType": "MemberAccess",
24587 "referencedDeclaration": 2541,
24588 "src": "6834:17:2",
24589 "typeDescriptions": {
24590 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
24591 "typeString": "function (uint256,uint256) pure returns (uint256)"
24592 }
24593 },
24594 "id": 1261,
24595 "isConstant": false,
24596 "isLValue": false,
24597 "isPure": false,
24598 "kind": "functionCall",
24599 "lValueRequested": false,
24600 "names": [],
24601 "nodeType": "FunctionCall",
24602 "src": "6834:33:2",
24603 "typeDescriptions": {
24604 "typeIdentifier": "t_uint256",
24605 "typeString": "uint256"
24606 }
24607 }
24608 ],
24609 "expression": {
24610 "argumentTypes": [
24611 {
24612 "typeIdentifier": "t_uint256",
24613 "typeString": "uint256"
24614 }
24615 ],
24616 "expression": {
24617 "argumentTypes": null,
24618 "id": 1256,
24619 "name": "Math",
24620 "nodeType": "Identifier",
24621 "overloadedDeclarations": [],
24622 "referencedDeclaration": 2467,
24623 "src": "6824:4:2",
24624 "typeDescriptions": {
24625 "typeIdentifier": "t_type$_t_contract$_Math_$2467_$",
24626 "typeString": "type(library Math)"
24627 }
24628 },
24629 "id": 1257,
24630 "isConstant": false,
24631 "isLValue": false,
24632 "isPure": false,
24633 "lValueRequested": false,
24634 "memberName": "sqrt",
24635 "nodeType": "MemberAccess",
24636 "referencedDeclaration": 2466,
24637 "src": "6824:9:2",
24638 "typeDescriptions": {
24639 "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
24640 "typeString": "function (uint256) pure returns (uint256)"
24641 }
24642 },
24643 "id": 1262,
24644 "isConstant": false,
24645 "isLValue": false,
24646 "isPure": false,
24647 "kind": "functionCall",
24648 "lValueRequested": false,
24649 "names": [],
24650 "nodeType": "FunctionCall",
24651 "src": "6824:44:2",
24652 "typeDescriptions": {
24653 "typeIdentifier": "t_uint256",
24654 "typeString": "uint256"
24655 }
24656 },
24657 "id": 1263,
24658 "isConstant": false,
24659 "isLValue": false,
24660 "isPure": false,
24661 "lValueRequested": false,
24662 "memberName": "sub",
24663 "nodeType": "MemberAccess",
24664 "referencedDeclaration": 2513,
24665 "src": "6824:48:2",
24666 "typeDescriptions": {
24667 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
24668 "typeString": "function (uint256,uint256) pure returns (uint256)"
24669 }
24670 },
24671 "id": 1265,
24672 "isConstant": false,
24673 "isLValue": false,
24674 "isPure": false,
24675 "kind": "functionCall",
24676 "lValueRequested": false,
24677 "names": [],
24678 "nodeType": "FunctionCall",
24679 "src": "6824:67:2",
24680 "typeDescriptions": {
24681 "typeIdentifier": "t_uint256",
24682 "typeString": "uint256"
24683 }
24684 },
24685 "src": "6812:79:2",
24686 "typeDescriptions": {
24687 "typeIdentifier": "t_uint256",
24688 "typeString": "uint256"
24689 }
24690 },
24691 "id": 1267,
24692 "nodeType": "ExpressionStatement",
24693 "src": "6812:79:2"
24694 },
24695 {
24696 "expression": {
24697 "argumentTypes": null,
24698 "arguments": [
24699 {
24700 "argumentTypes": null,
24701 "arguments": [
24702 {
24703 "argumentTypes": null,
24704 "hexValue": "30",
24705 "id": 1270,
24706 "isConstant": false,
24707 "isLValue": false,
24708 "isPure": true,
24709 "kind": "number",
24710 "lValueRequested": false,
24711 "nodeType": "Literal",
24712 "src": "6918:1:2",
24713 "subdenomination": null,
24714 "typeDescriptions": {
24715 "typeIdentifier": "t_rational_0_by_1",
24716 "typeString": "int_const 0"
24717 },
24718 "value": "0"
24719 }
24720 ],
24721 "expression": {
24722 "argumentTypes": [
24723 {
24724 "typeIdentifier": "t_rational_0_by_1",
24725 "typeString": "int_const 0"
24726 }
24727 ],
24728 "id": 1269,
24729 "isConstant": false,
24730 "isLValue": false,
24731 "isPure": true,
24732 "lValueRequested": false,
24733 "nodeType": "ElementaryTypeNameExpression",
24734 "src": "6910:7:2",
24735 "typeDescriptions": {
24736 "typeIdentifier": "t_type$_t_address_$",
24737 "typeString": "type(address)"
24738 },
24739 "typeName": "address"
24740 },
24741 "id": 1271,
24742 "isConstant": false,
24743 "isLValue": false,
24744 "isPure": true,
24745 "kind": "typeConversion",
24746 "lValueRequested": false,
24747 "names": [],
24748 "nodeType": "FunctionCall",
24749 "src": "6910:10:2",
24750 "typeDescriptions": {
24751 "typeIdentifier": "t_address_payable",
24752 "typeString": "address payable"
24753 }
24754 },
24755 {
24756 "argumentTypes": null,
24757 "id": 1272,
24758 "name": "MINIMUM_LIQUIDITY",
24759 "nodeType": "Identifier",
24760 "overloadedDeclarations": [],
24761 "referencedDeclaration": 618,
24762 "src": "6922:17:2",
24763 "typeDescriptions": {
24764 "typeIdentifier": "t_uint256",
24765 "typeString": "uint256"
24766 }
24767 }
24768 ],
24769 "expression": {
24770 "argumentTypes": [
24771 {
24772 "typeIdentifier": "t_address_payable",
24773 "typeString": "address payable"
24774 },
24775 {
24776 "typeIdentifier": "t_uint256",
24777 "typeString": "uint256"
24778 }
24779 ],
24780 "id": 1268,
24781 "name": "_mint",
24782 "nodeType": "Identifier",
24783 "overloadedDeclarations": [],
24784 "referencedDeclaration": 121,
24785 "src": "6904:5:2",
24786 "typeDescriptions": {
24787 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
24788 "typeString": "function (address,uint256)"
24789 }
24790 },
24791 "id": 1273,
24792 "isConstant": false,
24793 "isLValue": false,
24794 "isPure": false,
24795 "kind": "functionCall",
24796 "lValueRequested": false,
24797 "names": [],
24798 "nodeType": "FunctionCall",
24799 "src": "6904:36:2",
24800 "typeDescriptions": {
24801 "typeIdentifier": "t_tuple$__$",
24802 "typeString": "tuple()"
24803 }
24804 },
24805 "id": 1274,
24806 "nodeType": "ExpressionStatement",
24807 "src": "6904:36:2"
24808 }
24809 ]
24810 }
24811 },
24812 {
24813 "expression": {
24814 "argumentTypes": null,
24815 "arguments": [
24816 {
24817 "argumentTypes": null,
24818 "commonType": {
24819 "typeIdentifier": "t_uint256",
24820 "typeString": "uint256"
24821 },
24822 "id": 1299,
24823 "isConstant": false,
24824 "isLValue": false,
24825 "isPure": false,
24826 "lValueRequested": false,
24827 "leftExpression": {
24828 "argumentTypes": null,
24829 "id": 1297,
24830 "name": "liquidity",
24831 "nodeType": "Identifier",
24832 "overloadedDeclarations": [],
24833 "referencedDeclaration": 1142,
24834 "src": "7171:9:2",
24835 "typeDescriptions": {
24836 "typeIdentifier": "t_uint256",
24837 "typeString": "uint256"
24838 }
24839 },
24840 "nodeType": "BinaryOperation",
24841 "operator": ">",
24842 "rightExpression": {
24843 "argumentTypes": null,
24844 "hexValue": "30",
24845 "id": 1298,
24846 "isConstant": false,
24847 "isLValue": false,
24848 "isPure": true,
24849 "kind": "number",
24850 "lValueRequested": false,
24851 "nodeType": "Literal",
24852 "src": "7183:1:2",
24853 "subdenomination": null,
24854 "typeDescriptions": {
24855 "typeIdentifier": "t_rational_0_by_1",
24856 "typeString": "int_const 0"
24857 },
24858 "value": "0"
24859 },
24860 "src": "7171:13:2",
24861 "typeDescriptions": {
24862 "typeIdentifier": "t_bool",
24863 "typeString": "bool"
24864 }
24865 },
24866 {
24867 "argumentTypes": null,
24868 "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544",
24869 "id": 1300,
24870 "isConstant": false,
24871 "isLValue": false,
24872 "isPure": true,
24873 "kind": "string",
24874 "lValueRequested": false,
24875 "nodeType": "Literal",
24876 "src": "7186:42:2",
24877 "subdenomination": null,
24878 "typeDescriptions": {
24879 "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e",
24880 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\""
24881 },
24882 "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED"
24883 }
24884 ],
24885 "expression": {
24886 "argumentTypes": [
24887 {
24888 "typeIdentifier": "t_bool",
24889 "typeString": "bool"
24890 },
24891 {
24892 "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e",
24893 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\""
24894 }
24895 ],
24896 "id": 1296,
24897 "name": "require",
24898 "nodeType": "Identifier",
24899 "overloadedDeclarations": [
24900 2620,
24901 2621
24902 ],
24903 "referencedDeclaration": 2621,
24904 "src": "7163:7:2",
24905 "typeDescriptions": {
24906 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
24907 "typeString": "function (bool,string memory) pure"
24908 }
24909 },
24910 "id": 1301,
24911 "isConstant": false,
24912 "isLValue": false,
24913 "isPure": false,
24914 "kind": "functionCall",
24915 "lValueRequested": false,
24916 "names": [],
24917 "nodeType": "FunctionCall",
24918 "src": "7163:66:2",
24919 "typeDescriptions": {
24920 "typeIdentifier": "t_tuple$__$",
24921 "typeString": "tuple()"
24922 }
24923 },
24924 "id": 1302,
24925 "nodeType": "ExpressionStatement",
24926 "src": "7163:66:2"
24927 },
24928 {
24929 "expression": {
24930 "argumentTypes": null,
24931 "arguments": [
24932 {
24933 "argumentTypes": null,
24934 "id": 1304,
24935 "name": "to",
24936 "nodeType": "Identifier",
24937 "overloadedDeclarations": [],
24938 "referencedDeclaration": 1137,
24939 "src": "7245:2:2",
24940 "typeDescriptions": {
24941 "typeIdentifier": "t_address",
24942 "typeString": "address"
24943 }
24944 },
24945 {
24946 "argumentTypes": null,
24947 "id": 1305,
24948 "name": "liquidity",
24949 "nodeType": "Identifier",
24950 "overloadedDeclarations": [],
24951 "referencedDeclaration": 1142,
24952 "src": "7249:9:2",
24953 "typeDescriptions": {
24954 "typeIdentifier": "t_uint256",
24955 "typeString": "uint256"
24956 }
24957 }
24958 ],
24959 "expression": {
24960 "argumentTypes": [
24961 {
24962 "typeIdentifier": "t_address",
24963 "typeString": "address"
24964 },
24965 {
24966 "typeIdentifier": "t_uint256",
24967 "typeString": "uint256"
24968 }
24969 ],
24970 "id": 1303,
24971 "name": "_mint",
24972 "nodeType": "Identifier",
24973 "overloadedDeclarations": [],
24974 "referencedDeclaration": 121,
24975 "src": "7239:5:2",
24976 "typeDescriptions": {
24977 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
24978 "typeString": "function (address,uint256)"
24979 }
24980 },
24981 "id": 1306,
24982 "isConstant": false,
24983 "isLValue": false,
24984 "isPure": false,
24985 "kind": "functionCall",
24986 "lValueRequested": false,
24987 "names": [],
24988 "nodeType": "FunctionCall",
24989 "src": "7239:20:2",
24990 "typeDescriptions": {
24991 "typeIdentifier": "t_tuple$__$",
24992 "typeString": "tuple()"
24993 }
24994 },
24995 "id": 1307,
24996 "nodeType": "ExpressionStatement",
24997 "src": "7239:20:2"
24998 },
24999 {
25000 "expression": {
25001 "argumentTypes": null,
25002 "arguments": [
25003 {
25004 "argumentTypes": null,
25005 "id": 1309,
25006 "name": "balance0",
25007 "nodeType": "Identifier",
25008 "overloadedDeclarations": [],
25009 "referencedDeclaration": 1152,
25010 "src": "7278:8:2",
25011 "typeDescriptions": {
25012 "typeIdentifier": "t_uint256",
25013 "typeString": "uint256"
25014 }
25015 },
25016 {
25017 "argumentTypes": null,
25018 "id": 1310,
25019 "name": "balance1",
25020 "nodeType": "Identifier",
25021 "overloadedDeclarations": [],
25022 "referencedDeclaration": 1163,
25023 "src": "7288:8:2",
25024 "typeDescriptions": {
25025 "typeIdentifier": "t_uint256",
25026 "typeString": "uint256"
25027 }
25028 },
25029 {
25030 "argumentTypes": null,
25031 "id": 1311,
25032 "name": "_reserve0",
25033 "nodeType": "Identifier",
25034 "overloadedDeclarations": [],
25035 "referencedDeclaration": 1145,
25036 "src": "7298:9:2",
25037 "typeDescriptions": {
25038 "typeIdentifier": "t_uint112",
25039 "typeString": "uint112"
25040 }
25041 },
25042 {
25043 "argumentTypes": null,
25044 "id": 1312,
25045 "name": "_reserve1",
25046 "nodeType": "Identifier",
25047 "overloadedDeclarations": [],
25048 "referencedDeclaration": 1147,
25049 "src": "7309:9:2",
25050 "typeDescriptions": {
25051 "typeIdentifier": "t_uint112",
25052 "typeString": "uint112"
25053 }
25054 }
25055 ],
25056 "expression": {
25057 "argumentTypes": [
25058 {
25059 "typeIdentifier": "t_uint256",
25060 "typeString": "uint256"
25061 },
25062 {
25063 "typeIdentifier": "t_uint256",
25064 "typeString": "uint256"
25065 },
25066 {
25067 "typeIdentifier": "t_uint112",
25068 "typeString": "uint112"
25069 },
25070 {
25071 "typeIdentifier": "t_uint112",
25072 "typeString": "uint112"
25073 }
25074 ],
25075 "id": 1308,
25076 "name": "_update",
25077 "nodeType": "Identifier",
25078 "overloadedDeclarations": [],
25079 "referencedDeclaration": 1029,
25080 "src": "7270:7:2",
25081 "typeDescriptions": {
25082 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$",
25083 "typeString": "function (uint256,uint256,uint112,uint112)"
25084 }
25085 },
25086 "id": 1313,
25087 "isConstant": false,
25088 "isLValue": false,
25089 "isPure": false,
25090 "kind": "functionCall",
25091 "lValueRequested": false,
25092 "names": [],
25093 "nodeType": "FunctionCall",
25094 "src": "7270:49:2",
25095 "typeDescriptions": {
25096 "typeIdentifier": "t_tuple$__$",
25097 "typeString": "tuple()"
25098 }
25099 },
25100 "id": 1314,
25101 "nodeType": "ExpressionStatement",
25102 "src": "7270:49:2"
25103 },
25104 {
25105 "condition": {
25106 "argumentTypes": null,
25107 "id": 1315,
25108 "name": "feeOn",
25109 "nodeType": "Identifier",
25110 "overloadedDeclarations": [],
25111 "referencedDeclaration": 1188,
25112 "src": "7333:5:2",
25113 "typeDescriptions": {
25114 "typeIdentifier": "t_bool",
25115 "typeString": "bool"
25116 }
25117 },
25118 "falseBody": null,
25119 "id": 1325,
25120 "nodeType": "IfStatement",
25121 "src": "7329:47:2",
25122 "trueBody": {
25123 "expression": {
25124 "argumentTypes": null,
25125 "id": 1323,
25126 "isConstant": false,
25127 "isLValue": false,
25128 "isPure": false,
25129 "lValueRequested": false,
25130 "leftHandSide": {
25131 "argumentTypes": null,
25132 "id": 1316,
25133 "name": "kLast",
25134 "nodeType": "Identifier",
25135 "overloadedDeclarations": [],
25136 "referencedDeclaration": 655,
25137 "src": "7340:5:2",
25138 "typeDescriptions": {
25139 "typeIdentifier": "t_uint256",
25140 "typeString": "uint256"
25141 }
25142 },
25143 "nodeType": "Assignment",
25144 "operator": "=",
25145 "rightHandSide": {
25146 "argumentTypes": null,
25147 "arguments": [
25148 {
25149 "argumentTypes": null,
25150 "id": 1321,
25151 "name": "reserve1",
25152 "nodeType": "Identifier",
25153 "overloadedDeclarations": [],
25154 "referencedDeclaration": 647,
25155 "src": "7367:8:2",
25156 "typeDescriptions": {
25157 "typeIdentifier": "t_uint112",
25158 "typeString": "uint112"
25159 }
25160 }
25161 ],
25162 "expression": {
25163 "argumentTypes": [
25164 {
25165 "typeIdentifier": "t_uint112",
25166 "typeString": "uint112"
25167 }
25168 ],
25169 "expression": {
25170 "argumentTypes": null,
25171 "arguments": [
25172 {
25173 "argumentTypes": null,
25174 "id": 1318,
25175 "name": "reserve0",
25176 "nodeType": "Identifier",
25177 "overloadedDeclarations": [],
25178 "referencedDeclaration": 645,
25179 "src": "7353:8:2",
25180 "typeDescriptions": {
25181 "typeIdentifier": "t_uint112",
25182 "typeString": "uint112"
25183 }
25184 }
25185 ],
25186 "expression": {
25187 "argumentTypes": [
25188 {
25189 "typeIdentifier": "t_uint112",
25190 "typeString": "uint112"
25191 }
25192 ],
25193 "id": 1317,
25194 "isConstant": false,
25195 "isLValue": false,
25196 "isPure": true,
25197 "lValueRequested": false,
25198 "nodeType": "ElementaryTypeNameExpression",
25199 "src": "7348:4:2",
25200 "typeDescriptions": {
25201 "typeIdentifier": "t_type$_t_uint256_$",
25202 "typeString": "type(uint256)"
25203 },
25204 "typeName": "uint"
25205 },
25206 "id": 1319,
25207 "isConstant": false,
25208 "isLValue": false,
25209 "isPure": false,
25210 "kind": "typeConversion",
25211 "lValueRequested": false,
25212 "names": [],
25213 "nodeType": "FunctionCall",
25214 "src": "7348:14:2",
25215 "typeDescriptions": {
25216 "typeIdentifier": "t_uint256",
25217 "typeString": "uint256"
25218 }
25219 },
25220 "id": 1320,
25221 "isConstant": false,
25222 "isLValue": false,
25223 "isPure": false,
25224 "lValueRequested": false,
25225 "memberName": "mul",
25226 "nodeType": "MemberAccess",
25227 "referencedDeclaration": 2541,
25228 "src": "7348:18:2",
25229 "typeDescriptions": {
25230 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
25231 "typeString": "function (uint256,uint256) pure returns (uint256)"
25232 }
25233 },
25234 "id": 1322,
25235 "isConstant": false,
25236 "isLValue": false,
25237 "isPure": false,
25238 "kind": "functionCall",
25239 "lValueRequested": false,
25240 "names": [],
25241 "nodeType": "FunctionCall",
25242 "src": "7348:28:2",
25243 "typeDescriptions": {
25244 "typeIdentifier": "t_uint256",
25245 "typeString": "uint256"
25246 }
25247 },
25248 "src": "7340:36:2",
25249 "typeDescriptions": {
25250 "typeIdentifier": "t_uint256",
25251 "typeString": "uint256"
25252 }
25253 },
25254 "id": 1324,
25255 "nodeType": "ExpressionStatement",
25256 "src": "7340:36:2"
25257 }
25258 },
25259 {
25260 "eventCall": {
25261 "argumentTypes": null,
25262 "arguments": [
25263 {
25264 "argumentTypes": null,
25265 "expression": {
25266 "argumentTypes": null,
25267 "id": 1327,
25268 "name": "msg",
25269 "nodeType": "Identifier",
25270 "overloadedDeclarations": [],
25271 "referencedDeclaration": 2617,
25272 "src": "7436:3:2",
25273 "typeDescriptions": {
25274 "typeIdentifier": "t_magic_message",
25275 "typeString": "msg"
25276 }
25277 },
25278 "id": 1328,
25279 "isConstant": false,
25280 "isLValue": false,
25281 "isPure": false,
25282 "lValueRequested": false,
25283 "memberName": "sender",
25284 "nodeType": "MemberAccess",
25285 "referencedDeclaration": null,
25286 "src": "7436:10:2",
25287 "typeDescriptions": {
25288 "typeIdentifier": "t_address_payable",
25289 "typeString": "address payable"
25290 }
25291 },
25292 {
25293 "argumentTypes": null,
25294 "id": 1329,
25295 "name": "amount0",
25296 "nodeType": "Identifier",
25297 "overloadedDeclarations": [],
25298 "referencedDeclaration": 1174,
25299 "src": "7448:7:2",
25300 "typeDescriptions": {
25301 "typeIdentifier": "t_uint256",
25302 "typeString": "uint256"
25303 }
25304 },
25305 {
25306 "argumentTypes": null,
25307 "id": 1330,
25308 "name": "amount1",
25309 "nodeType": "Identifier",
25310 "overloadedDeclarations": [],
25311 "referencedDeclaration": 1181,
25312 "src": "7457:7:2",
25313 "typeDescriptions": {
25314 "typeIdentifier": "t_uint256",
25315 "typeString": "uint256"
25316 }
25317 }
25318 ],
25319 "expression": {
25320 "argumentTypes": [
25321 {
25322 "typeIdentifier": "t_address_payable",
25323 "typeString": "address payable"
25324 },
25325 {
25326 "typeIdentifier": "t_uint256",
25327 "typeString": "uint256"
25328 },
25329 {
25330 "typeIdentifier": "t_uint256",
25331 "typeString": "uint256"
25332 }
25333 ],
25334 "id": 1326,
25335 "name": "Mint",
25336 "nodeType": "Identifier",
25337 "overloadedDeclarations": [
25338 777
25339 ],
25340 "referencedDeclaration": 777,
25341 "src": "7431:4:2",
25342 "typeDescriptions": {
25343 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
25344 "typeString": "function (address,uint256,uint256)"
25345 }
25346 },
25347 "id": 1331,
25348 "isConstant": false,
25349 "isLValue": false,
25350 "isPure": false,
25351 "kind": "functionCall",
25352 "lValueRequested": false,
25353 "names": [],
25354 "nodeType": "FunctionCall",
25355 "src": "7431:34:2",
25356 "typeDescriptions": {
25357 "typeIdentifier": "t_tuple$__$",
25358 "typeString": "tuple()"
25359 }
25360 },
25361 "id": 1332,
25362 "nodeType": "EmitStatement",
25363 "src": "7426:39:2"
25364 }
25365 ]
25366 },
25367 "documentation": null,
25368 "id": 1334,
25369 "implemented": true,
25370 "kind": "function",
25371 "modifiers": [
25372 {
25373 "arguments": null,
25374 "id": 1140,
25375 "modifierName": {
25376 "argumentTypes": null,
25377 "id": 1139,
25378 "name": "lock",
25379 "nodeType": "Identifier",
25380 "overloadedDeclarations": [],
25381 "referencedDeclaration": 677,
25382 "src": "5898:4:2",
25383 "typeDescriptions": {
25384 "typeIdentifier": "t_modifier$__$",
25385 "typeString": "modifier ()"
25386 }
25387 },
25388 "nodeType": "ModifierInvocation",
25389 "src": "5898:4:2"
25390 }
25391 ],
25392 "name": "mint",
25393 "nodeType": "FunctionDefinition",
25394 "parameters": {
25395 "id": 1138,
25396 "nodeType": "ParameterList",
25397 "parameters": [
25398 {
25399 "constant": false,
25400 "id": 1137,
25401 "name": "to",
25402 "nodeType": "VariableDeclaration",
25403 "scope": 1334,
25404 "src": "5877:10:2",
25405 "stateVariable": false,
25406 "storageLocation": "default",
25407 "typeDescriptions": {
25408 "typeIdentifier": "t_address",
25409 "typeString": "address"
25410 },
25411 "typeName": {
25412 "id": 1136,
25413 "name": "address",
25414 "nodeType": "ElementaryTypeName",
25415 "src": "5877:7:2",
25416 "stateMutability": "nonpayable",
25417 "typeDescriptions": {
25418 "typeIdentifier": "t_address",
25419 "typeString": "address"
25420 }
25421 },
25422 "value": null,
25423 "visibility": "internal"
25424 }
25425 ],
25426 "src": "5876:12:2"
25427 },
25428 "returnParameters": {
25429 "id": 1143,
25430 "nodeType": "ParameterList",
25431 "parameters": [
25432 {
25433 "constant": false,
25434 "id": 1142,
25435 "name": "liquidity",
25436 "nodeType": "VariableDeclaration",
25437 "scope": 1334,
25438 "src": "5912:14:2",
25439 "stateVariable": false,
25440 "storageLocation": "default",
25441 "typeDescriptions": {
25442 "typeIdentifier": "t_uint256",
25443 "typeString": "uint256"
25444 },
25445 "typeName": {
25446 "id": 1141,
25447 "name": "uint",
25448 "nodeType": "ElementaryTypeName",
25449 "src": "5912:4:2",
25450 "typeDescriptions": {
25451 "typeIdentifier": "t_uint256",
25452 "typeString": "uint256"
25453 }
25454 },
25455 "value": null,
25456 "visibility": "internal"
25457 }
25458 ],
25459 "src": "5911:16:2"
25460 },
25461 "scope": 1834,
25462 "src": "5863:1609:2",
25463 "stateMutability": "nonpayable",
25464 "superFunction": 2340,
25465 "visibility": "external"
25466 },
25467 {
25468 "body": {
25469 "id": 1523,
25470 "nodeType": "Block",
25471 "src": "7658:1494:2",
25472 "statements": [
25473 {
25474 "assignments": [
25475 1346,
25476 1348,
25477 null
25478 ],
25479 "declarations": [
25480 {
25481 "constant": false,
25482 "id": 1346,
25483 "name": "_reserve0",
25484 "nodeType": "VariableDeclaration",
25485 "scope": 1523,
25486 "src": "7669:17:2",
25487 "stateVariable": false,
25488 "storageLocation": "default",
25489 "typeDescriptions": {
25490 "typeIdentifier": "t_uint112",
25491 "typeString": "uint112"
25492 },
25493 "typeName": {
25494 "id": 1345,
25495 "name": "uint112",
25496 "nodeType": "ElementaryTypeName",
25497 "src": "7669:7:2",
25498 "typeDescriptions": {
25499 "typeIdentifier": "t_uint112",
25500 "typeString": "uint112"
25501 }
25502 },
25503 "value": null,
25504 "visibility": "internal"
25505 },
25506 {
25507 "constant": false,
25508 "id": 1348,
25509 "name": "_reserve1",
25510 "nodeType": "VariableDeclaration",
25511 "scope": 1523,
25512 "src": "7688:17:2",
25513 "stateVariable": false,
25514 "storageLocation": "default",
25515 "typeDescriptions": {
25516 "typeIdentifier": "t_uint112",
25517 "typeString": "uint112"
25518 },
25519 "typeName": {
25520 "id": 1347,
25521 "name": "uint112",
25522 "nodeType": "ElementaryTypeName",
25523 "src": "7688:7:2",
25524 "typeDescriptions": {
25525 "typeIdentifier": "t_uint112",
25526 "typeString": "uint112"
25527 }
25528 },
25529 "value": null,
25530 "visibility": "internal"
25531 },
25532 null
25533 ],
25534 "id": 1351,
25535 "initialValue": {
25536 "argumentTypes": null,
25537 "arguments": [],
25538 "expression": {
25539 "argumentTypes": [],
25540 "id": 1349,
25541 "name": "getReserves",
25542 "nodeType": "Identifier",
25543 "overloadedDeclarations": [],
25544 "referencedDeclaration": 699,
25545 "src": "7710:11:2",
25546 "typeDescriptions": {
25547 "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$",
25548 "typeString": "function () view returns (uint112,uint112,uint32)"
25549 }
25550 },
25551 "id": 1350,
25552 "isConstant": false,
25553 "isLValue": false,
25554 "isPure": false,
25555 "kind": "functionCall",
25556 "lValueRequested": false,
25557 "names": [],
25558 "nodeType": "FunctionCall",
25559 "src": "7710:13:2",
25560 "typeDescriptions": {
25561 "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$",
25562 "typeString": "tuple(uint112,uint112,uint32)"
25563 }
25564 },
25565 "nodeType": "VariableDeclarationStatement",
25566 "src": "7668:55:2"
25567 },
25568 {
25569 "assignments": [
25570 1353
25571 ],
25572 "declarations": [
25573 {
25574 "constant": false,
25575 "id": 1353,
25576 "name": "_token0",
25577 "nodeType": "VariableDeclaration",
25578 "scope": 1523,
25579 "src": "7748:15:2",
25580 "stateVariable": false,
25581 "storageLocation": "default",
25582 "typeDescriptions": {
25583 "typeIdentifier": "t_address",
25584 "typeString": "address"
25585 },
25586 "typeName": {
25587 "id": 1352,
25588 "name": "address",
25589 "nodeType": "ElementaryTypeName",
25590 "src": "7748:7:2",
25591 "stateMutability": "nonpayable",
25592 "typeDescriptions": {
25593 "typeIdentifier": "t_address",
25594 "typeString": "address"
25595 }
25596 },
25597 "value": null,
25598 "visibility": "internal"
25599 }
25600 ],
25601 "id": 1355,
25602 "initialValue": {
25603 "argumentTypes": null,
25604 "id": 1354,
25605 "name": "token0",
25606 "nodeType": "Identifier",
25607 "overloadedDeclarations": [],
25608 "referencedDeclaration": 631,
25609 "src": "7766:6:2",
25610 "typeDescriptions": {
25611 "typeIdentifier": "t_address",
25612 "typeString": "address"
25613 }
25614 },
25615 "nodeType": "VariableDeclarationStatement",
25616 "src": "7748:24:2"
25617 },
25618 {
25619 "assignments": [
25620 1357
25621 ],
25622 "declarations": [
25623 {
25624 "constant": false,
25625 "id": 1357,
25626 "name": "_token1",
25627 "nodeType": "VariableDeclaration",
25628 "scope": 1523,
25629 "src": "7828:15:2",
25630 "stateVariable": false,
25631 "storageLocation": "default",
25632 "typeDescriptions": {
25633 "typeIdentifier": "t_address",
25634 "typeString": "address"
25635 },
25636 "typeName": {
25637 "id": 1356,
25638 "name": "address",
25639 "nodeType": "ElementaryTypeName",
25640 "src": "7828:7:2",
25641 "stateMutability": "nonpayable",
25642 "typeDescriptions": {
25643 "typeIdentifier": "t_address",
25644 "typeString": "address"
25645 }
25646 },
25647 "value": null,
25648 "visibility": "internal"
25649 }
25650 ],
25651 "id": 1359,
25652 "initialValue": {
25653 "argumentTypes": null,
25654 "id": 1358,
25655 "name": "token1",
25656 "nodeType": "Identifier",
25657 "overloadedDeclarations": [],
25658 "referencedDeclaration": 633,
25659 "src": "7846:6:2",
25660 "typeDescriptions": {
25661 "typeIdentifier": "t_address",
25662 "typeString": "address"
25663 }
25664 },
25665 "nodeType": "VariableDeclarationStatement",
25666 "src": "7828:24:2"
25667 },
25668 {
25669 "assignments": [
25670 1361
25671 ],
25672 "declarations": [
25673 {
25674 "constant": false,
25675 "id": 1361,
25676 "name": "balance0",
25677 "nodeType": "VariableDeclaration",
25678 "scope": 1523,
25679 "src": "7908:13:2",
25680 "stateVariable": false,
25681 "storageLocation": "default",
25682 "typeDescriptions": {
25683 "typeIdentifier": "t_uint256",
25684 "typeString": "uint256"
25685 },
25686 "typeName": {
25687 "id": 1360,
25688 "name": "uint",
25689 "nodeType": "ElementaryTypeName",
25690 "src": "7908:4:2",
25691 "typeDescriptions": {
25692 "typeIdentifier": "t_uint256",
25693 "typeString": "uint256"
25694 }
25695 },
25696 "value": null,
25697 "visibility": "internal"
25698 }
25699 ],
25700 "id": 1370,
25701 "initialValue": {
25702 "argumentTypes": null,
25703 "arguments": [
25704 {
25705 "argumentTypes": null,
25706 "arguments": [
25707 {
25708 "argumentTypes": null,
25709 "id": 1367,
25710 "name": "this",
25711 "nodeType": "Identifier",
25712 "overloadedDeclarations": [],
25713 "referencedDeclaration": 2649,
25714 "src": "7958:4:2",
25715 "typeDescriptions": {
25716 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
25717 "typeString": "contract UniswapV2Pair"
25718 }
25719 }
25720 ],
25721 "expression": {
25722 "argumentTypes": [
25723 {
25724 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
25725 "typeString": "contract UniswapV2Pair"
25726 }
25727 ],
25728 "id": 1366,
25729 "isConstant": false,
25730 "isLValue": false,
25731 "isPure": true,
25732 "lValueRequested": false,
25733 "nodeType": "ElementaryTypeNameExpression",
25734 "src": "7950:7:2",
25735 "typeDescriptions": {
25736 "typeIdentifier": "t_type$_t_address_$",
25737 "typeString": "type(address)"
25738 },
25739 "typeName": "address"
25740 },
25741 "id": 1368,
25742 "isConstant": false,
25743 "isLValue": false,
25744 "isPure": false,
25745 "kind": "typeConversion",
25746 "lValueRequested": false,
25747 "names": [],
25748 "nodeType": "FunctionCall",
25749 "src": "7950:13:2",
25750 "typeDescriptions": {
25751 "typeIdentifier": "t_address",
25752 "typeString": "address"
25753 }
25754 }
25755 ],
25756 "expression": {
25757 "argumentTypes": [
25758 {
25759 "typeIdentifier": "t_address",
25760 "typeString": "address"
25761 }
25762 ],
25763 "expression": {
25764 "argumentTypes": null,
25765 "arguments": [
25766 {
25767 "argumentTypes": null,
25768 "id": 1363,
25769 "name": "_token0",
25770 "nodeType": "Identifier",
25771 "overloadedDeclarations": [],
25772 "referencedDeclaration": 1353,
25773 "src": "7931:7:2",
25774 "typeDescriptions": {
25775 "typeIdentifier": "t_address",
25776 "typeString": "address"
25777 }
25778 }
25779 ],
25780 "expression": {
25781 "argumentTypes": [
25782 {
25783 "typeIdentifier": "t_address",
25784 "typeString": "address"
25785 }
25786 ],
25787 "id": 1362,
25788 "name": "IERC20",
25789 "nodeType": "Identifier",
25790 "overloadedDeclarations": [],
25791 "referencedDeclaration": 1918,
25792 "src": "7924:6:2",
25793 "typeDescriptions": {
25794 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
25795 "typeString": "type(contract IERC20)"
25796 }
25797 },
25798 "id": 1364,
25799 "isConstant": false,
25800 "isLValue": false,
25801 "isPure": false,
25802 "kind": "typeConversion",
25803 "lValueRequested": false,
25804 "names": [],
25805 "nodeType": "FunctionCall",
25806 "src": "7924:15:2",
25807 "typeDescriptions": {
25808 "typeIdentifier": "t_contract$_IERC20_$1918",
25809 "typeString": "contract IERC20"
25810 }
25811 },
25812 "id": 1365,
25813 "isConstant": false,
25814 "isLValue": false,
25815 "isPure": false,
25816 "lValueRequested": false,
25817 "memberName": "balanceOf",
25818 "nodeType": "MemberAccess",
25819 "referencedDeclaration": 1879,
25820 "src": "7924:25:2",
25821 "typeDescriptions": {
25822 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
25823 "typeString": "function (address) view external returns (uint256)"
25824 }
25825 },
25826 "id": 1369,
25827 "isConstant": false,
25828 "isLValue": false,
25829 "isPure": false,
25830 "kind": "functionCall",
25831 "lValueRequested": false,
25832 "names": [],
25833 "nodeType": "FunctionCall",
25834 "src": "7924:40:2",
25835 "typeDescriptions": {
25836 "typeIdentifier": "t_uint256",
25837 "typeString": "uint256"
25838 }
25839 },
25840 "nodeType": "VariableDeclarationStatement",
25841 "src": "7908:56:2"
25842 },
25843 {
25844 "assignments": [
25845 1372
25846 ],
25847 "declarations": [
25848 {
25849 "constant": false,
25850 "id": 1372,
25851 "name": "balance1",
25852 "nodeType": "VariableDeclaration",
25853 "scope": 1523,
25854 "src": "7974:13:2",
25855 "stateVariable": false,
25856 "storageLocation": "default",
25857 "typeDescriptions": {
25858 "typeIdentifier": "t_uint256",
25859 "typeString": "uint256"
25860 },
25861 "typeName": {
25862 "id": 1371,
25863 "name": "uint",
25864 "nodeType": "ElementaryTypeName",
25865 "src": "7974:4:2",
25866 "typeDescriptions": {
25867 "typeIdentifier": "t_uint256",
25868 "typeString": "uint256"
25869 }
25870 },
25871 "value": null,
25872 "visibility": "internal"
25873 }
25874 ],
25875 "id": 1381,
25876 "initialValue": {
25877 "argumentTypes": null,
25878 "arguments": [
25879 {
25880 "argumentTypes": null,
25881 "arguments": [
25882 {
25883 "argumentTypes": null,
25884 "id": 1378,
25885 "name": "this",
25886 "nodeType": "Identifier",
25887 "overloadedDeclarations": [],
25888 "referencedDeclaration": 2649,
25889 "src": "8024:4:2",
25890 "typeDescriptions": {
25891 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
25892 "typeString": "contract UniswapV2Pair"
25893 }
25894 }
25895 ],
25896 "expression": {
25897 "argumentTypes": [
25898 {
25899 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
25900 "typeString": "contract UniswapV2Pair"
25901 }
25902 ],
25903 "id": 1377,
25904 "isConstant": false,
25905 "isLValue": false,
25906 "isPure": true,
25907 "lValueRequested": false,
25908 "nodeType": "ElementaryTypeNameExpression",
25909 "src": "8016:7:2",
25910 "typeDescriptions": {
25911 "typeIdentifier": "t_type$_t_address_$",
25912 "typeString": "type(address)"
25913 },
25914 "typeName": "address"
25915 },
25916 "id": 1379,
25917 "isConstant": false,
25918 "isLValue": false,
25919 "isPure": false,
25920 "kind": "typeConversion",
25921 "lValueRequested": false,
25922 "names": [],
25923 "nodeType": "FunctionCall",
25924 "src": "8016:13:2",
25925 "typeDescriptions": {
25926 "typeIdentifier": "t_address",
25927 "typeString": "address"
25928 }
25929 }
25930 ],
25931 "expression": {
25932 "argumentTypes": [
25933 {
25934 "typeIdentifier": "t_address",
25935 "typeString": "address"
25936 }
25937 ],
25938 "expression": {
25939 "argumentTypes": null,
25940 "arguments": [
25941 {
25942 "argumentTypes": null,
25943 "id": 1374,
25944 "name": "_token1",
25945 "nodeType": "Identifier",
25946 "overloadedDeclarations": [],
25947 "referencedDeclaration": 1357,
25948 "src": "7997:7:2",
25949 "typeDescriptions": {
25950 "typeIdentifier": "t_address",
25951 "typeString": "address"
25952 }
25953 }
25954 ],
25955 "expression": {
25956 "argumentTypes": [
25957 {
25958 "typeIdentifier": "t_address",
25959 "typeString": "address"
25960 }
25961 ],
25962 "id": 1373,
25963 "name": "IERC20",
25964 "nodeType": "Identifier",
25965 "overloadedDeclarations": [],
25966 "referencedDeclaration": 1918,
25967 "src": "7990:6:2",
25968 "typeDescriptions": {
25969 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
25970 "typeString": "type(contract IERC20)"
25971 }
25972 },
25973 "id": 1375,
25974 "isConstant": false,
25975 "isLValue": false,
25976 "isPure": false,
25977 "kind": "typeConversion",
25978 "lValueRequested": false,
25979 "names": [],
25980 "nodeType": "FunctionCall",
25981 "src": "7990:15:2",
25982 "typeDescriptions": {
25983 "typeIdentifier": "t_contract$_IERC20_$1918",
25984 "typeString": "contract IERC20"
25985 }
25986 },
25987 "id": 1376,
25988 "isConstant": false,
25989 "isLValue": false,
25990 "isPure": false,
25991 "lValueRequested": false,
25992 "memberName": "balanceOf",
25993 "nodeType": "MemberAccess",
25994 "referencedDeclaration": 1879,
25995 "src": "7990:25:2",
25996 "typeDescriptions": {
25997 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
25998 "typeString": "function (address) view external returns (uint256)"
25999 }
26000 },
26001 "id": 1380,
26002 "isConstant": false,
26003 "isLValue": false,
26004 "isPure": false,
26005 "kind": "functionCall",
26006 "lValueRequested": false,
26007 "names": [],
26008 "nodeType": "FunctionCall",
26009 "src": "7990:40:2",
26010 "typeDescriptions": {
26011 "typeIdentifier": "t_uint256",
26012 "typeString": "uint256"
26013 }
26014 },
26015 "nodeType": "VariableDeclarationStatement",
26016 "src": "7974:56:2"
26017 },
26018 {
26019 "assignments": [
26020 1383
26021 ],
26022 "declarations": [
26023 {
26024 "constant": false,
26025 "id": 1383,
26026 "name": "liquidity",
26027 "nodeType": "VariableDeclaration",
26028 "scope": 1523,
26029 "src": "8040:14:2",
26030 "stateVariable": false,
26031 "storageLocation": "default",
26032 "typeDescriptions": {
26033 "typeIdentifier": "t_uint256",
26034 "typeString": "uint256"
26035 },
26036 "typeName": {
26037 "id": 1382,
26038 "name": "uint",
26039 "nodeType": "ElementaryTypeName",
26040 "src": "8040:4:2",
26041 "typeDescriptions": {
26042 "typeIdentifier": "t_uint256",
26043 "typeString": "uint256"
26044 }
26045 },
26046 "value": null,
26047 "visibility": "internal"
26048 }
26049 ],
26050 "id": 1389,
26051 "initialValue": {
26052 "argumentTypes": null,
26053 "baseExpression": {
26054 "argumentTypes": null,
26055 "id": 1384,
26056 "name": "balanceOf",
26057 "nodeType": "Identifier",
26058 "overloadedDeclarations": [],
26059 "referencedDeclaration": 23,
26060 "src": "8057:9:2",
26061 "typeDescriptions": {
26062 "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
26063 "typeString": "mapping(address => uint256)"
26064 }
26065 },
26066 "id": 1388,
26067 "indexExpression": {
26068 "argumentTypes": null,
26069 "arguments": [
26070 {
26071 "argumentTypes": null,
26072 "id": 1386,
26073 "name": "this",
26074 "nodeType": "Identifier",
26075 "overloadedDeclarations": [],
26076 "referencedDeclaration": 2649,
26077 "src": "8075:4:2",
26078 "typeDescriptions": {
26079 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
26080 "typeString": "contract UniswapV2Pair"
26081 }
26082 }
26083 ],
26084 "expression": {
26085 "argumentTypes": [
26086 {
26087 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
26088 "typeString": "contract UniswapV2Pair"
26089 }
26090 ],
26091 "id": 1385,
26092 "isConstant": false,
26093 "isLValue": false,
26094 "isPure": true,
26095 "lValueRequested": false,
26096 "nodeType": "ElementaryTypeNameExpression",
26097 "src": "8067:7:2",
26098 "typeDescriptions": {
26099 "typeIdentifier": "t_type$_t_address_$",
26100 "typeString": "type(address)"
26101 },
26102 "typeName": "address"
26103 },
26104 "id": 1387,
26105 "isConstant": false,
26106 "isLValue": false,
26107 "isPure": false,
26108 "kind": "typeConversion",
26109 "lValueRequested": false,
26110 "names": [],
26111 "nodeType": "FunctionCall",
26112 "src": "8067:13:2",
26113 "typeDescriptions": {
26114 "typeIdentifier": "t_address",
26115 "typeString": "address"
26116 }
26117 },
26118 "isConstant": false,
26119 "isLValue": true,
26120 "isPure": false,
26121 "lValueRequested": false,
26122 "nodeType": "IndexAccess",
26123 "src": "8057:24:2",
26124 "typeDescriptions": {
26125 "typeIdentifier": "t_uint256",
26126 "typeString": "uint256"
26127 }
26128 },
26129 "nodeType": "VariableDeclarationStatement",
26130 "src": "8040:41:2"
26131 },
26132 {
26133 "assignments": [
26134 1391
26135 ],
26136 "declarations": [
26137 {
26138 "constant": false,
26139 "id": 1391,
26140 "name": "slope",
26141 "nodeType": "VariableDeclaration",
26142 "scope": 1523,
26143 "src": "8091:10:2",
26144 "stateVariable": false,
26145 "storageLocation": "default",
26146 "typeDescriptions": {
26147 "typeIdentifier": "t_uint256",
26148 "typeString": "uint256"
26149 },
26150 "typeName": {
26151 "id": 1390,
26152 "name": "uint",
26153 "nodeType": "ElementaryTypeName",
26154 "src": "8091:4:2",
26155 "typeDescriptions": {
26156 "typeIdentifier": "t_uint256",
26157 "typeString": "uint256"
26158 }
26159 },
26160 "value": null,
26161 "visibility": "internal"
26162 }
26163 ],
26164 "id": 1395,
26165 "initialValue": {
26166 "argumentTypes": null,
26167 "commonType": {
26168 "typeIdentifier": "t_uint256",
26169 "typeString": "uint256"
26170 },
26171 "id": 1394,
26172 "isConstant": false,
26173 "isLValue": false,
26174 "isPure": false,
26175 "lValueRequested": false,
26176 "leftExpression": {
26177 "argumentTypes": null,
26178 "id": 1392,
26179 "name": "m",
26180 "nodeType": "Identifier",
26181 "overloadedDeclarations": [],
26182 "referencedDeclaration": 639,
26183 "src": "8104:1:2",
26184 "typeDescriptions": {
26185 "typeIdentifier": "t_uint256",
26186 "typeString": "uint256"
26187 }
26188 },
26189 "nodeType": "BinaryOperation",
26190 "operator": "/",
26191 "rightExpression": {
26192 "argumentTypes": null,
26193 "hexValue": "31303030",
26194 "id": 1393,
26195 "isConstant": false,
26196 "isLValue": false,
26197 "isPure": true,
26198 "kind": "number",
26199 "lValueRequested": false,
26200 "nodeType": "Literal",
26201 "src": "8108:4:2",
26202 "subdenomination": null,
26203 "typeDescriptions": {
26204 "typeIdentifier": "t_rational_1000_by_1",
26205 "typeString": "int_const 1000"
26206 },
26207 "value": "1000"
26208 },
26209 "src": "8104:8:2",
26210 "typeDescriptions": {
26211 "typeIdentifier": "t_uint256",
26212 "typeString": "uint256"
26213 }
26214 },
26215 "nodeType": "VariableDeclarationStatement",
26216 "src": "8091:21:2"
26217 },
26218 {
26219 "assignments": [
26220 1397
26221 ],
26222 "declarations": [
26223 {
26224 "constant": false,
26225 "id": 1397,
26226 "name": "feeOn",
26227 "nodeType": "VariableDeclaration",
26228 "scope": 1523,
26229 "src": "8122:10:2",
26230 "stateVariable": false,
26231 "storageLocation": "default",
26232 "typeDescriptions": {
26233 "typeIdentifier": "t_bool",
26234 "typeString": "bool"
26235 },
26236 "typeName": {
26237 "id": 1396,
26238 "name": "bool",
26239 "nodeType": "ElementaryTypeName",
26240 "src": "8122:4:2",
26241 "typeDescriptions": {
26242 "typeIdentifier": "t_bool",
26243 "typeString": "bool"
26244 }
26245 },
26246 "value": null,
26247 "visibility": "internal"
26248 }
26249 ],
26250 "id": 1402,
26251 "initialValue": {
26252 "argumentTypes": null,
26253 "arguments": [
26254 {
26255 "argumentTypes": null,
26256 "id": 1399,
26257 "name": "_reserve0",
26258 "nodeType": "Identifier",
26259 "overloadedDeclarations": [],
26260 "referencedDeclaration": 1346,
26261 "src": "8144:9:2",
26262 "typeDescriptions": {
26263 "typeIdentifier": "t_uint112",
26264 "typeString": "uint112"
26265 }
26266 },
26267 {
26268 "argumentTypes": null,
26269 "id": 1400,
26270 "name": "_reserve1",
26271 "nodeType": "Identifier",
26272 "overloadedDeclarations": [],
26273 "referencedDeclaration": 1348,
26274 "src": "8155:9:2",
26275 "typeDescriptions": {
26276 "typeIdentifier": "t_uint112",
26277 "typeString": "uint112"
26278 }
26279 }
26280 ],
26281 "expression": {
26282 "argumentTypes": [
26283 {
26284 "typeIdentifier": "t_uint112",
26285 "typeString": "uint112"
26286 },
26287 {
26288 "typeIdentifier": "t_uint112",
26289 "typeString": "uint112"
26290 }
26291 ],
26292 "id": 1398,
26293 "name": "_mintFee",
26294 "nodeType": "Identifier",
26295 "overloadedDeclarations": [],
26296 "referencedDeclaration": 1135,
26297 "src": "8135:8:2",
26298 "typeDescriptions": {
26299 "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$",
26300 "typeString": "function (uint112,uint112) returns (bool)"
26301 }
26302 },
26303 "id": 1401,
26304 "isConstant": false,
26305 "isLValue": false,
26306 "isPure": false,
26307 "kind": "functionCall",
26308 "lValueRequested": false,
26309 "names": [],
26310 "nodeType": "FunctionCall",
26311 "src": "8135:30:2",
26312 "typeDescriptions": {
26313 "typeIdentifier": "t_bool",
26314 "typeString": "bool"
26315 }
26316 },
26317 "nodeType": "VariableDeclarationStatement",
26318 "src": "8122:43:2"
26319 },
26320 {
26321 "assignments": [
26322 1404
26323 ],
26324 "declarations": [
26325 {
26326 "constant": false,
26327 "id": 1404,
26328 "name": "_totalSupply",
26329 "nodeType": "VariableDeclaration",
26330 "scope": 1523,
26331 "src": "8175:17:2",
26332 "stateVariable": false,
26333 "storageLocation": "default",
26334 "typeDescriptions": {
26335 "typeIdentifier": "t_uint256",
26336 "typeString": "uint256"
26337 },
26338 "typeName": {
26339 "id": 1403,
26340 "name": "uint",
26341 "nodeType": "ElementaryTypeName",
26342 "src": "8175:4:2",
26343 "typeDescriptions": {
26344 "typeIdentifier": "t_uint256",
26345 "typeString": "uint256"
26346 }
26347 },
26348 "value": null,
26349 "visibility": "internal"
26350 }
26351 ],
26352 "id": 1406,
26353 "initialValue": {
26354 "argumentTypes": null,
26355 "id": 1405,
26356 "name": "totalSupply",
26357 "nodeType": "Identifier",
26358 "overloadedDeclarations": [],
26359 "referencedDeclaration": 19,
26360 "src": "8195:11:2",
26361 "typeDescriptions": {
26362 "typeIdentifier": "t_uint256",
26363 "typeString": "uint256"
26364 }
26365 },
26366 "nodeType": "VariableDeclarationStatement",
26367 "src": "8175:31:2"
26368 },
26369 {
26370 "expression": {
26371 "argumentTypes": null,
26372 "id": 1424,
26373 "isConstant": false,
26374 "isLValue": false,
26375 "isPure": false,
26376 "lValueRequested": false,
26377 "leftHandSide": {
26378 "argumentTypes": null,
26379 "id": 1407,
26380 "name": "amount0",
26381 "nodeType": "Identifier",
26382 "overloadedDeclarations": [],
26383 "referencedDeclaration": 1341,
26384 "src": "8294:7:2",
26385 "typeDescriptions": {
26386 "typeIdentifier": "t_uint256",
26387 "typeString": "uint256"
26388 }
26389 },
26390 "nodeType": "Assignment",
26391 "operator": "=",
26392 "rightHandSide": {
26393 "argumentTypes": null,
26394 "commonType": {
26395 "typeIdentifier": "t_uint256",
26396 "typeString": "uint256"
26397 },
26398 "id": 1423,
26399 "isConstant": false,
26400 "isLValue": false,
26401 "isPure": false,
26402 "lValueRequested": false,
26403 "leftExpression": {
26404 "argumentTypes": null,
26405 "arguments": [
26406 {
26407 "argumentTypes": null,
26408 "condition": {
26409 "argumentTypes": null,
26410 "commonType": {
26411 "typeIdentifier": "t_address",
26412 "typeString": "address"
26413 },
26414 "id": 1412,
26415 "isConstant": false,
26416 "isLValue": false,
26417 "isPure": false,
26418 "lValueRequested": false,
26419 "leftExpression": {
26420 "argumentTypes": null,
26421 "id": 1410,
26422 "name": "token0",
26423 "nodeType": "Identifier",
26424 "overloadedDeclarations": [],
26425 "referencedDeclaration": 631,
26426 "src": "8318:6:2",
26427 "typeDescriptions": {
26428 "typeIdentifier": "t_address",
26429 "typeString": "address"
26430 }
26431 },
26432 "nodeType": "BinaryOperation",
26433 "operator": "==",
26434 "rightExpression": {
26435 "argumentTypes": null,
26436 "id": 1411,
26437 "name": "baseToken",
26438 "nodeType": "Identifier",
26439 "overloadedDeclarations": [],
26440 "referencedDeclaration": 635,
26441 "src": "8328:9:2",
26442 "typeDescriptions": {
26443 "typeIdentifier": "t_address",
26444 "typeString": "address"
26445 }
26446 },
26447 "src": "8318:19:2",
26448 "typeDescriptions": {
26449 "typeIdentifier": "t_bool",
26450 "typeString": "bool"
26451 }
26452 },
26453 "falseExpression": {
26454 "argumentTypes": null,
26455 "commonType": {
26456 "typeIdentifier": "t_uint256",
26457 "typeString": "uint256"
26458 },
26459 "id": 1419,
26460 "isConstant": false,
26461 "isLValue": false,
26462 "isPure": false,
26463 "lValueRequested": false,
26464 "leftExpression": {
26465 "argumentTypes": null,
26466 "id": 1414,
26467 "name": "slope",
26468 "nodeType": "Identifier",
26469 "overloadedDeclarations": [],
26470 "referencedDeclaration": 1391,
26471 "src": "8351:5:2",
26472 "typeDescriptions": {
26473 "typeIdentifier": "t_uint256",
26474 "typeString": "uint256"
26475 }
26476 },
26477 "nodeType": "BinaryOperation",
26478 "operator": "*",
26479 "rightExpression": {
26480 "argumentTypes": null,
26481 "components": [
26482 {
26483 "argumentTypes": null,
26484 "commonType": {
26485 "typeIdentifier": "t_uint256",
26486 "typeString": "uint256"
26487 },
26488 "id": 1417,
26489 "isConstant": false,
26490 "isLValue": false,
26491 "isPure": false,
26492 "lValueRequested": false,
26493 "leftExpression": {
26494 "argumentTypes": null,
26495 "id": 1415,
26496 "name": "balance0",
26497 "nodeType": "Identifier",
26498 "overloadedDeclarations": [],
26499 "referencedDeclaration": 1361,
26500 "src": "8360:8:2",
26501 "typeDescriptions": {
26502 "typeIdentifier": "t_uint256",
26503 "typeString": "uint256"
26504 }
26505 },
26506 "nodeType": "BinaryOperation",
26507 "operator": "**",
26508 "rightExpression": {
26509 "argumentTypes": null,
26510 "id": 1416,
26511 "name": "n",
26512 "nodeType": "Identifier",
26513 "overloadedDeclarations": [],
26514 "referencedDeclaration": 641,
26515 "src": "8372:1:2",
26516 "typeDescriptions": {
26517 "typeIdentifier": "t_uint256",
26518 "typeString": "uint256"
26519 }
26520 },
26521 "src": "8360:13:2",
26522 "typeDescriptions": {
26523 "typeIdentifier": "t_uint256",
26524 "typeString": "uint256"
26525 }
26526 }
26527 ],
26528 "id": 1418,
26529 "isConstant": false,
26530 "isInlineArray": false,
26531 "isLValue": false,
26532 "isPure": false,
26533 "lValueRequested": false,
26534 "nodeType": "TupleExpression",
26535 "src": "8359:15:2",
26536 "typeDescriptions": {
26537 "typeIdentifier": "t_uint256",
26538 "typeString": "uint256"
26539 }
26540 },
26541 "src": "8351:23:2",
26542 "typeDescriptions": {
26543 "typeIdentifier": "t_uint256",
26544 "typeString": "uint256"
26545 }
26546 },
26547 "id": 1420,
26548 "isConstant": false,
26549 "isLValue": false,
26550 "isPure": false,
26551 "lValueRequested": false,
26552 "nodeType": "Conditional",
26553 "src": "8318:56:2",
26554 "trueExpression": {
26555 "argumentTypes": null,
26556 "id": 1413,
26557 "name": "balance0",
26558 "nodeType": "Identifier",
26559 "overloadedDeclarations": [],
26560 "referencedDeclaration": 1361,
26561 "src": "8340:8:2",
26562 "typeDescriptions": {
26563 "typeIdentifier": "t_uint256",
26564 "typeString": "uint256"
26565 }
26566 },
26567 "typeDescriptions": {
26568 "typeIdentifier": "t_uint256",
26569 "typeString": "uint256"
26570 }
26571 }
26572 ],
26573 "expression": {
26574 "argumentTypes": [
26575 {
26576 "typeIdentifier": "t_uint256",
26577 "typeString": "uint256"
26578 }
26579 ],
26580 "expression": {
26581 "argumentTypes": null,
26582 "id": 1408,
26583 "name": "liquidity",
26584 "nodeType": "Identifier",
26585 "overloadedDeclarations": [],
26586 "referencedDeclaration": 1383,
26587 "src": "8304:9:2",
26588 "typeDescriptions": {
26589 "typeIdentifier": "t_uint256",
26590 "typeString": "uint256"
26591 }
26592 },
26593 "id": 1409,
26594 "isConstant": false,
26595 "isLValue": false,
26596 "isPure": false,
26597 "lValueRequested": false,
26598 "memberName": "mul",
26599 "nodeType": "MemberAccess",
26600 "referencedDeclaration": 2541,
26601 "src": "8304:13:2",
26602 "typeDescriptions": {
26603 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
26604 "typeString": "function (uint256,uint256) pure returns (uint256)"
26605 }
26606 },
26607 "id": 1421,
26608 "isConstant": false,
26609 "isLValue": false,
26610 "isPure": false,
26611 "kind": "functionCall",
26612 "lValueRequested": false,
26613 "names": [],
26614 "nodeType": "FunctionCall",
26615 "src": "8304:71:2",
26616 "typeDescriptions": {
26617 "typeIdentifier": "t_uint256",
26618 "typeString": "uint256"
26619 }
26620 },
26621 "nodeType": "BinaryOperation",
26622 "operator": "/",
26623 "rightExpression": {
26624 "argumentTypes": null,
26625 "id": 1422,
26626 "name": "_totalSupply",
26627 "nodeType": "Identifier",
26628 "overloadedDeclarations": [],
26629 "referencedDeclaration": 1404,
26630 "src": "8378:12:2",
26631 "typeDescriptions": {
26632 "typeIdentifier": "t_uint256",
26633 "typeString": "uint256"
26634 }
26635 },
26636 "src": "8304:86:2",
26637 "typeDescriptions": {
26638 "typeIdentifier": "t_uint256",
26639 "typeString": "uint256"
26640 }
26641 },
26642 "src": "8294:96:2",
26643 "typeDescriptions": {
26644 "typeIdentifier": "t_uint256",
26645 "typeString": "uint256"
26646 }
26647 },
26648 "id": 1425,
26649 "nodeType": "ExpressionStatement",
26650 "src": "8294:96:2"
26651 },
26652 {
26653 "expression": {
26654 "argumentTypes": null,
26655 "id": 1443,
26656 "isConstant": false,
26657 "isLValue": false,
26658 "isPure": false,
26659 "lValueRequested": false,
26660 "leftHandSide": {
26661 "argumentTypes": null,
26662 "id": 1426,
26663 "name": "amount1",
26664 "nodeType": "Identifier",
26665 "overloadedDeclarations": [],
26666 "referencedDeclaration": 1343,
26667 "src": "8448:7:2",
26668 "typeDescriptions": {
26669 "typeIdentifier": "t_uint256",
26670 "typeString": "uint256"
26671 }
26672 },
26673 "nodeType": "Assignment",
26674 "operator": "=",
26675 "rightHandSide": {
26676 "argumentTypes": null,
26677 "commonType": {
26678 "typeIdentifier": "t_uint256",
26679 "typeString": "uint256"
26680 },
26681 "id": 1442,
26682 "isConstant": false,
26683 "isLValue": false,
26684 "isPure": false,
26685 "lValueRequested": false,
26686 "leftExpression": {
26687 "argumentTypes": null,
26688 "arguments": [
26689 {
26690 "argumentTypes": null,
26691 "condition": {
26692 "argumentTypes": null,
26693 "commonType": {
26694 "typeIdentifier": "t_address",
26695 "typeString": "address"
26696 },
26697 "id": 1431,
26698 "isConstant": false,
26699 "isLValue": false,
26700 "isPure": false,
26701 "lValueRequested": false,
26702 "leftExpression": {
26703 "argumentTypes": null,
26704 "id": 1429,
26705 "name": "token0",
26706 "nodeType": "Identifier",
26707 "overloadedDeclarations": [],
26708 "referencedDeclaration": 631,
26709 "src": "8472:6:2",
26710 "typeDescriptions": {
26711 "typeIdentifier": "t_address",
26712 "typeString": "address"
26713 }
26714 },
26715 "nodeType": "BinaryOperation",
26716 "operator": "==",
26717 "rightExpression": {
26718 "argumentTypes": null,
26719 "id": 1430,
26720 "name": "baseToken",
26721 "nodeType": "Identifier",
26722 "overloadedDeclarations": [],
26723 "referencedDeclaration": 635,
26724 "src": "8482:9:2",
26725 "typeDescriptions": {
26726 "typeIdentifier": "t_address",
26727 "typeString": "address"
26728 }
26729 },
26730 "src": "8472:19:2",
26731 "typeDescriptions": {
26732 "typeIdentifier": "t_bool",
26733 "typeString": "bool"
26734 }
26735 },
26736 "falseExpression": {
26737 "argumentTypes": null,
26738 "commonType": {
26739 "typeIdentifier": "t_uint256",
26740 "typeString": "uint256"
26741 },
26742 "id": 1438,
26743 "isConstant": false,
26744 "isLValue": false,
26745 "isPure": false,
26746 "lValueRequested": false,
26747 "leftExpression": {
26748 "argumentTypes": null,
26749 "id": 1433,
26750 "name": "slope",
26751 "nodeType": "Identifier",
26752 "overloadedDeclarations": [],
26753 "referencedDeclaration": 1391,
26754 "src": "8505:5:2",
26755 "typeDescriptions": {
26756 "typeIdentifier": "t_uint256",
26757 "typeString": "uint256"
26758 }
26759 },
26760 "nodeType": "BinaryOperation",
26761 "operator": "*",
26762 "rightExpression": {
26763 "argumentTypes": null,
26764 "components": [
26765 {
26766 "argumentTypes": null,
26767 "commonType": {
26768 "typeIdentifier": "t_uint256",
26769 "typeString": "uint256"
26770 },
26771 "id": 1436,
26772 "isConstant": false,
26773 "isLValue": false,
26774 "isPure": false,
26775 "lValueRequested": false,
26776 "leftExpression": {
26777 "argumentTypes": null,
26778 "id": 1434,
26779 "name": "balance1",
26780 "nodeType": "Identifier",
26781 "overloadedDeclarations": [],
26782 "referencedDeclaration": 1372,
26783 "src": "8514:8:2",
26784 "typeDescriptions": {
26785 "typeIdentifier": "t_uint256",
26786 "typeString": "uint256"
26787 }
26788 },
26789 "nodeType": "BinaryOperation",
26790 "operator": "**",
26791 "rightExpression": {
26792 "argumentTypes": null,
26793 "id": 1435,
26794 "name": "n",
26795 "nodeType": "Identifier",
26796 "overloadedDeclarations": [],
26797 "referencedDeclaration": 641,
26798 "src": "8526:1:2",
26799 "typeDescriptions": {
26800 "typeIdentifier": "t_uint256",
26801 "typeString": "uint256"
26802 }
26803 },
26804 "src": "8514:13:2",
26805 "typeDescriptions": {
26806 "typeIdentifier": "t_uint256",
26807 "typeString": "uint256"
26808 }
26809 }
26810 ],
26811 "id": 1437,
26812 "isConstant": false,
26813 "isInlineArray": false,
26814 "isLValue": false,
26815 "isPure": false,
26816 "lValueRequested": false,
26817 "nodeType": "TupleExpression",
26818 "src": "8513:15:2",
26819 "typeDescriptions": {
26820 "typeIdentifier": "t_uint256",
26821 "typeString": "uint256"
26822 }
26823 },
26824 "src": "8505:23:2",
26825 "typeDescriptions": {
26826 "typeIdentifier": "t_uint256",
26827 "typeString": "uint256"
26828 }
26829 },
26830 "id": 1439,
26831 "isConstant": false,
26832 "isLValue": false,
26833 "isPure": false,
26834 "lValueRequested": false,
26835 "nodeType": "Conditional",
26836 "src": "8472:56:2",
26837 "trueExpression": {
26838 "argumentTypes": null,
26839 "id": 1432,
26840 "name": "balance1",
26841 "nodeType": "Identifier",
26842 "overloadedDeclarations": [],
26843 "referencedDeclaration": 1372,
26844 "src": "8494:8:2",
26845 "typeDescriptions": {
26846 "typeIdentifier": "t_uint256",
26847 "typeString": "uint256"
26848 }
26849 },
26850 "typeDescriptions": {
26851 "typeIdentifier": "t_uint256",
26852 "typeString": "uint256"
26853 }
26854 }
26855 ],
26856 "expression": {
26857 "argumentTypes": [
26858 {
26859 "typeIdentifier": "t_uint256",
26860 "typeString": "uint256"
26861 }
26862 ],
26863 "expression": {
26864 "argumentTypes": null,
26865 "id": 1427,
26866 "name": "liquidity",
26867 "nodeType": "Identifier",
26868 "overloadedDeclarations": [],
26869 "referencedDeclaration": 1383,
26870 "src": "8458:9:2",
26871 "typeDescriptions": {
26872 "typeIdentifier": "t_uint256",
26873 "typeString": "uint256"
26874 }
26875 },
26876 "id": 1428,
26877 "isConstant": false,
26878 "isLValue": false,
26879 "isPure": false,
26880 "lValueRequested": false,
26881 "memberName": "mul",
26882 "nodeType": "MemberAccess",
26883 "referencedDeclaration": 2541,
26884 "src": "8458:13:2",
26885 "typeDescriptions": {
26886 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
26887 "typeString": "function (uint256,uint256) pure returns (uint256)"
26888 }
26889 },
26890 "id": 1440,
26891 "isConstant": false,
26892 "isLValue": false,
26893 "isPure": false,
26894 "kind": "functionCall",
26895 "lValueRequested": false,
26896 "names": [],
26897 "nodeType": "FunctionCall",
26898 "src": "8458:71:2",
26899 "typeDescriptions": {
26900 "typeIdentifier": "t_uint256",
26901 "typeString": "uint256"
26902 }
26903 },
26904 "nodeType": "BinaryOperation",
26905 "operator": "/",
26906 "rightExpression": {
26907 "argumentTypes": null,
26908 "id": 1441,
26909 "name": "_totalSupply",
26910 "nodeType": "Identifier",
26911 "overloadedDeclarations": [],
26912 "referencedDeclaration": 1404,
26913 "src": "8533:12:2",
26914 "typeDescriptions": {
26915 "typeIdentifier": "t_uint256",
26916 "typeString": "uint256"
26917 }
26918 },
26919 "src": "8458:87:2",
26920 "typeDescriptions": {
26921 "typeIdentifier": "t_uint256",
26922 "typeString": "uint256"
26923 }
26924 },
26925 "src": "8448:97:2",
26926 "typeDescriptions": {
26927 "typeIdentifier": "t_uint256",
26928 "typeString": "uint256"
26929 }
26930 },
26931 "id": 1444,
26932 "nodeType": "ExpressionStatement",
26933 "src": "8448:97:2"
26934 },
26935 {
26936 "expression": {
26937 "argumentTypes": null,
26938 "arguments": [
26939 {
26940 "argumentTypes": null,
26941 "commonType": {
26942 "typeIdentifier": "t_bool",
26943 "typeString": "bool"
26944 },
26945 "id": 1452,
26946 "isConstant": false,
26947 "isLValue": false,
26948 "isPure": false,
26949 "lValueRequested": false,
26950 "leftExpression": {
26951 "argumentTypes": null,
26952 "commonType": {
26953 "typeIdentifier": "t_uint256",
26954 "typeString": "uint256"
26955 },
26956 "id": 1448,
26957 "isConstant": false,
26958 "isLValue": false,
26959 "isPure": false,
26960 "lValueRequested": false,
26961 "leftExpression": {
26962 "argumentTypes": null,
26963 "id": 1446,
26964 "name": "amount0",
26965 "nodeType": "Identifier",
26966 "overloadedDeclarations": [],
26967 "referencedDeclaration": 1341,
26968 "src": "8611:7:2",
26969 "typeDescriptions": {
26970 "typeIdentifier": "t_uint256",
26971 "typeString": "uint256"
26972 }
26973 },
26974 "nodeType": "BinaryOperation",
26975 "operator": ">",
26976 "rightExpression": {
26977 "argumentTypes": null,
26978 "hexValue": "30",
26979 "id": 1447,
26980 "isConstant": false,
26981 "isLValue": false,
26982 "isPure": true,
26983 "kind": "number",
26984 "lValueRequested": false,
26985 "nodeType": "Literal",
26986 "src": "8621:1:2",
26987 "subdenomination": null,
26988 "typeDescriptions": {
26989 "typeIdentifier": "t_rational_0_by_1",
26990 "typeString": "int_const 0"
26991 },
26992 "value": "0"
26993 },
26994 "src": "8611:11:2",
26995 "typeDescriptions": {
26996 "typeIdentifier": "t_bool",
26997 "typeString": "bool"
26998 }
26999 },
27000 "nodeType": "BinaryOperation",
27001 "operator": "&&",
27002 "rightExpression": {
27003 "argumentTypes": null,
27004 "commonType": {
27005 "typeIdentifier": "t_uint256",
27006 "typeString": "uint256"
27007 },
27008 "id": 1451,
27009 "isConstant": false,
27010 "isLValue": false,
27011 "isPure": false,
27012 "lValueRequested": false,
27013 "leftExpression": {
27014 "argumentTypes": null,
27015 "id": 1449,
27016 "name": "amount1",
27017 "nodeType": "Identifier",
27018 "overloadedDeclarations": [],
27019 "referencedDeclaration": 1343,
27020 "src": "8626:7:2",
27021 "typeDescriptions": {
27022 "typeIdentifier": "t_uint256",
27023 "typeString": "uint256"
27024 }
27025 },
27026 "nodeType": "BinaryOperation",
27027 "operator": ">",
27028 "rightExpression": {
27029 "argumentTypes": null,
27030 "hexValue": "30",
27031 "id": 1450,
27032 "isConstant": false,
27033 "isLValue": false,
27034 "isPure": true,
27035 "kind": "number",
27036 "lValueRequested": false,
27037 "nodeType": "Literal",
27038 "src": "8636:1:2",
27039 "subdenomination": null,
27040 "typeDescriptions": {
27041 "typeIdentifier": "t_rational_0_by_1",
27042 "typeString": "int_const 0"
27043 },
27044 "value": "0"
27045 },
27046 "src": "8626:11:2",
27047 "typeDescriptions": {
27048 "typeIdentifier": "t_bool",
27049 "typeString": "bool"
27050 }
27051 },
27052 "src": "8611:26:2",
27053 "typeDescriptions": {
27054 "typeIdentifier": "t_bool",
27055 "typeString": "bool"
27056 }
27057 },
27058 {
27059 "argumentTypes": null,
27060 "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544",
27061 "id": 1453,
27062 "isConstant": false,
27063 "isLValue": false,
27064 "isPure": true,
27065 "kind": "string",
27066 "lValueRequested": false,
27067 "nodeType": "Literal",
27068 "src": "8639:42:2",
27069 "subdenomination": null,
27070 "typeDescriptions": {
27071 "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562",
27072 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\""
27073 },
27074 "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED"
27075 }
27076 ],
27077 "expression": {
27078 "argumentTypes": [
27079 {
27080 "typeIdentifier": "t_bool",
27081 "typeString": "bool"
27082 },
27083 {
27084 "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562",
27085 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\""
27086 }
27087 ],
27088 "id": 1445,
27089 "name": "require",
27090 "nodeType": "Identifier",
27091 "overloadedDeclarations": [
27092 2620,
27093 2621
27094 ],
27095 "referencedDeclaration": 2621,
27096 "src": "8603:7:2",
27097 "typeDescriptions": {
27098 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
27099 "typeString": "function (bool,string memory) pure"
27100 }
27101 },
27102 "id": 1454,
27103 "isConstant": false,
27104 "isLValue": false,
27105 "isPure": false,
27106 "kind": "functionCall",
27107 "lValueRequested": false,
27108 "names": [],
27109 "nodeType": "FunctionCall",
27110 "src": "8603:79:2",
27111 "typeDescriptions": {
27112 "typeIdentifier": "t_tuple$__$",
27113 "typeString": "tuple()"
27114 }
27115 },
27116 "id": 1455,
27117 "nodeType": "ExpressionStatement",
27118 "src": "8603:79:2"
27119 },
27120 {
27121 "expression": {
27122 "argumentTypes": null,
27123 "arguments": [
27124 {
27125 "argumentTypes": null,
27126 "arguments": [
27127 {
27128 "argumentTypes": null,
27129 "id": 1458,
27130 "name": "this",
27131 "nodeType": "Identifier",
27132 "overloadedDeclarations": [],
27133 "referencedDeclaration": 2649,
27134 "src": "8706:4:2",
27135 "typeDescriptions": {
27136 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
27137 "typeString": "contract UniswapV2Pair"
27138 }
27139 }
27140 ],
27141 "expression": {
27142 "argumentTypes": [
27143 {
27144 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
27145 "typeString": "contract UniswapV2Pair"
27146 }
27147 ],
27148 "id": 1457,
27149 "isConstant": false,
27150 "isLValue": false,
27151 "isPure": true,
27152 "lValueRequested": false,
27153 "nodeType": "ElementaryTypeNameExpression",
27154 "src": "8698:7:2",
27155 "typeDescriptions": {
27156 "typeIdentifier": "t_type$_t_address_$",
27157 "typeString": "type(address)"
27158 },
27159 "typeName": "address"
27160 },
27161 "id": 1459,
27162 "isConstant": false,
27163 "isLValue": false,
27164 "isPure": false,
27165 "kind": "typeConversion",
27166 "lValueRequested": false,
27167 "names": [],
27168 "nodeType": "FunctionCall",
27169 "src": "8698:13:2",
27170 "typeDescriptions": {
27171 "typeIdentifier": "t_address",
27172 "typeString": "address"
27173 }
27174 },
27175 {
27176 "argumentTypes": null,
27177 "id": 1460,
27178 "name": "liquidity",
27179 "nodeType": "Identifier",
27180 "overloadedDeclarations": [],
27181 "referencedDeclaration": 1383,
27182 "src": "8713:9:2",
27183 "typeDescriptions": {
27184 "typeIdentifier": "t_uint256",
27185 "typeString": "uint256"
27186 }
27187 }
27188 ],
27189 "expression": {
27190 "argumentTypes": [
27191 {
27192 "typeIdentifier": "t_address",
27193 "typeString": "address"
27194 },
27195 {
27196 "typeIdentifier": "t_uint256",
27197 "typeString": "uint256"
27198 }
27199 ],
27200 "id": 1456,
27201 "name": "_burn",
27202 "nodeType": "Identifier",
27203 "overloadedDeclarations": [],
27204 "referencedDeclaration": 155,
27205 "src": "8692:5:2",
27206 "typeDescriptions": {
27207 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
27208 "typeString": "function (address,uint256)"
27209 }
27210 },
27211 "id": 1461,
27212 "isConstant": false,
27213 "isLValue": false,
27214 "isPure": false,
27215 "kind": "functionCall",
27216 "lValueRequested": false,
27217 "names": [],
27218 "nodeType": "FunctionCall",
27219 "src": "8692:31:2",
27220 "typeDescriptions": {
27221 "typeIdentifier": "t_tuple$__$",
27222 "typeString": "tuple()"
27223 }
27224 },
27225 "id": 1462,
27226 "nodeType": "ExpressionStatement",
27227 "src": "8692:31:2"
27228 },
27229 {
27230 "expression": {
27231 "argumentTypes": null,
27232 "arguments": [
27233 {
27234 "argumentTypes": null,
27235 "id": 1464,
27236 "name": "_token0",
27237 "nodeType": "Identifier",
27238 "overloadedDeclarations": [],
27239 "referencedDeclaration": 1353,
27240 "src": "8747:7:2",
27241 "typeDescriptions": {
27242 "typeIdentifier": "t_address",
27243 "typeString": "address"
27244 }
27245 },
27246 {
27247 "argumentTypes": null,
27248 "id": 1465,
27249 "name": "to",
27250 "nodeType": "Identifier",
27251 "overloadedDeclarations": [],
27252 "referencedDeclaration": 1336,
27253 "src": "8756:2:2",
27254 "typeDescriptions": {
27255 "typeIdentifier": "t_address",
27256 "typeString": "address"
27257 }
27258 },
27259 {
27260 "argumentTypes": null,
27261 "id": 1466,
27262 "name": "amount0",
27263 "nodeType": "Identifier",
27264 "overloadedDeclarations": [],
27265 "referencedDeclaration": 1341,
27266 "src": "8760:7:2",
27267 "typeDescriptions": {
27268 "typeIdentifier": "t_uint256",
27269 "typeString": "uint256"
27270 }
27271 }
27272 ],
27273 "expression": {
27274 "argumentTypes": [
27275 {
27276 "typeIdentifier": "t_address",
27277 "typeString": "address"
27278 },
27279 {
27280 "typeIdentifier": "t_address",
27281 "typeString": "address"
27282 },
27283 {
27284 "typeIdentifier": "t_uint256",
27285 "typeString": "uint256"
27286 }
27287 ],
27288 "id": 1463,
27289 "name": "_safeTransfer",
27290 "nodeType": "Identifier",
27291 "overloadedDeclarations": [],
27292 "referencedDeclaration": 769,
27293 "src": "8733:13:2",
27294 "typeDescriptions": {
27295 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
27296 "typeString": "function (address,address,uint256)"
27297 }
27298 },
27299 "id": 1467,
27300 "isConstant": false,
27301 "isLValue": false,
27302 "isPure": false,
27303 "kind": "functionCall",
27304 "lValueRequested": false,
27305 "names": [],
27306 "nodeType": "FunctionCall",
27307 "src": "8733:35:2",
27308 "typeDescriptions": {
27309 "typeIdentifier": "t_tuple$__$",
27310 "typeString": "tuple()"
27311 }
27312 },
27313 "id": 1468,
27314 "nodeType": "ExpressionStatement",
27315 "src": "8733:35:2"
27316 },
27317 {
27318 "expression": {
27319 "argumentTypes": null,
27320 "arguments": [
27321 {
27322 "argumentTypes": null,
27323 "id": 1470,
27324 "name": "_token1",
27325 "nodeType": "Identifier",
27326 "overloadedDeclarations": [],
27327 "referencedDeclaration": 1357,
27328 "src": "8792:7:2",
27329 "typeDescriptions": {
27330 "typeIdentifier": "t_address",
27331 "typeString": "address"
27332 }
27333 },
27334 {
27335 "argumentTypes": null,
27336 "id": 1471,
27337 "name": "to",
27338 "nodeType": "Identifier",
27339 "overloadedDeclarations": [],
27340 "referencedDeclaration": 1336,
27341 "src": "8801:2:2",
27342 "typeDescriptions": {
27343 "typeIdentifier": "t_address",
27344 "typeString": "address"
27345 }
27346 },
27347 {
27348 "argumentTypes": null,
27349 "id": 1472,
27350 "name": "amount1",
27351 "nodeType": "Identifier",
27352 "overloadedDeclarations": [],
27353 "referencedDeclaration": 1343,
27354 "src": "8805:7:2",
27355 "typeDescriptions": {
27356 "typeIdentifier": "t_uint256",
27357 "typeString": "uint256"
27358 }
27359 }
27360 ],
27361 "expression": {
27362 "argumentTypes": [
27363 {
27364 "typeIdentifier": "t_address",
27365 "typeString": "address"
27366 },
27367 {
27368 "typeIdentifier": "t_address",
27369 "typeString": "address"
27370 },
27371 {
27372 "typeIdentifier": "t_uint256",
27373 "typeString": "uint256"
27374 }
27375 ],
27376 "id": 1469,
27377 "name": "_safeTransfer",
27378 "nodeType": "Identifier",
27379 "overloadedDeclarations": [],
27380 "referencedDeclaration": 769,
27381 "src": "8778:13:2",
27382 "typeDescriptions": {
27383 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
27384 "typeString": "function (address,address,uint256)"
27385 }
27386 },
27387 "id": 1473,
27388 "isConstant": false,
27389 "isLValue": false,
27390 "isPure": false,
27391 "kind": "functionCall",
27392 "lValueRequested": false,
27393 "names": [],
27394 "nodeType": "FunctionCall",
27395 "src": "8778:35:2",
27396 "typeDescriptions": {
27397 "typeIdentifier": "t_tuple$__$",
27398 "typeString": "tuple()"
27399 }
27400 },
27401 "id": 1474,
27402 "nodeType": "ExpressionStatement",
27403 "src": "8778:35:2"
27404 },
27405 {
27406 "expression": {
27407 "argumentTypes": null,
27408 "id": 1484,
27409 "isConstant": false,
27410 "isLValue": false,
27411 "isPure": false,
27412 "lValueRequested": false,
27413 "leftHandSide": {
27414 "argumentTypes": null,
27415 "id": 1475,
27416 "name": "balance0",
27417 "nodeType": "Identifier",
27418 "overloadedDeclarations": [],
27419 "referencedDeclaration": 1361,
27420 "src": "8823:8:2",
27421 "typeDescriptions": {
27422 "typeIdentifier": "t_uint256",
27423 "typeString": "uint256"
27424 }
27425 },
27426 "nodeType": "Assignment",
27427 "operator": "=",
27428 "rightHandSide": {
27429 "argumentTypes": null,
27430 "arguments": [
27431 {
27432 "argumentTypes": null,
27433 "arguments": [
27434 {
27435 "argumentTypes": null,
27436 "id": 1481,
27437 "name": "this",
27438 "nodeType": "Identifier",
27439 "overloadedDeclarations": [],
27440 "referencedDeclaration": 2649,
27441 "src": "8868:4:2",
27442 "typeDescriptions": {
27443 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
27444 "typeString": "contract UniswapV2Pair"
27445 }
27446 }
27447 ],
27448 "expression": {
27449 "argumentTypes": [
27450 {
27451 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
27452 "typeString": "contract UniswapV2Pair"
27453 }
27454 ],
27455 "id": 1480,
27456 "isConstant": false,
27457 "isLValue": false,
27458 "isPure": true,
27459 "lValueRequested": false,
27460 "nodeType": "ElementaryTypeNameExpression",
27461 "src": "8860:7:2",
27462 "typeDescriptions": {
27463 "typeIdentifier": "t_type$_t_address_$",
27464 "typeString": "type(address)"
27465 },
27466 "typeName": "address"
27467 },
27468 "id": 1482,
27469 "isConstant": false,
27470 "isLValue": false,
27471 "isPure": false,
27472 "kind": "typeConversion",
27473 "lValueRequested": false,
27474 "names": [],
27475 "nodeType": "FunctionCall",
27476 "src": "8860:13:2",
27477 "typeDescriptions": {
27478 "typeIdentifier": "t_address",
27479 "typeString": "address"
27480 }
27481 }
27482 ],
27483 "expression": {
27484 "argumentTypes": [
27485 {
27486 "typeIdentifier": "t_address",
27487 "typeString": "address"
27488 }
27489 ],
27490 "expression": {
27491 "argumentTypes": null,
27492 "arguments": [
27493 {
27494 "argumentTypes": null,
27495 "id": 1477,
27496 "name": "_token0",
27497 "nodeType": "Identifier",
27498 "overloadedDeclarations": [],
27499 "referencedDeclaration": 1353,
27500 "src": "8841:7:2",
27501 "typeDescriptions": {
27502 "typeIdentifier": "t_address",
27503 "typeString": "address"
27504 }
27505 }
27506 ],
27507 "expression": {
27508 "argumentTypes": [
27509 {
27510 "typeIdentifier": "t_address",
27511 "typeString": "address"
27512 }
27513 ],
27514 "id": 1476,
27515 "name": "IERC20",
27516 "nodeType": "Identifier",
27517 "overloadedDeclarations": [],
27518 "referencedDeclaration": 1918,
27519 "src": "8834:6:2",
27520 "typeDescriptions": {
27521 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
27522 "typeString": "type(contract IERC20)"
27523 }
27524 },
27525 "id": 1478,
27526 "isConstant": false,
27527 "isLValue": false,
27528 "isPure": false,
27529 "kind": "typeConversion",
27530 "lValueRequested": false,
27531 "names": [],
27532 "nodeType": "FunctionCall",
27533 "src": "8834:15:2",
27534 "typeDescriptions": {
27535 "typeIdentifier": "t_contract$_IERC20_$1918",
27536 "typeString": "contract IERC20"
27537 }
27538 },
27539 "id": 1479,
27540 "isConstant": false,
27541 "isLValue": false,
27542 "isPure": false,
27543 "lValueRequested": false,
27544 "memberName": "balanceOf",
27545 "nodeType": "MemberAccess",
27546 "referencedDeclaration": 1879,
27547 "src": "8834:25:2",
27548 "typeDescriptions": {
27549 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
27550 "typeString": "function (address) view external returns (uint256)"
27551 }
27552 },
27553 "id": 1483,
27554 "isConstant": false,
27555 "isLValue": false,
27556 "isPure": false,
27557 "kind": "functionCall",
27558 "lValueRequested": false,
27559 "names": [],
27560 "nodeType": "FunctionCall",
27561 "src": "8834:40:2",
27562 "typeDescriptions": {
27563 "typeIdentifier": "t_uint256",
27564 "typeString": "uint256"
27565 }
27566 },
27567 "src": "8823:51:2",
27568 "typeDescriptions": {
27569 "typeIdentifier": "t_uint256",
27570 "typeString": "uint256"
27571 }
27572 },
27573 "id": 1485,
27574 "nodeType": "ExpressionStatement",
27575 "src": "8823:51:2"
27576 },
27577 {
27578 "expression": {
27579 "argumentTypes": null,
27580 "id": 1495,
27581 "isConstant": false,
27582 "isLValue": false,
27583 "isPure": false,
27584 "lValueRequested": false,
27585 "leftHandSide": {
27586 "argumentTypes": null,
27587 "id": 1486,
27588 "name": "balance1",
27589 "nodeType": "Identifier",
27590 "overloadedDeclarations": [],
27591 "referencedDeclaration": 1372,
27592 "src": "8884:8:2",
27593 "typeDescriptions": {
27594 "typeIdentifier": "t_uint256",
27595 "typeString": "uint256"
27596 }
27597 },
27598 "nodeType": "Assignment",
27599 "operator": "=",
27600 "rightHandSide": {
27601 "argumentTypes": null,
27602 "arguments": [
27603 {
27604 "argumentTypes": null,
27605 "arguments": [
27606 {
27607 "argumentTypes": null,
27608 "id": 1492,
27609 "name": "this",
27610 "nodeType": "Identifier",
27611 "overloadedDeclarations": [],
27612 "referencedDeclaration": 2649,
27613 "src": "8929:4:2",
27614 "typeDescriptions": {
27615 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
27616 "typeString": "contract UniswapV2Pair"
27617 }
27618 }
27619 ],
27620 "expression": {
27621 "argumentTypes": [
27622 {
27623 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
27624 "typeString": "contract UniswapV2Pair"
27625 }
27626 ],
27627 "id": 1491,
27628 "isConstant": false,
27629 "isLValue": false,
27630 "isPure": true,
27631 "lValueRequested": false,
27632 "nodeType": "ElementaryTypeNameExpression",
27633 "src": "8921:7:2",
27634 "typeDescriptions": {
27635 "typeIdentifier": "t_type$_t_address_$",
27636 "typeString": "type(address)"
27637 },
27638 "typeName": "address"
27639 },
27640 "id": 1493,
27641 "isConstant": false,
27642 "isLValue": false,
27643 "isPure": false,
27644 "kind": "typeConversion",
27645 "lValueRequested": false,
27646 "names": [],
27647 "nodeType": "FunctionCall",
27648 "src": "8921:13:2",
27649 "typeDescriptions": {
27650 "typeIdentifier": "t_address",
27651 "typeString": "address"
27652 }
27653 }
27654 ],
27655 "expression": {
27656 "argumentTypes": [
27657 {
27658 "typeIdentifier": "t_address",
27659 "typeString": "address"
27660 }
27661 ],
27662 "expression": {
27663 "argumentTypes": null,
27664 "arguments": [
27665 {
27666 "argumentTypes": null,
27667 "id": 1488,
27668 "name": "_token1",
27669 "nodeType": "Identifier",
27670 "overloadedDeclarations": [],
27671 "referencedDeclaration": 1357,
27672 "src": "8902:7:2",
27673 "typeDescriptions": {
27674 "typeIdentifier": "t_address",
27675 "typeString": "address"
27676 }
27677 }
27678 ],
27679 "expression": {
27680 "argumentTypes": [
27681 {
27682 "typeIdentifier": "t_address",
27683 "typeString": "address"
27684 }
27685 ],
27686 "id": 1487,
27687 "name": "IERC20",
27688 "nodeType": "Identifier",
27689 "overloadedDeclarations": [],
27690 "referencedDeclaration": 1918,
27691 "src": "8895:6:2",
27692 "typeDescriptions": {
27693 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
27694 "typeString": "type(contract IERC20)"
27695 }
27696 },
27697 "id": 1489,
27698 "isConstant": false,
27699 "isLValue": false,
27700 "isPure": false,
27701 "kind": "typeConversion",
27702 "lValueRequested": false,
27703 "names": [],
27704 "nodeType": "FunctionCall",
27705 "src": "8895:15:2",
27706 "typeDescriptions": {
27707 "typeIdentifier": "t_contract$_IERC20_$1918",
27708 "typeString": "contract IERC20"
27709 }
27710 },
27711 "id": 1490,
27712 "isConstant": false,
27713 "isLValue": false,
27714 "isPure": false,
27715 "lValueRequested": false,
27716 "memberName": "balanceOf",
27717 "nodeType": "MemberAccess",
27718 "referencedDeclaration": 1879,
27719 "src": "8895:25:2",
27720 "typeDescriptions": {
27721 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
27722 "typeString": "function (address) view external returns (uint256)"
27723 }
27724 },
27725 "id": 1494,
27726 "isConstant": false,
27727 "isLValue": false,
27728 "isPure": false,
27729 "kind": "functionCall",
27730 "lValueRequested": false,
27731 "names": [],
27732 "nodeType": "FunctionCall",
27733 "src": "8895:40:2",
27734 "typeDescriptions": {
27735 "typeIdentifier": "t_uint256",
27736 "typeString": "uint256"
27737 }
27738 },
27739 "src": "8884:51:2",
27740 "typeDescriptions": {
27741 "typeIdentifier": "t_uint256",
27742 "typeString": "uint256"
27743 }
27744 },
27745 "id": 1496,
27746 "nodeType": "ExpressionStatement",
27747 "src": "8884:51:2"
27748 },
27749 {
27750 "expression": {
27751 "argumentTypes": null,
27752 "arguments": [
27753 {
27754 "argumentTypes": null,
27755 "id": 1498,
27756 "name": "balance0",
27757 "nodeType": "Identifier",
27758 "overloadedDeclarations": [],
27759 "referencedDeclaration": 1361,
27760 "src": "8954:8:2",
27761 "typeDescriptions": {
27762 "typeIdentifier": "t_uint256",
27763 "typeString": "uint256"
27764 }
27765 },
27766 {
27767 "argumentTypes": null,
27768 "id": 1499,
27769 "name": "balance1",
27770 "nodeType": "Identifier",
27771 "overloadedDeclarations": [],
27772 "referencedDeclaration": 1372,
27773 "src": "8964:8:2",
27774 "typeDescriptions": {
27775 "typeIdentifier": "t_uint256",
27776 "typeString": "uint256"
27777 }
27778 },
27779 {
27780 "argumentTypes": null,
27781 "id": 1500,
27782 "name": "_reserve0",
27783 "nodeType": "Identifier",
27784 "overloadedDeclarations": [],
27785 "referencedDeclaration": 1346,
27786 "src": "8974:9:2",
27787 "typeDescriptions": {
27788 "typeIdentifier": "t_uint112",
27789 "typeString": "uint112"
27790 }
27791 },
27792 {
27793 "argumentTypes": null,
27794 "id": 1501,
27795 "name": "_reserve1",
27796 "nodeType": "Identifier",
27797 "overloadedDeclarations": [],
27798 "referencedDeclaration": 1348,
27799 "src": "8985:9:2",
27800 "typeDescriptions": {
27801 "typeIdentifier": "t_uint112",
27802 "typeString": "uint112"
27803 }
27804 }
27805 ],
27806 "expression": {
27807 "argumentTypes": [
27808 {
27809 "typeIdentifier": "t_uint256",
27810 "typeString": "uint256"
27811 },
27812 {
27813 "typeIdentifier": "t_uint256",
27814 "typeString": "uint256"
27815 },
27816 {
27817 "typeIdentifier": "t_uint112",
27818 "typeString": "uint112"
27819 },
27820 {
27821 "typeIdentifier": "t_uint112",
27822 "typeString": "uint112"
27823 }
27824 ],
27825 "id": 1497,
27826 "name": "_update",
27827 "nodeType": "Identifier",
27828 "overloadedDeclarations": [],
27829 "referencedDeclaration": 1029,
27830 "src": "8946:7:2",
27831 "typeDescriptions": {
27832 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$",
27833 "typeString": "function (uint256,uint256,uint112,uint112)"
27834 }
27835 },
27836 "id": 1502,
27837 "isConstant": false,
27838 "isLValue": false,
27839 "isPure": false,
27840 "kind": "functionCall",
27841 "lValueRequested": false,
27842 "names": [],
27843 "nodeType": "FunctionCall",
27844 "src": "8946:49:2",
27845 "typeDescriptions": {
27846 "typeIdentifier": "t_tuple$__$",
27847 "typeString": "tuple()"
27848 }
27849 },
27850 "id": 1503,
27851 "nodeType": "ExpressionStatement",
27852 "src": "8946:49:2"
27853 },
27854 {
27855 "condition": {
27856 "argumentTypes": null,
27857 "id": 1504,
27858 "name": "feeOn",
27859 "nodeType": "Identifier",
27860 "overloadedDeclarations": [],
27861 "referencedDeclaration": 1397,
27862 "src": "9009:5:2",
27863 "typeDescriptions": {
27864 "typeIdentifier": "t_bool",
27865 "typeString": "bool"
27866 }
27867 },
27868 "falseBody": null,
27869 "id": 1514,
27870 "nodeType": "IfStatement",
27871 "src": "9005:47:2",
27872 "trueBody": {
27873 "expression": {
27874 "argumentTypes": null,
27875 "id": 1512,
27876 "isConstant": false,
27877 "isLValue": false,
27878 "isPure": false,
27879 "lValueRequested": false,
27880 "leftHandSide": {
27881 "argumentTypes": null,
27882 "id": 1505,
27883 "name": "kLast",
27884 "nodeType": "Identifier",
27885 "overloadedDeclarations": [],
27886 "referencedDeclaration": 655,
27887 "src": "9016:5:2",
27888 "typeDescriptions": {
27889 "typeIdentifier": "t_uint256",
27890 "typeString": "uint256"
27891 }
27892 },
27893 "nodeType": "Assignment",
27894 "operator": "=",
27895 "rightHandSide": {
27896 "argumentTypes": null,
27897 "arguments": [
27898 {
27899 "argumentTypes": null,
27900 "id": 1510,
27901 "name": "reserve1",
27902 "nodeType": "Identifier",
27903 "overloadedDeclarations": [],
27904 "referencedDeclaration": 647,
27905 "src": "9043:8:2",
27906 "typeDescriptions": {
27907 "typeIdentifier": "t_uint112",
27908 "typeString": "uint112"
27909 }
27910 }
27911 ],
27912 "expression": {
27913 "argumentTypes": [
27914 {
27915 "typeIdentifier": "t_uint112",
27916 "typeString": "uint112"
27917 }
27918 ],
27919 "expression": {
27920 "argumentTypes": null,
27921 "arguments": [
27922 {
27923 "argumentTypes": null,
27924 "id": 1507,
27925 "name": "reserve0",
27926 "nodeType": "Identifier",
27927 "overloadedDeclarations": [],
27928 "referencedDeclaration": 645,
27929 "src": "9029:8:2",
27930 "typeDescriptions": {
27931 "typeIdentifier": "t_uint112",
27932 "typeString": "uint112"
27933 }
27934 }
27935 ],
27936 "expression": {
27937 "argumentTypes": [
27938 {
27939 "typeIdentifier": "t_uint112",
27940 "typeString": "uint112"
27941 }
27942 ],
27943 "id": 1506,
27944 "isConstant": false,
27945 "isLValue": false,
27946 "isPure": true,
27947 "lValueRequested": false,
27948 "nodeType": "ElementaryTypeNameExpression",
27949 "src": "9024:4:2",
27950 "typeDescriptions": {
27951 "typeIdentifier": "t_type$_t_uint256_$",
27952 "typeString": "type(uint256)"
27953 },
27954 "typeName": "uint"
27955 },
27956 "id": 1508,
27957 "isConstant": false,
27958 "isLValue": false,
27959 "isPure": false,
27960 "kind": "typeConversion",
27961 "lValueRequested": false,
27962 "names": [],
27963 "nodeType": "FunctionCall",
27964 "src": "9024:14:2",
27965 "typeDescriptions": {
27966 "typeIdentifier": "t_uint256",
27967 "typeString": "uint256"
27968 }
27969 },
27970 "id": 1509,
27971 "isConstant": false,
27972 "isLValue": false,
27973 "isPure": false,
27974 "lValueRequested": false,
27975 "memberName": "mul",
27976 "nodeType": "MemberAccess",
27977 "referencedDeclaration": 2541,
27978 "src": "9024:18:2",
27979 "typeDescriptions": {
27980 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
27981 "typeString": "function (uint256,uint256) pure returns (uint256)"
27982 }
27983 },
27984 "id": 1511,
27985 "isConstant": false,
27986 "isLValue": false,
27987 "isPure": false,
27988 "kind": "functionCall",
27989 "lValueRequested": false,
27990 "names": [],
27991 "nodeType": "FunctionCall",
27992 "src": "9024:28:2",
27993 "typeDescriptions": {
27994 "typeIdentifier": "t_uint256",
27995 "typeString": "uint256"
27996 }
27997 },
27998 "src": "9016:36:2",
27999 "typeDescriptions": {
28000 "typeIdentifier": "t_uint256",
28001 "typeString": "uint256"
28002 }
28003 },
28004 "id": 1513,
28005 "nodeType": "ExpressionStatement",
28006 "src": "9016:36:2"
28007 }
28008 },
28009 {
28010 "eventCall": {
28011 "argumentTypes": null,
28012 "arguments": [
28013 {
28014 "argumentTypes": null,
28015 "expression": {
28016 "argumentTypes": null,
28017 "id": 1516,
28018 "name": "msg",
28019 "nodeType": "Identifier",
28020 "overloadedDeclarations": [],
28021 "referencedDeclaration": 2617,
28022 "src": "9112:3:2",
28023 "typeDescriptions": {
28024 "typeIdentifier": "t_magic_message",
28025 "typeString": "msg"
28026 }
28027 },
28028 "id": 1517,
28029 "isConstant": false,
28030 "isLValue": false,
28031 "isPure": false,
28032 "lValueRequested": false,
28033 "memberName": "sender",
28034 "nodeType": "MemberAccess",
28035 "referencedDeclaration": null,
28036 "src": "9112:10:2",
28037 "typeDescriptions": {
28038 "typeIdentifier": "t_address_payable",
28039 "typeString": "address payable"
28040 }
28041 },
28042 {
28043 "argumentTypes": null,
28044 "id": 1518,
28045 "name": "amount0",
28046 "nodeType": "Identifier",
28047 "overloadedDeclarations": [],
28048 "referencedDeclaration": 1341,
28049 "src": "9124:7:2",
28050 "typeDescriptions": {
28051 "typeIdentifier": "t_uint256",
28052 "typeString": "uint256"
28053 }
28054 },
28055 {
28056 "argumentTypes": null,
28057 "id": 1519,
28058 "name": "amount1",
28059 "nodeType": "Identifier",
28060 "overloadedDeclarations": [],
28061 "referencedDeclaration": 1343,
28062 "src": "9133:7:2",
28063 "typeDescriptions": {
28064 "typeIdentifier": "t_uint256",
28065 "typeString": "uint256"
28066 }
28067 },
28068 {
28069 "argumentTypes": null,
28070 "id": 1520,
28071 "name": "to",
28072 "nodeType": "Identifier",
28073 "overloadedDeclarations": [],
28074 "referencedDeclaration": 1336,
28075 "src": "9142:2:2",
28076 "typeDescriptions": {
28077 "typeIdentifier": "t_address",
28078 "typeString": "address"
28079 }
28080 }
28081 ],
28082 "expression": {
28083 "argumentTypes": [
28084 {
28085 "typeIdentifier": "t_address_payable",
28086 "typeString": "address payable"
28087 },
28088 {
28089 "typeIdentifier": "t_uint256",
28090 "typeString": "uint256"
28091 },
28092 {
28093 "typeIdentifier": "t_uint256",
28094 "typeString": "uint256"
28095 },
28096 {
28097 "typeIdentifier": "t_address",
28098 "typeString": "address"
28099 }
28100 ],
28101 "id": 1515,
28102 "name": "Burn",
28103 "nodeType": "Identifier",
28104 "overloadedDeclarations": [
28105 787
28106 ],
28107 "referencedDeclaration": 787,
28108 "src": "9107:4:2",
28109 "typeDescriptions": {
28110 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
28111 "typeString": "function (address,uint256,uint256,address)"
28112 }
28113 },
28114 "id": 1521,
28115 "isConstant": false,
28116 "isLValue": false,
28117 "isPure": false,
28118 "kind": "functionCall",
28119 "lValueRequested": false,
28120 "names": [],
28121 "nodeType": "FunctionCall",
28122 "src": "9107:38:2",
28123 "typeDescriptions": {
28124 "typeIdentifier": "t_tuple$__$",
28125 "typeString": "tuple()"
28126 }
28127 },
28128 "id": 1522,
28129 "nodeType": "EmitStatement",
28130 "src": "9102:43:2"
28131 }
28132 ]
28133 },
28134 "documentation": null,
28135 "id": 1524,
28136 "implemented": true,
28137 "kind": "function",
28138 "modifiers": [
28139 {
28140 "arguments": null,
28141 "id": 1339,
28142 "modifierName": {
28143 "argumentTypes": null,
28144 "id": 1338,
28145 "name": "lock",
28146 "nodeType": "Identifier",
28147 "overloadedDeclarations": [],
28148 "referencedDeclaration": 677,
28149 "src": "7616:4:2",
28150 "typeDescriptions": {
28151 "typeIdentifier": "t_modifier$__$",
28152 "typeString": "modifier ()"
28153 }
28154 },
28155 "nodeType": "ModifierInvocation",
28156 "src": "7616:4:2"
28157 }
28158 ],
28159 "name": "burn",
28160 "nodeType": "FunctionDefinition",
28161 "parameters": {
28162 "id": 1337,
28163 "nodeType": "ParameterList",
28164 "parameters": [
28165 {
28166 "constant": false,
28167 "id": 1336,
28168 "name": "to",
28169 "nodeType": "VariableDeclaration",
28170 "scope": 1524,
28171 "src": "7595:10:2",
28172 "stateVariable": false,
28173 "storageLocation": "default",
28174 "typeDescriptions": {
28175 "typeIdentifier": "t_address",
28176 "typeString": "address"
28177 },
28178 "typeName": {
28179 "id": 1335,
28180 "name": "address",
28181 "nodeType": "ElementaryTypeName",
28182 "src": "7595:7:2",
28183 "stateMutability": "nonpayable",
28184 "typeDescriptions": {
28185 "typeIdentifier": "t_address",
28186 "typeString": "address"
28187 }
28188 },
28189 "value": null,
28190 "visibility": "internal"
28191 }
28192 ],
28193 "src": "7594:12:2"
28194 },
28195 "returnParameters": {
28196 "id": 1344,
28197 "nodeType": "ParameterList",
28198 "parameters": [
28199 {
28200 "constant": false,
28201 "id": 1341,
28202 "name": "amount0",
28203 "nodeType": "VariableDeclaration",
28204 "scope": 1524,
28205 "src": "7630:12:2",
28206 "stateVariable": false,
28207 "storageLocation": "default",
28208 "typeDescriptions": {
28209 "typeIdentifier": "t_uint256",
28210 "typeString": "uint256"
28211 },
28212 "typeName": {
28213 "id": 1340,
28214 "name": "uint",
28215 "nodeType": "ElementaryTypeName",
28216 "src": "7630:4:2",
28217 "typeDescriptions": {
28218 "typeIdentifier": "t_uint256",
28219 "typeString": "uint256"
28220 }
28221 },
28222 "value": null,
28223 "visibility": "internal"
28224 },
28225 {
28226 "constant": false,
28227 "id": 1343,
28228 "name": "amount1",
28229 "nodeType": "VariableDeclaration",
28230 "scope": 1524,
28231 "src": "7644:12:2",
28232 "stateVariable": false,
28233 "storageLocation": "default",
28234 "typeDescriptions": {
28235 "typeIdentifier": "t_uint256",
28236 "typeString": "uint256"
28237 },
28238 "typeName": {
28239 "id": 1342,
28240 "name": "uint",
28241 "nodeType": "ElementaryTypeName",
28242 "src": "7644:4:2",
28243 "typeDescriptions": {
28244 "typeIdentifier": "t_uint256",
28245 "typeString": "uint256"
28246 }
28247 },
28248 "value": null,
28249 "visibility": "internal"
28250 }
28251 ],
28252 "src": "7629:28:2"
28253 },
28254 "scope": 1834,
28255 "src": "7581:1571:2",
28256 "stateMutability": "nonpayable",
28257 "superFunction": 2349,
28258 "visibility": "external"
28259 },
28260 {
28261 "body": {
28262 "id": 1757,
28263 "nodeType": "Block",
28264 "src": "9356:1767:2",
28265 "statements": [
28266 {
28267 "expression": {
28268 "argumentTypes": null,
28269 "arguments": [
28270 {
28271 "argumentTypes": null,
28272 "commonType": {
28273 "typeIdentifier": "t_bool",
28274 "typeString": "bool"
28275 },
28276 "id": 1544,
28277 "isConstant": false,
28278 "isLValue": false,
28279 "isPure": false,
28280 "lValueRequested": false,
28281 "leftExpression": {
28282 "argumentTypes": null,
28283 "commonType": {
28284 "typeIdentifier": "t_uint256",
28285 "typeString": "uint256"
28286 },
28287 "id": 1540,
28288 "isConstant": false,
28289 "isLValue": false,
28290 "isPure": false,
28291 "lValueRequested": false,
28292 "leftExpression": {
28293 "argumentTypes": null,
28294 "id": 1538,
28295 "name": "amount0Out",
28296 "nodeType": "Identifier",
28297 "overloadedDeclarations": [],
28298 "referencedDeclaration": 1526,
28299 "src": "9374:10:2",
28300 "typeDescriptions": {
28301 "typeIdentifier": "t_uint256",
28302 "typeString": "uint256"
28303 }
28304 },
28305 "nodeType": "BinaryOperation",
28306 "operator": ">",
28307 "rightExpression": {
28308 "argumentTypes": null,
28309 "hexValue": "30",
28310 "id": 1539,
28311 "isConstant": false,
28312 "isLValue": false,
28313 "isPure": true,
28314 "kind": "number",
28315 "lValueRequested": false,
28316 "nodeType": "Literal",
28317 "src": "9387:1:2",
28318 "subdenomination": null,
28319 "typeDescriptions": {
28320 "typeIdentifier": "t_rational_0_by_1",
28321 "typeString": "int_const 0"
28322 },
28323 "value": "0"
28324 },
28325 "src": "9374:14:2",
28326 "typeDescriptions": {
28327 "typeIdentifier": "t_bool",
28328 "typeString": "bool"
28329 }
28330 },
28331 "nodeType": "BinaryOperation",
28332 "operator": "||",
28333 "rightExpression": {
28334 "argumentTypes": null,
28335 "commonType": {
28336 "typeIdentifier": "t_uint256",
28337 "typeString": "uint256"
28338 },
28339 "id": 1543,
28340 "isConstant": false,
28341 "isLValue": false,
28342 "isPure": false,
28343 "lValueRequested": false,
28344 "leftExpression": {
28345 "argumentTypes": null,
28346 "id": 1541,
28347 "name": "amount1Out",
28348 "nodeType": "Identifier",
28349 "overloadedDeclarations": [],
28350 "referencedDeclaration": 1528,
28351 "src": "9392:10:2",
28352 "typeDescriptions": {
28353 "typeIdentifier": "t_uint256",
28354 "typeString": "uint256"
28355 }
28356 },
28357 "nodeType": "BinaryOperation",
28358 "operator": ">",
28359 "rightExpression": {
28360 "argumentTypes": null,
28361 "hexValue": "30",
28362 "id": 1542,
28363 "isConstant": false,
28364 "isLValue": false,
28365 "isPure": true,
28366 "kind": "number",
28367 "lValueRequested": false,
28368 "nodeType": "Literal",
28369 "src": "9405:1:2",
28370 "subdenomination": null,
28371 "typeDescriptions": {
28372 "typeIdentifier": "t_rational_0_by_1",
28373 "typeString": "int_const 0"
28374 },
28375 "value": "0"
28376 },
28377 "src": "9392:14:2",
28378 "typeDescriptions": {
28379 "typeIdentifier": "t_bool",
28380 "typeString": "bool"
28381 }
28382 },
28383 "src": "9374:32:2",
28384 "typeDescriptions": {
28385 "typeIdentifier": "t_bool",
28386 "typeString": "bool"
28387 }
28388 },
28389 {
28390 "argumentTypes": null,
28391 "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54",
28392 "id": 1545,
28393 "isConstant": false,
28394 "isLValue": false,
28395 "isPure": true,
28396 "kind": "string",
28397 "lValueRequested": false,
28398 "nodeType": "Literal",
28399 "src": "9408:39:2",
28400 "subdenomination": null,
28401 "typeDescriptions": {
28402 "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83",
28403 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\""
28404 },
28405 "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT"
28406 }
28407 ],
28408 "expression": {
28409 "argumentTypes": [
28410 {
28411 "typeIdentifier": "t_bool",
28412 "typeString": "bool"
28413 },
28414 {
28415 "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83",
28416 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\""
28417 }
28418 ],
28419 "id": 1537,
28420 "name": "require",
28421 "nodeType": "Identifier",
28422 "overloadedDeclarations": [
28423 2620,
28424 2621
28425 ],
28426 "referencedDeclaration": 2621,
28427 "src": "9366:7:2",
28428 "typeDescriptions": {
28429 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
28430 "typeString": "function (bool,string memory) pure"
28431 }
28432 },
28433 "id": 1546,
28434 "isConstant": false,
28435 "isLValue": false,
28436 "isPure": false,
28437 "kind": "functionCall",
28438 "lValueRequested": false,
28439 "names": [],
28440 "nodeType": "FunctionCall",
28441 "src": "9366:82:2",
28442 "typeDescriptions": {
28443 "typeIdentifier": "t_tuple$__$",
28444 "typeString": "tuple()"
28445 }
28446 },
28447 "id": 1547,
28448 "nodeType": "ExpressionStatement",
28449 "src": "9366:82:2"
28450 },
28451 {
28452 "assignments": [
28453 1549,
28454 1551,
28455 null
28456 ],
28457 "declarations": [
28458 {
28459 "constant": false,
28460 "id": 1549,
28461 "name": "_reserve0",
28462 "nodeType": "VariableDeclaration",
28463 "scope": 1757,
28464 "src": "9459:17:2",
28465 "stateVariable": false,
28466 "storageLocation": "default",
28467 "typeDescriptions": {
28468 "typeIdentifier": "t_uint112",
28469 "typeString": "uint112"
28470 },
28471 "typeName": {
28472 "id": 1548,
28473 "name": "uint112",
28474 "nodeType": "ElementaryTypeName",
28475 "src": "9459:7:2",
28476 "typeDescriptions": {
28477 "typeIdentifier": "t_uint112",
28478 "typeString": "uint112"
28479 }
28480 },
28481 "value": null,
28482 "visibility": "internal"
28483 },
28484 {
28485 "constant": false,
28486 "id": 1551,
28487 "name": "_reserve1",
28488 "nodeType": "VariableDeclaration",
28489 "scope": 1757,
28490 "src": "9478:17:2",
28491 "stateVariable": false,
28492 "storageLocation": "default",
28493 "typeDescriptions": {
28494 "typeIdentifier": "t_uint112",
28495 "typeString": "uint112"
28496 },
28497 "typeName": {
28498 "id": 1550,
28499 "name": "uint112",
28500 "nodeType": "ElementaryTypeName",
28501 "src": "9478:7:2",
28502 "typeDescriptions": {
28503 "typeIdentifier": "t_uint112",
28504 "typeString": "uint112"
28505 }
28506 },
28507 "value": null,
28508 "visibility": "internal"
28509 },
28510 null
28511 ],
28512 "id": 1554,
28513 "initialValue": {
28514 "argumentTypes": null,
28515 "arguments": [],
28516 "expression": {
28517 "argumentTypes": [],
28518 "id": 1552,
28519 "name": "getReserves",
28520 "nodeType": "Identifier",
28521 "overloadedDeclarations": [],
28522 "referencedDeclaration": 699,
28523 "src": "9501:11:2",
28524 "typeDescriptions": {
28525 "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$",
28526 "typeString": "function () view returns (uint112,uint112,uint32)"
28527 }
28528 },
28529 "id": 1553,
28530 "isConstant": false,
28531 "isLValue": false,
28532 "isPure": false,
28533 "kind": "functionCall",
28534 "lValueRequested": false,
28535 "names": [],
28536 "nodeType": "FunctionCall",
28537 "src": "9501:13:2",
28538 "typeDescriptions": {
28539 "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$",
28540 "typeString": "tuple(uint112,uint112,uint32)"
28541 }
28542 },
28543 "nodeType": "VariableDeclarationStatement",
28544 "src": "9458:56:2"
28545 },
28546 {
28547 "expression": {
28548 "argumentTypes": null,
28549 "arguments": [
28550 {
28551 "argumentTypes": null,
28552 "commonType": {
28553 "typeIdentifier": "t_bool",
28554 "typeString": "bool"
28555 },
28556 "id": 1562,
28557 "isConstant": false,
28558 "isLValue": false,
28559 "isPure": false,
28560 "lValueRequested": false,
28561 "leftExpression": {
28562 "argumentTypes": null,
28563 "commonType": {
28564 "typeIdentifier": "t_uint256",
28565 "typeString": "uint256"
28566 },
28567 "id": 1558,
28568 "isConstant": false,
28569 "isLValue": false,
28570 "isPure": false,
28571 "lValueRequested": false,
28572 "leftExpression": {
28573 "argumentTypes": null,
28574 "id": 1556,
28575 "name": "amount0Out",
28576 "nodeType": "Identifier",
28577 "overloadedDeclarations": [],
28578 "referencedDeclaration": 1526,
28579 "src": "9547:10:2",
28580 "typeDescriptions": {
28581 "typeIdentifier": "t_uint256",
28582 "typeString": "uint256"
28583 }
28584 },
28585 "nodeType": "BinaryOperation",
28586 "operator": "<",
28587 "rightExpression": {
28588 "argumentTypes": null,
28589 "id": 1557,
28590 "name": "_reserve0",
28591 "nodeType": "Identifier",
28592 "overloadedDeclarations": [],
28593 "referencedDeclaration": 1549,
28594 "src": "9560:9:2",
28595 "typeDescriptions": {
28596 "typeIdentifier": "t_uint112",
28597 "typeString": "uint112"
28598 }
28599 },
28600 "src": "9547:22:2",
28601 "typeDescriptions": {
28602 "typeIdentifier": "t_bool",
28603 "typeString": "bool"
28604 }
28605 },
28606 "nodeType": "BinaryOperation",
28607 "operator": "&&",
28608 "rightExpression": {
28609 "argumentTypes": null,
28610 "commonType": {
28611 "typeIdentifier": "t_uint256",
28612 "typeString": "uint256"
28613 },
28614 "id": 1561,
28615 "isConstant": false,
28616 "isLValue": false,
28617 "isPure": false,
28618 "lValueRequested": false,
28619 "leftExpression": {
28620 "argumentTypes": null,
28621 "id": 1559,
28622 "name": "amount1Out",
28623 "nodeType": "Identifier",
28624 "overloadedDeclarations": [],
28625 "referencedDeclaration": 1528,
28626 "src": "9573:10:2",
28627 "typeDescriptions": {
28628 "typeIdentifier": "t_uint256",
28629 "typeString": "uint256"
28630 }
28631 },
28632 "nodeType": "BinaryOperation",
28633 "operator": "<",
28634 "rightExpression": {
28635 "argumentTypes": null,
28636 "id": 1560,
28637 "name": "_reserve1",
28638 "nodeType": "Identifier",
28639 "overloadedDeclarations": [],
28640 "referencedDeclaration": 1551,
28641 "src": "9586:9:2",
28642 "typeDescriptions": {
28643 "typeIdentifier": "t_uint112",
28644 "typeString": "uint112"
28645 }
28646 },
28647 "src": "9573:22:2",
28648 "typeDescriptions": {
28649 "typeIdentifier": "t_bool",
28650 "typeString": "bool"
28651 }
28652 },
28653 "src": "9547:48:2",
28654 "typeDescriptions": {
28655 "typeIdentifier": "t_bool",
28656 "typeString": "bool"
28657 }
28658 },
28659 {
28660 "argumentTypes": null,
28661 "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459",
28662 "id": 1563,
28663 "isConstant": false,
28664 "isLValue": false,
28665 "isPure": true,
28666 "kind": "string",
28667 "lValueRequested": false,
28668 "nodeType": "Literal",
28669 "src": "9597:35:2",
28670 "subdenomination": null,
28671 "typeDescriptions": {
28672 "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f",
28673 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\""
28674 },
28675 "value": "UniswapV2: INSUFFICIENT_LIQUIDITY"
28676 }
28677 ],
28678 "expression": {
28679 "argumentTypes": [
28680 {
28681 "typeIdentifier": "t_bool",
28682 "typeString": "bool"
28683 },
28684 {
28685 "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f",
28686 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\""
28687 }
28688 ],
28689 "id": 1555,
28690 "name": "require",
28691 "nodeType": "Identifier",
28692 "overloadedDeclarations": [
28693 2620,
28694 2621
28695 ],
28696 "referencedDeclaration": 2621,
28697 "src": "9539:7:2",
28698 "typeDescriptions": {
28699 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
28700 "typeString": "function (bool,string memory) pure"
28701 }
28702 },
28703 "id": 1564,
28704 "isConstant": false,
28705 "isLValue": false,
28706 "isPure": false,
28707 "kind": "functionCall",
28708 "lValueRequested": false,
28709 "names": [],
28710 "nodeType": "FunctionCall",
28711 "src": "9539:94:2",
28712 "typeDescriptions": {
28713 "typeIdentifier": "t_tuple$__$",
28714 "typeString": "tuple()"
28715 }
28716 },
28717 "id": 1565,
28718 "nodeType": "ExpressionStatement",
28719 "src": "9539:94:2"
28720 },
28721 {
28722 "assignments": [
28723 1567
28724 ],
28725 "declarations": [
28726 {
28727 "constant": false,
28728 "id": 1567,
28729 "name": "balance0",
28730 "nodeType": "VariableDeclaration",
28731 "scope": 1757,
28732 "src": "9644:13:2",
28733 "stateVariable": false,
28734 "storageLocation": "default",
28735 "typeDescriptions": {
28736 "typeIdentifier": "t_uint256",
28737 "typeString": "uint256"
28738 },
28739 "typeName": {
28740 "id": 1566,
28741 "name": "uint",
28742 "nodeType": "ElementaryTypeName",
28743 "src": "9644:4:2",
28744 "typeDescriptions": {
28745 "typeIdentifier": "t_uint256",
28746 "typeString": "uint256"
28747 }
28748 },
28749 "value": null,
28750 "visibility": "internal"
28751 }
28752 ],
28753 "id": 1568,
28754 "initialValue": null,
28755 "nodeType": "VariableDeclarationStatement",
28756 "src": "9644:13:2"
28757 },
28758 {
28759 "assignments": [
28760 1570
28761 ],
28762 "declarations": [
28763 {
28764 "constant": false,
28765 "id": 1570,
28766 "name": "balance1",
28767 "nodeType": "VariableDeclaration",
28768 "scope": 1757,
28769 "src": "9667:13:2",
28770 "stateVariable": false,
28771 "storageLocation": "default",
28772 "typeDescriptions": {
28773 "typeIdentifier": "t_uint256",
28774 "typeString": "uint256"
28775 },
28776 "typeName": {
28777 "id": 1569,
28778 "name": "uint",
28779 "nodeType": "ElementaryTypeName",
28780 "src": "9667:4:2",
28781 "typeDescriptions": {
28782 "typeIdentifier": "t_uint256",
28783 "typeString": "uint256"
28784 }
28785 },
28786 "value": null,
28787 "visibility": "internal"
28788 }
28789 ],
28790 "id": 1571,
28791 "initialValue": null,
28792 "nodeType": "VariableDeclarationStatement",
28793 "src": "9667:13:2"
28794 },
28795 {
28796 "id": 1649,
28797 "nodeType": "Block",
28798 "src": "9690:641:2",
28799 "statements": [
28800 {
28801 "assignments": [
28802 1573
28803 ],
28804 "declarations": [
28805 {
28806 "constant": false,
28807 "id": 1573,
28808 "name": "_token0",
28809 "nodeType": "VariableDeclaration",
28810 "scope": 1649,
28811 "src": "9755:15:2",
28812 "stateVariable": false,
28813 "storageLocation": "default",
28814 "typeDescriptions": {
28815 "typeIdentifier": "t_address",
28816 "typeString": "address"
28817 },
28818 "typeName": {
28819 "id": 1572,
28820 "name": "address",
28821 "nodeType": "ElementaryTypeName",
28822 "src": "9755:7:2",
28823 "stateMutability": "nonpayable",
28824 "typeDescriptions": {
28825 "typeIdentifier": "t_address",
28826 "typeString": "address"
28827 }
28828 },
28829 "value": null,
28830 "visibility": "internal"
28831 }
28832 ],
28833 "id": 1575,
28834 "initialValue": {
28835 "argumentTypes": null,
28836 "id": 1574,
28837 "name": "token0",
28838 "nodeType": "Identifier",
28839 "overloadedDeclarations": [],
28840 "referencedDeclaration": 631,
28841 "src": "9773:6:2",
28842 "typeDescriptions": {
28843 "typeIdentifier": "t_address",
28844 "typeString": "address"
28845 }
28846 },
28847 "nodeType": "VariableDeclarationStatement",
28848 "src": "9755:24:2"
28849 },
28850 {
28851 "assignments": [
28852 1577
28853 ],
28854 "declarations": [
28855 {
28856 "constant": false,
28857 "id": 1577,
28858 "name": "_token1",
28859 "nodeType": "VariableDeclaration",
28860 "scope": 1649,
28861 "src": "9789:15:2",
28862 "stateVariable": false,
28863 "storageLocation": "default",
28864 "typeDescriptions": {
28865 "typeIdentifier": "t_address",
28866 "typeString": "address"
28867 },
28868 "typeName": {
28869 "id": 1576,
28870 "name": "address",
28871 "nodeType": "ElementaryTypeName",
28872 "src": "9789:7:2",
28873 "stateMutability": "nonpayable",
28874 "typeDescriptions": {
28875 "typeIdentifier": "t_address",
28876 "typeString": "address"
28877 }
28878 },
28879 "value": null,
28880 "visibility": "internal"
28881 }
28882 ],
28883 "id": 1579,
28884 "initialValue": {
28885 "argumentTypes": null,
28886 "id": 1578,
28887 "name": "token1",
28888 "nodeType": "Identifier",
28889 "overloadedDeclarations": [],
28890 "referencedDeclaration": 633,
28891 "src": "9807:6:2",
28892 "typeDescriptions": {
28893 "typeIdentifier": "t_address",
28894 "typeString": "address"
28895 }
28896 },
28897 "nodeType": "VariableDeclarationStatement",
28898 "src": "9789:24:2"
28899 },
28900 {
28901 "expression": {
28902 "argumentTypes": null,
28903 "arguments": [
28904 {
28905 "argumentTypes": null,
28906 "commonType": {
28907 "typeIdentifier": "t_bool",
28908 "typeString": "bool"
28909 },
28910 "id": 1587,
28911 "isConstant": false,
28912 "isLValue": false,
28913 "isPure": false,
28914 "lValueRequested": false,
28915 "leftExpression": {
28916 "argumentTypes": null,
28917 "commonType": {
28918 "typeIdentifier": "t_address",
28919 "typeString": "address"
28920 },
28921 "id": 1583,
28922 "isConstant": false,
28923 "isLValue": false,
28924 "isPure": false,
28925 "lValueRequested": false,
28926 "leftExpression": {
28927 "argumentTypes": null,
28928 "id": 1581,
28929 "name": "to",
28930 "nodeType": "Identifier",
28931 "overloadedDeclarations": [],
28932 "referencedDeclaration": 1530,
28933 "src": "9831:2:2",
28934 "typeDescriptions": {
28935 "typeIdentifier": "t_address",
28936 "typeString": "address"
28937 }
28938 },
28939 "nodeType": "BinaryOperation",
28940 "operator": "!=",
28941 "rightExpression": {
28942 "argumentTypes": null,
28943 "id": 1582,
28944 "name": "_token0",
28945 "nodeType": "Identifier",
28946 "overloadedDeclarations": [],
28947 "referencedDeclaration": 1573,
28948 "src": "9837:7:2",
28949 "typeDescriptions": {
28950 "typeIdentifier": "t_address",
28951 "typeString": "address"
28952 }
28953 },
28954 "src": "9831:13:2",
28955 "typeDescriptions": {
28956 "typeIdentifier": "t_bool",
28957 "typeString": "bool"
28958 }
28959 },
28960 "nodeType": "BinaryOperation",
28961 "operator": "&&",
28962 "rightExpression": {
28963 "argumentTypes": null,
28964 "commonType": {
28965 "typeIdentifier": "t_address",
28966 "typeString": "address"
28967 },
28968 "id": 1586,
28969 "isConstant": false,
28970 "isLValue": false,
28971 "isPure": false,
28972 "lValueRequested": false,
28973 "leftExpression": {
28974 "argumentTypes": null,
28975 "id": 1584,
28976 "name": "to",
28977 "nodeType": "Identifier",
28978 "overloadedDeclarations": [],
28979 "referencedDeclaration": 1530,
28980 "src": "9848:2:2",
28981 "typeDescriptions": {
28982 "typeIdentifier": "t_address",
28983 "typeString": "address"
28984 }
28985 },
28986 "nodeType": "BinaryOperation",
28987 "operator": "!=",
28988 "rightExpression": {
28989 "argumentTypes": null,
28990 "id": 1585,
28991 "name": "_token1",
28992 "nodeType": "Identifier",
28993 "overloadedDeclarations": [],
28994 "referencedDeclaration": 1577,
28995 "src": "9854:7:2",
28996 "typeDescriptions": {
28997 "typeIdentifier": "t_address",
28998 "typeString": "address"
28999 }
29000 },
29001 "src": "9848:13:2",
29002 "typeDescriptions": {
29003 "typeIdentifier": "t_bool",
29004 "typeString": "bool"
29005 }
29006 },
29007 "src": "9831:30:2",
29008 "typeDescriptions": {
29009 "typeIdentifier": "t_bool",
29010 "typeString": "bool"
29011 }
29012 },
29013 {
29014 "argumentTypes": null,
29015 "hexValue": "556e697377617056323a20494e56414c49445f544f",
29016 "id": 1588,
29017 "isConstant": false,
29018 "isLValue": false,
29019 "isPure": true,
29020 "kind": "string",
29021 "lValueRequested": false,
29022 "nodeType": "Literal",
29023 "src": "9863:23:2",
29024 "subdenomination": null,
29025 "typeDescriptions": {
29026 "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3",
29027 "typeString": "literal_string \"UniswapV2: INVALID_TO\""
29028 },
29029 "value": "UniswapV2: INVALID_TO"
29030 }
29031 ],
29032 "expression": {
29033 "argumentTypes": [
29034 {
29035 "typeIdentifier": "t_bool",
29036 "typeString": "bool"
29037 },
29038 {
29039 "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3",
29040 "typeString": "literal_string \"UniswapV2: INVALID_TO\""
29041 }
29042 ],
29043 "id": 1580,
29044 "name": "require",
29045 "nodeType": "Identifier",
29046 "overloadedDeclarations": [
29047 2620,
29048 2621
29049 ],
29050 "referencedDeclaration": 2621,
29051 "src": "9823:7:2",
29052 "typeDescriptions": {
29053 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
29054 "typeString": "function (bool,string memory) pure"
29055 }
29056 },
29057 "id": 1589,
29058 "isConstant": false,
29059 "isLValue": false,
29060 "isPure": false,
29061 "kind": "functionCall",
29062 "lValueRequested": false,
29063 "names": [],
29064 "nodeType": "FunctionCall",
29065 "src": "9823:64:2",
29066 "typeDescriptions": {
29067 "typeIdentifier": "t_tuple$__$",
29068 "typeString": "tuple()"
29069 }
29070 },
29071 "id": 1590,
29072 "nodeType": "ExpressionStatement",
29073 "src": "9823:64:2"
29074 },
29075 {
29076 "condition": {
29077 "argumentTypes": null,
29078 "commonType": {
29079 "typeIdentifier": "t_uint256",
29080 "typeString": "uint256"
29081 },
29082 "id": 1593,
29083 "isConstant": false,
29084 "isLValue": false,
29085 "isPure": false,
29086 "lValueRequested": false,
29087 "leftExpression": {
29088 "argumentTypes": null,
29089 "id": 1591,
29090 "name": "amount0Out",
29091 "nodeType": "Identifier",
29092 "overloadedDeclarations": [],
29093 "referencedDeclaration": 1526,
29094 "src": "9901:10:2",
29095 "typeDescriptions": {
29096 "typeIdentifier": "t_uint256",
29097 "typeString": "uint256"
29098 }
29099 },
29100 "nodeType": "BinaryOperation",
29101 "operator": ">",
29102 "rightExpression": {
29103 "argumentTypes": null,
29104 "hexValue": "30",
29105 "id": 1592,
29106 "isConstant": false,
29107 "isLValue": false,
29108 "isPure": true,
29109 "kind": "number",
29110 "lValueRequested": false,
29111 "nodeType": "Literal",
29112 "src": "9914:1:2",
29113 "subdenomination": null,
29114 "typeDescriptions": {
29115 "typeIdentifier": "t_rational_0_by_1",
29116 "typeString": "int_const 0"
29117 },
29118 "value": "0"
29119 },
29120 "src": "9901:14:2",
29121 "typeDescriptions": {
29122 "typeIdentifier": "t_bool",
29123 "typeString": "bool"
29124 }
29125 },
29126 "falseBody": null,
29127 "id": 1600,
29128 "nodeType": "IfStatement",
29129 "src": "9897:58:2",
29130 "trueBody": {
29131 "expression": {
29132 "argumentTypes": null,
29133 "arguments": [
29134 {
29135 "argumentTypes": null,
29136 "id": 1595,
29137 "name": "_token0",
29138 "nodeType": "Identifier",
29139 "overloadedDeclarations": [],
29140 "referencedDeclaration": 1573,
29141 "src": "9931:7:2",
29142 "typeDescriptions": {
29143 "typeIdentifier": "t_address",
29144 "typeString": "address"
29145 }
29146 },
29147 {
29148 "argumentTypes": null,
29149 "id": 1596,
29150 "name": "to",
29151 "nodeType": "Identifier",
29152 "overloadedDeclarations": [],
29153 "referencedDeclaration": 1530,
29154 "src": "9940:2:2",
29155 "typeDescriptions": {
29156 "typeIdentifier": "t_address",
29157 "typeString": "address"
29158 }
29159 },
29160 {
29161 "argumentTypes": null,
29162 "id": 1597,
29163 "name": "amount0Out",
29164 "nodeType": "Identifier",
29165 "overloadedDeclarations": [],
29166 "referencedDeclaration": 1526,
29167 "src": "9944:10:2",
29168 "typeDescriptions": {
29169 "typeIdentifier": "t_uint256",
29170 "typeString": "uint256"
29171 }
29172 }
29173 ],
29174 "expression": {
29175 "argumentTypes": [
29176 {
29177 "typeIdentifier": "t_address",
29178 "typeString": "address"
29179 },
29180 {
29181 "typeIdentifier": "t_address",
29182 "typeString": "address"
29183 },
29184 {
29185 "typeIdentifier": "t_uint256",
29186 "typeString": "uint256"
29187 }
29188 ],
29189 "id": 1594,
29190 "name": "_safeTransfer",
29191 "nodeType": "Identifier",
29192 "overloadedDeclarations": [],
29193 "referencedDeclaration": 769,
29194 "src": "9917:13:2",
29195 "typeDescriptions": {
29196 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
29197 "typeString": "function (address,address,uint256)"
29198 }
29199 },
29200 "id": 1598,
29201 "isConstant": false,
29202 "isLValue": false,
29203 "isPure": false,
29204 "kind": "functionCall",
29205 "lValueRequested": false,
29206 "names": [],
29207 "nodeType": "FunctionCall",
29208 "src": "9917:38:2",
29209 "typeDescriptions": {
29210 "typeIdentifier": "t_tuple$__$",
29211 "typeString": "tuple()"
29212 }
29213 },
29214 "id": 1599,
29215 "nodeType": "ExpressionStatement",
29216 "src": "9917:38:2"
29217 }
29218 },
29219 {
29220 "condition": {
29221 "argumentTypes": null,
29222 "commonType": {
29223 "typeIdentifier": "t_uint256",
29224 "typeString": "uint256"
29225 },
29226 "id": 1603,
29227 "isConstant": false,
29228 "isLValue": false,
29229 "isPure": false,
29230 "lValueRequested": false,
29231 "leftExpression": {
29232 "argumentTypes": null,
29233 "id": 1601,
29234 "name": "amount1Out",
29235 "nodeType": "Identifier",
29236 "overloadedDeclarations": [],
29237 "referencedDeclaration": 1528,
29238 "src": "10003:10:2",
29239 "typeDescriptions": {
29240 "typeIdentifier": "t_uint256",
29241 "typeString": "uint256"
29242 }
29243 },
29244 "nodeType": "BinaryOperation",
29245 "operator": ">",
29246 "rightExpression": {
29247 "argumentTypes": null,
29248 "hexValue": "30",
29249 "id": 1602,
29250 "isConstant": false,
29251 "isLValue": false,
29252 "isPure": true,
29253 "kind": "number",
29254 "lValueRequested": false,
29255 "nodeType": "Literal",
29256 "src": "10016:1:2",
29257 "subdenomination": null,
29258 "typeDescriptions": {
29259 "typeIdentifier": "t_rational_0_by_1",
29260 "typeString": "int_const 0"
29261 },
29262 "value": "0"
29263 },
29264 "src": "10003:14:2",
29265 "typeDescriptions": {
29266 "typeIdentifier": "t_bool",
29267 "typeString": "bool"
29268 }
29269 },
29270 "falseBody": null,
29271 "id": 1610,
29272 "nodeType": "IfStatement",
29273 "src": "9999:58:2",
29274 "trueBody": {
29275 "expression": {
29276 "argumentTypes": null,
29277 "arguments": [
29278 {
29279 "argumentTypes": null,
29280 "id": 1605,
29281 "name": "_token1",
29282 "nodeType": "Identifier",
29283 "overloadedDeclarations": [],
29284 "referencedDeclaration": 1577,
29285 "src": "10033:7:2",
29286 "typeDescriptions": {
29287 "typeIdentifier": "t_address",
29288 "typeString": "address"
29289 }
29290 },
29291 {
29292 "argumentTypes": null,
29293 "id": 1606,
29294 "name": "to",
29295 "nodeType": "Identifier",
29296 "overloadedDeclarations": [],
29297 "referencedDeclaration": 1530,
29298 "src": "10042:2:2",
29299 "typeDescriptions": {
29300 "typeIdentifier": "t_address",
29301 "typeString": "address"
29302 }
29303 },
29304 {
29305 "argumentTypes": null,
29306 "id": 1607,
29307 "name": "amount1Out",
29308 "nodeType": "Identifier",
29309 "overloadedDeclarations": [],
29310 "referencedDeclaration": 1528,
29311 "src": "10046:10:2",
29312 "typeDescriptions": {
29313 "typeIdentifier": "t_uint256",
29314 "typeString": "uint256"
29315 }
29316 }
29317 ],
29318 "expression": {
29319 "argumentTypes": [
29320 {
29321 "typeIdentifier": "t_address",
29322 "typeString": "address"
29323 },
29324 {
29325 "typeIdentifier": "t_address",
29326 "typeString": "address"
29327 },
29328 {
29329 "typeIdentifier": "t_uint256",
29330 "typeString": "uint256"
29331 }
29332 ],
29333 "id": 1604,
29334 "name": "_safeTransfer",
29335 "nodeType": "Identifier",
29336 "overloadedDeclarations": [],
29337 "referencedDeclaration": 769,
29338 "src": "10019:13:2",
29339 "typeDescriptions": {
29340 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
29341 "typeString": "function (address,address,uint256)"
29342 }
29343 },
29344 "id": 1608,
29345 "isConstant": false,
29346 "isLValue": false,
29347 "isPure": false,
29348 "kind": "functionCall",
29349 "lValueRequested": false,
29350 "names": [],
29351 "nodeType": "FunctionCall",
29352 "src": "10019:38:2",
29353 "typeDescriptions": {
29354 "typeIdentifier": "t_tuple$__$",
29355 "typeString": "tuple()"
29356 }
29357 },
29358 "id": 1609,
29359 "nodeType": "ExpressionStatement",
29360 "src": "10019:38:2"
29361 }
29362 },
29363 {
29364 "condition": {
29365 "argumentTypes": null,
29366 "commonType": {
29367 "typeIdentifier": "t_uint256",
29368 "typeString": "uint256"
29369 },
29370 "id": 1614,
29371 "isConstant": false,
29372 "isLValue": false,
29373 "isPure": false,
29374 "lValueRequested": false,
29375 "leftExpression": {
29376 "argumentTypes": null,
29377 "expression": {
29378 "argumentTypes": null,
29379 "id": 1611,
29380 "name": "data",
29381 "nodeType": "Identifier",
29382 "overloadedDeclarations": [],
29383 "referencedDeclaration": 1532,
29384 "src": "10105:4:2",
29385 "typeDescriptions": {
29386 "typeIdentifier": "t_bytes_calldata_ptr",
29387 "typeString": "bytes calldata"
29388 }
29389 },
29390 "id": 1612,
29391 "isConstant": false,
29392 "isLValue": false,
29393 "isPure": false,
29394 "lValueRequested": false,
29395 "memberName": "length",
29396 "nodeType": "MemberAccess",
29397 "referencedDeclaration": null,
29398 "src": "10105:11:2",
29399 "typeDescriptions": {
29400 "typeIdentifier": "t_uint256",
29401 "typeString": "uint256"
29402 }
29403 },
29404 "nodeType": "BinaryOperation",
29405 "operator": ">",
29406 "rightExpression": {
29407 "argumentTypes": null,
29408 "hexValue": "30",
29409 "id": 1613,
29410 "isConstant": false,
29411 "isLValue": false,
29412 "isPure": true,
29413 "kind": "number",
29414 "lValueRequested": false,
29415 "nodeType": "Literal",
29416 "src": "10119:1:2",
29417 "subdenomination": null,
29418 "typeDescriptions": {
29419 "typeIdentifier": "t_rational_0_by_1",
29420 "typeString": "int_const 0"
29421 },
29422 "value": "0"
29423 },
29424 "src": "10105:15:2",
29425 "typeDescriptions": {
29426 "typeIdentifier": "t_bool",
29427 "typeString": "bool"
29428 }
29429 },
29430 "falseBody": null,
29431 "id": 1626,
29432 "nodeType": "IfStatement",
29433 "src": "10101:97:2",
29434 "trueBody": {
29435 "expression": {
29436 "argumentTypes": null,
29437 "arguments": [
29438 {
29439 "argumentTypes": null,
29440 "expression": {
29441 "argumentTypes": null,
29442 "id": 1619,
29443 "name": "msg",
29444 "nodeType": "Identifier",
29445 "overloadedDeclarations": [],
29446 "referencedDeclaration": 2617,
29447 "src": "10157:3:2",
29448 "typeDescriptions": {
29449 "typeIdentifier": "t_magic_message",
29450 "typeString": "msg"
29451 }
29452 },
29453 "id": 1620,
29454 "isConstant": false,
29455 "isLValue": false,
29456 "isPure": false,
29457 "lValueRequested": false,
29458 "memberName": "sender",
29459 "nodeType": "MemberAccess",
29460 "referencedDeclaration": null,
29461 "src": "10157:10:2",
29462 "typeDescriptions": {
29463 "typeIdentifier": "t_address_payable",
29464 "typeString": "address payable"
29465 }
29466 },
29467 {
29468 "argumentTypes": null,
29469 "id": 1621,
29470 "name": "amount0Out",
29471 "nodeType": "Identifier",
29472 "overloadedDeclarations": [],
29473 "referencedDeclaration": 1526,
29474 "src": "10169:10:2",
29475 "typeDescriptions": {
29476 "typeIdentifier": "t_uint256",
29477 "typeString": "uint256"
29478 }
29479 },
29480 {
29481 "argumentTypes": null,
29482 "id": 1622,
29483 "name": "amount1Out",
29484 "nodeType": "Identifier",
29485 "overloadedDeclarations": [],
29486 "referencedDeclaration": 1528,
29487 "src": "10181:10:2",
29488 "typeDescriptions": {
29489 "typeIdentifier": "t_uint256",
29490 "typeString": "uint256"
29491 }
29492 },
29493 {
29494 "argumentTypes": null,
29495 "id": 1623,
29496 "name": "data",
29497 "nodeType": "Identifier",
29498 "overloadedDeclarations": [],
29499 "referencedDeclaration": 1532,
29500 "src": "10193:4:2",
29501 "typeDescriptions": {
29502 "typeIdentifier": "t_bytes_calldata_ptr",
29503 "typeString": "bytes calldata"
29504 }
29505 }
29506 ],
29507 "expression": {
29508 "argumentTypes": [
29509 {
29510 "typeIdentifier": "t_address_payable",
29511 "typeString": "address payable"
29512 },
29513 {
29514 "typeIdentifier": "t_uint256",
29515 "typeString": "uint256"
29516 },
29517 {
29518 "typeIdentifier": "t_uint256",
29519 "typeString": "uint256"
29520 },
29521 {
29522 "typeIdentifier": "t_bytes_calldata_ptr",
29523 "typeString": "bytes calldata"
29524 }
29525 ],
29526 "expression": {
29527 "argumentTypes": null,
29528 "arguments": [
29529 {
29530 "argumentTypes": null,
29531 "id": 1616,
29532 "name": "to",
29533 "nodeType": "Identifier",
29534 "overloadedDeclarations": [],
29535 "referencedDeclaration": 1530,
29536 "src": "10139:2:2",
29537 "typeDescriptions": {
29538 "typeIdentifier": "t_address",
29539 "typeString": "address"
29540 }
29541 }
29542 ],
29543 "expression": {
29544 "argumentTypes": [
29545 {
29546 "typeIdentifier": "t_address",
29547 "typeString": "address"
29548 }
29549 ],
29550 "id": 1615,
29551 "name": "IUniswapV2Callee",
29552 "nodeType": "Identifier",
29553 "overloadedDeclarations": [],
29554 "referencedDeclaration": 1932,
29555 "src": "10122:16:2",
29556 "typeDescriptions": {
29557 "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$1932_$",
29558 "typeString": "type(contract IUniswapV2Callee)"
29559 }
29560 },
29561 "id": 1617,
29562 "isConstant": false,
29563 "isLValue": false,
29564 "isPure": false,
29565 "kind": "typeConversion",
29566 "lValueRequested": false,
29567 "names": [],
29568 "nodeType": "FunctionCall",
29569 "src": "10122:20:2",
29570 "typeDescriptions": {
29571 "typeIdentifier": "t_contract$_IUniswapV2Callee_$1932",
29572 "typeString": "contract IUniswapV2Callee"
29573 }
29574 },
29575 "id": 1618,
29576 "isConstant": false,
29577 "isLValue": false,
29578 "isPure": false,
29579 "lValueRequested": false,
29580 "memberName": "uniswapV2Call",
29581 "nodeType": "MemberAccess",
29582 "referencedDeclaration": 1931,
29583 "src": "10122:34:2",
29584 "typeDescriptions": {
29585 "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
29586 "typeString": "function (address,uint256,uint256,bytes memory) external"
29587 }
29588 },
29589 "id": 1624,
29590 "isConstant": false,
29591 "isLValue": false,
29592 "isPure": false,
29593 "kind": "functionCall",
29594 "lValueRequested": false,
29595 "names": [],
29596 "nodeType": "FunctionCall",
29597 "src": "10122:76:2",
29598 "typeDescriptions": {
29599 "typeIdentifier": "t_tuple$__$",
29600 "typeString": "tuple()"
29601 }
29602 },
29603 "id": 1625,
29604 "nodeType": "ExpressionStatement",
29605 "src": "10122:76:2"
29606 }
29607 },
29608 {
29609 "expression": {
29610 "argumentTypes": null,
29611 "id": 1636,
29612 "isConstant": false,
29613 "isLValue": false,
29614 "isPure": false,
29615 "lValueRequested": false,
29616 "leftHandSide": {
29617 "argumentTypes": null,
29618 "id": 1627,
29619 "name": "balance0",
29620 "nodeType": "Identifier",
29621 "overloadedDeclarations": [],
29622 "referencedDeclaration": 1567,
29623 "src": "10208:8:2",
29624 "typeDescriptions": {
29625 "typeIdentifier": "t_uint256",
29626 "typeString": "uint256"
29627 }
29628 },
29629 "nodeType": "Assignment",
29630 "operator": "=",
29631 "rightHandSide": {
29632 "argumentTypes": null,
29633 "arguments": [
29634 {
29635 "argumentTypes": null,
29636 "arguments": [
29637 {
29638 "argumentTypes": null,
29639 "id": 1633,
29640 "name": "this",
29641 "nodeType": "Identifier",
29642 "overloadedDeclarations": [],
29643 "referencedDeclaration": 2649,
29644 "src": "10253:4:2",
29645 "typeDescriptions": {
29646 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
29647 "typeString": "contract UniswapV2Pair"
29648 }
29649 }
29650 ],
29651 "expression": {
29652 "argumentTypes": [
29653 {
29654 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
29655 "typeString": "contract UniswapV2Pair"
29656 }
29657 ],
29658 "id": 1632,
29659 "isConstant": false,
29660 "isLValue": false,
29661 "isPure": true,
29662 "lValueRequested": false,
29663 "nodeType": "ElementaryTypeNameExpression",
29664 "src": "10245:7:2",
29665 "typeDescriptions": {
29666 "typeIdentifier": "t_type$_t_address_$",
29667 "typeString": "type(address)"
29668 },
29669 "typeName": "address"
29670 },
29671 "id": 1634,
29672 "isConstant": false,
29673 "isLValue": false,
29674 "isPure": false,
29675 "kind": "typeConversion",
29676 "lValueRequested": false,
29677 "names": [],
29678 "nodeType": "FunctionCall",
29679 "src": "10245:13:2",
29680 "typeDescriptions": {
29681 "typeIdentifier": "t_address",
29682 "typeString": "address"
29683 }
29684 }
29685 ],
29686 "expression": {
29687 "argumentTypes": [
29688 {
29689 "typeIdentifier": "t_address",
29690 "typeString": "address"
29691 }
29692 ],
29693 "expression": {
29694 "argumentTypes": null,
29695 "arguments": [
29696 {
29697 "argumentTypes": null,
29698 "id": 1629,
29699 "name": "_token0",
29700 "nodeType": "Identifier",
29701 "overloadedDeclarations": [],
29702 "referencedDeclaration": 1573,
29703 "src": "10226:7:2",
29704 "typeDescriptions": {
29705 "typeIdentifier": "t_address",
29706 "typeString": "address"
29707 }
29708 }
29709 ],
29710 "expression": {
29711 "argumentTypes": [
29712 {
29713 "typeIdentifier": "t_address",
29714 "typeString": "address"
29715 }
29716 ],
29717 "id": 1628,
29718 "name": "IERC20",
29719 "nodeType": "Identifier",
29720 "overloadedDeclarations": [],
29721 "referencedDeclaration": 1918,
29722 "src": "10219:6:2",
29723 "typeDescriptions": {
29724 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
29725 "typeString": "type(contract IERC20)"
29726 }
29727 },
29728 "id": 1630,
29729 "isConstant": false,
29730 "isLValue": false,
29731 "isPure": false,
29732 "kind": "typeConversion",
29733 "lValueRequested": false,
29734 "names": [],
29735 "nodeType": "FunctionCall",
29736 "src": "10219:15:2",
29737 "typeDescriptions": {
29738 "typeIdentifier": "t_contract$_IERC20_$1918",
29739 "typeString": "contract IERC20"
29740 }
29741 },
29742 "id": 1631,
29743 "isConstant": false,
29744 "isLValue": false,
29745 "isPure": false,
29746 "lValueRequested": false,
29747 "memberName": "balanceOf",
29748 "nodeType": "MemberAccess",
29749 "referencedDeclaration": 1879,
29750 "src": "10219:25:2",
29751 "typeDescriptions": {
29752 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
29753 "typeString": "function (address) view external returns (uint256)"
29754 }
29755 },
29756 "id": 1635,
29757 "isConstant": false,
29758 "isLValue": false,
29759 "isPure": false,
29760 "kind": "functionCall",
29761 "lValueRequested": false,
29762 "names": [],
29763 "nodeType": "FunctionCall",
29764 "src": "10219:40:2",
29765 "typeDescriptions": {
29766 "typeIdentifier": "t_uint256",
29767 "typeString": "uint256"
29768 }
29769 },
29770 "src": "10208:51:2",
29771 "typeDescriptions": {
29772 "typeIdentifier": "t_uint256",
29773 "typeString": "uint256"
29774 }
29775 },
29776 "id": 1637,
29777 "nodeType": "ExpressionStatement",
29778 "src": "10208:51:2"
29779 },
29780 {
29781 "expression": {
29782 "argumentTypes": null,
29783 "id": 1647,
29784 "isConstant": false,
29785 "isLValue": false,
29786 "isPure": false,
29787 "lValueRequested": false,
29788 "leftHandSide": {
29789 "argumentTypes": null,
29790 "id": 1638,
29791 "name": "balance1",
29792 "nodeType": "Identifier",
29793 "overloadedDeclarations": [],
29794 "referencedDeclaration": 1570,
29795 "src": "10269:8:2",
29796 "typeDescriptions": {
29797 "typeIdentifier": "t_uint256",
29798 "typeString": "uint256"
29799 }
29800 },
29801 "nodeType": "Assignment",
29802 "operator": "=",
29803 "rightHandSide": {
29804 "argumentTypes": null,
29805 "arguments": [
29806 {
29807 "argumentTypes": null,
29808 "arguments": [
29809 {
29810 "argumentTypes": null,
29811 "id": 1644,
29812 "name": "this",
29813 "nodeType": "Identifier",
29814 "overloadedDeclarations": [],
29815 "referencedDeclaration": 2649,
29816 "src": "10314:4:2",
29817 "typeDescriptions": {
29818 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
29819 "typeString": "contract UniswapV2Pair"
29820 }
29821 }
29822 ],
29823 "expression": {
29824 "argumentTypes": [
29825 {
29826 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
29827 "typeString": "contract UniswapV2Pair"
29828 }
29829 ],
29830 "id": 1643,
29831 "isConstant": false,
29832 "isLValue": false,
29833 "isPure": true,
29834 "lValueRequested": false,
29835 "nodeType": "ElementaryTypeNameExpression",
29836 "src": "10306:7:2",
29837 "typeDescriptions": {
29838 "typeIdentifier": "t_type$_t_address_$",
29839 "typeString": "type(address)"
29840 },
29841 "typeName": "address"
29842 },
29843 "id": 1645,
29844 "isConstant": false,
29845 "isLValue": false,
29846 "isPure": false,
29847 "kind": "typeConversion",
29848 "lValueRequested": false,
29849 "names": [],
29850 "nodeType": "FunctionCall",
29851 "src": "10306:13:2",
29852 "typeDescriptions": {
29853 "typeIdentifier": "t_address",
29854 "typeString": "address"
29855 }
29856 }
29857 ],
29858 "expression": {
29859 "argumentTypes": [
29860 {
29861 "typeIdentifier": "t_address",
29862 "typeString": "address"
29863 }
29864 ],
29865 "expression": {
29866 "argumentTypes": null,
29867 "arguments": [
29868 {
29869 "argumentTypes": null,
29870 "id": 1640,
29871 "name": "_token1",
29872 "nodeType": "Identifier",
29873 "overloadedDeclarations": [],
29874 "referencedDeclaration": 1577,
29875 "src": "10287:7:2",
29876 "typeDescriptions": {
29877 "typeIdentifier": "t_address",
29878 "typeString": "address"
29879 }
29880 }
29881 ],
29882 "expression": {
29883 "argumentTypes": [
29884 {
29885 "typeIdentifier": "t_address",
29886 "typeString": "address"
29887 }
29888 ],
29889 "id": 1639,
29890 "name": "IERC20",
29891 "nodeType": "Identifier",
29892 "overloadedDeclarations": [],
29893 "referencedDeclaration": 1918,
29894 "src": "10280:6:2",
29895 "typeDescriptions": {
29896 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
29897 "typeString": "type(contract IERC20)"
29898 }
29899 },
29900 "id": 1641,
29901 "isConstant": false,
29902 "isLValue": false,
29903 "isPure": false,
29904 "kind": "typeConversion",
29905 "lValueRequested": false,
29906 "names": [],
29907 "nodeType": "FunctionCall",
29908 "src": "10280:15:2",
29909 "typeDescriptions": {
29910 "typeIdentifier": "t_contract$_IERC20_$1918",
29911 "typeString": "contract IERC20"
29912 }
29913 },
29914 "id": 1642,
29915 "isConstant": false,
29916 "isLValue": false,
29917 "isPure": false,
29918 "lValueRequested": false,
29919 "memberName": "balanceOf",
29920 "nodeType": "MemberAccess",
29921 "referencedDeclaration": 1879,
29922 "src": "10280:25:2",
29923 "typeDescriptions": {
29924 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
29925 "typeString": "function (address) view external returns (uint256)"
29926 }
29927 },
29928 "id": 1646,
29929 "isConstant": false,
29930 "isLValue": false,
29931 "isPure": false,
29932 "kind": "functionCall",
29933 "lValueRequested": false,
29934 "names": [],
29935 "nodeType": "FunctionCall",
29936 "src": "10280:40:2",
29937 "typeDescriptions": {
29938 "typeIdentifier": "t_uint256",
29939 "typeString": "uint256"
29940 }
29941 },
29942 "src": "10269:51:2",
29943 "typeDescriptions": {
29944 "typeIdentifier": "t_uint256",
29945 "typeString": "uint256"
29946 }
29947 },
29948 "id": 1648,
29949 "nodeType": "ExpressionStatement",
29950 "src": "10269:51:2"
29951 }
29952 ]
29953 },
29954 {
29955 "assignments": [
29956 1651
29957 ],
29958 "declarations": [
29959 {
29960 "constant": false,
29961 "id": 1651,
29962 "name": "amount0In",
29963 "nodeType": "VariableDeclaration",
29964 "scope": 1757,
29965 "src": "10340:14:2",
29966 "stateVariable": false,
29967 "storageLocation": "default",
29968 "typeDescriptions": {
29969 "typeIdentifier": "t_uint256",
29970 "typeString": "uint256"
29971 },
29972 "typeName": {
29973 "id": 1650,
29974 "name": "uint",
29975 "nodeType": "ElementaryTypeName",
29976 "src": "10340:4:2",
29977 "typeDescriptions": {
29978 "typeIdentifier": "t_uint256",
29979 "typeString": "uint256"
29980 }
29981 },
29982 "value": null,
29983 "visibility": "internal"
29984 }
29985 ],
29986 "id": 1665,
29987 "initialValue": {
29988 "argumentTypes": null,
29989 "condition": {
29990 "argumentTypes": null,
29991 "commonType": {
29992 "typeIdentifier": "t_uint256",
29993 "typeString": "uint256"
29994 },
29995 "id": 1656,
29996 "isConstant": false,
29997 "isLValue": false,
29998 "isPure": false,
29999 "lValueRequested": false,
30000 "leftExpression": {
30001 "argumentTypes": null,
30002 "id": 1652,
30003 "name": "balance0",
30004 "nodeType": "Identifier",
30005 "overloadedDeclarations": [],
30006 "referencedDeclaration": 1567,
30007 "src": "10357:8:2",
30008 "typeDescriptions": {
30009 "typeIdentifier": "t_uint256",
30010 "typeString": "uint256"
30011 }
30012 },
30013 "nodeType": "BinaryOperation",
30014 "operator": ">",
30015 "rightExpression": {
30016 "argumentTypes": null,
30017 "commonType": {
30018 "typeIdentifier": "t_uint256",
30019 "typeString": "uint256"
30020 },
30021 "id": 1655,
30022 "isConstant": false,
30023 "isLValue": false,
30024 "isPure": false,
30025 "lValueRequested": false,
30026 "leftExpression": {
30027 "argumentTypes": null,
30028 "id": 1653,
30029 "name": "_reserve0",
30030 "nodeType": "Identifier",
30031 "overloadedDeclarations": [],
30032 "referencedDeclaration": 1549,
30033 "src": "10368:9:2",
30034 "typeDescriptions": {
30035 "typeIdentifier": "t_uint112",
30036 "typeString": "uint112"
30037 }
30038 },
30039 "nodeType": "BinaryOperation",
30040 "operator": "-",
30041 "rightExpression": {
30042 "argumentTypes": null,
30043 "id": 1654,
30044 "name": "amount0Out",
30045 "nodeType": "Identifier",
30046 "overloadedDeclarations": [],
30047 "referencedDeclaration": 1526,
30048 "src": "10380:10:2",
30049 "typeDescriptions": {
30050 "typeIdentifier": "t_uint256",
30051 "typeString": "uint256"
30052 }
30053 },
30054 "src": "10368:22:2",
30055 "typeDescriptions": {
30056 "typeIdentifier": "t_uint256",
30057 "typeString": "uint256"
30058 }
30059 },
30060 "src": "10357:33:2",
30061 "typeDescriptions": {
30062 "typeIdentifier": "t_bool",
30063 "typeString": "bool"
30064 }
30065 },
30066 "falseExpression": {
30067 "argumentTypes": null,
30068 "hexValue": "30",
30069 "id": 1663,
30070 "isConstant": false,
30071 "isLValue": false,
30072 "isPure": true,
30073 "kind": "number",
30074 "lValueRequested": false,
30075 "nodeType": "Literal",
30076 "src": "10431:1:2",
30077 "subdenomination": null,
30078 "typeDescriptions": {
30079 "typeIdentifier": "t_rational_0_by_1",
30080 "typeString": "int_const 0"
30081 },
30082 "value": "0"
30083 },
30084 "id": 1664,
30085 "isConstant": false,
30086 "isLValue": false,
30087 "isPure": false,
30088 "lValueRequested": false,
30089 "nodeType": "Conditional",
30090 "src": "10357:75:2",
30091 "trueExpression": {
30092 "argumentTypes": null,
30093 "commonType": {
30094 "typeIdentifier": "t_uint256",
30095 "typeString": "uint256"
30096 },
30097 "id": 1662,
30098 "isConstant": false,
30099 "isLValue": false,
30100 "isPure": false,
30101 "lValueRequested": false,
30102 "leftExpression": {
30103 "argumentTypes": null,
30104 "id": 1657,
30105 "name": "balance0",
30106 "nodeType": "Identifier",
30107 "overloadedDeclarations": [],
30108 "referencedDeclaration": 1567,
30109 "src": "10393:8:2",
30110 "typeDescriptions": {
30111 "typeIdentifier": "t_uint256",
30112 "typeString": "uint256"
30113 }
30114 },
30115 "nodeType": "BinaryOperation",
30116 "operator": "-",
30117 "rightExpression": {
30118 "argumentTypes": null,
30119 "components": [
30120 {
30121 "argumentTypes": null,
30122 "commonType": {
30123 "typeIdentifier": "t_uint256",
30124 "typeString": "uint256"
30125 },
30126 "id": 1660,
30127 "isConstant": false,
30128 "isLValue": false,
30129 "isPure": false,
30130 "lValueRequested": false,
30131 "leftExpression": {
30132 "argumentTypes": null,
30133 "id": 1658,
30134 "name": "_reserve0",
30135 "nodeType": "Identifier",
30136 "overloadedDeclarations": [],
30137 "referencedDeclaration": 1549,
30138 "src": "10405:9:2",
30139 "typeDescriptions": {
30140 "typeIdentifier": "t_uint112",
30141 "typeString": "uint112"
30142 }
30143 },
30144 "nodeType": "BinaryOperation",
30145 "operator": "-",
30146 "rightExpression": {
30147 "argumentTypes": null,
30148 "id": 1659,
30149 "name": "amount0Out",
30150 "nodeType": "Identifier",
30151 "overloadedDeclarations": [],
30152 "referencedDeclaration": 1526,
30153 "src": "10417:10:2",
30154 "typeDescriptions": {
30155 "typeIdentifier": "t_uint256",
30156 "typeString": "uint256"
30157 }
30158 },
30159 "src": "10405:22:2",
30160 "typeDescriptions": {
30161 "typeIdentifier": "t_uint256",
30162 "typeString": "uint256"
30163 }
30164 }
30165 ],
30166 "id": 1661,
30167 "isConstant": false,
30168 "isInlineArray": false,
30169 "isLValue": false,
30170 "isPure": false,
30171 "lValueRequested": false,
30172 "nodeType": "TupleExpression",
30173 "src": "10404:24:2",
30174 "typeDescriptions": {
30175 "typeIdentifier": "t_uint256",
30176 "typeString": "uint256"
30177 }
30178 },
30179 "src": "10393:35:2",
30180 "typeDescriptions": {
30181 "typeIdentifier": "t_uint256",
30182 "typeString": "uint256"
30183 }
30184 },
30185 "typeDescriptions": {
30186 "typeIdentifier": "t_uint256",
30187 "typeString": "uint256"
30188 }
30189 },
30190 "nodeType": "VariableDeclarationStatement",
30191 "src": "10340:92:2"
30192 },
30193 {
30194 "assignments": [
30195 1667
30196 ],
30197 "declarations": [
30198 {
30199 "constant": false,
30200 "id": 1667,
30201 "name": "amount1In",
30202 "nodeType": "VariableDeclaration",
30203 "scope": 1757,
30204 "src": "10442:14:2",
30205 "stateVariable": false,
30206 "storageLocation": "default",
30207 "typeDescriptions": {
30208 "typeIdentifier": "t_uint256",
30209 "typeString": "uint256"
30210 },
30211 "typeName": {
30212 "id": 1666,
30213 "name": "uint",
30214 "nodeType": "ElementaryTypeName",
30215 "src": "10442:4:2",
30216 "typeDescriptions": {
30217 "typeIdentifier": "t_uint256",
30218 "typeString": "uint256"
30219 }
30220 },
30221 "value": null,
30222 "visibility": "internal"
30223 }
30224 ],
30225 "id": 1681,
30226 "initialValue": {
30227 "argumentTypes": null,
30228 "condition": {
30229 "argumentTypes": null,
30230 "commonType": {
30231 "typeIdentifier": "t_uint256",
30232 "typeString": "uint256"
30233 },
30234 "id": 1672,
30235 "isConstant": false,
30236 "isLValue": false,
30237 "isPure": false,
30238 "lValueRequested": false,
30239 "leftExpression": {
30240 "argumentTypes": null,
30241 "id": 1668,
30242 "name": "balance1",
30243 "nodeType": "Identifier",
30244 "overloadedDeclarations": [],
30245 "referencedDeclaration": 1570,
30246 "src": "10459:8:2",
30247 "typeDescriptions": {
30248 "typeIdentifier": "t_uint256",
30249 "typeString": "uint256"
30250 }
30251 },
30252 "nodeType": "BinaryOperation",
30253 "operator": ">",
30254 "rightExpression": {
30255 "argumentTypes": null,
30256 "commonType": {
30257 "typeIdentifier": "t_uint256",
30258 "typeString": "uint256"
30259 },
30260 "id": 1671,
30261 "isConstant": false,
30262 "isLValue": false,
30263 "isPure": false,
30264 "lValueRequested": false,
30265 "leftExpression": {
30266 "argumentTypes": null,
30267 "id": 1669,
30268 "name": "_reserve1",
30269 "nodeType": "Identifier",
30270 "overloadedDeclarations": [],
30271 "referencedDeclaration": 1551,
30272 "src": "10470:9:2",
30273 "typeDescriptions": {
30274 "typeIdentifier": "t_uint112",
30275 "typeString": "uint112"
30276 }
30277 },
30278 "nodeType": "BinaryOperation",
30279 "operator": "-",
30280 "rightExpression": {
30281 "argumentTypes": null,
30282 "id": 1670,
30283 "name": "amount1Out",
30284 "nodeType": "Identifier",
30285 "overloadedDeclarations": [],
30286 "referencedDeclaration": 1528,
30287 "src": "10482:10:2",
30288 "typeDescriptions": {
30289 "typeIdentifier": "t_uint256",
30290 "typeString": "uint256"
30291 }
30292 },
30293 "src": "10470:22:2",
30294 "typeDescriptions": {
30295 "typeIdentifier": "t_uint256",
30296 "typeString": "uint256"
30297 }
30298 },
30299 "src": "10459:33:2",
30300 "typeDescriptions": {
30301 "typeIdentifier": "t_bool",
30302 "typeString": "bool"
30303 }
30304 },
30305 "falseExpression": {
30306 "argumentTypes": null,
30307 "hexValue": "30",
30308 "id": 1679,
30309 "isConstant": false,
30310 "isLValue": false,
30311 "isPure": true,
30312 "kind": "number",
30313 "lValueRequested": false,
30314 "nodeType": "Literal",
30315 "src": "10533:1:2",
30316 "subdenomination": null,
30317 "typeDescriptions": {
30318 "typeIdentifier": "t_rational_0_by_1",
30319 "typeString": "int_const 0"
30320 },
30321 "value": "0"
30322 },
30323 "id": 1680,
30324 "isConstant": false,
30325 "isLValue": false,
30326 "isPure": false,
30327 "lValueRequested": false,
30328 "nodeType": "Conditional",
30329 "src": "10459:75:2",
30330 "trueExpression": {
30331 "argumentTypes": null,
30332 "commonType": {
30333 "typeIdentifier": "t_uint256",
30334 "typeString": "uint256"
30335 },
30336 "id": 1678,
30337 "isConstant": false,
30338 "isLValue": false,
30339 "isPure": false,
30340 "lValueRequested": false,
30341 "leftExpression": {
30342 "argumentTypes": null,
30343 "id": 1673,
30344 "name": "balance1",
30345 "nodeType": "Identifier",
30346 "overloadedDeclarations": [],
30347 "referencedDeclaration": 1570,
30348 "src": "10495:8:2",
30349 "typeDescriptions": {
30350 "typeIdentifier": "t_uint256",
30351 "typeString": "uint256"
30352 }
30353 },
30354 "nodeType": "BinaryOperation",
30355 "operator": "-",
30356 "rightExpression": {
30357 "argumentTypes": null,
30358 "components": [
30359 {
30360 "argumentTypes": null,
30361 "commonType": {
30362 "typeIdentifier": "t_uint256",
30363 "typeString": "uint256"
30364 },
30365 "id": 1676,
30366 "isConstant": false,
30367 "isLValue": false,
30368 "isPure": false,
30369 "lValueRequested": false,
30370 "leftExpression": {
30371 "argumentTypes": null,
30372 "id": 1674,
30373 "name": "_reserve1",
30374 "nodeType": "Identifier",
30375 "overloadedDeclarations": [],
30376 "referencedDeclaration": 1551,
30377 "src": "10507:9:2",
30378 "typeDescriptions": {
30379 "typeIdentifier": "t_uint112",
30380 "typeString": "uint112"
30381 }
30382 },
30383 "nodeType": "BinaryOperation",
30384 "operator": "-",
30385 "rightExpression": {
30386 "argumentTypes": null,
30387 "id": 1675,
30388 "name": "amount1Out",
30389 "nodeType": "Identifier",
30390 "overloadedDeclarations": [],
30391 "referencedDeclaration": 1528,
30392 "src": "10519:10:2",
30393 "typeDescriptions": {
30394 "typeIdentifier": "t_uint256",
30395 "typeString": "uint256"
30396 }
30397 },
30398 "src": "10507:22:2",
30399 "typeDescriptions": {
30400 "typeIdentifier": "t_uint256",
30401 "typeString": "uint256"
30402 }
30403 }
30404 ],
30405 "id": 1677,
30406 "isConstant": false,
30407 "isInlineArray": false,
30408 "isLValue": false,
30409 "isPure": false,
30410 "lValueRequested": false,
30411 "nodeType": "TupleExpression",
30412 "src": "10506:24:2",
30413 "typeDescriptions": {
30414 "typeIdentifier": "t_uint256",
30415 "typeString": "uint256"
30416 }
30417 },
30418 "src": "10495:35:2",
30419 "typeDescriptions": {
30420 "typeIdentifier": "t_uint256",
30421 "typeString": "uint256"
30422 }
30423 },
30424 "typeDescriptions": {
30425 "typeIdentifier": "t_uint256",
30426 "typeString": "uint256"
30427 }
30428 },
30429 "nodeType": "VariableDeclarationStatement",
30430 "src": "10442:92:2"
30431 },
30432 {
30433 "expression": {
30434 "argumentTypes": null,
30435 "arguments": [
30436 {
30437 "argumentTypes": null,
30438 "commonType": {
30439 "typeIdentifier": "t_bool",
30440 "typeString": "bool"
30441 },
30442 "id": 1689,
30443 "isConstant": false,
30444 "isLValue": false,
30445 "isPure": false,
30446 "lValueRequested": false,
30447 "leftExpression": {
30448 "argumentTypes": null,
30449 "commonType": {
30450 "typeIdentifier": "t_uint256",
30451 "typeString": "uint256"
30452 },
30453 "id": 1685,
30454 "isConstant": false,
30455 "isLValue": false,
30456 "isPure": false,
30457 "lValueRequested": false,
30458 "leftExpression": {
30459 "argumentTypes": null,
30460 "id": 1683,
30461 "name": "amount0In",
30462 "nodeType": "Identifier",
30463 "overloadedDeclarations": [],
30464 "referencedDeclaration": 1651,
30465 "src": "10552:9:2",
30466 "typeDescriptions": {
30467 "typeIdentifier": "t_uint256",
30468 "typeString": "uint256"
30469 }
30470 },
30471 "nodeType": "BinaryOperation",
30472 "operator": ">",
30473 "rightExpression": {
30474 "argumentTypes": null,
30475 "hexValue": "30",
30476 "id": 1684,
30477 "isConstant": false,
30478 "isLValue": false,
30479 "isPure": true,
30480 "kind": "number",
30481 "lValueRequested": false,
30482 "nodeType": "Literal",
30483 "src": "10564:1:2",
30484 "subdenomination": null,
30485 "typeDescriptions": {
30486 "typeIdentifier": "t_rational_0_by_1",
30487 "typeString": "int_const 0"
30488 },
30489 "value": "0"
30490 },
30491 "src": "10552:13:2",
30492 "typeDescriptions": {
30493 "typeIdentifier": "t_bool",
30494 "typeString": "bool"
30495 }
30496 },
30497 "nodeType": "BinaryOperation",
30498 "operator": "||",
30499 "rightExpression": {
30500 "argumentTypes": null,
30501 "commonType": {
30502 "typeIdentifier": "t_uint256",
30503 "typeString": "uint256"
30504 },
30505 "id": 1688,
30506 "isConstant": false,
30507 "isLValue": false,
30508 "isPure": false,
30509 "lValueRequested": false,
30510 "leftExpression": {
30511 "argumentTypes": null,
30512 "id": 1686,
30513 "name": "amount1In",
30514 "nodeType": "Identifier",
30515 "overloadedDeclarations": [],
30516 "referencedDeclaration": 1667,
30517 "src": "10569:9:2",
30518 "typeDescriptions": {
30519 "typeIdentifier": "t_uint256",
30520 "typeString": "uint256"
30521 }
30522 },
30523 "nodeType": "BinaryOperation",
30524 "operator": ">",
30525 "rightExpression": {
30526 "argumentTypes": null,
30527 "hexValue": "30",
30528 "id": 1687,
30529 "isConstant": false,
30530 "isLValue": false,
30531 "isPure": true,
30532 "kind": "number",
30533 "lValueRequested": false,
30534 "nodeType": "Literal",
30535 "src": "10581:1:2",
30536 "subdenomination": null,
30537 "typeDescriptions": {
30538 "typeIdentifier": "t_rational_0_by_1",
30539 "typeString": "int_const 0"
30540 },
30541 "value": "0"
30542 },
30543 "src": "10569:13:2",
30544 "typeDescriptions": {
30545 "typeIdentifier": "t_bool",
30546 "typeString": "bool"
30547 }
30548 },
30549 "src": "10552:30:2",
30550 "typeDescriptions": {
30551 "typeIdentifier": "t_bool",
30552 "typeString": "bool"
30553 }
30554 },
30555 {
30556 "argumentTypes": null,
30557 "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54",
30558 "id": 1690,
30559 "isConstant": false,
30560 "isLValue": false,
30561 "isPure": true,
30562 "kind": "string",
30563 "lValueRequested": false,
30564 "nodeType": "Literal",
30565 "src": "10584:38:2",
30566 "subdenomination": null,
30567 "typeDescriptions": {
30568 "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67",
30569 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\""
30570 },
30571 "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT"
30572 }
30573 ],
30574 "expression": {
30575 "argumentTypes": [
30576 {
30577 "typeIdentifier": "t_bool",
30578 "typeString": "bool"
30579 },
30580 {
30581 "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67",
30582 "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\""
30583 }
30584 ],
30585 "id": 1682,
30586 "name": "require",
30587 "nodeType": "Identifier",
30588 "overloadedDeclarations": [
30589 2620,
30590 2621
30591 ],
30592 "referencedDeclaration": 2621,
30593 "src": "10544:7:2",
30594 "typeDescriptions": {
30595 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
30596 "typeString": "function (bool,string memory) pure"
30597 }
30598 },
30599 "id": 1691,
30600 "isConstant": false,
30601 "isLValue": false,
30602 "isPure": false,
30603 "kind": "functionCall",
30604 "lValueRequested": false,
30605 "names": [],
30606 "nodeType": "FunctionCall",
30607 "src": "10544:79:2",
30608 "typeDescriptions": {
30609 "typeIdentifier": "t_tuple$__$",
30610 "typeString": "tuple()"
30611 }
30612 },
30613 "id": 1692,
30614 "nodeType": "ExpressionStatement",
30615 "src": "10544:79:2"
30616 },
30617 {
30618 "id": 1739,
30619 "nodeType": "Block",
30620 "src": "10633:343:2",
30621 "statements": [
30622 {
30623 "assignments": [
30624 1694
30625 ],
30626 "declarations": [
30627 {
30628 "constant": false,
30629 "id": 1694,
30630 "name": "balance0Adjusted",
30631 "nodeType": "VariableDeclaration",
30632 "scope": 1739,
30633 "src": "10707:21:2",
30634 "stateVariable": false,
30635 "storageLocation": "default",
30636 "typeDescriptions": {
30637 "typeIdentifier": "t_uint256",
30638 "typeString": "uint256"
30639 },
30640 "typeName": {
30641 "id": 1693,
30642 "name": "uint",
30643 "nodeType": "ElementaryTypeName",
30644 "src": "10707:4:2",
30645 "typeDescriptions": {
30646 "typeIdentifier": "t_uint256",
30647 "typeString": "uint256"
30648 }
30649 },
30650 "value": null,
30651 "visibility": "internal"
30652 }
30653 ],
30654 "id": 1705,
30655 "initialValue": {
30656 "argumentTypes": null,
30657 "arguments": [
30658 {
30659 "argumentTypes": null,
30660 "arguments": [
30661 {
30662 "argumentTypes": null,
30663 "hexValue": "33",
30664 "id": 1702,
30665 "isConstant": false,
30666 "isLValue": false,
30667 "isPure": true,
30668 "kind": "number",
30669 "lValueRequested": false,
30670 "nodeType": "Literal",
30671 "src": "10768:1:2",
30672 "subdenomination": null,
30673 "typeDescriptions": {
30674 "typeIdentifier": "t_rational_3_by_1",
30675 "typeString": "int_const 3"
30676 },
30677 "value": "3"
30678 }
30679 ],
30680 "expression": {
30681 "argumentTypes": [
30682 {
30683 "typeIdentifier": "t_rational_3_by_1",
30684 "typeString": "int_const 3"
30685 }
30686 ],
30687 "expression": {
30688 "argumentTypes": null,
30689 "id": 1700,
30690 "name": "amount0In",
30691 "nodeType": "Identifier",
30692 "overloadedDeclarations": [],
30693 "referencedDeclaration": 1651,
30694 "src": "10754:9:2",
30695 "typeDescriptions": {
30696 "typeIdentifier": "t_uint256",
30697 "typeString": "uint256"
30698 }
30699 },
30700 "id": 1701,
30701 "isConstant": false,
30702 "isLValue": false,
30703 "isPure": false,
30704 "lValueRequested": false,
30705 "memberName": "mul",
30706 "nodeType": "MemberAccess",
30707 "referencedDeclaration": 2541,
30708 "src": "10754:13:2",
30709 "typeDescriptions": {
30710 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
30711 "typeString": "function (uint256,uint256) pure returns (uint256)"
30712 }
30713 },
30714 "id": 1703,
30715 "isConstant": false,
30716 "isLValue": false,
30717 "isPure": false,
30718 "kind": "functionCall",
30719 "lValueRequested": false,
30720 "names": [],
30721 "nodeType": "FunctionCall",
30722 "src": "10754:16:2",
30723 "typeDescriptions": {
30724 "typeIdentifier": "t_uint256",
30725 "typeString": "uint256"
30726 }
30727 }
30728 ],
30729 "expression": {
30730 "argumentTypes": [
30731 {
30732 "typeIdentifier": "t_uint256",
30733 "typeString": "uint256"
30734 }
30735 ],
30736 "expression": {
30737 "argumentTypes": null,
30738 "arguments": [
30739 {
30740 "argumentTypes": null,
30741 "hexValue": "31303030",
30742 "id": 1697,
30743 "isConstant": false,
30744 "isLValue": false,
30745 "isPure": true,
30746 "kind": "number",
30747 "lValueRequested": false,
30748 "nodeType": "Literal",
30749 "src": "10744:4:2",
30750 "subdenomination": null,
30751 "typeDescriptions": {
30752 "typeIdentifier": "t_rational_1000_by_1",
30753 "typeString": "int_const 1000"
30754 },
30755 "value": "1000"
30756 }
30757 ],
30758 "expression": {
30759 "argumentTypes": [
30760 {
30761 "typeIdentifier": "t_rational_1000_by_1",
30762 "typeString": "int_const 1000"
30763 }
30764 ],
30765 "expression": {
30766 "argumentTypes": null,
30767 "id": 1695,
30768 "name": "balance0",
30769 "nodeType": "Identifier",
30770 "overloadedDeclarations": [],
30771 "referencedDeclaration": 1567,
30772 "src": "10731:8:2",
30773 "typeDescriptions": {
30774 "typeIdentifier": "t_uint256",
30775 "typeString": "uint256"
30776 }
30777 },
30778 "id": 1696,
30779 "isConstant": false,
30780 "isLValue": false,
30781 "isPure": false,
30782 "lValueRequested": false,
30783 "memberName": "mul",
30784 "nodeType": "MemberAccess",
30785 "referencedDeclaration": 2541,
30786 "src": "10731:12:2",
30787 "typeDescriptions": {
30788 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
30789 "typeString": "function (uint256,uint256) pure returns (uint256)"
30790 }
30791 },
30792 "id": 1698,
30793 "isConstant": false,
30794 "isLValue": false,
30795 "isPure": false,
30796 "kind": "functionCall",
30797 "lValueRequested": false,
30798 "names": [],
30799 "nodeType": "FunctionCall",
30800 "src": "10731:18:2",
30801 "typeDescriptions": {
30802 "typeIdentifier": "t_uint256",
30803 "typeString": "uint256"
30804 }
30805 },
30806 "id": 1699,
30807 "isConstant": false,
30808 "isLValue": false,
30809 "isPure": false,
30810 "lValueRequested": false,
30811 "memberName": "sub",
30812 "nodeType": "MemberAccess",
30813 "referencedDeclaration": 2513,
30814 "src": "10731:22:2",
30815 "typeDescriptions": {
30816 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
30817 "typeString": "function (uint256,uint256) pure returns (uint256)"
30818 }
30819 },
30820 "id": 1704,
30821 "isConstant": false,
30822 "isLValue": false,
30823 "isPure": false,
30824 "kind": "functionCall",
30825 "lValueRequested": false,
30826 "names": [],
30827 "nodeType": "FunctionCall",
30828 "src": "10731:40:2",
30829 "typeDescriptions": {
30830 "typeIdentifier": "t_uint256",
30831 "typeString": "uint256"
30832 }
30833 },
30834 "nodeType": "VariableDeclarationStatement",
30835 "src": "10707:64:2"
30836 },
30837 {
30838 "assignments": [
30839 1707
30840 ],
30841 "declarations": [
30842 {
30843 "constant": false,
30844 "id": 1707,
30845 "name": "balance1Adjusted",
30846 "nodeType": "VariableDeclaration",
30847 "scope": 1739,
30848 "src": "10781:21:2",
30849 "stateVariable": false,
30850 "storageLocation": "default",
30851 "typeDescriptions": {
30852 "typeIdentifier": "t_uint256",
30853 "typeString": "uint256"
30854 },
30855 "typeName": {
30856 "id": 1706,
30857 "name": "uint",
30858 "nodeType": "ElementaryTypeName",
30859 "src": "10781:4:2",
30860 "typeDescriptions": {
30861 "typeIdentifier": "t_uint256",
30862 "typeString": "uint256"
30863 }
30864 },
30865 "value": null,
30866 "visibility": "internal"
30867 }
30868 ],
30869 "id": 1718,
30870 "initialValue": {
30871 "argumentTypes": null,
30872 "arguments": [
30873 {
30874 "argumentTypes": null,
30875 "arguments": [
30876 {
30877 "argumentTypes": null,
30878 "hexValue": "33",
30879 "id": 1715,
30880 "isConstant": false,
30881 "isLValue": false,
30882 "isPure": true,
30883 "kind": "number",
30884 "lValueRequested": false,
30885 "nodeType": "Literal",
30886 "src": "10842:1:2",
30887 "subdenomination": null,
30888 "typeDescriptions": {
30889 "typeIdentifier": "t_rational_3_by_1",
30890 "typeString": "int_const 3"
30891 },
30892 "value": "3"
30893 }
30894 ],
30895 "expression": {
30896 "argumentTypes": [
30897 {
30898 "typeIdentifier": "t_rational_3_by_1",
30899 "typeString": "int_const 3"
30900 }
30901 ],
30902 "expression": {
30903 "argumentTypes": null,
30904 "id": 1713,
30905 "name": "amount1In",
30906 "nodeType": "Identifier",
30907 "overloadedDeclarations": [],
30908 "referencedDeclaration": 1667,
30909 "src": "10828:9:2",
30910 "typeDescriptions": {
30911 "typeIdentifier": "t_uint256",
30912 "typeString": "uint256"
30913 }
30914 },
30915 "id": 1714,
30916 "isConstant": false,
30917 "isLValue": false,
30918 "isPure": false,
30919 "lValueRequested": false,
30920 "memberName": "mul",
30921 "nodeType": "MemberAccess",
30922 "referencedDeclaration": 2541,
30923 "src": "10828:13:2",
30924 "typeDescriptions": {
30925 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
30926 "typeString": "function (uint256,uint256) pure returns (uint256)"
30927 }
30928 },
30929 "id": 1716,
30930 "isConstant": false,
30931 "isLValue": false,
30932 "isPure": false,
30933 "kind": "functionCall",
30934 "lValueRequested": false,
30935 "names": [],
30936 "nodeType": "FunctionCall",
30937 "src": "10828:16:2",
30938 "typeDescriptions": {
30939 "typeIdentifier": "t_uint256",
30940 "typeString": "uint256"
30941 }
30942 }
30943 ],
30944 "expression": {
30945 "argumentTypes": [
30946 {
30947 "typeIdentifier": "t_uint256",
30948 "typeString": "uint256"
30949 }
30950 ],
30951 "expression": {
30952 "argumentTypes": null,
30953 "arguments": [
30954 {
30955 "argumentTypes": null,
30956 "hexValue": "31303030",
30957 "id": 1710,
30958 "isConstant": false,
30959 "isLValue": false,
30960 "isPure": true,
30961 "kind": "number",
30962 "lValueRequested": false,
30963 "nodeType": "Literal",
30964 "src": "10818:4:2",
30965 "subdenomination": null,
30966 "typeDescriptions": {
30967 "typeIdentifier": "t_rational_1000_by_1",
30968 "typeString": "int_const 1000"
30969 },
30970 "value": "1000"
30971 }
30972 ],
30973 "expression": {
30974 "argumentTypes": [
30975 {
30976 "typeIdentifier": "t_rational_1000_by_1",
30977 "typeString": "int_const 1000"
30978 }
30979 ],
30980 "expression": {
30981 "argumentTypes": null,
30982 "id": 1708,
30983 "name": "balance1",
30984 "nodeType": "Identifier",
30985 "overloadedDeclarations": [],
30986 "referencedDeclaration": 1570,
30987 "src": "10805:8:2",
30988 "typeDescriptions": {
30989 "typeIdentifier": "t_uint256",
30990 "typeString": "uint256"
30991 }
30992 },
30993 "id": 1709,
30994 "isConstant": false,
30995 "isLValue": false,
30996 "isPure": false,
30997 "lValueRequested": false,
30998 "memberName": "mul",
30999 "nodeType": "MemberAccess",
31000 "referencedDeclaration": 2541,
31001 "src": "10805:12:2",
31002 "typeDescriptions": {
31003 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
31004 "typeString": "function (uint256,uint256) pure returns (uint256)"
31005 }
31006 },
31007 "id": 1711,
31008 "isConstant": false,
31009 "isLValue": false,
31010 "isPure": false,
31011 "kind": "functionCall",
31012 "lValueRequested": false,
31013 "names": [],
31014 "nodeType": "FunctionCall",
31015 "src": "10805:18:2",
31016 "typeDescriptions": {
31017 "typeIdentifier": "t_uint256",
31018 "typeString": "uint256"
31019 }
31020 },
31021 "id": 1712,
31022 "isConstant": false,
31023 "isLValue": false,
31024 "isPure": false,
31025 "lValueRequested": false,
31026 "memberName": "sub",
31027 "nodeType": "MemberAccess",
31028 "referencedDeclaration": 2513,
31029 "src": "10805:22:2",
31030 "typeDescriptions": {
31031 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
31032 "typeString": "function (uint256,uint256) pure returns (uint256)"
31033 }
31034 },
31035 "id": 1717,
31036 "isConstant": false,
31037 "isLValue": false,
31038 "isPure": false,
31039 "kind": "functionCall",
31040 "lValueRequested": false,
31041 "names": [],
31042 "nodeType": "FunctionCall",
31043 "src": "10805:40:2",
31044 "typeDescriptions": {
31045 "typeIdentifier": "t_uint256",
31046 "typeString": "uint256"
31047 }
31048 },
31049 "nodeType": "VariableDeclarationStatement",
31050 "src": "10781:64:2"
31051 },
31052 {
31053 "expression": {
31054 "argumentTypes": null,
31055 "arguments": [
31056 {
31057 "argumentTypes": null,
31058 "commonType": {
31059 "typeIdentifier": "t_uint256",
31060 "typeString": "uint256"
31061 },
31062 "id": 1735,
31063 "isConstant": false,
31064 "isLValue": false,
31065 "isPure": false,
31066 "lValueRequested": false,
31067 "leftExpression": {
31068 "argumentTypes": null,
31069 "arguments": [
31070 {
31071 "argumentTypes": null,
31072 "id": 1722,
31073 "name": "balance1Adjusted",
31074 "nodeType": "Identifier",
31075 "overloadedDeclarations": [],
31076 "referencedDeclaration": 1707,
31077 "src": "10884:16:2",
31078 "typeDescriptions": {
31079 "typeIdentifier": "t_uint256",
31080 "typeString": "uint256"
31081 }
31082 }
31083 ],
31084 "expression": {
31085 "argumentTypes": [
31086 {
31087 "typeIdentifier": "t_uint256",
31088 "typeString": "uint256"
31089 }
31090 ],
31091 "expression": {
31092 "argumentTypes": null,
31093 "id": 1720,
31094 "name": "balance0Adjusted",
31095 "nodeType": "Identifier",
31096 "overloadedDeclarations": [],
31097 "referencedDeclaration": 1694,
31098 "src": "10863:16:2",
31099 "typeDescriptions": {
31100 "typeIdentifier": "t_uint256",
31101 "typeString": "uint256"
31102 }
31103 },
31104 "id": 1721,
31105 "isConstant": false,
31106 "isLValue": false,
31107 "isPure": false,
31108 "lValueRequested": false,
31109 "memberName": "mul",
31110 "nodeType": "MemberAccess",
31111 "referencedDeclaration": 2541,
31112 "src": "10863:20:2",
31113 "typeDescriptions": {
31114 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
31115 "typeString": "function (uint256,uint256) pure returns (uint256)"
31116 }
31117 },
31118 "id": 1723,
31119 "isConstant": false,
31120 "isLValue": false,
31121 "isPure": false,
31122 "kind": "functionCall",
31123 "lValueRequested": false,
31124 "names": [],
31125 "nodeType": "FunctionCall",
31126 "src": "10863:38:2",
31127 "typeDescriptions": {
31128 "typeIdentifier": "t_uint256",
31129 "typeString": "uint256"
31130 }
31131 },
31132 "nodeType": "BinaryOperation",
31133 "operator": ">=",
31134 "rightExpression": {
31135 "argumentTypes": null,
31136 "arguments": [
31137 {
31138 "argumentTypes": null,
31139 "commonType": {
31140 "typeIdentifier": "t_rational_1000000_by_1",
31141 "typeString": "int_const 1000000"
31142 },
31143 "id": 1733,
31144 "isConstant": false,
31145 "isLValue": false,
31146 "isPure": true,
31147 "lValueRequested": false,
31148 "leftExpression": {
31149 "argumentTypes": null,
31150 "hexValue": "31303030",
31151 "id": 1731,
31152 "isConstant": false,
31153 "isLValue": false,
31154 "isPure": true,
31155 "kind": "number",
31156 "lValueRequested": false,
31157 "nodeType": "Literal",
31158 "src": "10940:4:2",
31159 "subdenomination": null,
31160 "typeDescriptions": {
31161 "typeIdentifier": "t_rational_1000_by_1",
31162 "typeString": "int_const 1000"
31163 },
31164 "value": "1000"
31165 },
31166 "nodeType": "BinaryOperation",
31167 "operator": "**",
31168 "rightExpression": {
31169 "argumentTypes": null,
31170 "hexValue": "32",
31171 "id": 1732,
31172 "isConstant": false,
31173 "isLValue": false,
31174 "isPure": true,
31175 "kind": "number",
31176 "lValueRequested": false,
31177 "nodeType": "Literal",
31178 "src": "10946:1:2",
31179 "subdenomination": null,
31180 "typeDescriptions": {
31181 "typeIdentifier": "t_rational_2_by_1",
31182 "typeString": "int_const 2"
31183 },
31184 "value": "2"
31185 },
31186 "src": "10940:7:2",
31187 "typeDescriptions": {
31188 "typeIdentifier": "t_rational_1000000_by_1",
31189 "typeString": "int_const 1000000"
31190 }
31191 }
31192 ],
31193 "expression": {
31194 "argumentTypes": [
31195 {
31196 "typeIdentifier": "t_rational_1000000_by_1",
31197 "typeString": "int_const 1000000"
31198 }
31199 ],
31200 "expression": {
31201 "argumentTypes": null,
31202 "arguments": [
31203 {
31204 "argumentTypes": null,
31205 "id": 1728,
31206 "name": "_reserve1",
31207 "nodeType": "Identifier",
31208 "overloadedDeclarations": [],
31209 "referencedDeclaration": 1551,
31210 "src": "10925:9:2",
31211 "typeDescriptions": {
31212 "typeIdentifier": "t_uint112",
31213 "typeString": "uint112"
31214 }
31215 }
31216 ],
31217 "expression": {
31218 "argumentTypes": [
31219 {
31220 "typeIdentifier": "t_uint112",
31221 "typeString": "uint112"
31222 }
31223 ],
31224 "expression": {
31225 "argumentTypes": null,
31226 "arguments": [
31227 {
31228 "argumentTypes": null,
31229 "id": 1725,
31230 "name": "_reserve0",
31231 "nodeType": "Identifier",
31232 "overloadedDeclarations": [],
31233 "referencedDeclaration": 1549,
31234 "src": "10910:9:2",
31235 "typeDescriptions": {
31236 "typeIdentifier": "t_uint112",
31237 "typeString": "uint112"
31238 }
31239 }
31240 ],
31241 "expression": {
31242 "argumentTypes": [
31243 {
31244 "typeIdentifier": "t_uint112",
31245 "typeString": "uint112"
31246 }
31247 ],
31248 "id": 1724,
31249 "isConstant": false,
31250 "isLValue": false,
31251 "isPure": true,
31252 "lValueRequested": false,
31253 "nodeType": "ElementaryTypeNameExpression",
31254 "src": "10905:4:2",
31255 "typeDescriptions": {
31256 "typeIdentifier": "t_type$_t_uint256_$",
31257 "typeString": "type(uint256)"
31258 },
31259 "typeName": "uint"
31260 },
31261 "id": 1726,
31262 "isConstant": false,
31263 "isLValue": false,
31264 "isPure": false,
31265 "kind": "typeConversion",
31266 "lValueRequested": false,
31267 "names": [],
31268 "nodeType": "FunctionCall",
31269 "src": "10905:15:2",
31270 "typeDescriptions": {
31271 "typeIdentifier": "t_uint256",
31272 "typeString": "uint256"
31273 }
31274 },
31275 "id": 1727,
31276 "isConstant": false,
31277 "isLValue": false,
31278 "isPure": false,
31279 "lValueRequested": false,
31280 "memberName": "mul",
31281 "nodeType": "MemberAccess",
31282 "referencedDeclaration": 2541,
31283 "src": "10905:19:2",
31284 "typeDescriptions": {
31285 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
31286 "typeString": "function (uint256,uint256) pure returns (uint256)"
31287 }
31288 },
31289 "id": 1729,
31290 "isConstant": false,
31291 "isLValue": false,
31292 "isPure": false,
31293 "kind": "functionCall",
31294 "lValueRequested": false,
31295 "names": [],
31296 "nodeType": "FunctionCall",
31297 "src": "10905:30:2",
31298 "typeDescriptions": {
31299 "typeIdentifier": "t_uint256",
31300 "typeString": "uint256"
31301 }
31302 },
31303 "id": 1730,
31304 "isConstant": false,
31305 "isLValue": false,
31306 "isPure": false,
31307 "lValueRequested": false,
31308 "memberName": "mul",
31309 "nodeType": "MemberAccess",
31310 "referencedDeclaration": 2541,
31311 "src": "10905:34:2",
31312 "typeDescriptions": {
31313 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
31314 "typeString": "function (uint256,uint256) pure returns (uint256)"
31315 }
31316 },
31317 "id": 1734,
31318 "isConstant": false,
31319 "isLValue": false,
31320 "isPure": false,
31321 "kind": "functionCall",
31322 "lValueRequested": false,
31323 "names": [],
31324 "nodeType": "FunctionCall",
31325 "src": "10905:43:2",
31326 "typeDescriptions": {
31327 "typeIdentifier": "t_uint256",
31328 "typeString": "uint256"
31329 }
31330 },
31331 "src": "10863:85:2",
31332 "typeDescriptions": {
31333 "typeIdentifier": "t_bool",
31334 "typeString": "bool"
31335 }
31336 },
31337 {
31338 "argumentTypes": null,
31339 "hexValue": "556e697377617056323a204b",
31340 "id": 1736,
31341 "isConstant": false,
31342 "isLValue": false,
31343 "isPure": true,
31344 "kind": "string",
31345 "lValueRequested": false,
31346 "nodeType": "Literal",
31347 "src": "10950:14:2",
31348 "subdenomination": null,
31349 "typeDescriptions": {
31350 "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af",
31351 "typeString": "literal_string \"UniswapV2: K\""
31352 },
31353 "value": "UniswapV2: K"
31354 }
31355 ],
31356 "expression": {
31357 "argumentTypes": [
31358 {
31359 "typeIdentifier": "t_bool",
31360 "typeString": "bool"
31361 },
31362 {
31363 "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af",
31364 "typeString": "literal_string \"UniswapV2: K\""
31365 }
31366 ],
31367 "id": 1719,
31368 "name": "require",
31369 "nodeType": "Identifier",
31370 "overloadedDeclarations": [
31371 2620,
31372 2621
31373 ],
31374 "referencedDeclaration": 2621,
31375 "src": "10855:7:2",
31376 "typeDescriptions": {
31377 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
31378 "typeString": "function (bool,string memory) pure"
31379 }
31380 },
31381 "id": 1737,
31382 "isConstant": false,
31383 "isLValue": false,
31384 "isPure": false,
31385 "kind": "functionCall",
31386 "lValueRequested": false,
31387 "names": [],
31388 "nodeType": "FunctionCall",
31389 "src": "10855:110:2",
31390 "typeDescriptions": {
31391 "typeIdentifier": "t_tuple$__$",
31392 "typeString": "tuple()"
31393 }
31394 },
31395 "id": 1738,
31396 "nodeType": "ExpressionStatement",
31397 "src": "10855:110:2"
31398 }
31399 ]
31400 },
31401 {
31402 "expression": {
31403 "argumentTypes": null,
31404 "arguments": [
31405 {
31406 "argumentTypes": null,
31407 "id": 1741,
31408 "name": "balance0",
31409 "nodeType": "Identifier",
31410 "overloadedDeclarations": [],
31411 "referencedDeclaration": 1567,
31412 "src": "10994:8:2",
31413 "typeDescriptions": {
31414 "typeIdentifier": "t_uint256",
31415 "typeString": "uint256"
31416 }
31417 },
31418 {
31419 "argumentTypes": null,
31420 "id": 1742,
31421 "name": "balance1",
31422 "nodeType": "Identifier",
31423 "overloadedDeclarations": [],
31424 "referencedDeclaration": 1570,
31425 "src": "11004:8:2",
31426 "typeDescriptions": {
31427 "typeIdentifier": "t_uint256",
31428 "typeString": "uint256"
31429 }
31430 },
31431 {
31432 "argumentTypes": null,
31433 "id": 1743,
31434 "name": "_reserve0",
31435 "nodeType": "Identifier",
31436 "overloadedDeclarations": [],
31437 "referencedDeclaration": 1549,
31438 "src": "11014:9:2",
31439 "typeDescriptions": {
31440 "typeIdentifier": "t_uint112",
31441 "typeString": "uint112"
31442 }
31443 },
31444 {
31445 "argumentTypes": null,
31446 "id": 1744,
31447 "name": "_reserve1",
31448 "nodeType": "Identifier",
31449 "overloadedDeclarations": [],
31450 "referencedDeclaration": 1551,
31451 "src": "11025:9:2",
31452 "typeDescriptions": {
31453 "typeIdentifier": "t_uint112",
31454 "typeString": "uint112"
31455 }
31456 }
31457 ],
31458 "expression": {
31459 "argumentTypes": [
31460 {
31461 "typeIdentifier": "t_uint256",
31462 "typeString": "uint256"
31463 },
31464 {
31465 "typeIdentifier": "t_uint256",
31466 "typeString": "uint256"
31467 },
31468 {
31469 "typeIdentifier": "t_uint112",
31470 "typeString": "uint112"
31471 },
31472 {
31473 "typeIdentifier": "t_uint112",
31474 "typeString": "uint112"
31475 }
31476 ],
31477 "id": 1740,
31478 "name": "_update",
31479 "nodeType": "Identifier",
31480 "overloadedDeclarations": [],
31481 "referencedDeclaration": 1029,
31482 "src": "10986:7:2",
31483 "typeDescriptions": {
31484 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$",
31485 "typeString": "function (uint256,uint256,uint112,uint112)"
31486 }
31487 },
31488 "id": 1745,
31489 "isConstant": false,
31490 "isLValue": false,
31491 "isPure": false,
31492 "kind": "functionCall",
31493 "lValueRequested": false,
31494 "names": [],
31495 "nodeType": "FunctionCall",
31496 "src": "10986:49:2",
31497 "typeDescriptions": {
31498 "typeIdentifier": "t_tuple$__$",
31499 "typeString": "tuple()"
31500 }
31501 },
31502 "id": 1746,
31503 "nodeType": "ExpressionStatement",
31504 "src": "10986:49:2"
31505 },
31506 {
31507 "eventCall": {
31508 "argumentTypes": null,
31509 "arguments": [
31510 {
31511 "argumentTypes": null,
31512 "expression": {
31513 "argumentTypes": null,
31514 "id": 1748,
31515 "name": "msg",
31516 "nodeType": "Identifier",
31517 "overloadedDeclarations": [],
31518 "referencedDeclaration": 2617,
31519 "src": "11055:3:2",
31520 "typeDescriptions": {
31521 "typeIdentifier": "t_magic_message",
31522 "typeString": "msg"
31523 }
31524 },
31525 "id": 1749,
31526 "isConstant": false,
31527 "isLValue": false,
31528 "isPure": false,
31529 "lValueRequested": false,
31530 "memberName": "sender",
31531 "nodeType": "MemberAccess",
31532 "referencedDeclaration": null,
31533 "src": "11055:10:2",
31534 "typeDescriptions": {
31535 "typeIdentifier": "t_address_payable",
31536 "typeString": "address payable"
31537 }
31538 },
31539 {
31540 "argumentTypes": null,
31541 "id": 1750,
31542 "name": "amount0In",
31543 "nodeType": "Identifier",
31544 "overloadedDeclarations": [],
31545 "referencedDeclaration": 1651,
31546 "src": "11067:9:2",
31547 "typeDescriptions": {
31548 "typeIdentifier": "t_uint256",
31549 "typeString": "uint256"
31550 }
31551 },
31552 {
31553 "argumentTypes": null,
31554 "id": 1751,
31555 "name": "amount1In",
31556 "nodeType": "Identifier",
31557 "overloadedDeclarations": [],
31558 "referencedDeclaration": 1667,
31559 "src": "11078:9:2",
31560 "typeDescriptions": {
31561 "typeIdentifier": "t_uint256",
31562 "typeString": "uint256"
31563 }
31564 },
31565 {
31566 "argumentTypes": null,
31567 "id": 1752,
31568 "name": "amount0Out",
31569 "nodeType": "Identifier",
31570 "overloadedDeclarations": [],
31571 "referencedDeclaration": 1526,
31572 "src": "11089:10:2",
31573 "typeDescriptions": {
31574 "typeIdentifier": "t_uint256",
31575 "typeString": "uint256"
31576 }
31577 },
31578 {
31579 "argumentTypes": null,
31580 "id": 1753,
31581 "name": "amount1Out",
31582 "nodeType": "Identifier",
31583 "overloadedDeclarations": [],
31584 "referencedDeclaration": 1528,
31585 "src": "11101:10:2",
31586 "typeDescriptions": {
31587 "typeIdentifier": "t_uint256",
31588 "typeString": "uint256"
31589 }
31590 },
31591 {
31592 "argumentTypes": null,
31593 "id": 1754,
31594 "name": "to",
31595 "nodeType": "Identifier",
31596 "overloadedDeclarations": [],
31597 "referencedDeclaration": 1530,
31598 "src": "11113:2:2",
31599 "typeDescriptions": {
31600 "typeIdentifier": "t_address",
31601 "typeString": "address"
31602 }
31603 }
31604 ],
31605 "expression": {
31606 "argumentTypes": [
31607 {
31608 "typeIdentifier": "t_address_payable",
31609 "typeString": "address payable"
31610 },
31611 {
31612 "typeIdentifier": "t_uint256",
31613 "typeString": "uint256"
31614 },
31615 {
31616 "typeIdentifier": "t_uint256",
31617 "typeString": "uint256"
31618 },
31619 {
31620 "typeIdentifier": "t_uint256",
31621 "typeString": "uint256"
31622 },
31623 {
31624 "typeIdentifier": "t_uint256",
31625 "typeString": "uint256"
31626 },
31627 {
31628 "typeIdentifier": "t_address",
31629 "typeString": "address"
31630 }
31631 ],
31632 "id": 1747,
31633 "name": "Swap",
31634 "nodeType": "Identifier",
31635 "overloadedDeclarations": [
31636 801
31637 ],
31638 "referencedDeclaration": 801,
31639 "src": "11050:4:2",
31640 "typeDescriptions": {
31641 "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
31642 "typeString": "function (address,uint256,uint256,uint256,uint256,address)"
31643 }
31644 },
31645 "id": 1755,
31646 "isConstant": false,
31647 "isLValue": false,
31648 "isPure": false,
31649 "kind": "functionCall",
31650 "lValueRequested": false,
31651 "names": [],
31652 "nodeType": "FunctionCall",
31653 "src": "11050:66:2",
31654 "typeDescriptions": {
31655 "typeIdentifier": "t_tuple$__$",
31656 "typeString": "tuple()"
31657 }
31658 },
31659 "id": 1756,
31660 "nodeType": "EmitStatement",
31661 "src": "11045:71:2"
31662 }
31663 ]
31664 },
31665 "documentation": null,
31666 "id": 1758,
31667 "implemented": true,
31668 "kind": "function",
31669 "modifiers": [
31670 {
31671 "arguments": null,
31672 "id": 1535,
31673 "modifierName": {
31674 "argumentTypes": null,
31675 "id": 1534,
31676 "name": "lock",
31677 "nodeType": "Identifier",
31678 "overloadedDeclarations": [],
31679 "referencedDeclaration": 677,
31680 "src": "9351:4:2",
31681 "typeDescriptions": {
31682 "typeIdentifier": "t_modifier$__$",
31683 "typeString": "modifier ()"
31684 }
31685 },
31686 "nodeType": "ModifierInvocation",
31687 "src": "9351:4:2"
31688 }
31689 ],
31690 "name": "swap",
31691 "nodeType": "FunctionDefinition",
31692 "parameters": {
31693 "id": 1533,
31694 "nodeType": "ParameterList",
31695 "parameters": [
31696 {
31697 "constant": false,
31698 "id": 1526,
31699 "name": "amount0Out",
31700 "nodeType": "VariableDeclaration",
31701 "scope": 1758,
31702 "src": "9275:15:2",
31703 "stateVariable": false,
31704 "storageLocation": "default",
31705 "typeDescriptions": {
31706 "typeIdentifier": "t_uint256",
31707 "typeString": "uint256"
31708 },
31709 "typeName": {
31710 "id": 1525,
31711 "name": "uint",
31712 "nodeType": "ElementaryTypeName",
31713 "src": "9275:4:2",
31714 "typeDescriptions": {
31715 "typeIdentifier": "t_uint256",
31716 "typeString": "uint256"
31717 }
31718 },
31719 "value": null,
31720 "visibility": "internal"
31721 },
31722 {
31723 "constant": false,
31724 "id": 1528,
31725 "name": "amount1Out",
31726 "nodeType": "VariableDeclaration",
31727 "scope": 1758,
31728 "src": "9292:15:2",
31729 "stateVariable": false,
31730 "storageLocation": "default",
31731 "typeDescriptions": {
31732 "typeIdentifier": "t_uint256",
31733 "typeString": "uint256"
31734 },
31735 "typeName": {
31736 "id": 1527,
31737 "name": "uint",
31738 "nodeType": "ElementaryTypeName",
31739 "src": "9292:4:2",
31740 "typeDescriptions": {
31741 "typeIdentifier": "t_uint256",
31742 "typeString": "uint256"
31743 }
31744 },
31745 "value": null,
31746 "visibility": "internal"
31747 },
31748 {
31749 "constant": false,
31750 "id": 1530,
31751 "name": "to",
31752 "nodeType": "VariableDeclaration",
31753 "scope": 1758,
31754 "src": "9309:10:2",
31755 "stateVariable": false,
31756 "storageLocation": "default",
31757 "typeDescriptions": {
31758 "typeIdentifier": "t_address",
31759 "typeString": "address"
31760 },
31761 "typeName": {
31762 "id": 1529,
31763 "name": "address",
31764 "nodeType": "ElementaryTypeName",
31765 "src": "9309:7:2",
31766 "stateMutability": "nonpayable",
31767 "typeDescriptions": {
31768 "typeIdentifier": "t_address",
31769 "typeString": "address"
31770 }
31771 },
31772 "value": null,
31773 "visibility": "internal"
31774 },
31775 {
31776 "constant": false,
31777 "id": 1532,
31778 "name": "data",
31779 "nodeType": "VariableDeclaration",
31780 "scope": 1758,
31781 "src": "9321:19:2",
31782 "stateVariable": false,
31783 "storageLocation": "calldata",
31784 "typeDescriptions": {
31785 "typeIdentifier": "t_bytes_calldata_ptr",
31786 "typeString": "bytes"
31787 },
31788 "typeName": {
31789 "id": 1531,
31790 "name": "bytes",
31791 "nodeType": "ElementaryTypeName",
31792 "src": "9321:5:2",
31793 "typeDescriptions": {
31794 "typeIdentifier": "t_bytes_storage_ptr",
31795 "typeString": "bytes"
31796 }
31797 },
31798 "value": null,
31799 "visibility": "internal"
31800 }
31801 ],
31802 "src": "9274:67:2"
31803 },
31804 "returnParameters": {
31805 "id": 1536,
31806 "nodeType": "ParameterList",
31807 "parameters": [],
31808 "src": "9356:0:2"
31809 },
31810 "scope": 1834,
31811 "src": "9261:1862:2",
31812 "stateMutability": "nonpayable",
31813 "superFunction": 2360,
31814 "visibility": "external"
31815 },
31816 {
31817 "body": {
31818 "id": 1805,
31819 "nodeType": "Block",
31820 "src": "11209:289:2",
31821 "statements": [
31822 {
31823 "assignments": [
31824 1766
31825 ],
31826 "declarations": [
31827 {
31828 "constant": false,
31829 "id": 1766,
31830 "name": "_token0",
31831 "nodeType": "VariableDeclaration",
31832 "scope": 1805,
31833 "src": "11219:15:2",
31834 "stateVariable": false,
31835 "storageLocation": "default",
31836 "typeDescriptions": {
31837 "typeIdentifier": "t_address",
31838 "typeString": "address"
31839 },
31840 "typeName": {
31841 "id": 1765,
31842 "name": "address",
31843 "nodeType": "ElementaryTypeName",
31844 "src": "11219:7:2",
31845 "stateMutability": "nonpayable",
31846 "typeDescriptions": {
31847 "typeIdentifier": "t_address",
31848 "typeString": "address"
31849 }
31850 },
31851 "value": null,
31852 "visibility": "internal"
31853 }
31854 ],
31855 "id": 1768,
31856 "initialValue": {
31857 "argumentTypes": null,
31858 "id": 1767,
31859 "name": "token0",
31860 "nodeType": "Identifier",
31861 "overloadedDeclarations": [],
31862 "referencedDeclaration": 631,
31863 "src": "11237:6:2",
31864 "typeDescriptions": {
31865 "typeIdentifier": "t_address",
31866 "typeString": "address"
31867 }
31868 },
31869 "nodeType": "VariableDeclarationStatement",
31870 "src": "11219:24:2"
31871 },
31872 {
31873 "assignments": [
31874 1770
31875 ],
31876 "declarations": [
31877 {
31878 "constant": false,
31879 "id": 1770,
31880 "name": "_token1",
31881 "nodeType": "VariableDeclaration",
31882 "scope": 1805,
31883 "src": "11268:15:2",
31884 "stateVariable": false,
31885 "storageLocation": "default",
31886 "typeDescriptions": {
31887 "typeIdentifier": "t_address",
31888 "typeString": "address"
31889 },
31890 "typeName": {
31891 "id": 1769,
31892 "name": "address",
31893 "nodeType": "ElementaryTypeName",
31894 "src": "11268:7:2",
31895 "stateMutability": "nonpayable",
31896 "typeDescriptions": {
31897 "typeIdentifier": "t_address",
31898 "typeString": "address"
31899 }
31900 },
31901 "value": null,
31902 "visibility": "internal"
31903 }
31904 ],
31905 "id": 1772,
31906 "initialValue": {
31907 "argumentTypes": null,
31908 "id": 1771,
31909 "name": "token1",
31910 "nodeType": "Identifier",
31911 "overloadedDeclarations": [],
31912 "referencedDeclaration": 633,
31913 "src": "11286:6:2",
31914 "typeDescriptions": {
31915 "typeIdentifier": "t_address",
31916 "typeString": "address"
31917 }
31918 },
31919 "nodeType": "VariableDeclarationStatement",
31920 "src": "11268:24:2"
31921 },
31922 {
31923 "expression": {
31924 "argumentTypes": null,
31925 "arguments": [
31926 {
31927 "argumentTypes": null,
31928 "id": 1774,
31929 "name": "_token0",
31930 "nodeType": "Identifier",
31931 "overloadedDeclarations": [],
31932 "referencedDeclaration": 1766,
31933 "src": "11331:7:2",
31934 "typeDescriptions": {
31935 "typeIdentifier": "t_address",
31936 "typeString": "address"
31937 }
31938 },
31939 {
31940 "argumentTypes": null,
31941 "id": 1775,
31942 "name": "to",
31943 "nodeType": "Identifier",
31944 "overloadedDeclarations": [],
31945 "referencedDeclaration": 1760,
31946 "src": "11340:2:2",
31947 "typeDescriptions": {
31948 "typeIdentifier": "t_address",
31949 "typeString": "address"
31950 }
31951 },
31952 {
31953 "argumentTypes": null,
31954 "arguments": [
31955 {
31956 "argumentTypes": null,
31957 "id": 1785,
31958 "name": "reserve0",
31959 "nodeType": "Identifier",
31960 "overloadedDeclarations": [],
31961 "referencedDeclaration": 645,
31962 "src": "11389:8:2",
31963 "typeDescriptions": {
31964 "typeIdentifier": "t_uint112",
31965 "typeString": "uint112"
31966 }
31967 }
31968 ],
31969 "expression": {
31970 "argumentTypes": [
31971 {
31972 "typeIdentifier": "t_uint112",
31973 "typeString": "uint112"
31974 }
31975 ],
31976 "expression": {
31977 "argumentTypes": null,
31978 "arguments": [
31979 {
31980 "argumentTypes": null,
31981 "arguments": [
31982 {
31983 "argumentTypes": null,
31984 "id": 1781,
31985 "name": "this",
31986 "nodeType": "Identifier",
31987 "overloadedDeclarations": [],
31988 "referencedDeclaration": 2649,
31989 "src": "11378:4:2",
31990 "typeDescriptions": {
31991 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
31992 "typeString": "contract UniswapV2Pair"
31993 }
31994 }
31995 ],
31996 "expression": {
31997 "argumentTypes": [
31998 {
31999 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
32000 "typeString": "contract UniswapV2Pair"
32001 }
32002 ],
32003 "id": 1780,
32004 "isConstant": false,
32005 "isLValue": false,
32006 "isPure": true,
32007 "lValueRequested": false,
32008 "nodeType": "ElementaryTypeNameExpression",
32009 "src": "11370:7:2",
32010 "typeDescriptions": {
32011 "typeIdentifier": "t_type$_t_address_$",
32012 "typeString": "type(address)"
32013 },
32014 "typeName": "address"
32015 },
32016 "id": 1782,
32017 "isConstant": false,
32018 "isLValue": false,
32019 "isPure": false,
32020 "kind": "typeConversion",
32021 "lValueRequested": false,
32022 "names": [],
32023 "nodeType": "FunctionCall",
32024 "src": "11370:13:2",
32025 "typeDescriptions": {
32026 "typeIdentifier": "t_address",
32027 "typeString": "address"
32028 }
32029 }
32030 ],
32031 "expression": {
32032 "argumentTypes": [
32033 {
32034 "typeIdentifier": "t_address",
32035 "typeString": "address"
32036 }
32037 ],
32038 "expression": {
32039 "argumentTypes": null,
32040 "arguments": [
32041 {
32042 "argumentTypes": null,
32043 "id": 1777,
32044 "name": "_token0",
32045 "nodeType": "Identifier",
32046 "overloadedDeclarations": [],
32047 "referencedDeclaration": 1766,
32048 "src": "11351:7:2",
32049 "typeDescriptions": {
32050 "typeIdentifier": "t_address",
32051 "typeString": "address"
32052 }
32053 }
32054 ],
32055 "expression": {
32056 "argumentTypes": [
32057 {
32058 "typeIdentifier": "t_address",
32059 "typeString": "address"
32060 }
32061 ],
32062 "id": 1776,
32063 "name": "IERC20",
32064 "nodeType": "Identifier",
32065 "overloadedDeclarations": [],
32066 "referencedDeclaration": 1918,
32067 "src": "11344:6:2",
32068 "typeDescriptions": {
32069 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
32070 "typeString": "type(contract IERC20)"
32071 }
32072 },
32073 "id": 1778,
32074 "isConstant": false,
32075 "isLValue": false,
32076 "isPure": false,
32077 "kind": "typeConversion",
32078 "lValueRequested": false,
32079 "names": [],
32080 "nodeType": "FunctionCall",
32081 "src": "11344:15:2",
32082 "typeDescriptions": {
32083 "typeIdentifier": "t_contract$_IERC20_$1918",
32084 "typeString": "contract IERC20"
32085 }
32086 },
32087 "id": 1779,
32088 "isConstant": false,
32089 "isLValue": false,
32090 "isPure": false,
32091 "lValueRequested": false,
32092 "memberName": "balanceOf",
32093 "nodeType": "MemberAccess",
32094 "referencedDeclaration": 1879,
32095 "src": "11344:25:2",
32096 "typeDescriptions": {
32097 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
32098 "typeString": "function (address) view external returns (uint256)"
32099 }
32100 },
32101 "id": 1783,
32102 "isConstant": false,
32103 "isLValue": false,
32104 "isPure": false,
32105 "kind": "functionCall",
32106 "lValueRequested": false,
32107 "names": [],
32108 "nodeType": "FunctionCall",
32109 "src": "11344:40:2",
32110 "typeDescriptions": {
32111 "typeIdentifier": "t_uint256",
32112 "typeString": "uint256"
32113 }
32114 },
32115 "id": 1784,
32116 "isConstant": false,
32117 "isLValue": false,
32118 "isPure": false,
32119 "lValueRequested": false,
32120 "memberName": "sub",
32121 "nodeType": "MemberAccess",
32122 "referencedDeclaration": 2513,
32123 "src": "11344:44:2",
32124 "typeDescriptions": {
32125 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
32126 "typeString": "function (uint256,uint256) pure returns (uint256)"
32127 }
32128 },
32129 "id": 1786,
32130 "isConstant": false,
32131 "isLValue": false,
32132 "isPure": false,
32133 "kind": "functionCall",
32134 "lValueRequested": false,
32135 "names": [],
32136 "nodeType": "FunctionCall",
32137 "src": "11344:54:2",
32138 "typeDescriptions": {
32139 "typeIdentifier": "t_uint256",
32140 "typeString": "uint256"
32141 }
32142 }
32143 ],
32144 "expression": {
32145 "argumentTypes": [
32146 {
32147 "typeIdentifier": "t_address",
32148 "typeString": "address"
32149 },
32150 {
32151 "typeIdentifier": "t_address",
32152 "typeString": "address"
32153 },
32154 {
32155 "typeIdentifier": "t_uint256",
32156 "typeString": "uint256"
32157 }
32158 ],
32159 "id": 1773,
32160 "name": "_safeTransfer",
32161 "nodeType": "Identifier",
32162 "overloadedDeclarations": [],
32163 "referencedDeclaration": 769,
32164 "src": "11317:13:2",
32165 "typeDescriptions": {
32166 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
32167 "typeString": "function (address,address,uint256)"
32168 }
32169 },
32170 "id": 1787,
32171 "isConstant": false,
32172 "isLValue": false,
32173 "isPure": false,
32174 "kind": "functionCall",
32175 "lValueRequested": false,
32176 "names": [],
32177 "nodeType": "FunctionCall",
32178 "src": "11317:82:2",
32179 "typeDescriptions": {
32180 "typeIdentifier": "t_tuple$__$",
32181 "typeString": "tuple()"
32182 }
32183 },
32184 "id": 1788,
32185 "nodeType": "ExpressionStatement",
32186 "src": "11317:82:2"
32187 },
32188 {
32189 "expression": {
32190 "argumentTypes": null,
32191 "arguments": [
32192 {
32193 "argumentTypes": null,
32194 "id": 1790,
32195 "name": "_token1",
32196 "nodeType": "Identifier",
32197 "overloadedDeclarations": [],
32198 "referencedDeclaration": 1770,
32199 "src": "11423:7:2",
32200 "typeDescriptions": {
32201 "typeIdentifier": "t_address",
32202 "typeString": "address"
32203 }
32204 },
32205 {
32206 "argumentTypes": null,
32207 "id": 1791,
32208 "name": "to",
32209 "nodeType": "Identifier",
32210 "overloadedDeclarations": [],
32211 "referencedDeclaration": 1760,
32212 "src": "11432:2:2",
32213 "typeDescriptions": {
32214 "typeIdentifier": "t_address",
32215 "typeString": "address"
32216 }
32217 },
32218 {
32219 "argumentTypes": null,
32220 "arguments": [
32221 {
32222 "argumentTypes": null,
32223 "id": 1801,
32224 "name": "reserve1",
32225 "nodeType": "Identifier",
32226 "overloadedDeclarations": [],
32227 "referencedDeclaration": 647,
32228 "src": "11481:8:2",
32229 "typeDescriptions": {
32230 "typeIdentifier": "t_uint112",
32231 "typeString": "uint112"
32232 }
32233 }
32234 ],
32235 "expression": {
32236 "argumentTypes": [
32237 {
32238 "typeIdentifier": "t_uint112",
32239 "typeString": "uint112"
32240 }
32241 ],
32242 "expression": {
32243 "argumentTypes": null,
32244 "arguments": [
32245 {
32246 "argumentTypes": null,
32247 "arguments": [
32248 {
32249 "argumentTypes": null,
32250 "id": 1797,
32251 "name": "this",
32252 "nodeType": "Identifier",
32253 "overloadedDeclarations": [],
32254 "referencedDeclaration": 2649,
32255 "src": "11470:4:2",
32256 "typeDescriptions": {
32257 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
32258 "typeString": "contract UniswapV2Pair"
32259 }
32260 }
32261 ],
32262 "expression": {
32263 "argumentTypes": [
32264 {
32265 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
32266 "typeString": "contract UniswapV2Pair"
32267 }
32268 ],
32269 "id": 1796,
32270 "isConstant": false,
32271 "isLValue": false,
32272 "isPure": true,
32273 "lValueRequested": false,
32274 "nodeType": "ElementaryTypeNameExpression",
32275 "src": "11462:7:2",
32276 "typeDescriptions": {
32277 "typeIdentifier": "t_type$_t_address_$",
32278 "typeString": "type(address)"
32279 },
32280 "typeName": "address"
32281 },
32282 "id": 1798,
32283 "isConstant": false,
32284 "isLValue": false,
32285 "isPure": false,
32286 "kind": "typeConversion",
32287 "lValueRequested": false,
32288 "names": [],
32289 "nodeType": "FunctionCall",
32290 "src": "11462:13:2",
32291 "typeDescriptions": {
32292 "typeIdentifier": "t_address",
32293 "typeString": "address"
32294 }
32295 }
32296 ],
32297 "expression": {
32298 "argumentTypes": [
32299 {
32300 "typeIdentifier": "t_address",
32301 "typeString": "address"
32302 }
32303 ],
32304 "expression": {
32305 "argumentTypes": null,
32306 "arguments": [
32307 {
32308 "argumentTypes": null,
32309 "id": 1793,
32310 "name": "_token1",
32311 "nodeType": "Identifier",
32312 "overloadedDeclarations": [],
32313 "referencedDeclaration": 1770,
32314 "src": "11443:7:2",
32315 "typeDescriptions": {
32316 "typeIdentifier": "t_address",
32317 "typeString": "address"
32318 }
32319 }
32320 ],
32321 "expression": {
32322 "argumentTypes": [
32323 {
32324 "typeIdentifier": "t_address",
32325 "typeString": "address"
32326 }
32327 ],
32328 "id": 1792,
32329 "name": "IERC20",
32330 "nodeType": "Identifier",
32331 "overloadedDeclarations": [],
32332 "referencedDeclaration": 1918,
32333 "src": "11436:6:2",
32334 "typeDescriptions": {
32335 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
32336 "typeString": "type(contract IERC20)"
32337 }
32338 },
32339 "id": 1794,
32340 "isConstant": false,
32341 "isLValue": false,
32342 "isPure": false,
32343 "kind": "typeConversion",
32344 "lValueRequested": false,
32345 "names": [],
32346 "nodeType": "FunctionCall",
32347 "src": "11436:15:2",
32348 "typeDescriptions": {
32349 "typeIdentifier": "t_contract$_IERC20_$1918",
32350 "typeString": "contract IERC20"
32351 }
32352 },
32353 "id": 1795,
32354 "isConstant": false,
32355 "isLValue": false,
32356 "isPure": false,
32357 "lValueRequested": false,
32358 "memberName": "balanceOf",
32359 "nodeType": "MemberAccess",
32360 "referencedDeclaration": 1879,
32361 "src": "11436:25:2",
32362 "typeDescriptions": {
32363 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
32364 "typeString": "function (address) view external returns (uint256)"
32365 }
32366 },
32367 "id": 1799,
32368 "isConstant": false,
32369 "isLValue": false,
32370 "isPure": false,
32371 "kind": "functionCall",
32372 "lValueRequested": false,
32373 "names": [],
32374 "nodeType": "FunctionCall",
32375 "src": "11436:40:2",
32376 "typeDescriptions": {
32377 "typeIdentifier": "t_uint256",
32378 "typeString": "uint256"
32379 }
32380 },
32381 "id": 1800,
32382 "isConstant": false,
32383 "isLValue": false,
32384 "isPure": false,
32385 "lValueRequested": false,
32386 "memberName": "sub",
32387 "nodeType": "MemberAccess",
32388 "referencedDeclaration": 2513,
32389 "src": "11436:44:2",
32390 "typeDescriptions": {
32391 "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
32392 "typeString": "function (uint256,uint256) pure returns (uint256)"
32393 }
32394 },
32395 "id": 1802,
32396 "isConstant": false,
32397 "isLValue": false,
32398 "isPure": false,
32399 "kind": "functionCall",
32400 "lValueRequested": false,
32401 "names": [],
32402 "nodeType": "FunctionCall",
32403 "src": "11436:54:2",
32404 "typeDescriptions": {
32405 "typeIdentifier": "t_uint256",
32406 "typeString": "uint256"
32407 }
32408 }
32409 ],
32410 "expression": {
32411 "argumentTypes": [
32412 {
32413 "typeIdentifier": "t_address",
32414 "typeString": "address"
32415 },
32416 {
32417 "typeIdentifier": "t_address",
32418 "typeString": "address"
32419 },
32420 {
32421 "typeIdentifier": "t_uint256",
32422 "typeString": "uint256"
32423 }
32424 ],
32425 "id": 1789,
32426 "name": "_safeTransfer",
32427 "nodeType": "Identifier",
32428 "overloadedDeclarations": [],
32429 "referencedDeclaration": 769,
32430 "src": "11409:13:2",
32431 "typeDescriptions": {
32432 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
32433 "typeString": "function (address,address,uint256)"
32434 }
32435 },
32436 "id": 1803,
32437 "isConstant": false,
32438 "isLValue": false,
32439 "isPure": false,
32440 "kind": "functionCall",
32441 "lValueRequested": false,
32442 "names": [],
32443 "nodeType": "FunctionCall",
32444 "src": "11409:82:2",
32445 "typeDescriptions": {
32446 "typeIdentifier": "t_tuple$__$",
32447 "typeString": "tuple()"
32448 }
32449 },
32450 "id": 1804,
32451 "nodeType": "ExpressionStatement",
32452 "src": "11409:82:2"
32453 }
32454 ]
32455 },
32456 "documentation": null,
32457 "id": 1806,
32458 "implemented": true,
32459 "kind": "function",
32460 "modifiers": [
32461 {
32462 "arguments": null,
32463 "id": 1763,
32464 "modifierName": {
32465 "argumentTypes": null,
32466 "id": 1762,
32467 "name": "lock",
32468 "nodeType": "Identifier",
32469 "overloadedDeclarations": [],
32470 "referencedDeclaration": 677,
32471 "src": "11204:4:2",
32472 "typeDescriptions": {
32473 "typeIdentifier": "t_modifier$__$",
32474 "typeString": "modifier ()"
32475 }
32476 },
32477 "nodeType": "ModifierInvocation",
32478 "src": "11204:4:2"
32479 }
32480 ],
32481 "name": "skim",
32482 "nodeType": "FunctionDefinition",
32483 "parameters": {
32484 "id": 1761,
32485 "nodeType": "ParameterList",
32486 "parameters": [
32487 {
32488 "constant": false,
32489 "id": 1760,
32490 "name": "to",
32491 "nodeType": "VariableDeclaration",
32492 "scope": 1806,
32493 "src": "11183:10:2",
32494 "stateVariable": false,
32495 "storageLocation": "default",
32496 "typeDescriptions": {
32497 "typeIdentifier": "t_address",
32498 "typeString": "address"
32499 },
32500 "typeName": {
32501 "id": 1759,
32502 "name": "address",
32503 "nodeType": "ElementaryTypeName",
32504 "src": "11183:7:2",
32505 "stateMutability": "nonpayable",
32506 "typeDescriptions": {
32507 "typeIdentifier": "t_address",
32508 "typeString": "address"
32509 }
32510 },
32511 "value": null,
32512 "visibility": "internal"
32513 }
32514 ],
32515 "src": "11182:12:2"
32516 },
32517 "returnParameters": {
32518 "id": 1764,
32519 "nodeType": "ParameterList",
32520 "parameters": [],
32521 "src": "11209:0:2"
32522 },
32523 "scope": 1834,
32524 "src": "11169:329:2",
32525 "stateMutability": "nonpayable",
32526 "superFunction": 2365,
32527 "visibility": "external"
32528 },
32529 {
32530 "body": {
32531 "id": 1832,
32532 "nodeType": "Block",
32533 "src": "11574:126:2",
32534 "statements": [
32535 {
32536 "expression": {
32537 "argumentTypes": null,
32538 "arguments": [
32539 {
32540 "argumentTypes": null,
32541 "arguments": [
32542 {
32543 "argumentTypes": null,
32544 "arguments": [
32545 {
32546 "argumentTypes": null,
32547 "id": 1817,
32548 "name": "this",
32549 "nodeType": "Identifier",
32550 "overloadedDeclarations": [],
32551 "referencedDeclaration": 2649,
32552 "src": "11625:4:2",
32553 "typeDescriptions": {
32554 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
32555 "typeString": "contract UniswapV2Pair"
32556 }
32557 }
32558 ],
32559 "expression": {
32560 "argumentTypes": [
32561 {
32562 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
32563 "typeString": "contract UniswapV2Pair"
32564 }
32565 ],
32566 "id": 1816,
32567 "isConstant": false,
32568 "isLValue": false,
32569 "isPure": true,
32570 "lValueRequested": false,
32571 "nodeType": "ElementaryTypeNameExpression",
32572 "src": "11617:7:2",
32573 "typeDescriptions": {
32574 "typeIdentifier": "t_type$_t_address_$",
32575 "typeString": "type(address)"
32576 },
32577 "typeName": "address"
32578 },
32579 "id": 1818,
32580 "isConstant": false,
32581 "isLValue": false,
32582 "isPure": false,
32583 "kind": "typeConversion",
32584 "lValueRequested": false,
32585 "names": [],
32586 "nodeType": "FunctionCall",
32587 "src": "11617:13:2",
32588 "typeDescriptions": {
32589 "typeIdentifier": "t_address",
32590 "typeString": "address"
32591 }
32592 }
32593 ],
32594 "expression": {
32595 "argumentTypes": [
32596 {
32597 "typeIdentifier": "t_address",
32598 "typeString": "address"
32599 }
32600 ],
32601 "expression": {
32602 "argumentTypes": null,
32603 "arguments": [
32604 {
32605 "argumentTypes": null,
32606 "id": 1813,
32607 "name": "token0",
32608 "nodeType": "Identifier",
32609 "overloadedDeclarations": [],
32610 "referencedDeclaration": 631,
32611 "src": "11599:6:2",
32612 "typeDescriptions": {
32613 "typeIdentifier": "t_address",
32614 "typeString": "address"
32615 }
32616 }
32617 ],
32618 "expression": {
32619 "argumentTypes": [
32620 {
32621 "typeIdentifier": "t_address",
32622 "typeString": "address"
32623 }
32624 ],
32625 "id": 1812,
32626 "name": "IERC20",
32627 "nodeType": "Identifier",
32628 "overloadedDeclarations": [],
32629 "referencedDeclaration": 1918,
32630 "src": "11592:6:2",
32631 "typeDescriptions": {
32632 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
32633 "typeString": "type(contract IERC20)"
32634 }
32635 },
32636 "id": 1814,
32637 "isConstant": false,
32638 "isLValue": false,
32639 "isPure": false,
32640 "kind": "typeConversion",
32641 "lValueRequested": false,
32642 "names": [],
32643 "nodeType": "FunctionCall",
32644 "src": "11592:14:2",
32645 "typeDescriptions": {
32646 "typeIdentifier": "t_contract$_IERC20_$1918",
32647 "typeString": "contract IERC20"
32648 }
32649 },
32650 "id": 1815,
32651 "isConstant": false,
32652 "isLValue": false,
32653 "isPure": false,
32654 "lValueRequested": false,
32655 "memberName": "balanceOf",
32656 "nodeType": "MemberAccess",
32657 "referencedDeclaration": 1879,
32658 "src": "11592:24:2",
32659 "typeDescriptions": {
32660 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
32661 "typeString": "function (address) view external returns (uint256)"
32662 }
32663 },
32664 "id": 1819,
32665 "isConstant": false,
32666 "isLValue": false,
32667 "isPure": false,
32668 "kind": "functionCall",
32669 "lValueRequested": false,
32670 "names": [],
32671 "nodeType": "FunctionCall",
32672 "src": "11592:39:2",
32673 "typeDescriptions": {
32674 "typeIdentifier": "t_uint256",
32675 "typeString": "uint256"
32676 }
32677 },
32678 {
32679 "argumentTypes": null,
32680 "arguments": [
32681 {
32682 "argumentTypes": null,
32683 "arguments": [
32684 {
32685 "argumentTypes": null,
32686 "id": 1825,
32687 "name": "this",
32688 "nodeType": "Identifier",
32689 "overloadedDeclarations": [],
32690 "referencedDeclaration": 2649,
32691 "src": "11666:4:2",
32692 "typeDescriptions": {
32693 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
32694 "typeString": "contract UniswapV2Pair"
32695 }
32696 }
32697 ],
32698 "expression": {
32699 "argumentTypes": [
32700 {
32701 "typeIdentifier": "t_contract$_UniswapV2Pair_$1834",
32702 "typeString": "contract UniswapV2Pair"
32703 }
32704 ],
32705 "id": 1824,
32706 "isConstant": false,
32707 "isLValue": false,
32708 "isPure": true,
32709 "lValueRequested": false,
32710 "nodeType": "ElementaryTypeNameExpression",
32711 "src": "11658:7:2",
32712 "typeDescriptions": {
32713 "typeIdentifier": "t_type$_t_address_$",
32714 "typeString": "type(address)"
32715 },
32716 "typeName": "address"
32717 },
32718 "id": 1826,
32719 "isConstant": false,
32720 "isLValue": false,
32721 "isPure": false,
32722 "kind": "typeConversion",
32723 "lValueRequested": false,
32724 "names": [],
32725 "nodeType": "FunctionCall",
32726 "src": "11658:13:2",
32727 "typeDescriptions": {
32728 "typeIdentifier": "t_address",
32729 "typeString": "address"
32730 }
32731 }
32732 ],
32733 "expression": {
32734 "argumentTypes": [
32735 {
32736 "typeIdentifier": "t_address",
32737 "typeString": "address"
32738 }
32739 ],
32740 "expression": {
32741 "argumentTypes": null,
32742 "arguments": [
32743 {
32744 "argumentTypes": null,
32745 "id": 1821,
32746 "name": "token1",
32747 "nodeType": "Identifier",
32748 "overloadedDeclarations": [],
32749 "referencedDeclaration": 633,
32750 "src": "11640:6:2",
32751 "typeDescriptions": {
32752 "typeIdentifier": "t_address",
32753 "typeString": "address"
32754 }
32755 }
32756 ],
32757 "expression": {
32758 "argumentTypes": [
32759 {
32760 "typeIdentifier": "t_address",
32761 "typeString": "address"
32762 }
32763 ],
32764 "id": 1820,
32765 "name": "IERC20",
32766 "nodeType": "Identifier",
32767 "overloadedDeclarations": [],
32768 "referencedDeclaration": 1918,
32769 "src": "11633:6:2",
32770 "typeDescriptions": {
32771 "typeIdentifier": "t_type$_t_contract$_IERC20_$1918_$",
32772 "typeString": "type(contract IERC20)"
32773 }
32774 },
32775 "id": 1822,
32776 "isConstant": false,
32777 "isLValue": false,
32778 "isPure": false,
32779 "kind": "typeConversion",
32780 "lValueRequested": false,
32781 "names": [],
32782 "nodeType": "FunctionCall",
32783 "src": "11633:14:2",
32784 "typeDescriptions": {
32785 "typeIdentifier": "t_contract$_IERC20_$1918",
32786 "typeString": "contract IERC20"
32787 }
32788 },
32789 "id": 1823,
32790 "isConstant": false,
32791 "isLValue": false,
32792 "isPure": false,
32793 "lValueRequested": false,
32794 "memberName": "balanceOf",
32795 "nodeType": "MemberAccess",
32796 "referencedDeclaration": 1879,
32797 "src": "11633:24:2",
32798 "typeDescriptions": {
32799 "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
32800 "typeString": "function (address) view external returns (uint256)"
32801 }
32802 },
32803 "id": 1827,
32804 "isConstant": false,
32805 "isLValue": false,
32806 "isPure": false,
32807 "kind": "functionCall",
32808 "lValueRequested": false,
32809 "names": [],
32810 "nodeType": "FunctionCall",
32811 "src": "11633:39:2",
32812 "typeDescriptions": {
32813 "typeIdentifier": "t_uint256",
32814 "typeString": "uint256"
32815 }
32816 },
32817 {
32818 "argumentTypes": null,
32819 "id": 1828,
32820 "name": "reserve0",
32821 "nodeType": "Identifier",
32822 "overloadedDeclarations": [],
32823 "referencedDeclaration": 645,
32824 "src": "11674:8:2",
32825 "typeDescriptions": {
32826 "typeIdentifier": "t_uint112",
32827 "typeString": "uint112"
32828 }
32829 },
32830 {
32831 "argumentTypes": null,
32832 "id": 1829,
32833 "name": "reserve1",
32834 "nodeType": "Identifier",
32835 "overloadedDeclarations": [],
32836 "referencedDeclaration": 647,
32837 "src": "11684:8:2",
32838 "typeDescriptions": {
32839 "typeIdentifier": "t_uint112",
32840 "typeString": "uint112"
32841 }
32842 }
32843 ],
32844 "expression": {
32845 "argumentTypes": [
32846 {
32847 "typeIdentifier": "t_uint256",
32848 "typeString": "uint256"
32849 },
32850 {
32851 "typeIdentifier": "t_uint256",
32852 "typeString": "uint256"
32853 },
32854 {
32855 "typeIdentifier": "t_uint112",
32856 "typeString": "uint112"
32857 },
32858 {
32859 "typeIdentifier": "t_uint112",
32860 "typeString": "uint112"
32861 }
32862 ],
32863 "id": 1811,
32864 "name": "_update",
32865 "nodeType": "Identifier",
32866 "overloadedDeclarations": [],
32867 "referencedDeclaration": 1029,
32868 "src": "11584:7:2",
32869 "typeDescriptions": {
32870 "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$",
32871 "typeString": "function (uint256,uint256,uint112,uint112)"
32872 }
32873 },
32874 "id": 1830,
32875 "isConstant": false,
32876 "isLValue": false,
32877 "isPure": false,
32878 "kind": "functionCall",
32879 "lValueRequested": false,
32880 "names": [],
32881 "nodeType": "FunctionCall",
32882 "src": "11584:109:2",
32883 "typeDescriptions": {
32884 "typeIdentifier": "t_tuple$__$",
32885 "typeString": "tuple()"
32886 }
32887 },
32888 "id": 1831,
32889 "nodeType": "ExpressionStatement",
32890 "src": "11584:109:2"
32891 }
32892 ]
32893 },
32894 "documentation": null,
32895 "id": 1833,
32896 "implemented": true,
32897 "kind": "function",
32898 "modifiers": [
32899 {
32900 "arguments": null,
32901 "id": 1809,
32902 "modifierName": {
32903 "argumentTypes": null,
32904 "id": 1808,
32905 "name": "lock",
32906 "nodeType": "Identifier",
32907 "overloadedDeclarations": [],
32908 "referencedDeclaration": 677,
32909 "src": "11569:4:2",
32910 "typeDescriptions": {
32911 "typeIdentifier": "t_modifier$__$",
32912 "typeString": "modifier ()"
32913 }
32914 },
32915 "nodeType": "ModifierInvocation",
32916 "src": "11569:4:2"
32917 }
32918 ],
32919 "name": "sync",
32920 "nodeType": "FunctionDefinition",
32921 "parameters": {
32922 "id": 1807,
32923 "nodeType": "ParameterList",
32924 "parameters": [],
32925 "src": "11557:2:2"
32926 },
32927 "returnParameters": {
32928 "id": 1810,
32929 "nodeType": "ParameterList",
32930 "parameters": [],
32931 "src": "11574:0:2"
32932 },
32933 "scope": 1834,
32934 "src": "11544:156:2",
32935 "stateMutability": "nonpayable",
32936 "superFunction": 2368,
32937 "visibility": "external"
32938 }
32939 ],
32940 "scope": 1835,
32941 "src": "290:11412:2"
32942 }
32943 ],
32944 "src": "0:11703:2"
32945 }
32946 },
32947 "contracts/interfaces/IERC20.sol": {
32948 "id": 3,
32949 "AST": {
32950 "absolutePath": "contracts/interfaces/IERC20.sol",
32951 "exportedSymbols": {
32952 "IERC20": [
32953 1918
32954 ]
32955 },
32956 "id": 1919,
32957 "nodeType": "SourceUnit",
32958 "nodes": [
32959 {
32960 "id": 1836,
32961 "literals": [
32962 "solidity",
32963 ">=",
32964 "0.5",
32965 ".0"
32966 ],
32967 "nodeType": "PragmaDirective",
32968 "src": "0:24:3"
32969 },
32970 {
32971 "baseContracts": [],
32972 "contractDependencies": [],
32973 "contractKind": "interface",
32974 "documentation": null,
32975 "fullyImplemented": false,
32976 "id": 1918,
32977 "linearizedBaseContracts": [
32978 1918
32979 ],
32980 "name": "IERC20",
32981 "nodeType": "ContractDefinition",
32982 "nodes": [
32983 {
32984 "anonymous": false,
32985 "documentation": null,
32986 "id": 1844,
32987 "name": "Approval",
32988 "nodeType": "EventDefinition",
32989 "parameters": {
32990 "id": 1843,
32991 "nodeType": "ParameterList",
32992 "parameters": [
32993 {
32994 "constant": false,
32995 "id": 1838,
32996 "indexed": true,
32997 "name": "owner",
32998 "nodeType": "VariableDeclaration",
32999 "scope": 1844,
33000 "src": "64:21:3",
33001 "stateVariable": false,
33002 "storageLocation": "default",
33003 "typeDescriptions": {
33004 "typeIdentifier": "t_address",
33005 "typeString": "address"
33006 },
33007 "typeName": {
33008 "id": 1837,
33009 "name": "address",
33010 "nodeType": "ElementaryTypeName",
33011 "src": "64:7:3",
33012 "stateMutability": "nonpayable",
33013 "typeDescriptions": {
33014 "typeIdentifier": "t_address",
33015 "typeString": "address"
33016 }
33017 },
33018 "value": null,
33019 "visibility": "internal"
33020 },
33021 {
33022 "constant": false,
33023 "id": 1840,
33024 "indexed": true,
33025 "name": "spender",
33026 "nodeType": "VariableDeclaration",
33027 "scope": 1844,
33028 "src": "87:23:3",
33029 "stateVariable": false,
33030 "storageLocation": "default",
33031 "typeDescriptions": {
33032 "typeIdentifier": "t_address",
33033 "typeString": "address"
33034 },
33035 "typeName": {
33036 "id": 1839,
33037 "name": "address",
33038 "nodeType": "ElementaryTypeName",
33039 "src": "87:7:3",
33040 "stateMutability": "nonpayable",
33041 "typeDescriptions": {
33042 "typeIdentifier": "t_address",
33043 "typeString": "address"
33044 }
33045 },
33046 "value": null,
33047 "visibility": "internal"
33048 },
33049 {
33050 "constant": false,
33051 "id": 1842,
33052 "indexed": false,
33053 "name": "value",
33054 "nodeType": "VariableDeclaration",
33055 "scope": 1844,
33056 "src": "112:10:3",
33057 "stateVariable": false,
33058 "storageLocation": "default",
33059 "typeDescriptions": {
33060 "typeIdentifier": "t_uint256",
33061 "typeString": "uint256"
33062 },
33063 "typeName": {
33064 "id": 1841,
33065 "name": "uint",
33066 "nodeType": "ElementaryTypeName",
33067 "src": "112:4:3",
33068 "typeDescriptions": {
33069 "typeIdentifier": "t_uint256",
33070 "typeString": "uint256"
33071 }
33072 },
33073 "value": null,
33074 "visibility": "internal"
33075 }
33076 ],
33077 "src": "63:60:3"
33078 },
33079 "src": "49:75:3"
33080 },
33081 {
33082 "anonymous": false,
33083 "documentation": null,
33084 "id": 1852,
33085 "name": "Transfer",
33086 "nodeType": "EventDefinition",
33087 "parameters": {
33088 "id": 1851,
33089 "nodeType": "ParameterList",
33090 "parameters": [
33091 {
33092 "constant": false,
33093 "id": 1846,
33094 "indexed": true,
33095 "name": "from",
33096 "nodeType": "VariableDeclaration",
33097 "scope": 1852,
33098 "src": "144:20:3",
33099 "stateVariable": false,
33100 "storageLocation": "default",
33101 "typeDescriptions": {
33102 "typeIdentifier": "t_address",
33103 "typeString": "address"
33104 },
33105 "typeName": {
33106 "id": 1845,
33107 "name": "address",
33108 "nodeType": "ElementaryTypeName",
33109 "src": "144:7:3",
33110 "stateMutability": "nonpayable",
33111 "typeDescriptions": {
33112 "typeIdentifier": "t_address",
33113 "typeString": "address"
33114 }
33115 },
33116 "value": null,
33117 "visibility": "internal"
33118 },
33119 {
33120 "constant": false,
33121 "id": 1848,
33122 "indexed": true,
33123 "name": "to",
33124 "nodeType": "VariableDeclaration",
33125 "scope": 1852,
33126 "src": "166:18:3",
33127 "stateVariable": false,
33128 "storageLocation": "default",
33129 "typeDescriptions": {
33130 "typeIdentifier": "t_address",
33131 "typeString": "address"
33132 },
33133 "typeName": {
33134 "id": 1847,
33135 "name": "address",
33136 "nodeType": "ElementaryTypeName",
33137 "src": "166:7:3",
33138 "stateMutability": "nonpayable",
33139 "typeDescriptions": {
33140 "typeIdentifier": "t_address",
33141 "typeString": "address"
33142 }
33143 },
33144 "value": null,
33145 "visibility": "internal"
33146 },
33147 {
33148 "constant": false,
33149 "id": 1850,
33150 "indexed": false,
33151 "name": "value",
33152 "nodeType": "VariableDeclaration",
33153 "scope": 1852,
33154 "src": "186:10:3",
33155 "stateVariable": false,
33156 "storageLocation": "default",
33157 "typeDescriptions": {
33158 "typeIdentifier": "t_uint256",
33159 "typeString": "uint256"
33160 },
33161 "typeName": {
33162 "id": 1849,
33163 "name": "uint",
33164 "nodeType": "ElementaryTypeName",
33165 "src": "186:4:3",
33166 "typeDescriptions": {
33167 "typeIdentifier": "t_uint256",
33168 "typeString": "uint256"
33169 }
33170 },
33171 "value": null,
33172 "visibility": "internal"
33173 }
33174 ],
33175 "src": "143:54:3"
33176 },
33177 "src": "129:69:3"
33178 },
33179 {
33180 "body": null,
33181 "documentation": null,
33182 "id": 1857,
33183 "implemented": false,
33184 "kind": "function",
33185 "modifiers": [],
33186 "name": "name",
33187 "nodeType": "FunctionDefinition",
33188 "parameters": {
33189 "id": 1853,
33190 "nodeType": "ParameterList",
33191 "parameters": [],
33192 "src": "217:2:3"
33193 },
33194 "returnParameters": {
33195 "id": 1856,
33196 "nodeType": "ParameterList",
33197 "parameters": [
33198 {
33199 "constant": false,
33200 "id": 1855,
33201 "name": "",
33202 "nodeType": "VariableDeclaration",
33203 "scope": 1857,
33204 "src": "243:13:3",
33205 "stateVariable": false,
33206 "storageLocation": "memory",
33207 "typeDescriptions": {
33208 "typeIdentifier": "t_string_memory_ptr",
33209 "typeString": "string"
33210 },
33211 "typeName": {
33212 "id": 1854,
33213 "name": "string",
33214 "nodeType": "ElementaryTypeName",
33215 "src": "243:6:3",
33216 "typeDescriptions": {
33217 "typeIdentifier": "t_string_storage_ptr",
33218 "typeString": "string"
33219 }
33220 },
33221 "value": null,
33222 "visibility": "internal"
33223 }
33224 ],
33225 "src": "242:15:3"
33226 },
33227 "scope": 1918,
33228 "src": "204:54:3",
33229 "stateMutability": "view",
33230 "superFunction": null,
33231 "visibility": "external"
33232 },
33233 {
33234 "body": null,
33235 "documentation": null,
33236 "id": 1862,
33237 "implemented": false,
33238 "kind": "function",
33239 "modifiers": [],
33240 "name": "symbol",
33241 "nodeType": "FunctionDefinition",
33242 "parameters": {
33243 "id": 1858,
33244 "nodeType": "ParameterList",
33245 "parameters": [],
33246 "src": "278:2:3"
33247 },
33248 "returnParameters": {
33249 "id": 1861,
33250 "nodeType": "ParameterList",
33251 "parameters": [
33252 {
33253 "constant": false,
33254 "id": 1860,
33255 "name": "",
33256 "nodeType": "VariableDeclaration",
33257 "scope": 1862,
33258 "src": "304:13:3",
33259 "stateVariable": false,
33260 "storageLocation": "memory",
33261 "typeDescriptions": {
33262 "typeIdentifier": "t_string_memory_ptr",
33263 "typeString": "string"
33264 },
33265 "typeName": {
33266 "id": 1859,
33267 "name": "string",
33268 "nodeType": "ElementaryTypeName",
33269 "src": "304:6:3",
33270 "typeDescriptions": {
33271 "typeIdentifier": "t_string_storage_ptr",
33272 "typeString": "string"
33273 }
33274 },
33275 "value": null,
33276 "visibility": "internal"
33277 }
33278 ],
33279 "src": "303:15:3"
33280 },
33281 "scope": 1918,
33282 "src": "263:56:3",
33283 "stateMutability": "view",
33284 "superFunction": null,
33285 "visibility": "external"
33286 },
33287 {
33288 "body": null,
33289 "documentation": null,
33290 "id": 1867,
33291 "implemented": false,
33292 "kind": "function",
33293 "modifiers": [],
33294 "name": "decimals",
33295 "nodeType": "FunctionDefinition",
33296 "parameters": {
33297 "id": 1863,
33298 "nodeType": "ParameterList",
33299 "parameters": [],
33300 "src": "341:2:3"
33301 },
33302 "returnParameters": {
33303 "id": 1866,
33304 "nodeType": "ParameterList",
33305 "parameters": [
33306 {
33307 "constant": false,
33308 "id": 1865,
33309 "name": "",
33310 "nodeType": "VariableDeclaration",
33311 "scope": 1867,
33312 "src": "367:5:3",
33313 "stateVariable": false,
33314 "storageLocation": "default",
33315 "typeDescriptions": {
33316 "typeIdentifier": "t_uint8",
33317 "typeString": "uint8"
33318 },
33319 "typeName": {
33320 "id": 1864,
33321 "name": "uint8",
33322 "nodeType": "ElementaryTypeName",
33323 "src": "367:5:3",
33324 "typeDescriptions": {
33325 "typeIdentifier": "t_uint8",
33326 "typeString": "uint8"
33327 }
33328 },
33329 "value": null,
33330 "visibility": "internal"
33331 }
33332 ],
33333 "src": "366:7:3"
33334 },
33335 "scope": 1918,
33336 "src": "324:50:3",
33337 "stateMutability": "view",
33338 "superFunction": null,
33339 "visibility": "external"
33340 },
33341 {
33342 "body": null,
33343 "documentation": null,
33344 "id": 1872,
33345 "implemented": false,
33346 "kind": "function",
33347 "modifiers": [],
33348 "name": "totalSupply",
33349 "nodeType": "FunctionDefinition",
33350 "parameters": {
33351 "id": 1868,
33352 "nodeType": "ParameterList",
33353 "parameters": [],
33354 "src": "399:2:3"
33355 },
33356 "returnParameters": {
33357 "id": 1871,
33358 "nodeType": "ParameterList",
33359 "parameters": [
33360 {
33361 "constant": false,
33362 "id": 1870,
33363 "name": "",
33364 "nodeType": "VariableDeclaration",
33365 "scope": 1872,
33366 "src": "425:4:3",
33367 "stateVariable": false,
33368 "storageLocation": "default",
33369 "typeDescriptions": {
33370 "typeIdentifier": "t_uint256",
33371 "typeString": "uint256"
33372 },
33373 "typeName": {
33374 "id": 1869,
33375 "name": "uint",
33376 "nodeType": "ElementaryTypeName",
33377 "src": "425:4:3",
33378 "typeDescriptions": {
33379 "typeIdentifier": "t_uint256",
33380 "typeString": "uint256"
33381 }
33382 },
33383 "value": null,
33384 "visibility": "internal"
33385 }
33386 ],
33387 "src": "424:6:3"
33388 },
33389 "scope": 1918,
33390 "src": "379:52:3",
33391 "stateMutability": "view",
33392 "superFunction": null,
33393 "visibility": "external"
33394 },
33395 {
33396 "body": null,
33397 "documentation": null,
33398 "id": 1879,
33399 "implemented": false,
33400 "kind": "function",
33401 "modifiers": [],
33402 "name": "balanceOf",
33403 "nodeType": "FunctionDefinition",
33404 "parameters": {
33405 "id": 1875,
33406 "nodeType": "ParameterList",
33407 "parameters": [
33408 {
33409 "constant": false,
33410 "id": 1874,
33411 "name": "owner",
33412 "nodeType": "VariableDeclaration",
33413 "scope": 1879,
33414 "src": "455:13:3",
33415 "stateVariable": false,
33416 "storageLocation": "default",
33417 "typeDescriptions": {
33418 "typeIdentifier": "t_address",
33419 "typeString": "address"
33420 },
33421 "typeName": {
33422 "id": 1873,
33423 "name": "address",
33424 "nodeType": "ElementaryTypeName",
33425 "src": "455:7:3",
33426 "stateMutability": "nonpayable",
33427 "typeDescriptions": {
33428 "typeIdentifier": "t_address",
33429 "typeString": "address"
33430 }
33431 },
33432 "value": null,
33433 "visibility": "internal"
33434 }
33435 ],
33436 "src": "454:15:3"
33437 },
33438 "returnParameters": {
33439 "id": 1878,
33440 "nodeType": "ParameterList",
33441 "parameters": [
33442 {
33443 "constant": false,
33444 "id": 1877,
33445 "name": "",
33446 "nodeType": "VariableDeclaration",
33447 "scope": 1879,
33448 "src": "493:4:3",
33449 "stateVariable": false,
33450 "storageLocation": "default",
33451 "typeDescriptions": {
33452 "typeIdentifier": "t_uint256",
33453 "typeString": "uint256"
33454 },
33455 "typeName": {
33456 "id": 1876,
33457 "name": "uint",
33458 "nodeType": "ElementaryTypeName",
33459 "src": "493:4:3",
33460 "typeDescriptions": {
33461 "typeIdentifier": "t_uint256",
33462 "typeString": "uint256"
33463 }
33464 },
33465 "value": null,
33466 "visibility": "internal"
33467 }
33468 ],
33469 "src": "492:6:3"
33470 },
33471 "scope": 1918,
33472 "src": "436:63:3",
33473 "stateMutability": "view",
33474 "superFunction": null,
33475 "visibility": "external"
33476 },
33477 {
33478 "body": null,
33479 "documentation": null,
33480 "id": 1888,
33481 "implemented": false,
33482 "kind": "function",
33483 "modifiers": [],
33484 "name": "allowance",
33485 "nodeType": "FunctionDefinition",
33486 "parameters": {
33487 "id": 1884,
33488 "nodeType": "ParameterList",
33489 "parameters": [
33490 {
33491 "constant": false,
33492 "id": 1881,
33493 "name": "owner",
33494 "nodeType": "VariableDeclaration",
33495 "scope": 1888,
33496 "src": "523:13:3",
33497 "stateVariable": false,
33498 "storageLocation": "default",
33499 "typeDescriptions": {
33500 "typeIdentifier": "t_address",
33501 "typeString": "address"
33502 },
33503 "typeName": {
33504 "id": 1880,
33505 "name": "address",
33506 "nodeType": "ElementaryTypeName",
33507 "src": "523:7:3",
33508 "stateMutability": "nonpayable",
33509 "typeDescriptions": {
33510 "typeIdentifier": "t_address",
33511 "typeString": "address"
33512 }
33513 },
33514 "value": null,
33515 "visibility": "internal"
33516 },
33517 {
33518 "constant": false,
33519 "id": 1883,
33520 "name": "spender",
33521 "nodeType": "VariableDeclaration",
33522 "scope": 1888,
33523 "src": "538:15:3",
33524 "stateVariable": false,
33525 "storageLocation": "default",
33526 "typeDescriptions": {
33527 "typeIdentifier": "t_address",
33528 "typeString": "address"
33529 },
33530 "typeName": {
33531 "id": 1882,
33532 "name": "address",
33533 "nodeType": "ElementaryTypeName",
33534 "src": "538:7:3",
33535 "stateMutability": "nonpayable",
33536 "typeDescriptions": {
33537 "typeIdentifier": "t_address",
33538 "typeString": "address"
33539 }
33540 },
33541 "value": null,
33542 "visibility": "internal"
33543 }
33544 ],
33545 "src": "522:32:3"
33546 },
33547 "returnParameters": {
33548 "id": 1887,
33549 "nodeType": "ParameterList",
33550 "parameters": [
33551 {
33552 "constant": false,
33553 "id": 1886,
33554 "name": "",
33555 "nodeType": "VariableDeclaration",
33556 "scope": 1888,
33557 "src": "578:4:3",
33558 "stateVariable": false,
33559 "storageLocation": "default",
33560 "typeDescriptions": {
33561 "typeIdentifier": "t_uint256",
33562 "typeString": "uint256"
33563 },
33564 "typeName": {
33565 "id": 1885,
33566 "name": "uint",
33567 "nodeType": "ElementaryTypeName",
33568 "src": "578:4:3",
33569 "typeDescriptions": {
33570 "typeIdentifier": "t_uint256",
33571 "typeString": "uint256"
33572 }
33573 },
33574 "value": null,
33575 "visibility": "internal"
33576 }
33577 ],
33578 "src": "577:6:3"
33579 },
33580 "scope": 1918,
33581 "src": "504:80:3",
33582 "stateMutability": "view",
33583 "superFunction": null,
33584 "visibility": "external"
33585 },
33586 {
33587 "body": null,
33588 "documentation": null,
33589 "id": 1897,
33590 "implemented": false,
33591 "kind": "function",
33592 "modifiers": [],
33593 "name": "approve",
33594 "nodeType": "FunctionDefinition",
33595 "parameters": {
33596 "id": 1893,
33597 "nodeType": "ParameterList",
33598 "parameters": [
33599 {
33600 "constant": false,
33601 "id": 1890,
33602 "name": "spender",
33603 "nodeType": "VariableDeclaration",
33604 "scope": 1897,
33605 "src": "607:15:3",
33606 "stateVariable": false,
33607 "storageLocation": "default",
33608 "typeDescriptions": {
33609 "typeIdentifier": "t_address",
33610 "typeString": "address"
33611 },
33612 "typeName": {
33613 "id": 1889,
33614 "name": "address",
33615 "nodeType": "ElementaryTypeName",
33616 "src": "607:7:3",
33617 "stateMutability": "nonpayable",
33618 "typeDescriptions": {
33619 "typeIdentifier": "t_address",
33620 "typeString": "address"
33621 }
33622 },
33623 "value": null,
33624 "visibility": "internal"
33625 },
33626 {
33627 "constant": false,
33628 "id": 1892,
33629 "name": "value",
33630 "nodeType": "VariableDeclaration",
33631 "scope": 1897,
33632 "src": "624:10:3",
33633 "stateVariable": false,
33634 "storageLocation": "default",
33635 "typeDescriptions": {
33636 "typeIdentifier": "t_uint256",
33637 "typeString": "uint256"
33638 },
33639 "typeName": {
33640 "id": 1891,
33641 "name": "uint",
33642 "nodeType": "ElementaryTypeName",
33643 "src": "624:4:3",
33644 "typeDescriptions": {
33645 "typeIdentifier": "t_uint256",
33646 "typeString": "uint256"
33647 }
33648 },
33649 "value": null,
33650 "visibility": "internal"
33651 }
33652 ],
33653 "src": "606:29:3"
33654 },
33655 "returnParameters": {
33656 "id": 1896,
33657 "nodeType": "ParameterList",
33658 "parameters": [
33659 {
33660 "constant": false,
33661 "id": 1895,
33662 "name": "",
33663 "nodeType": "VariableDeclaration",
33664 "scope": 1897,
33665 "src": "654:4:3",
33666 "stateVariable": false,
33667 "storageLocation": "default",
33668 "typeDescriptions": {
33669 "typeIdentifier": "t_bool",
33670 "typeString": "bool"
33671 },
33672 "typeName": {
33673 "id": 1894,
33674 "name": "bool",
33675 "nodeType": "ElementaryTypeName",
33676 "src": "654:4:3",
33677 "typeDescriptions": {
33678 "typeIdentifier": "t_bool",
33679 "typeString": "bool"
33680 }
33681 },
33682 "value": null,
33683 "visibility": "internal"
33684 }
33685 ],
33686 "src": "653:6:3"
33687 },
33688 "scope": 1918,
33689 "src": "590:70:3",
33690 "stateMutability": "nonpayable",
33691 "superFunction": null,
33692 "visibility": "external"
33693 },
33694 {
33695 "body": null,
33696 "documentation": null,
33697 "id": 1906,
33698 "implemented": false,
33699 "kind": "function",
33700 "modifiers": [],
33701 "name": "transfer",
33702 "nodeType": "FunctionDefinition",
33703 "parameters": {
33704 "id": 1902,
33705 "nodeType": "ParameterList",
33706 "parameters": [
33707 {
33708 "constant": false,
33709 "id": 1899,
33710 "name": "to",
33711 "nodeType": "VariableDeclaration",
33712 "scope": 1906,
33713 "src": "683:10:3",
33714 "stateVariable": false,
33715 "storageLocation": "default",
33716 "typeDescriptions": {
33717 "typeIdentifier": "t_address",
33718 "typeString": "address"
33719 },
33720 "typeName": {
33721 "id": 1898,
33722 "name": "address",
33723 "nodeType": "ElementaryTypeName",
33724 "src": "683:7:3",
33725 "stateMutability": "nonpayable",
33726 "typeDescriptions": {
33727 "typeIdentifier": "t_address",
33728 "typeString": "address"
33729 }
33730 },
33731 "value": null,
33732 "visibility": "internal"
33733 },
33734 {
33735 "constant": false,
33736 "id": 1901,
33737 "name": "value",
33738 "nodeType": "VariableDeclaration",
33739 "scope": 1906,
33740 "src": "695:10:3",
33741 "stateVariable": false,
33742 "storageLocation": "default",
33743 "typeDescriptions": {
33744 "typeIdentifier": "t_uint256",
33745 "typeString": "uint256"
33746 },
33747 "typeName": {
33748 "id": 1900,
33749 "name": "uint",
33750 "nodeType": "ElementaryTypeName",
33751 "src": "695:4:3",
33752 "typeDescriptions": {
33753 "typeIdentifier": "t_uint256",
33754 "typeString": "uint256"
33755 }
33756 },
33757 "value": null,
33758 "visibility": "internal"
33759 }
33760 ],
33761 "src": "682:24:3"
33762 },
33763 "returnParameters": {
33764 "id": 1905,
33765 "nodeType": "ParameterList",
33766 "parameters": [
33767 {
33768 "constant": false,
33769 "id": 1904,
33770 "name": "",
33771 "nodeType": "VariableDeclaration",
33772 "scope": 1906,
33773 "src": "725:4:3",
33774 "stateVariable": false,
33775 "storageLocation": "default",
33776 "typeDescriptions": {
33777 "typeIdentifier": "t_bool",
33778 "typeString": "bool"
33779 },
33780 "typeName": {
33781 "id": 1903,
33782 "name": "bool",
33783 "nodeType": "ElementaryTypeName",
33784 "src": "725:4:3",
33785 "typeDescriptions": {
33786 "typeIdentifier": "t_bool",
33787 "typeString": "bool"
33788 }
33789 },
33790 "value": null,
33791 "visibility": "internal"
33792 }
33793 ],
33794 "src": "724:6:3"
33795 },
33796 "scope": 1918,
33797 "src": "665:66:3",
33798 "stateMutability": "nonpayable",
33799 "superFunction": null,
33800 "visibility": "external"
33801 },
33802 {
33803 "body": null,
33804 "documentation": null,
33805 "id": 1917,
33806 "implemented": false,
33807 "kind": "function",
33808 "modifiers": [],
33809 "name": "transferFrom",
33810 "nodeType": "FunctionDefinition",
33811 "parameters": {
33812 "id": 1913,
33813 "nodeType": "ParameterList",
33814 "parameters": [
33815 {
33816 "constant": false,
33817 "id": 1908,
33818 "name": "from",
33819 "nodeType": "VariableDeclaration",
33820 "scope": 1917,
33821 "src": "758:12:3",
33822 "stateVariable": false,
33823 "storageLocation": "default",
33824 "typeDescriptions": {
33825 "typeIdentifier": "t_address",
33826 "typeString": "address"
33827 },
33828 "typeName": {
33829 "id": 1907,
33830 "name": "address",
33831 "nodeType": "ElementaryTypeName",
33832 "src": "758:7:3",
33833 "stateMutability": "nonpayable",
33834 "typeDescriptions": {
33835 "typeIdentifier": "t_address",
33836 "typeString": "address"
33837 }
33838 },
33839 "value": null,
33840 "visibility": "internal"
33841 },
33842 {
33843 "constant": false,
33844 "id": 1910,
33845 "name": "to",
33846 "nodeType": "VariableDeclaration",
33847 "scope": 1917,
33848 "src": "772:10:3",
33849 "stateVariable": false,
33850 "storageLocation": "default",
33851 "typeDescriptions": {
33852 "typeIdentifier": "t_address",
33853 "typeString": "address"
33854 },
33855 "typeName": {
33856 "id": 1909,
33857 "name": "address",
33858 "nodeType": "ElementaryTypeName",
33859 "src": "772:7:3",
33860 "stateMutability": "nonpayable",
33861 "typeDescriptions": {
33862 "typeIdentifier": "t_address",
33863 "typeString": "address"
33864 }
33865 },
33866 "value": null,
33867 "visibility": "internal"
33868 },
33869 {
33870 "constant": false,
33871 "id": 1912,
33872 "name": "value",
33873 "nodeType": "VariableDeclaration",
33874 "scope": 1917,
33875 "src": "784:10:3",
33876 "stateVariable": false,
33877 "storageLocation": "default",
33878 "typeDescriptions": {
33879 "typeIdentifier": "t_uint256",
33880 "typeString": "uint256"
33881 },
33882 "typeName": {
33883 "id": 1911,
33884 "name": "uint",
33885 "nodeType": "ElementaryTypeName",
33886 "src": "784:4:3",
33887 "typeDescriptions": {
33888 "typeIdentifier": "t_uint256",
33889 "typeString": "uint256"
33890 }
33891 },
33892 "value": null,
33893 "visibility": "internal"
33894 }
33895 ],
33896 "src": "757:38:3"
33897 },
33898 "returnParameters": {
33899 "id": 1916,
33900 "nodeType": "ParameterList",
33901 "parameters": [
33902 {
33903 "constant": false,
33904 "id": 1915,
33905 "name": "",
33906 "nodeType": "VariableDeclaration",
33907 "scope": 1917,
33908 "src": "814:4:3",
33909 "stateVariable": false,
33910 "storageLocation": "default",
33911 "typeDescriptions": {
33912 "typeIdentifier": "t_bool",
33913 "typeString": "bool"
33914 },
33915 "typeName": {
33916 "id": 1914,
33917 "name": "bool",
33918 "nodeType": "ElementaryTypeName",
33919 "src": "814:4:3",
33920 "typeDescriptions": {
33921 "typeIdentifier": "t_bool",
33922 "typeString": "bool"
33923 }
33924 },
33925 "value": null,
33926 "visibility": "internal"
33927 }
33928 ],
33929 "src": "813:6:3"
33930 },
33931 "scope": 1918,
33932 "src": "736:84:3",
33933 "stateMutability": "nonpayable",
33934 "superFunction": null,
33935 "visibility": "external"
33936 }
33937 ],
33938 "scope": 1919,
33939 "src": "26:796:3"
33940 }
33941 ],
33942 "src": "0:823:3"
33943 }
33944 },
33945 "contracts/interfaces/IUniswapV2Callee.sol": {
33946 "id": 4,
33947 "AST": {
33948 "absolutePath": "contracts/interfaces/IUniswapV2Callee.sol",
33949 "exportedSymbols": {
33950 "IUniswapV2Callee": [
33951 1932
33952 ]
33953 },
33954 "id": 1933,
33955 "nodeType": "SourceUnit",
33956 "nodes": [
33957 {
33958 "id": 1920,
33959 "literals": [
33960 "solidity",
33961 ">=",
33962 "0.5",
33963 ".0"
33964 ],
33965 "nodeType": "PragmaDirective",
33966 "src": "0:24:4"
33967 },
33968 {
33969 "baseContracts": [],
33970 "contractDependencies": [],
33971 "contractKind": "interface",
33972 "documentation": null,
33973 "fullyImplemented": false,
33974 "id": 1932,
33975 "linearizedBaseContracts": [
33976 1932
33977 ],
33978 "name": "IUniswapV2Callee",
33979 "nodeType": "ContractDefinition",
33980 "nodes": [
33981 {
33982 "body": null,
33983 "documentation": null,
33984 "id": 1931,
33985 "implemented": false,
33986 "kind": "function",
33987 "modifiers": [],
33988 "name": "uniswapV2Call",
33989 "nodeType": "FunctionDefinition",
33990 "parameters": {
33991 "id": 1929,
33992 "nodeType": "ParameterList",
33993 "parameters": [
33994 {
33995 "constant": false,
33996 "id": 1922,
33997 "name": "sender",
33998 "nodeType": "VariableDeclaration",
33999 "scope": 1931,
34000 "src": "82:14:4",
34001 "stateVariable": false,
34002 "storageLocation": "default",
34003 "typeDescriptions": {
34004 "typeIdentifier": "t_address",
34005 "typeString": "address"
34006 },
34007 "typeName": {
34008 "id": 1921,
34009 "name": "address",
34010 "nodeType": "ElementaryTypeName",
34011 "src": "82:7:4",
34012 "stateMutability": "nonpayable",
34013 "typeDescriptions": {
34014 "typeIdentifier": "t_address",
34015 "typeString": "address"
34016 }
34017 },
34018 "value": null,
34019 "visibility": "internal"
34020 },
34021 {
34022 "constant": false,
34023 "id": 1924,
34024 "name": "amount0",
34025 "nodeType": "VariableDeclaration",
34026 "scope": 1931,
34027 "src": "98:12:4",
34028 "stateVariable": false,
34029 "storageLocation": "default",
34030 "typeDescriptions": {
34031 "typeIdentifier": "t_uint256",
34032 "typeString": "uint256"
34033 },
34034 "typeName": {
34035 "id": 1923,
34036 "name": "uint",
34037 "nodeType": "ElementaryTypeName",
34038 "src": "98:4:4",
34039 "typeDescriptions": {
34040 "typeIdentifier": "t_uint256",
34041 "typeString": "uint256"
34042 }
34043 },
34044 "value": null,
34045 "visibility": "internal"
34046 },
34047 {
34048 "constant": false,
34049 "id": 1926,
34050 "name": "amount1",
34051 "nodeType": "VariableDeclaration",
34052 "scope": 1931,
34053 "src": "112:12:4",
34054 "stateVariable": false,
34055 "storageLocation": "default",
34056 "typeDescriptions": {
34057 "typeIdentifier": "t_uint256",
34058 "typeString": "uint256"
34059 },
34060 "typeName": {
34061 "id": 1925,
34062 "name": "uint",
34063 "nodeType": "ElementaryTypeName",
34064 "src": "112:4:4",
34065 "typeDescriptions": {
34066 "typeIdentifier": "t_uint256",
34067 "typeString": "uint256"
34068 }
34069 },
34070 "value": null,
34071 "visibility": "internal"
34072 },
34073 {
34074 "constant": false,
34075 "id": 1928,
34076 "name": "data",
34077 "nodeType": "VariableDeclaration",
34078 "scope": 1931,
34079 "src": "126:19:4",
34080 "stateVariable": false,
34081 "storageLocation": "calldata",
34082 "typeDescriptions": {
34083 "typeIdentifier": "t_bytes_calldata_ptr",
34084 "typeString": "bytes"
34085 },
34086 "typeName": {
34087 "id": 1927,
34088 "name": "bytes",
34089 "nodeType": "ElementaryTypeName",
34090 "src": "126:5:4",
34091 "typeDescriptions": {
34092 "typeIdentifier": "t_bytes_storage_ptr",
34093 "typeString": "bytes"
34094 }
34095 },
34096 "value": null,
34097 "visibility": "internal"
34098 }
34099 ],
34100 "src": "81:65:4"
34101 },
34102 "returnParameters": {
34103 "id": 1930,
34104 "nodeType": "ParameterList",
34105 "parameters": [],
34106 "src": "155:0:4"
34107 },
34108 "scope": 1932,
34109 "src": "59:97:4",
34110 "stateMutability": "nonpayable",
34111 "superFunction": null,
34112 "visibility": "external"
34113 }
34114 ],
34115 "scope": 1933,
34116 "src": "26:132:4"
34117 }
34118 ],
34119 "src": "0:159:4"
34120 }
34121 },
34122 "contracts/interfaces/IUniswapV2ERC20.sol": {
34123 "id": 5,
34124 "AST": {
34125 "absolutePath": "contracts/interfaces/IUniswapV2ERC20.sol",
34126 "exportedSymbols": {
34127 "IUniswapV2ERC20": [
34128 2050
34129 ]
34130 },
34131 "id": 2051,
34132 "nodeType": "SourceUnit",
34133 "nodes": [
34134 {
34135 "id": 1934,
34136 "literals": [
34137 "solidity",
34138 ">=",
34139 "0.5",
34140 ".0"
34141 ],
34142 "nodeType": "PragmaDirective",
34143 "src": "0:24:5"
34144 },
34145 {
34146 "baseContracts": [],
34147 "contractDependencies": [],
34148 "contractKind": "interface",
34149 "documentation": null,
34150 "fullyImplemented": false,
34151 "id": 2050,
34152 "linearizedBaseContracts": [
34153 2050
34154 ],
34155 "name": "IUniswapV2ERC20",
34156 "nodeType": "ContractDefinition",
34157 "nodes": [
34158 {
34159 "anonymous": false,
34160 "documentation": null,
34161 "id": 1942,
34162 "name": "Approval",
34163 "nodeType": "EventDefinition",
34164 "parameters": {
34165 "id": 1941,
34166 "nodeType": "ParameterList",
34167 "parameters": [
34168 {
34169 "constant": false,
34170 "id": 1936,
34171 "indexed": true,
34172 "name": "owner",
34173 "nodeType": "VariableDeclaration",
34174 "scope": 1942,
34175 "src": "73:21:5",
34176 "stateVariable": false,
34177 "storageLocation": "default",
34178 "typeDescriptions": {
34179 "typeIdentifier": "t_address",
34180 "typeString": "address"
34181 },
34182 "typeName": {
34183 "id": 1935,
34184 "name": "address",
34185 "nodeType": "ElementaryTypeName",
34186 "src": "73:7:5",
34187 "stateMutability": "nonpayable",
34188 "typeDescriptions": {
34189 "typeIdentifier": "t_address",
34190 "typeString": "address"
34191 }
34192 },
34193 "value": null,
34194 "visibility": "internal"
34195 },
34196 {
34197 "constant": false,
34198 "id": 1938,
34199 "indexed": true,
34200 "name": "spender",
34201 "nodeType": "VariableDeclaration",
34202 "scope": 1942,
34203 "src": "96:23:5",
34204 "stateVariable": false,
34205 "storageLocation": "default",
34206 "typeDescriptions": {
34207 "typeIdentifier": "t_address",
34208 "typeString": "address"
34209 },
34210 "typeName": {
34211 "id": 1937,
34212 "name": "address",
34213 "nodeType": "ElementaryTypeName",
34214 "src": "96:7:5",
34215 "stateMutability": "nonpayable",
34216 "typeDescriptions": {
34217 "typeIdentifier": "t_address",
34218 "typeString": "address"
34219 }
34220 },
34221 "value": null,
34222 "visibility": "internal"
34223 },
34224 {
34225 "constant": false,
34226 "id": 1940,
34227 "indexed": false,
34228 "name": "value",
34229 "nodeType": "VariableDeclaration",
34230 "scope": 1942,
34231 "src": "121:10:5",
34232 "stateVariable": false,
34233 "storageLocation": "default",
34234 "typeDescriptions": {
34235 "typeIdentifier": "t_uint256",
34236 "typeString": "uint256"
34237 },
34238 "typeName": {
34239 "id": 1939,
34240 "name": "uint",
34241 "nodeType": "ElementaryTypeName",
34242 "src": "121:4:5",
34243 "typeDescriptions": {
34244 "typeIdentifier": "t_uint256",
34245 "typeString": "uint256"
34246 }
34247 },
34248 "value": null,
34249 "visibility": "internal"
34250 }
34251 ],
34252 "src": "72:60:5"
34253 },
34254 "src": "58:75:5"
34255 },
34256 {
34257 "anonymous": false,
34258 "documentation": null,
34259 "id": 1950,
34260 "name": "Transfer",
34261 "nodeType": "EventDefinition",
34262 "parameters": {
34263 "id": 1949,
34264 "nodeType": "ParameterList",
34265 "parameters": [
34266 {
34267 "constant": false,
34268 "id": 1944,
34269 "indexed": true,
34270 "name": "from",
34271 "nodeType": "VariableDeclaration",
34272 "scope": 1950,
34273 "src": "153:20:5",
34274 "stateVariable": false,
34275 "storageLocation": "default",
34276 "typeDescriptions": {
34277 "typeIdentifier": "t_address",
34278 "typeString": "address"
34279 },
34280 "typeName": {
34281 "id": 1943,
34282 "name": "address",
34283 "nodeType": "ElementaryTypeName",
34284 "src": "153:7:5",
34285 "stateMutability": "nonpayable",
34286 "typeDescriptions": {
34287 "typeIdentifier": "t_address",
34288 "typeString": "address"
34289 }
34290 },
34291 "value": null,
34292 "visibility": "internal"
34293 },
34294 {
34295 "constant": false,
34296 "id": 1946,
34297 "indexed": true,
34298 "name": "to",
34299 "nodeType": "VariableDeclaration",
34300 "scope": 1950,
34301 "src": "175:18:5",
34302 "stateVariable": false,
34303 "storageLocation": "default",
34304 "typeDescriptions": {
34305 "typeIdentifier": "t_address",
34306 "typeString": "address"
34307 },
34308 "typeName": {
34309 "id": 1945,
34310 "name": "address",
34311 "nodeType": "ElementaryTypeName",
34312 "src": "175:7:5",
34313 "stateMutability": "nonpayable",
34314 "typeDescriptions": {
34315 "typeIdentifier": "t_address",
34316 "typeString": "address"
34317 }
34318 },
34319 "value": null,
34320 "visibility": "internal"
34321 },
34322 {
34323 "constant": false,
34324 "id": 1948,
34325 "indexed": false,
34326 "name": "value",
34327 "nodeType": "VariableDeclaration",
34328 "scope": 1950,
34329 "src": "195:10:5",
34330 "stateVariable": false,
34331 "storageLocation": "default",
34332 "typeDescriptions": {
34333 "typeIdentifier": "t_uint256",
34334 "typeString": "uint256"
34335 },
34336 "typeName": {
34337 "id": 1947,
34338 "name": "uint",
34339 "nodeType": "ElementaryTypeName",
34340 "src": "195:4:5",
34341 "typeDescriptions": {
34342 "typeIdentifier": "t_uint256",
34343 "typeString": "uint256"
34344 }
34345 },
34346 "value": null,
34347 "visibility": "internal"
34348 }
34349 ],
34350 "src": "152:54:5"
34351 },
34352 "src": "138:69:5"
34353 },
34354 {
34355 "body": null,
34356 "documentation": null,
34357 "id": 1955,
34358 "implemented": false,
34359 "kind": "function",
34360 "modifiers": [],
34361 "name": "name",
34362 "nodeType": "FunctionDefinition",
34363 "parameters": {
34364 "id": 1951,
34365 "nodeType": "ParameterList",
34366 "parameters": [],
34367 "src": "226:2:5"
34368 },
34369 "returnParameters": {
34370 "id": 1954,
34371 "nodeType": "ParameterList",
34372 "parameters": [
34373 {
34374 "constant": false,
34375 "id": 1953,
34376 "name": "",
34377 "nodeType": "VariableDeclaration",
34378 "scope": 1955,
34379 "src": "252:13:5",
34380 "stateVariable": false,
34381 "storageLocation": "memory",
34382 "typeDescriptions": {
34383 "typeIdentifier": "t_string_memory_ptr",
34384 "typeString": "string"
34385 },
34386 "typeName": {
34387 "id": 1952,
34388 "name": "string",
34389 "nodeType": "ElementaryTypeName",
34390 "src": "252:6:5",
34391 "typeDescriptions": {
34392 "typeIdentifier": "t_string_storage_ptr",
34393 "typeString": "string"
34394 }
34395 },
34396 "value": null,
34397 "visibility": "internal"
34398 }
34399 ],
34400 "src": "251:15:5"
34401 },
34402 "scope": 2050,
34403 "src": "213:54:5",
34404 "stateMutability": "pure",
34405 "superFunction": 2146,
34406 "visibility": "external"
34407 },
34408 {
34409 "body": null,
34410 "documentation": null,
34411 "id": 1960,
34412 "implemented": false,
34413 "kind": "function",
34414 "modifiers": [],
34415 "name": "symbol",
34416 "nodeType": "FunctionDefinition",
34417 "parameters": {
34418 "id": 1956,
34419 "nodeType": "ParameterList",
34420 "parameters": [],
34421 "src": "287:2:5"
34422 },
34423 "returnParameters": {
34424 "id": 1959,
34425 "nodeType": "ParameterList",
34426 "parameters": [
34427 {
34428 "constant": false,
34429 "id": 1958,
34430 "name": "",
34431 "nodeType": "VariableDeclaration",
34432 "scope": 1960,
34433 "src": "313:13:5",
34434 "stateVariable": false,
34435 "storageLocation": "memory",
34436 "typeDescriptions": {
34437 "typeIdentifier": "t_string_memory_ptr",
34438 "typeString": "string"
34439 },
34440 "typeName": {
34441 "id": 1957,
34442 "name": "string",
34443 "nodeType": "ElementaryTypeName",
34444 "src": "313:6:5",
34445 "typeDescriptions": {
34446 "typeIdentifier": "t_string_storage_ptr",
34447 "typeString": "string"
34448 }
34449 },
34450 "value": null,
34451 "visibility": "internal"
34452 }
34453 ],
34454 "src": "312:15:5"
34455 },
34456 "scope": 2050,
34457 "src": "272:56:5",
34458 "stateMutability": "pure",
34459 "superFunction": 2151,
34460 "visibility": "external"
34461 },
34462 {
34463 "body": null,
34464 "documentation": null,
34465 "id": 1965,
34466 "implemented": false,
34467 "kind": "function",
34468 "modifiers": [],
34469 "name": "decimals",
34470 "nodeType": "FunctionDefinition",
34471 "parameters": {
34472 "id": 1961,
34473 "nodeType": "ParameterList",
34474 "parameters": [],
34475 "src": "350:2:5"
34476 },
34477 "returnParameters": {
34478 "id": 1964,
34479 "nodeType": "ParameterList",
34480 "parameters": [
34481 {
34482 "constant": false,
34483 "id": 1963,
34484 "name": "",
34485 "nodeType": "VariableDeclaration",
34486 "scope": 1965,
34487 "src": "376:5:5",
34488 "stateVariable": false,
34489 "storageLocation": "default",
34490 "typeDescriptions": {
34491 "typeIdentifier": "t_uint8",
34492 "typeString": "uint8"
34493 },
34494 "typeName": {
34495 "id": 1962,
34496 "name": "uint8",
34497 "nodeType": "ElementaryTypeName",
34498 "src": "376:5:5",
34499 "typeDescriptions": {
34500 "typeIdentifier": "t_uint8",
34501 "typeString": "uint8"
34502 }
34503 },
34504 "value": null,
34505 "visibility": "internal"
34506 }
34507 ],
34508 "src": "375:7:5"
34509 },
34510 "scope": 2050,
34511 "src": "333:50:5",
34512 "stateMutability": "pure",
34513 "superFunction": 2156,
34514 "visibility": "external"
34515 },
34516 {
34517 "body": null,
34518 "documentation": null,
34519 "id": 1970,
34520 "implemented": false,
34521 "kind": "function",
34522 "modifiers": [],
34523 "name": "totalSupply",
34524 "nodeType": "FunctionDefinition",
34525 "parameters": {
34526 "id": 1966,
34527 "nodeType": "ParameterList",
34528 "parameters": [],
34529 "src": "408:2:5"
34530 },
34531 "returnParameters": {
34532 "id": 1969,
34533 "nodeType": "ParameterList",
34534 "parameters": [
34535 {
34536 "constant": false,
34537 "id": 1968,
34538 "name": "",
34539 "nodeType": "VariableDeclaration",
34540 "scope": 1970,
34541 "src": "434:4:5",
34542 "stateVariable": false,
34543 "storageLocation": "default",
34544 "typeDescriptions": {
34545 "typeIdentifier": "t_uint256",
34546 "typeString": "uint256"
34547 },
34548 "typeName": {
34549 "id": 1967,
34550 "name": "uint",
34551 "nodeType": "ElementaryTypeName",
34552 "src": "434:4:5",
34553 "typeDescriptions": {
34554 "typeIdentifier": "t_uint256",
34555 "typeString": "uint256"
34556 }
34557 },
34558 "value": null,
34559 "visibility": "internal"
34560 }
34561 ],
34562 "src": "433:6:5"
34563 },
34564 "scope": 2050,
34565 "src": "388:52:5",
34566 "stateMutability": "view",
34567 "superFunction": 2161,
34568 "visibility": "external"
34569 },
34570 {
34571 "body": null,
34572 "documentation": null,
34573 "id": 1977,
34574 "implemented": false,
34575 "kind": "function",
34576 "modifiers": [],
34577 "name": "balanceOf",
34578 "nodeType": "FunctionDefinition",
34579 "parameters": {
34580 "id": 1973,
34581 "nodeType": "ParameterList",
34582 "parameters": [
34583 {
34584 "constant": false,
34585 "id": 1972,
34586 "name": "owner",
34587 "nodeType": "VariableDeclaration",
34588 "scope": 1977,
34589 "src": "464:13:5",
34590 "stateVariable": false,
34591 "storageLocation": "default",
34592 "typeDescriptions": {
34593 "typeIdentifier": "t_address",
34594 "typeString": "address"
34595 },
34596 "typeName": {
34597 "id": 1971,
34598 "name": "address",
34599 "nodeType": "ElementaryTypeName",
34600 "src": "464:7:5",
34601 "stateMutability": "nonpayable",
34602 "typeDescriptions": {
34603 "typeIdentifier": "t_address",
34604 "typeString": "address"
34605 }
34606 },
34607 "value": null,
34608 "visibility": "internal"
34609 }
34610 ],
34611 "src": "463:15:5"
34612 },
34613 "returnParameters": {
34614 "id": 1976,
34615 "nodeType": "ParameterList",
34616 "parameters": [
34617 {
34618 "constant": false,
34619 "id": 1975,
34620 "name": "",
34621 "nodeType": "VariableDeclaration",
34622 "scope": 1977,
34623 "src": "502:4:5",
34624 "stateVariable": false,
34625 "storageLocation": "default",
34626 "typeDescriptions": {
34627 "typeIdentifier": "t_uint256",
34628 "typeString": "uint256"
34629 },
34630 "typeName": {
34631 "id": 1974,
34632 "name": "uint",
34633 "nodeType": "ElementaryTypeName",
34634 "src": "502:4:5",
34635 "typeDescriptions": {
34636 "typeIdentifier": "t_uint256",
34637 "typeString": "uint256"
34638 }
34639 },
34640 "value": null,
34641 "visibility": "internal"
34642 }
34643 ],
34644 "src": "501:6:5"
34645 },
34646 "scope": 2050,
34647 "src": "445:63:5",
34648 "stateMutability": "view",
34649 "superFunction": 2168,
34650 "visibility": "external"
34651 },
34652 {
34653 "body": null,
34654 "documentation": null,
34655 "id": 1986,
34656 "implemented": false,
34657 "kind": "function",
34658 "modifiers": [],
34659 "name": "allowance",
34660 "nodeType": "FunctionDefinition",
34661 "parameters": {
34662 "id": 1982,
34663 "nodeType": "ParameterList",
34664 "parameters": [
34665 {
34666 "constant": false,
34667 "id": 1979,
34668 "name": "owner",
34669 "nodeType": "VariableDeclaration",
34670 "scope": 1986,
34671 "src": "532:13:5",
34672 "stateVariable": false,
34673 "storageLocation": "default",
34674 "typeDescriptions": {
34675 "typeIdentifier": "t_address",
34676 "typeString": "address"
34677 },
34678 "typeName": {
34679 "id": 1978,
34680 "name": "address",
34681 "nodeType": "ElementaryTypeName",
34682 "src": "532:7:5",
34683 "stateMutability": "nonpayable",
34684 "typeDescriptions": {
34685 "typeIdentifier": "t_address",
34686 "typeString": "address"
34687 }
34688 },
34689 "value": null,
34690 "visibility": "internal"
34691 },
34692 {
34693 "constant": false,
34694 "id": 1981,
34695 "name": "spender",
34696 "nodeType": "VariableDeclaration",
34697 "scope": 1986,
34698 "src": "547:15:5",
34699 "stateVariable": false,
34700 "storageLocation": "default",
34701 "typeDescriptions": {
34702 "typeIdentifier": "t_address",
34703 "typeString": "address"
34704 },
34705 "typeName": {
34706 "id": 1980,
34707 "name": "address",
34708 "nodeType": "ElementaryTypeName",
34709 "src": "547:7:5",
34710 "stateMutability": "nonpayable",
34711 "typeDescriptions": {
34712 "typeIdentifier": "t_address",
34713 "typeString": "address"
34714 }
34715 },
34716 "value": null,
34717 "visibility": "internal"
34718 }
34719 ],
34720 "src": "531:32:5"
34721 },
34722 "returnParameters": {
34723 "id": 1985,
34724 "nodeType": "ParameterList",
34725 "parameters": [
34726 {
34727 "constant": false,
34728 "id": 1984,
34729 "name": "",
34730 "nodeType": "VariableDeclaration",
34731 "scope": 1986,
34732 "src": "587:4:5",
34733 "stateVariable": false,
34734 "storageLocation": "default",
34735 "typeDescriptions": {
34736 "typeIdentifier": "t_uint256",
34737 "typeString": "uint256"
34738 },
34739 "typeName": {
34740 "id": 1983,
34741 "name": "uint",
34742 "nodeType": "ElementaryTypeName",
34743 "src": "587:4:5",
34744 "typeDescriptions": {
34745 "typeIdentifier": "t_uint256",
34746 "typeString": "uint256"
34747 }
34748 },
34749 "value": null,
34750 "visibility": "internal"
34751 }
34752 ],
34753 "src": "586:6:5"
34754 },
34755 "scope": 2050,
34756 "src": "513:80:5",
34757 "stateMutability": "view",
34758 "superFunction": 2177,
34759 "visibility": "external"
34760 },
34761 {
34762 "body": null,
34763 "documentation": null,
34764 "id": 1995,
34765 "implemented": false,
34766 "kind": "function",
34767 "modifiers": [],
34768 "name": "approve",
34769 "nodeType": "FunctionDefinition",
34770 "parameters": {
34771 "id": 1991,
34772 "nodeType": "ParameterList",
34773 "parameters": [
34774 {
34775 "constant": false,
34776 "id": 1988,
34777 "name": "spender",
34778 "nodeType": "VariableDeclaration",
34779 "scope": 1995,
34780 "src": "616:15:5",
34781 "stateVariable": false,
34782 "storageLocation": "default",
34783 "typeDescriptions": {
34784 "typeIdentifier": "t_address",
34785 "typeString": "address"
34786 },
34787 "typeName": {
34788 "id": 1987,
34789 "name": "address",
34790 "nodeType": "ElementaryTypeName",
34791 "src": "616:7:5",
34792 "stateMutability": "nonpayable",
34793 "typeDescriptions": {
34794 "typeIdentifier": "t_address",
34795 "typeString": "address"
34796 }
34797 },
34798 "value": null,
34799 "visibility": "internal"
34800 },
34801 {
34802 "constant": false,
34803 "id": 1990,
34804 "name": "value",
34805 "nodeType": "VariableDeclaration",
34806 "scope": 1995,
34807 "src": "633:10:5",
34808 "stateVariable": false,
34809 "storageLocation": "default",
34810 "typeDescriptions": {
34811 "typeIdentifier": "t_uint256",
34812 "typeString": "uint256"
34813 },
34814 "typeName": {
34815 "id": 1989,
34816 "name": "uint",
34817 "nodeType": "ElementaryTypeName",
34818 "src": "633:4:5",
34819 "typeDescriptions": {
34820 "typeIdentifier": "t_uint256",
34821 "typeString": "uint256"
34822 }
34823 },
34824 "value": null,
34825 "visibility": "internal"
34826 }
34827 ],
34828 "src": "615:29:5"
34829 },
34830 "returnParameters": {
34831 "id": 1994,
34832 "nodeType": "ParameterList",
34833 "parameters": [
34834 {
34835 "constant": false,
34836 "id": 1993,
34837 "name": "",
34838 "nodeType": "VariableDeclaration",
34839 "scope": 1995,
34840 "src": "663:4:5",
34841 "stateVariable": false,
34842 "storageLocation": "default",
34843 "typeDescriptions": {
34844 "typeIdentifier": "t_bool",
34845 "typeString": "bool"
34846 },
34847 "typeName": {
34848 "id": 1992,
34849 "name": "bool",
34850 "nodeType": "ElementaryTypeName",
34851 "src": "663:4:5",
34852 "typeDescriptions": {
34853 "typeIdentifier": "t_bool",
34854 "typeString": "bool"
34855 }
34856 },
34857 "value": null,
34858 "visibility": "internal"
34859 }
34860 ],
34861 "src": "662:6:5"
34862 },
34863 "scope": 2050,
34864 "src": "599:70:5",
34865 "stateMutability": "nonpayable",
34866 "superFunction": 2186,
34867 "visibility": "external"
34868 },
34869 {
34870 "body": null,
34871 "documentation": null,
34872 "id": 2004,
34873 "implemented": false,
34874 "kind": "function",
34875 "modifiers": [],
34876 "name": "transfer",
34877 "nodeType": "FunctionDefinition",
34878 "parameters": {
34879 "id": 2000,
34880 "nodeType": "ParameterList",
34881 "parameters": [
34882 {
34883 "constant": false,
34884 "id": 1997,
34885 "name": "to",
34886 "nodeType": "VariableDeclaration",
34887 "scope": 2004,
34888 "src": "692:10:5",
34889 "stateVariable": false,
34890 "storageLocation": "default",
34891 "typeDescriptions": {
34892 "typeIdentifier": "t_address",
34893 "typeString": "address"
34894 },
34895 "typeName": {
34896 "id": 1996,
34897 "name": "address",
34898 "nodeType": "ElementaryTypeName",
34899 "src": "692:7:5",
34900 "stateMutability": "nonpayable",
34901 "typeDescriptions": {
34902 "typeIdentifier": "t_address",
34903 "typeString": "address"
34904 }
34905 },
34906 "value": null,
34907 "visibility": "internal"
34908 },
34909 {
34910 "constant": false,
34911 "id": 1999,
34912 "name": "value",
34913 "nodeType": "VariableDeclaration",
34914 "scope": 2004,
34915 "src": "704:10:5",
34916 "stateVariable": false,
34917 "storageLocation": "default",
34918 "typeDescriptions": {
34919 "typeIdentifier": "t_uint256",
34920 "typeString": "uint256"
34921 },
34922 "typeName": {
34923 "id": 1998,
34924 "name": "uint",
34925 "nodeType": "ElementaryTypeName",
34926 "src": "704:4:5",
34927 "typeDescriptions": {
34928 "typeIdentifier": "t_uint256",
34929 "typeString": "uint256"
34930 }
34931 },
34932 "value": null,
34933 "visibility": "internal"
34934 }
34935 ],
34936 "src": "691:24:5"
34937 },
34938 "returnParameters": {
34939 "id": 2003,
34940 "nodeType": "ParameterList",
34941 "parameters": [
34942 {
34943 "constant": false,
34944 "id": 2002,
34945 "name": "",
34946 "nodeType": "VariableDeclaration",
34947 "scope": 2004,
34948 "src": "734:4:5",
34949 "stateVariable": false,
34950 "storageLocation": "default",
34951 "typeDescriptions": {
34952 "typeIdentifier": "t_bool",
34953 "typeString": "bool"
34954 },
34955 "typeName": {
34956 "id": 2001,
34957 "name": "bool",
34958 "nodeType": "ElementaryTypeName",
34959 "src": "734:4:5",
34960 "typeDescriptions": {
34961 "typeIdentifier": "t_bool",
34962 "typeString": "bool"
34963 }
34964 },
34965 "value": null,
34966 "visibility": "internal"
34967 }
34968 ],
34969 "src": "733:6:5"
34970 },
34971 "scope": 2050,
34972 "src": "674:66:5",
34973 "stateMutability": "nonpayable",
34974 "superFunction": 2195,
34975 "visibility": "external"
34976 },
34977 {
34978 "body": null,
34979 "documentation": null,
34980 "id": 2015,
34981 "implemented": false,
34982 "kind": "function",
34983 "modifiers": [],
34984 "name": "transferFrom",
34985 "nodeType": "FunctionDefinition",
34986 "parameters": {
34987 "id": 2011,
34988 "nodeType": "ParameterList",
34989 "parameters": [
34990 {
34991 "constant": false,
34992 "id": 2006,
34993 "name": "from",
34994 "nodeType": "VariableDeclaration",
34995 "scope": 2015,
34996 "src": "767:12:5",
34997 "stateVariable": false,
34998 "storageLocation": "default",
34999 "typeDescriptions": {
35000 "typeIdentifier": "t_address",
35001 "typeString": "address"
35002 },
35003 "typeName": {
35004 "id": 2005,
35005 "name": "address",
35006 "nodeType": "ElementaryTypeName",
35007 "src": "767:7:5",
35008 "stateMutability": "nonpayable",
35009 "typeDescriptions": {
35010 "typeIdentifier": "t_address",
35011 "typeString": "address"
35012 }
35013 },
35014 "value": null,
35015 "visibility": "internal"
35016 },
35017 {
35018 "constant": false,
35019 "id": 2008,
35020 "name": "to",
35021 "nodeType": "VariableDeclaration",
35022 "scope": 2015,
35023 "src": "781:10:5",
35024 "stateVariable": false,
35025 "storageLocation": "default",
35026 "typeDescriptions": {
35027 "typeIdentifier": "t_address",
35028 "typeString": "address"
35029 },
35030 "typeName": {
35031 "id": 2007,
35032 "name": "address",
35033 "nodeType": "ElementaryTypeName",
35034 "src": "781:7:5",
35035 "stateMutability": "nonpayable",
35036 "typeDescriptions": {
35037 "typeIdentifier": "t_address",
35038 "typeString": "address"
35039 }
35040 },
35041 "value": null,
35042 "visibility": "internal"
35043 },
35044 {
35045 "constant": false,
35046 "id": 2010,
35047 "name": "value",
35048 "nodeType": "VariableDeclaration",
35049 "scope": 2015,
35050 "src": "793:10:5",
35051 "stateVariable": false,
35052 "storageLocation": "default",
35053 "typeDescriptions": {
35054 "typeIdentifier": "t_uint256",
35055 "typeString": "uint256"
35056 },
35057 "typeName": {
35058 "id": 2009,
35059 "name": "uint",
35060 "nodeType": "ElementaryTypeName",
35061 "src": "793:4:5",
35062 "typeDescriptions": {
35063 "typeIdentifier": "t_uint256",
35064 "typeString": "uint256"
35065 }
35066 },
35067 "value": null,
35068 "visibility": "internal"
35069 }
35070 ],
35071 "src": "766:38:5"
35072 },
35073 "returnParameters": {
35074 "id": 2014,
35075 "nodeType": "ParameterList",
35076 "parameters": [
35077 {
35078 "constant": false,
35079 "id": 2013,
35080 "name": "",
35081 "nodeType": "VariableDeclaration",
35082 "scope": 2015,
35083 "src": "823:4:5",
35084 "stateVariable": false,
35085 "storageLocation": "default",
35086 "typeDescriptions": {
35087 "typeIdentifier": "t_bool",
35088 "typeString": "bool"
35089 },
35090 "typeName": {
35091 "id": 2012,
35092 "name": "bool",
35093 "nodeType": "ElementaryTypeName",
35094 "src": "823:4:5",
35095 "typeDescriptions": {
35096 "typeIdentifier": "t_bool",
35097 "typeString": "bool"
35098 }
35099 },
35100 "value": null,
35101 "visibility": "internal"
35102 }
35103 ],
35104 "src": "822:6:5"
35105 },
35106 "scope": 2050,
35107 "src": "745:84:5",
35108 "stateMutability": "nonpayable",
35109 "superFunction": 2206,
35110 "visibility": "external"
35111 },
35112 {
35113 "body": null,
35114 "documentation": null,
35115 "id": 2020,
35116 "implemented": false,
35117 "kind": "function",
35118 "modifiers": [],
35119 "name": "DOMAIN_SEPARATOR",
35120 "nodeType": "FunctionDefinition",
35121 "parameters": {
35122 "id": 2016,
35123 "nodeType": "ParameterList",
35124 "parameters": [],
35125 "src": "860:2:5"
35126 },
35127 "returnParameters": {
35128 "id": 2019,
35129 "nodeType": "ParameterList",
35130 "parameters": [
35131 {
35132 "constant": false,
35133 "id": 2018,
35134 "name": "",
35135 "nodeType": "VariableDeclaration",
35136 "scope": 2020,
35137 "src": "886:7:5",
35138 "stateVariable": false,
35139 "storageLocation": "default",
35140 "typeDescriptions": {
35141 "typeIdentifier": "t_bytes32",
35142 "typeString": "bytes32"
35143 },
35144 "typeName": {
35145 "id": 2017,
35146 "name": "bytes32",
35147 "nodeType": "ElementaryTypeName",
35148 "src": "886:7:5",
35149 "typeDescriptions": {
35150 "typeIdentifier": "t_bytes32",
35151 "typeString": "bytes32"
35152 }
35153 },
35154 "value": null,
35155 "visibility": "internal"
35156 }
35157 ],
35158 "src": "885:9:5"
35159 },
35160 "scope": 2050,
35161 "src": "835:60:5",
35162 "stateMutability": "view",
35163 "superFunction": 2211,
35164 "visibility": "external"
35165 },
35166 {
35167 "body": null,
35168 "documentation": null,
35169 "id": 2025,
35170 "implemented": false,
35171 "kind": "function",
35172 "modifiers": [],
35173 "name": "PERMIT_TYPEHASH",
35174 "nodeType": "FunctionDefinition",
35175 "parameters": {
35176 "id": 2021,
35177 "nodeType": "ParameterList",
35178 "parameters": [],
35179 "src": "924:2:5"
35180 },
35181 "returnParameters": {
35182 "id": 2024,
35183 "nodeType": "ParameterList",
35184 "parameters": [
35185 {
35186 "constant": false,
35187 "id": 2023,
35188 "name": "",
35189 "nodeType": "VariableDeclaration",
35190 "scope": 2025,
35191 "src": "950:7:5",
35192 "stateVariable": false,
35193 "storageLocation": "default",
35194 "typeDescriptions": {
35195 "typeIdentifier": "t_bytes32",
35196 "typeString": "bytes32"
35197 },
35198 "typeName": {
35199 "id": 2022,
35200 "name": "bytes32",
35201 "nodeType": "ElementaryTypeName",
35202 "src": "950:7:5",
35203 "typeDescriptions": {
35204 "typeIdentifier": "t_bytes32",
35205 "typeString": "bytes32"
35206 }
35207 },
35208 "value": null,
35209 "visibility": "internal"
35210 }
35211 ],
35212 "src": "949:9:5"
35213 },
35214 "scope": 2050,
35215 "src": "900:59:5",
35216 "stateMutability": "pure",
35217 "superFunction": 2216,
35218 "visibility": "external"
35219 },
35220 {
35221 "body": null,
35222 "documentation": null,
35223 "id": 2032,
35224 "implemented": false,
35225 "kind": "function",
35226 "modifiers": [],
35227 "name": "nonces",
35228 "nodeType": "FunctionDefinition",
35229 "parameters": {
35230 "id": 2028,
35231 "nodeType": "ParameterList",
35232 "parameters": [
35233 {
35234 "constant": false,
35235 "id": 2027,
35236 "name": "owner",
35237 "nodeType": "VariableDeclaration",
35238 "scope": 2032,
35239 "src": "980:13:5",
35240 "stateVariable": false,
35241 "storageLocation": "default",
35242 "typeDescriptions": {
35243 "typeIdentifier": "t_address",
35244 "typeString": "address"
35245 },
35246 "typeName": {
35247 "id": 2026,
35248 "name": "address",
35249 "nodeType": "ElementaryTypeName",
35250 "src": "980:7:5",
35251 "stateMutability": "nonpayable",
35252 "typeDescriptions": {
35253 "typeIdentifier": "t_address",
35254 "typeString": "address"
35255 }
35256 },
35257 "value": null,
35258 "visibility": "internal"
35259 }
35260 ],
35261 "src": "979:15:5"
35262 },
35263 "returnParameters": {
35264 "id": 2031,
35265 "nodeType": "ParameterList",
35266 "parameters": [
35267 {
35268 "constant": false,
35269 "id": 2030,
35270 "name": "",
35271 "nodeType": "VariableDeclaration",
35272 "scope": 2032,
35273 "src": "1018:4:5",
35274 "stateVariable": false,
35275 "storageLocation": "default",
35276 "typeDescriptions": {
35277 "typeIdentifier": "t_uint256",
35278 "typeString": "uint256"
35279 },
35280 "typeName": {
35281 "id": 2029,
35282 "name": "uint",
35283 "nodeType": "ElementaryTypeName",
35284 "src": "1018:4:5",
35285 "typeDescriptions": {
35286 "typeIdentifier": "t_uint256",
35287 "typeString": "uint256"
35288 }
35289 },
35290 "value": null,
35291 "visibility": "internal"
35292 }
35293 ],
35294 "src": "1017:6:5"
35295 },
35296 "scope": 2050,
35297 "src": "964:60:5",
35298 "stateMutability": "view",
35299 "superFunction": 2223,
35300 "visibility": "external"
35301 },
35302 {
35303 "body": null,
35304 "documentation": null,
35305 "id": 2049,
35306 "implemented": false,
35307 "kind": "function",
35308 "modifiers": [],
35309 "name": "permit",
35310 "nodeType": "FunctionDefinition",
35311 "parameters": {
35312 "id": 2047,
35313 "nodeType": "ParameterList",
35314 "parameters": [
35315 {
35316 "constant": false,
35317 "id": 2034,
35318 "name": "owner",
35319 "nodeType": "VariableDeclaration",
35320 "scope": 2049,
35321 "src": "1046:13:5",
35322 "stateVariable": false,
35323 "storageLocation": "default",
35324 "typeDescriptions": {
35325 "typeIdentifier": "t_address",
35326 "typeString": "address"
35327 },
35328 "typeName": {
35329 "id": 2033,
35330 "name": "address",
35331 "nodeType": "ElementaryTypeName",
35332 "src": "1046:7:5",
35333 "stateMutability": "nonpayable",
35334 "typeDescriptions": {
35335 "typeIdentifier": "t_address",
35336 "typeString": "address"
35337 }
35338 },
35339 "value": null,
35340 "visibility": "internal"
35341 },
35342 {
35343 "constant": false,
35344 "id": 2036,
35345 "name": "spender",
35346 "nodeType": "VariableDeclaration",
35347 "scope": 2049,
35348 "src": "1061:15:5",
35349 "stateVariable": false,
35350 "storageLocation": "default",
35351 "typeDescriptions": {
35352 "typeIdentifier": "t_address",
35353 "typeString": "address"
35354 },
35355 "typeName": {
35356 "id": 2035,
35357 "name": "address",
35358 "nodeType": "ElementaryTypeName",
35359 "src": "1061:7:5",
35360 "stateMutability": "nonpayable",
35361 "typeDescriptions": {
35362 "typeIdentifier": "t_address",
35363 "typeString": "address"
35364 }
35365 },
35366 "value": null,
35367 "visibility": "internal"
35368 },
35369 {
35370 "constant": false,
35371 "id": 2038,
35372 "name": "value",
35373 "nodeType": "VariableDeclaration",
35374 "scope": 2049,
35375 "src": "1078:10:5",
35376 "stateVariable": false,
35377 "storageLocation": "default",
35378 "typeDescriptions": {
35379 "typeIdentifier": "t_uint256",
35380 "typeString": "uint256"
35381 },
35382 "typeName": {
35383 "id": 2037,
35384 "name": "uint",
35385 "nodeType": "ElementaryTypeName",
35386 "src": "1078:4:5",
35387 "typeDescriptions": {
35388 "typeIdentifier": "t_uint256",
35389 "typeString": "uint256"
35390 }
35391 },
35392 "value": null,
35393 "visibility": "internal"
35394 },
35395 {
35396 "constant": false,
35397 "id": 2040,
35398 "name": "deadline",
35399 "nodeType": "VariableDeclaration",
35400 "scope": 2049,
35401 "src": "1090:13:5",
35402 "stateVariable": false,
35403 "storageLocation": "default",
35404 "typeDescriptions": {
35405 "typeIdentifier": "t_uint256",
35406 "typeString": "uint256"
35407 },
35408 "typeName": {
35409 "id": 2039,
35410 "name": "uint",
35411 "nodeType": "ElementaryTypeName",
35412 "src": "1090:4:5",
35413 "typeDescriptions": {
35414 "typeIdentifier": "t_uint256",
35415 "typeString": "uint256"
35416 }
35417 },
35418 "value": null,
35419 "visibility": "internal"
35420 },
35421 {
35422 "constant": false,
35423 "id": 2042,
35424 "name": "v",
35425 "nodeType": "VariableDeclaration",
35426 "scope": 2049,
35427 "src": "1105:7:5",
35428 "stateVariable": false,
35429 "storageLocation": "default",
35430 "typeDescriptions": {
35431 "typeIdentifier": "t_uint8",
35432 "typeString": "uint8"
35433 },
35434 "typeName": {
35435 "id": 2041,
35436 "name": "uint8",
35437 "nodeType": "ElementaryTypeName",
35438 "src": "1105:5:5",
35439 "typeDescriptions": {
35440 "typeIdentifier": "t_uint8",
35441 "typeString": "uint8"
35442 }
35443 },
35444 "value": null,
35445 "visibility": "internal"
35446 },
35447 {
35448 "constant": false,
35449 "id": 2044,
35450 "name": "r",
35451 "nodeType": "VariableDeclaration",
35452 "scope": 2049,
35453 "src": "1114:9:5",
35454 "stateVariable": false,
35455 "storageLocation": "default",
35456 "typeDescriptions": {
35457 "typeIdentifier": "t_bytes32",
35458 "typeString": "bytes32"
35459 },
35460 "typeName": {
35461 "id": 2043,
35462 "name": "bytes32",
35463 "nodeType": "ElementaryTypeName",
35464 "src": "1114:7:5",
35465 "typeDescriptions": {
35466 "typeIdentifier": "t_bytes32",
35467 "typeString": "bytes32"
35468 }
35469 },
35470 "value": null,
35471 "visibility": "internal"
35472 },
35473 {
35474 "constant": false,
35475 "id": 2046,
35476 "name": "s",
35477 "nodeType": "VariableDeclaration",
35478 "scope": 2049,
35479 "src": "1125:9:5",
35480 "stateVariable": false,
35481 "storageLocation": "default",
35482 "typeDescriptions": {
35483 "typeIdentifier": "t_bytes32",
35484 "typeString": "bytes32"
35485 },
35486 "typeName": {
35487 "id": 2045,
35488 "name": "bytes32",
35489 "nodeType": "ElementaryTypeName",
35490 "src": "1125:7:5",
35491 "typeDescriptions": {
35492 "typeIdentifier": "t_bytes32",
35493 "typeString": "bytes32"
35494 }
35495 },
35496 "value": null,
35497 "visibility": "internal"
35498 }
35499 ],
35500 "src": "1045:90:5"
35501 },
35502 "returnParameters": {
35503 "id": 2048,
35504 "nodeType": "ParameterList",
35505 "parameters": [],
35506 "src": "1144:0:5"
35507 },
35508 "scope": 2050,
35509 "src": "1030:115:5",
35510 "stateMutability": "nonpayable",
35511 "superFunction": 2240,
35512 "visibility": "external"
35513 }
35514 ],
35515 "scope": 2051,
35516 "src": "26:1121:5"
35517 }
35518 ],
35519 "src": "0:1148:5"
35520 }
35521 },
35522 "contracts/interfaces/IUniswapV2Factory.sol": {
35523 "id": 6,
35524 "AST": {
35525 "absolutePath": "contracts/interfaces/IUniswapV2Factory.sol",
35526 "exportedSymbols": {
35527 "IUniswapV2Factory": [
35528 2123
35529 ]
35530 },
35531 "id": 2124,
35532 "nodeType": "SourceUnit",
35533 "nodes": [
35534 {
35535 "id": 2052,
35536 "literals": [
35537 "solidity",
35538 ">=",
35539 "0.5",
35540 ".0"
35541 ],
35542 "nodeType": "PragmaDirective",
35543 "src": "0:24:6"
35544 },
35545 {
35546 "baseContracts": [],
35547 "contractDependencies": [],
35548 "contractKind": "interface",
35549 "documentation": null,
35550 "fullyImplemented": false,
35551 "id": 2123,
35552 "linearizedBaseContracts": [
35553 2123
35554 ],
35555 "name": "IUniswapV2Factory",
35556 "nodeType": "ContractDefinition",
35557 "nodes": [
35558 {
35559 "anonymous": false,
35560 "documentation": null,
35561 "id": 2062,
35562 "name": "PairCreated",
35563 "nodeType": "EventDefinition",
35564 "parameters": {
35565 "id": 2061,
35566 "nodeType": "ParameterList",
35567 "parameters": [
35568 {
35569 "constant": false,
35570 "id": 2054,
35571 "indexed": true,
35572 "name": "token0",
35573 "nodeType": "VariableDeclaration",
35574 "scope": 2062,
35575 "src": "78:22:6",
35576 "stateVariable": false,
35577 "storageLocation": "default",
35578 "typeDescriptions": {
35579 "typeIdentifier": "t_address",
35580 "typeString": "address"
35581 },
35582 "typeName": {
35583 "id": 2053,
35584 "name": "address",
35585 "nodeType": "ElementaryTypeName",
35586 "src": "78:7:6",
35587 "stateMutability": "nonpayable",
35588 "typeDescriptions": {
35589 "typeIdentifier": "t_address",
35590 "typeString": "address"
35591 }
35592 },
35593 "value": null,
35594 "visibility": "internal"
35595 },
35596 {
35597 "constant": false,
35598 "id": 2056,
35599 "indexed": true,
35600 "name": "token1",
35601 "nodeType": "VariableDeclaration",
35602 "scope": 2062,
35603 "src": "102:22:6",
35604 "stateVariable": false,
35605 "storageLocation": "default",
35606 "typeDescriptions": {
35607 "typeIdentifier": "t_address",
35608 "typeString": "address"
35609 },
35610 "typeName": {
35611 "id": 2055,
35612 "name": "address",
35613 "nodeType": "ElementaryTypeName",
35614 "src": "102:7:6",
35615 "stateMutability": "nonpayable",
35616 "typeDescriptions": {
35617 "typeIdentifier": "t_address",
35618 "typeString": "address"
35619 }
35620 },
35621 "value": null,
35622 "visibility": "internal"
35623 },
35624 {
35625 "constant": false,
35626 "id": 2058,
35627 "indexed": false,
35628 "name": "pair",
35629 "nodeType": "VariableDeclaration",
35630 "scope": 2062,
35631 "src": "126:12:6",
35632 "stateVariable": false,
35633 "storageLocation": "default",
35634 "typeDescriptions": {
35635 "typeIdentifier": "t_address",
35636 "typeString": "address"
35637 },
35638 "typeName": {
35639 "id": 2057,
35640 "name": "address",
35641 "nodeType": "ElementaryTypeName",
35642 "src": "126:7:6",
35643 "stateMutability": "nonpayable",
35644 "typeDescriptions": {
35645 "typeIdentifier": "t_address",
35646 "typeString": "address"
35647 }
35648 },
35649 "value": null,
35650 "visibility": "internal"
35651 },
35652 {
35653 "constant": false,
35654 "id": 2060,
35655 "indexed": false,
35656 "name": "",
35657 "nodeType": "VariableDeclaration",
35658 "scope": 2062,
35659 "src": "140:4:6",
35660 "stateVariable": false,
35661 "storageLocation": "default",
35662 "typeDescriptions": {
35663 "typeIdentifier": "t_uint256",
35664 "typeString": "uint256"
35665 },
35666 "typeName": {
35667 "id": 2059,
35668 "name": "uint",
35669 "nodeType": "ElementaryTypeName",
35670 "src": "140:4:6",
35671 "typeDescriptions": {
35672 "typeIdentifier": "t_uint256",
35673 "typeString": "uint256"
35674 }
35675 },
35676 "value": null,
35677 "visibility": "internal"
35678 }
35679 ],
35680 "src": "77:68:6"
35681 },
35682 "src": "60:86:6"
35683 },
35684 {
35685 "body": null,
35686 "documentation": null,
35687 "id": 2067,
35688 "implemented": false,
35689 "kind": "function",
35690 "modifiers": [],
35691 "name": "feeTo",
35692 "nodeType": "FunctionDefinition",
35693 "parameters": {
35694 "id": 2063,
35695 "nodeType": "ParameterList",
35696 "parameters": [],
35697 "src": "166:2:6"
35698 },
35699 "returnParameters": {
35700 "id": 2066,
35701 "nodeType": "ParameterList",
35702 "parameters": [
35703 {
35704 "constant": false,
35705 "id": 2065,
35706 "name": "",
35707 "nodeType": "VariableDeclaration",
35708 "scope": 2067,
35709 "src": "192:7:6",
35710 "stateVariable": false,
35711 "storageLocation": "default",
35712 "typeDescriptions": {
35713 "typeIdentifier": "t_address",
35714 "typeString": "address"
35715 },
35716 "typeName": {
35717 "id": 2064,
35718 "name": "address",
35719 "nodeType": "ElementaryTypeName",
35720 "src": "192:7:6",
35721 "stateMutability": "nonpayable",
35722 "typeDescriptions": {
35723 "typeIdentifier": "t_address",
35724 "typeString": "address"
35725 }
35726 },
35727 "value": null,
35728 "visibility": "internal"
35729 }
35730 ],
35731 "src": "191:9:6"
35732 },
35733 "scope": 2123,
35734 "src": "152:49:6",
35735 "stateMutability": "view",
35736 "superFunction": null,
35737 "visibility": "external"
35738 },
35739 {
35740 "body": null,
35741 "documentation": null,
35742 "id": 2072,
35743 "implemented": false,
35744 "kind": "function",
35745 "modifiers": [],
35746 "name": "feeToSetter",
35747 "nodeType": "FunctionDefinition",
35748 "parameters": {
35749 "id": 2068,
35750 "nodeType": "ParameterList",
35751 "parameters": [],
35752 "src": "226:2:6"
35753 },
35754 "returnParameters": {
35755 "id": 2071,
35756 "nodeType": "ParameterList",
35757 "parameters": [
35758 {
35759 "constant": false,
35760 "id": 2070,
35761 "name": "",
35762 "nodeType": "VariableDeclaration",
35763 "scope": 2072,
35764 "src": "252:7:6",
35765 "stateVariable": false,
35766 "storageLocation": "default",
35767 "typeDescriptions": {
35768 "typeIdentifier": "t_address",
35769 "typeString": "address"
35770 },
35771 "typeName": {
35772 "id": 2069,
35773 "name": "address",
35774 "nodeType": "ElementaryTypeName",
35775 "src": "252:7:6",
35776 "stateMutability": "nonpayable",
35777 "typeDescriptions": {
35778 "typeIdentifier": "t_address",
35779 "typeString": "address"
35780 }
35781 },
35782 "value": null,
35783 "visibility": "internal"
35784 }
35785 ],
35786 "src": "251:9:6"
35787 },
35788 "scope": 2123,
35789 "src": "206:55:6",
35790 "stateMutability": "view",
35791 "superFunction": null,
35792 "visibility": "external"
35793 },
35794 {
35795 "body": null,
35796 "documentation": null,
35797 "id": 2081,
35798 "implemented": false,
35799 "kind": "function",
35800 "modifiers": [],
35801 "name": "getPair",
35802 "nodeType": "FunctionDefinition",
35803 "parameters": {
35804 "id": 2077,
35805 "nodeType": "ParameterList",
35806 "parameters": [
35807 {
35808 "constant": false,
35809 "id": 2074,
35810 "name": "tokenA",
35811 "nodeType": "VariableDeclaration",
35812 "scope": 2081,
35813 "src": "284:14:6",
35814 "stateVariable": false,
35815 "storageLocation": "default",
35816 "typeDescriptions": {
35817 "typeIdentifier": "t_address",
35818 "typeString": "address"
35819 },
35820 "typeName": {
35821 "id": 2073,
35822 "name": "address",
35823 "nodeType": "ElementaryTypeName",
35824 "src": "284:7:6",
35825 "stateMutability": "nonpayable",
35826 "typeDescriptions": {
35827 "typeIdentifier": "t_address",
35828 "typeString": "address"
35829 }
35830 },
35831 "value": null,
35832 "visibility": "internal"
35833 },
35834 {
35835 "constant": false,
35836 "id": 2076,
35837 "name": "tokenB",
35838 "nodeType": "VariableDeclaration",
35839 "scope": 2081,
35840 "src": "300:14:6",
35841 "stateVariable": false,
35842 "storageLocation": "default",
35843 "typeDescriptions": {
35844 "typeIdentifier": "t_address",
35845 "typeString": "address"
35846 },
35847 "typeName": {
35848 "id": 2075,
35849 "name": "address",
35850 "nodeType": "ElementaryTypeName",
35851 "src": "300:7:6",
35852 "stateMutability": "nonpayable",
35853 "typeDescriptions": {
35854 "typeIdentifier": "t_address",
35855 "typeString": "address"
35856 }
35857 },
35858 "value": null,
35859 "visibility": "internal"
35860 }
35861 ],
35862 "src": "283:32:6"
35863 },
35864 "returnParameters": {
35865 "id": 2080,
35866 "nodeType": "ParameterList",
35867 "parameters": [
35868 {
35869 "constant": false,
35870 "id": 2079,
35871 "name": "pair",
35872 "nodeType": "VariableDeclaration",
35873 "scope": 2081,
35874 "src": "339:12:6",
35875 "stateVariable": false,
35876 "storageLocation": "default",
35877 "typeDescriptions": {
35878 "typeIdentifier": "t_address",
35879 "typeString": "address"
35880 },
35881 "typeName": {
35882 "id": 2078,
35883 "name": "address",
35884 "nodeType": "ElementaryTypeName",
35885 "src": "339:7:6",
35886 "stateMutability": "nonpayable",
35887 "typeDescriptions": {
35888 "typeIdentifier": "t_address",
35889 "typeString": "address"
35890 }
35891 },
35892 "value": null,
35893 "visibility": "internal"
35894 }
35895 ],
35896 "src": "338:14:6"
35897 },
35898 "scope": 2123,
35899 "src": "267:86:6",
35900 "stateMutability": "view",
35901 "superFunction": null,
35902 "visibility": "external"
35903 },
35904 {
35905 "body": null,
35906 "documentation": null,
35907 "id": 2088,
35908 "implemented": false,
35909 "kind": "function",
35910 "modifiers": [],
35911 "name": "allPairs",
35912 "nodeType": "FunctionDefinition",
35913 "parameters": {
35914 "id": 2084,
35915 "nodeType": "ParameterList",
35916 "parameters": [
35917 {
35918 "constant": false,
35919 "id": 2083,
35920 "name": "",
35921 "nodeType": "VariableDeclaration",
35922 "scope": 2088,
35923 "src": "376:4:6",
35924 "stateVariable": false,
35925 "storageLocation": "default",
35926 "typeDescriptions": {
35927 "typeIdentifier": "t_uint256",
35928 "typeString": "uint256"
35929 },
35930 "typeName": {
35931 "id": 2082,
35932 "name": "uint",
35933 "nodeType": "ElementaryTypeName",
35934 "src": "376:4:6",
35935 "typeDescriptions": {
35936 "typeIdentifier": "t_uint256",
35937 "typeString": "uint256"
35938 }
35939 },
35940 "value": null,
35941 "visibility": "internal"
35942 }
35943 ],
35944 "src": "375:6:6"
35945 },
35946 "returnParameters": {
35947 "id": 2087,
35948 "nodeType": "ParameterList",
35949 "parameters": [
35950 {
35951 "constant": false,
35952 "id": 2086,
35953 "name": "pair",
35954 "nodeType": "VariableDeclaration",
35955 "scope": 2088,
35956 "src": "405:12:6",
35957 "stateVariable": false,
35958 "storageLocation": "default",
35959 "typeDescriptions": {
35960 "typeIdentifier": "t_address",
35961 "typeString": "address"
35962 },
35963 "typeName": {
35964 "id": 2085,
35965 "name": "address",
35966 "nodeType": "ElementaryTypeName",
35967 "src": "405:7:6",
35968 "stateMutability": "nonpayable",
35969 "typeDescriptions": {
35970 "typeIdentifier": "t_address",
35971 "typeString": "address"
35972 }
35973 },
35974 "value": null,
35975 "visibility": "internal"
35976 }
35977 ],
35978 "src": "404:14:6"
35979 },
35980 "scope": 2123,
35981 "src": "358:61:6",
35982 "stateMutability": "view",
35983 "superFunction": null,
35984 "visibility": "external"
35985 },
35986 {
35987 "body": null,
35988 "documentation": null,
35989 "id": 2093,
35990 "implemented": false,
35991 "kind": "function",
35992 "modifiers": [],
35993 "name": "allPairsLength",
35994 "nodeType": "FunctionDefinition",
35995 "parameters": {
35996 "id": 2089,
35997 "nodeType": "ParameterList",
35998 "parameters": [],
35999 "src": "447:2:6"
36000 },
36001 "returnParameters": {
36002 "id": 2092,
36003 "nodeType": "ParameterList",
36004 "parameters": [
36005 {
36006 "constant": false,
36007 "id": 2091,
36008 "name": "",
36009 "nodeType": "VariableDeclaration",
36010 "scope": 2093,
36011 "src": "473:4:6",
36012 "stateVariable": false,
36013 "storageLocation": "default",
36014 "typeDescriptions": {
36015 "typeIdentifier": "t_uint256",
36016 "typeString": "uint256"
36017 },
36018 "typeName": {
36019 "id": 2090,
36020 "name": "uint",
36021 "nodeType": "ElementaryTypeName",
36022 "src": "473:4:6",
36023 "typeDescriptions": {
36024 "typeIdentifier": "t_uint256",
36025 "typeString": "uint256"
36026 }
36027 },
36028 "value": null,
36029 "visibility": "internal"
36030 }
36031 ],
36032 "src": "472:6:6"
36033 },
36034 "scope": 2123,
36035 "src": "424:55:6",
36036 "stateMutability": "view",
36037 "superFunction": null,
36038 "visibility": "external"
36039 },
36040 {
36041 "body": null,
36042 "documentation": null,
36043 "id": 2112,
36044 "implemented": false,
36045 "kind": "function",
36046 "modifiers": [],
36047 "name": "createPair",
36048 "nodeType": "FunctionDefinition",
36049 "parameters": {
36050 "id": 2108,
36051 "nodeType": "ParameterList",
36052 "parameters": [
36053 {
36054 "constant": false,
36055 "id": 2095,
36056 "name": "tokenA",
36057 "nodeType": "VariableDeclaration",
36058 "scope": 2112,
36059 "src": "505:14:6",
36060 "stateVariable": false,
36061 "storageLocation": "default",
36062 "typeDescriptions": {
36063 "typeIdentifier": "t_address",
36064 "typeString": "address"
36065 },
36066 "typeName": {
36067 "id": 2094,
36068 "name": "address",
36069 "nodeType": "ElementaryTypeName",
36070 "src": "505:7:6",
36071 "stateMutability": "nonpayable",
36072 "typeDescriptions": {
36073 "typeIdentifier": "t_address",
36074 "typeString": "address"
36075 }
36076 },
36077 "value": null,
36078 "visibility": "internal"
36079 },
36080 {
36081 "constant": false,
36082 "id": 2097,
36083 "name": "tokenB",
36084 "nodeType": "VariableDeclaration",
36085 "scope": 2112,
36086 "src": "521:14:6",
36087 "stateVariable": false,
36088 "storageLocation": "default",
36089 "typeDescriptions": {
36090 "typeIdentifier": "t_address",
36091 "typeString": "address"
36092 },
36093 "typeName": {
36094 "id": 2096,
36095 "name": "address",
36096 "nodeType": "ElementaryTypeName",
36097 "src": "521:7:6",
36098 "stateMutability": "nonpayable",
36099 "typeDescriptions": {
36100 "typeIdentifier": "t_address",
36101 "typeString": "address"
36102 }
36103 },
36104 "value": null,
36105 "visibility": "internal"
36106 },
36107 {
36108 "constant": false,
36109 "id": 2099,
36110 "name": "baseToken",
36111 "nodeType": "VariableDeclaration",
36112 "scope": 2112,
36113 "src": "537:17:6",
36114 "stateVariable": false,
36115 "storageLocation": "default",
36116 "typeDescriptions": {
36117 "typeIdentifier": "t_address",
36118 "typeString": "address"
36119 },
36120 "typeName": {
36121 "id": 2098,
36122 "name": "address",
36123 "nodeType": "ElementaryTypeName",
36124 "src": "537:7:6",
36125 "stateMutability": "nonpayable",
36126 "typeDescriptions": {
36127 "typeIdentifier": "t_address",
36128 "typeString": "address"
36129 }
36130 },
36131 "value": null,
36132 "visibility": "internal"
36133 },
36134 {
36135 "constant": false,
36136 "id": 2101,
36137 "name": "poolOwner",
36138 "nodeType": "VariableDeclaration",
36139 "scope": 2112,
36140 "src": "556:17:6",
36141 "stateVariable": false,
36142 "storageLocation": "default",
36143 "typeDescriptions": {
36144 "typeIdentifier": "t_address",
36145 "typeString": "address"
36146 },
36147 "typeName": {
36148 "id": 2100,
36149 "name": "address",
36150 "nodeType": "ElementaryTypeName",
36151 "src": "556:7:6",
36152 "stateMutability": "nonpayable",
36153 "typeDescriptions": {
36154 "typeIdentifier": "t_address",
36155 "typeString": "address"
36156 }
36157 },
36158 "value": null,
36159 "visibility": "internal"
36160 },
36161 {
36162 "constant": false,
36163 "id": 2103,
36164 "name": "m",
36165 "nodeType": "VariableDeclaration",
36166 "scope": 2112,
36167 "src": "575:6:6",
36168 "stateVariable": false,
36169 "storageLocation": "default",
36170 "typeDescriptions": {
36171 "typeIdentifier": "t_uint256",
36172 "typeString": "uint256"
36173 },
36174 "typeName": {
36175 "id": 2102,
36176 "name": "uint",
36177 "nodeType": "ElementaryTypeName",
36178 "src": "575:4:6",
36179 "typeDescriptions": {
36180 "typeIdentifier": "t_uint256",
36181 "typeString": "uint256"
36182 }
36183 },
36184 "value": null,
36185 "visibility": "internal"
36186 },
36187 {
36188 "constant": false,
36189 "id": 2105,
36190 "name": "n",
36191 "nodeType": "VariableDeclaration",
36192 "scope": 2112,
36193 "src": "583:6:6",
36194 "stateVariable": false,
36195 "storageLocation": "default",
36196 "typeDescriptions": {
36197 "typeIdentifier": "t_uint256",
36198 "typeString": "uint256"
36199 },
36200 "typeName": {
36201 "id": 2104,
36202 "name": "uint",
36203 "nodeType": "ElementaryTypeName",
36204 "src": "583:4:6",
36205 "typeDescriptions": {
36206 "typeIdentifier": "t_uint256",
36207 "typeString": "uint256"
36208 }
36209 },
36210 "value": null,
36211 "visibility": "internal"
36212 },
36213 {
36214 "constant": false,
36215 "id": 2107,
36216 "name": "fee",
36217 "nodeType": "VariableDeclaration",
36218 "scope": 2112,
36219 "src": "591:8:6",
36220 "stateVariable": false,
36221 "storageLocation": "default",
36222 "typeDescriptions": {
36223 "typeIdentifier": "t_uint256",
36224 "typeString": "uint256"
36225 },
36226 "typeName": {
36227 "id": 2106,
36228 "name": "uint",
36229 "nodeType": "ElementaryTypeName",
36230 "src": "591:4:6",
36231 "typeDescriptions": {
36232 "typeIdentifier": "t_uint256",
36233 "typeString": "uint256"
36234 }
36235 },
36236 "value": null,
36237 "visibility": "internal"
36238 }
36239 ],
36240 "src": "504:96:6"
36241 },
36242 "returnParameters": {
36243 "id": 2111,
36244 "nodeType": "ParameterList",
36245 "parameters": [
36246 {
36247 "constant": false,
36248 "id": 2110,
36249 "name": "pair",
36250 "nodeType": "VariableDeclaration",
36251 "scope": 2112,
36252 "src": "619:12:6",
36253 "stateVariable": false,
36254 "storageLocation": "default",
36255 "typeDescriptions": {
36256 "typeIdentifier": "t_address",
36257 "typeString": "address"
36258 },
36259 "typeName": {
36260 "id": 2109,
36261 "name": "address",
36262 "nodeType": "ElementaryTypeName",
36263 "src": "619:7:6",
36264 "stateMutability": "nonpayable",
36265 "typeDescriptions": {
36266 "typeIdentifier": "t_address",
36267 "typeString": "address"
36268 }
36269 },
36270 "value": null,
36271 "visibility": "internal"
36272 }
36273 ],
36274 "src": "618:14:6"
36275 },
36276 "scope": 2123,
36277 "src": "485:148:6",
36278 "stateMutability": "nonpayable",
36279 "superFunction": null,
36280 "visibility": "external"
36281 },
36282 {
36283 "body": null,
36284 "documentation": null,
36285 "id": 2117,
36286 "implemented": false,
36287 "kind": "function",
36288 "modifiers": [],
36289 "name": "setFeeTo",
36290 "nodeType": "FunctionDefinition",
36291 "parameters": {
36292 "id": 2115,
36293 "nodeType": "ParameterList",
36294 "parameters": [
36295 {
36296 "constant": false,
36297 "id": 2114,
36298 "name": "",
36299 "nodeType": "VariableDeclaration",
36300 "scope": 2117,
36301 "src": "657:7:6",
36302 "stateVariable": false,
36303 "storageLocation": "default",
36304 "typeDescriptions": {
36305 "typeIdentifier": "t_address",
36306 "typeString": "address"
36307 },
36308 "typeName": {
36309 "id": 2113,
36310 "name": "address",
36311 "nodeType": "ElementaryTypeName",
36312 "src": "657:7:6",
36313 "stateMutability": "nonpayable",
36314 "typeDescriptions": {
36315 "typeIdentifier": "t_address",
36316 "typeString": "address"
36317 }
36318 },
36319 "value": null,
36320 "visibility": "internal"
36321 }
36322 ],
36323 "src": "656:9:6"
36324 },
36325 "returnParameters": {
36326 "id": 2116,
36327 "nodeType": "ParameterList",
36328 "parameters": [],
36329 "src": "674:0:6"
36330 },
36331 "scope": 2123,
36332 "src": "639:36:6",
36333 "stateMutability": "nonpayable",
36334 "superFunction": null,
36335 "visibility": "external"
36336 },
36337 {
36338 "body": null,
36339 "documentation": null,
36340 "id": 2122,
36341 "implemented": false,
36342 "kind": "function",
36343 "modifiers": [],
36344 "name": "setFeeToSetter",
36345 "nodeType": "FunctionDefinition",
36346 "parameters": {
36347 "id": 2120,
36348 "nodeType": "ParameterList",
36349 "parameters": [
36350 {
36351 "constant": false,
36352 "id": 2119,
36353 "name": "",
36354 "nodeType": "VariableDeclaration",
36355 "scope": 2122,
36356 "src": "704:7:6",
36357 "stateVariable": false,
36358 "storageLocation": "default",
36359 "typeDescriptions": {
36360 "typeIdentifier": "t_address",
36361 "typeString": "address"
36362 },
36363 "typeName": {
36364 "id": 2118,
36365 "name": "address",
36366 "nodeType": "ElementaryTypeName",
36367 "src": "704:7:6",
36368 "stateMutability": "nonpayable",
36369 "typeDescriptions": {
36370 "typeIdentifier": "t_address",
36371 "typeString": "address"
36372 }
36373 },
36374 "value": null,
36375 "visibility": "internal"
36376 }
36377 ],
36378 "src": "703:9:6"
36379 },
36380 "returnParameters": {
36381 "id": 2121,
36382 "nodeType": "ParameterList",
36383 "parameters": [],
36384 "src": "721:0:6"
36385 },
36386 "scope": 2123,
36387 "src": "680:42:6",
36388 "stateMutability": "nonpayable",
36389 "superFunction": null,
36390 "visibility": "external"
36391 }
36392 ],
36393 "scope": 2124,
36394 "src": "26:698:6"
36395 }
36396 ],
36397 "src": "0:725:6"
36398 }
36399 },
36400 "contracts/interfaces/IUniswapV2Pair.sol": {
36401 "id": 7,
36402 "AST": {
36403 "absolutePath": "contracts/interfaces/IUniswapV2Pair.sol",
36404 "exportedSymbols": {
36405 "IUniswapV2Pair": [
36406 2391
36407 ]
36408 },
36409 "id": 2392,
36410 "nodeType": "SourceUnit",
36411 "nodes": [
36412 {
36413 "id": 2125,
36414 "literals": [
36415 "solidity",
36416 ">=",
36417 "0.5",
36418 ".0"
36419 ],
36420 "nodeType": "PragmaDirective",
36421 "src": "0:24:7"
36422 },
36423 {
36424 "baseContracts": [],
36425 "contractDependencies": [],
36426 "contractKind": "interface",
36427 "documentation": null,
36428 "fullyImplemented": false,
36429 "id": 2391,
36430 "linearizedBaseContracts": [
36431 2391
36432 ],
36433 "name": "IUniswapV2Pair",
36434 "nodeType": "ContractDefinition",
36435 "nodes": [
36436 {
36437 "anonymous": false,
36438 "documentation": null,
36439 "id": 2133,
36440 "name": "Approval",
36441 "nodeType": "EventDefinition",
36442 "parameters": {
36443 "id": 2132,
36444 "nodeType": "ParameterList",
36445 "parameters": [
36446 {
36447 "constant": false,
36448 "id": 2127,
36449 "indexed": true,
36450 "name": "owner",
36451 "nodeType": "VariableDeclaration",
36452 "scope": 2133,
36453 "src": "72:21:7",
36454 "stateVariable": false,
36455 "storageLocation": "default",
36456 "typeDescriptions": {
36457 "typeIdentifier": "t_address",
36458 "typeString": "address"
36459 },
36460 "typeName": {
36461 "id": 2126,
36462 "name": "address",
36463 "nodeType": "ElementaryTypeName",
36464 "src": "72:7:7",
36465 "stateMutability": "nonpayable",
36466 "typeDescriptions": {
36467 "typeIdentifier": "t_address",
36468 "typeString": "address"
36469 }
36470 },
36471 "value": null,
36472 "visibility": "internal"
36473 },
36474 {
36475 "constant": false,
36476 "id": 2129,
36477 "indexed": true,
36478 "name": "spender",
36479 "nodeType": "VariableDeclaration",
36480 "scope": 2133,
36481 "src": "95:23:7",
36482 "stateVariable": false,
36483 "storageLocation": "default",
36484 "typeDescriptions": {
36485 "typeIdentifier": "t_address",
36486 "typeString": "address"
36487 },
36488 "typeName": {
36489 "id": 2128,
36490 "name": "address",
36491 "nodeType": "ElementaryTypeName",
36492 "src": "95:7:7",
36493 "stateMutability": "nonpayable",
36494 "typeDescriptions": {
36495 "typeIdentifier": "t_address",
36496 "typeString": "address"
36497 }
36498 },
36499 "value": null,
36500 "visibility": "internal"
36501 },
36502 {
36503 "constant": false,
36504 "id": 2131,
36505 "indexed": false,
36506 "name": "value",
36507 "nodeType": "VariableDeclaration",
36508 "scope": 2133,
36509 "src": "120:10:7",
36510 "stateVariable": false,
36511 "storageLocation": "default",
36512 "typeDescriptions": {
36513 "typeIdentifier": "t_uint256",
36514 "typeString": "uint256"
36515 },
36516 "typeName": {
36517 "id": 2130,
36518 "name": "uint",
36519 "nodeType": "ElementaryTypeName",
36520 "src": "120:4:7",
36521 "typeDescriptions": {
36522 "typeIdentifier": "t_uint256",
36523 "typeString": "uint256"
36524 }
36525 },
36526 "value": null,
36527 "visibility": "internal"
36528 }
36529 ],
36530 "src": "71:60:7"
36531 },
36532 "src": "57:75:7"
36533 },
36534 {
36535 "anonymous": false,
36536 "documentation": null,
36537 "id": 2141,
36538 "name": "Transfer",
36539 "nodeType": "EventDefinition",
36540 "parameters": {
36541 "id": 2140,
36542 "nodeType": "ParameterList",
36543 "parameters": [
36544 {
36545 "constant": false,
36546 "id": 2135,
36547 "indexed": true,
36548 "name": "from",
36549 "nodeType": "VariableDeclaration",
36550 "scope": 2141,
36551 "src": "152:20:7",
36552 "stateVariable": false,
36553 "storageLocation": "default",
36554 "typeDescriptions": {
36555 "typeIdentifier": "t_address",
36556 "typeString": "address"
36557 },
36558 "typeName": {
36559 "id": 2134,
36560 "name": "address",
36561 "nodeType": "ElementaryTypeName",
36562 "src": "152:7:7",
36563 "stateMutability": "nonpayable",
36564 "typeDescriptions": {
36565 "typeIdentifier": "t_address",
36566 "typeString": "address"
36567 }
36568 },
36569 "value": null,
36570 "visibility": "internal"
36571 },
36572 {
36573 "constant": false,
36574 "id": 2137,
36575 "indexed": true,
36576 "name": "to",
36577 "nodeType": "VariableDeclaration",
36578 "scope": 2141,
36579 "src": "174:18:7",
36580 "stateVariable": false,
36581 "storageLocation": "default",
36582 "typeDescriptions": {
36583 "typeIdentifier": "t_address",
36584 "typeString": "address"
36585 },
36586 "typeName": {
36587 "id": 2136,
36588 "name": "address",
36589 "nodeType": "ElementaryTypeName",
36590 "src": "174:7:7",
36591 "stateMutability": "nonpayable",
36592 "typeDescriptions": {
36593 "typeIdentifier": "t_address",
36594 "typeString": "address"
36595 }
36596 },
36597 "value": null,
36598 "visibility": "internal"
36599 },
36600 {
36601 "constant": false,
36602 "id": 2139,
36603 "indexed": false,
36604 "name": "value",
36605 "nodeType": "VariableDeclaration",
36606 "scope": 2141,
36607 "src": "194:10:7",
36608 "stateVariable": false,
36609 "storageLocation": "default",
36610 "typeDescriptions": {
36611 "typeIdentifier": "t_uint256",
36612 "typeString": "uint256"
36613 },
36614 "typeName": {
36615 "id": 2138,
36616 "name": "uint",
36617 "nodeType": "ElementaryTypeName",
36618 "src": "194:4:7",
36619 "typeDescriptions": {
36620 "typeIdentifier": "t_uint256",
36621 "typeString": "uint256"
36622 }
36623 },
36624 "value": null,
36625 "visibility": "internal"
36626 }
36627 ],
36628 "src": "151:54:7"
36629 },
36630 "src": "137:69:7"
36631 },
36632 {
36633 "body": null,
36634 "documentation": null,
36635 "id": 2146,
36636 "implemented": false,
36637 "kind": "function",
36638 "modifiers": [],
36639 "name": "name",
36640 "nodeType": "FunctionDefinition",
36641 "parameters": {
36642 "id": 2142,
36643 "nodeType": "ParameterList",
36644 "parameters": [],
36645 "src": "225:2:7"
36646 },
36647 "returnParameters": {
36648 "id": 2145,
36649 "nodeType": "ParameterList",
36650 "parameters": [
36651 {
36652 "constant": false,
36653 "id": 2144,
36654 "name": "",
36655 "nodeType": "VariableDeclaration",
36656 "scope": 2146,
36657 "src": "251:13:7",
36658 "stateVariable": false,
36659 "storageLocation": "memory",
36660 "typeDescriptions": {
36661 "typeIdentifier": "t_string_memory_ptr",
36662 "typeString": "string"
36663 },
36664 "typeName": {
36665 "id": 2143,
36666 "name": "string",
36667 "nodeType": "ElementaryTypeName",
36668 "src": "251:6:7",
36669 "typeDescriptions": {
36670 "typeIdentifier": "t_string_storage_ptr",
36671 "typeString": "string"
36672 }
36673 },
36674 "value": null,
36675 "visibility": "internal"
36676 }
36677 ],
36678 "src": "250:15:7"
36679 },
36680 "scope": 2391,
36681 "src": "212:54:7",
36682 "stateMutability": "pure",
36683 "superFunction": null,
36684 "visibility": "external"
36685 },
36686 {
36687 "body": null,
36688 "documentation": null,
36689 "id": 2151,
36690 "implemented": false,
36691 "kind": "function",
36692 "modifiers": [],
36693 "name": "symbol",
36694 "nodeType": "FunctionDefinition",
36695 "parameters": {
36696 "id": 2147,
36697 "nodeType": "ParameterList",
36698 "parameters": [],
36699 "src": "286:2:7"
36700 },
36701 "returnParameters": {
36702 "id": 2150,
36703 "nodeType": "ParameterList",
36704 "parameters": [
36705 {
36706 "constant": false,
36707 "id": 2149,
36708 "name": "",
36709 "nodeType": "VariableDeclaration",
36710 "scope": 2151,
36711 "src": "312:13:7",
36712 "stateVariable": false,
36713 "storageLocation": "memory",
36714 "typeDescriptions": {
36715 "typeIdentifier": "t_string_memory_ptr",
36716 "typeString": "string"
36717 },
36718 "typeName": {
36719 "id": 2148,
36720 "name": "string",
36721 "nodeType": "ElementaryTypeName",
36722 "src": "312:6:7",
36723 "typeDescriptions": {
36724 "typeIdentifier": "t_string_storage_ptr",
36725 "typeString": "string"
36726 }
36727 },
36728 "value": null,
36729 "visibility": "internal"
36730 }
36731 ],
36732 "src": "311:15:7"
36733 },
36734 "scope": 2391,
36735 "src": "271:56:7",
36736 "stateMutability": "pure",
36737 "superFunction": null,
36738 "visibility": "external"
36739 },
36740 {
36741 "body": null,
36742 "documentation": null,
36743 "id": 2156,
36744 "implemented": false,
36745 "kind": "function",
36746 "modifiers": [],
36747 "name": "decimals",
36748 "nodeType": "FunctionDefinition",
36749 "parameters": {
36750 "id": 2152,
36751 "nodeType": "ParameterList",
36752 "parameters": [],
36753 "src": "349:2:7"
36754 },
36755 "returnParameters": {
36756 "id": 2155,
36757 "nodeType": "ParameterList",
36758 "parameters": [
36759 {
36760 "constant": false,
36761 "id": 2154,
36762 "name": "",
36763 "nodeType": "VariableDeclaration",
36764 "scope": 2156,
36765 "src": "375:5:7",
36766 "stateVariable": false,
36767 "storageLocation": "default",
36768 "typeDescriptions": {
36769 "typeIdentifier": "t_uint8",
36770 "typeString": "uint8"
36771 },
36772 "typeName": {
36773 "id": 2153,
36774 "name": "uint8",
36775 "nodeType": "ElementaryTypeName",
36776 "src": "375:5:7",
36777 "typeDescriptions": {
36778 "typeIdentifier": "t_uint8",
36779 "typeString": "uint8"
36780 }
36781 },
36782 "value": null,
36783 "visibility": "internal"
36784 }
36785 ],
36786 "src": "374:7:7"
36787 },
36788 "scope": 2391,
36789 "src": "332:50:7",
36790 "stateMutability": "pure",
36791 "superFunction": null,
36792 "visibility": "external"
36793 },
36794 {
36795 "body": null,
36796 "documentation": null,
36797 "id": 2161,
36798 "implemented": false,
36799 "kind": "function",
36800 "modifiers": [],
36801 "name": "totalSupply",
36802 "nodeType": "FunctionDefinition",
36803 "parameters": {
36804 "id": 2157,
36805 "nodeType": "ParameterList",
36806 "parameters": [],
36807 "src": "407:2:7"
36808 },
36809 "returnParameters": {
36810 "id": 2160,
36811 "nodeType": "ParameterList",
36812 "parameters": [
36813 {
36814 "constant": false,
36815 "id": 2159,
36816 "name": "",
36817 "nodeType": "VariableDeclaration",
36818 "scope": 2161,
36819 "src": "433:4:7",
36820 "stateVariable": false,
36821 "storageLocation": "default",
36822 "typeDescriptions": {
36823 "typeIdentifier": "t_uint256",
36824 "typeString": "uint256"
36825 },
36826 "typeName": {
36827 "id": 2158,
36828 "name": "uint",
36829 "nodeType": "ElementaryTypeName",
36830 "src": "433:4:7",
36831 "typeDescriptions": {
36832 "typeIdentifier": "t_uint256",
36833 "typeString": "uint256"
36834 }
36835 },
36836 "value": null,
36837 "visibility": "internal"
36838 }
36839 ],
36840 "src": "432:6:7"
36841 },
36842 "scope": 2391,
36843 "src": "387:52:7",
36844 "stateMutability": "view",
36845 "superFunction": null,
36846 "visibility": "external"
36847 },
36848 {
36849 "body": null,
36850 "documentation": null,
36851 "id": 2168,
36852 "implemented": false,
36853 "kind": "function",
36854 "modifiers": [],
36855 "name": "balanceOf",
36856 "nodeType": "FunctionDefinition",
36857 "parameters": {
36858 "id": 2164,
36859 "nodeType": "ParameterList",
36860 "parameters": [
36861 {
36862 "constant": false,
36863 "id": 2163,
36864 "name": "owner",
36865 "nodeType": "VariableDeclaration",
36866 "scope": 2168,
36867 "src": "463:13:7",
36868 "stateVariable": false,
36869 "storageLocation": "default",
36870 "typeDescriptions": {
36871 "typeIdentifier": "t_address",
36872 "typeString": "address"
36873 },
36874 "typeName": {
36875 "id": 2162,
36876 "name": "address",
36877 "nodeType": "ElementaryTypeName",
36878 "src": "463:7:7",
36879 "stateMutability": "nonpayable",
36880 "typeDescriptions": {
36881 "typeIdentifier": "t_address",
36882 "typeString": "address"
36883 }
36884 },
36885 "value": null,
36886 "visibility": "internal"
36887 }
36888 ],
36889 "src": "462:15:7"
36890 },
36891 "returnParameters": {
36892 "id": 2167,
36893 "nodeType": "ParameterList",
36894 "parameters": [
36895 {
36896 "constant": false,
36897 "id": 2166,
36898 "name": "",
36899 "nodeType": "VariableDeclaration",
36900 "scope": 2168,
36901 "src": "501:4:7",
36902 "stateVariable": false,
36903 "storageLocation": "default",
36904 "typeDescriptions": {
36905 "typeIdentifier": "t_uint256",
36906 "typeString": "uint256"
36907 },
36908 "typeName": {
36909 "id": 2165,
36910 "name": "uint",
36911 "nodeType": "ElementaryTypeName",
36912 "src": "501:4:7",
36913 "typeDescriptions": {
36914 "typeIdentifier": "t_uint256",
36915 "typeString": "uint256"
36916 }
36917 },
36918 "value": null,
36919 "visibility": "internal"
36920 }
36921 ],
36922 "src": "500:6:7"
36923 },
36924 "scope": 2391,
36925 "src": "444:63:7",
36926 "stateMutability": "view",
36927 "superFunction": null,
36928 "visibility": "external"
36929 },
36930 {
36931 "body": null,
36932 "documentation": null,
36933 "id": 2177,
36934 "implemented": false,
36935 "kind": "function",
36936 "modifiers": [],
36937 "name": "allowance",
36938 "nodeType": "FunctionDefinition",
36939 "parameters": {
36940 "id": 2173,
36941 "nodeType": "ParameterList",
36942 "parameters": [
36943 {
36944 "constant": false,
36945 "id": 2170,
36946 "name": "owner",
36947 "nodeType": "VariableDeclaration",
36948 "scope": 2177,
36949 "src": "531:13:7",
36950 "stateVariable": false,
36951 "storageLocation": "default",
36952 "typeDescriptions": {
36953 "typeIdentifier": "t_address",
36954 "typeString": "address"
36955 },
36956 "typeName": {
36957 "id": 2169,
36958 "name": "address",
36959 "nodeType": "ElementaryTypeName",
36960 "src": "531:7:7",
36961 "stateMutability": "nonpayable",
36962 "typeDescriptions": {
36963 "typeIdentifier": "t_address",
36964 "typeString": "address"
36965 }
36966 },
36967 "value": null,
36968 "visibility": "internal"
36969 },
36970 {
36971 "constant": false,
36972 "id": 2172,
36973 "name": "spender",
36974 "nodeType": "VariableDeclaration",
36975 "scope": 2177,
36976 "src": "546:15:7",
36977 "stateVariable": false,
36978 "storageLocation": "default",
36979 "typeDescriptions": {
36980 "typeIdentifier": "t_address",
36981 "typeString": "address"
36982 },
36983 "typeName": {
36984 "id": 2171,
36985 "name": "address",
36986 "nodeType": "ElementaryTypeName",
36987 "src": "546:7:7",
36988 "stateMutability": "nonpayable",
36989 "typeDescriptions": {
36990 "typeIdentifier": "t_address",
36991 "typeString": "address"
36992 }
36993 },
36994 "value": null,
36995 "visibility": "internal"
36996 }
36997 ],
36998 "src": "530:32:7"
36999 },
37000 "returnParameters": {
37001 "id": 2176,
37002 "nodeType": "ParameterList",
37003 "parameters": [
37004 {
37005 "constant": false,
37006 "id": 2175,
37007 "name": "",
37008 "nodeType": "VariableDeclaration",
37009 "scope": 2177,
37010 "src": "586:4:7",
37011 "stateVariable": false,
37012 "storageLocation": "default",
37013 "typeDescriptions": {
37014 "typeIdentifier": "t_uint256",
37015 "typeString": "uint256"
37016 },
37017 "typeName": {
37018 "id": 2174,
37019 "name": "uint",
37020 "nodeType": "ElementaryTypeName",
37021 "src": "586:4:7",
37022 "typeDescriptions": {
37023 "typeIdentifier": "t_uint256",
37024 "typeString": "uint256"
37025 }
37026 },
37027 "value": null,
37028 "visibility": "internal"
37029 }
37030 ],
37031 "src": "585:6:7"
37032 },
37033 "scope": 2391,
37034 "src": "512:80:7",
37035 "stateMutability": "view",
37036 "superFunction": null,
37037 "visibility": "external"
37038 },
37039 {
37040 "body": null,
37041 "documentation": null,
37042 "id": 2186,
37043 "implemented": false,
37044 "kind": "function",
37045 "modifiers": [],
37046 "name": "approve",
37047 "nodeType": "FunctionDefinition",
37048 "parameters": {
37049 "id": 2182,
37050 "nodeType": "ParameterList",
37051 "parameters": [
37052 {
37053 "constant": false,
37054 "id": 2179,
37055 "name": "spender",
37056 "nodeType": "VariableDeclaration",
37057 "scope": 2186,
37058 "src": "615:15:7",
37059 "stateVariable": false,
37060 "storageLocation": "default",
37061 "typeDescriptions": {
37062 "typeIdentifier": "t_address",
37063 "typeString": "address"
37064 },
37065 "typeName": {
37066 "id": 2178,
37067 "name": "address",
37068 "nodeType": "ElementaryTypeName",
37069 "src": "615:7:7",
37070 "stateMutability": "nonpayable",
37071 "typeDescriptions": {
37072 "typeIdentifier": "t_address",
37073 "typeString": "address"
37074 }
37075 },
37076 "value": null,
37077 "visibility": "internal"
37078 },
37079 {
37080 "constant": false,
37081 "id": 2181,
37082 "name": "value",
37083 "nodeType": "VariableDeclaration",
37084 "scope": 2186,
37085 "src": "632:10:7",
37086 "stateVariable": false,
37087 "storageLocation": "default",
37088 "typeDescriptions": {
37089 "typeIdentifier": "t_uint256",
37090 "typeString": "uint256"
37091 },
37092 "typeName": {
37093 "id": 2180,
37094 "name": "uint",
37095 "nodeType": "ElementaryTypeName",
37096 "src": "632:4:7",
37097 "typeDescriptions": {
37098 "typeIdentifier": "t_uint256",
37099 "typeString": "uint256"
37100 }
37101 },
37102 "value": null,
37103 "visibility": "internal"
37104 }
37105 ],
37106 "src": "614:29:7"
37107 },
37108 "returnParameters": {
37109 "id": 2185,
37110 "nodeType": "ParameterList",
37111 "parameters": [
37112 {
37113 "constant": false,
37114 "id": 2184,
37115 "name": "",
37116 "nodeType": "VariableDeclaration",
37117 "scope": 2186,
37118 "src": "662:4:7",
37119 "stateVariable": false,
37120 "storageLocation": "default",
37121 "typeDescriptions": {
37122 "typeIdentifier": "t_bool",
37123 "typeString": "bool"
37124 },
37125 "typeName": {
37126 "id": 2183,
37127 "name": "bool",
37128 "nodeType": "ElementaryTypeName",
37129 "src": "662:4:7",
37130 "typeDescriptions": {
37131 "typeIdentifier": "t_bool",
37132 "typeString": "bool"
37133 }
37134 },
37135 "value": null,
37136 "visibility": "internal"
37137 }
37138 ],
37139 "src": "661:6:7"
37140 },
37141 "scope": 2391,
37142 "src": "598:70:7",
37143 "stateMutability": "nonpayable",
37144 "superFunction": null,
37145 "visibility": "external"
37146 },
37147 {
37148 "body": null,
37149 "documentation": null,
37150 "id": 2195,
37151 "implemented": false,
37152 "kind": "function",
37153 "modifiers": [],
37154 "name": "transfer",
37155 "nodeType": "FunctionDefinition",
37156 "parameters": {
37157 "id": 2191,
37158 "nodeType": "ParameterList",
37159 "parameters": [
37160 {
37161 "constant": false,
37162 "id": 2188,
37163 "name": "to",
37164 "nodeType": "VariableDeclaration",
37165 "scope": 2195,
37166 "src": "691:10:7",
37167 "stateVariable": false,
37168 "storageLocation": "default",
37169 "typeDescriptions": {
37170 "typeIdentifier": "t_address",
37171 "typeString": "address"
37172 },
37173 "typeName": {
37174 "id": 2187,
37175 "name": "address",
37176 "nodeType": "ElementaryTypeName",
37177 "src": "691:7:7",
37178 "stateMutability": "nonpayable",
37179 "typeDescriptions": {
37180 "typeIdentifier": "t_address",
37181 "typeString": "address"
37182 }
37183 },
37184 "value": null,
37185 "visibility": "internal"
37186 },
37187 {
37188 "constant": false,
37189 "id": 2190,
37190 "name": "value",
37191 "nodeType": "VariableDeclaration",
37192 "scope": 2195,
37193 "src": "703:10:7",
37194 "stateVariable": false,
37195 "storageLocation": "default",
37196 "typeDescriptions": {
37197 "typeIdentifier": "t_uint256",
37198 "typeString": "uint256"
37199 },
37200 "typeName": {
37201 "id": 2189,
37202 "name": "uint",
37203 "nodeType": "ElementaryTypeName",
37204 "src": "703:4:7",
37205 "typeDescriptions": {
37206 "typeIdentifier": "t_uint256",
37207 "typeString": "uint256"
37208 }
37209 },
37210 "value": null,
37211 "visibility": "internal"
37212 }
37213 ],
37214 "src": "690:24:7"
37215 },
37216 "returnParameters": {
37217 "id": 2194,
37218 "nodeType": "ParameterList",
37219 "parameters": [
37220 {
37221 "constant": false,
37222 "id": 2193,
37223 "name": "",
37224 "nodeType": "VariableDeclaration",
37225 "scope": 2195,
37226 "src": "733:4:7",
37227 "stateVariable": false,
37228 "storageLocation": "default",
37229 "typeDescriptions": {
37230 "typeIdentifier": "t_bool",
37231 "typeString": "bool"
37232 },
37233 "typeName": {
37234 "id": 2192,
37235 "name": "bool",
37236 "nodeType": "ElementaryTypeName",
37237 "src": "733:4:7",
37238 "typeDescriptions": {
37239 "typeIdentifier": "t_bool",
37240 "typeString": "bool"
37241 }
37242 },
37243 "value": null,
37244 "visibility": "internal"
37245 }
37246 ],
37247 "src": "732:6:7"
37248 },
37249 "scope": 2391,
37250 "src": "673:66:7",
37251 "stateMutability": "nonpayable",
37252 "superFunction": null,
37253 "visibility": "external"
37254 },
37255 {
37256 "body": null,
37257 "documentation": null,
37258 "id": 2206,
37259 "implemented": false,
37260 "kind": "function",
37261 "modifiers": [],
37262 "name": "transferFrom",
37263 "nodeType": "FunctionDefinition",
37264 "parameters": {
37265 "id": 2202,
37266 "nodeType": "ParameterList",
37267 "parameters": [
37268 {
37269 "constant": false,
37270 "id": 2197,
37271 "name": "from",
37272 "nodeType": "VariableDeclaration",
37273 "scope": 2206,
37274 "src": "766:12:7",
37275 "stateVariable": false,
37276 "storageLocation": "default",
37277 "typeDescriptions": {
37278 "typeIdentifier": "t_address",
37279 "typeString": "address"
37280 },
37281 "typeName": {
37282 "id": 2196,
37283 "name": "address",
37284 "nodeType": "ElementaryTypeName",
37285 "src": "766:7:7",
37286 "stateMutability": "nonpayable",
37287 "typeDescriptions": {
37288 "typeIdentifier": "t_address",
37289 "typeString": "address"
37290 }
37291 },
37292 "value": null,
37293 "visibility": "internal"
37294 },
37295 {
37296 "constant": false,
37297 "id": 2199,
37298 "name": "to",
37299 "nodeType": "VariableDeclaration",
37300 "scope": 2206,
37301 "src": "780:10:7",
37302 "stateVariable": false,
37303 "storageLocation": "default",
37304 "typeDescriptions": {
37305 "typeIdentifier": "t_address",
37306 "typeString": "address"
37307 },
37308 "typeName": {
37309 "id": 2198,
37310 "name": "address",
37311 "nodeType": "ElementaryTypeName",
37312 "src": "780:7:7",
37313 "stateMutability": "nonpayable",
37314 "typeDescriptions": {
37315 "typeIdentifier": "t_address",
37316 "typeString": "address"
37317 }
37318 },
37319 "value": null,
37320 "visibility": "internal"
37321 },
37322 {
37323 "constant": false,
37324 "id": 2201,
37325 "name": "value",
37326 "nodeType": "VariableDeclaration",
37327 "scope": 2206,
37328 "src": "792:10:7",
37329 "stateVariable": false,
37330 "storageLocation": "default",
37331 "typeDescriptions": {
37332 "typeIdentifier": "t_uint256",
37333 "typeString": "uint256"
37334 },
37335 "typeName": {
37336 "id": 2200,
37337 "name": "uint",
37338 "nodeType": "ElementaryTypeName",
37339 "src": "792:4:7",
37340 "typeDescriptions": {
37341 "typeIdentifier": "t_uint256",
37342 "typeString": "uint256"
37343 }
37344 },
37345 "value": null,
37346 "visibility": "internal"
37347 }
37348 ],
37349 "src": "765:38:7"
37350 },
37351 "returnParameters": {
37352 "id": 2205,
37353 "nodeType": "ParameterList",
37354 "parameters": [
37355 {
37356 "constant": false,
37357 "id": 2204,
37358 "name": "",
37359 "nodeType": "VariableDeclaration",
37360 "scope": 2206,
37361 "src": "822:4:7",
37362 "stateVariable": false,
37363 "storageLocation": "default",
37364 "typeDescriptions": {
37365 "typeIdentifier": "t_bool",
37366 "typeString": "bool"
37367 },
37368 "typeName": {
37369 "id": 2203,
37370 "name": "bool",
37371 "nodeType": "ElementaryTypeName",
37372 "src": "822:4:7",
37373 "typeDescriptions": {
37374 "typeIdentifier": "t_bool",
37375 "typeString": "bool"
37376 }
37377 },
37378 "value": null,
37379 "visibility": "internal"
37380 }
37381 ],
37382 "src": "821:6:7"
37383 },
37384 "scope": 2391,
37385 "src": "744:84:7",
37386 "stateMutability": "nonpayable",
37387 "superFunction": null,
37388 "visibility": "external"
37389 },
37390 {
37391 "body": null,
37392 "documentation": null,
37393 "id": 2211,
37394 "implemented": false,
37395 "kind": "function",
37396 "modifiers": [],
37397 "name": "DOMAIN_SEPARATOR",
37398 "nodeType": "FunctionDefinition",
37399 "parameters": {
37400 "id": 2207,
37401 "nodeType": "ParameterList",
37402 "parameters": [],
37403 "src": "859:2:7"
37404 },
37405 "returnParameters": {
37406 "id": 2210,
37407 "nodeType": "ParameterList",
37408 "parameters": [
37409 {
37410 "constant": false,
37411 "id": 2209,
37412 "name": "",
37413 "nodeType": "VariableDeclaration",
37414 "scope": 2211,
37415 "src": "885:7:7",
37416 "stateVariable": false,
37417 "storageLocation": "default",
37418 "typeDescriptions": {
37419 "typeIdentifier": "t_bytes32",
37420 "typeString": "bytes32"
37421 },
37422 "typeName": {
37423 "id": 2208,
37424 "name": "bytes32",
37425 "nodeType": "ElementaryTypeName",
37426 "src": "885:7:7",
37427 "typeDescriptions": {
37428 "typeIdentifier": "t_bytes32",
37429 "typeString": "bytes32"
37430 }
37431 },
37432 "value": null,
37433 "visibility": "internal"
37434 }
37435 ],
37436 "src": "884:9:7"
37437 },
37438 "scope": 2391,
37439 "src": "834:60:7",
37440 "stateMutability": "view",
37441 "superFunction": null,
37442 "visibility": "external"
37443 },
37444 {
37445 "body": null,
37446 "documentation": null,
37447 "id": 2216,
37448 "implemented": false,
37449 "kind": "function",
37450 "modifiers": [],
37451 "name": "PERMIT_TYPEHASH",
37452 "nodeType": "FunctionDefinition",
37453 "parameters": {
37454 "id": 2212,
37455 "nodeType": "ParameterList",
37456 "parameters": [],
37457 "src": "923:2:7"
37458 },
37459 "returnParameters": {
37460 "id": 2215,
37461 "nodeType": "ParameterList",
37462 "parameters": [
37463 {
37464 "constant": false,
37465 "id": 2214,
37466 "name": "",
37467 "nodeType": "VariableDeclaration",
37468 "scope": 2216,
37469 "src": "949:7:7",
37470 "stateVariable": false,
37471 "storageLocation": "default",
37472 "typeDescriptions": {
37473 "typeIdentifier": "t_bytes32",
37474 "typeString": "bytes32"
37475 },
37476 "typeName": {
37477 "id": 2213,
37478 "name": "bytes32",
37479 "nodeType": "ElementaryTypeName",
37480 "src": "949:7:7",
37481 "typeDescriptions": {
37482 "typeIdentifier": "t_bytes32",
37483 "typeString": "bytes32"
37484 }
37485 },
37486 "value": null,
37487 "visibility": "internal"
37488 }
37489 ],
37490 "src": "948:9:7"
37491 },
37492 "scope": 2391,
37493 "src": "899:59:7",
37494 "stateMutability": "pure",
37495 "superFunction": null,
37496 "visibility": "external"
37497 },
37498 {
37499 "body": null,
37500 "documentation": null,
37501 "id": 2223,
37502 "implemented": false,
37503 "kind": "function",
37504 "modifiers": [],
37505 "name": "nonces",
37506 "nodeType": "FunctionDefinition",
37507 "parameters": {
37508 "id": 2219,
37509 "nodeType": "ParameterList",
37510 "parameters": [
37511 {
37512 "constant": false,
37513 "id": 2218,
37514 "name": "owner",
37515 "nodeType": "VariableDeclaration",
37516 "scope": 2223,
37517 "src": "979:13:7",
37518 "stateVariable": false,
37519 "storageLocation": "default",
37520 "typeDescriptions": {
37521 "typeIdentifier": "t_address",
37522 "typeString": "address"
37523 },
37524 "typeName": {
37525 "id": 2217,
37526 "name": "address",
37527 "nodeType": "ElementaryTypeName",
37528 "src": "979:7:7",
37529 "stateMutability": "nonpayable",
37530 "typeDescriptions": {
37531 "typeIdentifier": "t_address",
37532 "typeString": "address"
37533 }
37534 },
37535 "value": null,
37536 "visibility": "internal"
37537 }
37538 ],
37539 "src": "978:15:7"
37540 },
37541 "returnParameters": {
37542 "id": 2222,
37543 "nodeType": "ParameterList",
37544 "parameters": [
37545 {
37546 "constant": false,
37547 "id": 2221,
37548 "name": "",
37549 "nodeType": "VariableDeclaration",
37550 "scope": 2223,
37551 "src": "1017:4:7",
37552 "stateVariable": false,
37553 "storageLocation": "default",
37554 "typeDescriptions": {
37555 "typeIdentifier": "t_uint256",
37556 "typeString": "uint256"
37557 },
37558 "typeName": {
37559 "id": 2220,
37560 "name": "uint",
37561 "nodeType": "ElementaryTypeName",
37562 "src": "1017:4:7",
37563 "typeDescriptions": {
37564 "typeIdentifier": "t_uint256",
37565 "typeString": "uint256"
37566 }
37567 },
37568 "value": null,
37569 "visibility": "internal"
37570 }
37571 ],
37572 "src": "1016:6:7"
37573 },
37574 "scope": 2391,
37575 "src": "963:60:7",
37576 "stateMutability": "view",
37577 "superFunction": null,
37578 "visibility": "external"
37579 },
37580 {
37581 "body": null,
37582 "documentation": null,
37583 "id": 2240,
37584 "implemented": false,
37585 "kind": "function",
37586 "modifiers": [],
37587 "name": "permit",
37588 "nodeType": "FunctionDefinition",
37589 "parameters": {
37590 "id": 2238,
37591 "nodeType": "ParameterList",
37592 "parameters": [
37593 {
37594 "constant": false,
37595 "id": 2225,
37596 "name": "owner",
37597 "nodeType": "VariableDeclaration",
37598 "scope": 2240,
37599 "src": "1045:13:7",
37600 "stateVariable": false,
37601 "storageLocation": "default",
37602 "typeDescriptions": {
37603 "typeIdentifier": "t_address",
37604 "typeString": "address"
37605 },
37606 "typeName": {
37607 "id": 2224,
37608 "name": "address",
37609 "nodeType": "ElementaryTypeName",
37610 "src": "1045:7:7",
37611 "stateMutability": "nonpayable",
37612 "typeDescriptions": {
37613 "typeIdentifier": "t_address",
37614 "typeString": "address"
37615 }
37616 },
37617 "value": null,
37618 "visibility": "internal"
37619 },
37620 {
37621 "constant": false,
37622 "id": 2227,
37623 "name": "spender",
37624 "nodeType": "VariableDeclaration",
37625 "scope": 2240,
37626 "src": "1060:15:7",
37627 "stateVariable": false,
37628 "storageLocation": "default",
37629 "typeDescriptions": {
37630 "typeIdentifier": "t_address",
37631 "typeString": "address"
37632 },
37633 "typeName": {
37634 "id": 2226,
37635 "name": "address",
37636 "nodeType": "ElementaryTypeName",
37637 "src": "1060:7:7",
37638 "stateMutability": "nonpayable",
37639 "typeDescriptions": {
37640 "typeIdentifier": "t_address",
37641 "typeString": "address"
37642 }
37643 },
37644 "value": null,
37645 "visibility": "internal"
37646 },
37647 {
37648 "constant": false,
37649 "id": 2229,
37650 "name": "value",
37651 "nodeType": "VariableDeclaration",
37652 "scope": 2240,
37653 "src": "1077:10:7",
37654 "stateVariable": false,
37655 "storageLocation": "default",
37656 "typeDescriptions": {
37657 "typeIdentifier": "t_uint256",
37658 "typeString": "uint256"
37659 },
37660 "typeName": {
37661 "id": 2228,
37662 "name": "uint",
37663 "nodeType": "ElementaryTypeName",
37664 "src": "1077:4:7",
37665 "typeDescriptions": {
37666 "typeIdentifier": "t_uint256",
37667 "typeString": "uint256"
37668 }
37669 },
37670 "value": null,
37671 "visibility": "internal"
37672 },
37673 {
37674 "constant": false,
37675 "id": 2231,
37676 "name": "deadline",
37677 "nodeType": "VariableDeclaration",
37678 "scope": 2240,
37679 "src": "1089:13:7",
37680 "stateVariable": false,
37681 "storageLocation": "default",
37682 "typeDescriptions": {
37683 "typeIdentifier": "t_uint256",
37684 "typeString": "uint256"
37685 },
37686 "typeName": {
37687 "id": 2230,
37688 "name": "uint",
37689 "nodeType": "ElementaryTypeName",
37690 "src": "1089:4:7",
37691 "typeDescriptions": {
37692 "typeIdentifier": "t_uint256",
37693 "typeString": "uint256"
37694 }
37695 },
37696 "value": null,
37697 "visibility": "internal"
37698 },
37699 {
37700 "constant": false,
37701 "id": 2233,
37702 "name": "v",
37703 "nodeType": "VariableDeclaration",
37704 "scope": 2240,
37705 "src": "1104:7:7",
37706 "stateVariable": false,
37707 "storageLocation": "default",
37708 "typeDescriptions": {
37709 "typeIdentifier": "t_uint8",
37710 "typeString": "uint8"
37711 },
37712 "typeName": {
37713 "id": 2232,
37714 "name": "uint8",
37715 "nodeType": "ElementaryTypeName",
37716 "src": "1104:5:7",
37717 "typeDescriptions": {
37718 "typeIdentifier": "t_uint8",
37719 "typeString": "uint8"
37720 }
37721 },
37722 "value": null,
37723 "visibility": "internal"
37724 },
37725 {
37726 "constant": false,
37727 "id": 2235,
37728 "name": "r",
37729 "nodeType": "VariableDeclaration",
37730 "scope": 2240,
37731 "src": "1113:9:7",
37732 "stateVariable": false,
37733 "storageLocation": "default",
37734 "typeDescriptions": {
37735 "typeIdentifier": "t_bytes32",
37736 "typeString": "bytes32"
37737 },
37738 "typeName": {
37739 "id": 2234,
37740 "name": "bytes32",
37741 "nodeType": "ElementaryTypeName",
37742 "src": "1113:7:7",
37743 "typeDescriptions": {
37744 "typeIdentifier": "t_bytes32",
37745 "typeString": "bytes32"
37746 }
37747 },
37748 "value": null,
37749 "visibility": "internal"
37750 },
37751 {
37752 "constant": false,
37753 "id": 2237,
37754 "name": "s",
37755 "nodeType": "VariableDeclaration",
37756 "scope": 2240,
37757 "src": "1124:9:7",
37758 "stateVariable": false,
37759 "storageLocation": "default",
37760 "typeDescriptions": {
37761 "typeIdentifier": "t_bytes32",
37762 "typeString": "bytes32"
37763 },
37764 "typeName": {
37765 "id": 2236,
37766 "name": "bytes32",
37767 "nodeType": "ElementaryTypeName",
37768 "src": "1124:7:7",
37769 "typeDescriptions": {
37770 "typeIdentifier": "t_bytes32",
37771 "typeString": "bytes32"
37772 }
37773 },
37774 "value": null,
37775 "visibility": "internal"
37776 }
37777 ],
37778 "src": "1044:90:7"
37779 },
37780 "returnParameters": {
37781 "id": 2239,
37782 "nodeType": "ParameterList",
37783 "parameters": [],
37784 "src": "1143:0:7"
37785 },
37786 "scope": 2391,
37787 "src": "1029:115:7",
37788 "stateMutability": "nonpayable",
37789 "superFunction": null,
37790 "visibility": "external"
37791 },
37792 {
37793 "anonymous": false,
37794 "documentation": null,
37795 "id": 2248,
37796 "name": "Mint",
37797 "nodeType": "EventDefinition",
37798 "parameters": {
37799 "id": 2247,
37800 "nodeType": "ParameterList",
37801 "parameters": [
37802 {
37803 "constant": false,
37804 "id": 2242,
37805 "indexed": true,
37806 "name": "sender",
37807 "nodeType": "VariableDeclaration",
37808 "scope": 2248,
37809 "src": "1161:22:7",
37810 "stateVariable": false,
37811 "storageLocation": "default",
37812 "typeDescriptions": {
37813 "typeIdentifier": "t_address",
37814 "typeString": "address"
37815 },
37816 "typeName": {
37817 "id": 2241,
37818 "name": "address",
37819 "nodeType": "ElementaryTypeName",
37820 "src": "1161:7:7",
37821 "stateMutability": "nonpayable",
37822 "typeDescriptions": {
37823 "typeIdentifier": "t_address",
37824 "typeString": "address"
37825 }
37826 },
37827 "value": null,
37828 "visibility": "internal"
37829 },
37830 {
37831 "constant": false,
37832 "id": 2244,
37833 "indexed": false,
37834 "name": "amount0",
37835 "nodeType": "VariableDeclaration",
37836 "scope": 2248,
37837 "src": "1185:12:7",
37838 "stateVariable": false,
37839 "storageLocation": "default",
37840 "typeDescriptions": {
37841 "typeIdentifier": "t_uint256",
37842 "typeString": "uint256"
37843 },
37844 "typeName": {
37845 "id": 2243,
37846 "name": "uint",
37847 "nodeType": "ElementaryTypeName",
37848 "src": "1185:4:7",
37849 "typeDescriptions": {
37850 "typeIdentifier": "t_uint256",
37851 "typeString": "uint256"
37852 }
37853 },
37854 "value": null,
37855 "visibility": "internal"
37856 },
37857 {
37858 "constant": false,
37859 "id": 2246,
37860 "indexed": false,
37861 "name": "amount1",
37862 "nodeType": "VariableDeclaration",
37863 "scope": 2248,
37864 "src": "1199:12:7",
37865 "stateVariable": false,
37866 "storageLocation": "default",
37867 "typeDescriptions": {
37868 "typeIdentifier": "t_uint256",
37869 "typeString": "uint256"
37870 },
37871 "typeName": {
37872 "id": 2245,
37873 "name": "uint",
37874 "nodeType": "ElementaryTypeName",
37875 "src": "1199:4:7",
37876 "typeDescriptions": {
37877 "typeIdentifier": "t_uint256",
37878 "typeString": "uint256"
37879 }
37880 },
37881 "value": null,
37882 "visibility": "internal"
37883 }
37884 ],
37885 "src": "1160:52:7"
37886 },
37887 "src": "1150:63:7"
37888 },
37889 {
37890 "anonymous": false,
37891 "documentation": null,
37892 "id": 2258,
37893 "name": "Burn",
37894 "nodeType": "EventDefinition",
37895 "parameters": {
37896 "id": 2257,
37897 "nodeType": "ParameterList",
37898 "parameters": [
37899 {
37900 "constant": false,
37901 "id": 2250,
37902 "indexed": true,
37903 "name": "sender",
37904 "nodeType": "VariableDeclaration",
37905 "scope": 2258,
37906 "src": "1229:22:7",
37907 "stateVariable": false,
37908 "storageLocation": "default",
37909 "typeDescriptions": {
37910 "typeIdentifier": "t_address",
37911 "typeString": "address"
37912 },
37913 "typeName": {
37914 "id": 2249,
37915 "name": "address",
37916 "nodeType": "ElementaryTypeName",
37917 "src": "1229:7:7",
37918 "stateMutability": "nonpayable",
37919 "typeDescriptions": {
37920 "typeIdentifier": "t_address",
37921 "typeString": "address"
37922 }
37923 },
37924 "value": null,
37925 "visibility": "internal"
37926 },
37927 {
37928 "constant": false,
37929 "id": 2252,
37930 "indexed": false,
37931 "name": "amount0",
37932 "nodeType": "VariableDeclaration",
37933 "scope": 2258,
37934 "src": "1253:12:7",
37935 "stateVariable": false,
37936 "storageLocation": "default",
37937 "typeDescriptions": {
37938 "typeIdentifier": "t_uint256",
37939 "typeString": "uint256"
37940 },
37941 "typeName": {
37942 "id": 2251,
37943 "name": "uint",
37944 "nodeType": "ElementaryTypeName",
37945 "src": "1253:4:7",
37946 "typeDescriptions": {
37947 "typeIdentifier": "t_uint256",
37948 "typeString": "uint256"
37949 }
37950 },
37951 "value": null,
37952 "visibility": "internal"
37953 },
37954 {
37955 "constant": false,
37956 "id": 2254,
37957 "indexed": false,
37958 "name": "amount1",
37959 "nodeType": "VariableDeclaration",
37960 "scope": 2258,
37961 "src": "1267:12:7",
37962 "stateVariable": false,
37963 "storageLocation": "default",
37964 "typeDescriptions": {
37965 "typeIdentifier": "t_uint256",
37966 "typeString": "uint256"
37967 },
37968 "typeName": {
37969 "id": 2253,
37970 "name": "uint",
37971 "nodeType": "ElementaryTypeName",
37972 "src": "1267:4:7",
37973 "typeDescriptions": {
37974 "typeIdentifier": "t_uint256",
37975 "typeString": "uint256"
37976 }
37977 },
37978 "value": null,
37979 "visibility": "internal"
37980 },
37981 {
37982 "constant": false,
37983 "id": 2256,
37984 "indexed": true,
37985 "name": "to",
37986 "nodeType": "VariableDeclaration",
37987 "scope": 2258,
37988 "src": "1281:18:7",
37989 "stateVariable": false,
37990 "storageLocation": "default",
37991 "typeDescriptions": {
37992 "typeIdentifier": "t_address",
37993 "typeString": "address"
37994 },
37995 "typeName": {
37996 "id": 2255,
37997 "name": "address",
37998 "nodeType": "ElementaryTypeName",
37999 "src": "1281:7:7",
38000 "stateMutability": "nonpayable",
38001 "typeDescriptions": {
38002 "typeIdentifier": "t_address",
38003 "typeString": "address"
38004 }
38005 },
38006 "value": null,
38007 "visibility": "internal"
38008 }
38009 ],
38010 "src": "1228:72:7"
38011 },
38012 "src": "1218:83:7"
38013 },
38014 {
38015 "anonymous": false,
38016 "documentation": null,
38017 "id": 2272,
38018 "name": "Swap",
38019 "nodeType": "EventDefinition",
38020 "parameters": {
38021 "id": 2271,
38022 "nodeType": "ParameterList",
38023 "parameters": [
38024 {
38025 "constant": false,
38026 "id": 2260,
38027 "indexed": true,
38028 "name": "sender",
38029 "nodeType": "VariableDeclaration",
38030 "scope": 2272,
38031 "src": "1326:22:7",
38032 "stateVariable": false,
38033 "storageLocation": "default",
38034 "typeDescriptions": {
38035 "typeIdentifier": "t_address",
38036 "typeString": "address"
38037 },
38038 "typeName": {
38039 "id": 2259,
38040 "name": "address",
38041 "nodeType": "ElementaryTypeName",
38042 "src": "1326:7:7",
38043 "stateMutability": "nonpayable",
38044 "typeDescriptions": {
38045 "typeIdentifier": "t_address",
38046 "typeString": "address"
38047 }
38048 },
38049 "value": null,
38050 "visibility": "internal"
38051 },
38052 {
38053 "constant": false,
38054 "id": 2262,
38055 "indexed": false,
38056 "name": "amount0In",
38057 "nodeType": "VariableDeclaration",
38058 "scope": 2272,
38059 "src": "1358:14:7",
38060 "stateVariable": false,
38061 "storageLocation": "default",
38062 "typeDescriptions": {
38063 "typeIdentifier": "t_uint256",
38064 "typeString": "uint256"
38065 },
38066 "typeName": {
38067 "id": 2261,
38068 "name": "uint",
38069 "nodeType": "ElementaryTypeName",
38070 "src": "1358:4:7",
38071 "typeDescriptions": {
38072 "typeIdentifier": "t_uint256",
38073 "typeString": "uint256"
38074 }
38075 },
38076 "value": null,
38077 "visibility": "internal"
38078 },
38079 {
38080 "constant": false,
38081 "id": 2264,
38082 "indexed": false,
38083 "name": "amount1In",
38084 "nodeType": "VariableDeclaration",
38085 "scope": 2272,
38086 "src": "1382:14:7",
38087 "stateVariable": false,
38088 "storageLocation": "default",
38089 "typeDescriptions": {
38090 "typeIdentifier": "t_uint256",
38091 "typeString": "uint256"
38092 },
38093 "typeName": {
38094 "id": 2263,
38095 "name": "uint",
38096 "nodeType": "ElementaryTypeName",
38097 "src": "1382:4:7",
38098 "typeDescriptions": {
38099 "typeIdentifier": "t_uint256",
38100 "typeString": "uint256"
38101 }
38102 },
38103 "value": null,
38104 "visibility": "internal"
38105 },
38106 {
38107 "constant": false,
38108 "id": 2266,
38109 "indexed": false,
38110 "name": "amount0Out",
38111 "nodeType": "VariableDeclaration",
38112 "scope": 2272,
38113 "src": "1406:15:7",
38114 "stateVariable": false,
38115 "storageLocation": "default",
38116 "typeDescriptions": {
38117 "typeIdentifier": "t_uint256",
38118 "typeString": "uint256"
38119 },
38120 "typeName": {
38121 "id": 2265,
38122 "name": "uint",
38123 "nodeType": "ElementaryTypeName",
38124 "src": "1406:4:7",
38125 "typeDescriptions": {
38126 "typeIdentifier": "t_uint256",
38127 "typeString": "uint256"
38128 }
38129 },
38130 "value": null,
38131 "visibility": "internal"
38132 },
38133 {
38134 "constant": false,
38135 "id": 2268,
38136 "indexed": false,
38137 "name": "amount1Out",
38138 "nodeType": "VariableDeclaration",
38139 "scope": 2272,
38140 "src": "1431:15:7",
38141 "stateVariable": false,
38142 "storageLocation": "default",
38143 "typeDescriptions": {
38144 "typeIdentifier": "t_uint256",
38145 "typeString": "uint256"
38146 },
38147 "typeName": {
38148 "id": 2267,
38149 "name": "uint",
38150 "nodeType": "ElementaryTypeName",
38151 "src": "1431:4:7",
38152 "typeDescriptions": {
38153 "typeIdentifier": "t_uint256",
38154 "typeString": "uint256"
38155 }
38156 },
38157 "value": null,
38158 "visibility": "internal"
38159 },
38160 {
38161 "constant": false,
38162 "id": 2270,
38163 "indexed": true,
38164 "name": "to",
38165 "nodeType": "VariableDeclaration",
38166 "scope": 2272,
38167 "src": "1456:18:7",
38168 "stateVariable": false,
38169 "storageLocation": "default",
38170 "typeDescriptions": {
38171 "typeIdentifier": "t_address",
38172 "typeString": "address"
38173 },
38174 "typeName": {
38175 "id": 2269,
38176 "name": "address",
38177 "nodeType": "ElementaryTypeName",
38178 "src": "1456:7:7",
38179 "stateMutability": "nonpayable",
38180 "typeDescriptions": {
38181 "typeIdentifier": "t_address",
38182 "typeString": "address"
38183 }
38184 },
38185 "value": null,
38186 "visibility": "internal"
38187 }
38188 ],
38189 "src": "1316:164:7"
38190 },
38191 "src": "1306:175:7"
38192 },
38193 {
38194 "anonymous": false,
38195 "documentation": null,
38196 "id": 2278,
38197 "name": "Sync",
38198 "nodeType": "EventDefinition",
38199 "parameters": {
38200 "id": 2277,
38201 "nodeType": "ParameterList",
38202 "parameters": [
38203 {
38204 "constant": false,
38205 "id": 2274,
38206 "indexed": false,
38207 "name": "reserve0",
38208 "nodeType": "VariableDeclaration",
38209 "scope": 2278,
38210 "src": "1497:16:7",
38211 "stateVariable": false,
38212 "storageLocation": "default",
38213 "typeDescriptions": {
38214 "typeIdentifier": "t_uint112",
38215 "typeString": "uint112"
38216 },
38217 "typeName": {
38218 "id": 2273,
38219 "name": "uint112",
38220 "nodeType": "ElementaryTypeName",
38221 "src": "1497:7:7",
38222 "typeDescriptions": {
38223 "typeIdentifier": "t_uint112",
38224 "typeString": "uint112"
38225 }
38226 },
38227 "value": null,
38228 "visibility": "internal"
38229 },
38230 {
38231 "constant": false,
38232 "id": 2276,
38233 "indexed": false,
38234 "name": "reserve1",
38235 "nodeType": "VariableDeclaration",
38236 "scope": 2278,
38237 "src": "1515:16:7",
38238 "stateVariable": false,
38239 "storageLocation": "default",
38240 "typeDescriptions": {
38241 "typeIdentifier": "t_uint112",
38242 "typeString": "uint112"
38243 },
38244 "typeName": {
38245 "id": 2275,
38246 "name": "uint112",
38247 "nodeType": "ElementaryTypeName",
38248 "src": "1515:7:7",
38249 "typeDescriptions": {
38250 "typeIdentifier": "t_uint112",
38251 "typeString": "uint112"
38252 }
38253 },
38254 "value": null,
38255 "visibility": "internal"
38256 }
38257 ],
38258 "src": "1496:36:7"
38259 },
38260 "src": "1486:47:7"
38261 },
38262 {
38263 "body": null,
38264 "documentation": null,
38265 "id": 2283,
38266 "implemented": false,
38267 "kind": "function",
38268 "modifiers": [],
38269 "name": "MINIMUM_LIQUIDITY",
38270 "nodeType": "FunctionDefinition",
38271 "parameters": {
38272 "id": 2279,
38273 "nodeType": "ParameterList",
38274 "parameters": [],
38275 "src": "1565:2:7"
38276 },
38277 "returnParameters": {
38278 "id": 2282,
38279 "nodeType": "ParameterList",
38280 "parameters": [
38281 {
38282 "constant": false,
38283 "id": 2281,
38284 "name": "",
38285 "nodeType": "VariableDeclaration",
38286 "scope": 2283,
38287 "src": "1591:4:7",
38288 "stateVariable": false,
38289 "storageLocation": "default",
38290 "typeDescriptions": {
38291 "typeIdentifier": "t_uint256",
38292 "typeString": "uint256"
38293 },
38294 "typeName": {
38295 "id": 2280,
38296 "name": "uint",
38297 "nodeType": "ElementaryTypeName",
38298 "src": "1591:4:7",
38299 "typeDescriptions": {
38300 "typeIdentifier": "t_uint256",
38301 "typeString": "uint256"
38302 }
38303 },
38304 "value": null,
38305 "visibility": "internal"
38306 }
38307 ],
38308 "src": "1590:6:7"
38309 },
38310 "scope": 2391,
38311 "src": "1539:58:7",
38312 "stateMutability": "pure",
38313 "superFunction": null,
38314 "visibility": "external"
38315 },
38316 {
38317 "body": null,
38318 "documentation": null,
38319 "id": 2288,
38320 "implemented": false,
38321 "kind": "function",
38322 "modifiers": [],
38323 "name": "factory",
38324 "nodeType": "FunctionDefinition",
38325 "parameters": {
38326 "id": 2284,
38327 "nodeType": "ParameterList",
38328 "parameters": [],
38329 "src": "1618:2:7"
38330 },
38331 "returnParameters": {
38332 "id": 2287,
38333 "nodeType": "ParameterList",
38334 "parameters": [
38335 {
38336 "constant": false,
38337 "id": 2286,
38338 "name": "",
38339 "nodeType": "VariableDeclaration",
38340 "scope": 2288,
38341 "src": "1644:7:7",
38342 "stateVariable": false,
38343 "storageLocation": "default",
38344 "typeDescriptions": {
38345 "typeIdentifier": "t_address",
38346 "typeString": "address"
38347 },
38348 "typeName": {
38349 "id": 2285,
38350 "name": "address",
38351 "nodeType": "ElementaryTypeName",
38352 "src": "1644:7:7",
38353 "stateMutability": "nonpayable",
38354 "typeDescriptions": {
38355 "typeIdentifier": "t_address",
38356 "typeString": "address"
38357 }
38358 },
38359 "value": null,
38360 "visibility": "internal"
38361 }
38362 ],
38363 "src": "1643:9:7"
38364 },
38365 "scope": 2391,
38366 "src": "1602:51:7",
38367 "stateMutability": "view",
38368 "superFunction": null,
38369 "visibility": "external"
38370 },
38371 {
38372 "body": null,
38373 "documentation": null,
38374 "id": 2293,
38375 "implemented": false,
38376 "kind": "function",
38377 "modifiers": [],
38378 "name": "token0",
38379 "nodeType": "FunctionDefinition",
38380 "parameters": {
38381 "id": 2289,
38382 "nodeType": "ParameterList",
38383 "parameters": [],
38384 "src": "1673:2:7"
38385 },
38386 "returnParameters": {
38387 "id": 2292,
38388 "nodeType": "ParameterList",
38389 "parameters": [
38390 {
38391 "constant": false,
38392 "id": 2291,
38393 "name": "",
38394 "nodeType": "VariableDeclaration",
38395 "scope": 2293,
38396 "src": "1699:7:7",
38397 "stateVariable": false,
38398 "storageLocation": "default",
38399 "typeDescriptions": {
38400 "typeIdentifier": "t_address",
38401 "typeString": "address"
38402 },
38403 "typeName": {
38404 "id": 2290,
38405 "name": "address",
38406 "nodeType": "ElementaryTypeName",
38407 "src": "1699:7:7",
38408 "stateMutability": "nonpayable",
38409 "typeDescriptions": {
38410 "typeIdentifier": "t_address",
38411 "typeString": "address"
38412 }
38413 },
38414 "value": null,
38415 "visibility": "internal"
38416 }
38417 ],
38418 "src": "1698:9:7"
38419 },
38420 "scope": 2391,
38421 "src": "1658:50:7",
38422 "stateMutability": "view",
38423 "superFunction": null,
38424 "visibility": "external"
38425 },
38426 {
38427 "body": null,
38428 "documentation": null,
38429 "id": 2298,
38430 "implemented": false,
38431 "kind": "function",
38432 "modifiers": [],
38433 "name": "token1",
38434 "nodeType": "FunctionDefinition",
38435 "parameters": {
38436 "id": 2294,
38437 "nodeType": "ParameterList",
38438 "parameters": [],
38439 "src": "1728:2:7"
38440 },
38441 "returnParameters": {
38442 "id": 2297,
38443 "nodeType": "ParameterList",
38444 "parameters": [
38445 {
38446 "constant": false,
38447 "id": 2296,
38448 "name": "",
38449 "nodeType": "VariableDeclaration",
38450 "scope": 2298,
38451 "src": "1754:7:7",
38452 "stateVariable": false,
38453 "storageLocation": "default",
38454 "typeDescriptions": {
38455 "typeIdentifier": "t_address",
38456 "typeString": "address"
38457 },
38458 "typeName": {
38459 "id": 2295,
38460 "name": "address",
38461 "nodeType": "ElementaryTypeName",
38462 "src": "1754:7:7",
38463 "stateMutability": "nonpayable",
38464 "typeDescriptions": {
38465 "typeIdentifier": "t_address",
38466 "typeString": "address"
38467 }
38468 },
38469 "value": null,
38470 "visibility": "internal"
38471 }
38472 ],
38473 "src": "1753:9:7"
38474 },
38475 "scope": 2391,
38476 "src": "1713:50:7",
38477 "stateMutability": "view",
38478 "superFunction": null,
38479 "visibility": "external"
38480 },
38481 {
38482 "body": null,
38483 "documentation": null,
38484 "id": 2307,
38485 "implemented": false,
38486 "kind": "function",
38487 "modifiers": [],
38488 "name": "getReserves",
38489 "nodeType": "FunctionDefinition",
38490 "parameters": {
38491 "id": 2299,
38492 "nodeType": "ParameterList",
38493 "parameters": [],
38494 "src": "1788:2:7"
38495 },
38496 "returnParameters": {
38497 "id": 2306,
38498 "nodeType": "ParameterList",
38499 "parameters": [
38500 {
38501 "constant": false,
38502 "id": 2301,
38503 "name": "reserve0",
38504 "nodeType": "VariableDeclaration",
38505 "scope": 2307,
38506 "src": "1814:16:7",
38507 "stateVariable": false,
38508 "storageLocation": "default",
38509 "typeDescriptions": {
38510 "typeIdentifier": "t_uint112",
38511 "typeString": "uint112"
38512 },
38513 "typeName": {
38514 "id": 2300,
38515 "name": "uint112",
38516 "nodeType": "ElementaryTypeName",
38517 "src": "1814:7:7",
38518 "typeDescriptions": {
38519 "typeIdentifier": "t_uint112",
38520 "typeString": "uint112"
38521 }
38522 },
38523 "value": null,
38524 "visibility": "internal"
38525 },
38526 {
38527 "constant": false,
38528 "id": 2303,
38529 "name": "reserve1",
38530 "nodeType": "VariableDeclaration",
38531 "scope": 2307,
38532 "src": "1832:16:7",
38533 "stateVariable": false,
38534 "storageLocation": "default",
38535 "typeDescriptions": {
38536 "typeIdentifier": "t_uint112",
38537 "typeString": "uint112"
38538 },
38539 "typeName": {
38540 "id": 2302,
38541 "name": "uint112",
38542 "nodeType": "ElementaryTypeName",
38543 "src": "1832:7:7",
38544 "typeDescriptions": {
38545 "typeIdentifier": "t_uint112",
38546 "typeString": "uint112"
38547 }
38548 },
38549 "value": null,
38550 "visibility": "internal"
38551 },
38552 {
38553 "constant": false,
38554 "id": 2305,
38555 "name": "blockTimestampLast",
38556 "nodeType": "VariableDeclaration",
38557 "scope": 2307,
38558 "src": "1850:25:7",
38559 "stateVariable": false,
38560 "storageLocation": "default",
38561 "typeDescriptions": {
38562 "typeIdentifier": "t_uint32",
38563 "typeString": "uint32"
38564 },
38565 "typeName": {
38566 "id": 2304,
38567 "name": "uint32",
38568 "nodeType": "ElementaryTypeName",
38569 "src": "1850:6:7",
38570 "typeDescriptions": {
38571 "typeIdentifier": "t_uint32",
38572 "typeString": "uint32"
38573 }
38574 },
38575 "value": null,
38576 "visibility": "internal"
38577 }
38578 ],
38579 "src": "1813:63:7"
38580 },
38581 "scope": 2391,
38582 "src": "1768:109:7",
38583 "stateMutability": "view",
38584 "superFunction": null,
38585 "visibility": "external"
38586 },
38587 {
38588 "body": null,
38589 "documentation": null,
38590 "id": 2318,
38591 "implemented": false,
38592 "kind": "function",
38593 "modifiers": [],
38594 "name": "getCurveParams",
38595 "nodeType": "FunctionDefinition",
38596 "parameters": {
38597 "id": 2308,
38598 "nodeType": "ParameterList",
38599 "parameters": [],
38600 "src": "1905:2:7"
38601 },
38602 "returnParameters": {
38603 "id": 2317,
38604 "nodeType": "ParameterList",
38605 "parameters": [
38606 {
38607 "constant": false,
38608 "id": 2310,
38609 "name": "baseToken",
38610 "nodeType": "VariableDeclaration",
38611 "scope": 2318,
38612 "src": "1931:17:7",
38613 "stateVariable": false,
38614 "storageLocation": "default",
38615 "typeDescriptions": {
38616 "typeIdentifier": "t_address",
38617 "typeString": "address"
38618 },
38619 "typeName": {
38620 "id": 2309,
38621 "name": "address",
38622 "nodeType": "ElementaryTypeName",
38623 "src": "1931:7:7",
38624 "stateMutability": "nonpayable",
38625 "typeDescriptions": {
38626 "typeIdentifier": "t_address",
38627 "typeString": "address"
38628 }
38629 },
38630 "value": null,
38631 "visibility": "internal"
38632 },
38633 {
38634 "constant": false,
38635 "id": 2312,
38636 "name": "m",
38637 "nodeType": "VariableDeclaration",
38638 "scope": 2318,
38639 "src": "1950:6:7",
38640 "stateVariable": false,
38641 "storageLocation": "default",
38642 "typeDescriptions": {
38643 "typeIdentifier": "t_uint256",
38644 "typeString": "uint256"
38645 },
38646 "typeName": {
38647 "id": 2311,
38648 "name": "uint",
38649 "nodeType": "ElementaryTypeName",
38650 "src": "1950:4:7",
38651 "typeDescriptions": {
38652 "typeIdentifier": "t_uint256",
38653 "typeString": "uint256"
38654 }
38655 },
38656 "value": null,
38657 "visibility": "internal"
38658 },
38659 {
38660 "constant": false,
38661 "id": 2314,
38662 "name": "n",
38663 "nodeType": "VariableDeclaration",
38664 "scope": 2318,
38665 "src": "1958:6:7",
38666 "stateVariable": false,
38667 "storageLocation": "default",
38668 "typeDescriptions": {
38669 "typeIdentifier": "t_uint256",
38670 "typeString": "uint256"
38671 },
38672 "typeName": {
38673 "id": 2313,
38674 "name": "uint",
38675 "nodeType": "ElementaryTypeName",
38676 "src": "1958:4:7",
38677 "typeDescriptions": {
38678 "typeIdentifier": "t_uint256",
38679 "typeString": "uint256"
38680 }
38681 },
38682 "value": null,
38683 "visibility": "internal"
38684 },
38685 {
38686 "constant": false,
38687 "id": 2316,
38688 "name": "fee",
38689 "nodeType": "VariableDeclaration",
38690 "scope": 2318,
38691 "src": "1966:8:7",
38692 "stateVariable": false,
38693 "storageLocation": "default",
38694 "typeDescriptions": {
38695 "typeIdentifier": "t_uint256",
38696 "typeString": "uint256"
38697 },
38698 "typeName": {
38699 "id": 2315,
38700 "name": "uint",
38701 "nodeType": "ElementaryTypeName",
38702 "src": "1966:4:7",
38703 "typeDescriptions": {
38704 "typeIdentifier": "t_uint256",
38705 "typeString": "uint256"
38706 }
38707 },
38708 "value": null,
38709 "visibility": "internal"
38710 }
38711 ],
38712 "src": "1930:45:7"
38713 },
38714 "scope": 2391,
38715 "src": "1882:94:7",
38716 "stateMutability": "view",
38717 "superFunction": null,
38718 "visibility": "external"
38719 },
38720 {
38721 "body": null,
38722 "documentation": null,
38723 "id": 2323,
38724 "implemented": false,
38725 "kind": "function",
38726 "modifiers": [],
38727 "name": "price0CumulativeLast",
38728 "nodeType": "FunctionDefinition",
38729 "parameters": {
38730 "id": 2319,
38731 "nodeType": "ParameterList",
38732 "parameters": [],
38733 "src": "2011:2:7"
38734 },
38735 "returnParameters": {
38736 "id": 2322,
38737 "nodeType": "ParameterList",
38738 "parameters": [
38739 {
38740 "constant": false,
38741 "id": 2321,
38742 "name": "",
38743 "nodeType": "VariableDeclaration",
38744 "scope": 2323,
38745 "src": "2037:4:7",
38746 "stateVariable": false,
38747 "storageLocation": "default",
38748 "typeDescriptions": {
38749 "typeIdentifier": "t_uint256",
38750 "typeString": "uint256"
38751 },
38752 "typeName": {
38753 "id": 2320,
38754 "name": "uint",
38755 "nodeType": "ElementaryTypeName",
38756 "src": "2037:4:7",
38757 "typeDescriptions": {
38758 "typeIdentifier": "t_uint256",
38759 "typeString": "uint256"
38760 }
38761 },
38762 "value": null,
38763 "visibility": "internal"
38764 }
38765 ],
38766 "src": "2036:6:7"
38767 },
38768 "scope": 2391,
38769 "src": "1982:61:7",
38770 "stateMutability": "view",
38771 "superFunction": null,
38772 "visibility": "external"
38773 },
38774 {
38775 "body": null,
38776 "documentation": null,
38777 "id": 2328,
38778 "implemented": false,
38779 "kind": "function",
38780 "modifiers": [],
38781 "name": "price1CumulativeLast",
38782 "nodeType": "FunctionDefinition",
38783 "parameters": {
38784 "id": 2324,
38785 "nodeType": "ParameterList",
38786 "parameters": [],
38787 "src": "2077:2:7"
38788 },
38789 "returnParameters": {
38790 "id": 2327,
38791 "nodeType": "ParameterList",
38792 "parameters": [
38793 {
38794 "constant": false,
38795 "id": 2326,
38796 "name": "",
38797 "nodeType": "VariableDeclaration",
38798 "scope": 2328,
38799 "src": "2103:4:7",
38800 "stateVariable": false,
38801 "storageLocation": "default",
38802 "typeDescriptions": {
38803 "typeIdentifier": "t_uint256",
38804 "typeString": "uint256"
38805 },
38806 "typeName": {
38807 "id": 2325,
38808 "name": "uint",
38809 "nodeType": "ElementaryTypeName",
38810 "src": "2103:4:7",
38811 "typeDescriptions": {
38812 "typeIdentifier": "t_uint256",
38813 "typeString": "uint256"
38814 }
38815 },
38816 "value": null,
38817 "visibility": "internal"
38818 }
38819 ],
38820 "src": "2102:6:7"
38821 },
38822 "scope": 2391,
38823 "src": "2048:61:7",
38824 "stateMutability": "view",
38825 "superFunction": null,
38826 "visibility": "external"
38827 },
38828 {
38829 "body": null,
38830 "documentation": null,
38831 "id": 2333,
38832 "implemented": false,
38833 "kind": "function",
38834 "modifiers": [],
38835 "name": "kLast",
38836 "nodeType": "FunctionDefinition",
38837 "parameters": {
38838 "id": 2329,
38839 "nodeType": "ParameterList",
38840 "parameters": [],
38841 "src": "2128:2:7"
38842 },
38843 "returnParameters": {
38844 "id": 2332,
38845 "nodeType": "ParameterList",
38846 "parameters": [
38847 {
38848 "constant": false,
38849 "id": 2331,
38850 "name": "",
38851 "nodeType": "VariableDeclaration",
38852 "scope": 2333,
38853 "src": "2154:4:7",
38854 "stateVariable": false,
38855 "storageLocation": "default",
38856 "typeDescriptions": {
38857 "typeIdentifier": "t_uint256",
38858 "typeString": "uint256"
38859 },
38860 "typeName": {
38861 "id": 2330,
38862 "name": "uint",
38863 "nodeType": "ElementaryTypeName",
38864 "src": "2154:4:7",
38865 "typeDescriptions": {
38866 "typeIdentifier": "t_uint256",
38867 "typeString": "uint256"
38868 }
38869 },
38870 "value": null,
38871 "visibility": "internal"
38872 }
38873 ],
38874 "src": "2153:6:7"
38875 },
38876 "scope": 2391,
38877 "src": "2114:46:7",
38878 "stateMutability": "view",
38879 "superFunction": null,
38880 "visibility": "external"
38881 },
38882 {
38883 "body": null,
38884 "documentation": null,
38885 "id": 2340,
38886 "implemented": false,
38887 "kind": "function",
38888 "modifiers": [],
38889 "name": "mint",
38890 "nodeType": "FunctionDefinition",
38891 "parameters": {
38892 "id": 2336,
38893 "nodeType": "ParameterList",
38894 "parameters": [
38895 {
38896 "constant": false,
38897 "id": 2335,
38898 "name": "to",
38899 "nodeType": "VariableDeclaration",
38900 "scope": 2340,
38901 "src": "2180:10:7",
38902 "stateVariable": false,
38903 "storageLocation": "default",
38904 "typeDescriptions": {
38905 "typeIdentifier": "t_address",
38906 "typeString": "address"
38907 },
38908 "typeName": {
38909 "id": 2334,
38910 "name": "address",
38911 "nodeType": "ElementaryTypeName",
38912 "src": "2180:7:7",
38913 "stateMutability": "nonpayable",
38914 "typeDescriptions": {
38915 "typeIdentifier": "t_address",
38916 "typeString": "address"
38917 }
38918 },
38919 "value": null,
38920 "visibility": "internal"
38921 }
38922 ],
38923 "src": "2179:12:7"
38924 },
38925 "returnParameters": {
38926 "id": 2339,
38927 "nodeType": "ParameterList",
38928 "parameters": [
38929 {
38930 "constant": false,
38931 "id": 2338,
38932 "name": "liquidity",
38933 "nodeType": "VariableDeclaration",
38934 "scope": 2340,
38935 "src": "2210:14:7",
38936 "stateVariable": false,
38937 "storageLocation": "default",
38938 "typeDescriptions": {
38939 "typeIdentifier": "t_uint256",
38940 "typeString": "uint256"
38941 },
38942 "typeName": {
38943 "id": 2337,
38944 "name": "uint",
38945 "nodeType": "ElementaryTypeName",
38946 "src": "2210:4:7",
38947 "typeDescriptions": {
38948 "typeIdentifier": "t_uint256",
38949 "typeString": "uint256"
38950 }
38951 },
38952 "value": null,
38953 "visibility": "internal"
38954 }
38955 ],
38956 "src": "2209:16:7"
38957 },
38958 "scope": 2391,
38959 "src": "2166:60:7",
38960 "stateMutability": "nonpayable",
38961 "superFunction": null,
38962 "visibility": "external"
38963 },
38964 {
38965 "body": null,
38966 "documentation": null,
38967 "id": 2349,
38968 "implemented": false,
38969 "kind": "function",
38970 "modifiers": [],
38971 "name": "burn",
38972 "nodeType": "FunctionDefinition",
38973 "parameters": {
38974 "id": 2343,
38975 "nodeType": "ParameterList",
38976 "parameters": [
38977 {
38978 "constant": false,
38979 "id": 2342,
38980 "name": "to",
38981 "nodeType": "VariableDeclaration",
38982 "scope": 2349,
38983 "src": "2245:10:7",
38984 "stateVariable": false,
38985 "storageLocation": "default",
38986 "typeDescriptions": {
38987 "typeIdentifier": "t_address",
38988 "typeString": "address"
38989 },
38990 "typeName": {
38991 "id": 2341,
38992 "name": "address",
38993 "nodeType": "ElementaryTypeName",
38994 "src": "2245:7:7",
38995 "stateMutability": "nonpayable",
38996 "typeDescriptions": {
38997 "typeIdentifier": "t_address",
38998 "typeString": "address"
38999 }
39000 },
39001 "value": null,
39002 "visibility": "internal"
39003 }
39004 ],
39005 "src": "2244:12:7"
39006 },
39007 "returnParameters": {
39008 "id": 2348,
39009 "nodeType": "ParameterList",
39010 "parameters": [
39011 {
39012 "constant": false,
39013 "id": 2345,
39014 "name": "amount0",
39015 "nodeType": "VariableDeclaration",
39016 "scope": 2349,
39017 "src": "2275:12:7",
39018 "stateVariable": false,
39019 "storageLocation": "default",
39020 "typeDescriptions": {
39021 "typeIdentifier": "t_uint256",
39022 "typeString": "uint256"
39023 },
39024 "typeName": {
39025 "id": 2344,
39026 "name": "uint",
39027 "nodeType": "ElementaryTypeName",
39028 "src": "2275:4:7",
39029 "typeDescriptions": {
39030 "typeIdentifier": "t_uint256",
39031 "typeString": "uint256"
39032 }
39033 },
39034 "value": null,
39035 "visibility": "internal"
39036 },
39037 {
39038 "constant": false,
39039 "id": 2347,
39040 "name": "amount1",
39041 "nodeType": "VariableDeclaration",
39042 "scope": 2349,
39043 "src": "2289:12:7",
39044 "stateVariable": false,
39045 "storageLocation": "default",
39046 "typeDescriptions": {
39047 "typeIdentifier": "t_uint256",
39048 "typeString": "uint256"
39049 },
39050 "typeName": {
39051 "id": 2346,
39052 "name": "uint",
39053 "nodeType": "ElementaryTypeName",
39054 "src": "2289:4:7",
39055 "typeDescriptions": {
39056 "typeIdentifier": "t_uint256",
39057 "typeString": "uint256"
39058 }
39059 },
39060 "value": null,
39061 "visibility": "internal"
39062 }
39063 ],
39064 "src": "2274:28:7"
39065 },
39066 "scope": 2391,
39067 "src": "2231:72:7",
39068 "stateMutability": "nonpayable",
39069 "superFunction": null,
39070 "visibility": "external"
39071 },
39072 {
39073 "body": null,
39074 "documentation": null,
39075 "id": 2360,
39076 "implemented": false,
39077 "kind": "function",
39078 "modifiers": [],
39079 "name": "swap",
39080 "nodeType": "FunctionDefinition",
39081 "parameters": {
39082 "id": 2358,
39083 "nodeType": "ParameterList",
39084 "parameters": [
39085 {
39086 "constant": false,
39087 "id": 2351,
39088 "name": "amount0Out",
39089 "nodeType": "VariableDeclaration",
39090 "scope": 2360,
39091 "src": "2322:15:7",
39092 "stateVariable": false,
39093 "storageLocation": "default",
39094 "typeDescriptions": {
39095 "typeIdentifier": "t_uint256",
39096 "typeString": "uint256"
39097 },
39098 "typeName": {
39099 "id": 2350,
39100 "name": "uint",
39101 "nodeType": "ElementaryTypeName",
39102 "src": "2322:4:7",
39103 "typeDescriptions": {
39104 "typeIdentifier": "t_uint256",
39105 "typeString": "uint256"
39106 }
39107 },
39108 "value": null,
39109 "visibility": "internal"
39110 },
39111 {
39112 "constant": false,
39113 "id": 2353,
39114 "name": "amount1Out",
39115 "nodeType": "VariableDeclaration",
39116 "scope": 2360,
39117 "src": "2339:15:7",
39118 "stateVariable": false,
39119 "storageLocation": "default",
39120 "typeDescriptions": {
39121 "typeIdentifier": "t_uint256",
39122 "typeString": "uint256"
39123 },
39124 "typeName": {
39125 "id": 2352,
39126 "name": "uint",
39127 "nodeType": "ElementaryTypeName",
39128 "src": "2339:4:7",
39129 "typeDescriptions": {
39130 "typeIdentifier": "t_uint256",
39131 "typeString": "uint256"
39132 }
39133 },
39134 "value": null,
39135 "visibility": "internal"
39136 },
39137 {
39138 "constant": false,
39139 "id": 2355,
39140 "name": "to",
39141 "nodeType": "VariableDeclaration",
39142 "scope": 2360,
39143 "src": "2356:10:7",
39144 "stateVariable": false,
39145 "storageLocation": "default",
39146 "typeDescriptions": {
39147 "typeIdentifier": "t_address",
39148 "typeString": "address"
39149 },
39150 "typeName": {
39151 "id": 2354,
39152 "name": "address",
39153 "nodeType": "ElementaryTypeName",
39154 "src": "2356:7:7",
39155 "stateMutability": "nonpayable",
39156 "typeDescriptions": {
39157 "typeIdentifier": "t_address",
39158 "typeString": "address"
39159 }
39160 },
39161 "value": null,
39162 "visibility": "internal"
39163 },
39164 {
39165 "constant": false,
39166 "id": 2357,
39167 "name": "data",
39168 "nodeType": "VariableDeclaration",
39169 "scope": 2360,
39170 "src": "2368:19:7",
39171 "stateVariable": false,
39172 "storageLocation": "calldata",
39173 "typeDescriptions": {
39174 "typeIdentifier": "t_bytes_calldata_ptr",
39175 "typeString": "bytes"
39176 },
39177 "typeName": {
39178 "id": 2356,
39179 "name": "bytes",
39180 "nodeType": "ElementaryTypeName",
39181 "src": "2368:5:7",
39182 "typeDescriptions": {
39183 "typeIdentifier": "t_bytes_storage_ptr",
39184 "typeString": "bytes"
39185 }
39186 },
39187 "value": null,
39188 "visibility": "internal"
39189 }
39190 ],
39191 "src": "2321:67:7"
39192 },
39193 "returnParameters": {
39194 "id": 2359,
39195 "nodeType": "ParameterList",
39196 "parameters": [],
39197 "src": "2397:0:7"
39198 },
39199 "scope": 2391,
39200 "src": "2308:90:7",
39201 "stateMutability": "nonpayable",
39202 "superFunction": null,
39203 "visibility": "external"
39204 },
39205 {
39206 "body": null,
39207 "documentation": null,
39208 "id": 2365,
39209 "implemented": false,
39210 "kind": "function",
39211 "modifiers": [],
39212 "name": "skim",
39213 "nodeType": "FunctionDefinition",
39214 "parameters": {
39215 "id": 2363,
39216 "nodeType": "ParameterList",
39217 "parameters": [
39218 {
39219 "constant": false,
39220 "id": 2362,
39221 "name": "to",
39222 "nodeType": "VariableDeclaration",
39223 "scope": 2365,
39224 "src": "2417:10:7",
39225 "stateVariable": false,
39226 "storageLocation": "default",
39227 "typeDescriptions": {
39228 "typeIdentifier": "t_address",
39229 "typeString": "address"
39230 },
39231 "typeName": {
39232 "id": 2361,
39233 "name": "address",
39234 "nodeType": "ElementaryTypeName",
39235 "src": "2417:7:7",
39236 "stateMutability": "nonpayable",
39237 "typeDescriptions": {
39238 "typeIdentifier": "t_address",
39239 "typeString": "address"
39240 }
39241 },
39242 "value": null,
39243 "visibility": "internal"
39244 }
39245 ],
39246 "src": "2416:12:7"
39247 },
39248 "returnParameters": {
39249 "id": 2364,
39250 "nodeType": "ParameterList",
39251 "parameters": [],
39252 "src": "2437:0:7"
39253 },
39254 "scope": 2391,
39255 "src": "2403:35:7",
39256 "stateMutability": "nonpayable",
39257 "superFunction": null,
39258 "visibility": "external"
39259 },
39260 {
39261 "body": null,
39262 "documentation": null,
39263 "id": 2368,
39264 "implemented": false,
39265 "kind": "function",
39266 "modifiers": [],
39267 "name": "sync",
39268 "nodeType": "FunctionDefinition",
39269 "parameters": {
39270 "id": 2366,
39271 "nodeType": "ParameterList",
39272 "parameters": [],
39273 "src": "2456:2:7"
39274 },
39275 "returnParameters": {
39276 "id": 2367,
39277 "nodeType": "ParameterList",
39278 "parameters": [],
39279 "src": "2467:0:7"
39280 },
39281 "scope": 2391,
39282 "src": "2443:25:7",
39283 "stateMutability": "nonpayable",
39284 "superFunction": null,
39285 "visibility": "external"
39286 },
39287 {
39288 "body": null,
39289 "documentation": null,
39290 "id": 2385,
39291 "implemented": false,
39292 "kind": "function",
39293 "modifiers": [],
39294 "name": "initialize",
39295 "nodeType": "FunctionDefinition",
39296 "parameters": {
39297 "id": 2383,
39298 "nodeType": "ParameterList",
39299 "parameters": [
39300 {
39301 "constant": false,
39302 "id": 2370,
39303 "name": "",
39304 "nodeType": "VariableDeclaration",
39305 "scope": 2385,
39306 "src": "2494:7:7",
39307 "stateVariable": false,
39308 "storageLocation": "default",
39309 "typeDescriptions": {
39310 "typeIdentifier": "t_address",
39311 "typeString": "address"
39312 },
39313 "typeName": {
39314 "id": 2369,
39315 "name": "address",
39316 "nodeType": "ElementaryTypeName",
39317 "src": "2494:7:7",
39318 "stateMutability": "nonpayable",
39319 "typeDescriptions": {
39320 "typeIdentifier": "t_address",
39321 "typeString": "address"
39322 }
39323 },
39324 "value": null,
39325 "visibility": "internal"
39326 },
39327 {
39328 "constant": false,
39329 "id": 2372,
39330 "name": "",
39331 "nodeType": "VariableDeclaration",
39332 "scope": 2385,
39333 "src": "2503:7:7",
39334 "stateVariable": false,
39335 "storageLocation": "default",
39336 "typeDescriptions": {
39337 "typeIdentifier": "t_address",
39338 "typeString": "address"
39339 },
39340 "typeName": {
39341 "id": 2371,
39342 "name": "address",
39343 "nodeType": "ElementaryTypeName",
39344 "src": "2503:7:7",
39345 "stateMutability": "nonpayable",
39346 "typeDescriptions": {
39347 "typeIdentifier": "t_address",
39348 "typeString": "address"
39349 }
39350 },
39351 "value": null,
39352 "visibility": "internal"
39353 },
39354 {
39355 "constant": false,
39356 "id": 2374,
39357 "name": "",
39358 "nodeType": "VariableDeclaration",
39359 "scope": 2385,
39360 "src": "2512:7:7",
39361 "stateVariable": false,
39362 "storageLocation": "default",
39363 "typeDescriptions": {
39364 "typeIdentifier": "t_address",
39365 "typeString": "address"
39366 },
39367 "typeName": {
39368 "id": 2373,
39369 "name": "address",
39370 "nodeType": "ElementaryTypeName",
39371 "src": "2512:7:7",
39372 "stateMutability": "nonpayable",
39373 "typeDescriptions": {
39374 "typeIdentifier": "t_address",
39375 "typeString": "address"
39376 }
39377 },
39378 "value": null,
39379 "visibility": "internal"
39380 },
39381 {
39382 "constant": false,
39383 "id": 2376,
39384 "name": "",
39385 "nodeType": "VariableDeclaration",
39386 "scope": 2385,
39387 "src": "2521:7:7",
39388 "stateVariable": false,
39389 "storageLocation": "default",
39390 "typeDescriptions": {
39391 "typeIdentifier": "t_address",
39392 "typeString": "address"
39393 },
39394 "typeName": {
39395 "id": 2375,
39396 "name": "address",
39397 "nodeType": "ElementaryTypeName",
39398 "src": "2521:7:7",
39399 "stateMutability": "nonpayable",
39400 "typeDescriptions": {
39401 "typeIdentifier": "t_address",
39402 "typeString": "address"
39403 }
39404 },
39405 "value": null,
39406 "visibility": "internal"
39407 },
39408 {
39409 "constant": false,
39410 "id": 2378,
39411 "name": "",
39412 "nodeType": "VariableDeclaration",
39413 "scope": 2385,
39414 "src": "2530:4:7",
39415 "stateVariable": false,
39416 "storageLocation": "default",
39417 "typeDescriptions": {
39418 "typeIdentifier": "t_uint256",
39419 "typeString": "uint256"
39420 },
39421 "typeName": {
39422 "id": 2377,
39423 "name": "uint",
39424 "nodeType": "ElementaryTypeName",
39425 "src": "2530:4:7",
39426 "typeDescriptions": {
39427 "typeIdentifier": "t_uint256",
39428 "typeString": "uint256"
39429 }
39430 },
39431 "value": null,
39432 "visibility": "internal"
39433 },
39434 {
39435 "constant": false,
39436 "id": 2380,
39437 "name": "",
39438 "nodeType": "VariableDeclaration",
39439 "scope": 2385,
39440 "src": "2536:4:7",
39441 "stateVariable": false,
39442 "storageLocation": "default",
39443 "typeDescriptions": {
39444 "typeIdentifier": "t_uint256",
39445 "typeString": "uint256"
39446 },
39447 "typeName": {
39448 "id": 2379,
39449 "name": "uint",
39450 "nodeType": "ElementaryTypeName",
39451 "src": "2536:4:7",
39452 "typeDescriptions": {
39453 "typeIdentifier": "t_uint256",
39454 "typeString": "uint256"
39455 }
39456 },
39457 "value": null,
39458 "visibility": "internal"
39459 },
39460 {
39461 "constant": false,
39462 "id": 2382,
39463 "name": "",
39464 "nodeType": "VariableDeclaration",
39465 "scope": 2385,
39466 "src": "2542:4:7",
39467 "stateVariable": false,
39468 "storageLocation": "default",
39469 "typeDescriptions": {
39470 "typeIdentifier": "t_uint256",
39471 "typeString": "uint256"
39472 },
39473 "typeName": {
39474 "id": 2381,
39475 "name": "uint",
39476 "nodeType": "ElementaryTypeName",
39477 "src": "2542:4:7",
39478 "typeDescriptions": {
39479 "typeIdentifier": "t_uint256",
39480 "typeString": "uint256"
39481 }
39482 },
39483 "value": null,
39484 "visibility": "internal"
39485 }
39486 ],
39487 "src": "2493:54:7"
39488 },
39489 "returnParameters": {
39490 "id": 2384,
39491 "nodeType": "ParameterList",
39492 "parameters": [],
39493 "src": "2556:0:7"
39494 },
39495 "scope": 2391,
39496 "src": "2474:83:7",
39497 "stateMutability": "nonpayable",
39498 "superFunction": null,
39499 "visibility": "external"
39500 },
39501 {
39502 "body": null,
39503 "documentation": null,
39504 "id": 2390,
39505 "implemented": false,
39506 "kind": "function",
39507 "modifiers": [],
39508 "name": "setPairOwner",
39509 "nodeType": "FunctionDefinition",
39510 "parameters": {
39511 "id": 2388,
39512 "nodeType": "ParameterList",
39513 "parameters": [
39514 {
39515 "constant": false,
39516 "id": 2387,
39517 "name": "",
39518 "nodeType": "VariableDeclaration",
39519 "scope": 2390,
39520 "src": "2584:7:7",
39521 "stateVariable": false,
39522 "storageLocation": "default",
39523 "typeDescriptions": {
39524 "typeIdentifier": "t_address",
39525 "typeString": "address"
39526 },
39527 "typeName": {
39528 "id": 2386,
39529 "name": "address",
39530 "nodeType": "ElementaryTypeName",
39531 "src": "2584:7:7",
39532 "stateMutability": "nonpayable",
39533 "typeDescriptions": {
39534 "typeIdentifier": "t_address",
39535 "typeString": "address"
39536 }
39537 },
39538 "value": null,
39539 "visibility": "internal"
39540 }
39541 ],
39542 "src": "2583:9:7"
39543 },
39544 "returnParameters": {
39545 "id": 2389,
39546 "nodeType": "ParameterList",
39547 "parameters": [],
39548 "src": "2601:0:7"
39549 },
39550 "scope": 2391,
39551 "src": "2562:40:7",
39552 "stateMutability": "nonpayable",
39553 "superFunction": null,
39554 "visibility": "external"
39555 }
39556 ],
39557 "scope": 2392,
39558 "src": "26:2633:7"
39559 }
39560 ],
39561 "src": "0:2660:7"
39562 }
39563 },
39564 "contracts/libraries/Math.sol": {
39565 "id": 8,
39566 "AST": {
39567 "absolutePath": "contracts/libraries/Math.sol",
39568 "exportedSymbols": {
39569 "Math": [
39570 2467
39571 ]
39572 },
39573 "id": 2468,
39574 "nodeType": "SourceUnit",
39575 "nodes": [
39576 {
39577 "id": 2393,
39578 "literals": [
39579 "solidity",
39580 "=",
39581 "0.5",
39582 ".16"
39583 ],
39584 "nodeType": "PragmaDirective",
39585 "src": "0:24:8"
39586 },
39587 {
39588 "baseContracts": [],
39589 "contractDependencies": [],
39590 "contractKind": "library",
39591 "documentation": null,
39592 "fullyImplemented": true,
39593 "id": 2467,
39594 "linearizedBaseContracts": [
39595 2467
39596 ],
39597 "name": "Math",
39598 "nodeType": "ContractDefinition",
39599 "nodes": [
39600 {
39601 "body": {
39602 "id": 2411,
39603 "nodeType": "Block",
39604 "src": "158:34:8",
39605 "statements": [
39606 {
39607 "expression": {
39608 "argumentTypes": null,
39609 "id": 2409,
39610 "isConstant": false,
39611 "isLValue": false,
39612 "isPure": false,
39613 "lValueRequested": false,
39614 "leftHandSide": {
39615 "argumentTypes": null,
39616 "id": 2402,
39617 "name": "z",
39618 "nodeType": "Identifier",
39619 "overloadedDeclarations": [],
39620 "referencedDeclaration": 2400,
39621 "src": "168:1:8",
39622 "typeDescriptions": {
39623 "typeIdentifier": "t_uint256",
39624 "typeString": "uint256"
39625 }
39626 },
39627 "nodeType": "Assignment",
39628 "operator": "=",
39629 "rightHandSide": {
39630 "argumentTypes": null,
39631 "condition": {
39632 "argumentTypes": null,
39633 "commonType": {
39634 "typeIdentifier": "t_uint256",
39635 "typeString": "uint256"
39636 },
39637 "id": 2405,
39638 "isConstant": false,
39639 "isLValue": false,
39640 "isPure": false,
39641 "lValueRequested": false,
39642 "leftExpression": {
39643 "argumentTypes": null,
39644 "id": 2403,
39645 "name": "x",
39646 "nodeType": "Identifier",
39647 "overloadedDeclarations": [],
39648 "referencedDeclaration": 2395,
39649 "src": "172:1:8",
39650 "typeDescriptions": {
39651 "typeIdentifier": "t_uint256",
39652 "typeString": "uint256"
39653 }
39654 },
39655 "nodeType": "BinaryOperation",
39656 "operator": "<",
39657 "rightExpression": {
39658 "argumentTypes": null,
39659 "id": 2404,
39660 "name": "y",
39661 "nodeType": "Identifier",
39662 "overloadedDeclarations": [],
39663 "referencedDeclaration": 2397,
39664 "src": "176:1:8",
39665 "typeDescriptions": {
39666 "typeIdentifier": "t_uint256",
39667 "typeString": "uint256"
39668 }
39669 },
39670 "src": "172:5:8",
39671 "typeDescriptions": {
39672 "typeIdentifier": "t_bool",
39673 "typeString": "bool"
39674 }
39675 },
39676 "falseExpression": {
39677 "argumentTypes": null,
39678 "id": 2407,
39679 "name": "y",
39680 "nodeType": "Identifier",
39681 "overloadedDeclarations": [],
39682 "referencedDeclaration": 2397,
39683 "src": "184:1:8",
39684 "typeDescriptions": {
39685 "typeIdentifier": "t_uint256",
39686 "typeString": "uint256"
39687 }
39688 },
39689 "id": 2408,
39690 "isConstant": false,
39691 "isLValue": false,
39692 "isPure": false,
39693 "lValueRequested": false,
39694 "nodeType": "Conditional",
39695 "src": "172:13:8",
39696 "trueExpression": {
39697 "argumentTypes": null,
39698 "id": 2406,
39699 "name": "x",
39700 "nodeType": "Identifier",
39701 "overloadedDeclarations": [],
39702 "referencedDeclaration": 2395,
39703 "src": "180:1:8",
39704 "typeDescriptions": {
39705 "typeIdentifier": "t_uint256",
39706 "typeString": "uint256"
39707 }
39708 },
39709 "typeDescriptions": {
39710 "typeIdentifier": "t_uint256",
39711 "typeString": "uint256"
39712 }
39713 },
39714 "src": "168:17:8",
39715 "typeDescriptions": {
39716 "typeIdentifier": "t_uint256",
39717 "typeString": "uint256"
39718 }
39719 },
39720 "id": 2410,
39721 "nodeType": "ExpressionStatement",
39722 "src": "168:17:8"
39723 }
39724 ]
39725 },
39726 "documentation": null,
39727 "id": 2412,
39728 "implemented": true,
39729 "kind": "function",
39730 "modifiers": [],
39731 "name": "min",
39732 "nodeType": "FunctionDefinition",
39733 "parameters": {
39734 "id": 2398,
39735 "nodeType": "ParameterList",
39736 "parameters": [
39737 {
39738 "constant": false,
39739 "id": 2395,
39740 "name": "x",
39741 "nodeType": "VariableDeclaration",
39742 "scope": 2412,
39743 "src": "111:6:8",
39744 "stateVariable": false,
39745 "storageLocation": "default",
39746 "typeDescriptions": {
39747 "typeIdentifier": "t_uint256",
39748 "typeString": "uint256"
39749 },
39750 "typeName": {
39751 "id": 2394,
39752 "name": "uint",
39753 "nodeType": "ElementaryTypeName",
39754 "src": "111:4:8",
39755 "typeDescriptions": {
39756 "typeIdentifier": "t_uint256",
39757 "typeString": "uint256"
39758 }
39759 },
39760 "value": null,
39761 "visibility": "internal"
39762 },
39763 {
39764 "constant": false,
39765 "id": 2397,
39766 "name": "y",
39767 "nodeType": "VariableDeclaration",
39768 "scope": 2412,
39769 "src": "119:6:8",
39770 "stateVariable": false,
39771 "storageLocation": "default",
39772 "typeDescriptions": {
39773 "typeIdentifier": "t_uint256",
39774 "typeString": "uint256"
39775 },
39776 "typeName": {
39777 "id": 2396,
39778 "name": "uint",
39779 "nodeType": "ElementaryTypeName",
39780 "src": "119:4:8",
39781 "typeDescriptions": {
39782 "typeIdentifier": "t_uint256",
39783 "typeString": "uint256"
39784 }
39785 },
39786 "value": null,
39787 "visibility": "internal"
39788 }
39789 ],
39790 "src": "110:16:8"
39791 },
39792 "returnParameters": {
39793 "id": 2401,
39794 "nodeType": "ParameterList",
39795 "parameters": [
39796 {
39797 "constant": false,
39798 "id": 2400,
39799 "name": "z",
39800 "nodeType": "VariableDeclaration",
39801 "scope": 2412,
39802 "src": "150:6:8",
39803 "stateVariable": false,
39804 "storageLocation": "default",
39805 "typeDescriptions": {
39806 "typeIdentifier": "t_uint256",
39807 "typeString": "uint256"
39808 },
39809 "typeName": {
39810 "id": 2399,
39811 "name": "uint",
39812 "nodeType": "ElementaryTypeName",
39813 "src": "150:4:8",
39814 "typeDescriptions": {
39815 "typeIdentifier": "t_uint256",
39816 "typeString": "uint256"
39817 }
39818 },
39819 "value": null,
39820 "visibility": "internal"
39821 }
39822 ],
39823 "src": "149:8:8"
39824 },
39825 "scope": 2467,
39826 "src": "98:94:8",
39827 "stateMutability": "pure",
39828 "superFunction": null,
39829 "visibility": "internal"
39830 },
39831 {
39832 "body": {
39833 "id": 2465,
39834 "nodeType": "Block",
39835 "src": "360:239:8",
39836 "statements": [
39837 {
39838 "condition": {
39839 "argumentTypes": null,
39840 "commonType": {
39841 "typeIdentifier": "t_uint256",
39842 "typeString": "uint256"
39843 },
39844 "id": 2421,
39845 "isConstant": false,
39846 "isLValue": false,
39847 "isPure": false,
39848 "lValueRequested": false,
39849 "leftExpression": {
39850 "argumentTypes": null,
39851 "id": 2419,
39852 "name": "y",
39853 "nodeType": "Identifier",
39854 "overloadedDeclarations": [],
39855 "referencedDeclaration": 2414,
39856 "src": "374:1:8",
39857 "typeDescriptions": {
39858 "typeIdentifier": "t_uint256",
39859 "typeString": "uint256"
39860 }
39861 },
39862 "nodeType": "BinaryOperation",
39863 "operator": ">",
39864 "rightExpression": {
39865 "argumentTypes": null,
39866 "hexValue": "33",
39867 "id": 2420,
39868 "isConstant": false,
39869 "isLValue": false,
39870 "isPure": true,
39871 "kind": "number",
39872 "lValueRequested": false,
39873 "nodeType": "Literal",
39874 "src": "378:1:8",
39875 "subdenomination": null,
39876 "typeDescriptions": {
39877 "typeIdentifier": "t_rational_3_by_1",
39878 "typeString": "int_const 3"
39879 },
39880 "value": "3"
39881 },
39882 "src": "374:5:8",
39883 "typeDescriptions": {
39884 "typeIdentifier": "t_bool",
39885 "typeString": "bool"
39886 }
39887 },
39888 "falseBody": {
39889 "condition": {
39890 "argumentTypes": null,
39891 "commonType": {
39892 "typeIdentifier": "t_uint256",
39893 "typeString": "uint256"
39894 },
39895 "id": 2457,
39896 "isConstant": false,
39897 "isLValue": false,
39898 "isPure": false,
39899 "lValueRequested": false,
39900 "leftExpression": {
39901 "argumentTypes": null,
39902 "id": 2455,
39903 "name": "y",
39904 "nodeType": "Identifier",
39905 "overloadedDeclarations": [],
39906 "referencedDeclaration": 2414,
39907 "src": "555:1:8",
39908 "typeDescriptions": {
39909 "typeIdentifier": "t_uint256",
39910 "typeString": "uint256"
39911 }
39912 },
39913 "nodeType": "BinaryOperation",
39914 "operator": "!=",
39915 "rightExpression": {
39916 "argumentTypes": null,
39917 "hexValue": "30",
39918 "id": 2456,
39919 "isConstant": false,
39920 "isLValue": false,
39921 "isPure": true,
39922 "kind": "number",
39923 "lValueRequested": false,
39924 "nodeType": "Literal",
39925 "src": "560:1:8",
39926 "subdenomination": null,
39927 "typeDescriptions": {
39928 "typeIdentifier": "t_rational_0_by_1",
39929 "typeString": "int_const 0"
39930 },
39931 "value": "0"
39932 },
39933 "src": "555:6:8",
39934 "typeDescriptions": {
39935 "typeIdentifier": "t_bool",
39936 "typeString": "bool"
39937 }
39938 },
39939 "falseBody": null,
39940 "id": 2463,
39941 "nodeType": "IfStatement",
39942 "src": "551:42:8",
39943 "trueBody": {
39944 "id": 2462,
39945 "nodeType": "Block",
39946 "src": "563:30:8",
39947 "statements": [
39948 {
39949 "expression": {
39950 "argumentTypes": null,
39951 "id": 2460,
39952 "isConstant": false,
39953 "isLValue": false,
39954 "isPure": false,
39955 "lValueRequested": false,
39956 "leftHandSide": {
39957 "argumentTypes": null,
39958 "id": 2458,
39959 "name": "z",
39960 "nodeType": "Identifier",
39961 "overloadedDeclarations": [],
39962 "referencedDeclaration": 2417,
39963 "src": "577:1:8",
39964 "typeDescriptions": {
39965 "typeIdentifier": "t_uint256",
39966 "typeString": "uint256"
39967 }
39968 },
39969 "nodeType": "Assignment",
39970 "operator": "=",
39971 "rightHandSide": {
39972 "argumentTypes": null,
39973 "hexValue": "31",
39974 "id": 2459,
39975 "isConstant": false,
39976 "isLValue": false,
39977 "isPure": true,
39978 "kind": "number",
39979 "lValueRequested": false,
39980 "nodeType": "Literal",
39981 "src": "581:1:8",
39982 "subdenomination": null,
39983 "typeDescriptions": {
39984 "typeIdentifier": "t_rational_1_by_1",
39985 "typeString": "int_const 1"
39986 },
39987 "value": "1"
39988 },
39989 "src": "577:5:8",
39990 "typeDescriptions": {
39991 "typeIdentifier": "t_uint256",
39992 "typeString": "uint256"
39993 }
39994 },
39995 "id": 2461,
39996 "nodeType": "ExpressionStatement",
39997 "src": "577:5:8"
39998 }
39999 ]
40000 }
40001 },
40002 "id": 2464,
40003 "nodeType": "IfStatement",
40004 "src": "370:223:8",
40005 "trueBody": {
40006 "id": 2454,
40007 "nodeType": "Block",
40008 "src": "381:164:8",
40009 "statements": [
40010 {
40011 "expression": {
40012 "argumentTypes": null,
40013 "id": 2424,
40014 "isConstant": false,
40015 "isLValue": false,
40016 "isPure": false,
40017 "lValueRequested": false,
40018 "leftHandSide": {
40019 "argumentTypes": null,
40020 "id": 2422,
40021 "name": "z",
40022 "nodeType": "Identifier",
40023 "overloadedDeclarations": [],
40024 "referencedDeclaration": 2417,
40025 "src": "395:1:8",
40026 "typeDescriptions": {
40027 "typeIdentifier": "t_uint256",
40028 "typeString": "uint256"
40029 }
40030 },
40031 "nodeType": "Assignment",
40032 "operator": "=",
40033 "rightHandSide": {
40034 "argumentTypes": null,
40035 "id": 2423,
40036 "name": "y",
40037 "nodeType": "Identifier",
40038 "overloadedDeclarations": [],
40039 "referencedDeclaration": 2414,
40040 "src": "399:1:8",
40041 "typeDescriptions": {
40042 "typeIdentifier": "t_uint256",
40043 "typeString": "uint256"
40044 }
40045 },
40046 "src": "395:5:8",
40047 "typeDescriptions": {
40048 "typeIdentifier": "t_uint256",
40049 "typeString": "uint256"
40050 }
40051 },
40052 "id": 2425,
40053 "nodeType": "ExpressionStatement",
40054 "src": "395:5:8"
40055 },
40056 {
40057 "assignments": [
40058 2427
40059 ],
40060 "declarations": [
40061 {
40062 "constant": false,
40063 "id": 2427,
40064 "name": "x",
40065 "nodeType": "VariableDeclaration",
40066 "scope": 2454,
40067 "src": "414:6:8",
40068 "stateVariable": false,
40069 "storageLocation": "default",
40070 "typeDescriptions": {
40071 "typeIdentifier": "t_uint256",
40072 "typeString": "uint256"
40073 },
40074 "typeName": {
40075 "id": 2426,
40076 "name": "uint",
40077 "nodeType": "ElementaryTypeName",
40078 "src": "414:4:8",
40079 "typeDescriptions": {
40080 "typeIdentifier": "t_uint256",
40081 "typeString": "uint256"
40082 }
40083 },
40084 "value": null,
40085 "visibility": "internal"
40086 }
40087 ],
40088 "id": 2433,
40089 "initialValue": {
40090 "argumentTypes": null,
40091 "commonType": {
40092 "typeIdentifier": "t_uint256",
40093 "typeString": "uint256"
40094 },
40095 "id": 2432,
40096 "isConstant": false,
40097 "isLValue": false,
40098 "isPure": false,
40099 "lValueRequested": false,
40100 "leftExpression": {
40101 "argumentTypes": null,
40102 "commonType": {
40103 "typeIdentifier": "t_uint256",
40104 "typeString": "uint256"
40105 },
40106 "id": 2430,
40107 "isConstant": false,
40108 "isLValue": false,
40109 "isPure": false,
40110 "lValueRequested": false,
40111 "leftExpression": {
40112 "argumentTypes": null,
40113 "id": 2428,
40114 "name": "y",
40115 "nodeType": "Identifier",
40116 "overloadedDeclarations": [],
40117 "referencedDeclaration": 2414,
40118 "src": "423:1:8",
40119 "typeDescriptions": {
40120 "typeIdentifier": "t_uint256",
40121 "typeString": "uint256"
40122 }
40123 },
40124 "nodeType": "BinaryOperation",
40125 "operator": "/",
40126 "rightExpression": {
40127 "argumentTypes": null,
40128 "hexValue": "32",
40129 "id": 2429,
40130 "isConstant": false,
40131 "isLValue": false,
40132 "isPure": true,
40133 "kind": "number",
40134 "lValueRequested": false,
40135 "nodeType": "Literal",
40136 "src": "427:1:8",
40137 "subdenomination": null,
40138 "typeDescriptions": {
40139 "typeIdentifier": "t_rational_2_by_1",
40140 "typeString": "int_const 2"
40141 },
40142 "value": "2"
40143 },
40144 "src": "423:5:8",
40145 "typeDescriptions": {
40146 "typeIdentifier": "t_uint256",
40147 "typeString": "uint256"
40148 }
40149 },
40150 "nodeType": "BinaryOperation",
40151 "operator": "+",
40152 "rightExpression": {
40153 "argumentTypes": null,
40154 "hexValue": "31",
40155 "id": 2431,
40156 "isConstant": false,
40157 "isLValue": false,
40158 "isPure": true,
40159 "kind": "number",
40160 "lValueRequested": false,
40161 "nodeType": "Literal",
40162 "src": "431:1:8",
40163 "subdenomination": null,
40164 "typeDescriptions": {
40165 "typeIdentifier": "t_rational_1_by_1",
40166 "typeString": "int_const 1"
40167 },
40168 "value": "1"
40169 },
40170 "src": "423:9:8",
40171 "typeDescriptions": {
40172 "typeIdentifier": "t_uint256",
40173 "typeString": "uint256"
40174 }
40175 },
40176 "nodeType": "VariableDeclarationStatement",
40177 "src": "414:18:8"
40178 },
40179 {
40180 "body": {
40181 "id": 2452,
40182 "nodeType": "Block",
40183 "src": "460:75:8",
40184 "statements": [
40185 {
40186 "expression": {
40187 "argumentTypes": null,
40188 "id": 2439,
40189 "isConstant": false,
40190 "isLValue": false,
40191 "isPure": false,
40192 "lValueRequested": false,
40193 "leftHandSide": {
40194 "argumentTypes": null,
40195 "id": 2437,
40196 "name": "z",
40197 "nodeType": "Identifier",
40198 "overloadedDeclarations": [],
40199 "referencedDeclaration": 2417,
40200 "src": "478:1:8",
40201 "typeDescriptions": {
40202 "typeIdentifier": "t_uint256",
40203 "typeString": "uint256"
40204 }
40205 },
40206 "nodeType": "Assignment",
40207 "operator": "=",
40208 "rightHandSide": {
40209 "argumentTypes": null,
40210 "id": 2438,
40211 "name": "x",
40212 "nodeType": "Identifier",
40213 "overloadedDeclarations": [],
40214 "referencedDeclaration": 2427,
40215 "src": "482:1:8",
40216 "typeDescriptions": {
40217 "typeIdentifier": "t_uint256",
40218 "typeString": "uint256"
40219 }
40220 },
40221 "src": "478:5:8",
40222 "typeDescriptions": {
40223 "typeIdentifier": "t_uint256",
40224 "typeString": "uint256"
40225 }
40226 },
40227 "id": 2440,
40228 "nodeType": "ExpressionStatement",
40229 "src": "478:5:8"
40230 },
40231 {
40232 "expression": {
40233 "argumentTypes": null,
40234 "id": 2450,
40235 "isConstant": false,
40236 "isLValue": false,
40237 "isPure": false,
40238 "lValueRequested": false,
40239 "leftHandSide": {
40240 "argumentTypes": null,
40241 "id": 2441,
40242 "name": "x",
40243 "nodeType": "Identifier",
40244 "overloadedDeclarations": [],
40245 "referencedDeclaration": 2427,
40246 "src": "501:1:8",
40247 "typeDescriptions": {
40248 "typeIdentifier": "t_uint256",
40249 "typeString": "uint256"
40250 }
40251 },
40252 "nodeType": "Assignment",
40253 "operator": "=",
40254 "rightHandSide": {
40255 "argumentTypes": null,
40256 "commonType": {
40257 "typeIdentifier": "t_uint256",
40258 "typeString": "uint256"
40259 },
40260 "id": 2449,
40261 "isConstant": false,
40262 "isLValue": false,
40263 "isPure": false,
40264 "lValueRequested": false,
40265 "leftExpression": {
40266 "argumentTypes": null,
40267 "components": [
40268 {
40269 "argumentTypes": null,
40270 "commonType": {
40271 "typeIdentifier": "t_uint256",
40272 "typeString": "uint256"
40273 },
40274 "id": 2446,
40275 "isConstant": false,
40276 "isLValue": false,
40277 "isPure": false,
40278 "lValueRequested": false,
40279 "leftExpression": {
40280 "argumentTypes": null,
40281 "commonType": {
40282 "typeIdentifier": "t_uint256",
40283 "typeString": "uint256"
40284 },
40285 "id": 2444,
40286 "isConstant": false,
40287 "isLValue": false,
40288 "isPure": false,
40289 "lValueRequested": false,
40290 "leftExpression": {
40291 "argumentTypes": null,
40292 "id": 2442,
40293 "name": "y",
40294 "nodeType": "Identifier",
40295 "overloadedDeclarations": [],
40296 "referencedDeclaration": 2414,
40297 "src": "506:1:8",
40298 "typeDescriptions": {
40299 "typeIdentifier": "t_uint256",
40300 "typeString": "uint256"
40301 }
40302 },
40303 "nodeType": "BinaryOperation",
40304 "operator": "/",
40305 "rightExpression": {
40306 "argumentTypes": null,
40307 "id": 2443,
40308 "name": "x",
40309 "nodeType": "Identifier",
40310 "overloadedDeclarations": [],
40311 "referencedDeclaration": 2427,
40312 "src": "510:1:8",
40313 "typeDescriptions": {
40314 "typeIdentifier": "t_uint256",
40315 "typeString": "uint256"
40316 }
40317 },
40318 "src": "506:5:8",
40319 "typeDescriptions": {
40320 "typeIdentifier": "t_uint256",
40321 "typeString": "uint256"
40322 }
40323 },
40324 "nodeType": "BinaryOperation",
40325 "operator": "+",
40326 "rightExpression": {
40327 "argumentTypes": null,
40328 "id": 2445,
40329 "name": "x",
40330 "nodeType": "Identifier",
40331 "overloadedDeclarations": [],
40332 "referencedDeclaration": 2427,
40333 "src": "514:1:8",
40334 "typeDescriptions": {
40335 "typeIdentifier": "t_uint256",
40336 "typeString": "uint256"
40337 }
40338 },
40339 "src": "506:9:8",
40340 "typeDescriptions": {
40341 "typeIdentifier": "t_uint256",
40342 "typeString": "uint256"
40343 }
40344 }
40345 ],
40346 "id": 2447,
40347 "isConstant": false,
40348 "isInlineArray": false,
40349 "isLValue": false,
40350 "isPure": false,
40351 "lValueRequested": false,
40352 "nodeType": "TupleExpression",
40353 "src": "505:11:8",
40354 "typeDescriptions": {
40355 "typeIdentifier": "t_uint256",
40356 "typeString": "uint256"
40357 }
40358 },
40359 "nodeType": "BinaryOperation",
40360 "operator": "/",
40361 "rightExpression": {
40362 "argumentTypes": null,
40363 "hexValue": "32",
40364 "id": 2448,
40365 "isConstant": false,
40366 "isLValue": false,
40367 "isPure": true,
40368 "kind": "number",
40369 "lValueRequested": false,
40370 "nodeType": "Literal",
40371 "src": "519:1:8",
40372 "subdenomination": null,
40373 "typeDescriptions": {
40374 "typeIdentifier": "t_rational_2_by_1",
40375 "typeString": "int_const 2"
40376 },
40377 "value": "2"
40378 },
40379 "src": "505:15:8",
40380 "typeDescriptions": {
40381 "typeIdentifier": "t_uint256",
40382 "typeString": "uint256"
40383 }
40384 },
40385 "src": "501:19:8",
40386 "typeDescriptions": {
40387 "typeIdentifier": "t_uint256",
40388 "typeString": "uint256"
40389 }
40390 },
40391 "id": 2451,
40392 "nodeType": "ExpressionStatement",
40393 "src": "501:19:8"
40394 }
40395 ]
40396 },
40397 "condition": {
40398 "argumentTypes": null,
40399 "commonType": {
40400 "typeIdentifier": "t_uint256",
40401 "typeString": "uint256"
40402 },
40403 "id": 2436,
40404 "isConstant": false,
40405 "isLValue": false,
40406 "isPure": false,
40407 "lValueRequested": false,
40408 "leftExpression": {
40409 "argumentTypes": null,
40410 "id": 2434,
40411 "name": "x",
40412 "nodeType": "Identifier",
40413 "overloadedDeclarations": [],
40414 "referencedDeclaration": 2427,
40415 "src": "453:1:8",
40416 "typeDescriptions": {
40417 "typeIdentifier": "t_uint256",
40418 "typeString": "uint256"
40419 }
40420 },
40421 "nodeType": "BinaryOperation",
40422 "operator": "<",
40423 "rightExpression": {
40424 "argumentTypes": null,
40425 "id": 2435,
40426 "name": "z",
40427 "nodeType": "Identifier",
40428 "overloadedDeclarations": [],
40429 "referencedDeclaration": 2417,
40430 "src": "457:1:8",
40431 "typeDescriptions": {
40432 "typeIdentifier": "t_uint256",
40433 "typeString": "uint256"
40434 }
40435 },
40436 "src": "453:5:8",
40437 "typeDescriptions": {
40438 "typeIdentifier": "t_bool",
40439 "typeString": "bool"
40440 }
40441 },
40442 "id": 2453,
40443 "nodeType": "WhileStatement",
40444 "src": "446:89:8"
40445 }
40446 ]
40447 }
40448 }
40449 ]
40450 },
40451 "documentation": null,
40452 "id": 2466,
40453 "implemented": true,
40454 "kind": "function",
40455 "modifiers": [],
40456 "name": "sqrt",
40457 "nodeType": "FunctionDefinition",
40458 "parameters": {
40459 "id": 2415,
40460 "nodeType": "ParameterList",
40461 "parameters": [
40462 {
40463 "constant": false,
40464 "id": 2414,
40465 "name": "y",
40466 "nodeType": "VariableDeclaration",
40467 "scope": 2466,
40468 "src": "321:6:8",
40469 "stateVariable": false,
40470 "storageLocation": "default",
40471 "typeDescriptions": {
40472 "typeIdentifier": "t_uint256",
40473 "typeString": "uint256"
40474 },
40475 "typeName": {
40476 "id": 2413,
40477 "name": "uint",
40478 "nodeType": "ElementaryTypeName",
40479 "src": "321:4:8",
40480 "typeDescriptions": {
40481 "typeIdentifier": "t_uint256",
40482 "typeString": "uint256"
40483 }
40484 },
40485 "value": null,
40486 "visibility": "internal"
40487 }
40488 ],
40489 "src": "320:8:8"
40490 },
40491 "returnParameters": {
40492 "id": 2418,
40493 "nodeType": "ParameterList",
40494 "parameters": [
40495 {
40496 "constant": false,
40497 "id": 2417,
40498 "name": "z",
40499 "nodeType": "VariableDeclaration",
40500 "scope": 2466,
40501 "src": "352:6:8",
40502 "stateVariable": false,
40503 "storageLocation": "default",
40504 "typeDescriptions": {
40505 "typeIdentifier": "t_uint256",
40506 "typeString": "uint256"
40507 },
40508 "typeName": {
40509 "id": 2416,
40510 "name": "uint",
40511 "nodeType": "ElementaryTypeName",
40512 "src": "352:4:8",
40513 "typeDescriptions": {
40514 "typeIdentifier": "t_uint256",
40515 "typeString": "uint256"
40516 }
40517 },
40518 "value": null,
40519 "visibility": "internal"
40520 }
40521 ],
40522 "src": "351:8:8"
40523 },
40524 "scope": 2467,
40525 "src": "307:292:8",
40526 "stateMutability": "pure",
40527 "superFunction": null,
40528 "visibility": "internal"
40529 }
40530 ],
40531 "scope": 2468,
40532 "src": "79:522:8"
40533 }
40534 ],
40535 "src": "0:602:8"
40536 }
40537 },
40538 "contracts/libraries/SafeMath.sol": {
40539 "id": 9,
40540 "AST": {
40541 "absolutePath": "contracts/libraries/SafeMath.sol",
40542 "exportedSymbols": {
40543 "SafeMath": [
40544 2542
40545 ]
40546 },
40547 "id": 2543,
40548 "nodeType": "SourceUnit",
40549 "nodes": [
40550 {
40551 "id": 2469,
40552 "literals": [
40553 "solidity",
40554 "=",
40555 "0.5",
40556 ".16"
40557 ],
40558 "nodeType": "PragmaDirective",
40559 "src": "0:24:9"
40560 },
40561 {
40562 "baseContracts": [],
40563 "contractDependencies": [],
40564 "contractKind": "library",
40565 "documentation": null,
40566 "fullyImplemented": true,
40567 "id": 2542,
40568 "linearizedBaseContracts": [
40569 2542
40570 ],
40571 "name": "SafeMath",
40572 "nodeType": "ContractDefinition",
40573 "nodes": [
40574 {
40575 "body": {
40576 "id": 2490,
40577 "nodeType": "Block",
40578 "src": "215:66:9",
40579 "statements": [
40580 {
40581 "expression": {
40582 "argumentTypes": null,
40583 "arguments": [
40584 {
40585 "argumentTypes": null,
40586 "commonType": {
40587 "typeIdentifier": "t_uint256",
40588 "typeString": "uint256"
40589 },
40590 "id": 2486,
40591 "isConstant": false,
40592 "isLValue": false,
40593 "isPure": false,
40594 "lValueRequested": false,
40595 "leftExpression": {
40596 "argumentTypes": null,
40597 "components": [
40598 {
40599 "argumentTypes": null,
40600 "id": 2483,
40601 "isConstant": false,
40602 "isLValue": false,
40603 "isPure": false,
40604 "lValueRequested": false,
40605 "leftHandSide": {
40606 "argumentTypes": null,
40607 "id": 2479,
40608 "name": "z",
40609 "nodeType": "Identifier",
40610 "overloadedDeclarations": [],
40611 "referencedDeclaration": 2476,
40612 "src": "234:1:9",
40613 "typeDescriptions": {
40614 "typeIdentifier": "t_uint256",
40615 "typeString": "uint256"
40616 }
40617 },
40618 "nodeType": "Assignment",
40619 "operator": "=",
40620 "rightHandSide": {
40621 "argumentTypes": null,
40622 "commonType": {
40623 "typeIdentifier": "t_uint256",
40624 "typeString": "uint256"
40625 },
40626 "id": 2482,
40627 "isConstant": false,
40628 "isLValue": false,
40629 "isPure": false,
40630 "lValueRequested": false,
40631 "leftExpression": {
40632 "argumentTypes": null,
40633 "id": 2480,
40634 "name": "x",
40635 "nodeType": "Identifier",
40636 "overloadedDeclarations": [],
40637 "referencedDeclaration": 2471,
40638 "src": "238:1:9",
40639 "typeDescriptions": {
40640 "typeIdentifier": "t_uint256",
40641 "typeString": "uint256"
40642 }
40643 },
40644 "nodeType": "BinaryOperation",
40645 "operator": "+",
40646 "rightExpression": {
40647 "argumentTypes": null,
40648 "id": 2481,
40649 "name": "y",
40650 "nodeType": "Identifier",
40651 "overloadedDeclarations": [],
40652 "referencedDeclaration": 2473,
40653 "src": "242:1:9",
40654 "typeDescriptions": {
40655 "typeIdentifier": "t_uint256",
40656 "typeString": "uint256"
40657 }
40658 },
40659 "src": "238:5:9",
40660 "typeDescriptions": {
40661 "typeIdentifier": "t_uint256",
40662 "typeString": "uint256"
40663 }
40664 },
40665 "src": "234:9:9",
40666 "typeDescriptions": {
40667 "typeIdentifier": "t_uint256",
40668 "typeString": "uint256"
40669 }
40670 }
40671 ],
40672 "id": 2484,
40673 "isConstant": false,
40674 "isInlineArray": false,
40675 "isLValue": false,
40676 "isPure": false,
40677 "lValueRequested": false,
40678 "nodeType": "TupleExpression",
40679 "src": "233:11:9",
40680 "typeDescriptions": {
40681 "typeIdentifier": "t_uint256",
40682 "typeString": "uint256"
40683 }
40684 },
40685 "nodeType": "BinaryOperation",
40686 "operator": ">=",
40687 "rightExpression": {
40688 "argumentTypes": null,
40689 "id": 2485,
40690 "name": "x",
40691 "nodeType": "Identifier",
40692 "overloadedDeclarations": [],
40693 "referencedDeclaration": 2471,
40694 "src": "248:1:9",
40695 "typeDescriptions": {
40696 "typeIdentifier": "t_uint256",
40697 "typeString": "uint256"
40698 }
40699 },
40700 "src": "233:16:9",
40701 "typeDescriptions": {
40702 "typeIdentifier": "t_bool",
40703 "typeString": "bool"
40704 }
40705 },
40706 {
40707 "argumentTypes": null,
40708 "hexValue": "64732d6d6174682d6164642d6f766572666c6f77",
40709 "id": 2487,
40710 "isConstant": false,
40711 "isLValue": false,
40712 "isPure": true,
40713 "kind": "string",
40714 "lValueRequested": false,
40715 "nodeType": "Literal",
40716 "src": "251:22:9",
40717 "subdenomination": null,
40718 "typeDescriptions": {
40719 "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db",
40720 "typeString": "literal_string \"ds-math-add-overflow\""
40721 },
40722 "value": "ds-math-add-overflow"
40723 }
40724 ],
40725 "expression": {
40726 "argumentTypes": [
40727 {
40728 "typeIdentifier": "t_bool",
40729 "typeString": "bool"
40730 },
40731 {
40732 "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db",
40733 "typeString": "literal_string \"ds-math-add-overflow\""
40734 }
40735 ],
40736 "id": 2478,
40737 "name": "require",
40738 "nodeType": "Identifier",
40739 "overloadedDeclarations": [
40740 2620,
40741 2621
40742 ],
40743 "referencedDeclaration": 2621,
40744 "src": "225:7:9",
40745 "typeDescriptions": {
40746 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
40747 "typeString": "function (bool,string memory) pure"
40748 }
40749 },
40750 "id": 2488,
40751 "isConstant": false,
40752 "isLValue": false,
40753 "isPure": false,
40754 "kind": "functionCall",
40755 "lValueRequested": false,
40756 "names": [],
40757 "nodeType": "FunctionCall",
40758 "src": "225:49:9",
40759 "typeDescriptions": {
40760 "typeIdentifier": "t_tuple$__$",
40761 "typeString": "tuple()"
40762 }
40763 },
40764 "id": 2489,
40765 "nodeType": "ExpressionStatement",
40766 "src": "225:49:9"
40767 }
40768 ]
40769 },
40770 "documentation": null,
40771 "id": 2491,
40772 "implemented": true,
40773 "kind": "function",
40774 "modifiers": [],
40775 "name": "add",
40776 "nodeType": "FunctionDefinition",
40777 "parameters": {
40778 "id": 2474,
40779 "nodeType": "ParameterList",
40780 "parameters": [
40781 {
40782 "constant": false,
40783 "id": 2471,
40784 "name": "x",
40785 "nodeType": "VariableDeclaration",
40786 "scope": 2491,
40787 "src": "168:6:9",
40788 "stateVariable": false,
40789 "storageLocation": "default",
40790 "typeDescriptions": {
40791 "typeIdentifier": "t_uint256",
40792 "typeString": "uint256"
40793 },
40794 "typeName": {
40795 "id": 2470,
40796 "name": "uint",
40797 "nodeType": "ElementaryTypeName",
40798 "src": "168:4:9",
40799 "typeDescriptions": {
40800 "typeIdentifier": "t_uint256",
40801 "typeString": "uint256"
40802 }
40803 },
40804 "value": null,
40805 "visibility": "internal"
40806 },
40807 {
40808 "constant": false,
40809 "id": 2473,
40810 "name": "y",
40811 "nodeType": "VariableDeclaration",
40812 "scope": 2491,
40813 "src": "176:6:9",
40814 "stateVariable": false,
40815 "storageLocation": "default",
40816 "typeDescriptions": {
40817 "typeIdentifier": "t_uint256",
40818 "typeString": "uint256"
40819 },
40820 "typeName": {
40821 "id": 2472,
40822 "name": "uint",
40823 "nodeType": "ElementaryTypeName",
40824 "src": "176:4:9",
40825 "typeDescriptions": {
40826 "typeIdentifier": "t_uint256",
40827 "typeString": "uint256"
40828 }
40829 },
40830 "value": null,
40831 "visibility": "internal"
40832 }
40833 ],
40834 "src": "167:16:9"
40835 },
40836 "returnParameters": {
40837 "id": 2477,
40838 "nodeType": "ParameterList",
40839 "parameters": [
40840 {
40841 "constant": false,
40842 "id": 2476,
40843 "name": "z",
40844 "nodeType": "VariableDeclaration",
40845 "scope": 2491,
40846 "src": "207:6:9",
40847 "stateVariable": false,
40848 "storageLocation": "default",
40849 "typeDescriptions": {
40850 "typeIdentifier": "t_uint256",
40851 "typeString": "uint256"
40852 },
40853 "typeName": {
40854 "id": 2475,
40855 "name": "uint",
40856 "nodeType": "ElementaryTypeName",
40857 "src": "207:4:9",
40858 "typeDescriptions": {
40859 "typeIdentifier": "t_uint256",
40860 "typeString": "uint256"
40861 }
40862 },
40863 "value": null,
40864 "visibility": "internal"
40865 }
40866 ],
40867 "src": "206:8:9"
40868 },
40869 "scope": 2542,
40870 "src": "155:126:9",
40871 "stateMutability": "pure",
40872 "superFunction": null,
40873 "visibility": "internal"
40874 },
40875 {
40876 "body": {
40877 "id": 2512,
40878 "nodeType": "Block",
40879 "src": "347:67:9",
40880 "statements": [
40881 {
40882 "expression": {
40883 "argumentTypes": null,
40884 "arguments": [
40885 {
40886 "argumentTypes": null,
40887 "commonType": {
40888 "typeIdentifier": "t_uint256",
40889 "typeString": "uint256"
40890 },
40891 "id": 2508,
40892 "isConstant": false,
40893 "isLValue": false,
40894 "isPure": false,
40895 "lValueRequested": false,
40896 "leftExpression": {
40897 "argumentTypes": null,
40898 "components": [
40899 {
40900 "argumentTypes": null,
40901 "id": 2505,
40902 "isConstant": false,
40903 "isLValue": false,
40904 "isPure": false,
40905 "lValueRequested": false,
40906 "leftHandSide": {
40907 "argumentTypes": null,
40908 "id": 2501,
40909 "name": "z",
40910 "nodeType": "Identifier",
40911 "overloadedDeclarations": [],
40912 "referencedDeclaration": 2498,
40913 "src": "366:1:9",
40914 "typeDescriptions": {
40915 "typeIdentifier": "t_uint256",
40916 "typeString": "uint256"
40917 }
40918 },
40919 "nodeType": "Assignment",
40920 "operator": "=",
40921 "rightHandSide": {
40922 "argumentTypes": null,
40923 "commonType": {
40924 "typeIdentifier": "t_uint256",
40925 "typeString": "uint256"
40926 },
40927 "id": 2504,
40928 "isConstant": false,
40929 "isLValue": false,
40930 "isPure": false,
40931 "lValueRequested": false,
40932 "leftExpression": {
40933 "argumentTypes": null,
40934 "id": 2502,
40935 "name": "x",
40936 "nodeType": "Identifier",
40937 "overloadedDeclarations": [],
40938 "referencedDeclaration": 2493,
40939 "src": "370:1:9",
40940 "typeDescriptions": {
40941 "typeIdentifier": "t_uint256",
40942 "typeString": "uint256"
40943 }
40944 },
40945 "nodeType": "BinaryOperation",
40946 "operator": "-",
40947 "rightExpression": {
40948 "argumentTypes": null,
40949 "id": 2503,
40950 "name": "y",
40951 "nodeType": "Identifier",
40952 "overloadedDeclarations": [],
40953 "referencedDeclaration": 2495,
40954 "src": "374:1:9",
40955 "typeDescriptions": {
40956 "typeIdentifier": "t_uint256",
40957 "typeString": "uint256"
40958 }
40959 },
40960 "src": "370:5:9",
40961 "typeDescriptions": {
40962 "typeIdentifier": "t_uint256",
40963 "typeString": "uint256"
40964 }
40965 },
40966 "src": "366:9:9",
40967 "typeDescriptions": {
40968 "typeIdentifier": "t_uint256",
40969 "typeString": "uint256"
40970 }
40971 }
40972 ],
40973 "id": 2506,
40974 "isConstant": false,
40975 "isInlineArray": false,
40976 "isLValue": false,
40977 "isPure": false,
40978 "lValueRequested": false,
40979 "nodeType": "TupleExpression",
40980 "src": "365:11:9",
40981 "typeDescriptions": {
40982 "typeIdentifier": "t_uint256",
40983 "typeString": "uint256"
40984 }
40985 },
40986 "nodeType": "BinaryOperation",
40987 "operator": "<=",
40988 "rightExpression": {
40989 "argumentTypes": null,
40990 "id": 2507,
40991 "name": "x",
40992 "nodeType": "Identifier",
40993 "overloadedDeclarations": [],
40994 "referencedDeclaration": 2493,
40995 "src": "380:1:9",
40996 "typeDescriptions": {
40997 "typeIdentifier": "t_uint256",
40998 "typeString": "uint256"
40999 }
41000 },
41001 "src": "365:16:9",
41002 "typeDescriptions": {
41003 "typeIdentifier": "t_bool",
41004 "typeString": "bool"
41005 }
41006 },
41007 {
41008 "argumentTypes": null,
41009 "hexValue": "64732d6d6174682d7375622d756e646572666c6f77",
41010 "id": 2509,
41011 "isConstant": false,
41012 "isLValue": false,
41013 "isPure": true,
41014 "kind": "string",
41015 "lValueRequested": false,
41016 "nodeType": "Literal",
41017 "src": "383:23:9",
41018 "subdenomination": null,
41019 "typeDescriptions": {
41020 "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590",
41021 "typeString": "literal_string \"ds-math-sub-underflow\""
41022 },
41023 "value": "ds-math-sub-underflow"
41024 }
41025 ],
41026 "expression": {
41027 "argumentTypes": [
41028 {
41029 "typeIdentifier": "t_bool",
41030 "typeString": "bool"
41031 },
41032 {
41033 "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590",
41034 "typeString": "literal_string \"ds-math-sub-underflow\""
41035 }
41036 ],
41037 "id": 2500,
41038 "name": "require",
41039 "nodeType": "Identifier",
41040 "overloadedDeclarations": [
41041 2620,
41042 2621
41043 ],
41044 "referencedDeclaration": 2621,
41045 "src": "357:7:9",
41046 "typeDescriptions": {
41047 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
41048 "typeString": "function (bool,string memory) pure"
41049 }
41050 },
41051 "id": 2510,
41052 "isConstant": false,
41053 "isLValue": false,
41054 "isPure": false,
41055 "kind": "functionCall",
41056 "lValueRequested": false,
41057 "names": [],
41058 "nodeType": "FunctionCall",
41059 "src": "357:50:9",
41060 "typeDescriptions": {
41061 "typeIdentifier": "t_tuple$__$",
41062 "typeString": "tuple()"
41063 }
41064 },
41065 "id": 2511,
41066 "nodeType": "ExpressionStatement",
41067 "src": "357:50:9"
41068 }
41069 ]
41070 },
41071 "documentation": null,
41072 "id": 2513,
41073 "implemented": true,
41074 "kind": "function",
41075 "modifiers": [],
41076 "name": "sub",
41077 "nodeType": "FunctionDefinition",
41078 "parameters": {
41079 "id": 2496,
41080 "nodeType": "ParameterList",
41081 "parameters": [
41082 {
41083 "constant": false,
41084 "id": 2493,
41085 "name": "x",
41086 "nodeType": "VariableDeclaration",
41087 "scope": 2513,
41088 "src": "300:6:9",
41089 "stateVariable": false,
41090 "storageLocation": "default",
41091 "typeDescriptions": {
41092 "typeIdentifier": "t_uint256",
41093 "typeString": "uint256"
41094 },
41095 "typeName": {
41096 "id": 2492,
41097 "name": "uint",
41098 "nodeType": "ElementaryTypeName",
41099 "src": "300:4:9",
41100 "typeDescriptions": {
41101 "typeIdentifier": "t_uint256",
41102 "typeString": "uint256"
41103 }
41104 },
41105 "value": null,
41106 "visibility": "internal"
41107 },
41108 {
41109 "constant": false,
41110 "id": 2495,
41111 "name": "y",
41112 "nodeType": "VariableDeclaration",
41113 "scope": 2513,
41114 "src": "308:6:9",
41115 "stateVariable": false,
41116 "storageLocation": "default",
41117 "typeDescriptions": {
41118 "typeIdentifier": "t_uint256",
41119 "typeString": "uint256"
41120 },
41121 "typeName": {
41122 "id": 2494,
41123 "name": "uint",
41124 "nodeType": "ElementaryTypeName",
41125 "src": "308:4:9",
41126 "typeDescriptions": {
41127 "typeIdentifier": "t_uint256",
41128 "typeString": "uint256"
41129 }
41130 },
41131 "value": null,
41132 "visibility": "internal"
41133 }
41134 ],
41135 "src": "299:16:9"
41136 },
41137 "returnParameters": {
41138 "id": 2499,
41139 "nodeType": "ParameterList",
41140 "parameters": [
41141 {
41142 "constant": false,
41143 "id": 2498,
41144 "name": "z",
41145 "nodeType": "VariableDeclaration",
41146 "scope": 2513,
41147 "src": "339:6:9",
41148 "stateVariable": false,
41149 "storageLocation": "default",
41150 "typeDescriptions": {
41151 "typeIdentifier": "t_uint256",
41152 "typeString": "uint256"
41153 },
41154 "typeName": {
41155 "id": 2497,
41156 "name": "uint",
41157 "nodeType": "ElementaryTypeName",
41158 "src": "339:4:9",
41159 "typeDescriptions": {
41160 "typeIdentifier": "t_uint256",
41161 "typeString": "uint256"
41162 }
41163 },
41164 "value": null,
41165 "visibility": "internal"
41166 }
41167 ],
41168 "src": "338:8:9"
41169 },
41170 "scope": 2542,
41171 "src": "287:127:9",
41172 "stateMutability": "pure",
41173 "superFunction": null,
41174 "visibility": "internal"
41175 },
41176 {
41177 "body": {
41178 "id": 2540,
41179 "nodeType": "Block",
41180 "src": "480:80:9",
41181 "statements": [
41182 {
41183 "expression": {
41184 "argumentTypes": null,
41185 "arguments": [
41186 {
41187 "argumentTypes": null,
41188 "commonType": {
41189 "typeIdentifier": "t_bool",
41190 "typeString": "bool"
41191 },
41192 "id": 2536,
41193 "isConstant": false,
41194 "isLValue": false,
41195 "isPure": false,
41196 "lValueRequested": false,
41197 "leftExpression": {
41198 "argumentTypes": null,
41199 "commonType": {
41200 "typeIdentifier": "t_uint256",
41201 "typeString": "uint256"
41202 },
41203 "id": 2525,
41204 "isConstant": false,
41205 "isLValue": false,
41206 "isPure": false,
41207 "lValueRequested": false,
41208 "leftExpression": {
41209 "argumentTypes": null,
41210 "id": 2523,
41211 "name": "y",
41212 "nodeType": "Identifier",
41213 "overloadedDeclarations": [],
41214 "referencedDeclaration": 2517,
41215 "src": "498:1:9",
41216 "typeDescriptions": {
41217 "typeIdentifier": "t_uint256",
41218 "typeString": "uint256"
41219 }
41220 },
41221 "nodeType": "BinaryOperation",
41222 "operator": "==",
41223 "rightExpression": {
41224 "argumentTypes": null,
41225 "hexValue": "30",
41226 "id": 2524,
41227 "isConstant": false,
41228 "isLValue": false,
41229 "isPure": true,
41230 "kind": "number",
41231 "lValueRequested": false,
41232 "nodeType": "Literal",
41233 "src": "503:1:9",
41234 "subdenomination": null,
41235 "typeDescriptions": {
41236 "typeIdentifier": "t_rational_0_by_1",
41237 "typeString": "int_const 0"
41238 },
41239 "value": "0"
41240 },
41241 "src": "498:6:9",
41242 "typeDescriptions": {
41243 "typeIdentifier": "t_bool",
41244 "typeString": "bool"
41245 }
41246 },
41247 "nodeType": "BinaryOperation",
41248 "operator": "||",
41249 "rightExpression": {
41250 "argumentTypes": null,
41251 "commonType": {
41252 "typeIdentifier": "t_uint256",
41253 "typeString": "uint256"
41254 },
41255 "id": 2535,
41256 "isConstant": false,
41257 "isLValue": false,
41258 "isPure": false,
41259 "lValueRequested": false,
41260 "leftExpression": {
41261 "argumentTypes": null,
41262 "commonType": {
41263 "typeIdentifier": "t_uint256",
41264 "typeString": "uint256"
41265 },
41266 "id": 2533,
41267 "isConstant": false,
41268 "isLValue": false,
41269 "isPure": false,
41270 "lValueRequested": false,
41271 "leftExpression": {
41272 "argumentTypes": null,
41273 "components": [
41274 {
41275 "argumentTypes": null,
41276 "id": 2530,
41277 "isConstant": false,
41278 "isLValue": false,
41279 "isPure": false,
41280 "lValueRequested": false,
41281 "leftHandSide": {
41282 "argumentTypes": null,
41283 "id": 2526,
41284 "name": "z",
41285 "nodeType": "Identifier",
41286 "overloadedDeclarations": [],
41287 "referencedDeclaration": 2520,
41288 "src": "509:1:9",
41289 "typeDescriptions": {
41290 "typeIdentifier": "t_uint256",
41291 "typeString": "uint256"
41292 }
41293 },
41294 "nodeType": "Assignment",
41295 "operator": "=",
41296 "rightHandSide": {
41297 "argumentTypes": null,
41298 "commonType": {
41299 "typeIdentifier": "t_uint256",
41300 "typeString": "uint256"
41301 },
41302 "id": 2529,
41303 "isConstant": false,
41304 "isLValue": false,
41305 "isPure": false,
41306 "lValueRequested": false,
41307 "leftExpression": {
41308 "argumentTypes": null,
41309 "id": 2527,
41310 "name": "x",
41311 "nodeType": "Identifier",
41312 "overloadedDeclarations": [],
41313 "referencedDeclaration": 2515,
41314 "src": "513:1:9",
41315 "typeDescriptions": {
41316 "typeIdentifier": "t_uint256",
41317 "typeString": "uint256"
41318 }
41319 },
41320 "nodeType": "BinaryOperation",
41321 "operator": "*",
41322 "rightExpression": {
41323 "argumentTypes": null,
41324 "id": 2528,
41325 "name": "y",
41326 "nodeType": "Identifier",
41327 "overloadedDeclarations": [],
41328 "referencedDeclaration": 2517,
41329 "src": "517:1:9",
41330 "typeDescriptions": {
41331 "typeIdentifier": "t_uint256",
41332 "typeString": "uint256"
41333 }
41334 },
41335 "src": "513:5:9",
41336 "typeDescriptions": {
41337 "typeIdentifier": "t_uint256",
41338 "typeString": "uint256"
41339 }
41340 },
41341 "src": "509:9:9",
41342 "typeDescriptions": {
41343 "typeIdentifier": "t_uint256",
41344 "typeString": "uint256"
41345 }
41346 }
41347 ],
41348 "id": 2531,
41349 "isConstant": false,
41350 "isInlineArray": false,
41351 "isLValue": false,
41352 "isPure": false,
41353 "lValueRequested": false,
41354 "nodeType": "TupleExpression",
41355 "src": "508:11:9",
41356 "typeDescriptions": {
41357 "typeIdentifier": "t_uint256",
41358 "typeString": "uint256"
41359 }
41360 },
41361 "nodeType": "BinaryOperation",
41362 "operator": "/",
41363 "rightExpression": {
41364 "argumentTypes": null,
41365 "id": 2532,
41366 "name": "y",
41367 "nodeType": "Identifier",
41368 "overloadedDeclarations": [],
41369 "referencedDeclaration": 2517,
41370 "src": "522:1:9",
41371 "typeDescriptions": {
41372 "typeIdentifier": "t_uint256",
41373 "typeString": "uint256"
41374 }
41375 },
41376 "src": "508:15:9",
41377 "typeDescriptions": {
41378 "typeIdentifier": "t_uint256",
41379 "typeString": "uint256"
41380 }
41381 },
41382 "nodeType": "BinaryOperation",
41383 "operator": "==",
41384 "rightExpression": {
41385 "argumentTypes": null,
41386 "id": 2534,
41387 "name": "x",
41388 "nodeType": "Identifier",
41389 "overloadedDeclarations": [],
41390 "referencedDeclaration": 2515,
41391 "src": "527:1:9",
41392 "typeDescriptions": {
41393 "typeIdentifier": "t_uint256",
41394 "typeString": "uint256"
41395 }
41396 },
41397 "src": "508:20:9",
41398 "typeDescriptions": {
41399 "typeIdentifier": "t_bool",
41400 "typeString": "bool"
41401 }
41402 },
41403 "src": "498:30:9",
41404 "typeDescriptions": {
41405 "typeIdentifier": "t_bool",
41406 "typeString": "bool"
41407 }
41408 },
41409 {
41410 "argumentTypes": null,
41411 "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77",
41412 "id": 2537,
41413 "isConstant": false,
41414 "isLValue": false,
41415 "isPure": true,
41416 "kind": "string",
41417 "lValueRequested": false,
41418 "nodeType": "Literal",
41419 "src": "530:22:9",
41420 "subdenomination": null,
41421 "typeDescriptions": {
41422 "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd",
41423 "typeString": "literal_string \"ds-math-mul-overflow\""
41424 },
41425 "value": "ds-math-mul-overflow"
41426 }
41427 ],
41428 "expression": {
41429 "argumentTypes": [
41430 {
41431 "typeIdentifier": "t_bool",
41432 "typeString": "bool"
41433 },
41434 {
41435 "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd",
41436 "typeString": "literal_string \"ds-math-mul-overflow\""
41437 }
41438 ],
41439 "id": 2522,
41440 "name": "require",
41441 "nodeType": "Identifier",
41442 "overloadedDeclarations": [
41443 2620,
41444 2621
41445 ],
41446 "referencedDeclaration": 2621,
41447 "src": "490:7:9",
41448 "typeDescriptions": {
41449 "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
41450 "typeString": "function (bool,string memory) pure"
41451 }
41452 },
41453 "id": 2538,
41454 "isConstant": false,
41455 "isLValue": false,
41456 "isPure": false,
41457 "kind": "functionCall",
41458 "lValueRequested": false,
41459 "names": [],
41460 "nodeType": "FunctionCall",
41461 "src": "490:63:9",
41462 "typeDescriptions": {
41463 "typeIdentifier": "t_tuple$__$",
41464 "typeString": "tuple()"
41465 }
41466 },
41467 "id": 2539,
41468 "nodeType": "ExpressionStatement",
41469 "src": "490:63:9"
41470 }
41471 ]
41472 },
41473 "documentation": null,
41474 "id": 2541,
41475 "implemented": true,
41476 "kind": "function",
41477 "modifiers": [],
41478 "name": "mul",
41479 "nodeType": "FunctionDefinition",
41480 "parameters": {
41481 "id": 2518,
41482 "nodeType": "ParameterList",
41483 "parameters": [
41484 {
41485 "constant": false,
41486 "id": 2515,
41487 "name": "x",
41488 "nodeType": "VariableDeclaration",
41489 "scope": 2541,
41490 "src": "433:6:9",
41491 "stateVariable": false,
41492 "storageLocation": "default",
41493 "typeDescriptions": {
41494 "typeIdentifier": "t_uint256",
41495 "typeString": "uint256"
41496 },
41497 "typeName": {
41498 "id": 2514,
41499 "name": "uint",
41500 "nodeType": "ElementaryTypeName",
41501 "src": "433:4:9",
41502 "typeDescriptions": {
41503 "typeIdentifier": "t_uint256",
41504 "typeString": "uint256"
41505 }
41506 },
41507 "value": null,
41508 "visibility": "internal"
41509 },
41510 {
41511 "constant": false,
41512 "id": 2517,
41513 "name": "y",
41514 "nodeType": "VariableDeclaration",
41515 "scope": 2541,
41516 "src": "441:6:9",
41517 "stateVariable": false,
41518 "storageLocation": "default",
41519 "typeDescriptions": {
41520 "typeIdentifier": "t_uint256",
41521 "typeString": "uint256"
41522 },
41523 "typeName": {
41524 "id": 2516,
41525 "name": "uint",
41526 "nodeType": "ElementaryTypeName",
41527 "src": "441:4:9",
41528 "typeDescriptions": {
41529 "typeIdentifier": "t_uint256",
41530 "typeString": "uint256"
41531 }
41532 },
41533 "value": null,
41534 "visibility": "internal"
41535 }
41536 ],
41537 "src": "432:16:9"
41538 },
41539 "returnParameters": {
41540 "id": 2521,
41541 "nodeType": "ParameterList",
41542 "parameters": [
41543 {
41544 "constant": false,
41545 "id": 2520,
41546 "name": "z",
41547 "nodeType": "VariableDeclaration",
41548 "scope": 2541,
41549 "src": "472:6:9",
41550 "stateVariable": false,
41551 "storageLocation": "default",
41552 "typeDescriptions": {
41553 "typeIdentifier": "t_uint256",
41554 "typeString": "uint256"
41555 },
41556 "typeName": {
41557 "id": 2519,
41558 "name": "uint",
41559 "nodeType": "ElementaryTypeName",
41560 "src": "472:4:9",
41561 "typeDescriptions": {
41562 "typeIdentifier": "t_uint256",
41563 "typeString": "uint256"
41564 }
41565 },
41566 "value": null,
41567 "visibility": "internal"
41568 }
41569 ],
41570 "src": "471:8:9"
41571 },
41572 "scope": 2542,
41573 "src": "420:140:9",
41574 "stateMutability": "pure",
41575 "superFunction": null,
41576 "visibility": "internal"
41577 }
41578 ],
41579 "scope": 2543,
41580 "src": "132:430:9"
41581 }
41582 ],
41583 "src": "0:563:9"
41584 }
41585 },
41586 "contracts/libraries/UQ112x112.sol": {
41587 "id": 10,
41588 "AST": {
41589 "absolutePath": "contracts/libraries/UQ112x112.sol",
41590 "exportedSymbols": {
41591 "UQ112x112": [
41592 2584
41593 ]
41594 },
41595 "id": 2585,
41596 "nodeType": "SourceUnit",
41597 "nodes": [
41598 {
41599 "id": 2544,
41600 "literals": [
41601 "solidity",
41602 "=",
41603 "0.5",
41604 ".16"
41605 ],
41606 "nodeType": "PragmaDirective",
41607 "src": "0:24:10"
41608 },
41609 {
41610 "baseContracts": [],
41611 "contractDependencies": [],
41612 "contractKind": "library",
41613 "documentation": null,
41614 "fullyImplemented": true,
41615 "id": 2584,
41616 "linearizedBaseContracts": [
41617 2584
41618 ],
41619 "name": "UQ112x112",
41620 "nodeType": "ContractDefinition",
41621 "nodes": [
41622 {
41623 "constant": true,
41624 "id": 2549,
41625 "name": "Q112",
41626 "nodeType": "VariableDeclaration",
41627 "scope": 2584,
41628 "src": "207:30:10",
41629 "stateVariable": true,
41630 "storageLocation": "default",
41631 "typeDescriptions": {
41632 "typeIdentifier": "t_uint224",
41633 "typeString": "uint224"
41634 },
41635 "typeName": {
41636 "id": 2545,
41637 "name": "uint224",
41638 "nodeType": "ElementaryTypeName",
41639 "src": "207:7:10",
41640 "typeDescriptions": {
41641 "typeIdentifier": "t_uint224",
41642 "typeString": "uint224"
41643 }
41644 },
41645 "value": {
41646 "argumentTypes": null,
41647 "commonType": {
41648 "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
41649 "typeString": "int_const 5192...(26 digits omitted)...0096"
41650 },
41651 "id": 2548,
41652 "isConstant": false,
41653 "isLValue": false,
41654 "isPure": true,
41655 "lValueRequested": false,
41656 "leftExpression": {
41657 "argumentTypes": null,
41658 "hexValue": "32",
41659 "id": 2546,
41660 "isConstant": false,
41661 "isLValue": false,
41662 "isPure": true,
41663 "kind": "number",
41664 "lValueRequested": false,
41665 "nodeType": "Literal",
41666 "src": "231:1:10",
41667 "subdenomination": null,
41668 "typeDescriptions": {
41669 "typeIdentifier": "t_rational_2_by_1",
41670 "typeString": "int_const 2"
41671 },
41672 "value": "2"
41673 },
41674 "nodeType": "BinaryOperation",
41675 "operator": "**",
41676 "rightExpression": {
41677 "argumentTypes": null,
41678 "hexValue": "313132",
41679 "id": 2547,
41680 "isConstant": false,
41681 "isLValue": false,
41682 "isPure": true,
41683 "kind": "number",
41684 "lValueRequested": false,
41685 "nodeType": "Literal",
41686 "src": "234:3:10",
41687 "subdenomination": null,
41688 "typeDescriptions": {
41689 "typeIdentifier": "t_rational_112_by_1",
41690 "typeString": "int_const 112"
41691 },
41692 "value": "112"
41693 },
41694 "src": "231:6:10",
41695 "typeDescriptions": {
41696 "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
41697 "typeString": "int_const 5192...(26 digits omitted)...0096"
41698 }
41699 },
41700 "visibility": "internal"
41701 },
41702 {
41703 "body": {
41704 "id": 2564,
41705 "nodeType": "Block",
41706 "src": "344:57:10",
41707 "statements": [
41708 {
41709 "expression": {
41710 "argumentTypes": null,
41711 "id": 2562,
41712 "isConstant": false,
41713 "isLValue": false,
41714 "isPure": false,
41715 "lValueRequested": false,
41716 "leftHandSide": {
41717 "argumentTypes": null,
41718 "id": 2556,
41719 "name": "z",
41720 "nodeType": "Identifier",
41721 "overloadedDeclarations": [],
41722 "referencedDeclaration": 2554,
41723 "src": "354:1:10",
41724 "typeDescriptions": {
41725 "typeIdentifier": "t_uint224",
41726 "typeString": "uint224"
41727 }
41728 },
41729 "nodeType": "Assignment",
41730 "operator": "=",
41731 "rightHandSide": {
41732 "argumentTypes": null,
41733 "commonType": {
41734 "typeIdentifier": "t_uint224",
41735 "typeString": "uint224"
41736 },
41737 "id": 2561,
41738 "isConstant": false,
41739 "isLValue": false,
41740 "isPure": false,
41741 "lValueRequested": false,
41742 "leftExpression": {
41743 "argumentTypes": null,
41744 "arguments": [
41745 {
41746 "argumentTypes": null,
41747 "id": 2558,
41748 "name": "y",
41749 "nodeType": "Identifier",
41750 "overloadedDeclarations": [],
41751 "referencedDeclaration": 2551,
41752 "src": "366:1:10",
41753 "typeDescriptions": {
41754 "typeIdentifier": "t_uint112",
41755 "typeString": "uint112"
41756 }
41757 }
41758 ],
41759 "expression": {
41760 "argumentTypes": [
41761 {
41762 "typeIdentifier": "t_uint112",
41763 "typeString": "uint112"
41764 }
41765 ],
41766 "id": 2557,
41767 "isConstant": false,
41768 "isLValue": false,
41769 "isPure": true,
41770 "lValueRequested": false,
41771 "nodeType": "ElementaryTypeNameExpression",
41772 "src": "358:7:10",
41773 "typeDescriptions": {
41774 "typeIdentifier": "t_type$_t_uint224_$",
41775 "typeString": "type(uint224)"
41776 },
41777 "typeName": "uint224"
41778 },
41779 "id": 2559,
41780 "isConstant": false,
41781 "isLValue": false,
41782 "isPure": false,
41783 "kind": "typeConversion",
41784 "lValueRequested": false,
41785 "names": [],
41786 "nodeType": "FunctionCall",
41787 "src": "358:10:10",
41788 "typeDescriptions": {
41789 "typeIdentifier": "t_uint224",
41790 "typeString": "uint224"
41791 }
41792 },
41793 "nodeType": "BinaryOperation",
41794 "operator": "*",
41795 "rightExpression": {
41796 "argumentTypes": null,
41797 "id": 2560,
41798 "name": "Q112",
41799 "nodeType": "Identifier",
41800 "overloadedDeclarations": [],
41801 "referencedDeclaration": 2549,
41802 "src": "371:4:10",
41803 "typeDescriptions": {
41804 "typeIdentifier": "t_uint224",
41805 "typeString": "uint224"
41806 }
41807 },
41808 "src": "358:17:10",
41809 "typeDescriptions": {
41810 "typeIdentifier": "t_uint224",
41811 "typeString": "uint224"
41812 }
41813 },
41814 "src": "354:21:10",
41815 "typeDescriptions": {
41816 "typeIdentifier": "t_uint224",
41817 "typeString": "uint224"
41818 }
41819 },
41820 "id": 2563,
41821 "nodeType": "ExpressionStatement",
41822 "src": "354:21:10"
41823 }
41824 ]
41825 },
41826 "documentation": null,
41827 "id": 2565,
41828 "implemented": true,
41829 "kind": "function",
41830 "modifiers": [],
41831 "name": "encode",
41832 "nodeType": "FunctionDefinition",
41833 "parameters": {
41834 "id": 2552,
41835 "nodeType": "ParameterList",
41836 "parameters": [
41837 {
41838 "constant": false,
41839 "id": 2551,
41840 "name": "y",
41841 "nodeType": "VariableDeclaration",
41842 "scope": 2565,
41843 "src": "299:9:10",
41844 "stateVariable": false,
41845 "storageLocation": "default",
41846 "typeDescriptions": {
41847 "typeIdentifier": "t_uint112",
41848 "typeString": "uint112"
41849 },
41850 "typeName": {
41851 "id": 2550,
41852 "name": "uint112",
41853 "nodeType": "ElementaryTypeName",
41854 "src": "299:7:10",
41855 "typeDescriptions": {
41856 "typeIdentifier": "t_uint112",
41857 "typeString": "uint112"
41858 }
41859 },
41860 "value": null,
41861 "visibility": "internal"
41862 }
41863 ],
41864 "src": "298:11:10"
41865 },
41866 "returnParameters": {
41867 "id": 2555,
41868 "nodeType": "ParameterList",
41869 "parameters": [
41870 {
41871 "constant": false,
41872 "id": 2554,
41873 "name": "z",
41874 "nodeType": "VariableDeclaration",
41875 "scope": 2565,
41876 "src": "333:9:10",
41877 "stateVariable": false,
41878 "storageLocation": "default",
41879 "typeDescriptions": {
41880 "typeIdentifier": "t_uint224",
41881 "typeString": "uint224"
41882 },
41883 "typeName": {
41884 "id": 2553,
41885 "name": "uint224",
41886 "nodeType": "ElementaryTypeName",
41887 "src": "333:7:10",
41888 "typeDescriptions": {
41889 "typeIdentifier": "t_uint224",
41890 "typeString": "uint224"
41891 }
41892 },
41893 "value": null,
41894 "visibility": "internal"
41895 }
41896 ],
41897 "src": "332:11:10"
41898 },
41899 "scope": 2584,
41900 "src": "283:118:10",
41901 "stateMutability": "pure",
41902 "superFunction": null,
41903 "visibility": "internal"
41904 },
41905 {
41906 "body": {
41907 "id": 2582,
41908 "nodeType": "Block",
41909 "src": "540:35:10",
41910 "statements": [
41911 {
41912 "expression": {
41913 "argumentTypes": null,
41914 "id": 2580,
41915 "isConstant": false,
41916 "isLValue": false,
41917 "isPure": false,
41918 "lValueRequested": false,
41919 "leftHandSide": {
41920 "argumentTypes": null,
41921 "id": 2574,
41922 "name": "z",
41923 "nodeType": "Identifier",
41924 "overloadedDeclarations": [],
41925 "referencedDeclaration": 2572,
41926 "src": "550:1:10",
41927 "typeDescriptions": {
41928 "typeIdentifier": "t_uint224",
41929 "typeString": "uint224"
41930 }
41931 },
41932 "nodeType": "Assignment",
41933 "operator": "=",
41934 "rightHandSide": {
41935 "argumentTypes": null,
41936 "commonType": {
41937 "typeIdentifier": "t_uint224",
41938 "typeString": "uint224"
41939 },
41940 "id": 2579,
41941 "isConstant": false,
41942 "isLValue": false,
41943 "isPure": false,
41944 "lValueRequested": false,
41945 "leftExpression": {
41946 "argumentTypes": null,
41947 "id": 2575,
41948 "name": "x",
41949 "nodeType": "Identifier",
41950 "overloadedDeclarations": [],
41951 "referencedDeclaration": 2567,
41952 "src": "554:1:10",
41953 "typeDescriptions": {
41954 "typeIdentifier": "t_uint224",
41955 "typeString": "uint224"
41956 }
41957 },
41958 "nodeType": "BinaryOperation",
41959 "operator": "/",
41960 "rightExpression": {
41961 "argumentTypes": null,
41962 "arguments": [
41963 {
41964 "argumentTypes": null,
41965 "id": 2577,
41966 "name": "y",
41967 "nodeType": "Identifier",
41968 "overloadedDeclarations": [],
41969 "referencedDeclaration": 2569,
41970 "src": "566:1:10",
41971 "typeDescriptions": {
41972 "typeIdentifier": "t_uint112",
41973 "typeString": "uint112"
41974 }
41975 }
41976 ],
41977 "expression": {
41978 "argumentTypes": [
41979 {
41980 "typeIdentifier": "t_uint112",
41981 "typeString": "uint112"
41982 }
41983 ],
41984 "id": 2576,
41985 "isConstant": false,
41986 "isLValue": false,
41987 "isPure": true,
41988 "lValueRequested": false,
41989 "nodeType": "ElementaryTypeNameExpression",
41990 "src": "558:7:10",
41991 "typeDescriptions": {
41992 "typeIdentifier": "t_type$_t_uint224_$",
41993 "typeString": "type(uint224)"
41994 },
41995 "typeName": "uint224"
41996 },
41997 "id": 2578,
41998 "isConstant": false,
41999 "isLValue": false,
42000 "isPure": false,
42001 "kind": "typeConversion",
42002 "lValueRequested": false,
42003 "names": [],
42004 "nodeType": "FunctionCall",
42005 "src": "558:10:10",
42006 "typeDescriptions": {
42007 "typeIdentifier": "t_uint224",
42008 "typeString": "uint224"
42009 }
42010 },
42011 "src": "554:14:10",
42012 "typeDescriptions": {
42013 "typeIdentifier": "t_uint224",
42014 "typeString": "uint224"
42015 }
42016 },
42017 "src": "550:18:10",
42018 "typeDescriptions": {
42019 "typeIdentifier": "t_uint224",
42020 "typeString": "uint224"
42021 }
42022 },
42023 "id": 2581,
42024 "nodeType": "ExpressionStatement",
42025 "src": "550:18:10"
42026 }
42027 ]
42028 },
42029 "documentation": null,
42030 "id": 2583,
42031 "implemented": true,
42032 "kind": "function",
42033 "modifiers": [],
42034 "name": "uqdiv",
42035 "nodeType": "FunctionDefinition",
42036 "parameters": {
42037 "id": 2570,
42038 "nodeType": "ParameterList",
42039 "parameters": [
42040 {
42041 "constant": false,
42042 "id": 2567,
42043 "name": "x",
42044 "nodeType": "VariableDeclaration",
42045 "scope": 2583,
42046 "src": "484:9:10",
42047 "stateVariable": false,
42048 "storageLocation": "default",
42049 "typeDescriptions": {
42050 "typeIdentifier": "t_uint224",
42051 "typeString": "uint224"
42052 },
42053 "typeName": {
42054 "id": 2566,
42055 "name": "uint224",
42056 "nodeType": "ElementaryTypeName",
42057 "src": "484:7:10",
42058 "typeDescriptions": {
42059 "typeIdentifier": "t_uint224",
42060 "typeString": "uint224"
42061 }
42062 },
42063 "value": null,
42064 "visibility": "internal"
42065 },
42066 {
42067 "constant": false,
42068 "id": 2569,
42069 "name": "y",
42070 "nodeType": "VariableDeclaration",
42071 "scope": 2583,
42072 "src": "495:9:10",
42073 "stateVariable": false,
42074 "storageLocation": "default",
42075 "typeDescriptions": {
42076 "typeIdentifier": "t_uint112",
42077 "typeString": "uint112"
42078 },
42079 "typeName": {
42080 "id": 2568,
42081 "name": "uint112",
42082 "nodeType": "ElementaryTypeName",
42083 "src": "495:7:10",
42084 "typeDescriptions": {
42085 "typeIdentifier": "t_uint112",
42086 "typeString": "uint112"
42087 }
42088 },
42089 "value": null,
42090 "visibility": "internal"
42091 }
42092 ],
42093 "src": "483:22:10"
42094 },
42095 "returnParameters": {
42096 "id": 2573,
42097 "nodeType": "ParameterList",
42098 "parameters": [
42099 {
42100 "constant": false,
42101 "id": 2572,
42102 "name": "z",
42103 "nodeType": "VariableDeclaration",
42104 "scope": 2583,
42105 "src": "529:9:10",
42106 "stateVariable": false,
42107 "storageLocation": "default",
42108 "typeDescriptions": {
42109 "typeIdentifier": "t_uint224",
42110 "typeString": "uint224"
42111 },
42112 "typeName": {
42113 "id": 2571,
42114 "name": "uint224",
42115 "nodeType": "ElementaryTypeName",
42116 "src": "529:7:10",
42117 "typeDescriptions": {
42118 "typeIdentifier": "t_uint224",
42119 "typeString": "uint224"
42120 }
42121 },
42122 "value": null,
42123 "visibility": "internal"
42124 }
42125 ],
42126 "src": "528:11:10"
42127 },
42128 "scope": 2584,
42129 "src": "469:106:10",
42130 "stateMutability": "pure",
42131 "superFunction": null,
42132 "visibility": "internal"
42133 }
42134 ],
42135 "scope": 2585,
42136 "src": "183:394:10"
42137 }
42138 ],
42139 "src": "0:578:10"
42140 }
42141 },
42142 "contracts/test/ERC20.sol": {
42143 "id": 11,
42144 "AST": {
42145 "absolutePath": "contracts/test/ERC20.sol",
42146 "exportedSymbols": {
42147 "ERC20": [
42148 2602
42149 ]
42150 },
42151 "id": 2603,
42152 "nodeType": "SourceUnit",
42153 "nodes": [
42154 {
42155 "id": 2586,
42156 "literals": [
42157 "solidity",
42158 "=",
42159 "0.5",
42160 ".16"
42161 ],
42162 "nodeType": "PragmaDirective",
42163 "src": "0:24:11"
42164 },
42165 {
42166 "absolutePath": "contracts/UniswapV2ERC20.sol",
42167 "file": "../UniswapV2ERC20.sol",
42168 "id": 2587,
42169 "nodeType": "ImportDirective",
42170 "scope": 2603,
42171 "sourceUnit": 385,
42172 "src": "26:31:11",
42173 "symbolAliases": [],
42174 "unitAlias": ""
42175 },
42176 {
42177 "baseContracts": [
42178 {
42179 "arguments": null,
42180 "baseName": {
42181 "contractScope": null,
42182 "id": 2588,
42183 "name": "UniswapV2ERC20",
42184 "nodeType": "UserDefinedTypeName",
42185 "referencedDeclaration": 384,
42186 "src": "77:14:11",
42187 "typeDescriptions": {
42188 "typeIdentifier": "t_contract$_UniswapV2ERC20_$384",
42189 "typeString": "contract UniswapV2ERC20"
42190 }
42191 },
42192 "id": 2589,
42193 "nodeType": "InheritanceSpecifier",
42194 "src": "77:14:11"
42195 }
42196 ],
42197 "contractDependencies": [
42198 384,
42199 2050
42200 ],
42201 "contractKind": "contract",
42202 "documentation": null,
42203 "fullyImplemented": true,
42204 "id": 2602,
42205 "linearizedBaseContracts": [
42206 2602,
42207 384,
42208 2050
42209 ],
42210 "name": "ERC20",
42211 "nodeType": "ContractDefinition",
42212 "nodes": [
42213 {
42214 "body": {
42215 "id": 2600,
42216 "nodeType": "Block",
42217 "src": "136:48:11",
42218 "statements": [
42219 {
42220 "expression": {
42221 "argumentTypes": null,
42222 "arguments": [
42223 {
42224 "argumentTypes": null,
42225 "expression": {
42226 "argumentTypes": null,
42227 "id": 2595,
42228 "name": "msg",
42229 "nodeType": "Identifier",
42230 "overloadedDeclarations": [],
42231 "referencedDeclaration": 2617,
42232 "src": "152:3:11",
42233 "typeDescriptions": {
42234 "typeIdentifier": "t_magic_message",
42235 "typeString": "msg"
42236 }
42237 },
42238 "id": 2596,
42239 "isConstant": false,
42240 "isLValue": false,
42241 "isPure": false,
42242 "lValueRequested": false,
42243 "memberName": "sender",
42244 "nodeType": "MemberAccess",
42245 "referencedDeclaration": null,
42246 "src": "152:10:11",
42247 "typeDescriptions": {
42248 "typeIdentifier": "t_address_payable",
42249 "typeString": "address payable"
42250 }
42251 },
42252 {
42253 "argumentTypes": null,
42254 "id": 2597,
42255 "name": "_totalSupply",
42256 "nodeType": "Identifier",
42257 "overloadedDeclarations": [],
42258 "referencedDeclaration": 2591,
42259 "src": "164:12:11",
42260 "typeDescriptions": {
42261 "typeIdentifier": "t_uint256",
42262 "typeString": "uint256"
42263 }
42264 }
42265 ],
42266 "expression": {
42267 "argumentTypes": [
42268 {
42269 "typeIdentifier": "t_address_payable",
42270 "typeString": "address payable"
42271 },
42272 {
42273 "typeIdentifier": "t_uint256",
42274 "typeString": "uint256"
42275 }
42276 ],
42277 "id": 2594,
42278 "name": "_mint",
42279 "nodeType": "Identifier",
42280 "overloadedDeclarations": [],
42281 "referencedDeclaration": 121,
42282 "src": "146:5:11",
42283 "typeDescriptions": {
42284 "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
42285 "typeString": "function (address,uint256)"
42286 }
42287 },
42288 "id": 2598,
42289 "isConstant": false,
42290 "isLValue": false,
42291 "isPure": false,
42292 "kind": "functionCall",
42293 "lValueRequested": false,
42294 "names": [],
42295 "nodeType": "FunctionCall",
42296 "src": "146:31:11",
42297 "typeDescriptions": {
42298 "typeIdentifier": "t_tuple$__$",
42299 "typeString": "tuple()"
42300 }
42301 },
42302 "id": 2599,
42303 "nodeType": "ExpressionStatement",
42304 "src": "146:31:11"
42305 }
42306 ]
42307 },
42308 "documentation": null,
42309 "id": 2601,
42310 "implemented": true,
42311 "kind": "constructor",
42312 "modifiers": [],
42313 "name": "",
42314 "nodeType": "FunctionDefinition",
42315 "parameters": {
42316 "id": 2592,
42317 "nodeType": "ParameterList",
42318 "parameters": [
42319 {
42320 "constant": false,
42321 "id": 2591,
42322 "name": "_totalSupply",
42323 "nodeType": "VariableDeclaration",
42324 "scope": 2601,
42325 "src": "110:17:11",
42326 "stateVariable": false,
42327 "storageLocation": "default",
42328 "typeDescriptions": {
42329 "typeIdentifier": "t_uint256",
42330 "typeString": "uint256"
42331 },
42332 "typeName": {
42333 "id": 2590,
42334 "name": "uint",
42335 "nodeType": "ElementaryTypeName",
42336 "src": "110:4:11",
42337 "typeDescriptions": {
42338 "typeIdentifier": "t_uint256",
42339 "typeString": "uint256"
42340 }
42341 },
42342 "value": null,
42343 "visibility": "internal"
42344 }
42345 ],
42346 "src": "109:19:11"
42347 },
42348 "returnParameters": {
42349 "id": 2593,
42350 "nodeType": "ParameterList",
42351 "parameters": [],
42352 "src": "136:0:11"
42353 },
42354 "scope": 2602,
42355 "src": "98:86:11",
42356 "stateMutability": "nonpayable",
42357 "superFunction": null,
42358 "visibility": "public"
42359 }
42360 ],
42361 "scope": 2603,
42362 "src": "59:127:11"
42363 }
42364 ],
42365 "src": "0:187:11"
42366 }
42367 }
42368 },
42369 "sourceList": [
42370 "contracts/UniswapV2ERC20.sol",
42371 "contracts/UniswapV2Factory.sol",
42372 "contracts/UniswapV2Pair.sol",
42373 "contracts/interfaces/IERC20.sol",
42374 "contracts/interfaces/IUniswapV2Callee.sol",
42375 "contracts/interfaces/IUniswapV2ERC20.sol",
42376 "contracts/interfaces/IUniswapV2Factory.sol",
42377 "contracts/interfaces/IUniswapV2Pair.sol",
42378 "contracts/libraries/Math.sol",
42379 "contracts/libraries/SafeMath.sol",
42380 "contracts/libraries/UQ112x112.sol",
42381 "contracts/test/ERC20.sol"
42382 ]
42383}
\No newline at end of file