Skip to content

Instantly share code, notes, and snippets.

@chuasonglin1995
Created November 5, 2023 15:10
Show Gist options
  • Save chuasonglin1995/8a9cf3fb10a56d2d37b09d62ab6e7397 to your computer and use it in GitHub Desktop.
Save chuasonglin1995/8a9cf3fb10a56d2d37b09d62ab6e7397 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.22+commit.4fc1097e.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;
library console {
address constant CONSOLE_ADDRESS =
0x000000000000000000636F6e736F6c652e6c6f67;
function _sendLogPayloadImplementation(bytes memory payload) internal view {
address consoleAddress = CONSOLE_ADDRESS;
/// @solidity memory-safe-assembly
assembly {
pop(
staticcall(
gas(),
consoleAddress,
add(payload, 32),
mload(payload),
0,
0
)
)
}
}
function _castToPure(
function(bytes memory) internal view fnIn
) internal pure returns (function(bytes memory) pure fnOut) {
assembly {
fnOut := fnIn
}
}
function _sendLogPayload(bytes memory payload) internal pure {
_castToPure(_sendLogPayloadImplementation)(payload);
}
function log() internal pure {
_sendLogPayload(abi.encodeWithSignature("log()"));
}
function logInt(int256 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(int256)", p0));
}
function logUint(uint256 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256)", p0));
}
function logString(string memory p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function logBool(bool p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function logAddress(address p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function logBytes(bytes memory p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
}
function logBytes1(bytes1 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
}
function logBytes2(bytes2 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
}
function logBytes3(bytes3 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
}
function logBytes4(bytes4 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
}
function logBytes5(bytes5 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
}
function logBytes6(bytes6 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
}
function logBytes7(bytes7 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
}
function logBytes8(bytes8 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
}
function logBytes9(bytes9 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
}
function logBytes10(bytes10 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
}
function logBytes11(bytes11 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
}
function logBytes12(bytes12 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
}
function logBytes13(bytes13 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
}
function logBytes14(bytes14 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
}
function logBytes15(bytes15 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
}
function logBytes16(bytes16 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
}
function logBytes17(bytes17 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
}
function logBytes18(bytes18 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
}
function logBytes19(bytes19 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
}
function logBytes20(bytes20 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
}
function logBytes21(bytes21 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
}
function logBytes22(bytes22 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
}
function logBytes23(bytes23 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
}
function logBytes24(bytes24 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
}
function logBytes25(bytes25 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
}
function logBytes26(bytes26 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
}
function logBytes27(bytes27 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
}
function logBytes28(bytes28 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
}
function logBytes29(bytes29 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
}
function logBytes30(bytes30 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
}
function logBytes31(bytes31 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
}
function logBytes32(bytes32 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
}
function log(uint256 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256)", p0));
}
function log(string memory p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function log(bool p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function log(address p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function log(uint256 p0, uint256 p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256)", p0, p1));
}
function log(uint256 p0, string memory p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string)", p0, p1));
}
function log(uint256 p0, bool p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool)", p0, p1));
}
function log(uint256 p0, address p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address)", p0, p1));
}
function log(string memory p0, uint256 p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256)", p0, p1));
}
function log(string memory p0, string memory p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
}
function log(string memory p0, bool p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
}
function log(string memory p0, address p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
}
function log(bool p0, uint256 p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256)", p0, p1));
}
function log(bool p0, string memory p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
}
function log(bool p0, bool p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
}
function log(bool p0, address p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
}
function log(address p0, uint256 p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256)", p0, p1));
}
function log(address p0, string memory p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
}
function log(address p0, bool p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
}
function log(address p0, address p1) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
}
function log(uint256 p0, uint256 p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256)", p0, p1, p2));
}
function log(uint256 p0, uint256 p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string)", p0, p1, p2));
}
function log(uint256 p0, uint256 p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool)", p0, p1, p2));
}
function log(uint256 p0, uint256 p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address)", p0, p1, p2));
}
function log(uint256 p0, string memory p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256)", p0, p1, p2));
}
function log(uint256 p0, string memory p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string)", p0, p1, p2));
}
function log(uint256 p0, string memory p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool)", p0, p1, p2));
}
function log(uint256 p0, string memory p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address)", p0, p1, p2));
}
function log(uint256 p0, bool p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256)", p0, p1, p2));
}
function log(uint256 p0, bool p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string)", p0, p1, p2));
}
function log(uint256 p0, bool p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool)", p0, p1, p2));
}
function log(uint256 p0, bool p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address)", p0, p1, p2));
}
function log(uint256 p0, address p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256)", p0, p1, p2));
}
function log(uint256 p0, address p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string)", p0, p1, p2));
}
function log(uint256 p0, address p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool)", p0, p1, p2));
}
function log(uint256 p0, address p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address)", p0, p1, p2));
}
function log(string memory p0, uint256 p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256)", p0, p1, p2));
}
function log(string memory p0, uint256 p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string)", p0, p1, p2));
}
function log(string memory p0, uint256 p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool)", p0, p1, p2));
}
function log(string memory p0, uint256 p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address)", p0, p1, p2));
}
function log(string memory p0, string memory p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256)", p0, p1, p2));
}
function log(string memory p0, string memory p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
}
function log(string memory p0, string memory p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
}
function log(string memory p0, string memory p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
}
function log(string memory p0, bool p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256)", p0, p1, p2));
}
function log(string memory p0, bool p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
}
function log(string memory p0, bool p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
}
function log(string memory p0, bool p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
}
function log(string memory p0, address p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256)", p0, p1, p2));
}
function log(string memory p0, address p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
}
function log(string memory p0, address p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
}
function log(string memory p0, address p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
}
function log(bool p0, uint256 p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256)", p0, p1, p2));
}
function log(bool p0, uint256 p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string)", p0, p1, p2));
}
function log(bool p0, uint256 p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool)", p0, p1, p2));
}
function log(bool p0, uint256 p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address)", p0, p1, p2));
}
function log(bool p0, string memory p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256)", p0, p1, p2));
}
function log(bool p0, string memory p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
}
function log(bool p0, string memory p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
}
function log(bool p0, string memory p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
}
function log(bool p0, bool p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256)", p0, p1, p2));
}
function log(bool p0, bool p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
}
function log(bool p0, bool p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
}
function log(bool p0, bool p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
}
function log(bool p0, address p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256)", p0, p1, p2));
}
function log(bool p0, address p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
}
function log(bool p0, address p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
}
function log(bool p0, address p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
}
function log(address p0, uint256 p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256)", p0, p1, p2));
}
function log(address p0, uint256 p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string)", p0, p1, p2));
}
function log(address p0, uint256 p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool)", p0, p1, p2));
}
function log(address p0, uint256 p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address)", p0, p1, p2));
}
function log(address p0, string memory p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256)", p0, p1, p2));
}
function log(address p0, string memory p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
}
function log(address p0, string memory p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
}
function log(address p0, string memory p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
}
function log(address p0, bool p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256)", p0, p1, p2));
}
function log(address p0, bool p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
}
function log(address p0, bool p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
}
function log(address p0, bool p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
}
function log(address p0, address p1, uint256 p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256)", p0, p1, p2));
}
function log(address p0, address p1, string memory p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
}
function log(address p0, address p1, bool p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
}
function log(address p0, address p1, address p2) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
}
function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,string)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,address)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,string)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,address)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,string)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,address)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,string)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,address)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,string)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,address)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,string)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,address)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,string)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,address)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,string)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,address)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,string)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,address)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,string)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,address)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,string)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,address)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,string)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,address)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,string)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,address)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,string)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,address)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,string)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,address)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,string)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,uint256)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,string)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,address)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,uint256)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,string)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,address)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,uint256)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,uint256)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,string)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,uint256)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint256)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint256)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint256)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,uint256)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint256)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint256)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint256)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,uint256)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint256)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint256)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint256)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,uint256)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,string)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,bool)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,address)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,uint256)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,string)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,bool)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,address)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,uint256)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,string)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,address)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,uint256)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,string)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,bool)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,uint256)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint256)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint256)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint256)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,uint256)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint256)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint256)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint256)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint256 p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,uint256)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint256 p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint256 p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint256 p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint256)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint256)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, uint256 p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint256)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, string memory p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, bool p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, address p3) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
library TestsAccounts {
function getAccount(uint index) pure public returns (address) {
return address(0);
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.4.22 <0.9.0;
library Assert {
event AssertionEvent(
bool passed,
string message,
string methodName
);
event AssertionEventUint(
bool passed,
string message,
string methodName,
uint256 returned,
uint256 expected
);
event AssertionEventInt(
bool passed,
string message,
string methodName,
int256 returned,
int256 expected
);
event AssertionEventBool(
bool passed,
string message,
string methodName,
bool returned,
bool expected
);
event AssertionEventAddress(
bool passed,
string message,
string methodName,
address returned,
address expected
);
event AssertionEventBytes32(
bool passed,
string message,
string methodName,
bytes32 returned,
bytes32 expected
);
event AssertionEventString(
bool passed,
string message,
string methodName,
string returned,
string expected
);
event AssertionEventUintInt(
bool passed,
string message,
string methodName,
uint256 returned,
int256 expected
);
event AssertionEventIntUint(
bool passed,
string message,
string methodName,
int256 returned,
uint256 expected
);
function ok(bool a, string memory message) public returns (bool result) {
result = a;
emit AssertionEvent(result, message, "ok");
}
function equal(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventUint(result, message, "equal", a, b);
}
function equal(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventInt(result, message, "equal", a, b);
}
function equal(bool a, bool b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventBool(result, message, "equal", a, b);
}
// TODO: only for certain versions of solc
//function equal(fixed a, fixed b, string message) public returns (bool result) {
// result = (a == b);
// emit AssertionEvent(result, message);
//}
// TODO: only for certain versions of solc
//function equal(ufixed a, ufixed b, string message) public returns (bool result) {
// result = (a == b);
// emit AssertionEvent(result, message);
//}
function equal(address a, address b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventAddress(result, message, "equal", a, b);
}
function equal(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a == b);
emit AssertionEventBytes32(result, message, "equal", a, b);
}
function equal(string memory a, string memory b, string memory message) public returns (bool result) {
result = (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b)));
emit AssertionEventString(result, message, "equal", a, b);
}
function notEqual(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventUint(result, message, "notEqual", a, b);
}
function notEqual(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventInt(result, message, "notEqual", a, b);
}
function notEqual(bool a, bool b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventBool(result, message, "notEqual", a, b);
}
// TODO: only for certain versions of solc
//function notEqual(fixed a, fixed b, string message) public returns (bool result) {
// result = (a != b);
// emit AssertionEvent(result, message);
//}
// TODO: only for certain versions of solc
//function notEqual(ufixed a, ufixed b, string message) public returns (bool result) {
// result = (a != b);
// emit AssertionEvent(result, message);
//}
function notEqual(address a, address b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventAddress(result, message, "notEqual", a, b);
}
function notEqual(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a != b);
emit AssertionEventBytes32(result, message, "notEqual", a, b);
}
function notEqual(string memory a, string memory b, string memory message) public returns (bool result) {
result = (keccak256(abi.encodePacked(a)) != keccak256(abi.encodePacked(b)));
emit AssertionEventString(result, message, "notEqual", a, b);
}
/*----------------- Greater than --------------------*/
function greaterThan(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a > b);
emit AssertionEventUint(result, message, "greaterThan", a, b);
}
function greaterThan(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a > b);
emit AssertionEventInt(result, message, "greaterThan", a, b);
}
// TODO: safely compare between uint and int
function greaterThan(uint256 a, int256 b, string memory message) public returns (bool result) {
if(b < int(0)) {
// int is negative uint "a" always greater
result = true;
} else {
result = (a > uint(b));
}
emit AssertionEventUintInt(result, message, "greaterThan", a, b);
}
function greaterThan(int256 a, uint256 b, string memory message) public returns (bool result) {
if(a < int(0)) {
// int is negative uint "b" always greater
result = false;
} else {
result = (uint(a) > b);
}
emit AssertionEventIntUint(result, message, "greaterThan", a, b);
}
/*----------------- Lesser than --------------------*/
function lesserThan(uint256 a, uint256 b, string memory message) public returns (bool result) {
result = (a < b);
emit AssertionEventUint(result, message, "lesserThan", a, b);
}
function lesserThan(int256 a, int256 b, string memory message) public returns (bool result) {
result = (a < b);
emit AssertionEventInt(result, message, "lesserThan", a, b);
}
// TODO: safely compare between uint and int
function lesserThan(uint256 a, int256 b, string memory message) public returns (bool result) {
if(b < int(0)) {
// int is negative int "b" always lesser
result = false;
} else {
result = (a < uint(b));
}
emit AssertionEventUintInt(result, message, "lesserThan", a, b);
}
function lesserThan(int256 a, uint256 b, string memory message) public returns (bool result) {
if(a < int(0)) {
// int is negative int "a" always lesser
result = true;
} else {
result = (uint(a) < b);
}
emit AssertionEventIntUint(result, message, "lesserThan", a, b);
}
}
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
},
{
"files": "*.yml",
"options": {}
},
{
"files": "*.yaml",
"options": {}
},
{
"files": "*.toml",
"options": {}
},
{
"files": "*.json",
"options": {}
},
{
"files": "*.js",
"options": {}
},
{
"files": "*.ts",
"options": {}
}
]
}
REMIX DEFAULT WORKSPACE
Remix default workspace is present when:
i. Remix loads for the very first time
ii. A new workspace is created with 'Default' template
iii. There are no files existing in the File Explorer
This workspace contains 3 directories:
1. 'contracts': Holds three contracts with increasing levels of complexity.
2. 'scripts': Contains four typescript files to deploy a contract. It is explained below.
3. 'tests': Contains one Solidity test file for 'Ballot' contract & one JS test file for 'Storage' contract.
SCRIPTS
The 'scripts' folder has four typescript files which help to deploy the 'Storage' contract using 'web3.js' and 'ethers.js' libraries.
For the deployment of any other contract, just update the contract's name from 'Storage' to the desired contract and provide constructor arguments accordingly
in the file `deploy_with_ethers.ts` or `deploy_with_web3.ts`
In the 'tests' folder there is a script containing Mocha-Chai unit tests for 'Storage' contract.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
Please note, require/import is supported in a limited manner for Remix supported modules.
For now, modules supported by Remix are ethers, web3, swarmgw, chai, multihashes, remix and hardhat only for hardhat.ethers object/plugin.
For unsupported modules, an error like this will be thrown: '<module_name> module require is not supported by Remix IDE' will be shown.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.2 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
* @custom:dev-run-script ./scripts/deploy_with_ethers.ts
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "hardhat/console.sol";
/**
* @title Owner
* @dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
// If the first argument of 'require' evaluates to 'false', execution terminates and all
// changes to the state and to Ether balances are reverted.
// This used to consume all gas in old EVM versions, but not anymore.
// It is often a good idea to use 'require' to check if functions are called correctly.
// As a second argument, you can also provide an explanation about what went wrong.
require(msg.sender == owner, "Caller is not owner");
_;
}
/**
* @dev Set contract deployer as owner
*/
constructor() {
console.log("Owner contract deployed by:", msg.sender);
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/**
* @dev Change owner
* @param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/**
* @dev Return owner address
* @return address of owner
*/
function getOwner() external view returns (address) {
return owner;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Ballot
* @dev Implements voting process along with vote delegation
*/
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
struct Proposal {
// If you can limit the length to a certain number of bytes,
// always use one of bytes1 to bytes32 because they are much cheaper
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
mapping(address => Voter) public voters;
Proposal[] public proposals;
/**
* @dev Create a new ballot to choose one of 'proposalNames'.
* @param proposalNames names of proposals
*/
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
for (uint i = 0; i < proposalNames.length; i++) {
// 'Proposal({...})' creates a temporary
// Proposal object and 'proposals.push(...)'
// appends it to the end of 'proposals'.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
/**
* @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.
* @param voter address of voter
*/
function giveRightToVote(address voter) public {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
/**
* @dev Delegate your vote to the voter 'to'.
* @param to address to which vote is delegated
*/
function delegate(address to) public {
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
sender.voted = true;
sender.delegate = to;
Voter storage delegate_ = voters[to];
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
/**
* @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.
* @param proposal index of proposal in the proposals array
*/
function vote(uint proposal) public {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If 'proposal' is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
/**
* @dev Computes the winning proposal taking all previous votes into account.
* @return winningProposal_ index of winning proposal in the proposals array
*/
function winningProposal() public view
returns (uint winningProposal_)
{
uint winningVoteCount = 0;
for (uint p = 0; p < proposals.length; p++) {
if (proposals[p].voteCount > winningVoteCount) {
winningVoteCount = proposals[p].voteCount;
winningProposal_ = p;
}
}
}
/**
* @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then
* @return winnerName_ the name of the winner
*/
function winnerName() public view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_71": {
"entryPoint": null,
"id": 71,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory": {
"entryPoint": 667,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory": {
"entryPoint": 783,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes32_fromMemory": {
"entryPoint": 644,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory": {
"entryPoint": 834,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 525,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 382,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr": {
"entryPoint": 556,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 608,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1009,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 471,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 1019,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 962,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 915,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 424,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 402,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 603,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 397,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 392,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 407,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_bytes32": {
"entryPoint": 618,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4387:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:1"
},
"nodeType": "YulFunctionCall",
"src": "433:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "505:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "515:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "533:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "540:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "529:3:1"
},
"nodeType": "YulFunctionCall",
"src": "529:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "549:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "545:3:1"
},
"nodeType": "YulFunctionCall",
"src": "545:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "525:3:1"
},
"nodeType": "YulFunctionCall",
"src": "525:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "515:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "498:6:1",
"type": ""
}
],
"src": "457:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "593:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "610:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "613:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "603:6:1"
},
"nodeType": "YulFunctionCall",
"src": "603:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "603:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "707:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "710:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "700:6:1"
},
"nodeType": "YulFunctionCall",
"src": "700:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "700:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "731:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "734:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "724:6:1"
},
"nodeType": "YulFunctionCall",
"src": "724:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "724:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "565:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "794:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "804:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "826:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "856:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "834:21:1"
},
"nodeType": "YulFunctionCall",
"src": "834:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "822:3:1"
},
"nodeType": "YulFunctionCall",
"src": "822:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "808:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "973:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "975:16:1"
},
"nodeType": "YulFunctionCall",
"src": "975:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "975:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "916:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "928:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "913:2:1"
},
"nodeType": "YulFunctionCall",
"src": "913:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "952:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "964:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "949:2:1"
},
"nodeType": "YulFunctionCall",
"src": "949:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "910:2:1"
},
"nodeType": "YulFunctionCall",
"src": "910:62:1"
},
"nodeType": "YulIf",
"src": "907:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1011:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1015:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1004:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1004:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1004:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "780:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "788:4:1",
"type": ""
}
],
"src": "751:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1079:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1089:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1099:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1099:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1089:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1148:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1156:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1128:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1128:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1128:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1063:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1072:6:1",
"type": ""
}
],
"src": "1038:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1255:229:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1360:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1362:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1362:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1362:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1332:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1340:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1329:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1329:30:1"
},
"nodeType": "YulIf",
"src": "1326:56:1"
},
{
"nodeType": "YulAssignment",
"src": "1392:25:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1404:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1412:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1400:17:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1392:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1454:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1466:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1472:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1462:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1462:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1454:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1239:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1250:4:1",
"type": ""
}
],
"src": "1173:311:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1579:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1599:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1589:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1589:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1589:12:1"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "1490:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1658:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1668:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1679:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1668:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1640:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1650:7:1",
"type": ""
}
],
"src": "1613:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1739:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1796:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1805:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1808:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1798:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1798:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1798:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1762:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1787:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1769:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1769:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1759:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1759:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1752:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1752:43:1"
},
"nodeType": "YulIf",
"src": "1749:63:1"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1732:5:1",
"type": ""
}
],
"src": "1696:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1887:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1897:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1912:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1906:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1906:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1897:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1955:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1928:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1928:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1928:33:1"
}
]
},
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1865:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1873:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1881:5:1",
"type": ""
}
],
"src": "1824:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2103:619:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2113:90:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2195:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2138:56:1"
},
"nodeType": "YulFunctionCall",
"src": "2138:64:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2122:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2122:81:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2113:5:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2212:16:1",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "2223:5:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2216:3:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2245:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2252:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2238:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2238:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2238:21:1"
},
{
"nodeType": "YulAssignment",
"src": "2268:23:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2279:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2286:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2275:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2275:16:1"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2268:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2301:44:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2319:6:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2331:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2339:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "2327:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2327:17:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2315:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2315:30:1"
},
"variables": [
{
"name": "srcEnd",
"nodeType": "YulTypedName",
"src": "2305:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2373:103:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "2387:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2387:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2387:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "2360:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2368:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2357:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2357:15:1"
},
"nodeType": "YulIf",
"src": "2354:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2561:155:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2576:21:1",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "2594:3:1"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "2580:10:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2618:3:1"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "2655:10:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2667:3:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes32_fromMemory",
"nodeType": "YulIdentifier",
"src": "2623:31:1"
},
"nodeType": "YulFunctionCall",
"src": "2623:48:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2611:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2611:61:1"
},
"nodeType": "YulExpressionStatement",
"src": "2611:61:1"
},
{
"nodeType": "YulAssignment",
"src": "2685:21:1",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2696:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2701:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2692:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2692:14:1"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2685:3:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2514:3:1"
},
{
"name": "srcEnd",
"nodeType": "YulIdentifier",
"src": "2519:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2511:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2511:15:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2527:25:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2529:21:1",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2540:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2545:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2536:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2536:14:1"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2529:3:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2489:21:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2491:17:1",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2502:6:1"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2495:3:1",
"type": ""
}
]
}
]
},
"src": "2485:231:1"
}
]
},
"name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2073:6:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2081:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2089:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2097:5:1",
"type": ""
}
],
"src": "1990:732:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2833:297:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2882:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2884:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2884:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2884:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2861:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2869:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2857:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2857:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2876:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2853:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2853:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2846:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2846:35:1"
},
"nodeType": "YulIf",
"src": "2843:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2974:27:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2994:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2988:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2988:13:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2978:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3010:114:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3097:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3105:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3093:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3093:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3112:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3120:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3019:73:1"
},
"nodeType": "YulFunctionCall",
"src": "3019:105:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3010:5:1"
}
]
}
]
},
"name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2811:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2819:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2827:5:1",
"type": ""
}
],
"src": "2745:385:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3238:452:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3284:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3286:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3286:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3286:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3259:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3268:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3255:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3255:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3280:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3251:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3251:32:1"
},
"nodeType": "YulIf",
"src": "3248:119:1"
},
{
"nodeType": "YulBlock",
"src": "3377:306:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3392:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3416:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3427:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3412:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3412:17:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3406:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3406:24:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3396:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3477:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3479:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3479:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3479:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3449:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3457:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3446:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3446:30:1"
},
"nodeType": "YulIf",
"src": "3443:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3574:99:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3645:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3656:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3641:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3641:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3665:7:1"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "3584:56:1"
},
"nodeType": "YulFunctionCall",
"src": "3584:89:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3574:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3208:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3219:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3231:6:1",
"type": ""
}
],
"src": "3136:554:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3724:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3741:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3744:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3734:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3734:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3734:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3838:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3841:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3831:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3831:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3831:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3862:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3865:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3855:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3855:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3855:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "3696:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3910:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3927:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3930:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3920:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3920:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3920:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4024:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4027:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4017:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4017:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4017:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4048:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4051:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4041:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4041:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "4041:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "3882:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4113:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4123:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "4134:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4123:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4095:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4105:7:1",
"type": ""
}
],
"src": "4068:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4194:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4204:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4231:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4213:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4213:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4204:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4327:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "4329:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4329:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4329:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4252:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4259:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4249:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4249:77:1"
},
"nodeType": "YulIf",
"src": "4246:103:1"
},
{
"nodeType": "YulAssignment",
"src": "4358:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4369:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4376:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4365:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "4358:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4180:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "4190:3:1",
"type": ""
}
],
"src": "4151:233:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n // bytes32[]\n function abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_bytes32_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // bytes32[]\n function abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040523480156200001157600080fd5b506040516200143e3803806200143e833981810160405281019062000037919062000342565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060005b81518110156200017657600260405180604001604052808484815181106200010f576200010e62000393565b5b60200260200101518152602001600081525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505080806200016d90620003fb565b915050620000e2565b505062000448565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001e28262000197565b810181811067ffffffffffffffff82111715620002045762000203620001a8565b5b80604052505050565b6000620002196200017e565b9050620002278282620001d7565b919050565b600067ffffffffffffffff8211156200024a5762000249620001a8565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b620002758162000260565b81146200028157600080fd5b50565b60008151905062000295816200026a565b92915050565b6000620002b2620002ac846200022c565b6200020d565b90508083825260208201905060208402830185811115620002d857620002d76200025b565b5b835b81811015620003055780620002f0888262000284565b845260208401935050602081019050620002da565b5050509392505050565b600082601f83011262000327576200032662000192565b5b8151620003398482602086016200029b565b91505092915050565b6000602082840312156200035b576200035a62000188565b5b600082015167ffffffffffffffff8111156200037c576200037b6200018d565b5b6200038a848285016200030f565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b60006200040882620003f1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036200043d576200043c620003c2565b5b600182019050919050565b610fe680620004586000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063609ff1bd1161005b578063609ff1bd146101145780639e7b8d6114610132578063a3ec138d1461014e578063e2ba53f01461018157610088565b80630121b93f1461008d578063013cf08b146100a95780632e4176cf146100da5780635c19a95c146100f8575b600080fd5b6100a760048036038101906100a291906109e2565b61019f565b005b6100c360048036038101906100be91906109e2565b6102e5565b6040516100d1929190610a37565b60405180910390f35b6100e2610319565b6040516100ef9190610aa1565b60405180910390f35b610112600480360381019061010d9190610ae8565b61033d565b005b61011c6106d7565b6040516101299190610b15565b60405180910390f35b61014c60048036038101906101479190610ae8565b61075f565b005b61016860048036038101906101639190610ae8565b610916565b6040516101789493929190610b4b565b60405180910390f35b610189610973565b6040516101969190610b90565b60405180910390f35b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015403610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610c08565b60405180910390fd5b8060010160009054906101000a900460ff161561027b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027290610c74565b60405180910390fd5b60018160010160006101000a81548160ff0219169083151502179055508181600201819055508060000154600283815481106102ba576102b9610c94565b5b906000526020600020906002020160010160008282546102da9190610cf2565b925050819055505050565b600281815481106102f557600080fd5b90600052602060002090600202016000915090508060000154908060010154905082565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff16156103d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c990610d72565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043790610dde565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105af57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a190610e4a565b60405180910390fd5b610441565b60018160010160006101000a81548160ff021916908315150217905550818160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff16156106b2578160000154600282600201548154811061068657610685610c94565b5b906000526020600020906002020160010160008282546106a69190610cf2565b925050819055506106d2565b81600001548160000160008282546106ca9190610cf2565b925050819055505b505050565b6000806000905060005b60028054905081101561075a57816002828154811061070357610702610c94565b5b9060005260206000209060020201600101541115610747576002818154811061072f5761072e610c94565b5b90600052602060002090600202016001015491508092505b808061075290610e6a565b9150506106e1565b505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490610f24565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161561087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087490610f90565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154146108cc57600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905084565b6000600261097f6106d7565b815481106109905761098f610c94565b5b906000526020600020906002020160000154905090565b600080fd5b6000819050919050565b6109bf816109ac565b81146109ca57600080fd5b50565b6000813590506109dc816109b6565b92915050565b6000602082840312156109f8576109f76109a7565b5b6000610a06848285016109cd565b91505092915050565b6000819050919050565b610a2281610a0f565b82525050565b610a31816109ac565b82525050565b6000604082019050610a4c6000830185610a19565b610a596020830184610a28565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a8b82610a60565b9050919050565b610a9b81610a80565b82525050565b6000602082019050610ab66000830184610a92565b92915050565b610ac581610a80565b8114610ad057600080fd5b50565b600081359050610ae281610abc565b92915050565b600060208284031215610afe57610afd6109a7565b5b6000610b0c84828501610ad3565b91505092915050565b6000602082019050610b2a6000830184610a28565b92915050565b60008115159050919050565b610b4581610b30565b82525050565b6000608082019050610b606000830187610a28565b610b6d6020830186610b3c565b610b7a6040830185610a92565b610b876060830184610a28565b95945050505050565b6000602082019050610ba56000830184610a19565b92915050565b600082825260208201905092915050565b7f486173206e6f20726967687420746f20766f7465000000000000000000000000600082015250565b6000610bf2601483610bab565b9150610bfd82610bbc565b602082019050919050565b60006020820190508181036000830152610c2181610be5565b9050919050565b7f416c726561647920766f7465642e000000000000000000000000000000000000600082015250565b6000610c5e600e83610bab565b9150610c6982610c28565b602082019050919050565b60006020820190508181036000830152610c8d81610c51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610cfd826109ac565b9150610d08836109ac565b9250828201905080821115610d2057610d1f610cc3565b5b92915050565b7f596f7520616c726561647920766f7465642e0000000000000000000000000000600082015250565b6000610d5c601283610bab565b9150610d6782610d26565b602082019050919050565b60006020820190508181036000830152610d8b81610d4f565b9050919050565b7f53656c662d64656c65676174696f6e20697320646973616c6c6f7765642e0000600082015250565b6000610dc8601e83610bab565b9150610dd382610d92565b602082019050919050565b60006020820190508181036000830152610df781610dbb565b9050919050565b7f466f756e64206c6f6f7020696e2064656c65676174696f6e2e00000000000000600082015250565b6000610e34601983610bab565b9150610e3f82610dfe565b602082019050919050565b60006020820190508181036000830152610e6381610e27565b9050919050565b6000610e75826109ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ea757610ea6610cc3565b5b600182019050919050565b7f4f6e6c79206368616972706572736f6e2063616e20676976652072696768742060008201527f746f20766f74652e000000000000000000000000000000000000000000000000602082015250565b6000610f0e602883610bab565b9150610f1982610eb2565b604082019050919050565b60006020820190508181036000830152610f3d81610f01565b9050919050565b7f54686520766f74657220616c726561647920766f7465642e0000000000000000600082015250565b6000610f7a601883610bab565b9150610f8582610f44565b602082019050919050565b60006020820190508181036000830152610fa981610f6d565b905091905056fea2646970667358221220355f268dc933e36fb64af1055a469a5d43ce15a34ea5d009af0215a9a975d89e64736f6c63430008120033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x143E CODESIZE SUB DUP1 PUSH3 0x143E DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x342 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x176 JUMPI PUSH1 0x2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH3 0x10F JUMPI PUSH3 0x10E PUSH3 0x393 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE POP POP DUP1 DUP1 PUSH3 0x16D SWAP1 PUSH3 0x3FB JUMP JUMPDEST SWAP2 POP POP PUSH3 0xE2 JUMP JUMPDEST POP POP PUSH3 0x448 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH3 0x1E2 DUP3 PUSH3 0x197 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x204 JUMPI PUSH3 0x203 PUSH3 0x1A8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x219 PUSH3 0x17E JUMP JUMPDEST SWAP1 POP PUSH3 0x227 DUP3 DUP3 PUSH3 0x1D7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x24A JUMPI PUSH3 0x249 PUSH3 0x1A8 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x275 DUP2 PUSH3 0x260 JUMP JUMPDEST DUP2 EQ PUSH3 0x281 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x295 DUP2 PUSH3 0x26A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2B2 PUSH3 0x2AC DUP5 PUSH3 0x22C JUMP JUMPDEST PUSH3 0x20D JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH3 0x2D8 JUMPI PUSH3 0x2D7 PUSH3 0x25B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x305 JUMPI DUP1 PUSH3 0x2F0 DUP9 DUP3 PUSH3 0x284 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x2DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x327 JUMPI PUSH3 0x326 PUSH3 0x192 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x339 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x29B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x35B JUMPI PUSH3 0x35A PUSH3 0x188 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37C JUMPI PUSH3 0x37B PUSH3 0x18D JUMP JUMPDEST JUMPDEST PUSH3 0x38A DUP5 DUP3 DUP6 ADD PUSH3 0x30F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x408 DUP3 PUSH3 0x3F1 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH3 0x43D JUMPI PUSH3 0x43C PUSH3 0x3C2 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFE6 DUP1 PUSH3 0x458 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 0x609FF1BD GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0xA3EC138D EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0xE2BA53F0 EQ PUSH2 0x181 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x121B93F EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x2E4176CF EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x9E2 JUMP JUMPDEST PUSH2 0x19F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x9E2 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP3 SWAP2 SWAP1 PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0x319 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0xAA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH2 0x33D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x147 SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH2 0x916 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x178 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x189 PUSH2 0x973 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x196 SWAP2 SWAP1 PUSH2 0xB90 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD SUB PUSH2 0x229 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x220 SWAP1 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x27B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x272 SWAP1 PUSH2 0xC74 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2BA JUMPI PUSH2 0x2B9 PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C9 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x437 SWAP1 PUSH2 0xDDE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5AF JUMPI PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A1 SWAP1 PUSH2 0xE4A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x441 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6B2 JUMPI DUP2 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP3 PUSH1 0x2 ADD SLOAD DUP2 SLOAD DUP2 LT PUSH2 0x686 JUMPI PUSH2 0x685 PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6A6 SWAP2 SWAP1 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x6D2 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD SLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x75A JUMPI DUP2 PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x703 JUMPI PUSH2 0x702 PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD GT ISZERO PUSH2 0x747 JUMPI PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD SWAP2 POP DUP1 SWAP3 POP JUMPDEST DUP1 DUP1 PUSH2 0x752 SWAP1 PUSH2 0xE6A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6E1 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E4 SWAP1 PUSH2 0xF24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x87D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x874 SWAP1 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x97F PUSH2 0x6D7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x990 JUMPI PUSH2 0x98F PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9BF DUP2 PUSH2 0x9AC JUMP JUMPDEST DUP2 EQ PUSH2 0x9CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9DC DUP2 PUSH2 0x9B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9F8 JUMPI PUSH2 0x9F7 PUSH2 0x9A7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA06 DUP5 DUP3 DUP6 ADD PUSH2 0x9CD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA22 DUP2 PUSH2 0xA0F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x9AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xA4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xA19 JUMP JUMPDEST PUSH2 0xA59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xA28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8B DUP3 PUSH2 0xA60 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA9B DUP2 PUSH2 0xA80 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0xA80 JUMP JUMPDEST DUP2 EQ PUSH2 0xAD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE2 DUP2 PUSH2 0xABC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAFE JUMPI PUSH2 0xAFD PUSH2 0x9A7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB0C DUP5 DUP3 DUP6 ADD PUSH2 0xAD3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB2A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB45 DUP2 PUSH2 0xB30 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xB60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xA28 JUMP JUMPDEST PUSH2 0xB6D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xB3C JUMP JUMPDEST PUSH2 0xB7A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xA92 JUMP JUMPDEST PUSH2 0xB87 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA28 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBA5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA19 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x486173206E6F20726967687420746F20766F7465000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF2 PUSH1 0x14 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xBFD DUP3 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC21 DUP2 PUSH2 0xBE5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416C726561647920766F7465642E000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC5E PUSH1 0xE DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xC69 DUP3 PUSH2 0xC28 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC8D DUP2 PUSH2 0xC51 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCFD DUP3 PUSH2 0x9AC JUMP JUMPDEST SWAP2 POP PUSH2 0xD08 DUP4 PUSH2 0x9AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xD20 JUMPI PUSH2 0xD1F PUSH2 0xCC3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F7520616C726561647920766F7465642E0000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD5C PUSH1 0x12 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xD67 DUP3 PUSH2 0xD26 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD8B DUP2 PUSH2 0xD4F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x53656C662D64656C65676174696F6E20697320646973616C6C6F7765642E0000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDC8 PUSH1 0x1E DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xDD3 DUP3 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDF7 DUP2 PUSH2 0xDBB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x466F756E64206C6F6F7020696E2064656C65676174696F6E2E00000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE34 PUSH1 0x19 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xE3F DUP3 PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE63 DUP2 PUSH2 0xE27 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE75 DUP3 PUSH2 0x9AC JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xEA7 JUMPI PUSH2 0xEA6 PUSH2 0xCC3 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206368616972706572736F6E2063616E206769766520726967687420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x746F20766F74652E000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF0E PUSH1 0x28 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xF19 DUP3 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF3D DUP2 PUSH2 0xF01 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686520766F74657220616C726561647920766F7465642E0000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7A PUSH1 0x18 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xF85 DUP3 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xFA9 DUP2 PUSH2 0xF6D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD 0x5F 0x26 DUP14 0xC9 CALLER 0xE3 PUSH16 0xB64AF1055A469A5D43CE15A34EA5D009 0xAF MUL ISZERO 0xA9 0xA9 PUSH22 0xD89E64736F6C63430008120033000000000000000000 ",
"sourceMap": "157:4355:0:-:0;;;955:481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1023:10;1009:11;;:24;;;;;;;;;;;;;;;;;;1072:1;1043:6;:19;1050:11;;;;;;;;;;;1043:19;;;;;;;;;;;;;;;:26;;:30;;;;1089:6;1084:346;1105:13;:20;1101:1;:24;1084:346;;;1309:9;1324:94;;;;;;;;1357:13;1371:1;1357:16;;;;;;;;:::i;:::-;;;;;;;;1324:94;;;;1402:1;1324:94;;;1309:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1127:3;;;;;:::i;:::-;;;;1084:346;;;;955:481;157:4355;;7:75:1;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:77;1650:7;1679:5;1668:16;;1613:77;;;:::o;1696:122::-;1769:24;1787:5;1769:24;:::i;:::-;1762:5;1759:35;1749:63;;1808:1;1805;1798:12;1749:63;1696:122;:::o;1824:143::-;1881:5;1912:6;1906:13;1897:22;;1928:33;1955:5;1928:33;:::i;:::-;1824:143;;;;:::o;1990:732::-;2097:5;2122:81;2138:64;2195:6;2138:64;:::i;:::-;2122:81;:::i;:::-;2113:90;;2223:5;2252:6;2245:5;2238:21;2286:4;2279:5;2275:16;2268:23;;2339:4;2331:6;2327:17;2319:6;2315:30;2368:3;2360:6;2357:15;2354:122;;;2387:79;;:::i;:::-;2354:122;2502:6;2485:231;2519:6;2514:3;2511:15;2485:231;;;2594:3;2623:48;2667:3;2655:10;2623:48;:::i;:::-;2618:3;2611:61;2701:4;2696:3;2692:14;2685:21;;2561:155;2545:4;2540:3;2536:14;2529:21;;2485:231;;;2489:21;2103:619;;1990:732;;;;;:::o;2745:385::-;2827:5;2876:3;2869:4;2861:6;2857:17;2853:27;2843:122;;2884:79;;:::i;:::-;2843:122;2994:6;2988:13;3019:105;3120:3;3112:6;3105:4;3097:6;3093:17;3019:105;:::i;:::-;3010:114;;2833:297;2745:385;;;;:::o;3136:554::-;3231:6;3280:2;3268:9;3259:7;3255:23;3251:32;3248:119;;;3286:79;;:::i;:::-;3248:119;3427:1;3416:9;3412:17;3406:24;3457:18;3449:6;3446:30;3443:117;;;3479:79;;:::i;:::-;3443:117;3584:89;3665:7;3656:6;3645:9;3641:22;3584:89;:::i;:::-;3574:99;;3377:306;3136:554;;;;:::o;3696:180::-;3744:77;3741:1;3734:88;3841:4;3838:1;3831:15;3865:4;3862:1;3855:15;3882:180;3930:77;3927:1;3920:88;4027:4;4024:1;4017:15;4051:4;4048:1;4041:15;4068:77;4105:7;4134:5;4123:16;;4068:77;;;:::o;4151:233::-;4190:3;4213:24;4231:5;4213:24;:::i;:::-;4204:33;;4259:66;4252:5;4249:77;4246:103;;4329:18;;:::i;:::-;4246:103;4376:1;4369:5;4365:13;4358:20;;4151:233;;;:::o;157:4355:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@chairperson_18": {
"entryPoint": 793,
"id": 18,
"parameterSlots": 0,
"returnSlots": 0
},
"@delegate_207": {
"entryPoint": 829,
"id": 207,
"parameterSlots": 1,
"returnSlots": 0
},
"@giveRightToVote_111": {
"entryPoint": 1887,
"id": 111,
"parameterSlots": 1,
"returnSlots": 0
},
"@proposals_27": {
"entryPoint": 741,
"id": 27,
"parameterSlots": 0,
"returnSlots": 0
},
"@vote_257": {
"entryPoint": 415,
"id": 257,
"parameterSlots": 1,
"returnSlots": 0
},
"@voters_23": {
"entryPoint": 2326,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@winnerName_315": {
"entryPoint": 2419,
"id": 315,
"parameterSlots": 0,
"returnSlots": 1
},
"@winningProposal_300": {
"entryPoint": 1751,
"id": 300,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 2771,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 2509,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 2792,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 2530,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 2706,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 2876,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 2585,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3045,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3153,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3407,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3841,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3623,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3949,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack": {
"entryPoint": 3515,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2600,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 2721,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 2960,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed": {
"entryPoint": 2615,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3080,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3188,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3442,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3876,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3658,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3984,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3550,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 2837,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_bool_t_address_t_uint256__to_t_uint256_t_bool_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 2891,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 2987,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 3314,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 2688,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 2864,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 2575,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2656,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2476,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"increment_t_uint256": {
"entryPoint": 3690,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3267,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 3220,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 2471,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e": {
"entryPoint": 3004,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84": {
"entryPoint": 3112,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f": {
"entryPoint": 3366,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95": {
"entryPoint": 3762,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c": {
"entryPoint": 3582,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d": {
"entryPoint": 3908,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947": {
"entryPoint": 3474,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 2748,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2486,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:11961:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "597:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "607:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "629:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "616:12:1"
},
"nodeType": "YulFunctionCall",
"src": "616:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "607:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "672:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "645:26:1"
},
"nodeType": "YulFunctionCall",
"src": "645:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "645:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "575:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "583:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "591:5:1",
"type": ""
}
],
"src": "545:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "756:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "802:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "804:77:1"
},
"nodeType": "YulFunctionCall",
"src": "804:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "804:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "777:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "786:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "773:3:1"
},
"nodeType": "YulFunctionCall",
"src": "773:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "769:3:1"
},
"nodeType": "YulFunctionCall",
"src": "769:32:1"
},
"nodeType": "YulIf",
"src": "766:119:1"
},
{
"nodeType": "YulBlock",
"src": "895:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "910:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "924:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "914:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "939:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "985:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "994:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "949:20:1"
},
"nodeType": "YulFunctionCall",
"src": "949:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "939:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "726:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "737:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "749:6:1",
"type": ""
}
],
"src": "690:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1070:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1080:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1091:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1080:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1052:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1062:7:1",
"type": ""
}
],
"src": "1025:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1173:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1190:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1213:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1195:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1195:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1183:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1183:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1183:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1161:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1168:3:1",
"type": ""
}
],
"src": "1108:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1297:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1314:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1337:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1319:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1319:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1307:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1307:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1307:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1285:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1292:3:1",
"type": ""
}
],
"src": "1232:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1482:206:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1492:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1504:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1515:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1500:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1500:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1492:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1572:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1585:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1581:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1581:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "1528:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1528:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1528:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1653:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1666:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1677:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1662:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1662:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1609:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1609:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "1609:72:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1446:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1458:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1466:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1477:4:1",
"type": ""
}
],
"src": "1356:332:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1739:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1749:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1764:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1771:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1760:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1760:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1749:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1721:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1731:7:1",
"type": ""
}
],
"src": "1694:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1871:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1881:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1910:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1892:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1892:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1881:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1853:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1863:7:1",
"type": ""
}
],
"src": "1826:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1993:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2010:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2033:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2015:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2015:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2003:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2003:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2003:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1981:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1988:3:1",
"type": ""
}
],
"src": "1928:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2150:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2160:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2172:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2183:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2168:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2168:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2160:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2240:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2253:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2264:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2249:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2249:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "2196:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2196:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2196:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2122:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2134:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2145:4:1",
"type": ""
}
],
"src": "2052:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2323:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2380:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2389:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2392:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2382:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2382:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2382:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2346:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2371:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2353:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2353:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2343:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2343:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2336:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2336:43:1"
},
"nodeType": "YulIf",
"src": "2333:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2316:5:1",
"type": ""
}
],
"src": "2280:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2460:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2470:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2492:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2479:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2479:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2470:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2535:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "2508:26:1"
},
"nodeType": "YulFunctionCall",
"src": "2508:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "2508:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2438:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2446:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2454:5:1",
"type": ""
}
],
"src": "2408:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2619:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2665:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2667:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2667:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2667:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2640:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2649:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2636:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2636:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2661:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2632:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2632:32:1"
},
"nodeType": "YulIf",
"src": "2629:119:1"
},
{
"nodeType": "YulBlock",
"src": "2758:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2773:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2787:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2777:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2802:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2837:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2848:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2833:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2833:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2857:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "2812:20:1"
},
"nodeType": "YulFunctionCall",
"src": "2812:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2802:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2589:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2600:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2612:6:1",
"type": ""
}
],
"src": "2553:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2986:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2996:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3008:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3019:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3004:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3004:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2996:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3076:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3089:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3100:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3085:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3085:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3032:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3032:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3032:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2958:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2970:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2981:4:1",
"type": ""
}
],
"src": "2888:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3158:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3168:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3193:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3186:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3186:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3179:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3179:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3168:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3140:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3150:7:1",
"type": ""
}
],
"src": "3116:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3271:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3288:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3308:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "3293:14:1"
},
"nodeType": "YulFunctionCall",
"src": "3293:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3281:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3281:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "3281:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3259:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3266:3:1",
"type": ""
}
],
"src": "3212:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3503:365:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3513:27:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3525:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3536:3:1",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3521:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3521:19:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3513:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3594:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3607:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3618:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3603:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3603:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3550:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3550:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3550:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3669:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3682:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3693:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3678:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3678:18:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "3631:37:1"
},
"nodeType": "YulFunctionCall",
"src": "3631:66:1"
},
"nodeType": "YulExpressionStatement",
"src": "3631:66:1"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3751:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3764:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3775:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3760:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3760:18:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3707:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3707:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "3707:72:1"
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3833:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3846:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3857:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3842:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3842:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "3789:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3789:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "3789:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_bool_t_address_t_uint256__to_t_uint256_t_bool_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3451:9:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "3463:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3471:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3479:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3487:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3498:4:1",
"type": ""
}
],
"src": "3327:541:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3972:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3982:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3994:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4005:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3990:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3990:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3982:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4062:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4075:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4086:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4071:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4071:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "4018:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4018:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "4018:71:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3944:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3956:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3967:4:1",
"type": ""
}
],
"src": "3874:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4198:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4215:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4220:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4208:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4208:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "4208:19:1"
},
{
"nodeType": "YulAssignment",
"src": "4236:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4255:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4260:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4251:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4251:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4236:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4170:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4175:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4186:11:1",
"type": ""
}
],
"src": "4102:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4383:64:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4405:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4413:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4401:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4401:14:1"
},
{
"hexValue": "486173206e6f20726967687420746f20766f7465",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4417:22:1",
"type": "",
"value": "Has no right to vote"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4394:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4394:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "4394:46:1"
}
]
},
"name": "store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4375:6:1",
"type": ""
}
],
"src": "4277:170:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4599:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4609:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4675:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4680:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4616:58:1"
},
"nodeType": "YulFunctionCall",
"src": "4616:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4609:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4781:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e",
"nodeType": "YulIdentifier",
"src": "4692:88:1"
},
"nodeType": "YulFunctionCall",
"src": "4692:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "4692:93:1"
},
{
"nodeType": "YulAssignment",
"src": "4794:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4805:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4810:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4801:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4801:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4794:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4587:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4595:3:1",
"type": ""
}
],
"src": "4453:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4996:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5006:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5018:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5029:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5014:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5014:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5006:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5053:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5064:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5049:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5049:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5072:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5078:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5068:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5068:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5042:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5042:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "5042:47:1"
},
{
"nodeType": "YulAssignment",
"src": "5098:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5232:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5106:124:1"
},
"nodeType": "YulFunctionCall",
"src": "5106:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5098:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4976:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4991:4:1",
"type": ""
}
],
"src": "4825:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5356:58:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5378:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5386:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5374:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5374:14:1"
},
{
"hexValue": "416c726561647920766f7465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "5390:16:1",
"type": "",
"value": "Already voted."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5367:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5367:40:1"
},
"nodeType": "YulExpressionStatement",
"src": "5367:40:1"
}
]
},
"name": "store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5348:6:1",
"type": ""
}
],
"src": "5250:164:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5566:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5576:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5642:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5647:2:1",
"type": "",
"value": "14"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5583:58:1"
},
"nodeType": "YulFunctionCall",
"src": "5583:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5576:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5748:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84",
"nodeType": "YulIdentifier",
"src": "5659:88:1"
},
"nodeType": "YulFunctionCall",
"src": "5659:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "5659:93:1"
},
{
"nodeType": "YulAssignment",
"src": "5761:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5772:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5768:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5768:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5761:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5554:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5562:3:1",
"type": ""
}
],
"src": "5420:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5963:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5973:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5985:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5996:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5981:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5981:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5973:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6020:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6031:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6016:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6016:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6039:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6045:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6035:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6035:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6009:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6009:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "6009:47:1"
},
{
"nodeType": "YulAssignment",
"src": "6065:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6199:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6073:124:1"
},
"nodeType": "YulFunctionCall",
"src": "6073:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6065:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5943:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5958:4:1",
"type": ""
}
],
"src": "5792:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6245:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6262:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6265:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6255:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6255:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6255:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6359:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6362:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6352:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6352:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6352:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6383:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6386:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6376:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6376:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6376:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "6217:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6431:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6448:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6451:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6441:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6441:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6441:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6545:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6548:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6538:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6538:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6538:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6569:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6572:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6562:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6562:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6562:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "6403:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6633:147:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6643:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6666:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6648:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6648:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6643:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "6677:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6700:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6682:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6682:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6677:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "6711:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6722:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "6725:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6718:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6718:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "6711:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6751:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6753:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6753:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6753:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "6743:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "6746:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6740:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6740:10:1"
},
"nodeType": "YulIf",
"src": "6737:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "6620:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "6623:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "6629:3:1",
"type": ""
}
],
"src": "6589:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6892:62:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6914:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6922:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6910:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6910:14:1"
},
{
"hexValue": "596f7520616c726561647920766f7465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6926:20:1",
"type": "",
"value": "You already voted."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6903:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6903:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "6903:44:1"
}
]
},
"name": "store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6884:6:1",
"type": ""
}
],
"src": "6786:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7106:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7116:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7182:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7187:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7123:58:1"
},
"nodeType": "YulFunctionCall",
"src": "7123:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7116:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7288:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f",
"nodeType": "YulIdentifier",
"src": "7199:88:1"
},
"nodeType": "YulFunctionCall",
"src": "7199:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "7199:93:1"
},
{
"nodeType": "YulAssignment",
"src": "7301:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7312:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7317:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7308:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7308:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7301:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7094:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7102:3:1",
"type": ""
}
],
"src": "6960:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7503:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7513:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7525:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7536:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7521:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7521:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7513:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7560:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7571:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7556:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7556:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7579:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7585:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7575:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7575:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7549:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7549:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "7549:47:1"
},
{
"nodeType": "YulAssignment",
"src": "7605:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7739:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7613:124:1"
},
"nodeType": "YulFunctionCall",
"src": "7613:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7605:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7483:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7498:4:1",
"type": ""
}
],
"src": "7332:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7863:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7885:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7893:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7881:14:1"
},
{
"hexValue": "53656c662d64656c65676174696f6e20697320646973616c6c6f7765642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7897:32:1",
"type": "",
"value": "Self-delegation is disallowed."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7874:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7874:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "7874:56:1"
}
]
},
"name": "store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7855:6:1",
"type": ""
}
],
"src": "7757:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8089:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8099:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8165:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8170:2:1",
"type": "",
"value": "30"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8106:58:1"
},
"nodeType": "YulFunctionCall",
"src": "8106:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8099:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8271:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947",
"nodeType": "YulIdentifier",
"src": "8182:88:1"
},
"nodeType": "YulFunctionCall",
"src": "8182:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "8182:93:1"
},
{
"nodeType": "YulAssignment",
"src": "8284:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8295:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8300:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8291:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8291:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8284:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "8077:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8085:3:1",
"type": ""
}
],
"src": "7943:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8486:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8496:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8508:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8519:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8504:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8504:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8496:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8543:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8554:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8539:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8539:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8562:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8568:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8558:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8532:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8532:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "8532:47:1"
},
{
"nodeType": "YulAssignment",
"src": "8588:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8722:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8596:124:1"
},
"nodeType": "YulFunctionCall",
"src": "8596:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8588:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8466:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8481:4:1",
"type": ""
}
],
"src": "8315:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8846:69:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "8868:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8876:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8864:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8864:14:1"
},
{
"hexValue": "466f756e64206c6f6f7020696e2064656c65676174696f6e2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8880:27:1",
"type": "",
"value": "Found loop in delegation."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8857:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8857:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "8857:51:1"
}
]
},
"name": "store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "8838:6:1",
"type": ""
}
],
"src": "8740:175:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9067:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9077:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9143:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9148:2:1",
"type": "",
"value": "25"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9084:58:1"
},
"nodeType": "YulFunctionCall",
"src": "9084:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9077:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9249:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c",
"nodeType": "YulIdentifier",
"src": "9160:88:1"
},
"nodeType": "YulFunctionCall",
"src": "9160:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "9160:93:1"
},
{
"nodeType": "YulAssignment",
"src": "9262:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9273:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9278:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9269:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9269:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9262:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9055:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "9063:3:1",
"type": ""
}
],
"src": "8921:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9464:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9474:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9486:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9497:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9482:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9482:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9474:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9521:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9532:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9517:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9517:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9540:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9546:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9536:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9536:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9510:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9510:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "9510:47:1"
},
{
"nodeType": "YulAssignment",
"src": "9566:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9700:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9574:124:1"
},
"nodeType": "YulFunctionCall",
"src": "9574:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9566:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9444:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9459:4:1",
"type": ""
}
],
"src": "9293:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9761:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9771:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9798:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9780:17:1"
},
"nodeType": "YulFunctionCall",
"src": "9780:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9771:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9894:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "9896:16:1"
},
"nodeType": "YulFunctionCall",
"src": "9896:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "9896:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9819:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9826:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "9816:2:1"
},
"nodeType": "YulFunctionCall",
"src": "9816:77:1"
},
"nodeType": "YulIf",
"src": "9813:103:1"
},
{
"nodeType": "YulAssignment",
"src": "9925:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9936:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9943:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9932:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9932:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "9925:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9747:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "9757:3:1",
"type": ""
}
],
"src": "9718:233:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10063:121:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10085:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10093:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10081:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10081:14:1"
},
{
"hexValue": "4f6e6c79206368616972706572736f6e2063616e206769766520726967687420",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10097:34:1",
"type": "",
"value": "Only chairperson can give right "
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10074:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10074:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "10074:58:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10153:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10161:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10149:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10149:15:1"
},
{
"hexValue": "746f20766f74652e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10166:10:1",
"type": "",
"value": "to vote."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10142:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10142:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "10142:35:1"
}
]
},
"name": "store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10055:6:1",
"type": ""
}
],
"src": "9957:227:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10336:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10346:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10412:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10417:2:1",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10353:58:1"
},
"nodeType": "YulFunctionCall",
"src": "10353:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10346:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10518:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95",
"nodeType": "YulIdentifier",
"src": "10429:88:1"
},
"nodeType": "YulFunctionCall",
"src": "10429:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "10429:93:1"
},
{
"nodeType": "YulAssignment",
"src": "10531:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10542:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10547:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10538:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10538:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10531:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "10324:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "10332:3:1",
"type": ""
}
],
"src": "10190:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10733:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10743:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10755:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10766:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10751:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10751:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10743:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10790:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10801:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10786:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10786:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10809:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10815:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10805:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10805:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10779:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10779:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "10779:47:1"
},
{
"nodeType": "YulAssignment",
"src": "10835:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10969:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10843:124:1"
},
"nodeType": "YulFunctionCall",
"src": "10843:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10835:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10713:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10728:4:1",
"type": ""
}
],
"src": "10562:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11093:68:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "11115:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11123:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11111:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11111:14:1"
},
{
"hexValue": "54686520766f74657220616c726561647920766f7465642e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "11127:26:1",
"type": "",
"value": "The voter already voted."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11104:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11104:50:1"
},
"nodeType": "YulExpressionStatement",
"src": "11104:50:1"
}
]
},
"name": "store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "11085:6:1",
"type": ""
}
],
"src": "10987:174:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11313:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11323:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11389:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11394:2:1",
"type": "",
"value": "24"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "11330:58:1"
},
"nodeType": "YulFunctionCall",
"src": "11330:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11323:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11495:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d",
"nodeType": "YulIdentifier",
"src": "11406:88:1"
},
"nodeType": "YulFunctionCall",
"src": "11406:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "11406:93:1"
},
{
"nodeType": "YulAssignment",
"src": "11508:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "11519:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11524:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11515:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11515:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "11508:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "11301:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11309:3:1",
"type": ""
}
],
"src": "11167:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11710:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11720:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11732:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11743:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11728:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11728:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11720:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11767:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11778:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11763:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11763:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11786:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11792:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11782:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11782:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11756:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11756:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "11756:47:1"
},
{
"nodeType": "YulAssignment",
"src": "11812:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11946:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "11820:124:1"
},
"nodeType": "YulFunctionCall",
"src": "11820:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11812:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11690:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11705:4:1",
"type": ""
}
],
"src": "11539:419:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_uint256_t_bool_t_address_t_uint256__to_t_uint256_t_bool_t_address_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bool_to_t_bool_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e(memPtr) {\n\n mstore(add(memPtr, 0), \"Has no right to vote\")\n\n }\n\n function abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0dc527e8fa9b76c996eb5eda9ddb749b21540f5509781b94e1e37f7027e7f50e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84(memPtr) {\n\n mstore(add(memPtr, 0), \"Already voted.\")\n\n }\n\n function abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n store_literal_in_memory_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_56aab92b7164a4ea72a098d2d95a5e763b71d07f265e8d46fc7240404017fa84_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f(memPtr) {\n\n mstore(add(memPtr, 0), \"You already voted.\")\n\n }\n\n function abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_657c6119c4ed567c60278fba62242b17c2fedf38962e651040dabfb3c9e15a5f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947(memPtr) {\n\n mstore(add(memPtr, 0), \"Self-delegation is disallowed.\")\n\n }\n\n function abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f37bf1aca80f8fa291a40f639db6aeaa1425ceb0e8c61c8648f0e2efa282a947_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c(memPtr) {\n\n mstore(add(memPtr, 0), \"Found loop in delegation.\")\n\n }\n\n function abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8bd75322489f7ff7ab0b18506f4dcde935a32eca2a506b00f4d21b0becfa093c_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95(memPtr) {\n\n mstore(add(memPtr, 0), \"Only chairperson can give right \")\n\n mstore(add(memPtr, 32), \"to vote.\")\n\n }\n\n function abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_80126ce3251ab2b6e4ade14fe5b2bc11f593510cbe9e3550c09bff1989e33b95_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d(memPtr) {\n\n mstore(add(memPtr, 0), \"The voter already voted.\")\n\n }\n\n function abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d39b1db28626750c546703ffb72f30ea3facdfed1bebd47408e22ef18a76ba2d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063609ff1bd1161005b578063609ff1bd146101145780639e7b8d6114610132578063a3ec138d1461014e578063e2ba53f01461018157610088565b80630121b93f1461008d578063013cf08b146100a95780632e4176cf146100da5780635c19a95c146100f8575b600080fd5b6100a760048036038101906100a291906109e2565b61019f565b005b6100c360048036038101906100be91906109e2565b6102e5565b6040516100d1929190610a37565b60405180910390f35b6100e2610319565b6040516100ef9190610aa1565b60405180910390f35b610112600480360381019061010d9190610ae8565b61033d565b005b61011c6106d7565b6040516101299190610b15565b60405180910390f35b61014c60048036038101906101479190610ae8565b61075f565b005b61016860048036038101906101639190610ae8565b610916565b6040516101789493929190610b4b565b60405180910390f35b610189610973565b6040516101969190610b90565b60405180910390f35b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816000015403610229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161022090610c08565b60405180910390fd5b8060010160009054906101000a900460ff161561027b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027290610c74565b60405180910390fd5b60018160010160006101000a81548160ff0219169083151502179055508181600201819055508060000154600283815481106102ba576102b9610c94565b5b906000526020600020906002020160010160008282546102da9190610cf2565b925050819055505050565b600281815481106102f557600080fd5b90600052602060002090600202016000915090508060000154908060010154905082565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff16156103d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c990610d72565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043790610dde565b60405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105af57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a190610e4a565b60405180910390fd5b610441565b60018160010160006101000a81548160ff021916908315150217905550818160010160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060010160009054906101000a900460ff16156106b2578160000154600282600201548154811061068657610685610c94565b5b906000526020600020906002020160010160008282546106a69190610cf2565b925050819055506106d2565b81600001548160000160008282546106ca9190610cf2565b925050819055505b505050565b6000806000905060005b60028054905081101561075a57816002828154811061070357610702610c94565b5b9060005260206000209060020201600101541115610747576002818154811061072f5761072e610c94565b5b90600052602060002090600202016001015491508092505b808061075290610e6a565b9150506106e1565b505090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e490610f24565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161561087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087490610f90565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154146108cc57600080fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555050565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16908060010160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905084565b6000600261097f6106d7565b815481106109905761098f610c94565b5b906000526020600020906002020160000154905090565b600080fd5b6000819050919050565b6109bf816109ac565b81146109ca57600080fd5b50565b6000813590506109dc816109b6565b92915050565b6000602082840312156109f8576109f76109a7565b5b6000610a06848285016109cd565b91505092915050565b6000819050919050565b610a2281610a0f565b82525050565b610a31816109ac565b82525050565b6000604082019050610a4c6000830185610a19565b610a596020830184610a28565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a8b82610a60565b9050919050565b610a9b81610a80565b82525050565b6000602082019050610ab66000830184610a92565b92915050565b610ac581610a80565b8114610ad057600080fd5b50565b600081359050610ae281610abc565b92915050565b600060208284031215610afe57610afd6109a7565b5b6000610b0c84828501610ad3565b91505092915050565b6000602082019050610b2a6000830184610a28565b92915050565b60008115159050919050565b610b4581610b30565b82525050565b6000608082019050610b606000830187610a28565b610b6d6020830186610b3c565b610b7a6040830185610a92565b610b876060830184610a28565b95945050505050565b6000602082019050610ba56000830184610a19565b92915050565b600082825260208201905092915050565b7f486173206e6f20726967687420746f20766f7465000000000000000000000000600082015250565b6000610bf2601483610bab565b9150610bfd82610bbc565b602082019050919050565b60006020820190508181036000830152610c2181610be5565b9050919050565b7f416c726561647920766f7465642e000000000000000000000000000000000000600082015250565b6000610c5e600e83610bab565b9150610c6982610c28565b602082019050919050565b60006020820190508181036000830152610c8d81610c51565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610cfd826109ac565b9150610d08836109ac565b9250828201905080821115610d2057610d1f610cc3565b5b92915050565b7f596f7520616c726561647920766f7465642e0000000000000000000000000000600082015250565b6000610d5c601283610bab565b9150610d6782610d26565b602082019050919050565b60006020820190508181036000830152610d8b81610d4f565b9050919050565b7f53656c662d64656c65676174696f6e20697320646973616c6c6f7765642e0000600082015250565b6000610dc8601e83610bab565b9150610dd382610d92565b602082019050919050565b60006020820190508181036000830152610df781610dbb565b9050919050565b7f466f756e64206c6f6f7020696e2064656c65676174696f6e2e00000000000000600082015250565b6000610e34601983610bab565b9150610e3f82610dfe565b602082019050919050565b60006020820190508181036000830152610e6381610e27565b9050919050565b6000610e75826109ac565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610ea757610ea6610cc3565b5b600182019050919050565b7f4f6e6c79206368616972706572736f6e2063616e20676976652072696768742060008201527f746f20766f74652e000000000000000000000000000000000000000000000000602082015250565b6000610f0e602883610bab565b9150610f1982610eb2565b604082019050919050565b60006020820190508181036000830152610f3d81610f01565b9050919050565b7f54686520766f74657220616c726561647920766f7465642e0000000000000000600082015250565b6000610f7a601883610bab565b9150610f8582610f44565b602082019050919050565b60006020820190508181036000830152610fa981610f6d565b905091905056fea2646970667358221220355f268dc933e36fb64af1055a469a5d43ce15a34ea5d009af0215a9a975d89e64736f6c63430008120033",
"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 0x609FF1BD GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x609FF1BD EQ PUSH2 0x114 JUMPI DUP1 PUSH4 0x9E7B8D61 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0xA3EC138D EQ PUSH2 0x14E JUMPI DUP1 PUSH4 0xE2BA53F0 EQ PUSH2 0x181 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x121B93F EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x13CF08B EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x2E4176CF EQ PUSH2 0xDA JUMPI DUP1 PUSH4 0x5C19A95C EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x9E2 JUMP JUMPDEST PUSH2 0x19F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBE SWAP2 SWAP1 PUSH2 0x9E2 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD1 SWAP3 SWAP2 SWAP1 PUSH2 0xA37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH2 0x319 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0xAA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH2 0x33D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11C PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x147 SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0xAE8 JUMP JUMPDEST PUSH2 0x916 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x178 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xB4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x189 PUSH2 0x973 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x196 SWAP2 SWAP1 PUSH2 0xB90 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x0 ADD SLOAD SUB PUSH2 0x229 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x220 SWAP1 PUSH2 0xC08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x27B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x272 SWAP1 PUSH2 0xC74 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2BA JUMPI PUSH2 0x2B9 PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x2F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C9 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x440 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x437 SWAP1 PUSH2 0xDDE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5AF JUMPI PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP2 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5AA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5A1 SWAP1 PUSH2 0xE4A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x441 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x1 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6B2 JUMPI DUP2 PUSH1 0x0 ADD SLOAD PUSH1 0x2 DUP3 PUSH1 0x2 ADD SLOAD DUP2 SLOAD DUP2 LT PUSH2 0x686 JUMPI PUSH2 0x685 PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6A6 SWAP2 SWAP1 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x6D2 JUMP JUMPDEST DUP2 PUSH1 0x0 ADD SLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x6CA SWAP2 SWAP1 PUSH2 0xCF2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x75A JUMPI DUP2 PUSH1 0x2 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x703 JUMPI PUSH2 0x702 PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD GT ISZERO PUSH2 0x747 JUMPI PUSH1 0x2 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x72F JUMPI PUSH2 0x72E PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SLOAD SWAP2 POP DUP1 SWAP3 POP JUMPDEST DUP1 DUP1 PUSH2 0x752 SWAP1 PUSH2 0xE6A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x6E1 JUMP JUMPDEST POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E4 SWAP1 PUSH2 0xF24 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x87D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x874 SWAP1 PUSH2 0xF90 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD EQ PUSH2 0x8CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 DUP1 PUSH1 0x1 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH2 0x97F PUSH2 0x6D7 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x990 JUMPI PUSH2 0x98F PUSH2 0xC94 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9BF DUP2 PUSH2 0x9AC JUMP JUMPDEST DUP2 EQ PUSH2 0x9CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x9DC DUP2 PUSH2 0x9B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9F8 JUMPI PUSH2 0x9F7 PUSH2 0x9A7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA06 DUP5 DUP3 DUP6 ADD PUSH2 0x9CD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA22 DUP2 PUSH2 0xA0F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xA31 DUP2 PUSH2 0x9AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0xA4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0xA19 JUMP JUMPDEST PUSH2 0xA59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xA28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8B DUP3 PUSH2 0xA60 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA9B DUP2 PUSH2 0xA80 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAC5 DUP2 PUSH2 0xA80 JUMP JUMPDEST DUP2 EQ PUSH2 0xAD0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xAE2 DUP2 PUSH2 0xABC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAFE JUMPI PUSH2 0xAFD PUSH2 0x9A7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xB0C DUP5 DUP3 DUP6 ADD PUSH2 0xAD3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB2A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB45 DUP2 PUSH2 0xB30 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0xB60 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0xA28 JUMP JUMPDEST PUSH2 0xB6D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0xB3C JUMP JUMPDEST PUSH2 0xB7A PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0xA92 JUMP JUMPDEST PUSH2 0xB87 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xA28 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBA5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA19 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x486173206E6F20726967687420746F20766F7465000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF2 PUSH1 0x14 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xBFD DUP3 PUSH2 0xBBC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC21 DUP2 PUSH2 0xBE5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x416C726561647920766F7465642E000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC5E PUSH1 0xE DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xC69 DUP3 PUSH2 0xC28 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC8D DUP2 PUSH2 0xC51 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCFD DUP3 PUSH2 0x9AC JUMP JUMPDEST SWAP2 POP PUSH2 0xD08 DUP4 PUSH2 0x9AC JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xD20 JUMPI PUSH2 0xD1F PUSH2 0xCC3 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F7520616C726561647920766F7465642E0000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD5C PUSH1 0x12 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xD67 DUP3 PUSH2 0xD26 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xD8B DUP2 PUSH2 0xD4F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x53656C662D64656C65676174696F6E20697320646973616C6C6F7765642E0000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDC8 PUSH1 0x1E DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xDD3 DUP3 PUSH2 0xD92 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xDF7 DUP2 PUSH2 0xDBB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x466F756E64206C6F6F7020696E2064656C65676174696F6E2E00000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE34 PUSH1 0x19 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xE3F DUP3 PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xE63 DUP2 PUSH2 0xE27 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE75 DUP3 PUSH2 0x9AC JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0xEA7 JUMPI PUSH2 0xEA6 PUSH2 0xCC3 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206368616972706572736F6E2063616E206769766520726967687420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x746F20766F74652E000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF0E PUSH1 0x28 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xF19 DUP3 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xF3D DUP2 PUSH2 0xF01 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x54686520766F74657220616C726561647920766F7465642E0000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7A PUSH1 0x18 DUP4 PUSH2 0xBAB JUMP JUMPDEST SWAP2 POP PUSH2 0xF85 DUP3 PUSH2 0xF44 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xFA9 DUP2 PUSH2 0xF6D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATALOAD 0x5F 0x26 DUP14 0xC9 CALLER 0xE3 PUSH16 0xB64AF1055A469A5D43CE15A34EA5D009 0xAF MUL ISZERO 0xA9 0xA9 PUSH22 0xD89E64736F6C63430008120033000000000000000000 ",
"sourceMap": "157:4355:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:458;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;791:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;712:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2071:907;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3810:365;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1592:355;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;745:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4366:144;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3166:458;3212:20;3235:6;:18;3242:10;3235:18;;;;;;;;;;;;;;;3212:41;;3288:1;3271:6;:13;;;:18;3263:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;3333:6;:12;;;;;;;;;;;;3332:13;3324:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;3389:4;3374:6;:12;;;:19;;;;;;;;;;;;;;;;;;3417:8;3403:6;:11;;:22;;;;3604:6;:13;;;3571:9;3581:8;3571:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:29;;;:46;;;;;;;:::i;:::-;;;;;;;;3202:422;3166:458;:::o;791:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;712:26::-;;;;;;;;;;;;:::o;2071:907::-;2118:20;2141:6;:18;2148:10;2141:18;;;;;;;;;;;;;;;2118:41;;2178:6;:12;;;;;;;;;;;;2177:13;2169:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:10;2231:16;;:2;:16;;;2223:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;2293:223;2331:1;2300:33;;:6;:10;2307:2;2300:10;;;;;;;;;;;;;;;:19;;;;;;;;;;;;:33;;;2293:223;;2354:6;:10;2361:2;2354:10;;;;;;;;;;;;;;;:19;;;;;;;;;;;;2349:24;;2465:10;2459:16;;:2;:16;;;2451:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;2293:223;;;2540:4;2525:6;:12;;;:19;;;;;;;;;;;;;;;;;;2572:2;2554:6;:15;;;:20;;;;;;;;;;;;;;;;;;2584:23;2610:6;:10;2617:2;2610:10;;;;;;;;;;;;;;;2584:36;;2634:9;:15;;;;;;;;;;;;2630:342;;;2801:6;:13;;;2762:9;2772;:14;;;2762:25;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;:52;;;;;;;:::i;:::-;;;;;;;;2630:342;;;2948:6;:13;;;2928:9;:16;;;:33;;;;;;;:::i;:::-;;;;;;;;2630:342;2108:870;;2071:907;:::o;3810:365::-;3870:21;3907;3931:1;3907:25;;3947:6;3942:227;3963:9;:16;;;;3959:1;:20;3942:227;;;4029:16;4004:9;4014:1;4004:12;;;;;;;;:::i;:::-;;;;;;;;;;;;:22;;;:41;4000:159;;;4084:9;4094:1;4084:12;;;;;;;;:::i;:::-;;;;;;;;;;;;:22;;;4065:41;;4143:1;4124:20;;4000:159;3981:3;;;;;:::i;:::-;;;;3942:227;;;;3897:278;3810:365;:::o;1592:355::-;1684:11;;;;;;;;;;1670:25;;:10;:25;;;1649:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;1793:6;:13;1800:5;1793:13;;;;;;;;;;;;;;;:19;;;;;;;;;;;;1792:20;1771:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;1904:1;1880:6;:13;1887:5;1880:13;;;;;;;;;;;;;;;:20;;;:25;1872:34;;;;;;1939:1;1916:6;:13;1923:5;1916:13;;;;;;;;;;;;;;;:20;;:24;;;;1592:355;:::o;745:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4366:144::-;4421:19;4470:9;4480:17;:15;:17::i;:::-;4470:28;;;;;;;;:::i;:::-;;;;;;;;;;;;:33;;;4456:47;;4366:144;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:77::-;1062:7;1091:5;1080:16;;1025:77;;;:::o;1108:118::-;1195:24;1213:5;1195:24;:::i;:::-;1190:3;1183:37;1108:118;;:::o;1232:::-;1319:24;1337:5;1319:24;:::i;:::-;1314:3;1307:37;1232:118;;:::o;1356:332::-;1477:4;1515:2;1504:9;1500:18;1492:26;;1528:71;1596:1;1585:9;1581:17;1572:6;1528:71;:::i;:::-;1609:72;1677:2;1666:9;1662:18;1653:6;1609:72;:::i;:::-;1356:332;;;;;:::o;1694:126::-;1731:7;1771:42;1764:5;1760:54;1749:65;;1694:126;;;:::o;1826:96::-;1863:7;1892:24;1910:5;1892:24;:::i;:::-;1881:35;;1826:96;;;:::o;1928:118::-;2015:24;2033:5;2015:24;:::i;:::-;2010:3;2003:37;1928:118;;:::o;2052:222::-;2145:4;2183:2;2172:9;2168:18;2160:26;;2196:71;2264:1;2253:9;2249:17;2240:6;2196:71;:::i;:::-;2052:222;;;;:::o;2280:122::-;2353:24;2371:5;2353:24;:::i;:::-;2346:5;2343:35;2333:63;;2392:1;2389;2382:12;2333:63;2280:122;:::o;2408:139::-;2454:5;2492:6;2479:20;2470:29;;2508:33;2535:5;2508:33;:::i;:::-;2408:139;;;;:::o;2553:329::-;2612:6;2661:2;2649:9;2640:7;2636:23;2632:32;2629:119;;;2667:79;;:::i;:::-;2629:119;2787:1;2812:53;2857:7;2848:6;2837:9;2833:22;2812:53;:::i;:::-;2802:63;;2758:117;2553:329;;;;:::o;2888:222::-;2981:4;3019:2;3008:9;3004:18;2996:26;;3032:71;3100:1;3089:9;3085:17;3076:6;3032:71;:::i;:::-;2888:222;;;;:::o;3116:90::-;3150:7;3193:5;3186:13;3179:21;3168:32;;3116:90;;;:::o;3212:109::-;3293:21;3308:5;3293:21;:::i;:::-;3288:3;3281:34;3212:109;;:::o;3327:541::-;3498:4;3536:3;3525:9;3521:19;3513:27;;3550:71;3618:1;3607:9;3603:17;3594:6;3550:71;:::i;:::-;3631:66;3693:2;3682:9;3678:18;3669:6;3631:66;:::i;:::-;3707:72;3775:2;3764:9;3760:18;3751:6;3707:72;:::i;:::-;3789;3857:2;3846:9;3842:18;3833:6;3789:72;:::i;:::-;3327:541;;;;;;;:::o;3874:222::-;3967:4;4005:2;3994:9;3990:18;3982:26;;4018:71;4086:1;4075:9;4071:17;4062:6;4018:71;:::i;:::-;3874:222;;;;:::o;4102:169::-;4186:11;4220:6;4215:3;4208:19;4260:4;4255:3;4251:14;4236:29;;4102:169;;;;:::o;4277:170::-;4417:22;4413:1;4405:6;4401:14;4394:46;4277:170;:::o;4453:366::-;4595:3;4616:67;4680:2;4675:3;4616:67;:::i;:::-;4609:74;;4692:93;4781:3;4692:93;:::i;:::-;4810:2;4805:3;4801:12;4794:19;;4453:366;;;:::o;4825:419::-;4991:4;5029:2;5018:9;5014:18;5006:26;;5078:9;5072:4;5068:20;5064:1;5053:9;5049:17;5042:47;5106:131;5232:4;5106:131;:::i;:::-;5098:139;;4825:419;;;:::o;5250:164::-;5390:16;5386:1;5378:6;5374:14;5367:40;5250:164;:::o;5420:366::-;5562:3;5583:67;5647:2;5642:3;5583:67;:::i;:::-;5576:74;;5659:93;5748:3;5659:93;:::i;:::-;5777:2;5772:3;5768:12;5761:19;;5420:366;;;:::o;5792:419::-;5958:4;5996:2;5985:9;5981:18;5973:26;;6045:9;6039:4;6035:20;6031:1;6020:9;6016:17;6009:47;6073:131;6199:4;6073:131;:::i;:::-;6065:139;;5792:419;;;:::o;6217:180::-;6265:77;6262:1;6255:88;6362:4;6359:1;6352:15;6386:4;6383:1;6376:15;6403:180;6451:77;6448:1;6441:88;6548:4;6545:1;6538:15;6572:4;6569:1;6562:15;6589:191;6629:3;6648:20;6666:1;6648:20;:::i;:::-;6643:25;;6682:20;6700:1;6682:20;:::i;:::-;6677:25;;6725:1;6722;6718:9;6711:16;;6746:3;6743:1;6740:10;6737:36;;;6753:18;;:::i;:::-;6737:36;6589:191;;;;:::o;6786:168::-;6926:20;6922:1;6914:6;6910:14;6903:44;6786:168;:::o;6960:366::-;7102:3;7123:67;7187:2;7182:3;7123:67;:::i;:::-;7116:74;;7199:93;7288:3;7199:93;:::i;:::-;7317:2;7312:3;7308:12;7301:19;;6960:366;;;:::o;7332:419::-;7498:4;7536:2;7525:9;7521:18;7513:26;;7585:9;7579:4;7575:20;7571:1;7560:9;7556:17;7549:47;7613:131;7739:4;7613:131;:::i;:::-;7605:139;;7332:419;;;:::o;7757:180::-;7897:32;7893:1;7885:6;7881:14;7874:56;7757:180;:::o;7943:366::-;8085:3;8106:67;8170:2;8165:3;8106:67;:::i;:::-;8099:74;;8182:93;8271:3;8182:93;:::i;:::-;8300:2;8295:3;8291:12;8284:19;;7943:366;;;:::o;8315:419::-;8481:4;8519:2;8508:9;8504:18;8496:26;;8568:9;8562:4;8558:20;8554:1;8543:9;8539:17;8532:47;8596:131;8722:4;8596:131;:::i;:::-;8588:139;;8315:419;;;:::o;8740:175::-;8880:27;8876:1;8868:6;8864:14;8857:51;8740:175;:::o;8921:366::-;9063:3;9084:67;9148:2;9143:3;9084:67;:::i;:::-;9077:74;;9160:93;9249:3;9160:93;:::i;:::-;9278:2;9273:3;9269:12;9262:19;;8921:366;;;:::o;9293:419::-;9459:4;9497:2;9486:9;9482:18;9474:26;;9546:9;9540:4;9536:20;9532:1;9521:9;9517:17;9510:47;9574:131;9700:4;9574:131;:::i;:::-;9566:139;;9293:419;;;:::o;9718:233::-;9757:3;9780:24;9798:5;9780:24;:::i;:::-;9771:33;;9826:66;9819:5;9816:77;9813:103;;9896:18;;:::i;:::-;9813:103;9943:1;9936:5;9932:13;9925:20;;9718:233;;;:::o;9957:227::-;10097:34;10093:1;10085:6;10081:14;10074:58;10166:10;10161:2;10153:6;10149:15;10142:35;9957:227;:::o;10190:366::-;10332:3;10353:67;10417:2;10412:3;10353:67;:::i;:::-;10346:74;;10429:93;10518:3;10429:93;:::i;:::-;10547:2;10542:3;10538:12;10531:19;;10190:366;;;:::o;10562:419::-;10728:4;10766:2;10755:9;10751:18;10743:26;;10815:9;10809:4;10805:20;10801:1;10790:9;10786:17;10779:47;10843:131;10969:4;10843:131;:::i;:::-;10835:139;;10562:419;;;:::o;10987:174::-;11127:26;11123:1;11115:6;11111:14;11104:50;10987:174;:::o;11167:366::-;11309:3;11330:67;11394:2;11389:3;11330:67;:::i;:::-;11323:74;;11406:93;11495:3;11406:93;:::i;:::-;11524:2;11519:3;11515:12;11508:19;;11167:366;;;:::o;11539:419::-;11705:4;11743:2;11732:9;11728:18;11720:26;;11792:9;11786:4;11782:20;11778:1;11767:9;11763:17;11756:47;11820:131;11946:4;11820:131;:::i;:::-;11812:139;;11539:419;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "814000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"chairperson()": "2556",
"delegate(address)": "infinite",
"giveRightToVote(address)": "29325",
"proposals(uint256)": "infinite",
"vote(uint256)": "infinite",
"voters(address)": "infinite",
"winnerName()": "infinite",
"winningProposal()": "infinite"
}
},
"methodIdentifiers": {
"chairperson()": "2e4176cf",
"delegate(address)": "5c19a95c",
"giveRightToVote(address)": "9e7b8d61",
"proposals(uint256)": "013cf08b",
"vote(uint256)": "0121b93f",
"voters(address)": "a3ec138d",
"winnerName()": "e2ba53f0",
"winningProposal()": "609ff1bd"
}
},
"abi": [
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "proposalNames",
"type": "bytes32[]"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "chairperson",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "giveRightToVote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "bytes32",
"name": "name",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "voteCount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposal",
"type": "uint256"
}
],
"name": "vote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "voters",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
},
{
"internalType": "bool",
"name": "voted",
"type": "bool"
},
{
"internalType": "address",
"name": "delegate",
"type": "address"
},
{
"internalType": "uint256",
"name": "vote",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winnerName",
"outputs": [
{
"internalType": "bytes32",
"name": "winnerName_",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winningProposal",
"outputs": [
{
"internalType": "uint256",
"name": "winningProposal_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.18+commit.87f61d96"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "proposalNames",
"type": "bytes32[]"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "chairperson",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "giveRightToVote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "bytes32",
"name": "name",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "voteCount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposal",
"type": "uint256"
}
],
"name": "vote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "voters",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
},
{
"internalType": "bool",
"name": "voted",
"type": "bool"
},
{
"internalType": "address",
"name": "delegate",
"type": "address"
},
{
"internalType": "uint256",
"name": "vote",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winnerName",
"outputs": [
{
"internalType": "bytes32",
"name": "winnerName_",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winningProposal",
"outputs": [
{
"internalType": "uint256",
"name": "winningProposal_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Implements voting process along with vote delegation",
"kind": "dev",
"methods": {
"constructor": {
"details": "Create a new ballot to choose one of 'proposalNames'.",
"params": {
"proposalNames": "names of proposals"
}
},
"delegate(address)": {
"details": "Delegate your vote to the voter 'to'.",
"params": {
"to": "address to which vote is delegated"
}
},
"giveRightToVote(address)": {
"details": "Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.",
"params": {
"voter": "address of voter"
}
},
"vote(uint256)": {
"details": "Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.",
"params": {
"proposal": "index of proposal in the proposals array"
}
},
"winnerName()": {
"details": "Calls winningProposal() function to get the index of the winner contained in the proposals array and then",
"returns": {
"winnerName_": "the name of the winner"
}
},
"winningProposal()": {
"details": "Computes the winning proposal taking all previous votes into account.",
"returns": {
"winningProposal_": "index of winning proposal in the proposals array"
}
}
},
"title": "Ballot",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/3_Ballot.sol": "Ballot"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/3_Ballot.sol": {
"keccak256": "0x83fe6b367c140a5c7678c420da454c8c3866ccae12da149c5da3ce6568d29b6c",
"license": "GPL-3.0",
"urls": [
"bzz-raw://5902f2f468a1f776b8f2cb9d584371af88e181954298af92402fca01d0dba3e7",
"dweb:/ipfs/QmSUodhSvoorFL5m5CNqve8YvmuBpjCq17NbTf4GUX8ydw"
]
}
},
"version": 1
}
{
"id": "456bfbeb6a3e37d47d67da230d611e10",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.22",
"solcLongVersion": "0.8.22+commit.4fc1097e",
"input": {
"language": "Solidity",
"sources": {
"contracts/SimpleCrowdsale.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.7.0 <0.9.0;\n\ncontract SimpleCrowdsale {\n uint256 public startTime;\n uint256 public endTime;\n uint256 public weiTokenPrice;\n uint256 public weiInvestmentObjective;\n\n mapping (address => uint256) public investmentAmountOf;\n uint256 public investmentReceived;\n uint256 public investmentRefunded;\n\n bool public isFinalized;\n bool public isRefundingAllowed;\n\n \n\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/SimpleCrowdsale.sol": {
"SimpleCrowdsale": {
"abi": [
{
"inputs": [],
"name": "endTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "investmentAmountOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "investmentReceived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "investmentRefunded",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isFinalized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isRefundingAllowed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "weiInvestmentObjective",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "weiTokenPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/SimpleCrowdsale.sol\":69:444 contract SimpleCrowdsale {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/SimpleCrowdsale.sol\":69:444 contract SimpleCrowdsale {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x8d4e4083\n gt\n tag_12\n jumpi\n dup1\n 0x8d4e4083\n eq\n tag_7\n jumpi\n dup1\n 0x912e704e\n eq\n tag_8\n jumpi\n dup1\n 0xbab34f43\n eq\n tag_9\n jumpi\n dup1\n 0xcb6f16d4\n eq\n tag_10\n jumpi\n dup1\n 0xee56cf41\n eq\n tag_11\n jumpi\n jump(tag_2)\n tag_12:\n dup1\n 0x1c0a5c10\n eq\n tag_3\n jumpi\n dup1\n 0x3197cbb6\n eq\n tag_4\n jumpi\n dup1\n 0x38ef9380\n eq\n tag_5\n jumpi\n dup1\n 0x78e97925\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/SimpleCrowdsale.sol\":296:329 uint256 public investmentReceived */\n tag_3:\n tag_13\n tag_14\n jump\t// in\n tag_13:\n mload(0x40)\n tag_15\n swap2\n swap1\n tag_16\n jump\t// in\n tag_15:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":130:152 uint256 public endTime */\n tag_4:\n tag_17\n tag_18\n jump\t// in\n tag_17:\n mload(0x40)\n tag_19\n swap2\n swap1\n tag_16\n jump\t// in\n tag_19:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":335:368 uint256 public investmentRefunded */\n tag_5:\n tag_20\n tag_21\n jump\t// in\n tag_20:\n mload(0x40)\n tag_22\n swap2\n swap1\n tag_16\n jump\t// in\n tag_22:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":100:124 uint256 public startTime */\n tag_6:\n tag_23\n tag_24\n jump\t// in\n tag_23:\n mload(0x40)\n tag_25\n swap2\n swap1\n tag_16\n jump\t// in\n tag_25:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":375:398 bool public isFinalized */\n tag_7:\n tag_26\n tag_27\n jump\t// in\n tag_26:\n mload(0x40)\n tag_28\n swap2\n swap1\n tag_29\n jump\t// in\n tag_28:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":236:290 mapping (address => uint256) public investmentAmountOf */\n tag_8:\n tag_30\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_31\n swap2\n swap1\n tag_32\n jump\t// in\n tag_31:\n tag_33\n jump\t// in\n tag_30:\n mload(0x40)\n tag_34\n swap2\n swap1\n tag_16\n jump\t// in\n tag_34:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":192:229 uint256 public weiInvestmentObjective */\n tag_9:\n tag_35\n tag_36\n jump\t// in\n tag_35:\n mload(0x40)\n tag_37\n swap2\n swap1\n tag_16\n jump\t// in\n tag_37:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":404:434 bool public isRefundingAllowed */\n tag_10:\n tag_38\n tag_39\n jump\t// in\n tag_38:\n mload(0x40)\n tag_40\n swap2\n swap1\n tag_29\n jump\t// in\n tag_40:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":158:186 uint256 public weiTokenPrice */\n tag_11:\n tag_41\n tag_42\n jump\t// in\n tag_41:\n mload(0x40)\n tag_43\n swap2\n swap1\n tag_16\n jump\t// in\n tag_43:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/SimpleCrowdsale.sol\":296:329 uint256 public investmentReceived */\n tag_14:\n sload(0x05)\n dup2\n jump\t// out\n /* \"contracts/SimpleCrowdsale.sol\":130:152 uint256 public endTime */\n tag_18:\n sload(0x01)\n dup2\n jump\t// out\n /* \"contracts/SimpleCrowdsale.sol\":335:368 uint256 public investmentRefunded */\n tag_21:\n sload(0x06)\n dup2\n jump\t// out\n /* \"contracts/SimpleCrowdsale.sol\":100:124 uint256 public startTime */\n tag_24:\n sload(0x00)\n dup2\n jump\t// out\n /* \"contracts/SimpleCrowdsale.sol\":375:398 bool public isFinalized */\n tag_27:\n 0x07\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n dup2\n jump\t// out\n /* \"contracts/SimpleCrowdsale.sol\":236:290 mapping (address => uint256) public investmentAmountOf */\n tag_33:\n mstore(0x20, 0x04)\n dup1\n 0x00\n mstore\n keccak256(0x00, 0x40)\n 0x00\n swap2\n pop\n swap1\n pop\n sload\n dup2\n jump\t// out\n /* \"contracts/SimpleCrowdsale.sol\":192:229 uint256 public weiInvestmentObjective */\n tag_36:\n sload(0x03)\n dup2\n jump\t// out\n /* \"contracts/SimpleCrowdsale.sol\":404:434 bool public isRefundingAllowed */\n tag_39:\n 0x07\n 0x01\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n dup2\n jump\t// out\n /* \"contracts/SimpleCrowdsale.sol\":158:186 uint256 public weiTokenPrice */\n tag_42:\n sload(0x02)\n dup2\n jump\t// out\n /* \"#utility.yul\":7:84 */\n tag_44:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":73:78 */\n dup2\n /* \"#utility.yul\":62:78 */\n swap1\n pop\n /* \"#utility.yul\":7:84 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":90:208 */\n tag_45:\n /* \"#utility.yul\":177:201 */\n tag_58\n /* \"#utility.yul\":195:200 */\n dup2\n /* \"#utility.yul\":177:201 */\n tag_44\n jump\t// in\n tag_58:\n /* \"#utility.yul\":172:175 */\n dup3\n /* \"#utility.yul\":165:202 */\n mstore\n /* \"#utility.yul\":90:208 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":214:436 */\n tag_16:\n /* \"#utility.yul\":307:311 */\n 0x00\n /* \"#utility.yul\":345:347 */\n 0x20\n /* \"#utility.yul\":334:343 */\n dup3\n /* \"#utility.yul\":330:348 */\n add\n /* \"#utility.yul\":322:348 */\n swap1\n pop\n /* \"#utility.yul\":358:429 */\n tag_60\n /* \"#utility.yul\":426:427 */\n 0x00\n /* \"#utility.yul\":415:424 */\n dup4\n /* \"#utility.yul\":411:428 */\n add\n /* \"#utility.yul\":402:408 */\n dup5\n /* \"#utility.yul\":358:429 */\n tag_45\n jump\t// in\n tag_60:\n /* \"#utility.yul\":214:436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":442:532 */\n tag_46:\n /* \"#utility.yul\":476:483 */\n 0x00\n /* \"#utility.yul\":519:524 */\n dup2\n /* \"#utility.yul\":512:525 */\n iszero\n /* \"#utility.yul\":505:526 */\n iszero\n /* \"#utility.yul\":494:526 */\n swap1\n pop\n /* \"#utility.yul\":442:532 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":538:647 */\n tag_47:\n /* \"#utility.yul\":619:640 */\n tag_63\n /* \"#utility.yul\":634:639 */\n dup2\n /* \"#utility.yul\":619:640 */\n tag_46\n jump\t// in\n tag_63:\n /* \"#utility.yul\":614:617 */\n dup3\n /* \"#utility.yul\":607:641 */\n mstore\n /* \"#utility.yul\":538:647 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":653:863 */\n tag_29:\n /* \"#utility.yul\":740:744 */\n 0x00\n /* \"#utility.yul\":778:780 */\n 0x20\n /* \"#utility.yul\":767:776 */\n dup3\n /* \"#utility.yul\":763:781 */\n add\n /* \"#utility.yul\":755:781 */\n swap1\n pop\n /* \"#utility.yul\":791:856 */\n tag_65\n /* \"#utility.yul\":853:854 */\n 0x00\n /* \"#utility.yul\":842:851 */\n dup4\n /* \"#utility.yul\":838:855 */\n add\n /* \"#utility.yul\":829:835 */\n dup5\n /* \"#utility.yul\":791:856 */\n tag_47\n jump\t// in\n tag_65:\n /* \"#utility.yul\":653:863 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":950:1067 */\n tag_49:\n /* \"#utility.yul\":1059:1060 */\n 0x00\n /* \"#utility.yul\":1056:1057 */\n dup1\n /* \"#utility.yul\":1049:1061 */\n revert\n /* \"#utility.yul\":1196:1322 */\n tag_51:\n /* \"#utility.yul\":1233:1240 */\n 0x00\n /* \"#utility.yul\":1273:1315 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1266:1271 */\n dup3\n /* \"#utility.yul\":1262:1316 */\n and\n /* \"#utility.yul\":1251:1316 */\n swap1\n pop\n /* \"#utility.yul\":1196:1322 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1328:1424 */\n tag_52:\n /* \"#utility.yul\":1365:1372 */\n 0x00\n /* \"#utility.yul\":1394:1418 */\n tag_71\n /* \"#utility.yul\":1412:1417 */\n dup3\n /* \"#utility.yul\":1394:1418 */\n tag_51\n jump\t// in\n tag_71:\n /* \"#utility.yul\":1383:1418 */\n swap1\n pop\n /* \"#utility.yul\":1328:1424 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1430:1552 */\n tag_53:\n /* \"#utility.yul\":1503:1527 */\n tag_73\n /* \"#utility.yul\":1521:1526 */\n dup2\n /* \"#utility.yul\":1503:1527 */\n tag_52\n jump\t// in\n tag_73:\n /* \"#utility.yul\":1496:1501 */\n dup2\n /* \"#utility.yul\":1493:1528 */\n eq\n /* \"#utility.yul\":1483:1546 */\n tag_74\n jumpi\n /* \"#utility.yul\":1542:1543 */\n 0x00\n /* \"#utility.yul\":1539:1540 */\n dup1\n /* \"#utility.yul\":1532:1544 */\n revert\n /* \"#utility.yul\":1483:1546 */\n tag_74:\n /* \"#utility.yul\":1430:1552 */\n pop\n jump\t// out\n /* \"#utility.yul\":1558:1697 */\n tag_54:\n /* \"#utility.yul\":1604:1609 */\n 0x00\n /* \"#utility.yul\":1642:1648 */\n dup2\n /* \"#utility.yul\":1629:1649 */\n calldataload\n /* \"#utility.yul\":1620:1649 */\n swap1\n pop\n /* \"#utility.yul\":1658:1691 */\n tag_76\n /* \"#utility.yul\":1685:1690 */\n dup2\n /* \"#utility.yul\":1658:1691 */\n tag_53\n jump\t// in\n tag_76:\n /* \"#utility.yul\":1558:1697 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1703:2032 */\n tag_32:\n /* \"#utility.yul\":1762:1768 */\n 0x00\n /* \"#utility.yul\":1811:1813 */\n 0x20\n /* \"#utility.yul\":1799:1808 */\n dup3\n /* \"#utility.yul\":1790:1797 */\n dup5\n /* \"#utility.yul\":1786:1809 */\n sub\n /* \"#utility.yul\":1782:1814 */\n slt\n /* \"#utility.yul\":1779:1898 */\n iszero\n tag_78\n jumpi\n /* \"#utility.yul\":1817:1896 */\n tag_79\n tag_49\n jump\t// in\n tag_79:\n /* \"#utility.yul\":1779:1898 */\n tag_78:\n /* \"#utility.yul\":1937:1938 */\n 0x00\n /* \"#utility.yul\":1962:2015 */\n tag_80\n /* \"#utility.yul\":2007:2014 */\n dup5\n /* \"#utility.yul\":1998:2004 */\n dup3\n /* \"#utility.yul\":1987:1996 */\n dup6\n /* \"#utility.yul\":1983:2005 */\n add\n /* \"#utility.yul\":1962:2015 */\n tag_54\n jump\t// in\n tag_80:\n /* \"#utility.yul\":1952:2015 */\n swap2\n pop\n /* \"#utility.yul\":1908:2025 */\n pop\n /* \"#utility.yul\":1703:2032 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220fd29c5eeec663db15a9437dc53b9077a6cbfc11d696550168d376c9d4c0aa09a64736f6c63430008160033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b506103358061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c80638d4e4083116100645780638d4e40831461010d578063912e704e1461012b578063bab34f431461015b578063cb6f16d414610179578063ee56cf411461019757610091565b80631c0a5c10146100955780633197cbb6146100b357806338ef9380146100d157806378e97925146100ef575b5f80fd5b61009d6101b5565b6040516100aa919061022a565b60405180910390f35b6100bb6101bb565b6040516100c8919061022a565b60405180910390f35b6100d96101c1565b6040516100e6919061022a565b60405180910390f35b6100f76101c7565b604051610104919061022a565b60405180910390f35b6101156101cc565b604051610122919061025d565b60405180910390f35b610145600480360381019061014091906102d4565b6101de565b604051610152919061022a565b60405180910390f35b6101636101f3565b604051610170919061022a565b60405180910390f35b6101816101f9565b60405161018e919061025d565b60405180910390f35b61019f61020c565b6040516101ac919061022a565b60405180910390f35b60055481565b60015481565b60065481565b5f5481565b60075f9054906101000a900460ff1681565b6004602052805f5260405f205f915090505481565b60035481565b600760019054906101000a900460ff1681565b60025481565b5f819050919050565b61022481610212565b82525050565b5f60208201905061023d5f83018461021b565b92915050565b5f8115159050919050565b61025781610243565b82525050565b5f6020820190506102705f83018461024e565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a38261027a565b9050919050565b6102b381610299565b81146102bd575f80fd5b50565b5f813590506102ce816102aa565b92915050565b5f602082840312156102e9576102e8610276565b5b5f6102f6848285016102c0565b9150509291505056fea2646970667358221220fd29c5eeec663db15a9437dc53b9077a6cbfc11d696550168d376c9d4c0aa09a64736f6c63430008160033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8D4E4083 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x8D4E4083 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x912E704E EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0xBAB34F43 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0xCB6F16D4 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0xEE56CF41 EQ PUSH2 0x197 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x1C0A5C10 EQ PUSH2 0x95 JUMPI DUP1 PUSH4 0x3197CBB6 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x38EF9380 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x78E97925 EQ PUSH2 0xEF JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x9D PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD9 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH2 0x1C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x115 PUSH2 0x1CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x140 SWAP2 SWAP1 PUSH2 0x2D4 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH2 0x1F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x181 PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x20C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224 DUP2 PUSH2 0x212 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23D PUSH0 DUP4 ADD DUP5 PUSH2 0x21B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x257 DUP2 PUSH2 0x243 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x270 PUSH0 DUP4 ADD DUP5 PUSH2 0x24E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2A3 DUP3 PUSH2 0x27A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B3 DUP2 PUSH2 0x299 JUMP JUMPDEST DUP2 EQ PUSH2 0x2BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2CE DUP2 PUSH2 0x2AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E9 JUMPI PUSH2 0x2E8 PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x2C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT 0x29 0xC5 0xEE 0xEC PUSH7 0x3DB15A9437DC53 0xB9 SMOD PUSH27 0x6CBFC11D696550168D376C9D4C0AA09A64736F6C63430008160033 ",
"sourceMap": "69:375:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@endTime_5": {
"entryPoint": 443,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@investmentAmountOf_13": {
"entryPoint": 478,
"id": 13,
"parameterSlots": 0,
"returnSlots": 0
},
"@investmentReceived_15": {
"entryPoint": 437,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@investmentRefunded_17": {
"entryPoint": 449,
"id": 17,
"parameterSlots": 0,
"returnSlots": 0
},
"@isFinalized_19": {
"entryPoint": 460,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@isRefundingAllowed_21": {
"entryPoint": 505,
"id": 21,
"parameterSlots": 0,
"returnSlots": 0
},
"@startTime_3": {
"entryPoint": 455,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@weiInvestmentObjective_9": {
"entryPoint": 499,
"id": 9,
"parameterSlots": 0,
"returnSlots": 0
},
"@weiTokenPrice_7": {
"entryPoint": 524,
"id": 7,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 704,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 724,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 590,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 539,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 605,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 554,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 665,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 579,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 634,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 530,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 630,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 682,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:2035:1",
"nodeType": "YulBlock",
"src": "0:2035:1",
"statements": [
{
"body": {
"nativeSrc": "52:32:1",
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nativeSrc": "62:16:1",
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nativeSrc": "73:5:1",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "62:7:1",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "7:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "34:5:1",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "44:7:1",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nativeSrc": "155:53:1",
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "172:3:1",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "195:5:1",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "177:17:1",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nativeSrc": "177:24:1",
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "165:6:1",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nativeSrc": "165:37:1",
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nativeSrc": "165:37:1",
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "90:118:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "143:5:1",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "150:3:1",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nativeSrc": "312:124:1",
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nativeSrc": "322:26:1",
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "334:9:1",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nativeSrc": "345:2:1",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "330:3:1",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nativeSrc": "330:18:1",
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "322:4:1",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "402:6:1",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "415:9:1",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nativeSrc": "426:1:1",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "411:3:1",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nativeSrc": "411:17:1",
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "358:43:1",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nativeSrc": "358:71:1",
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nativeSrc": "358:71:1",
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "214:222:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "284:9:1",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "296:6:1",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "307:4:1",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nativeSrc": "484:48:1",
"nodeType": "YulBlock",
"src": "484:48:1",
"statements": [
{
"nativeSrc": "494:32:1",
"nodeType": "YulAssignment",
"src": "494:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "519:5:1",
"nodeType": "YulIdentifier",
"src": "519:5:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "512:6:1",
"nodeType": "YulIdentifier",
"src": "512:6:1"
},
"nativeSrc": "512:13:1",
"nodeType": "YulFunctionCall",
"src": "512:13:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "505:6:1",
"nodeType": "YulIdentifier",
"src": "505:6:1"
},
"nativeSrc": "505:21:1",
"nodeType": "YulFunctionCall",
"src": "505:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "494:7:1",
"nodeType": "YulIdentifier",
"src": "494:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "442:90:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "466:5:1",
"nodeType": "YulTypedName",
"src": "466:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "476:7:1",
"nodeType": "YulTypedName",
"src": "476:7:1",
"type": ""
}
],
"src": "442:90:1"
},
{
"body": {
"nativeSrc": "597:50:1",
"nodeType": "YulBlock",
"src": "597:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "614:3:1",
"nodeType": "YulIdentifier",
"src": "614:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "634:5:1",
"nodeType": "YulIdentifier",
"src": "634:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "619:14:1",
"nodeType": "YulIdentifier",
"src": "619:14:1"
},
"nativeSrc": "619:21:1",
"nodeType": "YulFunctionCall",
"src": "619:21:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "607:6:1",
"nodeType": "YulIdentifier",
"src": "607:6:1"
},
"nativeSrc": "607:34:1",
"nodeType": "YulFunctionCall",
"src": "607:34:1"
},
"nativeSrc": "607:34:1",
"nodeType": "YulExpressionStatement",
"src": "607:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "538:109:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "585:5:1",
"nodeType": "YulTypedName",
"src": "585:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "592:3:1",
"nodeType": "YulTypedName",
"src": "592:3:1",
"type": ""
}
],
"src": "538:109:1"
},
{
"body": {
"nativeSrc": "745:118:1",
"nodeType": "YulBlock",
"src": "745:118:1",
"statements": [
{
"nativeSrc": "755:26:1",
"nodeType": "YulAssignment",
"src": "755:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "767:9:1",
"nodeType": "YulIdentifier",
"src": "767:9:1"
},
{
"kind": "number",
"nativeSrc": "778:2:1",
"nodeType": "YulLiteral",
"src": "778:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "763:3:1",
"nodeType": "YulIdentifier",
"src": "763:3:1"
},
"nativeSrc": "763:18:1",
"nodeType": "YulFunctionCall",
"src": "763:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "755:4:1",
"nodeType": "YulIdentifier",
"src": "755:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "829:6:1",
"nodeType": "YulIdentifier",
"src": "829:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "842:9:1",
"nodeType": "YulIdentifier",
"src": "842:9:1"
},
{
"kind": "number",
"nativeSrc": "853:1:1",
"nodeType": "YulLiteral",
"src": "853:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "838:3:1",
"nodeType": "YulIdentifier",
"src": "838:3:1"
},
"nativeSrc": "838:17:1",
"nodeType": "YulFunctionCall",
"src": "838:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "791:37:1",
"nodeType": "YulIdentifier",
"src": "791:37:1"
},
"nativeSrc": "791:65:1",
"nodeType": "YulFunctionCall",
"src": "791:65:1"
},
"nativeSrc": "791:65:1",
"nodeType": "YulExpressionStatement",
"src": "791:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "653:210:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "717:9:1",
"nodeType": "YulTypedName",
"src": "717:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "729:6:1",
"nodeType": "YulTypedName",
"src": "729:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "740:4:1",
"nodeType": "YulTypedName",
"src": "740:4:1",
"type": ""
}
],
"src": "653:210:1"
},
{
"body": {
"nativeSrc": "909:35:1",
"nodeType": "YulBlock",
"src": "909:35:1",
"statements": [
{
"nativeSrc": "919:19:1",
"nodeType": "YulAssignment",
"src": "919:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "935:2:1",
"nodeType": "YulLiteral",
"src": "935:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "929:5:1",
"nodeType": "YulIdentifier",
"src": "929:5:1"
},
"nativeSrc": "929:9:1",
"nodeType": "YulFunctionCall",
"src": "929:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "919:6:1",
"nodeType": "YulIdentifier",
"src": "919:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "869:75:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "902:6:1",
"nodeType": "YulTypedName",
"src": "902:6:1",
"type": ""
}
],
"src": "869:75:1"
},
{
"body": {
"nativeSrc": "1039:28:1",
"nodeType": "YulBlock",
"src": "1039:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1056:1:1",
"nodeType": "YulLiteral",
"src": "1056:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1059:1:1",
"nodeType": "YulLiteral",
"src": "1059:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1049:6:1",
"nodeType": "YulIdentifier",
"src": "1049:6:1"
},
"nativeSrc": "1049:12:1",
"nodeType": "YulFunctionCall",
"src": "1049:12:1"
},
"nativeSrc": "1049:12:1",
"nodeType": "YulExpressionStatement",
"src": "1049:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "950:117:1",
"nodeType": "YulFunctionDefinition",
"src": "950:117:1"
},
{
"body": {
"nativeSrc": "1162:28:1",
"nodeType": "YulBlock",
"src": "1162:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1179:1:1",
"nodeType": "YulLiteral",
"src": "1179:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1182:1:1",
"nodeType": "YulLiteral",
"src": "1182:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1172:6:1",
"nodeType": "YulIdentifier",
"src": "1172:6:1"
},
"nativeSrc": "1172:12:1",
"nodeType": "YulFunctionCall",
"src": "1172:12:1"
},
"nativeSrc": "1172:12:1",
"nodeType": "YulExpressionStatement",
"src": "1172:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "1073:117:1",
"nodeType": "YulFunctionDefinition",
"src": "1073:117:1"
},
{
"body": {
"nativeSrc": "1241:81:1",
"nodeType": "YulBlock",
"src": "1241:81:1",
"statements": [
{
"nativeSrc": "1251:65:1",
"nodeType": "YulAssignment",
"src": "1251:65:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1266:5:1",
"nodeType": "YulIdentifier",
"src": "1266:5:1"
},
{
"kind": "number",
"nativeSrc": "1273:42:1",
"nodeType": "YulLiteral",
"src": "1273:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1262:3:1",
"nodeType": "YulIdentifier",
"src": "1262:3:1"
},
"nativeSrc": "1262:54:1",
"nodeType": "YulFunctionCall",
"src": "1262:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1251:7:1",
"nodeType": "YulIdentifier",
"src": "1251:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "1196:126:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1223:5:1",
"nodeType": "YulTypedName",
"src": "1223:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1233:7:1",
"nodeType": "YulTypedName",
"src": "1233:7:1",
"type": ""
}
],
"src": "1196:126:1"
},
{
"body": {
"nativeSrc": "1373:51:1",
"nodeType": "YulBlock",
"src": "1373:51:1",
"statements": [
{
"nativeSrc": "1383:35:1",
"nodeType": "YulAssignment",
"src": "1383:35:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1412:5:1",
"nodeType": "YulIdentifier",
"src": "1412:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "1394:17:1",
"nodeType": "YulIdentifier",
"src": "1394:17:1"
},
"nativeSrc": "1394:24:1",
"nodeType": "YulFunctionCall",
"src": "1394:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1383:7:1",
"nodeType": "YulIdentifier",
"src": "1383:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "1328:96:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1355:5:1",
"nodeType": "YulTypedName",
"src": "1355:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1365:7:1",
"nodeType": "YulTypedName",
"src": "1365:7:1",
"type": ""
}
],
"src": "1328:96:1"
},
{
"body": {
"nativeSrc": "1473:79:1",
"nodeType": "YulBlock",
"src": "1473:79:1",
"statements": [
{
"body": {
"nativeSrc": "1530:16:1",
"nodeType": "YulBlock",
"src": "1530:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1539:1:1",
"nodeType": "YulLiteral",
"src": "1539:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1542:1:1",
"nodeType": "YulLiteral",
"src": "1542:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1532:6:1",
"nodeType": "YulIdentifier",
"src": "1532:6:1"
},
"nativeSrc": "1532:12:1",
"nodeType": "YulFunctionCall",
"src": "1532:12:1"
},
"nativeSrc": "1532:12:1",
"nodeType": "YulExpressionStatement",
"src": "1532:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1496:5:1",
"nodeType": "YulIdentifier",
"src": "1496:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1521:5:1",
"nodeType": "YulIdentifier",
"src": "1521:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "1503:17:1",
"nodeType": "YulIdentifier",
"src": "1503:17:1"
},
"nativeSrc": "1503:24:1",
"nodeType": "YulFunctionCall",
"src": "1503:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "1493:2:1",
"nodeType": "YulIdentifier",
"src": "1493:2:1"
},
"nativeSrc": "1493:35:1",
"nodeType": "YulFunctionCall",
"src": "1493:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1486:6:1",
"nodeType": "YulIdentifier",
"src": "1486:6:1"
},
"nativeSrc": "1486:43:1",
"nodeType": "YulFunctionCall",
"src": "1486:43:1"
},
"nativeSrc": "1483:63:1",
"nodeType": "YulIf",
"src": "1483:63:1"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "1430:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1466:5:1",
"nodeType": "YulTypedName",
"src": "1466:5:1",
"type": ""
}
],
"src": "1430:122:1"
},
{
"body": {
"nativeSrc": "1610:87:1",
"nodeType": "YulBlock",
"src": "1610:87:1",
"statements": [
{
"nativeSrc": "1620:29:1",
"nodeType": "YulAssignment",
"src": "1620:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "1642:6:1",
"nodeType": "YulIdentifier",
"src": "1642:6:1"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "1629:12:1",
"nodeType": "YulIdentifier",
"src": "1629:12:1"
},
"nativeSrc": "1629:20:1",
"nodeType": "YulFunctionCall",
"src": "1629:20:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "1620:5:1",
"nodeType": "YulIdentifier",
"src": "1620:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "1685:5:1",
"nodeType": "YulIdentifier",
"src": "1685:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "1658:26:1",
"nodeType": "YulIdentifier",
"src": "1658:26:1"
},
"nativeSrc": "1658:33:1",
"nodeType": "YulFunctionCall",
"src": "1658:33:1"
},
"nativeSrc": "1658:33:1",
"nodeType": "YulExpressionStatement",
"src": "1658:33:1"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "1558:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "1588:6:1",
"nodeType": "YulTypedName",
"src": "1588:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "1596:3:1",
"nodeType": "YulTypedName",
"src": "1596:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "1604:5:1",
"nodeType": "YulTypedName",
"src": "1604:5:1",
"type": ""
}
],
"src": "1558:139:1"
},
{
"body": {
"nativeSrc": "1769:263:1",
"nodeType": "YulBlock",
"src": "1769:263:1",
"statements": [
{
"body": {
"nativeSrc": "1815:83:1",
"nodeType": "YulBlock",
"src": "1815:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1817:77:1",
"nodeType": "YulIdentifier",
"src": "1817:77:1"
},
"nativeSrc": "1817:79:1",
"nodeType": "YulFunctionCall",
"src": "1817:79:1"
},
"nativeSrc": "1817:79:1",
"nodeType": "YulExpressionStatement",
"src": "1817:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "1790:7:1",
"nodeType": "YulIdentifier",
"src": "1790:7:1"
},
{
"name": "headStart",
"nativeSrc": "1799:9:1",
"nodeType": "YulIdentifier",
"src": "1799:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1786:3:1",
"nodeType": "YulIdentifier",
"src": "1786:3:1"
},
"nativeSrc": "1786:23:1",
"nodeType": "YulFunctionCall",
"src": "1786:23:1"
},
{
"kind": "number",
"nativeSrc": "1811:2:1",
"nodeType": "YulLiteral",
"src": "1811:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "1782:3:1",
"nodeType": "YulIdentifier",
"src": "1782:3:1"
},
"nativeSrc": "1782:32:1",
"nodeType": "YulFunctionCall",
"src": "1782:32:1"
},
"nativeSrc": "1779:119:1",
"nodeType": "YulIf",
"src": "1779:119:1"
},
{
"nativeSrc": "1908:117:1",
"nodeType": "YulBlock",
"src": "1908:117:1",
"statements": [
{
"nativeSrc": "1923:15:1",
"nodeType": "YulVariableDeclaration",
"src": "1923:15:1",
"value": {
"kind": "number",
"nativeSrc": "1937:1:1",
"nodeType": "YulLiteral",
"src": "1937:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "1927:6:1",
"nodeType": "YulTypedName",
"src": "1927:6:1",
"type": ""
}
]
},
{
"nativeSrc": "1952:63:1",
"nodeType": "YulAssignment",
"src": "1952:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1987:9:1",
"nodeType": "YulIdentifier",
"src": "1987:9:1"
},
{
"name": "offset",
"nativeSrc": "1998:6:1",
"nodeType": "YulIdentifier",
"src": "1998:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1983:3:1",
"nodeType": "YulIdentifier",
"src": "1983:3:1"
},
"nativeSrc": "1983:22:1",
"nodeType": "YulFunctionCall",
"src": "1983:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "2007:7:1",
"nodeType": "YulIdentifier",
"src": "2007:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "1962:20:1",
"nodeType": "YulIdentifier",
"src": "1962:20:1"
},
"nativeSrc": "1962:53:1",
"nodeType": "YulFunctionCall",
"src": "1962:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "1952:6:1",
"nodeType": "YulIdentifier",
"src": "1952:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "1703:329:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1739:9:1",
"nodeType": "YulTypedName",
"src": "1739:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "1750:7:1",
"nodeType": "YulTypedName",
"src": "1750:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "1762:6:1",
"nodeType": "YulTypedName",
"src": "1762:6:1",
"type": ""
}
],
"src": "1703:329:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b5060043610610091575f3560e01c80638d4e4083116100645780638d4e40831461010d578063912e704e1461012b578063bab34f431461015b578063cb6f16d414610179578063ee56cf411461019757610091565b80631c0a5c10146100955780633197cbb6146100b357806338ef9380146100d157806378e97925146100ef575b5f80fd5b61009d6101b5565b6040516100aa919061022a565b60405180910390f35b6100bb6101bb565b6040516100c8919061022a565b60405180910390f35b6100d96101c1565b6040516100e6919061022a565b60405180910390f35b6100f76101c7565b604051610104919061022a565b60405180910390f35b6101156101cc565b604051610122919061025d565b60405180910390f35b610145600480360381019061014091906102d4565b6101de565b604051610152919061022a565b60405180910390f35b6101636101f3565b604051610170919061022a565b60405180910390f35b6101816101f9565b60405161018e919061025d565b60405180910390f35b61019f61020c565b6040516101ac919061022a565b60405180910390f35b60055481565b60015481565b60065481565b5f5481565b60075f9054906101000a900460ff1681565b6004602052805f5260405f205f915090505481565b60035481565b600760019054906101000a900460ff1681565b60025481565b5f819050919050565b61022481610212565b82525050565b5f60208201905061023d5f83018461021b565b92915050565b5f8115159050919050565b61025781610243565b82525050565b5f6020820190506102705f83018461024e565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a38261027a565b9050919050565b6102b381610299565b81146102bd575f80fd5b50565b5f813590506102ce816102aa565b92915050565b5f602082840312156102e9576102e8610276565b5b5f6102f6848285016102c0565b9150509291505056fea2646970667358221220fd29c5eeec663db15a9437dc53b9077a6cbfc11d696550168d376c9d4c0aa09a64736f6c63430008160033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8D4E4083 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x8D4E4083 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x912E704E EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0xBAB34F43 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0xCB6F16D4 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0xEE56CF41 EQ PUSH2 0x197 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x1C0A5C10 EQ PUSH2 0x95 JUMPI DUP1 PUSH4 0x3197CBB6 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x38EF9380 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x78E97925 EQ PUSH2 0xEF JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x9D PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD9 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH2 0x1C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x115 PUSH2 0x1CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x140 SWAP2 SWAP1 PUSH2 0x2D4 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH2 0x1F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x181 PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x20C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224 DUP2 PUSH2 0x212 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23D PUSH0 DUP4 ADD DUP5 PUSH2 0x21B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x257 DUP2 PUSH2 0x243 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x270 PUSH0 DUP4 ADD DUP5 PUSH2 0x24E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2A3 DUP3 PUSH2 0x27A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B3 DUP2 PUSH2 0x299 JUMP JUMPDEST DUP2 EQ PUSH2 0x2BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2CE DUP2 PUSH2 0x2AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E9 JUMPI PUSH2 0x2E8 PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x2C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT 0x29 0xC5 0xEE 0xEC PUSH7 0x3DB15A9437DC53 0xB9 SMOD PUSH27 0x6CBFC11D696550168D376C9D4C0AA09A64736F6C63430008160033 ",
"sourceMap": "69:375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;296:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;130:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;335:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;100:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;375:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;236:54;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;192:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;404:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;158:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;296:33;;;;:::o;130:22::-;;;;:::o;335:33::-;;;;:::o;100:24::-;;;;:::o;375:23::-;;;;;;;;;;;;;:::o;236:54::-;;;;;;;;;;;;;;;;;:::o;192:37::-;;;;:::o;404:30::-;;;;;;;;;;;;;:::o;158:28::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;950:117::-;1059:1;1056;1049:12;1196:126;1233:7;1273:42;1266:5;1262:54;1251:65;;1196:126;;;:::o;1328:96::-;1365:7;1394:24;1412:5;1394:24;:::i;:::-;1383:35;;1328:96;;;:::o;1430:122::-;1503:24;1521:5;1503:24;:::i;:::-;1496:5;1493:35;1483:63;;1542:1;1539;1532:12;1483:63;1430:122;:::o;1558:139::-;1604:5;1642:6;1629:20;1620:29;;1658:33;1685:5;1658:33;:::i;:::-;1558:139;;;;:::o;1703:329::-;1762:6;1811:2;1799:9;1790:7;1786:23;1782:32;1779:119;;;1817:79;;:::i;:::-;1779:119;1937:1;1962:53;2007:7;1998:6;1987:9;1983:22;1962:53;:::i;:::-;1952:63;;1908:117;1703:329;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "164200",
"executionCost": "206",
"totalCost": "164406"
},
"external": {
"endTime()": "2448",
"investmentAmountOf(address)": "2824",
"investmentReceived()": "2426",
"investmentRefunded()": "2470",
"isFinalized()": "2466",
"isRefundingAllowed()": "2583",
"startTime()": "2491",
"weiInvestmentObjective()": "2469",
"weiTokenPrice()": "2513"
}
},
"legacyAssembly": {
".code": [
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 69,
"end": 444,
"name": "MSTORE",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "ISZERO",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "REVERT",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 69,
"end": 444,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "POP",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 69,
"end": 444,
"name": "CODECOPY",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 69,
"end": 444,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220fd29c5eeec663db15a9437dc53b9077a6cbfc11d696550168d376c9d4c0aa09a64736f6c63430008160033",
".code": [
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 69,
"end": 444,
"name": "MSTORE",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "ISZERO",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "REVERT",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 69,
"end": 444,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "POP",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 69,
"end": 444,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "LT",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 69,
"end": 444,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 69,
"end": 444,
"name": "SHR",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "8D4E4083"
},
{
"begin": 69,
"end": 444,
"name": "GT",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "8D4E4083"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "912E704E"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "BAB34F43"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "CB6F16D4"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "EE56CF41"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 69,
"end": 444,
"name": "JUMP",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 69,
"end": 444,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "1C0A5C10"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "3197CBB6"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "38EF9380"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "78E97925"
},
{
"begin": 69,
"end": 444,
"name": "EQ",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 69,
"end": 444,
"name": "JUMPI",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 69,
"end": 444,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 69,
"end": 444,
"name": "DUP1",
"source": 0
},
{
"begin": 69,
"end": 444,
"name": "REVERT",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 296,
"end": 329,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 296,
"end": 329,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 296,
"end": 329,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 296,
"end": 329,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 296,
"end": 329,
"name": "MLOAD",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 296,
"end": 329,
"name": "SWAP2",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "SWAP1",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 296,
"end": 329,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 296,
"end": 329,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 296,
"end": 329,
"name": "MLOAD",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "DUP1",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "SWAP2",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "SUB",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "SWAP1",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "RETURN",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 130,
"end": 152,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 130,
"end": 152,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 130,
"end": 152,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "tag",
"source": 0,
"value": "17"
},
{
"begin": 130,
"end": 152,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 130,
"end": 152,
"name": "MLOAD",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 130,
"end": 152,
"name": "SWAP2",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "SWAP1",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 130,
"end": 152,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "tag",
"source": 0,
"value": "19"
},
{
"begin": 130,
"end": 152,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 130,
"end": 152,
"name": "MLOAD",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "DUP1",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "SWAP2",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "SUB",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "SWAP1",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "RETURN",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 335,
"end": 368,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 335,
"end": 368,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 335,
"end": 368,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 335,
"end": 368,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 335,
"end": 368,
"name": "MLOAD",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "PUSH [tag]",
"source": 0,
"value": "22"
},
{
"begin": 335,
"end": 368,
"name": "SWAP2",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "SWAP1",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 335,
"end": 368,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "tag",
"source": 0,
"value": "22"
},
{
"begin": 335,
"end": 368,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 335,
"end": 368,
"name": "MLOAD",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "DUP1",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "SWAP2",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "SUB",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "SWAP1",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "RETURN",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 100,
"end": 124,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 100,
"end": 124,
"name": "PUSH [tag]",
"source": 0,
"value": "24"
},
{
"begin": 100,
"end": 124,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "tag",
"source": 0,
"value": "23"
},
{
"begin": 100,
"end": 124,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 100,
"end": 124,
"name": "MLOAD",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "PUSH [tag]",
"source": 0,
"value": "25"
},
{
"begin": 100,
"end": 124,
"name": "SWAP2",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "SWAP1",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 100,
"end": 124,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "tag",
"source": 0,
"value": "25"
},
{
"begin": 100,
"end": 124,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 100,
"end": 124,
"name": "MLOAD",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "DUP1",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "SWAP2",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "SUB",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "SWAP1",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "RETURN",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 375,
"end": 398,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 375,
"end": 398,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 375,
"end": 398,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 375,
"end": 398,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 375,
"end": 398,
"name": "MLOAD",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 375,
"end": 398,
"name": "SWAP2",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "SWAP1",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 375,
"end": 398,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "tag",
"source": 0,
"value": "28"
},
{
"begin": 375,
"end": 398,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 375,
"end": 398,
"name": "MLOAD",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "DUP1",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "SWAP2",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "SUB",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "SWAP1",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "RETURN",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 236,
"end": 290,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH [tag]",
"source": 0,
"value": "30"
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 236,
"end": 290,
"name": "DUP1",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SUB",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "DUP2",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "ADD",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SWAP1",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH [tag]",
"source": 0,
"value": "31"
},
{
"begin": 236,
"end": 290,
"name": "SWAP2",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SWAP1",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH [tag]",
"source": 0,
"value": "32"
},
{
"begin": 236,
"end": 290,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "tag",
"source": 0,
"value": "31"
},
{
"begin": 236,
"end": 290,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 236,
"end": 290,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "tag",
"source": 0,
"value": "30"
},
{
"begin": 236,
"end": 290,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 236,
"end": 290,
"name": "MLOAD",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 236,
"end": 290,
"name": "SWAP2",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SWAP1",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 236,
"end": 290,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 236,
"end": 290,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 236,
"end": 290,
"name": "MLOAD",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "DUP1",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SWAP2",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SUB",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SWAP1",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "RETURN",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 192,
"end": 229,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 192,
"end": 229,
"name": "PUSH [tag]",
"source": 0,
"value": "36"
},
{
"begin": 192,
"end": 229,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "tag",
"source": 0,
"value": "35"
},
{
"begin": 192,
"end": 229,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 192,
"end": 229,
"name": "MLOAD",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "PUSH [tag]",
"source": 0,
"value": "37"
},
{
"begin": 192,
"end": 229,
"name": "SWAP2",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "SWAP1",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 192,
"end": 229,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "tag",
"source": 0,
"value": "37"
},
{
"begin": 192,
"end": 229,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 192,
"end": 229,
"name": "MLOAD",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "DUP1",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "SWAP2",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "SUB",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "SWAP1",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "RETURN",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 404,
"end": 434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "PUSH [tag]",
"source": 0,
"value": "38"
},
{
"begin": 404,
"end": 434,
"name": "PUSH [tag]",
"source": 0,
"value": "39"
},
{
"begin": 404,
"end": 434,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "tag",
"source": 0,
"value": "38"
},
{
"begin": 404,
"end": 434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 404,
"end": 434,
"name": "MLOAD",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "PUSH [tag]",
"source": 0,
"value": "40"
},
{
"begin": 404,
"end": 434,
"name": "SWAP2",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "SWAP1",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 404,
"end": 434,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "tag",
"source": 0,
"value": "40"
},
{
"begin": 404,
"end": 434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 404,
"end": 434,
"name": "MLOAD",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "DUP1",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "SWAP2",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "SUB",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "SWAP1",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "RETURN",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 158,
"end": 186,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "PUSH [tag]",
"source": 0,
"value": "41"
},
{
"begin": 158,
"end": 186,
"name": "PUSH [tag]",
"source": 0,
"value": "42"
},
{
"begin": 158,
"end": 186,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "tag",
"source": 0,
"value": "41"
},
{
"begin": 158,
"end": 186,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 158,
"end": 186,
"name": "MLOAD",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "PUSH [tag]",
"source": 0,
"value": "43"
},
{
"begin": 158,
"end": 186,
"name": "SWAP2",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "SWAP1",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 158,
"end": 186,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "tag",
"source": 0,
"value": "43"
},
{
"begin": 158,
"end": 186,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 158,
"end": 186,
"name": "MLOAD",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "DUP1",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "SWAP2",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "SUB",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "SWAP1",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "RETURN",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 296,
"end": 329,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "PUSH",
"source": 0,
"value": "5"
},
{
"begin": 296,
"end": 329,
"name": "SLOAD",
"source": 0
},
{
"begin": 296,
"end": 329,
"name": "DUP2",
"source": 0
},
{
"begin": 296,
"end": 329,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 130,
"end": 152,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 130,
"end": 152,
"name": "SLOAD",
"source": 0
},
{
"begin": 130,
"end": 152,
"name": "DUP2",
"source": 0
},
{
"begin": 130,
"end": 152,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 335,
"end": 368,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "PUSH",
"source": 0,
"value": "6"
},
{
"begin": 335,
"end": 368,
"name": "SLOAD",
"source": 0
},
{
"begin": 335,
"end": 368,
"name": "DUP2",
"source": 0
},
{
"begin": 335,
"end": 368,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "tag",
"source": 0,
"value": "24"
},
{
"begin": 100,
"end": 124,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 100,
"end": 124,
"name": "SLOAD",
"source": 0
},
{
"begin": 100,
"end": 124,
"name": "DUP2",
"source": 0
},
{
"begin": 100,
"end": 124,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 375,
"end": 398,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "PUSH",
"source": 0,
"value": "7"
},
{
"begin": 375,
"end": 398,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 375,
"end": 398,
"name": "SWAP1",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "SLOAD",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "SWAP1",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 375,
"end": 398,
"name": "EXP",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "SWAP1",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "DIV",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 375,
"end": 398,
"name": "AND",
"source": 0
},
{
"begin": 375,
"end": 398,
"name": "DUP2",
"source": 0
},
{
"begin": 375,
"end": 398,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 236,
"end": 290,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 236,
"end": 290,
"name": "MSTORE",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "DUP1",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 236,
"end": 290,
"name": "MSTORE",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 236,
"end": 290,
"name": "KECCAK256",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 236,
"end": 290,
"name": "SWAP2",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "POP",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SWAP1",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "POP",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "SLOAD",
"source": 0
},
{
"begin": 236,
"end": 290,
"name": "DUP2",
"source": 0
},
{
"begin": 236,
"end": 290,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "tag",
"source": 0,
"value": "36"
},
{
"begin": 192,
"end": 229,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "PUSH",
"source": 0,
"value": "3"
},
{
"begin": 192,
"end": 229,
"name": "SLOAD",
"source": 0
},
{
"begin": 192,
"end": 229,
"name": "DUP2",
"source": 0
},
{
"begin": 192,
"end": 229,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "tag",
"source": 0,
"value": "39"
},
{
"begin": 404,
"end": 434,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "PUSH",
"source": 0,
"value": "7"
},
{
"begin": 404,
"end": 434,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 404,
"end": 434,
"name": "SWAP1",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "SLOAD",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "SWAP1",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 404,
"end": 434,
"name": "EXP",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "SWAP1",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "DIV",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 404,
"end": 434,
"name": "AND",
"source": 0
},
{
"begin": 404,
"end": 434,
"name": "DUP2",
"source": 0
},
{
"begin": 404,
"end": 434,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "tag",
"source": 0,
"value": "42"
},
{
"begin": 158,
"end": 186,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 158,
"end": 186,
"name": "SLOAD",
"source": 0
},
{
"begin": 158,
"end": 186,
"name": "DUP2",
"source": 0
},
{
"begin": 158,
"end": 186,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 7,
"end": 84,
"name": "tag",
"source": 1,
"value": "44"
},
{
"begin": 7,
"end": 84,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 44,
"end": 51,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 73,
"end": 78,
"name": "DUP2",
"source": 1
},
{
"begin": 62,
"end": 78,
"name": "SWAP1",
"source": 1
},
{
"begin": 62,
"end": 78,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "SWAP2",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "SWAP1",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 84,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "tag",
"source": 1,
"value": "45"
},
{
"begin": 90,
"end": 208,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "PUSH [tag]",
"source": 1,
"value": "58"
},
{
"begin": 195,
"end": 200,
"name": "DUP2",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "PUSH [tag]",
"source": 1,
"value": "44"
},
{
"begin": 177,
"end": 201,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "tag",
"source": 1,
"value": "58"
},
{
"begin": 177,
"end": 201,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 172,
"end": 175,
"name": "DUP3",
"source": 1
},
{
"begin": 165,
"end": 202,
"name": "MSTORE",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "POP",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "POP",
"source": 1
},
{
"begin": 90,
"end": 208,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 214,
"end": 436,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 307,
"end": 311,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 345,
"end": 347,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 334,
"end": 343,
"name": "DUP3",
"source": 1
},
{
"begin": 330,
"end": 348,
"name": "ADD",
"source": 1
},
{
"begin": 322,
"end": 348,
"name": "SWAP1",
"source": 1
},
{
"begin": 322,
"end": 348,
"name": "POP",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "PUSH [tag]",
"source": 1,
"value": "60"
},
{
"begin": 426,
"end": 427,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 415,
"end": 424,
"name": "DUP4",
"source": 1
},
{
"begin": 411,
"end": 428,
"name": "ADD",
"source": 1
},
{
"begin": 402,
"end": 408,
"name": "DUP5",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "PUSH [tag]",
"source": 1,
"value": "45"
},
{
"begin": 358,
"end": 429,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "tag",
"source": 1,
"value": "60"
},
{
"begin": 358,
"end": 429,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "SWAP3",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "SWAP2",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "POP",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "POP",
"source": 1
},
{
"begin": 214,
"end": 436,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 442,
"end": 532,
"name": "tag",
"source": 1,
"value": "46"
},
{
"begin": 442,
"end": 532,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 476,
"end": 483,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 519,
"end": 524,
"name": "DUP2",
"source": 1
},
{
"begin": 512,
"end": 525,
"name": "ISZERO",
"source": 1
},
{
"begin": 505,
"end": 526,
"name": "ISZERO",
"source": 1
},
{
"begin": 494,
"end": 526,
"name": "SWAP1",
"source": 1
},
{
"begin": 494,
"end": 526,
"name": "POP",
"source": 1
},
{
"begin": 442,
"end": 532,
"name": "SWAP2",
"source": 1
},
{
"begin": 442,
"end": 532,
"name": "SWAP1",
"source": 1
},
{
"begin": 442,
"end": 532,
"name": "POP",
"source": 1
},
{
"begin": 442,
"end": 532,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 538,
"end": 647,
"name": "tag",
"source": 1,
"value": "47"
},
{
"begin": 538,
"end": 647,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 619,
"end": 640,
"name": "PUSH [tag]",
"source": 1,
"value": "63"
},
{
"begin": 634,
"end": 639,
"name": "DUP2",
"source": 1
},
{
"begin": 619,
"end": 640,
"name": "PUSH [tag]",
"source": 1,
"value": "46"
},
{
"begin": 619,
"end": 640,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 619,
"end": 640,
"name": "tag",
"source": 1,
"value": "63"
},
{
"begin": 619,
"end": 640,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 614,
"end": 617,
"name": "DUP3",
"source": 1
},
{
"begin": 607,
"end": 641,
"name": "MSTORE",
"source": 1
},
{
"begin": 538,
"end": 647,
"name": "POP",
"source": 1
},
{
"begin": 538,
"end": 647,
"name": "POP",
"source": 1
},
{
"begin": 538,
"end": 647,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 653,
"end": 863,
"name": "tag",
"source": 1,
"value": "29"
},
{
"begin": 653,
"end": 863,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 740,
"end": 744,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 778,
"end": 780,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 767,
"end": 776,
"name": "DUP3",
"source": 1
},
{
"begin": 763,
"end": 781,
"name": "ADD",
"source": 1
},
{
"begin": 755,
"end": 781,
"name": "SWAP1",
"source": 1
},
{
"begin": 755,
"end": 781,
"name": "POP",
"source": 1
},
{
"begin": 791,
"end": 856,
"name": "PUSH [tag]",
"source": 1,
"value": "65"
},
{
"begin": 853,
"end": 854,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 842,
"end": 851,
"name": "DUP4",
"source": 1
},
{
"begin": 838,
"end": 855,
"name": "ADD",
"source": 1
},
{
"begin": 829,
"end": 835,
"name": "DUP5",
"source": 1
},
{
"begin": 791,
"end": 856,
"name": "PUSH [tag]",
"source": 1,
"value": "47"
},
{
"begin": 791,
"end": 856,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 791,
"end": 856,
"name": "tag",
"source": 1,
"value": "65"
},
{
"begin": 791,
"end": 856,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 653,
"end": 863,
"name": "SWAP3",
"source": 1
},
{
"begin": 653,
"end": 863,
"name": "SWAP2",
"source": 1
},
{
"begin": 653,
"end": 863,
"name": "POP",
"source": 1
},
{
"begin": 653,
"end": 863,
"name": "POP",
"source": 1
},
{
"begin": 653,
"end": 863,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 950,
"end": 1067,
"name": "tag",
"source": 1,
"value": "49"
},
{
"begin": 950,
"end": 1067,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1059,
"end": 1060,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1056,
"end": 1057,
"name": "DUP1",
"source": 1
},
{
"begin": 1049,
"end": 1061,
"name": "REVERT",
"source": 1
},
{
"begin": 1196,
"end": 1322,
"name": "tag",
"source": 1,
"value": "51"
},
{
"begin": 1196,
"end": 1322,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1233,
"end": 1240,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1273,
"end": 1315,
"name": "PUSH",
"source": 1,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1266,
"end": 1271,
"name": "DUP3",
"source": 1
},
{
"begin": 1262,
"end": 1316,
"name": "AND",
"source": 1
},
{
"begin": 1251,
"end": 1316,
"name": "SWAP1",
"source": 1
},
{
"begin": 1251,
"end": 1316,
"name": "POP",
"source": 1
},
{
"begin": 1196,
"end": 1322,
"name": "SWAP2",
"source": 1
},
{
"begin": 1196,
"end": 1322,
"name": "SWAP1",
"source": 1
},
{
"begin": 1196,
"end": 1322,
"name": "POP",
"source": 1
},
{
"begin": 1196,
"end": 1322,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1328,
"end": 1424,
"name": "tag",
"source": 1,
"value": "52"
},
{
"begin": 1328,
"end": 1424,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1365,
"end": 1372,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1394,
"end": 1418,
"name": "PUSH [tag]",
"source": 1,
"value": "71"
},
{
"begin": 1412,
"end": 1417,
"name": "DUP3",
"source": 1
},
{
"begin": 1394,
"end": 1418,
"name": "PUSH [tag]",
"source": 1,
"value": "51"
},
{
"begin": 1394,
"end": 1418,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1394,
"end": 1418,
"name": "tag",
"source": 1,
"value": "71"
},
{
"begin": 1394,
"end": 1418,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1383,
"end": 1418,
"name": "SWAP1",
"source": 1
},
{
"begin": 1383,
"end": 1418,
"name": "POP",
"source": 1
},
{
"begin": 1328,
"end": 1424,
"name": "SWAP2",
"source": 1
},
{
"begin": 1328,
"end": 1424,
"name": "SWAP1",
"source": 1
},
{
"begin": 1328,
"end": 1424,
"name": "POP",
"source": 1
},
{
"begin": 1328,
"end": 1424,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1430,
"end": 1552,
"name": "tag",
"source": 1,
"value": "53"
},
{
"begin": 1430,
"end": 1552,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1503,
"end": 1527,
"name": "PUSH [tag]",
"source": 1,
"value": "73"
},
{
"begin": 1521,
"end": 1526,
"name": "DUP2",
"source": 1
},
{
"begin": 1503,
"end": 1527,
"name": "PUSH [tag]",
"source": 1,
"value": "52"
},
{
"begin": 1503,
"end": 1527,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1503,
"end": 1527,
"name": "tag",
"source": 1,
"value": "73"
},
{
"begin": 1503,
"end": 1527,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1496,
"end": 1501,
"name": "DUP2",
"source": 1
},
{
"begin": 1493,
"end": 1528,
"name": "EQ",
"source": 1
},
{
"begin": 1483,
"end": 1546,
"name": "PUSH [tag]",
"source": 1,
"value": "74"
},
{
"begin": 1483,
"end": 1546,
"name": "JUMPI",
"source": 1
},
{
"begin": 1542,
"end": 1543,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1539,
"end": 1540,
"name": "DUP1",
"source": 1
},
{
"begin": 1532,
"end": 1544,
"name": "REVERT",
"source": 1
},
{
"begin": 1483,
"end": 1546,
"name": "tag",
"source": 1,
"value": "74"
},
{
"begin": 1483,
"end": 1546,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1430,
"end": 1552,
"name": "POP",
"source": 1
},
{
"begin": 1430,
"end": 1552,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1558,
"end": 1697,
"name": "tag",
"source": 1,
"value": "54"
},
{
"begin": 1558,
"end": 1697,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1604,
"end": 1609,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1642,
"end": 1648,
"name": "DUP2",
"source": 1
},
{
"begin": 1629,
"end": 1649,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 1620,
"end": 1649,
"name": "SWAP1",
"source": 1
},
{
"begin": 1620,
"end": 1649,
"name": "POP",
"source": 1
},
{
"begin": 1658,
"end": 1691,
"name": "PUSH [tag]",
"source": 1,
"value": "76"
},
{
"begin": 1685,
"end": 1690,
"name": "DUP2",
"source": 1
},
{
"begin": 1658,
"end": 1691,
"name": "PUSH [tag]",
"source": 1,
"value": "53"
},
{
"begin": 1658,
"end": 1691,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1658,
"end": 1691,
"name": "tag",
"source": 1,
"value": "76"
},
{
"begin": 1658,
"end": 1691,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1558,
"end": 1697,
"name": "SWAP3",
"source": 1
},
{
"begin": 1558,
"end": 1697,
"name": "SWAP2",
"source": 1
},
{
"begin": 1558,
"end": 1697,
"name": "POP",
"source": 1
},
{
"begin": 1558,
"end": 1697,
"name": "POP",
"source": 1
},
{
"begin": 1558,
"end": 1697,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1703,
"end": 2032,
"name": "tag",
"source": 1,
"value": "32"
},
{
"begin": 1703,
"end": 2032,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1762,
"end": 1768,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1811,
"end": 1813,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 1799,
"end": 1808,
"name": "DUP3",
"source": 1
},
{
"begin": 1790,
"end": 1797,
"name": "DUP5",
"source": 1
},
{
"begin": 1786,
"end": 1809,
"name": "SUB",
"source": 1
},
{
"begin": 1782,
"end": 1814,
"name": "SLT",
"source": 1
},
{
"begin": 1779,
"end": 1898,
"name": "ISZERO",
"source": 1
},
{
"begin": 1779,
"end": 1898,
"name": "PUSH [tag]",
"source": 1,
"value": "78"
},
{
"begin": 1779,
"end": 1898,
"name": "JUMPI",
"source": 1
},
{
"begin": 1817,
"end": 1896,
"name": "PUSH [tag]",
"source": 1,
"value": "79"
},
{
"begin": 1817,
"end": 1896,
"name": "PUSH [tag]",
"source": 1,
"value": "49"
},
{
"begin": 1817,
"end": 1896,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1817,
"end": 1896,
"name": "tag",
"source": 1,
"value": "79"
},
{
"begin": 1817,
"end": 1896,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1779,
"end": 1898,
"name": "tag",
"source": 1,
"value": "78"
},
{
"begin": 1779,
"end": 1898,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1937,
"end": 1938,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1962,
"end": 2015,
"name": "PUSH [tag]",
"source": 1,
"value": "80"
},
{
"begin": 2007,
"end": 2014,
"name": "DUP5",
"source": 1
},
{
"begin": 1998,
"end": 2004,
"name": "DUP3",
"source": 1
},
{
"begin": 1987,
"end": 1996,
"name": "DUP6",
"source": 1
},
{
"begin": 1983,
"end": 2005,
"name": "ADD",
"source": 1
},
{
"begin": 1962,
"end": 2015,
"name": "PUSH [tag]",
"source": 1,
"value": "54"
},
{
"begin": 1962,
"end": 2015,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1962,
"end": 2015,
"name": "tag",
"source": 1,
"value": "80"
},
{
"begin": 1962,
"end": 2015,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1952,
"end": 2015,
"name": "SWAP2",
"source": 1
},
{
"begin": 1952,
"end": 2015,
"name": "POP",
"source": 1
},
{
"begin": 1908,
"end": 2025,
"name": "POP",
"source": 1
},
{
"begin": 1703,
"end": 2032,
"name": "SWAP3",
"source": 1
},
{
"begin": 1703,
"end": 2032,
"name": "SWAP2",
"source": 1
},
{
"begin": 1703,
"end": 2032,
"name": "POP",
"source": 1
},
{
"begin": 1703,
"end": 2032,
"name": "POP",
"source": 1
},
{
"begin": 1703,
"end": 2032,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"contracts/SimpleCrowdsale.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"endTime()": "3197cbb6",
"investmentAmountOf(address)": "912e704e",
"investmentReceived()": "1c0a5c10",
"investmentRefunded()": "38ef9380",
"isFinalized()": "8d4e4083",
"isRefundingAllowed()": "cb6f16d4",
"startTime()": "78e97925",
"weiInvestmentObjective()": "bab34f43",
"weiTokenPrice()": "ee56cf41"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"investmentAmountOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"investmentReceived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"investmentRefunded\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRefundingAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weiInvestmentObjective\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weiTokenPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SimpleCrowdsale.sol\":\"SimpleCrowdsale\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/SimpleCrowdsale.sol\":{\"keccak256\":\"0xfbe0a63714ba582a38d1efb49172d2ce38337304228cb9e07c7a1b2e5eb65964\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e75a4c21478771ffd3750790d6a44e31e487fb36b133043b1b8d1fcf4a84c391\",\"dweb:/ipfs/QmfBE9NiBWxpxqGb5kQGCgeTyqSJri3EyzxjR5XUthPZXP\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "startTime",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 5,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "endTime",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 7,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "weiTokenPrice",
"offset": 0,
"slot": "2",
"type": "t_uint256"
},
{
"astId": 9,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "weiInvestmentObjective",
"offset": 0,
"slot": "3",
"type": "t_uint256"
},
{
"astId": 13,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "investmentAmountOf",
"offset": 0,
"slot": "4",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 15,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "investmentReceived",
"offset": 0,
"slot": "5",
"type": "t_uint256"
},
{
"astId": 17,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "investmentRefunded",
"offset": 0,
"slot": "6",
"type": "t_uint256"
},
{
"astId": 19,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "isFinalized",
"offset": 0,
"slot": "7",
"type": "t_bool"
},
{
"astId": 21,
"contract": "contracts/SimpleCrowdsale.sol:SimpleCrowdsale",
"label": "isRefundingAllowed",
"offset": 1,
"slot": "7",
"type": "t_bool"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_bool": {
"encoding": "inplace",
"label": "bool",
"numberOfBytes": "1"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"contracts/SimpleCrowdsale.sol": {
"ast": {
"absolutePath": "contracts/SimpleCrowdsale.sol",
"exportedSymbols": {
"SimpleCrowdsale": [
22
]
},
"id": 23,
"license": "GPL-3.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
">=",
"0.7",
".0",
"<",
"0.9",
".0"
],
"nodeType": "PragmaDirective",
"src": "36:31:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "SimpleCrowdsale",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 22,
"linearizedBaseContracts": [
22
],
"name": "SimpleCrowdsale",
"nameLocation": "78:15:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "78e97925",
"id": 3,
"mutability": "mutable",
"name": "startTime",
"nameLocation": "115:9:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "100:24:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "100:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "3197cbb6",
"id": 5,
"mutability": "mutable",
"name": "endTime",
"nameLocation": "145:7:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "130:22:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "130:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "ee56cf41",
"id": 7,
"mutability": "mutable",
"name": "weiTokenPrice",
"nameLocation": "173:13:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "158:28:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "158:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "bab34f43",
"id": 9,
"mutability": "mutable",
"name": "weiInvestmentObjective",
"nameLocation": "207:22:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "192:37:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "192:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "912e704e",
"id": 13,
"mutability": "mutable",
"name": "investmentAmountOf",
"nameLocation": "272:18:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "236:54:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 12,
"keyName": "",
"keyNameLocation": "-1:-1:-1",
"keyType": {
"id": 10,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "245:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "236:28:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueName": "",
"valueNameLocation": "-1:-1:-1",
"valueType": {
"id": 11,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "256:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "1c0a5c10",
"id": 15,
"mutability": "mutable",
"name": "investmentReceived",
"nameLocation": "311:18:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "296:33:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 14,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "296:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "38ef9380",
"id": 17,
"mutability": "mutable",
"name": "investmentRefunded",
"nameLocation": "350:18:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "335:33:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 16,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "335:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "8d4e4083",
"id": 19,
"mutability": "mutable",
"name": "isFinalized",
"nameLocation": "387:11:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "375:23:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 18,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "375:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "cb6f16d4",
"id": 21,
"mutability": "mutable",
"name": "isRefundingAllowed",
"nameLocation": "416:18:0",
"nodeType": "VariableDeclaration",
"scope": 22,
"src": "404:30:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 20,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "404:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "public"
}
],
"scope": 23,
"src": "69:375:0",
"usedErrors": [],
"usedEvents": []
}
],
"src": "36:408:0"
},
"id": 0
}
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_49": {
"entryPoint": null,
"id": 49,
"parameterSlots": 0,
"returnSlots": 0
},
"@_castToPure_110": {
"entryPoint": 513,
"id": 110,
"parameterSlots": 1,
"returnSlots": 1
},
"@_sendLogPayloadImplementation_93": {
"entryPoint": 480,
"id": 93,
"parameterSlots": 1,
"returnSlots": 0
},
"@_sendLogPayload_122": {
"entryPoint": 444,
"id": 122,
"parameterSlots": 1,
"returnSlots": 0
},
"@log_857": {
"entryPoint": 282,
"id": 857,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 735,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 628,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 750,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 541,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 552,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 717,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 685,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 569,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"panic_error_0x51": {
"entryPoint": 798,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 611,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2000:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "66:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "77:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "93:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "87:5:2"
},
"nodeType": "YulFunctionCall",
"src": "87:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "77:6:2"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "49:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "59:6:2",
"type": ""
}
],
"src": "7:99:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "208:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "225:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "230:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "218:6:2"
},
"nodeType": "YulFunctionCall",
"src": "218:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "218:19:2"
},
{
"nodeType": "YulAssignment",
"src": "246:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "265:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "270:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "261:3:2"
},
"nodeType": "YulFunctionCall",
"src": "261:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "246:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "180:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "185:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "196:11:2",
"type": ""
}
],
"src": "112:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "349:184:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "359:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "368:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "363:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "428:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "453:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "458:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "449:3:2"
},
"nodeType": "YulFunctionCall",
"src": "449:11:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "472:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "477:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "468:3:2"
},
"nodeType": "YulFunctionCall",
"src": "468:11:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "462:5:2"
},
"nodeType": "YulFunctionCall",
"src": "462:18:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "442:6:2"
},
"nodeType": "YulFunctionCall",
"src": "442:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "442:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "389:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "392:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "386:2:2"
},
"nodeType": "YulFunctionCall",
"src": "386:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "400:19:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "402:15:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "411:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "414:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "407:3:2"
},
"nodeType": "YulFunctionCall",
"src": "407:10:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "402:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "382:3:2",
"statements": []
},
"src": "378:113:2"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "511:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "516:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "507:3:2"
},
"nodeType": "YulFunctionCall",
"src": "507:16:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "500:6:2"
},
"nodeType": "YulFunctionCall",
"src": "500:27:2"
},
"nodeType": "YulExpressionStatement",
"src": "500:27:2"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "331:3:2",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "336:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "341:6:2",
"type": ""
}
],
"src": "287:246:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "587:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "597:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "615:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "622:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "611:3:2"
},
"nodeType": "YulFunctionCall",
"src": "611:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "631:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "627:3:2"
},
"nodeType": "YulFunctionCall",
"src": "627:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "607:3:2"
},
"nodeType": "YulFunctionCall",
"src": "607:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "597:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "570:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "580:6:2",
"type": ""
}
],
"src": "539:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "739:285:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "749:53:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "796:5:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "763:32:2"
},
"nodeType": "YulFunctionCall",
"src": "763:39:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "753:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "811:78:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "877:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "882:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "818:58:2"
},
"nodeType": "YulFunctionCall",
"src": "818:71:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "811:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "937:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "944:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "933:3:2"
},
"nodeType": "YulFunctionCall",
"src": "933:16:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "951:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "956:6:2"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "898:34:2"
},
"nodeType": "YulFunctionCall",
"src": "898:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "898:65:2"
},
{
"nodeType": "YulAssignment",
"src": "972:46:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "983:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1010:6:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "988:21:2"
},
"nodeType": "YulFunctionCall",
"src": "988:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "979:3:2"
},
"nodeType": "YulFunctionCall",
"src": "979:39:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "972:3:2"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "720:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "727:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "735:3:2",
"type": ""
}
],
"src": "647:377:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1075:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1085:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1100:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1107:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1096:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1096:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1085:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1057:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1067:7:2",
"type": ""
}
],
"src": "1030:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1207:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1217:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1246:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1228:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1228:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1217:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1189:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1199:7:2",
"type": ""
}
],
"src": "1162:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1329:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1346:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1369:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1351:17:2"
},
"nodeType": "YulFunctionCall",
"src": "1351:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1339:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1339:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "1339:37:2"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1317:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1324:3:2",
"type": ""
}
],
"src": "1264:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1534:277:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1544:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1556:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1567:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1552:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1552:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1544:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1591:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1602:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1587:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1587:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1610:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1616:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1606:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1606:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1580:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1580:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "1580:47:2"
},
{
"nodeType": "YulAssignment",
"src": "1636:86:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1708:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1717:4:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1644:63:2"
},
"nodeType": "YulFunctionCall",
"src": "1644:78:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1636:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1776:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1789:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1800:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1785:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1785:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "1732:43:2"
},
"nodeType": "YulFunctionCall",
"src": "1732:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "1732:72:2"
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1498:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1510:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1518:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1529:4:2",
"type": ""
}
],
"src": "1388:423:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1845:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1862:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1865:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1855:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1855:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "1855:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1959:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1962:4:2",
"type": "",
"value": "0x51"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1952:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1952:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "1952:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1983:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1986:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1976:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1976:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "1976:15:2"
}
]
},
"name": "panic_error_0x51",
"nodeType": "YulFunctionDefinition",
"src": "1817:180:2"
}
]
},
"contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x51() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x51)\n revert(0, 0x24)\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061005a6040518060400160405280601b81526020017f4f776e657220636f6e7472616374206465706c6f7965642062793a00000000008152503361011a60201b6101e91760201c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a361034d565b6101b882826040516024016101309291906102ee565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506101bc60201b60201c565b5050565b6101dd816101d86101e060201b6102851761020160201b60201c565b60201c565b50565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b61021360201b6102cb17819050919050565b61021b61031e565b565b600081519050919050565b600082825260208201905092915050565b60005b8381101561025757808201518184015260208101905061023c565b60008484015250505050565b6000601f19601f8301169050919050565b600061027f8261021d565b6102898185610228565b9350610299818560208601610239565b6102a281610263565b840191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102d8826102ad565b9050919050565b6102e8816102cd565b82525050565b600060408201905081810360008301526103088185610274565b905061031760208301846102df565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fd5b6105208061035c6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063893d20e81461003b578063a6f9dae114610059575b600080fd5b610043610075565b6040516100509190610316565b60405180910390f35b610073600480360381019061006e9190610362565b61009e565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461012c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610123906103ec565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61028182826040516024016101ff92919061048b565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506102a6565b5050565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6102bd816102b56102856102c0565b63ffffffff16565b50565b6102cb819050919050565b6102d36104bb565b565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610300826102d5565b9050919050565b610310816102f5565b82525050565b600060208201905061032b6000830184610307565b92915050565b600080fd5b61033f816102f5565b811461034a57600080fd5b50565b60008135905061035c81610336565b92915050565b60006020828403121561037857610377610331565b5b60006103868482850161034d565b91505092915050565b600082825260208201905092915050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b60006103d660138361038f565b91506103e1826103a0565b602082019050919050565b60006020820190508181036000830152610405816103c9565b9050919050565b600081519050919050565b60005b8381101561043557808201518184015260208101905061041a565b60008484015250505050565b6000601f19601f8301169050919050565b600061045d8261040c565b610467818561038f565b9350610477818560208601610417565b61048081610441565b840191505092915050565b600060408201905081810360008301526104a58185610452565b90506104b46020830184610307565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fdfea26469706673582212208ff1a9926d39cc99a583c9f1928e90a84a7bbd617c41b5353955f985fe1db9ad64736f6c63430008120033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4F776E657220636F6E7472616374206465706C6F7965642062793A0000000000 DUP2 MSTORE POP CALLER PUSH2 0x11A PUSH1 0x20 SHL PUSH2 0x1E9 OR PUSH1 0x20 SHR JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x34D JUMP JUMPDEST PUSH2 0x1B8 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x130 SWAP3 SWAP2 SWAP1 PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x1BC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1DD DUP2 PUSH2 0x1D8 PUSH2 0x1E0 PUSH1 0x20 SHL PUSH2 0x285 OR PUSH2 0x201 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x20 SHR JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH2 0x213 PUSH1 0x20 SHL PUSH2 0x2CB OR DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x21B PUSH2 0x31E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x257 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x23C JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27F DUP3 PUSH2 0x21D JUMP JUMPDEST PUSH2 0x289 DUP2 DUP6 PUSH2 0x228 JUMP JUMPDEST SWAP4 POP PUSH2 0x299 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x239 JUMP JUMPDEST PUSH2 0x2A2 DUP2 PUSH2 0x263 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D8 DUP3 PUSH2 0x2AD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E8 DUP2 PUSH2 0x2CD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x308 DUP2 DUP6 PUSH2 0x274 JUMP JUMPDEST SWAP1 POP PUSH2 0x317 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2DF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x51 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x520 DUP1 PUSH2 0x35C 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA6F9DAE1 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x316 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123 SWAP1 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x281 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1FF SWAP3 SWAP2 SWAP1 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2A6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH2 0x2BD DUP2 PUSH2 0x2B5 PUSH2 0x285 PUSH2 0x2C0 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x2CB DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D3 PUSH2 0x4BB JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x300 DUP3 PUSH2 0x2D5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x310 DUP2 PUSH2 0x2F5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x32B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x307 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x33F DUP2 PUSH2 0x2F5 JUMP JUMPDEST DUP2 EQ PUSH2 0x34A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x35C DUP2 PUSH2 0x336 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x378 JUMPI PUSH2 0x377 PUSH2 0x331 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x386 DUP5 DUP3 DUP6 ADD PUSH2 0x34D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C6572206973206E6F74206F776E657200000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D6 PUSH1 0x13 DUP4 PUSH2 0x38F JUMP JUMPDEST SWAP2 POP PUSH2 0x3E1 DUP3 PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x405 DUP2 PUSH2 0x3C9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x435 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x41A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45D DUP3 PUSH2 0x40C JUMP JUMPDEST PUSH2 0x467 DUP2 DUP6 PUSH2 0x38F JUMP JUMPDEST SWAP4 POP PUSH2 0x477 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x417 JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x441 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4A5 DUP2 DUP6 PUSH2 0x452 JUMP JUMPDEST SWAP1 POP PUSH2 0x4B4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x307 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x51 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 CALL 0xA9 SWAP3 PUSH14 0x39CC99A583C9F1928E90A84A7BBD PUSH2 0x7C41 0xB5 CALLDATALOAD CODECOPY SSTORE 0xF9 DUP6 INVALID SAR 0xB9 0xAD PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ",
"sourceMap": "152:1413:0:-:0;;;942:234;;;;;;;;;;966:54;;;;;;;;;;;;;;;;;;1009:10;966:11;;;;;:54;;:::i;:::-;1038:10;1030:5;;:18;;;;;;;;;;;;;;;;;;1163:5;;;;;;;;;;1142:27;;1159:1;1142:27;;;;;;;;;;;;152:1413;;7470:145:1;7537:71;7600:2;7604;7553:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7537:15;;;:71;;:::i;:::-;7470:145;;:::o;851:129::-;922:51;965:7;922:42;934:29;;;;;922:11;;;:42;;:::i;:::-;:51;;:::i;:::-;851:129;:::o;180:463::-;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;649:196::-;748:33;;;;;825:4;816:13;;649:196;;;:::o;152:1413:0:-;;;:::i;:::-;:::o;7:99:2:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:126::-;1067:7;1107:42;1100:5;1096:54;1085:65;;1030:126;;;:::o;1162:96::-;1199:7;1228:24;1246:5;1228:24;:::i;:::-;1217:35;;1162:96;;;:::o;1264:118::-;1351:24;1369:5;1351:24;:::i;:::-;1346:3;1339:37;1264:118;;:::o;1388:423::-;1529:4;1567:2;1556:9;1552:18;1544:26;;1616:9;1610:4;1606:20;1602:1;1591:9;1587:17;1580:47;1644:78;1717:4;1708:6;1644:78;:::i;:::-;1636:86;;1732:72;1800:2;1789:9;1785:18;1776:6;1732:72;:::i;:::-;1388:423;;;;;:::o;1817:180::-;1865:77;1862:1;1855:88;1962:4;1959:1;1952:15;1986:4;1983:1;1976:15;152:1413:0;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_castToPure_110": {
"entryPoint": 704,
"id": 110,
"parameterSlots": 1,
"returnSlots": 1
},
"@_sendLogPayloadImplementation_93": {
"entryPoint": 645,
"id": 93,
"parameterSlots": 1,
"returnSlots": 0
},
"@_sendLogPayload_122": {
"entryPoint": 678,
"id": 122,
"parameterSlots": 1,
"returnSlots": 0
},
"@changeOwner_67": {
"entryPoint": 158,
"id": 67,
"parameterSlots": 1,
"returnSlots": 0
},
"@getOwner_76": {
"entryPoint": 117,
"id": 76,
"parameterSlots": 0,
"returnSlots": 1
},
"@log_857": {
"entryPoint": 489,
"id": 857,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 845,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 866,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 775,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1106,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 969,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 790,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed": {
"entryPoint": 1163,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1004,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1036,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 911,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 757,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 725,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory_with_cleanup": {
"entryPoint": 1047,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"panic_error_0x51": {
"entryPoint": 1211,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 817,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1089,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d": {
"entryPoint": 928,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 822,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4135:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:81:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:65:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "77:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "84:42:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "73:3:2"
},
"nodeType": "YulFunctionCall",
"src": "73:54:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:2"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:2",
"type": ""
}
],
"src": "7:126:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "184:51:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "194:35:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "223:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "205:17:2"
},
"nodeType": "YulFunctionCall",
"src": "205:24:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "194:7:2"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "166:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "176:7:2",
"type": ""
}
],
"src": "139:96:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "306:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "323:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "346:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "328:17:2"
},
"nodeType": "YulFunctionCall",
"src": "328:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "316:6:2"
},
"nodeType": "YulFunctionCall",
"src": "316:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "316:37:2"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "294:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "301:3:2",
"type": ""
}
],
"src": "241:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "463:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "473:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "485:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "496:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "481:3:2"
},
"nodeType": "YulFunctionCall",
"src": "481:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "473:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "553:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "566:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "562:3:2"
},
"nodeType": "YulFunctionCall",
"src": "562:17:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "509:43:2"
},
"nodeType": "YulFunctionCall",
"src": "509:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "509:71:2"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "435:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "447:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "458:4:2",
"type": ""
}
],
"src": "365:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "633:35:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "643:19:2",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "659:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "653:5:2"
},
"nodeType": "YulFunctionCall",
"src": "653:9:2"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "643:6:2"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "626:6:2",
"type": ""
}
],
"src": "593:75:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "763:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "780:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "783:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "773:6:2"
},
"nodeType": "YulFunctionCall",
"src": "773:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "773:12:2"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "674:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "886:28:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "903:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "906:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "896:6:2"
},
"nodeType": "YulFunctionCall",
"src": "896:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "896:12:2"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "797:117:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "963:79:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1020:16:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1029:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1032:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1022:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1022:12:2"
},
"nodeType": "YulExpressionStatement",
"src": "1022:12:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "986:5:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1011:5:2"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "993:17:2"
},
"nodeType": "YulFunctionCall",
"src": "993:24:2"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "983:2:2"
},
"nodeType": "YulFunctionCall",
"src": "983:35:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "976:6:2"
},
"nodeType": "YulFunctionCall",
"src": "976:43:2"
},
"nodeType": "YulIf",
"src": "973:63:2"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "956:5:2",
"type": ""
}
],
"src": "920:122:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1100:87:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1110:29:2",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1132:6:2"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1119:12:2"
},
"nodeType": "YulFunctionCall",
"src": "1119:20:2"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1110:5:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1175:5:2"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "1148:26:2"
},
"nodeType": "YulFunctionCall",
"src": "1148:33:2"
},
"nodeType": "YulExpressionStatement",
"src": "1148:33:2"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1078:6:2",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1086:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1094:5:2",
"type": ""
}
],
"src": "1048:139:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1259:263:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1305:83:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1307:77:2"
},
"nodeType": "YulFunctionCall",
"src": "1307:79:2"
},
"nodeType": "YulExpressionStatement",
"src": "1307:79:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1280:7:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1289:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1276:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1276:23:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1301:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1272:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1272:32:2"
},
"nodeType": "YulIf",
"src": "1269:119:2"
},
{
"nodeType": "YulBlock",
"src": "1398:117:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1413:15:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1427:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1417:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1442:63:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1477:9:2"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1488:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1473:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1473:22:2"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1497:7:2"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1452:20:2"
},
"nodeType": "YulFunctionCall",
"src": "1452:53:2"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1442:6:2"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1229:9:2",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1240:7:2",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1252:6:2",
"type": ""
}
],
"src": "1193:329:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1624:73:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1641:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1646:6:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1634:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1634:19:2"
},
"nodeType": "YulExpressionStatement",
"src": "1634:19:2"
},
{
"nodeType": "YulAssignment",
"src": "1662:29:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1681:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1686:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1677:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1677:14:2"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1662:11:2"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1596:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1601:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1612:11:2",
"type": ""
}
],
"src": "1528:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1809:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1831:6:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1839:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1827:3:2"
},
"nodeType": "YulFunctionCall",
"src": "1827:14:2"
},
{
"hexValue": "43616c6c6572206973206e6f74206f776e6572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1843:21:2",
"type": "",
"value": "Caller is not owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1820:6:2"
},
"nodeType": "YulFunctionCall",
"src": "1820:45:2"
},
"nodeType": "YulExpressionStatement",
"src": "1820:45:2"
}
]
},
"name": "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1801:6:2",
"type": ""
}
],
"src": "1703:169:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2024:220:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2034:74:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2100:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2105:2:2",
"type": "",
"value": "19"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2041:58:2"
},
"nodeType": "YulFunctionCall",
"src": "2041:67:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2034:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2206:3:2"
}
],
"functionName": {
"name": "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d",
"nodeType": "YulIdentifier",
"src": "2117:88:2"
},
"nodeType": "YulFunctionCall",
"src": "2117:93:2"
},
"nodeType": "YulExpressionStatement",
"src": "2117:93:2"
},
{
"nodeType": "YulAssignment",
"src": "2219:19:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2230:3:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2235:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2226:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2226:12:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2219:3:2"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2012:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2020:3:2",
"type": ""
}
],
"src": "1878:366:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2421:248:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2431:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2443:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2454:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2439:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2439:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2431:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2478:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2489:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2474:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2474:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2497:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2503:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2493:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2493:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2467:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2467:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "2467:47:2"
},
{
"nodeType": "YulAssignment",
"src": "2523:139:2",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2657:4:2"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2531:124:2"
},
"nodeType": "YulFunctionCall",
"src": "2531:131:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2523:4:2"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2401:9:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2416:4:2",
"type": ""
}
],
"src": "2250:419:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2734:40:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2745:22:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2761:5:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2755:5:2"
},
"nodeType": "YulFunctionCall",
"src": "2755:12:2"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2745:6:2"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2717:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2727:6:2",
"type": ""
}
],
"src": "2675:99:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2842:184:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2852:10:2",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2861:1:2",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2856:1:2",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2921:63:2",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2946:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2951:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2942:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2942:11:2"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2965:3:2"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2970:1:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2961:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2961:11:2"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2955:5:2"
},
"nodeType": "YulFunctionCall",
"src": "2955:18:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2935:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2935:39:2"
},
"nodeType": "YulExpressionStatement",
"src": "2935:39:2"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2882:1:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2885:6:2"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2879:2:2"
},
"nodeType": "YulFunctionCall",
"src": "2879:13:2"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2893:19:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2895:15:2",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2904:1:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2907:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2900:3:2"
},
"nodeType": "YulFunctionCall",
"src": "2900:10:2"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2895:1:2"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2875:3:2",
"statements": []
},
"src": "2871:113:2"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "3004:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3009:6:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3000:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3000:16:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3018:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2993:6:2"
},
"nodeType": "YulFunctionCall",
"src": "2993:27:2"
},
"nodeType": "YulExpressionStatement",
"src": "2993:27:2"
}
]
},
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2824:3:2",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2829:3:2",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2834:6:2",
"type": ""
}
],
"src": "2780:246:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3080:54:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3090:38:2",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3108:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3115:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3104:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3104:14:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3124:2:2",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3120:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3120:7:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3100:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3100:28:2"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3090:6:2"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3063:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3073:6:2",
"type": ""
}
],
"src": "3032:102:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3232:285:2",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3242:53:2",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3289:5:2"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3256:32:2"
},
"nodeType": "YulFunctionCall",
"src": "3256:39:2"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3246:6:2",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3304:78:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3370:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3375:6:2"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3311:58:2"
},
"nodeType": "YulFunctionCall",
"src": "3311:71:2"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3304:3:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3430:5:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3437:4:2",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3426:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3426:16:2"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3444:3:2"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3449:6:2"
}
],
"functionName": {
"name": "copy_memory_to_memory_with_cleanup",
"nodeType": "YulIdentifier",
"src": "3391:34:2"
},
"nodeType": "YulFunctionCall",
"src": "3391:65:2"
},
"nodeType": "YulExpressionStatement",
"src": "3391:65:2"
},
{
"nodeType": "YulAssignment",
"src": "3465:46:2",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3476:3:2"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3503:6:2"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "3481:21:2"
},
"nodeType": "YulFunctionCall",
"src": "3481:29:2"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3472:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3472:39:2"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3465:3:2"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3213:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3220:3:2",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3228:3:2",
"type": ""
}
],
"src": "3140:377:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3669:277:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3679:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3691:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3702:2:2",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3687:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3687:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3679:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3726:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3737:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3722:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3722:17:2"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3745:4:2"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3751:9:2"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3741:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3741:20:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3715:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3715:47:2"
},
"nodeType": "YulExpressionStatement",
"src": "3715:47:2"
},
{
"nodeType": "YulAssignment",
"src": "3771:86:2",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3843:6:2"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3852:4:2"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3779:63:2"
},
"nodeType": "YulFunctionCall",
"src": "3779:78:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3771:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3911:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3924:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3935:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3920:3:2"
},
"nodeType": "YulFunctionCall",
"src": "3920:18:2"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3867:43:2"
},
"nodeType": "YulFunctionCall",
"src": "3867:72:2"
},
"nodeType": "YulExpressionStatement",
"src": "3867:72:2"
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3633:9:2",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3645:6:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3653:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3664:4:2",
"type": ""
}
],
"src": "3523:423:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3980:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3997:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4000:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3990:6:2"
},
"nodeType": "YulFunctionCall",
"src": "3990:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "3990:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4094:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4097:4:2",
"type": "",
"value": "0x51"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4087:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4087:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "4087:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4118:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4121:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4111:6:2"
},
"nodeType": "YulFunctionCall",
"src": "4111:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "4111:15:2"
}
]
},
"name": "panic_error_0x51",
"nodeType": "YulFunctionDefinition",
"src": "3952:180:2"
}
]
},
"contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d(memPtr) {\n\n mstore(add(memPtr, 0), \"Caller is not owner\")\n\n }\n\n function abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x51() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x51)\n revert(0, 0x24)\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063893d20e81461003b578063a6f9dae114610059575b600080fd5b610043610075565b6040516100509190610316565b60405180910390f35b610073600480360381019061006e9190610362565b61009e565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461012c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610123906103ec565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61028182826040516024016101ff92919061048b565b6040516020818303038152906040527f319af333000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506102a6565b5050565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6102bd816102b56102856102c0565b63ffffffff16565b50565b6102cb819050919050565b6102d36104bb565b565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610300826102d5565b9050919050565b610310816102f5565b82525050565b600060208201905061032b6000830184610307565b92915050565b600080fd5b61033f816102f5565b811461034a57600080fd5b50565b60008135905061035c81610336565b92915050565b60006020828403121561037857610377610331565b5b60006103868482850161034d565b91505092915050565b600082825260208201905092915050565b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b60006103d660138361038f565b91506103e1826103a0565b602082019050919050565b60006020820190508181036000830152610405816103c9565b9050919050565b600081519050919050565b60005b8381101561043557808201518184015260208101905061041a565b60008484015250505050565b6000601f19601f8301169050919050565b600061045d8261040c565b610467818561038f565b9350610477818560208601610417565b61048081610441565b840191505092915050565b600060408201905081810360008301526104a58185610452565b90506104b46020830184610307565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052605160045260246000fdfea26469706673582212208ff1a9926d39cc99a583c9f1928e90a84a7bbd617c41b5353955f985fe1db9ad64736f6c63430008120033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA6F9DAE1 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x316 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x362 JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123 SWAP1 PUSH2 0x3EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0x281 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1FF SWAP3 SWAP2 SWAP1 PUSH2 0x48B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH32 0x319AF33300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH2 0x2A6 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH2 0x2BD DUP2 PUSH2 0x2B5 PUSH2 0x285 PUSH2 0x2C0 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x2CB DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D3 PUSH2 0x4BB JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x300 DUP3 PUSH2 0x2D5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x310 DUP2 PUSH2 0x2F5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x32B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x307 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x33F DUP2 PUSH2 0x2F5 JUMP JUMPDEST DUP2 EQ PUSH2 0x34A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x35C DUP2 PUSH2 0x336 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x378 JUMPI PUSH2 0x377 PUSH2 0x331 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x386 DUP5 DUP3 DUP6 ADD PUSH2 0x34D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x43616C6C6572206973206E6F74206F776E657200000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D6 PUSH1 0x13 DUP4 PUSH2 0x38F JUMP JUMPDEST SWAP2 POP PUSH2 0x3E1 DUP3 PUSH2 0x3A0 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x405 DUP2 PUSH2 0x3C9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x435 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x41A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45D DUP3 PUSH2 0x40C JUMP JUMPDEST PUSH2 0x467 DUP2 DUP6 PUSH2 0x38F JUMP JUMPDEST SWAP4 POP PUSH2 0x477 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x417 JUMP JUMPDEST PUSH2 0x480 DUP2 PUSH2 0x441 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4A5 DUP2 DUP6 PUSH2 0x452 JUMP JUMPDEST SWAP1 POP PUSH2 0x4B4 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x307 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x51 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 CALL 0xA9 SWAP3 PUSH14 0x39CC99A583C9F1928E90A84A7BBD PUSH2 0x7C41 0xB5 CALLDATALOAD CODECOPY SSTORE 0xF9 DUP6 INVALID SAR 0xB9 0xAD PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ",
"sourceMap": "152:1413:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1482:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1267:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1482:81;1525:7;1551:5;;;;;;;;;;;1544:12;;1482:81;:::o;1267:127::-;830:5;;;;;;;;;;816:19;;:10;:19;;;808:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:8:::1;1336:25;;1345:5;::::0;::::1;;;;;;;;1336:25;;;;;;;;;;;;1379:8;1371:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1267:127:::0;:::o;7470:145:1:-;7537:71;7600:2;7604;7553:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7537:15;:71::i;:::-;7470:145;;:::o;180:463::-;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;851:129::-;922:51;965:7;922:42;934:29;922:11;:42::i;:::-;:51;;:::i;:::-;851:129;:::o;649:196::-;748:33;825:4;816:13;;649:196;;;:::o;-1:-1:-1:-;;;:::i;:::-;:::o;7:126:2:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;674:117::-;783:1;780;773:12;920:122;993:24;1011:5;993:24;:::i;:::-;986:5;983:35;973:63;;1032:1;1029;1022:12;973:63;920:122;:::o;1048:139::-;1094:5;1132:6;1119:20;1110:29;;1148:33;1175:5;1148:33;:::i;:::-;1048:139;;;;:::o;1193:329::-;1252:6;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1193:329;;;;:::o;1528:169::-;1612:11;1646:6;1641:3;1634:19;1686:4;1681:3;1677:14;1662:29;;1528:169;;;;:::o;1703:::-;1843:21;1839:1;1831:6;1827:14;1820:45;1703:169;:::o;1878:366::-;2020:3;2041:67;2105:2;2100:3;2041:67;:::i;:::-;2034:74;;2117:93;2206:3;2117:93;:::i;:::-;2235:2;2230:3;2226:12;2219:19;;1878:366;;;:::o;2250:419::-;2416:4;2454:2;2443:9;2439:18;2431:26;;2503:9;2497:4;2493:20;2489:1;2478:9;2474:17;2467:47;2531:131;2657:4;2531:131;:::i;:::-;2523:139;;2250:419;;;:::o;2675:99::-;2727:6;2761:5;2755:12;2745:22;;2675:99;;;:::o;2780:246::-;2861:1;2871:113;2885:6;2882:1;2879:13;2871:113;;;2970:1;2965:3;2961:11;2955:18;2951:1;2946:3;2942:11;2935:39;2907:2;2904:1;2900:10;2895:15;;2871:113;;;3018:1;3009:6;3004:3;3000:16;2993:27;2842:184;2780:246;;;:::o;3032:102::-;3073:6;3124:2;3120:7;3115:2;3108:5;3104:14;3100:28;3090:38;;3032:102;;;:::o;3140:377::-;3228:3;3256:39;3289:5;3256:39;:::i;:::-;3311:71;3375:6;3370:3;3311:71;:::i;:::-;3304:78;;3391:65;3449:6;3444:3;3437:4;3430:5;3426:16;3391:65;:::i;:::-;3481:29;3503:6;3481:29;:::i;:::-;3476:3;3472:39;3465:46;;3232:285;3140:377;;;;:::o;3523:423::-;3664:4;3702:2;3691:9;3687:18;3679:26;;3751:9;3745:4;3741:20;3737:1;3726:9;3722:17;3715:47;3779:78;3852:4;3843:6;3779:78;:::i;:::-;3771:86;;3867:72;3935:2;3924:9;3920:18;3911:6;3867:72;:::i;:::-;3523:423;;;;;:::o;3952:180::-;4000:77;3997:1;3990:88;4097:4;4094:1;4087:15;4121:4;4118:1;4111:15"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "262400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"changeOwner(address)": "30567",
"getOwner()": "2500"
}
},
"methodIdentifiers": {
"changeOwner(address)": "a6f9dae1",
"getOwner()": "893d20e8"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "changeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.18+commit.87f61d96"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnerSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "changeOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Set & change owner",
"kind": "dev",
"methods": {
"changeOwner(address)": {
"details": "Change owner",
"params": {
"newOwner": "address of new owner"
}
},
"constructor": {
"details": "Set contract deployer as owner"
},
"getOwner()": {
"details": "Return owner address ",
"returns": {
"_0": "address of owner"
}
}
},
"title": "Owner",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/2_Owner.sol": "Owner"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/2_Owner.sol": {
"keccak256": "0x78bbbec96c5bc30ed379cb4c7bc96af4af5c71a2ed6cbd7b202097223e055294",
"license": "GPL-3.0",
"urls": [
"bzz-raw://4e78c8bdef7b614a92576df195209a00fcc09bbaa00ec98c0ea29cb2118da1c5",
"dweb:/ipfs/QmWrv2qJbxtDegicpu5rLGk4LgXvYvo1qXMW7qQpD6vGSX"
]
},
"hardhat/console.sol": {
"keccak256": "0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a",
"license": "MIT",
"urls": [
"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395",
"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_26": {
"entryPoint": null,
"id": 26,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 155,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 175,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 124,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 120,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 133,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:1048:1",
"nodeType": "YulBlock",
"src": "0:1048:1",
"statements": [
{
"body": {
"nativeSrc": "47:35:1",
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nativeSrc": "57:19:1",
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:1",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:1",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nativeSrc": "67:9:1",
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:1",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:1",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nativeSrc": "177:28:1",
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:1",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:1",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:1",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:1",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nativeSrc": "300:28:1",
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:1",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:1",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:1",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:1",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nativeSrc": "379:32:1",
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nativeSrc": "389:16:1",
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nativeSrc": "400:5:1",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "389:7:1",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "334:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "361:5:1",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "371:7:1",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nativeSrc": "460:79:1",
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nativeSrc": "517:16:1",
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "526:1:1",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "529:1:1",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "519:6:1",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nativeSrc": "519:12:1",
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nativeSrc": "519:12:1",
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "483:5:1",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "508:5:1",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "490:17:1",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nativeSrc": "490:24:1",
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "480:2:1",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nativeSrc": "480:35:1",
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "473:6:1",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nativeSrc": "473:43:1",
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nativeSrc": "470:63:1",
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "417:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "453:5:1",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nativeSrc": "608:80:1",
"nodeType": "YulBlock",
"src": "608:80:1",
"statements": [
{
"nativeSrc": "618:22:1",
"nodeType": "YulAssignment",
"src": "618:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "633:6:1",
"nodeType": "YulIdentifier",
"src": "633:6:1"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "627:5:1",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"nativeSrc": "627:13:1",
"nodeType": "YulFunctionCall",
"src": "627:13:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "618:5:1",
"nodeType": "YulIdentifier",
"src": "618:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "676:5:1",
"nodeType": "YulIdentifier",
"src": "676:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "649:26:1",
"nodeType": "YulIdentifier",
"src": "649:26:1"
},
"nativeSrc": "649:33:1",
"nodeType": "YulFunctionCall",
"src": "649:33:1"
},
"nativeSrc": "649:33:1",
"nodeType": "YulExpressionStatement",
"src": "649:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "545:143:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "586:6:1",
"nodeType": "YulTypedName",
"src": "586:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "594:3:1",
"nodeType": "YulTypedName",
"src": "594:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "602:5:1",
"nodeType": "YulTypedName",
"src": "602:5:1",
"type": ""
}
],
"src": "545:143:1"
},
{
"body": {
"nativeSrc": "771:274:1",
"nodeType": "YulBlock",
"src": "771:274:1",
"statements": [
{
"body": {
"nativeSrc": "817:83:1",
"nodeType": "YulBlock",
"src": "817:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "819:77:1",
"nodeType": "YulIdentifier",
"src": "819:77:1"
},
"nativeSrc": "819:79:1",
"nodeType": "YulFunctionCall",
"src": "819:79:1"
},
"nativeSrc": "819:79:1",
"nodeType": "YulExpressionStatement",
"src": "819:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "792:7:1",
"nodeType": "YulIdentifier",
"src": "792:7:1"
},
{
"name": "headStart",
"nativeSrc": "801:9:1",
"nodeType": "YulIdentifier",
"src": "801:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "788:3:1",
"nodeType": "YulIdentifier",
"src": "788:3:1"
},
"nativeSrc": "788:23:1",
"nodeType": "YulFunctionCall",
"src": "788:23:1"
},
{
"kind": "number",
"nativeSrc": "813:2:1",
"nodeType": "YulLiteral",
"src": "813:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "784:3:1",
"nodeType": "YulIdentifier",
"src": "784:3:1"
},
"nativeSrc": "784:32:1",
"nodeType": "YulFunctionCall",
"src": "784:32:1"
},
"nativeSrc": "781:119:1",
"nodeType": "YulIf",
"src": "781:119:1"
},
{
"nativeSrc": "910:128:1",
"nodeType": "YulBlock",
"src": "910:128:1",
"statements": [
{
"nativeSrc": "925:15:1",
"nodeType": "YulVariableDeclaration",
"src": "925:15:1",
"value": {
"kind": "number",
"nativeSrc": "939:1:1",
"nodeType": "YulLiteral",
"src": "939:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "929:6:1",
"nodeType": "YulTypedName",
"src": "929:6:1",
"type": ""
}
]
},
{
"nativeSrc": "954:74:1",
"nodeType": "YulAssignment",
"src": "954:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1000:9:1",
"nodeType": "YulIdentifier",
"src": "1000:9:1"
},
{
"name": "offset",
"nativeSrc": "1011:6:1",
"nodeType": "YulIdentifier",
"src": "1011:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "996:3:1",
"nodeType": "YulIdentifier",
"src": "996:3:1"
},
"nativeSrc": "996:22:1",
"nodeType": "YulFunctionCall",
"src": "996:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "1020:7:1",
"nodeType": "YulIdentifier",
"src": "1020:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nativeSrc": "964:31:1",
"nodeType": "YulIdentifier",
"src": "964:31:1"
},
"nativeSrc": "964:64:1",
"nodeType": "YulFunctionCall",
"src": "964:64:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "954:6:1",
"nodeType": "YulIdentifier",
"src": "954:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nativeSrc": "694:351:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "741:9:1",
"nodeType": "YulTypedName",
"src": "741:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "752:7:1",
"nodeType": "YulTypedName",
"src": "752:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "764:6:1",
"nodeType": "YulTypedName",
"src": "764:6:1",
"type": ""
}
],
"src": "694:351:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b506040516104e93803806104e9833981810160405281019061003191906100af565b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550506100da565b5f80fd5b5f819050919050565b61008e8161007c565b8114610098575f80fd5b50565b5f815190506100a981610085565b92915050565b5f602082840312156100c4576100c3610078565b5b5f6100d18482850161009b565b91505092915050565b610402806100e75f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a9059cbb14610038578063fabde80c14610054575b5f80fd5b610052600480360381019061004d91906102a8565b610084565b005b61006e600480360381019061006991906102e6565b610203565b60405161007b9190610320565b60405180910390f35b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156100cc575f80fd5b5f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546101519190610366565b101561015b575f80fd5b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546101a69190610399565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546101f89190610366565b925050819055505050565b5f602052805f5260405f205f915090505481565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102448261021b565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8135905061026f8161024b565b92915050565b5f819050919050565b61028781610275565b8114610291575f80fd5b50565b5f813590506102a28161027e565b92915050565b5f80604083850312156102be576102bd610217565b5b5f6102cb85828601610261565b92505060206102dc85828601610294565b9150509250929050565b5f602082840312156102fb576102fa610217565b5b5f61030884828501610261565b91505092915050565b61031a81610275565b82525050565b5f6020820190506103335f830184610311565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61037082610275565b915061037b83610275565b925082820190508082111561039357610392610339565b5b92915050565b5f6103a382610275565b91506103ae83610275565b92508282039050818111156103c6576103c5610339565b5b9291505056fea2646970667358221220e9a9d63aa41873a935b1435f0abb36a16adc1993bc0f2e1d61ca2fb9d508623564736f6c63430008160033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4E9 CODESIZE SUB DUP1 PUSH2 0x4E9 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x31 SWAP2 SWAP1 PUSH2 0xAF JUMP JUMPDEST DUP1 PUSH0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP PUSH2 0xDA JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8E DUP2 PUSH2 0x7C JUMP JUMPDEST DUP2 EQ PUSH2 0x98 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0xA9 DUP2 PUSH2 0x85 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC4 JUMPI PUSH2 0xC3 PUSH2 0x78 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD1 DUP5 DUP3 DUP6 ADD PUSH2 0x9B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x402 DUP1 PUSH2 0xE7 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x38 JUMPI DUP1 PUSH4 0xFABDE80C EQ PUSH2 0x54 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x52 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D SWAP2 SWAP1 PUSH2 0x2A8 JUMP JUMPDEST PUSH2 0x84 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x69 SWAP2 SWAP1 PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD LT ISZERO PUSH2 0xCC JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP2 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x151 SWAP2 SWAP1 PUSH2 0x366 JUMP JUMPDEST LT ISZERO PUSH2 0x15B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x399 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x366 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x244 DUP3 PUSH2 0x21B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x254 DUP2 PUSH2 0x23A JUMP JUMPDEST DUP2 EQ PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26F DUP2 PUSH2 0x24B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x287 DUP2 PUSH2 0x275 JUMP JUMPDEST DUP2 EQ PUSH2 0x291 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A2 DUP2 PUSH2 0x27E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BE JUMPI PUSH2 0x2BD PUSH2 0x217 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2CB DUP6 DUP3 DUP7 ADD PUSH2 0x261 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2DC DUP6 DUP3 DUP7 ADD PUSH2 0x294 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FB JUMPI PUSH2 0x2FA PUSH2 0x217 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x308 DUP5 DUP3 DUP6 ADD PUSH2 0x261 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x31A DUP2 PUSH2 0x275 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x333 PUSH0 DUP4 ADD DUP5 PUSH2 0x311 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x370 DUP3 PUSH2 0x275 JUMP JUMPDEST SWAP2 POP PUSH2 0x37B DUP4 PUSH2 0x275 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x393 JUMPI PUSH2 0x392 PUSH2 0x339 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3A3 DUP3 PUSH2 0x275 JUMP JUMPDEST SWAP2 POP PUSH2 0x3AE DUP4 PUSH2 0x275 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3C6 JUMPI PUSH2 0x3C5 PUSH2 0x339 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 0xA9 0xD6 GASPRICE LOG4 XOR PUSH20 0xA935B1435F0ABB36A16ADC1993BC0F2E1D61CA2F 0xB9 0xD5 ADDMOD PUSH3 0x356473 PUSH16 0x6C634300081600330000000000000000 ",
"sourceMap": "70:829:0:-:0;;;229:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;302:14;276:11;:23;288:10;276:23;;;;;;;;;;;;;;;:40;;;;229:94;70:829;;88:117:1;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;70:829:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@coinBalance_5": {
"entryPoint": 515,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@transfer_68": {
"entryPoint": 132,
"id": 68,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 609,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 660,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 742,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 680,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 785,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 800,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 870,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 921,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 570,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 539,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 629,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 825,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 535,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 587,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 638,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:2944:1",
"nodeType": "YulBlock",
"src": "0:2944:1",
"statements": [
{
"body": {
"nativeSrc": "47:35:1",
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nativeSrc": "57:19:1",
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:1",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:1",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nativeSrc": "67:9:1",
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:1",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:1",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nativeSrc": "177:28:1",
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:1",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:1",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:1",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:1",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nativeSrc": "300:28:1",
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:1",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:1",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:1",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:1",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nativeSrc": "379:81:1",
"nodeType": "YulBlock",
"src": "379:81:1",
"statements": [
{
"nativeSrc": "389:65:1",
"nodeType": "YulAssignment",
"src": "389:65:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "404:5:1",
"nodeType": "YulIdentifier",
"src": "404:5:1"
},
{
"kind": "number",
"nativeSrc": "411:42:1",
"nodeType": "YulLiteral",
"src": "411:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "400:3:1",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nativeSrc": "400:54:1",
"nodeType": "YulFunctionCall",
"src": "400:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "389:7:1",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "334:126:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "361:5:1",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "371:7:1",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:126:1"
},
{
"body": {
"nativeSrc": "511:51:1",
"nodeType": "YulBlock",
"src": "511:51:1",
"statements": [
{
"nativeSrc": "521:35:1",
"nodeType": "YulAssignment",
"src": "521:35:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "550:5:1",
"nodeType": "YulIdentifier",
"src": "550:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "532:17:1",
"nodeType": "YulIdentifier",
"src": "532:17:1"
},
"nativeSrc": "532:24:1",
"nodeType": "YulFunctionCall",
"src": "532:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "521:7:1",
"nodeType": "YulIdentifier",
"src": "521:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "466:96:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "493:5:1",
"nodeType": "YulTypedName",
"src": "493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "503:7:1",
"nodeType": "YulTypedName",
"src": "503:7:1",
"type": ""
}
],
"src": "466:96:1"
},
{
"body": {
"nativeSrc": "611:79:1",
"nodeType": "YulBlock",
"src": "611:79:1",
"statements": [
{
"body": {
"nativeSrc": "668:16:1",
"nodeType": "YulBlock",
"src": "668:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "677:1:1",
"nodeType": "YulLiteral",
"src": "677:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "680:1:1",
"nodeType": "YulLiteral",
"src": "680:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "670:6:1",
"nodeType": "YulIdentifier",
"src": "670:6:1"
},
"nativeSrc": "670:12:1",
"nodeType": "YulFunctionCall",
"src": "670:12:1"
},
"nativeSrc": "670:12:1",
"nodeType": "YulExpressionStatement",
"src": "670:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "634:5:1",
"nodeType": "YulIdentifier",
"src": "634:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "659:5:1",
"nodeType": "YulIdentifier",
"src": "659:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "641:17:1",
"nodeType": "YulIdentifier",
"src": "641:17:1"
},
"nativeSrc": "641:24:1",
"nodeType": "YulFunctionCall",
"src": "641:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "631:2:1",
"nodeType": "YulIdentifier",
"src": "631:2:1"
},
"nativeSrc": "631:35:1",
"nodeType": "YulFunctionCall",
"src": "631:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "624:6:1",
"nodeType": "YulIdentifier",
"src": "624:6:1"
},
"nativeSrc": "624:43:1",
"nodeType": "YulFunctionCall",
"src": "624:43:1"
},
"nativeSrc": "621:63:1",
"nodeType": "YulIf",
"src": "621:63:1"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "568:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "604:5:1",
"nodeType": "YulTypedName",
"src": "604:5:1",
"type": ""
}
],
"src": "568:122:1"
},
{
"body": {
"nativeSrc": "748:87:1",
"nodeType": "YulBlock",
"src": "748:87:1",
"statements": [
{
"nativeSrc": "758:29:1",
"nodeType": "YulAssignment",
"src": "758:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "780:6:1",
"nodeType": "YulIdentifier",
"src": "780:6:1"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "767:12:1",
"nodeType": "YulIdentifier",
"src": "767:12:1"
},
"nativeSrc": "767:20:1",
"nodeType": "YulFunctionCall",
"src": "767:20:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "758:5:1",
"nodeType": "YulIdentifier",
"src": "758:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "823:5:1",
"nodeType": "YulIdentifier",
"src": "823:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "796:26:1",
"nodeType": "YulIdentifier",
"src": "796:26:1"
},
"nativeSrc": "796:33:1",
"nodeType": "YulFunctionCall",
"src": "796:33:1"
},
"nativeSrc": "796:33:1",
"nodeType": "YulExpressionStatement",
"src": "796:33:1"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "696:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "726:6:1",
"nodeType": "YulTypedName",
"src": "726:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "734:3:1",
"nodeType": "YulTypedName",
"src": "734:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "742:5:1",
"nodeType": "YulTypedName",
"src": "742:5:1",
"type": ""
}
],
"src": "696:139:1"
},
{
"body": {
"nativeSrc": "886:32:1",
"nodeType": "YulBlock",
"src": "886:32:1",
"statements": [
{
"nativeSrc": "896:16:1",
"nodeType": "YulAssignment",
"src": "896:16:1",
"value": {
"name": "value",
"nativeSrc": "907:5:1",
"nodeType": "YulIdentifier",
"src": "907:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "896:7:1",
"nodeType": "YulIdentifier",
"src": "896:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "841:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "868:5:1",
"nodeType": "YulTypedName",
"src": "868:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "878:7:1",
"nodeType": "YulTypedName",
"src": "878:7:1",
"type": ""
}
],
"src": "841:77:1"
},
{
"body": {
"nativeSrc": "967:79:1",
"nodeType": "YulBlock",
"src": "967:79:1",
"statements": [
{
"body": {
"nativeSrc": "1024:16:1",
"nodeType": "YulBlock",
"src": "1024:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1033:1:1",
"nodeType": "YulLiteral",
"src": "1033:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1036:1:1",
"nodeType": "YulLiteral",
"src": "1036:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1026:6:1",
"nodeType": "YulIdentifier",
"src": "1026:6:1"
},
"nativeSrc": "1026:12:1",
"nodeType": "YulFunctionCall",
"src": "1026:12:1"
},
"nativeSrc": "1026:12:1",
"nodeType": "YulExpressionStatement",
"src": "1026:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "990:5:1",
"nodeType": "YulIdentifier",
"src": "990:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1015:5:1",
"nodeType": "YulIdentifier",
"src": "1015:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "997:17:1",
"nodeType": "YulIdentifier",
"src": "997:17:1"
},
"nativeSrc": "997:24:1",
"nodeType": "YulFunctionCall",
"src": "997:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "987:2:1",
"nodeType": "YulIdentifier",
"src": "987:2:1"
},
"nativeSrc": "987:35:1",
"nodeType": "YulFunctionCall",
"src": "987:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "980:6:1",
"nodeType": "YulIdentifier",
"src": "980:6:1"
},
"nativeSrc": "980:43:1",
"nodeType": "YulFunctionCall",
"src": "980:43:1"
},
"nativeSrc": "977:63:1",
"nodeType": "YulIf",
"src": "977:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "924:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "960:5:1",
"nodeType": "YulTypedName",
"src": "960:5:1",
"type": ""
}
],
"src": "924:122:1"
},
{
"body": {
"nativeSrc": "1104:87:1",
"nodeType": "YulBlock",
"src": "1104:87:1",
"statements": [
{
"nativeSrc": "1114:29:1",
"nodeType": "YulAssignment",
"src": "1114:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "1136:6:1",
"nodeType": "YulIdentifier",
"src": "1136:6:1"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "1123:12:1",
"nodeType": "YulIdentifier",
"src": "1123:12:1"
},
"nativeSrc": "1123:20:1",
"nodeType": "YulFunctionCall",
"src": "1123:20:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "1114:5:1",
"nodeType": "YulIdentifier",
"src": "1114:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "1179:5:1",
"nodeType": "YulIdentifier",
"src": "1179:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "1152:26:1",
"nodeType": "YulIdentifier",
"src": "1152:26:1"
},
"nativeSrc": "1152:33:1",
"nodeType": "YulFunctionCall",
"src": "1152:33:1"
},
"nativeSrc": "1152:33:1",
"nodeType": "YulExpressionStatement",
"src": "1152:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "1052:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "1082:6:1",
"nodeType": "YulTypedName",
"src": "1082:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "1090:3:1",
"nodeType": "YulTypedName",
"src": "1090:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "1098:5:1",
"nodeType": "YulTypedName",
"src": "1098:5:1",
"type": ""
}
],
"src": "1052:139:1"
},
{
"body": {
"nativeSrc": "1280:391:1",
"nodeType": "YulBlock",
"src": "1280:391:1",
"statements": [
{
"body": {
"nativeSrc": "1326:83:1",
"nodeType": "YulBlock",
"src": "1326:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1328:77:1",
"nodeType": "YulIdentifier",
"src": "1328:77:1"
},
"nativeSrc": "1328:79:1",
"nodeType": "YulFunctionCall",
"src": "1328:79:1"
},
"nativeSrc": "1328:79:1",
"nodeType": "YulExpressionStatement",
"src": "1328:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "1301:7:1",
"nodeType": "YulIdentifier",
"src": "1301:7:1"
},
{
"name": "headStart",
"nativeSrc": "1310:9:1",
"nodeType": "YulIdentifier",
"src": "1310:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1297:3:1",
"nodeType": "YulIdentifier",
"src": "1297:3:1"
},
"nativeSrc": "1297:23:1",
"nodeType": "YulFunctionCall",
"src": "1297:23:1"
},
{
"kind": "number",
"nativeSrc": "1322:2:1",
"nodeType": "YulLiteral",
"src": "1322:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "1293:3:1",
"nodeType": "YulIdentifier",
"src": "1293:3:1"
},
"nativeSrc": "1293:32:1",
"nodeType": "YulFunctionCall",
"src": "1293:32:1"
},
"nativeSrc": "1290:119:1",
"nodeType": "YulIf",
"src": "1290:119:1"
},
{
"nativeSrc": "1419:117:1",
"nodeType": "YulBlock",
"src": "1419:117:1",
"statements": [
{
"nativeSrc": "1434:15:1",
"nodeType": "YulVariableDeclaration",
"src": "1434:15:1",
"value": {
"kind": "number",
"nativeSrc": "1448:1:1",
"nodeType": "YulLiteral",
"src": "1448:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "1438:6:1",
"nodeType": "YulTypedName",
"src": "1438:6:1",
"type": ""
}
]
},
{
"nativeSrc": "1463:63:1",
"nodeType": "YulAssignment",
"src": "1463:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1498:9:1",
"nodeType": "YulIdentifier",
"src": "1498:9:1"
},
{
"name": "offset",
"nativeSrc": "1509:6:1",
"nodeType": "YulIdentifier",
"src": "1509:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1494:3:1",
"nodeType": "YulIdentifier",
"src": "1494:3:1"
},
"nativeSrc": "1494:22:1",
"nodeType": "YulFunctionCall",
"src": "1494:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "1518:7:1",
"nodeType": "YulIdentifier",
"src": "1518:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "1473:20:1",
"nodeType": "YulIdentifier",
"src": "1473:20:1"
},
"nativeSrc": "1473:53:1",
"nodeType": "YulFunctionCall",
"src": "1473:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "1463:6:1",
"nodeType": "YulIdentifier",
"src": "1463:6:1"
}
]
}
]
},
{
"nativeSrc": "1546:118:1",
"nodeType": "YulBlock",
"src": "1546:118:1",
"statements": [
{
"nativeSrc": "1561:16:1",
"nodeType": "YulVariableDeclaration",
"src": "1561:16:1",
"value": {
"kind": "number",
"nativeSrc": "1575:2:1",
"nodeType": "YulLiteral",
"src": "1575:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nativeSrc": "1565:6:1",
"nodeType": "YulTypedName",
"src": "1565:6:1",
"type": ""
}
]
},
{
"nativeSrc": "1591:63:1",
"nodeType": "YulAssignment",
"src": "1591:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1626:9:1",
"nodeType": "YulIdentifier",
"src": "1626:9:1"
},
{
"name": "offset",
"nativeSrc": "1637:6:1",
"nodeType": "YulIdentifier",
"src": "1637:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1622:3:1",
"nodeType": "YulIdentifier",
"src": "1622:3:1"
},
"nativeSrc": "1622:22:1",
"nodeType": "YulFunctionCall",
"src": "1622:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "1646:7:1",
"nodeType": "YulIdentifier",
"src": "1646:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "1601:20:1",
"nodeType": "YulIdentifier",
"src": "1601:20:1"
},
"nativeSrc": "1601:53:1",
"nodeType": "YulFunctionCall",
"src": "1601:53:1"
},
"variableNames": [
{
"name": "value1",
"nativeSrc": "1591:6:1",
"nodeType": "YulIdentifier",
"src": "1591:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nativeSrc": "1197:474:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1242:9:1",
"nodeType": "YulTypedName",
"src": "1242:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "1253:7:1",
"nodeType": "YulTypedName",
"src": "1253:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "1265:6:1",
"nodeType": "YulTypedName",
"src": "1265:6:1",
"type": ""
},
{
"name": "value1",
"nativeSrc": "1273:6:1",
"nodeType": "YulTypedName",
"src": "1273:6:1",
"type": ""
}
],
"src": "1197:474:1"
},
{
"body": {
"nativeSrc": "1743:263:1",
"nodeType": "YulBlock",
"src": "1743:263:1",
"statements": [
{
"body": {
"nativeSrc": "1789:83:1",
"nodeType": "YulBlock",
"src": "1789:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1791:77:1",
"nodeType": "YulIdentifier",
"src": "1791:77:1"
},
"nativeSrc": "1791:79:1",
"nodeType": "YulFunctionCall",
"src": "1791:79:1"
},
"nativeSrc": "1791:79:1",
"nodeType": "YulExpressionStatement",
"src": "1791:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "1764:7:1",
"nodeType": "YulIdentifier",
"src": "1764:7:1"
},
{
"name": "headStart",
"nativeSrc": "1773:9:1",
"nodeType": "YulIdentifier",
"src": "1773:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1760:3:1",
"nodeType": "YulIdentifier",
"src": "1760:3:1"
},
"nativeSrc": "1760:23:1",
"nodeType": "YulFunctionCall",
"src": "1760:23:1"
},
{
"kind": "number",
"nativeSrc": "1785:2:1",
"nodeType": "YulLiteral",
"src": "1785:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "1756:3:1",
"nodeType": "YulIdentifier",
"src": "1756:3:1"
},
"nativeSrc": "1756:32:1",
"nodeType": "YulFunctionCall",
"src": "1756:32:1"
},
"nativeSrc": "1753:119:1",
"nodeType": "YulIf",
"src": "1753:119:1"
},
{
"nativeSrc": "1882:117:1",
"nodeType": "YulBlock",
"src": "1882:117:1",
"statements": [
{
"nativeSrc": "1897:15:1",
"nodeType": "YulVariableDeclaration",
"src": "1897:15:1",
"value": {
"kind": "number",
"nativeSrc": "1911:1:1",
"nodeType": "YulLiteral",
"src": "1911:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "1901:6:1",
"nodeType": "YulTypedName",
"src": "1901:6:1",
"type": ""
}
]
},
{
"nativeSrc": "1926:63:1",
"nodeType": "YulAssignment",
"src": "1926:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1961:9:1",
"nodeType": "YulIdentifier",
"src": "1961:9:1"
},
{
"name": "offset",
"nativeSrc": "1972:6:1",
"nodeType": "YulIdentifier",
"src": "1972:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1957:3:1",
"nodeType": "YulIdentifier",
"src": "1957:3:1"
},
"nativeSrc": "1957:22:1",
"nodeType": "YulFunctionCall",
"src": "1957:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "1981:7:1",
"nodeType": "YulIdentifier",
"src": "1981:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "1936:20:1",
"nodeType": "YulIdentifier",
"src": "1936:20:1"
},
"nativeSrc": "1936:53:1",
"nodeType": "YulFunctionCall",
"src": "1936:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "1926:6:1",
"nodeType": "YulIdentifier",
"src": "1926:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "1677:329:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1713:9:1",
"nodeType": "YulTypedName",
"src": "1713:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "1724:7:1",
"nodeType": "YulTypedName",
"src": "1724:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "1736:6:1",
"nodeType": "YulTypedName",
"src": "1736:6:1",
"type": ""
}
],
"src": "1677:329:1"
},
{
"body": {
"nativeSrc": "2077:53:1",
"nodeType": "YulBlock",
"src": "2077:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "2094:3:1",
"nodeType": "YulIdentifier",
"src": "2094:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "2117:5:1",
"nodeType": "YulIdentifier",
"src": "2117:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2099:17:1",
"nodeType": "YulIdentifier",
"src": "2099:17:1"
},
"nativeSrc": "2099:24:1",
"nodeType": "YulFunctionCall",
"src": "2099:24:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2087:6:1",
"nodeType": "YulIdentifier",
"src": "2087:6:1"
},
"nativeSrc": "2087:37:1",
"nodeType": "YulFunctionCall",
"src": "2087:37:1"
},
"nativeSrc": "2087:37:1",
"nodeType": "YulExpressionStatement",
"src": "2087:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "2012:118:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "2065:5:1",
"nodeType": "YulTypedName",
"src": "2065:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "2072:3:1",
"nodeType": "YulTypedName",
"src": "2072:3:1",
"type": ""
}
],
"src": "2012:118:1"
},
{
"body": {
"nativeSrc": "2234:124:1",
"nodeType": "YulBlock",
"src": "2234:124:1",
"statements": [
{
"nativeSrc": "2244:26:1",
"nodeType": "YulAssignment",
"src": "2244:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "2256:9:1",
"nodeType": "YulIdentifier",
"src": "2256:9:1"
},
{
"kind": "number",
"nativeSrc": "2267:2:1",
"nodeType": "YulLiteral",
"src": "2267:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2252:3:1",
"nodeType": "YulIdentifier",
"src": "2252:3:1"
},
"nativeSrc": "2252:18:1",
"nodeType": "YulFunctionCall",
"src": "2252:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "2244:4:1",
"nodeType": "YulIdentifier",
"src": "2244:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "2324:6:1",
"nodeType": "YulIdentifier",
"src": "2324:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "2337:9:1",
"nodeType": "YulIdentifier",
"src": "2337:9:1"
},
{
"kind": "number",
"nativeSrc": "2348:1:1",
"nodeType": "YulLiteral",
"src": "2348:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2333:3:1",
"nodeType": "YulIdentifier",
"src": "2333:3:1"
},
"nativeSrc": "2333:17:1",
"nodeType": "YulFunctionCall",
"src": "2333:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "2280:43:1",
"nodeType": "YulIdentifier",
"src": "2280:43:1"
},
"nativeSrc": "2280:71:1",
"nodeType": "YulFunctionCall",
"src": "2280:71:1"
},
"nativeSrc": "2280:71:1",
"nodeType": "YulExpressionStatement",
"src": "2280:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "2136:222:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "2206:9:1",
"nodeType": "YulTypedName",
"src": "2206:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "2218:6:1",
"nodeType": "YulTypedName",
"src": "2218:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "2229:4:1",
"nodeType": "YulTypedName",
"src": "2229:4:1",
"type": ""
}
],
"src": "2136:222:1"
},
{
"body": {
"nativeSrc": "2392:152:1",
"nodeType": "YulBlock",
"src": "2392:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2409:1:1",
"nodeType": "YulLiteral",
"src": "2409:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2412:77:1",
"nodeType": "YulLiteral",
"src": "2412:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2402:6:1",
"nodeType": "YulIdentifier",
"src": "2402:6:1"
},
"nativeSrc": "2402:88:1",
"nodeType": "YulFunctionCall",
"src": "2402:88:1"
},
"nativeSrc": "2402:88:1",
"nodeType": "YulExpressionStatement",
"src": "2402:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2506:1:1",
"nodeType": "YulLiteral",
"src": "2506:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "2509:4:1",
"nodeType": "YulLiteral",
"src": "2509:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "2499:6:1",
"nodeType": "YulIdentifier",
"src": "2499:6:1"
},
"nativeSrc": "2499:15:1",
"nodeType": "YulFunctionCall",
"src": "2499:15:1"
},
"nativeSrc": "2499:15:1",
"nodeType": "YulExpressionStatement",
"src": "2499:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "2530:1:1",
"nodeType": "YulLiteral",
"src": "2530:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "2533:4:1",
"nodeType": "YulLiteral",
"src": "2533:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "2523:6:1",
"nodeType": "YulIdentifier",
"src": "2523:6:1"
},
"nativeSrc": "2523:15:1",
"nodeType": "YulFunctionCall",
"src": "2523:15:1"
},
"nativeSrc": "2523:15:1",
"nodeType": "YulExpressionStatement",
"src": "2523:15:1"
}
]
},
"name": "panic_error_0x11",
"nativeSrc": "2364:180:1",
"nodeType": "YulFunctionDefinition",
"src": "2364:180:1"
},
{
"body": {
"nativeSrc": "2594:147:1",
"nodeType": "YulBlock",
"src": "2594:147:1",
"statements": [
{
"nativeSrc": "2604:25:1",
"nodeType": "YulAssignment",
"src": "2604:25:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "2627:1:1",
"nodeType": "YulIdentifier",
"src": "2627:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2609:17:1",
"nodeType": "YulIdentifier",
"src": "2609:17:1"
},
"nativeSrc": "2609:20:1",
"nodeType": "YulFunctionCall",
"src": "2609:20:1"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "2604:1:1",
"nodeType": "YulIdentifier",
"src": "2604:1:1"
}
]
},
{
"nativeSrc": "2638:25:1",
"nodeType": "YulAssignment",
"src": "2638:25:1",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "2661:1:1",
"nodeType": "YulIdentifier",
"src": "2661:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2643:17:1",
"nodeType": "YulIdentifier",
"src": "2643:17:1"
},
"nativeSrc": "2643:20:1",
"nodeType": "YulFunctionCall",
"src": "2643:20:1"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "2638:1:1",
"nodeType": "YulIdentifier",
"src": "2638:1:1"
}
]
},
{
"nativeSrc": "2672:16:1",
"nodeType": "YulAssignment",
"src": "2672:16:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "2683:1:1",
"nodeType": "YulIdentifier",
"src": "2683:1:1"
},
{
"name": "y",
"nativeSrc": "2686:1:1",
"nodeType": "YulIdentifier",
"src": "2686:1:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "2679:3:1",
"nodeType": "YulIdentifier",
"src": "2679:3:1"
},
"nativeSrc": "2679:9:1",
"nodeType": "YulFunctionCall",
"src": "2679:9:1"
},
"variableNames": [
{
"name": "sum",
"nativeSrc": "2672:3:1",
"nodeType": "YulIdentifier",
"src": "2672:3:1"
}
]
},
{
"body": {
"nativeSrc": "2712:22:1",
"nodeType": "YulBlock",
"src": "2712:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "2714:16:1",
"nodeType": "YulIdentifier",
"src": "2714:16:1"
},
"nativeSrc": "2714:18:1",
"nodeType": "YulFunctionCall",
"src": "2714:18:1"
},
"nativeSrc": "2714:18:1",
"nodeType": "YulExpressionStatement",
"src": "2714:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nativeSrc": "2704:1:1",
"nodeType": "YulIdentifier",
"src": "2704:1:1"
},
{
"name": "sum",
"nativeSrc": "2707:3:1",
"nodeType": "YulIdentifier",
"src": "2707:3:1"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "2701:2:1",
"nodeType": "YulIdentifier",
"src": "2701:2:1"
},
"nativeSrc": "2701:10:1",
"nodeType": "YulFunctionCall",
"src": "2701:10:1"
},
"nativeSrc": "2698:36:1",
"nodeType": "YulIf",
"src": "2698:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nativeSrc": "2550:191:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "2581:1:1",
"nodeType": "YulTypedName",
"src": "2581:1:1",
"type": ""
},
{
"name": "y",
"nativeSrc": "2584:1:1",
"nodeType": "YulTypedName",
"src": "2584:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nativeSrc": "2590:3:1",
"nodeType": "YulTypedName",
"src": "2590:3:1",
"type": ""
}
],
"src": "2550:191:1"
},
{
"body": {
"nativeSrc": "2792:149:1",
"nodeType": "YulBlock",
"src": "2792:149:1",
"statements": [
{
"nativeSrc": "2802:25:1",
"nodeType": "YulAssignment",
"src": "2802:25:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "2825:1:1",
"nodeType": "YulIdentifier",
"src": "2825:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2807:17:1",
"nodeType": "YulIdentifier",
"src": "2807:17:1"
},
"nativeSrc": "2807:20:1",
"nodeType": "YulFunctionCall",
"src": "2807:20:1"
},
"variableNames": [
{
"name": "x",
"nativeSrc": "2802:1:1",
"nodeType": "YulIdentifier",
"src": "2802:1:1"
}
]
},
{
"nativeSrc": "2836:25:1",
"nodeType": "YulAssignment",
"src": "2836:25:1",
"value": {
"arguments": [
{
"name": "y",
"nativeSrc": "2859:1:1",
"nodeType": "YulIdentifier",
"src": "2859:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "2841:17:1",
"nodeType": "YulIdentifier",
"src": "2841:17:1"
},
"nativeSrc": "2841:20:1",
"nodeType": "YulFunctionCall",
"src": "2841:20:1"
},
"variableNames": [
{
"name": "y",
"nativeSrc": "2836:1:1",
"nodeType": "YulIdentifier",
"src": "2836:1:1"
}
]
},
{
"nativeSrc": "2870:17:1",
"nodeType": "YulAssignment",
"src": "2870:17:1",
"value": {
"arguments": [
{
"name": "x",
"nativeSrc": "2882:1:1",
"nodeType": "YulIdentifier",
"src": "2882:1:1"
},
{
"name": "y",
"nativeSrc": "2885:1:1",
"nodeType": "YulIdentifier",
"src": "2885:1:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "2878:3:1",
"nodeType": "YulIdentifier",
"src": "2878:3:1"
},
"nativeSrc": "2878:9:1",
"nodeType": "YulFunctionCall",
"src": "2878:9:1"
},
"variableNames": [
{
"name": "diff",
"nativeSrc": "2870:4:1",
"nodeType": "YulIdentifier",
"src": "2870:4:1"
}
]
},
{
"body": {
"nativeSrc": "2912:22:1",
"nodeType": "YulBlock",
"src": "2912:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nativeSrc": "2914:16:1",
"nodeType": "YulIdentifier",
"src": "2914:16:1"
},
"nativeSrc": "2914:18:1",
"nodeType": "YulFunctionCall",
"src": "2914:18:1"
},
"nativeSrc": "2914:18:1",
"nodeType": "YulExpressionStatement",
"src": "2914:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nativeSrc": "2903:4:1",
"nodeType": "YulIdentifier",
"src": "2903:4:1"
},
{
"name": "x",
"nativeSrc": "2909:1:1",
"nodeType": "YulIdentifier",
"src": "2909:1:1"
}
],
"functionName": {
"name": "gt",
"nativeSrc": "2900:2:1",
"nodeType": "YulIdentifier",
"src": "2900:2:1"
},
"nativeSrc": "2900:11:1",
"nodeType": "YulFunctionCall",
"src": "2900:11:1"
},
"nativeSrc": "2897:37:1",
"nodeType": "YulIf",
"src": "2897:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nativeSrc": "2747:194:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nativeSrc": "2778:1:1",
"nodeType": "YulTypedName",
"src": "2778:1:1",
"type": ""
},
{
"name": "y",
"nativeSrc": "2781:1:1",
"nodeType": "YulTypedName",
"src": "2781:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nativeSrc": "2787:4:1",
"nodeType": "YulTypedName",
"src": "2787:4:1",
"type": ""
}
],
"src": "2747:194:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a9059cbb14610038578063fabde80c14610054575b5f80fd5b610052600480360381019061004d91906102a8565b610084565b005b61006e600480360381019061006991906102e6565b610203565b60405161007b9190610320565b60405180910390f35b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156100cc575f80fd5b5f808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546101519190610366565b101561015b575f80fd5b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546101a69190610399565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546101f89190610366565b925050819055505050565b5f602052805f5260405f205f915090505481565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102448261021b565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8135905061026f8161024b565b92915050565b5f819050919050565b61028781610275565b8114610291575f80fd5b50565b5f813590506102a28161027e565b92915050565b5f80604083850312156102be576102bd610217565b5b5f6102cb85828601610261565b92505060206102dc85828601610294565b9150509250929050565b5f602082840312156102fb576102fa610217565b5b5f61030884828501610261565b91505092915050565b61031a81610275565b82525050565b5f6020820190506103335f830184610311565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61037082610275565b915061037b83610275565b925082820190508082111561039357610392610339565b5b92915050565b5f6103a382610275565b91506103ae83610275565b92508282039050818111156103c6576103c5610339565b5b9291505056fea2646970667358221220e9a9d63aa41873a935b1435f0abb36a16adc1993bc0f2e1d61ca2fb9d508623564736f6c63430008160033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x38 JUMPI DUP1 PUSH4 0xFABDE80C EQ PUSH2 0x54 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x52 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D SWAP2 SWAP1 PUSH2 0x2A8 JUMP JUMPDEST PUSH2 0x84 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x69 SWAP2 SWAP1 PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD LT ISZERO PUSH2 0xCC JUMPI PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP2 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x151 SWAP2 SWAP1 PUSH2 0x366 JUMP JUMPDEST LT ISZERO PUSH2 0x15B JUMPI PUSH0 DUP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x399 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x366 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x244 DUP3 PUSH2 0x21B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x254 DUP2 PUSH2 0x23A JUMP JUMPDEST DUP2 EQ PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x26F DUP2 PUSH2 0x24B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x287 DUP2 PUSH2 0x275 JUMP JUMPDEST DUP2 EQ PUSH2 0x291 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A2 DUP2 PUSH2 0x27E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BE JUMPI PUSH2 0x2BD PUSH2 0x217 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2CB DUP6 DUP3 DUP7 ADD PUSH2 0x261 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2DC DUP6 DUP3 DUP7 ADD PUSH2 0x294 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FB JUMPI PUSH2 0x2FA PUSH2 0x217 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x308 DUP5 DUP3 DUP6 ADD PUSH2 0x261 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x31A DUP2 PUSH2 0x275 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x333 PUSH0 DUP4 ADD DUP5 PUSH2 0x311 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x370 DUP3 PUSH2 0x275 JUMP JUMPDEST SWAP2 POP PUSH2 0x37B DUP4 PUSH2 0x275 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x393 JUMPI PUSH2 0x392 PUSH2 0x339 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3A3 DUP3 PUSH2 0x275 JUMP JUMPDEST SWAP2 POP PUSH2 0x3AE DUP4 PUSH2 0x275 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x3C6 JUMPI PUSH2 0x3C5 PUSH2 0x339 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 0xA9 0xD6 GASPRICE LOG4 XOR PUSH20 0xA935B1435F0ABB36A16ADC1993BC0F2E1D61CA2F 0xB9 0xD5 ADDMOD PUSH3 0x356473 PUSH16 0x6C634300081600330000000000000000 ",
"sourceMap": "70:829:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;329:568;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;97:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;329:568;488:7;461:11;:23;473:10;461:23;;;;;;;;;;;;;;;;:34;;453:43;;;;;;791:11;:16;803:3;791:16;;;;;;;;;;;;;;;;780:7;761:11;:16;773:3;761:16;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;:46;;753:55;;;;;;846:7;819:11;:23;831:10;819:23;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;883:7;863:11;:16;875:3;863:16;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;329:568;;:::o;97:47::-;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:329::-;1736:6;1785:2;1773:9;1764:7;1760:23;1756:32;1753:119;;;1791:79;;:::i;:::-;1753:119;1911:1;1936:53;1981:7;1972:6;1961:9;1957:22;1936:53;:::i;:::-;1926:63;;1882:117;1677:329;;;;:::o;2012:118::-;2099:24;2117:5;2099:24;:::i;:::-;2094:3;2087:37;2012:118;;:::o;2136:222::-;2229:4;2267:2;2256:9;2252:18;2244:26;;2280:71;2348:1;2337:9;2333:17;2324:6;2280:71;:::i;:::-;2136:222;;;;:::o;2364:180::-;2412:77;2409:1;2402:88;2509:4;2506:1;2499:15;2533:4;2530:1;2523:15;2550:191;2590:3;2609:20;2627:1;2609:20;:::i;:::-;2604:25;;2643:20;2661:1;2643:20;:::i;:::-;2638:25;;2686:1;2683;2679:9;2672:16;;2707:3;2704:1;2701:10;2698:36;;;2714:18;;:::i;:::-;2698:36;2550:191;;;;:::o;2747:194::-;2787:4;2807:20;2825:1;2807:20;:::i;:::-;2802:25;;2841:20;2859:1;2841:20;:::i;:::-;2836:25;;2885:1;2882;2878:9;2870:17;;2909:1;2903:4;2900:11;2897:37;;;2914:18;;:::i;:::-;2897:37;2747:194;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "205200",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"coinBalance(address)": "2801",
"transfer(address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"coinBalance(address)": "fabde80c",
"transfer(address,uint256)": "a9059cbb"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_initialSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "coinBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_initialSupply",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "coinBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/SimpleCoin.sol": "SimpleCoin"
},
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/SimpleCoin.sol": {
"keccak256": "0x3288b9531df06b889173b1d2301ad56cfa09c771cc9a51b37aa9374e1fc60f87",
"license": "GPL-3.0",
"urls": [
"bzz-raw://ed5024ac2e17502b9ba3505f6b1e610a33b91caeac3f5da5dfa20b08533ddc31",
"dweb:/ipfs/QmaFgW8KEB9rPW6a81yJWiJeYuZm8XqX5yEYDutMDmtvdt"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b506103358061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c80638d4e4083116100645780638d4e40831461010d578063912e704e1461012b578063bab34f431461015b578063cb6f16d414610179578063ee56cf411461019757610091565b80631c0a5c10146100955780633197cbb6146100b357806338ef9380146100d157806378e97925146100ef575b5f80fd5b61009d6101b5565b6040516100aa919061022a565b60405180910390f35b6100bb6101bb565b6040516100c8919061022a565b60405180910390f35b6100d96101c1565b6040516100e6919061022a565b60405180910390f35b6100f76101c7565b604051610104919061022a565b60405180910390f35b6101156101cc565b604051610122919061025d565b60405180910390f35b610145600480360381019061014091906102d4565b6101de565b604051610152919061022a565b60405180910390f35b6101636101f3565b604051610170919061022a565b60405180910390f35b6101816101f9565b60405161018e919061025d565b60405180910390f35b61019f61020c565b6040516101ac919061022a565b60405180910390f35b60055481565b60015481565b60065481565b5f5481565b60075f9054906101000a900460ff1681565b6004602052805f5260405f205f915090505481565b60035481565b600760019054906101000a900460ff1681565b60025481565b5f819050919050565b61022481610212565b82525050565b5f60208201905061023d5f83018461021b565b92915050565b5f8115159050919050565b61025781610243565b82525050565b5f6020820190506102705f83018461024e565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a38261027a565b9050919050565b6102b381610299565b81146102bd575f80fd5b50565b5f813590506102ce816102aa565b92915050565b5f602082840312156102e9576102e8610276565b5b5f6102f6848285016102c0565b9150509291505056fea2646970667358221220fd29c5eeec663db15a9437dc53b9077a6cbfc11d696550168d376c9d4c0aa09a64736f6c63430008160033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x335 DUP1 PUSH2 0x1D PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8D4E4083 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x8D4E4083 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x912E704E EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0xBAB34F43 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0xCB6F16D4 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0xEE56CF41 EQ PUSH2 0x197 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x1C0A5C10 EQ PUSH2 0x95 JUMPI DUP1 PUSH4 0x3197CBB6 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x38EF9380 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x78E97925 EQ PUSH2 0xEF JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x9D PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD9 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH2 0x1C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x115 PUSH2 0x1CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x140 SWAP2 SWAP1 PUSH2 0x2D4 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH2 0x1F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x181 PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x20C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224 DUP2 PUSH2 0x212 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23D PUSH0 DUP4 ADD DUP5 PUSH2 0x21B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x257 DUP2 PUSH2 0x243 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x270 PUSH0 DUP4 ADD DUP5 PUSH2 0x24E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2A3 DUP3 PUSH2 0x27A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B3 DUP2 PUSH2 0x299 JUMP JUMPDEST DUP2 EQ PUSH2 0x2BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2CE DUP2 PUSH2 0x2AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E9 JUMPI PUSH2 0x2E8 PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x2C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT 0x29 0xC5 0xEE 0xEC PUSH7 0x3DB15A9437DC53 0xB9 SMOD PUSH27 0x6CBFC11D696550168D376C9D4C0AA09A64736F6C63430008160033 ",
"sourceMap": "69:375:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@endTime_5": {
"entryPoint": 443,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@investmentAmountOf_13": {
"entryPoint": 478,
"id": 13,
"parameterSlots": 0,
"returnSlots": 0
},
"@investmentReceived_15": {
"entryPoint": 437,
"id": 15,
"parameterSlots": 0,
"returnSlots": 0
},
"@investmentRefunded_17": {
"entryPoint": 449,
"id": 17,
"parameterSlots": 0,
"returnSlots": 0
},
"@isFinalized_19": {
"entryPoint": 460,
"id": 19,
"parameterSlots": 0,
"returnSlots": 0
},
"@isRefundingAllowed_21": {
"entryPoint": 505,
"id": 21,
"parameterSlots": 0,
"returnSlots": 0
},
"@startTime_3": {
"entryPoint": 455,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@weiInvestmentObjective_9": {
"entryPoint": 499,
"id": 9,
"parameterSlots": 0,
"returnSlots": 0
},
"@weiTokenPrice_7": {
"entryPoint": 524,
"id": 7,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 704,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 724,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 590,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 539,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 605,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 554,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 665,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 579,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 634,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 530,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 630,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 682,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:2035:1",
"nodeType": "YulBlock",
"src": "0:2035:1",
"statements": [
{
"body": {
"nativeSrc": "52:32:1",
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nativeSrc": "62:16:1",
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nativeSrc": "73:5:1",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "62:7:1",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "7:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "34:5:1",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "44:7:1",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nativeSrc": "155:53:1",
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "172:3:1",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "195:5:1",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "177:17:1",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nativeSrc": "177:24:1",
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "165:6:1",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nativeSrc": "165:37:1",
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nativeSrc": "165:37:1",
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "90:118:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "143:5:1",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "150:3:1",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nativeSrc": "312:124:1",
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nativeSrc": "322:26:1",
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "334:9:1",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nativeSrc": "345:2:1",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "330:3:1",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nativeSrc": "330:18:1",
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "322:4:1",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "402:6:1",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "415:9:1",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nativeSrc": "426:1:1",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "411:3:1",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nativeSrc": "411:17:1",
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nativeSrc": "358:43:1",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nativeSrc": "358:71:1",
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nativeSrc": "358:71:1",
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "214:222:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "284:9:1",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "296:6:1",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "307:4:1",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nativeSrc": "484:48:1",
"nodeType": "YulBlock",
"src": "484:48:1",
"statements": [
{
"nativeSrc": "494:32:1",
"nodeType": "YulAssignment",
"src": "494:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "519:5:1",
"nodeType": "YulIdentifier",
"src": "519:5:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "512:6:1",
"nodeType": "YulIdentifier",
"src": "512:6:1"
},
"nativeSrc": "512:13:1",
"nodeType": "YulFunctionCall",
"src": "512:13:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "505:6:1",
"nodeType": "YulIdentifier",
"src": "505:6:1"
},
"nativeSrc": "505:21:1",
"nodeType": "YulFunctionCall",
"src": "505:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "494:7:1",
"nodeType": "YulIdentifier",
"src": "494:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nativeSrc": "442:90:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "466:5:1",
"nodeType": "YulTypedName",
"src": "466:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "476:7:1",
"nodeType": "YulTypedName",
"src": "476:7:1",
"type": ""
}
],
"src": "442:90:1"
},
{
"body": {
"nativeSrc": "597:50:1",
"nodeType": "YulBlock",
"src": "597:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "614:3:1",
"nodeType": "YulIdentifier",
"src": "614:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "634:5:1",
"nodeType": "YulIdentifier",
"src": "634:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nativeSrc": "619:14:1",
"nodeType": "YulIdentifier",
"src": "619:14:1"
},
"nativeSrc": "619:21:1",
"nodeType": "YulFunctionCall",
"src": "619:21:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "607:6:1",
"nodeType": "YulIdentifier",
"src": "607:6:1"
},
"nativeSrc": "607:34:1",
"nodeType": "YulFunctionCall",
"src": "607:34:1"
},
"nativeSrc": "607:34:1",
"nodeType": "YulExpressionStatement",
"src": "607:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "538:109:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "585:5:1",
"nodeType": "YulTypedName",
"src": "585:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "592:3:1",
"nodeType": "YulTypedName",
"src": "592:3:1",
"type": ""
}
],
"src": "538:109:1"
},
{
"body": {
"nativeSrc": "745:118:1",
"nodeType": "YulBlock",
"src": "745:118:1",
"statements": [
{
"nativeSrc": "755:26:1",
"nodeType": "YulAssignment",
"src": "755:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "767:9:1",
"nodeType": "YulIdentifier",
"src": "767:9:1"
},
{
"kind": "number",
"nativeSrc": "778:2:1",
"nodeType": "YulLiteral",
"src": "778:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "763:3:1",
"nodeType": "YulIdentifier",
"src": "763:3:1"
},
"nativeSrc": "763:18:1",
"nodeType": "YulFunctionCall",
"src": "763:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "755:4:1",
"nodeType": "YulIdentifier",
"src": "755:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "829:6:1",
"nodeType": "YulIdentifier",
"src": "829:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "842:9:1",
"nodeType": "YulIdentifier",
"src": "842:9:1"
},
{
"kind": "number",
"nativeSrc": "853:1:1",
"nodeType": "YulLiteral",
"src": "853:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "838:3:1",
"nodeType": "YulIdentifier",
"src": "838:3:1"
},
"nativeSrc": "838:17:1",
"nodeType": "YulFunctionCall",
"src": "838:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nativeSrc": "791:37:1",
"nodeType": "YulIdentifier",
"src": "791:37:1"
},
"nativeSrc": "791:65:1",
"nodeType": "YulFunctionCall",
"src": "791:65:1"
},
"nativeSrc": "791:65:1",
"nodeType": "YulExpressionStatement",
"src": "791:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nativeSrc": "653:210:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "717:9:1",
"nodeType": "YulTypedName",
"src": "717:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "729:6:1",
"nodeType": "YulTypedName",
"src": "729:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "740:4:1",
"nodeType": "YulTypedName",
"src": "740:4:1",
"type": ""
}
],
"src": "653:210:1"
},
{
"body": {
"nativeSrc": "909:35:1",
"nodeType": "YulBlock",
"src": "909:35:1",
"statements": [
{
"nativeSrc": "919:19:1",
"nodeType": "YulAssignment",
"src": "919:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "935:2:1",
"nodeType": "YulLiteral",
"src": "935:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "929:5:1",
"nodeType": "YulIdentifier",
"src": "929:5:1"
},
"nativeSrc": "929:9:1",
"nodeType": "YulFunctionCall",
"src": "929:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "919:6:1",
"nodeType": "YulIdentifier",
"src": "919:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "869:75:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "902:6:1",
"nodeType": "YulTypedName",
"src": "902:6:1",
"type": ""
}
],
"src": "869:75:1"
},
{
"body": {
"nativeSrc": "1039:28:1",
"nodeType": "YulBlock",
"src": "1039:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1056:1:1",
"nodeType": "YulLiteral",
"src": "1056:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1059:1:1",
"nodeType": "YulLiteral",
"src": "1059:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1049:6:1",
"nodeType": "YulIdentifier",
"src": "1049:6:1"
},
"nativeSrc": "1049:12:1",
"nodeType": "YulFunctionCall",
"src": "1049:12:1"
},
"nativeSrc": "1049:12:1",
"nodeType": "YulExpressionStatement",
"src": "1049:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "950:117:1",
"nodeType": "YulFunctionDefinition",
"src": "950:117:1"
},
{
"body": {
"nativeSrc": "1162:28:1",
"nodeType": "YulBlock",
"src": "1162:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1179:1:1",
"nodeType": "YulLiteral",
"src": "1179:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1182:1:1",
"nodeType": "YulLiteral",
"src": "1182:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1172:6:1",
"nodeType": "YulIdentifier",
"src": "1172:6:1"
},
"nativeSrc": "1172:12:1",
"nodeType": "YulFunctionCall",
"src": "1172:12:1"
},
"nativeSrc": "1172:12:1",
"nodeType": "YulExpressionStatement",
"src": "1172:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "1073:117:1",
"nodeType": "YulFunctionDefinition",
"src": "1073:117:1"
},
{
"body": {
"nativeSrc": "1241:81:1",
"nodeType": "YulBlock",
"src": "1241:81:1",
"statements": [
{
"nativeSrc": "1251:65:1",
"nodeType": "YulAssignment",
"src": "1251:65:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1266:5:1",
"nodeType": "YulIdentifier",
"src": "1266:5:1"
},
{
"kind": "number",
"nativeSrc": "1273:42:1",
"nodeType": "YulLiteral",
"src": "1273:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nativeSrc": "1262:3:1",
"nodeType": "YulIdentifier",
"src": "1262:3:1"
},
"nativeSrc": "1262:54:1",
"nodeType": "YulFunctionCall",
"src": "1262:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1251:7:1",
"nodeType": "YulIdentifier",
"src": "1251:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nativeSrc": "1196:126:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1223:5:1",
"nodeType": "YulTypedName",
"src": "1223:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1233:7:1",
"nodeType": "YulTypedName",
"src": "1233:7:1",
"type": ""
}
],
"src": "1196:126:1"
},
{
"body": {
"nativeSrc": "1373:51:1",
"nodeType": "YulBlock",
"src": "1373:51:1",
"statements": [
{
"nativeSrc": "1383:35:1",
"nodeType": "YulAssignment",
"src": "1383:35:1",
"value": {
"arguments": [
{
"name": "value",
"nativeSrc": "1412:5:1",
"nodeType": "YulIdentifier",
"src": "1412:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nativeSrc": "1394:17:1",
"nodeType": "YulIdentifier",
"src": "1394:17:1"
},
"nativeSrc": "1394:24:1",
"nodeType": "YulFunctionCall",
"src": "1394:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1383:7:1",
"nodeType": "YulIdentifier",
"src": "1383:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nativeSrc": "1328:96:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1355:5:1",
"nodeType": "YulTypedName",
"src": "1355:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1365:7:1",
"nodeType": "YulTypedName",
"src": "1365:7:1",
"type": ""
}
],
"src": "1328:96:1"
},
{
"body": {
"nativeSrc": "1473:79:1",
"nodeType": "YulBlock",
"src": "1473:79:1",
"statements": [
{
"body": {
"nativeSrc": "1530:16:1",
"nodeType": "YulBlock",
"src": "1530:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "1539:1:1",
"nodeType": "YulLiteral",
"src": "1539:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1542:1:1",
"nodeType": "YulLiteral",
"src": "1542:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "1532:6:1",
"nodeType": "YulIdentifier",
"src": "1532:6:1"
},
"nativeSrc": "1532:12:1",
"nodeType": "YulFunctionCall",
"src": "1532:12:1"
},
"nativeSrc": "1532:12:1",
"nodeType": "YulExpressionStatement",
"src": "1532:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "1496:5:1",
"nodeType": "YulIdentifier",
"src": "1496:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1521:5:1",
"nodeType": "YulIdentifier",
"src": "1521:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nativeSrc": "1503:17:1",
"nodeType": "YulIdentifier",
"src": "1503:17:1"
},
"nativeSrc": "1503:24:1",
"nodeType": "YulFunctionCall",
"src": "1503:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "1493:2:1",
"nodeType": "YulIdentifier",
"src": "1493:2:1"
},
"nativeSrc": "1493:35:1",
"nodeType": "YulFunctionCall",
"src": "1493:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "1486:6:1",
"nodeType": "YulIdentifier",
"src": "1486:6:1"
},
"nativeSrc": "1486:43:1",
"nodeType": "YulFunctionCall",
"src": "1486:43:1"
},
"nativeSrc": "1483:63:1",
"nodeType": "YulIf",
"src": "1483:63:1"
}
]
},
"name": "validator_revert_t_address",
"nativeSrc": "1430:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1466:5:1",
"nodeType": "YulTypedName",
"src": "1466:5:1",
"type": ""
}
],
"src": "1430:122:1"
},
{
"body": {
"nativeSrc": "1610:87:1",
"nodeType": "YulBlock",
"src": "1610:87:1",
"statements": [
{
"nativeSrc": "1620:29:1",
"nodeType": "YulAssignment",
"src": "1620:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "1642:6:1",
"nodeType": "YulIdentifier",
"src": "1642:6:1"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "1629:12:1",
"nodeType": "YulIdentifier",
"src": "1629:12:1"
},
"nativeSrc": "1629:20:1",
"nodeType": "YulFunctionCall",
"src": "1629:20:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "1620:5:1",
"nodeType": "YulIdentifier",
"src": "1620:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "1685:5:1",
"nodeType": "YulIdentifier",
"src": "1685:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nativeSrc": "1658:26:1",
"nodeType": "YulIdentifier",
"src": "1658:26:1"
},
"nativeSrc": "1658:33:1",
"nodeType": "YulFunctionCall",
"src": "1658:33:1"
},
"nativeSrc": "1658:33:1",
"nodeType": "YulExpressionStatement",
"src": "1658:33:1"
}
]
},
"name": "abi_decode_t_address",
"nativeSrc": "1558:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "1588:6:1",
"nodeType": "YulTypedName",
"src": "1588:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "1596:3:1",
"nodeType": "YulTypedName",
"src": "1596:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "1604:5:1",
"nodeType": "YulTypedName",
"src": "1604:5:1",
"type": ""
}
],
"src": "1558:139:1"
},
{
"body": {
"nativeSrc": "1769:263:1",
"nodeType": "YulBlock",
"src": "1769:263:1",
"statements": [
{
"body": {
"nativeSrc": "1815:83:1",
"nodeType": "YulBlock",
"src": "1815:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "1817:77:1",
"nodeType": "YulIdentifier",
"src": "1817:77:1"
},
"nativeSrc": "1817:79:1",
"nodeType": "YulFunctionCall",
"src": "1817:79:1"
},
"nativeSrc": "1817:79:1",
"nodeType": "YulExpressionStatement",
"src": "1817:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "1790:7:1",
"nodeType": "YulIdentifier",
"src": "1790:7:1"
},
{
"name": "headStart",
"nativeSrc": "1799:9:1",
"nodeType": "YulIdentifier",
"src": "1799:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "1786:3:1",
"nodeType": "YulIdentifier",
"src": "1786:3:1"
},
"nativeSrc": "1786:23:1",
"nodeType": "YulFunctionCall",
"src": "1786:23:1"
},
{
"kind": "number",
"nativeSrc": "1811:2:1",
"nodeType": "YulLiteral",
"src": "1811:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "1782:3:1",
"nodeType": "YulIdentifier",
"src": "1782:3:1"
},
"nativeSrc": "1782:32:1",
"nodeType": "YulFunctionCall",
"src": "1782:32:1"
},
"nativeSrc": "1779:119:1",
"nodeType": "YulIf",
"src": "1779:119:1"
},
{
"nativeSrc": "1908:117:1",
"nodeType": "YulBlock",
"src": "1908:117:1",
"statements": [
{
"nativeSrc": "1923:15:1",
"nodeType": "YulVariableDeclaration",
"src": "1923:15:1",
"value": {
"kind": "number",
"nativeSrc": "1937:1:1",
"nodeType": "YulLiteral",
"src": "1937:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "1927:6:1",
"nodeType": "YulTypedName",
"src": "1927:6:1",
"type": ""
}
]
},
{
"nativeSrc": "1952:63:1",
"nodeType": "YulAssignment",
"src": "1952:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1987:9:1",
"nodeType": "YulIdentifier",
"src": "1987:9:1"
},
{
"name": "offset",
"nativeSrc": "1998:6:1",
"nodeType": "YulIdentifier",
"src": "1998:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1983:3:1",
"nodeType": "YulIdentifier",
"src": "1983:3:1"
},
"nativeSrc": "1983:22:1",
"nodeType": "YulFunctionCall",
"src": "1983:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "2007:7:1",
"nodeType": "YulIdentifier",
"src": "2007:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nativeSrc": "1962:20:1",
"nodeType": "YulIdentifier",
"src": "1962:20:1"
},
"nativeSrc": "1962:53:1",
"nodeType": "YulFunctionCall",
"src": "1962:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "1952:6:1",
"nodeType": "YulIdentifier",
"src": "1952:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nativeSrc": "1703:329:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1739:9:1",
"nodeType": "YulTypedName",
"src": "1739:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "1750:7:1",
"nodeType": "YulTypedName",
"src": "1750:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "1762:6:1",
"nodeType": "YulTypedName",
"src": "1762:6:1",
"type": ""
}
],
"src": "1703:329:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f80fd5b5060043610610091575f3560e01c80638d4e4083116100645780638d4e40831461010d578063912e704e1461012b578063bab34f431461015b578063cb6f16d414610179578063ee56cf411461019757610091565b80631c0a5c10146100955780633197cbb6146100b357806338ef9380146100d157806378e97925146100ef575b5f80fd5b61009d6101b5565b6040516100aa919061022a565b60405180910390f35b6100bb6101bb565b6040516100c8919061022a565b60405180910390f35b6100d96101c1565b6040516100e6919061022a565b60405180910390f35b6100f76101c7565b604051610104919061022a565b60405180910390f35b6101156101cc565b604051610122919061025d565b60405180910390f35b610145600480360381019061014091906102d4565b6101de565b604051610152919061022a565b60405180910390f35b6101636101f3565b604051610170919061022a565b60405180910390f35b6101816101f9565b60405161018e919061025d565b60405180910390f35b61019f61020c565b6040516101ac919061022a565b60405180910390f35b60055481565b60015481565b60065481565b5f5481565b60075f9054906101000a900460ff1681565b6004602052805f5260405f205f915090505481565b60035481565b600760019054906101000a900460ff1681565b60025481565b5f819050919050565b61022481610212565b82525050565b5f60208201905061023d5f83018461021b565b92915050565b5f8115159050919050565b61025781610243565b82525050565b5f6020820190506102705f83018461024e565b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102a38261027a565b9050919050565b6102b381610299565b81146102bd575f80fd5b50565b5f813590506102ce816102aa565b92915050565b5f602082840312156102e9576102e8610276565b5b5f6102f6848285016102c0565b9150509291505056fea2646970667358221220fd29c5eeec663db15a9437dc53b9077a6cbfc11d696550168d376c9d4c0aa09a64736f6c63430008160033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x91 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8D4E4083 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x8D4E4083 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x912E704E EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0xBAB34F43 EQ PUSH2 0x15B JUMPI DUP1 PUSH4 0xCB6F16D4 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0xEE56CF41 EQ PUSH2 0x197 JUMPI PUSH2 0x91 JUMP JUMPDEST DUP1 PUSH4 0x1C0A5C10 EQ PUSH2 0x95 JUMPI DUP1 PUSH4 0x3197CBB6 EQ PUSH2 0xB3 JUMPI DUP1 PUSH4 0x38EF9380 EQ PUSH2 0xD1 JUMPI DUP1 PUSH4 0x78E97925 EQ PUSH2 0xEF JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x9D PUSH2 0x1B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAA SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH2 0x1BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC8 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD9 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF7 PUSH2 0x1C7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x115 PUSH2 0x1CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x145 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x140 SWAP2 SWAP1 PUSH2 0x2D4 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x163 PUSH2 0x1F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x181 PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x19F PUSH2 0x20C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x22A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x224 DUP2 PUSH2 0x212 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23D PUSH0 DUP4 ADD DUP5 PUSH2 0x21B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x257 DUP2 PUSH2 0x243 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x270 PUSH0 DUP4 ADD DUP5 PUSH2 0x24E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2A3 DUP3 PUSH2 0x27A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B3 DUP2 PUSH2 0x299 JUMP JUMPDEST DUP2 EQ PUSH2 0x2BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2CE DUP2 PUSH2 0x2AA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E9 JUMPI PUSH2 0x2E8 PUSH2 0x276 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2F6 DUP5 DUP3 DUP6 ADD PUSH2 0x2C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT 0x29 0xC5 0xEE 0xEC PUSH7 0x3DB15A9437DC53 0xB9 SMOD PUSH27 0x6CBFC11D696550168D376C9D4C0AA09A64736F6C63430008160033 ",
"sourceMap": "69:375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;296:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;130:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;335:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;100:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;375:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;236:54;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;192:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;404:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;158:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;296:33;;;;:::o;130:22::-;;;;:::o;335:33::-;;;;:::o;100:24::-;;;;:::o;375:23::-;;;;;;;;;;;;;:::o;236:54::-;;;;;;;;;;;;;;;;;:::o;192:37::-;;;;:::o;404:30::-;;;;;;;;;;;;;:::o;158:28::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;950:117::-;1059:1;1056;1049:12;1196:126;1233:7;1273:42;1266:5;1262:54;1251:65;;1196:126;;;:::o;1328:96::-;1365:7;1394:24;1412:5;1394:24;:::i;:::-;1383:35;;1328:96;;;:::o;1430:122::-;1503:24;1521:5;1503:24;:::i;:::-;1496:5;1493:35;1483:63;;1542:1;1539;1532:12;1483:63;1430:122;:::o;1558:139::-;1604:5;1642:6;1629:20;1620:29;;1658:33;1685:5;1658:33;:::i;:::-;1558:139;;;;:::o;1703:329::-;1762:6;1811:2;1799:9;1790:7;1786:23;1782:32;1779:119;;;1817:79;;:::i;:::-;1779:119;1937:1;1962:53;2007:7;1998:6;1987:9;1983:22;1962:53;:::i;:::-;1952:63;;1908:117;1703:329;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "164200",
"executionCost": "206",
"totalCost": "164406"
},
"external": {
"endTime()": "2448",
"investmentAmountOf(address)": "2824",
"investmentReceived()": "2426",
"investmentRefunded()": "2470",
"isFinalized()": "2466",
"isRefundingAllowed()": "2583",
"startTime()": "2491",
"weiInvestmentObjective()": "2469",
"weiTokenPrice()": "2513"
}
},
"methodIdentifiers": {
"endTime()": "3197cbb6",
"investmentAmountOf(address)": "912e704e",
"investmentReceived()": "1c0a5c10",
"investmentRefunded()": "38ef9380",
"isFinalized()": "8d4e4083",
"isRefundingAllowed()": "cb6f16d4",
"startTime()": "78e97925",
"weiInvestmentObjective()": "bab34f43",
"weiTokenPrice()": "ee56cf41"
}
},
"abi": [
{
"inputs": [],
"name": "endTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "investmentAmountOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "investmentReceived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "investmentRefunded",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isFinalized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isRefundingAllowed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "weiInvestmentObjective",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "weiTokenPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.22+commit.4fc1097e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "endTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "investmentAmountOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "investmentReceived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "investmentRefunded",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isFinalized",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isRefundingAllowed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "startTime",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "weiInvestmentObjective",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "weiTokenPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/SimpleCrowdsale.sol": "SimpleCrowdsale"
},
"evmVersion": "shanghai",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/SimpleCrowdsale.sol": {
"keccak256": "0xfbe0a63714ba582a38d1efb49172d2ce38337304228cb9e07c7a1b2e5eb65964",
"license": "GPL-3.0",
"urls": [
"bzz-raw://e75a4c21478771ffd3750790d6a44e31e487fb36b133043b1b8d1fcf4a84c391",
"dweb:/ipfs/QmfBE9NiBWxpxqGb5kQGCgeTyqSJri3EyzxjR5XUthPZXP"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61007e565b005b60008054905090565b8060008190555050565b6000819050919050565b61009b81610088565b82525050565b60006020820190506100b66000830184610092565b92915050565b600080fd5b6100ca81610088565b81146100d557600080fd5b50565b6000813590506100e7816100c1565b92915050565b600060208284031215610103576101026100bc565b5b6000610111848285016100d8565b9150509291505056fea2646970667358221220322c78243e61b783558509c9cc22cb8493dde6925aa5e89a08cdf6e22f279ef164736f6c63430008120033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 DUP1 PUSH2 0x20 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0xED JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B DUP2 PUSH2 0x88 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCA DUP2 PUSH2 0x88 JUMP JUMPDEST DUP2 EQ PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE7 DUP2 PUSH2 0xC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x103 JUMPI PUSH2 0x102 PUSH2 0xBC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x111 DUP5 DUP3 DUP6 ADD PUSH2 0xD8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0x2C PUSH25 0x243E61B783558509C9CC22CB8493DDE6925AA5E89A08CDF6E2 0x2F 0x27 SWAP15 CALL PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ",
"sourceMap": "199:356:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@retrieve_24": {
"entryPoint": 117,
"id": 24,
"parameterSlots": 0,
"returnSlots": 1
},
"@store_15": {
"entryPoint": 126,
"id": 15,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_uint256": {
"entryPoint": 216,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 237,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 146,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 161,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 136,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 188,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 193,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1374:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "482:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "492:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "508:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "502:5:1"
},
"nodeType": "YulFunctionCall",
"src": "502:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "492:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "475:6:1",
"type": ""
}
],
"src": "442:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "612:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "629:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "632:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "622:6:1"
},
"nodeType": "YulFunctionCall",
"src": "622:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "622:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "523:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "735:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "752:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "755:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "745:6:1"
},
"nodeType": "YulFunctionCall",
"src": "745:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "745:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "646:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "812:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "869:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "878:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "881:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "871:6:1"
},
"nodeType": "YulFunctionCall",
"src": "871:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "871:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "835:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "860:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "842:17:1"
},
"nodeType": "YulFunctionCall",
"src": "842:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "832:2:1"
},
"nodeType": "YulFunctionCall",
"src": "832:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "825:6:1"
},
"nodeType": "YulFunctionCall",
"src": "825:43:1"
},
"nodeType": "YulIf",
"src": "822:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "805:5:1",
"type": ""
}
],
"src": "769:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "949:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "959:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "981:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "968:12:1"
},
"nodeType": "YulFunctionCall",
"src": "968:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "959:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1024:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "997:26:1"
},
"nodeType": "YulFunctionCall",
"src": "997:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "927:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "935:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "943:5:1",
"type": ""
}
],
"src": "897:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1108:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1154:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1156:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1156:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1156:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1129:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1138:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1125:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1125:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1150:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1121:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1121:32:1"
},
"nodeType": "YulIf",
"src": "1118:119:1"
},
{
"nodeType": "YulBlock",
"src": "1247:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1262:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1276:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1266:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1291:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1326:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1337:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1322:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1322:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1346:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1301:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1301:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1291:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1078:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1089:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1101:6:1",
"type": ""
}
],
"src": "1042:329:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61007e565b005b60008054905090565b8060008190555050565b6000819050919050565b61009b81610088565b82525050565b60006020820190506100b66000830184610092565b92915050565b600080fd5b6100ca81610088565b81146100d557600080fd5b50565b6000813590506100e7816100c1565b92915050565b600060208284031215610103576101026100bc565b5b6000610111848285016100d8565b9150509291505056fea2646970667358221220322c78243e61b783558509c9cc22cb8493dde6925aa5e89a08cdf6e22f279ef164736f6c63430008120033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0xED JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B DUP2 PUSH2 0x88 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCA DUP2 PUSH2 0x88 JUMP JUMPDEST DUP2 EQ PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE7 DUP2 PUSH2 0xC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x103 JUMPI PUSH2 0x102 PUSH2 0xBC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x111 DUP5 DUP3 DUP6 ADD PUSH2 0xD8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0x2C PUSH25 0x243E61B783558509C9CC22CB8493DDE6925AA5E89A08CDF6E2 0x2F 0x27 SWAP15 CALL PUSH5 0x736F6C6343 STOP ADDMOD SLT STOP CALLER ",
"sourceMap": "199:356:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;474:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;329:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;474:79;515:7;540:6;;533:13;;474:79;:::o;329:64::-;383:3;374:6;:12;;;;329:64;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "67200",
"executionCost": "117",
"totalCost": "67317"
},
"external": {
"retrieve()": "2415",
"store(uint256)": "22520"
}
},
"methodIdentifiers": {
"retrieve()": "2e64cec1",
"store(uint256)": "6057361d"
}
},
"abi": [
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "num",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.18+commit.87f61d96"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "retrieve",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "num",
"type": "uint256"
}
],
"name": "store",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"custom:dev-run-script": "./scripts/deploy_with_ethers.ts",
"details": "Store & retrieve value in a variable",
"kind": "dev",
"methods": {
"retrieve()": {
"details": "Return value ",
"returns": {
"_0": "value of 'number'"
}
},
"store(uint256)": {
"details": "Store value in variable",
"params": {
"num": "value to store"
}
}
},
"title": "Storage",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/1_Storage.sol": "Storage"
},
"evmVersion": "paris",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/1_Storage.sol": {
"keccak256": "0xa3de51030e5784d1fc25677298a0bd61bf7eac541ca2fc94232f1b7dc5a89e21",
"license": "GPL-3.0",
"urls": [
"bzz-raw://aac95d61b7ce356e2da8d93eb66abfabbeadebb4f44d3d78fd14414e7ac918ba",
"dweb:/ipfs/QmZ6otiNvDfrWzEiQJBAdWUurwEvsemrbBZgD9hj6qSki1"
]
}
},
"version": 1
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract SimpleCoin {
mapping (address => uint256) public coinBalance;
event Transfer(address indexed from, address indexed to, uint256 value);
constructor(uint256 _initialSupply) {
coinBalance[msg.sender] = _initialSupply;
}
function transfer (address _to, uint256 _amount) public {
// Checks that the sender has the amount of coins
require(coinBalance[msg.sender] >= _amount);
// Checks that an arithmetic overflow hasn't been produced on the recipient's balance during the transfer operation.
// (this can happen if the balance, because of the amount received from the sender, becomes bigger than uint256)
require(coinBalance[_to] + _amount >= coinBalance[_to]);
coinBalance[msg.sender] -= _amount;
coinBalance[_to] += _amount;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract SimpleCrowdsale {
uint256 public startTime;
uint256 public endTime;
uint256 public weiTokenPrice;
uint256 public weiInvestmentObjective;
mapping (address => uint256) public investmentAmountOf;
uint256 public investmentReceived;
uint256 public investmentRefunded;
bool public isFinalized;
bool public isRefundingAllowed;
}
This file has been truncated, but you can view the full file.
{
"id": "70279c6b7ebb8e85da121526399b0dbd",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.18",
"solcLongVersion": "0.8.18+commit.87f61d96",
"input": {
"language": "Solidity",
"sources": {
"contracts/3_Ballot.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity >=0.7.0 <0.9.0;\n\n/** \n * @title Ballot\n * @dev Implements voting process along with vote delegation\n */\ncontract Ballot {\n\n struct Voter {\n uint weight; // weight is accumulated by delegation\n bool voted; // if true, that person already voted\n address delegate; // person delegated to\n uint vote; // index of the voted proposal\n }\n\n struct Proposal {\n // If you can limit the length to a certain number of bytes, \n // always use one of bytes1 to bytes32 because they are much cheaper\n bytes32 name; // short name (up to 32 bytes)\n uint voteCount; // number of accumulated votes\n }\n\n address public chairperson;\n\n mapping(address => Voter) public voters;\n\n Proposal[] public proposals;\n\n /** \n * @dev Create a new ballot to choose one of 'proposalNames'.\n * @param proposalNames names of proposals\n */\n constructor(bytes32[] memory proposalNames) {\n chairperson = msg.sender;\n voters[chairperson].weight = 1;\n\n for (uint i = 0; i < proposalNames.length; i++) {\n // 'Proposal({...})' creates a temporary\n // Proposal object and 'proposals.push(...)'\n // appends it to the end of 'proposals'.\n proposals.push(Proposal({\n name: proposalNames[i],\n voteCount: 0\n }));\n }\n }\n\n /** \n * @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.\n * @param voter address of voter\n */\n function giveRightToVote(address voter) public {\n require(\n msg.sender == chairperson,\n \"Only chairperson can give right to vote.\"\n );\n require(\n !voters[voter].voted,\n \"The voter already voted.\"\n );\n require(voters[voter].weight == 0);\n voters[voter].weight = 1;\n }\n\n /**\n * @dev Delegate your vote to the voter 'to'.\n * @param to address to which vote is delegated\n */\n function delegate(address to) public {\n Voter storage sender = voters[msg.sender];\n require(!sender.voted, \"You already voted.\");\n require(to != msg.sender, \"Self-delegation is disallowed.\");\n\n while (voters[to].delegate != address(0)) {\n to = voters[to].delegate;\n\n // We found a loop in the delegation, not allowed.\n require(to != msg.sender, \"Found loop in delegation.\");\n }\n sender.voted = true;\n sender.delegate = to;\n Voter storage delegate_ = voters[to];\n if (delegate_.voted) {\n // If the delegate already voted,\n // directly add to the number of votes\n proposals[delegate_.vote].voteCount += sender.weight;\n } else {\n // If the delegate did not vote yet,\n // add to her weight.\n delegate_.weight += sender.weight;\n }\n }\n\n /**\n * @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.\n * @param proposal index of proposal in the proposals array\n */\n function vote(uint proposal) public {\n Voter storage sender = voters[msg.sender];\n require(sender.weight != 0, \"Has no right to vote\");\n require(!sender.voted, \"Already voted.\");\n sender.voted = true;\n sender.vote = proposal;\n\n // If 'proposal' is out of the range of the array,\n // this will throw automatically and revert all\n // changes.\n proposals[proposal].voteCount += sender.weight;\n }\n\n /** \n * @dev Computes the winning proposal taking all previous votes into account.\n * @return winningProposal_ index of winning proposal in the proposals array\n */\n function winningProposal() public view\n returns (uint winningProposal_)\n {\n uint winningVoteCount = 0;\n for (uint p = 0; p < proposals.length; p++) {\n if (proposals[p].voteCount > winningVoteCount) {\n winningVoteCount = proposals[p].voteCount;\n winningProposal_ = p;\n }\n }\n }\n\n /** \n * @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then\n * @return winnerName_ the name of the winner\n */\n function winnerName() public view\n returns (bytes32 winnerName_)\n {\n winnerName_ = proposals[winningProposal()].name;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/3_Ballot.sol": {
"Ballot": {
"abi": [
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "proposalNames",
"type": "bytes32[]"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "chairperson",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
}
],
"name": "delegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "voter",
"type": "address"
}
],
"name": "giveRightToVote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "bytes32",
"name": "name",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "voteCount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposal",
"type": "uint256"
}
],
"name": "vote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "voters",
"outputs": [
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
},
{
"internalType": "bool",
"name": "voted",
"type": "bool"
},
{
"internalType": "address",
"name": "delegate",
"type": "address"
},
{
"internalType": "uint256",
"name": "vote",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winnerName",
"outputs": [
{
"internalType": "bytes32",
"name": "winnerName_",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "winningProposal",
"outputs": [
{
"internalType": "uint256",
"name": "winningProposal_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"details": "Implements voting process along with vote delegation",
"kind": "dev",
"methods": {
"constructor": {
"details": "Create a new ballot to choose one of 'proposalNames'.",
"params": {
"proposalNames": "names of proposals"
}
},
"delegate(address)": {
"details": "Delegate your vote to the voter 'to'.",
"params": {
"to": "address to which vote is delegated"
}
},
"giveRightToVote(address)": {
"details": "Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.",
"params": {
"voter": "address of voter"
}
},
"vote(uint256)": {
"details": "Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.",
"params": {
"proposal": "index of proposal in the proposals array"
}
},
"winnerName()": {
"details": "Calls winningProposal() function to get the index of the winner contained in the proposals array and then",
"returns": {
"winnerName_": "the name of the winner"
}
},
"winningProposal()": {
"details": "Computes the winning proposal taking all previous votes into account.",
"returns": {
"winningProposal_": "index of winning proposal in the proposals array"
}
}
},
"title": "Ballot",
"version": 1
},
"evm": {
"assembly": " /* \"contracts/3_Ballot.sol\":157:4512 contract Ballot {... */\n mstore(0x40, 0x80)\n /* \"contracts/3_Ballot.sol\":955:1436 constructor(bytes32[] memory proposalNames) {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"contracts/3_Ballot.sol\":1023:1033 msg.sender */\n caller\n /* \"contracts/3_Ballot.sol\":1009:1020 chairperson */\n 0x00\n dup1\n /* \"contracts/3_Ballot.sol\":1009:1033 chairperson = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/3_Ballot.sol\":1072:1073 1 */\n 0x01\n /* \"contracts/3_Ballot.sol\":1043:1049 voters */\n dup1\n /* \"contracts/3_Ballot.sol\":1043:1062 voters[chairperson] */\n 0x00\n /* \"contracts/3_Ballot.sol\":1050:1061 chairperson */\n dup1\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/3_Ballot.sol\":1043:1062 voters[chairperson] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"contracts/3_Ballot.sol\":1043:1069 voters[chairperson].weight */\n 0x00\n add\n /* \"contracts/3_Ballot.sol\":1043:1073 voters[chairperson].weight = 1 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/3_Ballot.sol\":1089:1095 uint i */\n 0x00\n /* \"contracts/3_Ballot.sol\":1084:1430 for (uint i = 0; i < proposalNames.length; i++) {... */\ntag_6:\n /* \"contracts/3_Ballot.sol\":1105:1118 proposalNames */\n dup2\n /* \"contracts/3_Ballot.sol\":1105:1125 proposalNames.length */\n mload\n /* \"contracts/3_Ballot.sol\":1101:1102 i */\n dup2\n /* \"contracts/3_Ballot.sol\":1101:1125 i < proposalNames.length */\n lt\n /* \"contracts/3_Ballot.sol\":1084:1430 for (uint i = 0; i < proposalNames.length; i++) {... */\n iszero\n tag_7\n jumpi\n /* \"contracts/3_Ballot.sol\":1309:1318 proposals */\n 0x02\n /* \"contracts/3_Ballot.sol\":1324:1418 Proposal({... */\n mload(0x40)\n dup1\n 0x40\n add\n 0x40\n mstore\n dup1\n /* \"contracts/3_Ballot.sol\":1357:1370 proposalNames */\n dup5\n /* \"contracts/3_Ballot.sol\":1371:1372 i */\n dup5\n /* \"contracts/3_Ballot.sol\":1357:1373 proposalNames[i] */\n dup2\n mload\n dup2\n lt\n tag_9\n jumpi\n tag_10\n tag_11\n jump\t// in\ntag_10:\ntag_9:\n 0x20\n mul\n 0x20\n add\n add\n mload\n /* \"contracts/3_Ballot.sol\":1324:1418 Proposal({... */\n dup2\n mstore\n 0x20\n add\n /* \"contracts/3_Ballot.sol\":1402:1403 0 */\n 0x00\n /* \"contracts/3_Ballot.sol\":1324:1418 Proposal({... */\n dup2\n mstore\n pop\n /* \"contracts/3_Ballot.sol\":1309:1419 proposals.push(Proposal({... */\n swap1\n dup1\n 0x01\n dup2\n sload\n add\n dup1\n dup3\n sstore\n dup1\n swap2\n pop\n pop\n 0x01\n swap1\n sub\n swap1\n 0x00\n mstore\n keccak256(0x00, 0x20)\n swap1\n 0x02\n mul\n add\n 0x00\n swap1\n swap2\n swap1\n swap2\n swap1\n swap2\n pop\n 0x00\n dup3\n add\n mload\n dup2\n 0x00\n add\n sstore\n 0x20\n dup3\n add\n mload\n dup2\n 0x01\n add\n sstore\n pop\n pop\n /* \"contracts/3_Ballot.sol\":1127:1130 i++ */\n dup1\n dup1\n tag_13\n swap1\n tag_14\n jump\t// in\ntag_13:\n swap2\n pop\n pop\n /* \"contracts/3_Ballot.sol\":1084:1430 for (uint i = 0; i < proposalNames.length; i++) {... */\n jump(tag_6)\ntag_7:\n pop\n /* \"contracts/3_Ballot.sol\":955:1436 constructor(bytes32[] memory proposalNames) {... */\n pop\n /* \"contracts/3_Ballot.sol\":157:4512 contract Ballot {... */\n jump(tag_15)\n /* \"#utility.yul\":7:82 */\ntag_16:\n /* \"#utility.yul\":40:46 */\n 0x00\n /* \"#utility.yul\":73:75 */\n 0x40\n /* \"#utility.yul\":67:76 */\n mload\n /* \"#utility.yul\":57:76 */\n swap1\n pop\n /* \"#utility.yul\":7:82 */\n swap1\n jump\t// out\n /* \"#utility.yul\":88:205 */\ntag_17:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":211:328 */\ntag_18:\n /* \"#utility.yul\":320:321 */\n 0x00\n /* \"#utility.yul\":317:318 */\n dup1\n /* \"#utility.yul\":310:322 */\n revert\n /* \"#utility.yul\":334:451 */\ntag_19:\n /* \"#utility.yul\":443:444 */\n 0x00\n /* \"#utility.yul\":440:441 */\n dup1\n /* \"#utility.yul\":433:445 */\n revert\n /* \"#utility.yul\":457:559 */\ntag_20:\n /* \"#utility.yul\":498:504 */\n 0x00\n /* \"#utility.yul\":549:551 */\n 0x1f\n /* \"#utility.yul\":545:552 */\n not\n /* \"#utility.yul\":540:542 */\n 0x1f\n /* \"#utility.yul\":533:538 */\n dup4\n /* \"#utility.yul\":529:543 */\n add\n /* \"#utility.yul\":525:553 */\n and\n /* \"#utility.yul\":515:553 */\n swap1\n pop\n /* \"#utility.yul\":457:559 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":565:745 */\ntag_21:\n /* \"#utility.yul\":613:690 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":610:611 */\n 0x00\n /* \"#utility.yul\":603:691 */\n mstore\n /* \"#utility.yul\":710:714 */\n 0x41\n /* \"#utility.yul\":707:708 */\n 0x04\n /* \"#utility.yul\":700:715 */\n mstore\n /* \"#utility.yul\":734:738 */\n 0x24\n /* \"#utility.yul\":731:732 */\n 0x00\n /* \"#utility.yul\":724:739 */\n revert\n /* \"#utility.yul\":751:1032 */\ntag_22:\n /* \"#utility.yul\":834:861 */\n tag_41\n /* \"#utility.yul\":856:860 */\n dup3\n /* \"#utility.yul\":834:861 */\n tag_20\n jump\t// in\ntag_41:\n /* \"#utility.yul\":826:832 */\n dup2\n /* \"#utility.yul\":822:862 */\n add\n /* \"#utility.yul\":964:970 */\n dup2\n /* \"#utility.yul\":952:962 */\n dup2\n /* \"#utility.yul\":949:971 */\n lt\n /* \"#utility.yul\":928:946 */\n 0xffffffffffffffff\n /* \"#utility.yul\":916:926 */\n dup3\n /* \"#utility.yul\":913:947 */\n gt\n /* \"#utility.yul\":910:972 */\n or\n /* \"#utility.yul\":907:995 */\n iszero\n tag_42\n jumpi\n /* \"#utility.yul\":975:993 */\n tag_43\n tag_21\n jump\t// in\ntag_43:\n /* \"#utility.yul\":907:995 */\ntag_42:\n /* \"#utility.yul\":1015:1025 */\n dup1\n /* \"#utility.yul\":1011:1013 */\n 0x40\n /* \"#utility.yul\":1004:1026 */\n mstore\n /* \"#utility.yul\":794:1032 */\n pop\n /* \"#utility.yul\":751:1032 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1038:1167 */\ntag_23:\n /* \"#utility.yul\":1072:1078 */\n 0x00\n /* \"#utility.yul\":1099:1119 */\n tag_45\n tag_16\n jump\t// in\ntag_45:\n /* \"#utility.yul\":1089:1119 */\n swap1\n pop\n /* \"#utility.yul\":1128:1161 */\n tag_46\n /* \"#utility.yul\":1156:1160 */\n dup3\n /* \"#utility.yul\":1148:1154 */\n dup3\n /* \"#utility.yul\":1128:1161 */\n tag_22\n jump\t// in\ntag_46:\n /* \"#utility.yul\":1038:1167 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1173:1484 */\ntag_24:\n /* \"#utility.yul\":1250:1254 */\n 0x00\n /* \"#utility.yul\":1340:1358 */\n 0xffffffffffffffff\n /* \"#utility.yul\":1332:1338 */\n dup3\n /* \"#utility.yul\":1329:1359 */\n gt\n /* \"#utility.yul\":1326:1382 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":1362:1380 */\n tag_49\n tag_21\n jump\t// in\ntag_49:\n /* \"#utility.yul\":1326:1382 */\ntag_48:\n /* \"#utility.yul\":1412:1416 */\n 0x20\n /* \"#utility.yul\":1404:1410 */\n dup3\n /* \"#utility.yul\":1400:1417 */\n mul\n /* \"#utility.yul\":1392:1417 */\n swap1\n pop\n /* \"#utility.yul\":1472:1476 */\n 0x20\n /* \"#utility.yul\":1466:1470 */\n dup2\n /* \"#utility.yul\":1462:1477 */\n add\n /* \"#utility.yul\":1454:1477 */\n swap1\n pop\n /* \"#utility.yul\":1173:1484 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1490:1607 */\ntag_25:\n /* \"#utility.yul\":1599:1600 */\n 0x00\n /* \"#utility.yul\":1596:1597 */\n dup1\n /* \"#utility.yul\":1589:1601 */\n revert\n /* \"#utility.yul\":1613:1690 */\ntag_26:\n /* \"#utility.yul\":1650:1657 */\n 0x00\n /* \"#utility.yul\":1679:1684 */\n dup2\n /* \"#utility.yul\":1668:1684 */\n swap1\n pop\n /* \"#utility.yul\":1613:1690 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1696:1818 */\ntag_27:\n /* \"#utility.yul\":1769:1793 */\n tag_53\n /* \"#utility.yul\":1787:1792 */\n dup2\n /* \"#utility.yul\":1769:1793 */\n tag_26\n jump\t// in\ntag_53:\n /* \"#utility.yul\":1762:1767 */\n dup2\n /* \"#utility.yul\":1759:1794 */\n eq\n /* \"#utility.yul\":1749:1812 */\n tag_54\n jumpi\n /* \"#utility.yul\":1808:1809 */\n 0x00\n /* \"#utility.yul\":1805:1806 */\n dup1\n /* \"#utility.yul\":1798:1810 */\n revert\n /* \"#utility.yul\":1749:1812 */\ntag_54:\n /* \"#utility.yul\":1696:1818 */\n pop\n jump\t// out\n /* \"#utility.yul\":1824:1967 */\ntag_28:\n /* \"#utility.yul\":1881:1886 */\n 0x00\n /* \"#utility.yul\":1912:1918 */\n dup2\n /* \"#utility.yul\":1906:1919 */\n mload\n /* \"#utility.yul\":1897:1919 */\n swap1\n pop\n /* \"#utility.yul\":1928:1961 */\n tag_56\n /* \"#utility.yul\":1955:1960 */\n dup2\n /* \"#utility.yul\":1928:1961 */\n tag_27\n jump\t// in\ntag_56:\n /* \"#utility.yul\":1824:1967 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1990:2722 */\ntag_29:\n /* \"#utility.yul\":2097:2102 */\n 0x00\n /* \"#utility.yul\":2122:2203 */\n tag_58\n /* \"#utility.yul\":2138:2202 */\n tag_59\n /* \"#utility.yul\":2195:2201 */\n dup5\n /* \"#utility.yul\":2138:2202 */\n tag_24\n jump\t// in\ntag_59:\n /* \"#utility.yul\":2122:2203 */\n tag_23\n jump\t// in\ntag_58:\n /* \"#utility.yul\":2113:2203 */\n swap1\n pop\n /* \"#utility.yul\":2223:2228 */\n dup1\n /* \"#utility.yul\":2252:2258 */\n dup4\n /* \"#utility.yul\":2245:2250 */\n dup3\n /* \"#utility.yul\":2238:2259 */\n mstore\n /* \"#utility.yul\":2286:2290 */\n 0x20\n /* \"#utility.yul\":2279:2284 */\n dup3\n /* \"#utility.yul\":2275:2291 */\n add\n /* \"#utility.yul\":2268:2291 */\n swap1\n pop\n /* \"#utility.yul\":2339:2343 */\n 0x20\n /* \"#utility.yul\":2331:2337 */\n dup5\n /* \"#utility.yul\":2327:2344 */\n mul\n /* \"#utility.yul\":2319:2325 */\n dup4\n /* \"#utility.yul\":2315:2345 */\n add\n /* \"#utility.yul\":2368:2371 */\n dup6\n /* \"#utility.yul\":2360:2366 */\n dup2\n /* \"#utility.yul\":2357:2372 */\n gt\n /* \"#utility.yul\":2354:2476 */\n iszero\n tag_60\n jumpi\n /* \"#utility.yul\":2387:2466 */\n tag_61\n tag_25\n jump\t// in\ntag_61:\n /* \"#utility.yul\":2354:2476 */\ntag_60:\n /* \"#utility.yul\":2502:2508 */\n dup4\n /* \"#utility.yul\":2485:2716 */\ntag_62:\n /* \"#utility.yul\":2519:2525 */\n dup2\n /* \"#utility.yul\":2514:2517 */\n dup2\n /* \"#utility.yul\":2511:2526 */\n lt\n /* \"#utility.yul\":2485:2716 */\n iszero\n tag_64\n jumpi\n /* \"#utility.yul\":2594:2597 */\n dup1\n /* \"#utility.yul\":2623:2671 */\n tag_65\n /* \"#utility.yul\":2667:2670 */\n dup9\n /* \"#utility.yul\":2655:2665 */\n dup3\n /* \"#utility.yul\":2623:2671 */\n tag_28\n jump\t// in\ntag_65:\n /* \"#utility.yul\":2618:2621 */\n dup5\n /* \"#utility.yul\":2611:2672 */\n mstore\n /* \"#utility.yul\":2701:2705 */\n 0x20\n /* \"#utility.yul\":2696:2699 */\n dup5\n /* \"#utility.yul\":2692:2706 */\n add\n /* \"#utility.yul\":2685:2706 */\n swap4\n pop\n /* \"#utility.yul\":2561:2716 */\n pop\n /* \"#utility.yul\":2545:2549 */\n 0x20\n /* \"#utility.yul\":2540:2543 */\n dup2\n /* \"#utility.yul\":2536:2550 */\n add\n /* \"#utility.yul\":2529:2550 */\n swap1\n pop\n /* \"#utility.yul\":2485:2716 */\n jump(tag_62)\ntag_64:\n /* \"#utility.yul\":2489:2510 */\n pop\n /* \"#utility.yul\":2103:2722 */\n pop\n pop\n /* \"#utility.yul\":1990:2722 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2745:3130 */\ntag_30:\n /* \"#utility.yul\":2827:2832 */\n 0x00\n /* \"#utility.yul\":2876:2879 */\n dup3\n /* \"#utility.yul\":2869:2873 */\n 0x1f\n /* \"#utility.yul\":2861:2867 */\n dup4\n /* \"#utility.yul\":2857:2874 */\n add\n /* \"#utility.yul\":2853:2880 */\n slt\n /* \"#utility.yul\":2843:2965 */\n tag_67\n jumpi\n /* \"#utility.yul\":2884:2963 */\n tag_68\n tag_19\n jump\t// in\ntag_68:\n /* \"#utility.yul\":2843:2965 */\ntag_67:\n /* \"#utility.yul\":2994:3000 */\n dup2\n /* \"#utility.yul\":2988:3001 */\n mload\n /* \"#utility.yul\":3019:3124 */\n tag_69\n /* \"#utility.yul\":3120:3123 */\n dup5\n /* \"#utility.yul\":3112:3118 */\n dup3\n /* \"#utility.yul\":3105:3109 */\n 0x20\n /* \"#utility.yul\":3097:3103 */\n dup7\n /* \"#utility.yul\":3093:3110 */\n add\n /* \"#utility.yul\":3019:3124 */\n tag_29\n jump\t// in\ntag_69:\n /* \"#utility.yul\":3010:3124 */\n swap2\n pop\n /* \"#utility.yul\":2833:3130 */\n pop\n /* \"#utility.yul\":2745:3130 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3136:3690 */\ntag_3:\n /* \"#utility.yul\":3231:3237 */\n 0x00\n /* \"#utility.yul\":3280:3282 */\n 0x20\n /* \"#utility.yul\":3268:3277 */\n dup3\n /* \"#utility.yul\":3259:3266 */\n dup5\n /* \"#utility.yul\":3255:3278 */\n sub\n /* \"#utility.yul\":3251:3283 */\n slt\n /* \"#utility.yul\":3248:3367 */\n iszero\n tag_71\n jumpi\n /* \"#utility.yul\":3286:3365 */\n tag_72\n tag_17\n jump\t// in\ntag_72:\n /* \"#utility.yul\":3248:3367 */\ntag_71:\n /* \"#utility.yul\":3427:3428 */\n 0x00\n /* \"#utility.yul\":3416:3425 */\n dup3\n /* \"#utility.yul\":3412:3429 */\n add\n /* \"#utility.yul\":3406:3430 */\n mload\n /* \"#utility.yul\":3457:3475 */\n 0xffffffffffffffff\n /* \"#utility.yul\":3449:3455 */\n dup2\n /* \"#utility.yul\":3446:3476 */\n gt\n /* \"#utility.yul\":3443:3560 */\n iszero\n tag_73\n jumpi\n /* \"#utility.yul\":3479:3558 */\n tag_74\n tag_18\n jump\t// in\ntag_74:\n /* \"#utility.yul\":3443:3560 */\ntag_73:\n /* \"#utility.yul\":3584:3673 */\n tag_75\n /* \"#utility.yul\":3665:3672 */\n dup5\n /* \"#utility.yul\":3656:3662 */\n dup3\n /* \"#utility.yul\":3645:3654 */\n dup6\n /* \"#utility.yul\":3641:3663 */\n add\n /* \"#utility.yul\":3584:3673 */\n tag_30\n jump\t// in\ntag_75:\n /* \"#utility.yul\":3574:3673 */\n swap2\n pop\n /* \"#utility.yul\":3377:3683 */\n pop\n /* \"#utility.yul\":3136:3690 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3696:3876 */\ntag_11:\n /* \"#utility.yul\":3744:3821 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3741:3742 */\n 0x00\n /* \"#utility.yul\":3734:3822 */\n mstore\n /* \"#utility.yul\":3841:3845 */\n 0x32\n /* \"#utility.yul\":3838:3839 */\n 0x04\n /* \"#utility.yul\":3831:3846 */\n mstore\n /* \"#utility.yul\":3865:3869 */\n 0x24\n /* \"#utility.yul\":3862:3863 */\n 0x00\n /* \"#utility.yul\":3855:3870 */\n revert\n /* \"#utility.yul\":3882:4062 */\ntag_31:\n /* \"#utility.yul\":3930:4007 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":3927:3928 */\n 0x00\n /* \"#utility.yul\":3920:4008 */\n mstore\n /* \"#utility.yul\":4027:4031 */\n 0x11\n /* \"#utility.yul\":4024:4025 */\n 0x04\n /* \"#utility.yul\":4017:4032 */\n mstore\n /* \"#utility.yul\":4051:4055 */\n 0x24\n /* \"#utility.yul\":4048:4049 */\n 0x00\n /* \"#utility.yul\":4041:4056 */\n revert\n /* \"#utility.yul\":4068:4145 */\ntag_32:\n /* \"#utility.yul\":4105:4112 */\n 0x00\n /* \"#utility.yul\":4134:4139 */\n dup2\n /* \"#utility.yul\":4123:4139 */\n swap1\n pop\n /* \"#utility.yul\":4068:4145 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4151:4384 */\ntag_14:\n /* \"#utility.yul\":4190:4193 */\n 0x00\n /* \"#utility.yul\":4213:4237 */\n tag_80\n /* \"#utility.yul\":4231:4236 */\n dup3\n /* \"#utility.yul\":4213:4237 */\n tag_32\n jump\t// in\ntag_80:\n /* \"#utility.yul\":4204:4237 */\n swap2\n pop\n /* \"#utility.yul\":4259:4325 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":4252:4257 */\n dup3\n /* \"#utility.yul\":4249:4326 */\n sub\n /* \"#utility.yul\":4246:4349 */\n tag_81\n jumpi\n /* \"#utility.yul\":4329:4347 */\n tag_82\n tag_31\n jump\t// in\ntag_82:\n /* \"#utility.yul\":4246:4349 */\ntag_81:\n /* \"#utility.yul\":4376:4377 */\n 0x01\n /* \"#utility.yul\":4369:4374 */\n dup3\n /* \"#utility.yul\":4365:4378 */\n add\n /* \"#utility.yul\":4358:4378 */\n swap1\n pop\n /* \"#utility.yul\":4151:4384 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/3_Ballot.sol\":157:4512 contract Ballot {... */\ntag_15:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/3_Ballot.sol\":157:4512 contract Ballot {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x609ff1bd\n gt\n tag_11\n jumpi\n dup1\n 0x609ff1bd\n eq\n tag_7\n jumpi\n dup1\n 0x9e7b8d61\n eq\n tag_8\n jumpi\n dup1\n 0xa3ec138d\n eq\n tag_9\n jumpi\n dup1\n 0xe2ba53f0\n eq\n tag_10\n jumpi\n jump(tag_2)\n tag_11:\n dup1\n 0x0121b93f\n eq\n tag_3\n jumpi\n dup1\n 0x013cf08b\n eq\n tag_4\n jumpi\n dup1\n 0x2e4176cf\n eq\n tag_5\n jumpi\n dup1\n 0x5c19a95c\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/3_Ballot.sol\":3166:3624 function vote(uint proposal) public {... */\n tag_3:\n tag_12\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n tag_15\n jump\t// in\n tag_12:\n stop\n /* \"contracts/3_Ballot.sol\":791:818 Proposal[] public proposals */\n tag_4:\n tag_16\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_17\n swap2\n swap1\n tag_14\n jump\t// in\n tag_17:\n tag_18\n jump\t// in\n tag_16:\n mload(0x40)\n tag_19\n swap3\n swap2\n swap1\n tag_20\n jump\t// in\n tag_19:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Ballot.sol\":712:738 address public chairperson */\n tag_5:\n tag_21\n tag_22\n jump\t// in\n tag_21:\n mload(0x40)\n tag_23\n swap2\n swap1\n tag_24\n jump\t// in\n tag_23:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Ballot.sol\":2071:2978 function delegate(address to) public {... */\n tag_6:\n tag_25\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_26\n swap2\n swap1\n tag_27\n jump\t// in\n tag_26:\n tag_28\n jump\t// in\n tag_25:\n stop\n /* \"contracts/3_Ballot.sol\":3810:4175 function winningProposal() public view... */\n tag_7:\n tag_29\n tag_30\n jump\t// in\n tag_29:\n mload(0x40)\n tag_31\n swap2\n swap1\n tag_32\n jump\t// in\n tag_31:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Ballot.sol\":1592:1947 function giveRightToVote(address voter) public {... */\n tag_8:\n tag_33\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_34\n swap2\n swap1\n tag_27\n jump\t// in\n tag_34:\n tag_35\n jump\t// in\n tag_33:\n stop\n /* \"contracts/3_Ballot.sol\":745:784 mapping(address => Voter) public voters */\n tag_9:\n tag_36\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_37\n swap2\n swap1\n tag_27\n jump\t// in\n tag_37:\n tag_38\n jump\t// in\n tag_36:\n mload(0x40)\n tag_39\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_40\n jump\t// in\n tag_39:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Ballot.sol\":4366:4510 function winnerName() public view... */\n tag_10:\n tag_41\n tag_42\n jump\t// in\n tag_41:\n mload(0x40)\n tag_43\n swap2\n swap1\n tag_44\n jump\t// in\n tag_43:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/3_Ballot.sol\":3166:3624 function vote(uint proposal) public {... */\n tag_15:\n /* \"contracts/3_Ballot.sol\":3212:3232 Voter storage sender */\n 0x00\n /* \"contracts/3_Ballot.sol\":3235:3241 voters */\n 0x01\n /* \"contracts/3_Ballot.sol\":3235:3253 voters[msg.sender] */\n
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment