Skip to content

Instantly share code, notes, and snippets.

@jshuadvd
Created March 28, 2021 00:22
Show Gist options
  • Save jshuadvd/286ecb87c9b7b0d11ca9f8944d0104e6 to your computer and use it in GitHub Desktop.
Save jshuadvd/286ecb87c9b7b0d11ca9f8944d0104e6 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.6.12+commit.27d51765.js&optimize=false&runs=200&gist=
pragma solidity >=0.4.22 <0.7.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
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;
}
}
pragma solidity >=0.4.22 <0.7.0;
/**
* @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() public {
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;
}
}
pragma solidity >=0.4.22 <0.7.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) public {
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;
}
}
pragma solidity ^0.5.0;
contract AdvancedStorage {
uint[] public ids;
function add(uint id) public {
ids.push(id);
}
function get(uint position) view public returns(uint) {
return ids[position];
}
function getAll() view public returns(uint[] memory) {
return ids;
}
function length() view public returns(uint) {
return ids.length;
}
}
{
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610294806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80631003e2d21461005c5780631f7b6d321461008a57806353ed5143146100a85780639507d39a14610107578063fac333ac14610149575b600080fd5b6100886004803603602081101561007257600080fd5b810190808035906020019092919050505061018b565b005b6100926101ba565b6040518082815260200191505060405180910390f35b6100b06101c6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156100f35780820151818401526020810190506100d8565b505050509050019250505060405180910390f35b6101336004803603602081101561011d57600080fd5b810190808035906020019092919050505061021e565b6040518082815260200191505060405180910390f35b6101756004803603602081101561015f57600080fd5b810190808035906020019092919050505061023e565b6040518082815260200191505060405180910390f35b600081908060018154018082558091505090600182039060005260206000200160009091929091909150555050565b60008080549050905090565b6060600080548060200260200160405190810160405280929190818152602001828054801561021457602002820191906000526020600020905b815481526020019060010190808311610200575b5050505050905090565b600080828154811061022c57fe5b90600052602060002001549050919050565b6000818154811061024b57fe5b90600052602060002001600091509050548156fea265627a7a72315820ed7df8415ae9ee0fab7aed52094ee51a4e2928c3d12b28283183226f0a9f79a764736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 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 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1003E2D2 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x1F7B6D32 EQ PUSH2 0x8A JUMPI DUP1 PUSH4 0x53ED5143 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x9507D39A EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0xFAC333AC EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x88 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x18B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x92 PUSH2 0x1BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB0 PUSH2 0x1C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD8 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x175 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SWAP1 PUSH1 0x1 DUP3 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x200 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x22C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x24B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xED PUSH30 0xF8415AE9EE0FAB7AED52094EE51A4E2928C3D12B28283183226F0A9F79A7 PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:393:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:393:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100575760003560e01c80631003e2d21461005c5780631f7b6d321461008a57806353ed5143146100a85780639507d39a14610107578063fac333ac14610149575b600080fd5b6100886004803603602081101561007257600080fd5b810190808035906020019092919050505061018b565b005b6100926101ba565b6040518082815260200191505060405180910390f35b6100b06101c6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156100f35780820151818401526020810190506100d8565b505050509050019250505060405180910390f35b6101336004803603602081101561011d57600080fd5b810190808035906020019092919050505061021e565b6040518082815260200191505060405180910390f35b6101756004803603602081101561015f57600080fd5b810190808035906020019092919050505061023e565b6040518082815260200191505060405180910390f35b600081908060018154018082558091505090600182039060005260206000200160009091929091909150555050565b60008080549050905090565b6060600080548060200260200160405190810160405280929190818152602001828054801561021457602002820191906000526020600020905b815481526020019060010190808311610200575b5050505050905090565b600080828154811061022c57fe5b90600052602060002001549050919050565b6000818154811061024b57fe5b90600052602060002001600091509050548156fea265627a7a72315820ed7df8415ae9ee0fab7aed52094ee51a4e2928c3d12b28283183226f0a9f79a764736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1003E2D2 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x1F7B6D32 EQ PUSH2 0x8A JUMPI DUP1 PUSH4 0x53ED5143 EQ PUSH2 0xA8 JUMPI DUP1 PUSH4 0x9507D39A EQ PUSH2 0x107 JUMPI DUP1 PUSH4 0xFAC333AC EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x88 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x18B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x92 PUSH2 0x1BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB0 PUSH2 0x1C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xF3 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xD8 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x133 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x11D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x21E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x175 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SWAP1 PUSH1 0x1 DUP3 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x200 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x22C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x24B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xED PUSH30 0xF8415AE9EE0FAB7AED52094EE51A4E2928C3D12B28283183226F0A9F79A7 PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:393:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:393:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;79:58;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;79:58:0;;;;;;;;;;;;;;;;;:::i;:::-;;338:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;248:80;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;248:80:0;;;;;;;;;;;;;;;;;147:91;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;147:91:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;56:17;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;56:17:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;79:58;118:3;127:2;118:12;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;118:12:0;;;;;;;;;;;;;;;;;;;;;;79:58;:::o;338:78::-;376:4;399:3;:10;;;;392:17;;338:78;:::o;248:80::-;286:13;318:3;311:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;248:80;:::o;147:91::-;195:4;218:3;222:8;218:13;;;;;;;;;;;;;;;;211:20;;147:91;;;:::o;56:17::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "132000",
"executionCost": "177",
"totalCost": "132177"
},
"external": {
"add(uint256)": "41137",
"get(uint256)": "2024",
"getAll()": "infinite",
"ids(uint256)": "2046",
"length()": "1021"
}
},
"methodIdentifiers": {
"add(uint256)": "1003e2d2",
"get(uint256)": "9507d39a",
"getAll()": "53ed5143",
"ids(uint256)": "fac333ac",
"length()": "1f7b6d32"
}
},
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "add",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "position",
"type": "uint256"
}
],
"name": "get",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getAll",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "ids",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "length",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "add",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "position",
"type": "uint256"
}
],
"name": "get",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getAll",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "ids",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "length",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/AdvancedStorage.sol": "AdvancedStorage"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/AdvancedStorage.sol": {
"keccak256": "0x6da9170c13e029eb9ee16865ec41999d7fa0ecab20d7e27353289b327a9ff440",
"urls": [
"bzz-raw://3063cc7960b86ab61ddbd3b6c6eb74f032683186e3bdc1615e7b08be6137b1f8",
"dweb:/ipfs/QmWKScQK7SjZDu1pb2Hiv9vAZ2wj1C6cZU5Qi1WdRDbrvV"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60806040526001805534801561001457600080fd5b506108c8806100246000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063365b98b21461006757806361b8ce8c146101155780639d11877014610133578063b6a46b3b14610161578063ed2e5a971461021c578063f745630f146102ca575b600080fd5b6100936004803603602081101561007d57600080fd5b810190808035906020019092919050505061038f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156100d95780820151818401526020810190506100be565b50505050905090810190601f1680156101065780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61011d610458565b6040518082815260200191505060405180910390f35b61015f6004803603602081101561014957600080fd5b810190808035906020019092919050505061045e565b005b61021a6004803603602081101561017757600080fd5b810190808035906020019064010000000081111561019457600080fd5b8201836020820111156101a657600080fd5b803590602001918460018302840111640100000000831117156101c857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506104a5565b005b6102486004803603602081101561023257600080fd5b8101908080359060200190929190505050610528565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561028e578082015181840152602081019050610273565b50505050905090810190601f1680156102bb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61038d600480360360408110156102e057600080fd5b81019080803590602001909291908035906020019064010000000081111561030757600080fd5b82018360208201111561031957600080fd5b8035906020019184600183028401116401000000008311171561033b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061061c565b005b6000818154811061039c57fe5b9060005260206000209060020201600091509050806000015490806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561044e5780601f106104235761010080835404028352916020019161044e565b820191906000526020600020905b81548152906001019060200180831161043157829003601f168201915b5050505050905082565b60015481565b600061046982610661565b90506000818154811061047857fe5b906000526020600020906002020160008082016000905560018201600061049f9190610726565b50505050565b600060405180604001604052806001548152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101908051906020019061050f92919061076e565b5050505060016000815480929190600101919050555050565b60006060600061053784610661565b90506000818154811061054657fe5b9060005260206000209060020201600001546000828154811061056557fe5b9060005260206000209060020201600101808054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561060b5780601f106105e05761010080835404028352916020019161060b565b820191906000526020600020905b8154815290600101906020018083116105ee57829003601f168201915b505050505090509250925050915091565b600061062783610661565b9050816000828154811061063757fe5b9060005260206000209060020201600101908051906020019061065b9291906107ee565b50505050565b600080600090505b6000805490508110156106b257826000828154811061068457fe5b90600052602060002090600202016000015414156106a55780915050610721565b8080600101915050610669565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5573657220646f6573206e6f742065786973742100000000000000000000000081525060200191505060405180910390fd5b919050565b50805460018160011615610100020316600290046000825580601f1061074c575061076b565b601f01602090049060005260206000209081019061076a919061086e565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106107af57805160ff19168380011785556107dd565b828001600101855582156107dd579182015b828111156107dc5782518255916020019190600101906107c1565b5b5090506107ea919061086e565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061082f57805160ff191683800117855561085d565b8280016001018555821561085d579182015b8281111561085c578251825591602001919060010190610841565b5b50905061086a919061086e565b5090565b61089091905b8082111561088c576000816000905550600101610874565b5090565b9056fea265627a7a72315820f976dfa944ab66b7204cb8c94d597bf7ec4bc5792773550bd586dec65cad1c4064736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 DUP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8C8 DUP1 PUSH2 0x24 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 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x365B98B2 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x61B8CE8C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x9D118770 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0xB6A46B3B EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0xED2E5A97 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0xF745630F EQ PUSH2 0x2CA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x93 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x38F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xBE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x106 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11D PUSH2 0x458 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x45E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x4A5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x528 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x28E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x273 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2BB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x38D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x61C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x39C JUMPI INVALID 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 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x44E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x423 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x44E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x431 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x469 DUP3 PUSH2 0x661 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x478 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 PUSH2 0x49F SWAP2 SWAP1 PUSH2 0x726 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SWAP1 PUSH1 0x1 DUP3 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x50F SWAP3 SWAP2 SWAP1 PUSH2 0x76E JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x537 DUP5 PUSH2 0x661 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x546 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x565 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD DUP1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x60B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x5E0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x60B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x5EE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x627 DUP4 PUSH2 0x661 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x637 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x65B SWAP3 SWAP2 SWAP1 PUSH2 0x7EE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x6B2 JUMPI DUP3 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x684 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x6A5 JUMPI DUP1 SWAP2 POP POP PUSH2 0x721 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x669 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5573657220646F6573206E6F7420657869737421000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x74C JUMPI POP PUSH2 0x76B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x76A SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x7AF JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x7DD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x7DD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x7DC JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x7C1 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x7EA SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x82F JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x85D JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x85D JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x85C JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x841 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x86A SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x890 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x88C JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x874 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xF9 PUSH23 0xDFA944AB66B7204CB8C94D597BF7EC4BC5792773550BD5 DUP7 0xDE 0xC6 0x5C 0xAD SHR BLOCKHASH PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:885:0:-;;;158:1;137:22;;25:885;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:885:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100625760003560e01c8063365b98b21461006757806361b8ce8c146101155780639d11877014610133578063b6a46b3b14610161578063ed2e5a971461021c578063f745630f146102ca575b600080fd5b6100936004803603602081101561007d57600080fd5b810190808035906020019092919050505061038f565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156100d95780820151818401526020810190506100be565b50505050905090810190601f1680156101065780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61011d610458565b6040518082815260200191505060405180910390f35b61015f6004803603602081101561014957600080fd5b810190808035906020019092919050505061045e565b005b61021a6004803603602081101561017757600080fd5b810190808035906020019064010000000081111561019457600080fd5b8201836020820111156101a657600080fd5b803590602001918460018302840111640100000000831117156101c857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506104a5565b005b6102486004803603602081101561023257600080fd5b8101908080359060200190929190505050610528565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561028e578082015181840152602081019050610273565b50505050905090810190601f1680156102bb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61038d600480360360408110156102e057600080fd5b81019080803590602001909291908035906020019064010000000081111561030757600080fd5b82018360208201111561031957600080fd5b8035906020019184600183028401116401000000008311171561033b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061061c565b005b6000818154811061039c57fe5b9060005260206000209060020201600091509050806000015490806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561044e5780601f106104235761010080835404028352916020019161044e565b820191906000526020600020905b81548152906001019060200180831161043157829003601f168201915b5050505050905082565b60015481565b600061046982610661565b90506000818154811061047857fe5b906000526020600020906002020160008082016000905560018201600061049f9190610726565b50505050565b600060405180604001604052806001548152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101908051906020019061050f92919061076e565b5050505060016000815480929190600101919050555050565b60006060600061053784610661565b90506000818154811061054657fe5b9060005260206000209060020201600001546000828154811061056557fe5b9060005260206000209060020201600101808054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561060b5780601f106105e05761010080835404028352916020019161060b565b820191906000526020600020905b8154815290600101906020018083116105ee57829003601f168201915b505050505090509250925050915091565b600061062783610661565b9050816000828154811061063757fe5b9060005260206000209060020201600101908051906020019061065b9291906107ee565b50505050565b600080600090505b6000805490508110156106b257826000828154811061068457fe5b90600052602060002090600202016000015414156106a55780915050610721565b8080600101915050610669565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5573657220646f6573206e6f742065786973742100000000000000000000000081525060200191505060405180910390fd5b919050565b50805460018160011615610100020316600290046000825580601f1061074c575061076b565b601f01602090049060005260206000209081019061076a919061086e565b5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106107af57805160ff19168380011785556107dd565b828001600101855582156107dd579182015b828111156107dc5782518255916020019190600101906107c1565b5b5090506107ea919061086e565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061082f57805160ff191683800117855561085d565b8280016001018555821561085d579182015b8281111561085c578251825591602001919060010190610841565b5b50905061086a919061086e565b5090565b61089091905b8082111561088c576000816000905550600101610874565b5090565b9056fea265627a7a72315820f976dfa944ab66b7204cb8c94d597bf7ec4bc5792773550bd586dec65cad1c4064736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x365B98B2 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x61B8CE8C EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x9D118770 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0xB6A46B3B EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0xED2E5A97 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0xF745630F EQ PUSH2 0x2CA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x93 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x38F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xD9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xBE JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x106 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x11D PUSH2 0x458 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x45E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x4A5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x248 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x232 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x528 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x28E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x273 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x2BB JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x38D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x2E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x307 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x319 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x33B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x61C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x39C JUMPI INVALID 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 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x44E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x423 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x44E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x431 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x469 DUP3 PUSH2 0x661 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x478 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 PUSH2 0x49F SWAP2 SWAP1 PUSH2 0x726 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SWAP1 PUSH1 0x1 DUP3 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x50F SWAP3 SWAP2 SWAP1 PUSH2 0x76E JUMP JUMPDEST POP POP POP POP PUSH1 0x1 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x537 DUP5 PUSH2 0x661 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x546 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x565 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD DUP1 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x60B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x5E0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x60B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x5EE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x627 DUP4 PUSH2 0x661 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x637 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x65B SWAP3 SWAP2 SWAP1 PUSH2 0x7EE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x6B2 JUMPI DUP3 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x684 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x6A5 JUMPI DUP1 SWAP2 POP POP PUSH2 0x721 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x669 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5573657220646F6573206E6F7420657869737421000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x74C JUMPI POP PUSH2 0x76B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x76A SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x7AF JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x7DD JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x7DD JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x7DC JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x7C1 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x7EA SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x82F JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x85D JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x85D JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x85C JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x841 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x86A SWAP2 SWAP1 PUSH2 0x86E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x890 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x88C JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x874 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xF9 PUSH23 0xDFA944AB66B7204CB8C94D597BF7EC4BC5792773550BD5 DUP7 0xDE 0xC6 0x5C 0xAD SHR BLOCKHASH PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:885:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:885:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;112:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;112:19:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;112:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;137:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;566:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;566:92:0;;;;;;;;;;;;;;;;;:::i;:::-;;170:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;170:108:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;170:108:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;170:108:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;170:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;170:108:0;;;;;;;;;;;;;;;:::i;:::-;;288:142;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;288:142:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;288:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;440:116;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;440:116:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;440:116:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;440:116:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;440:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;440:116:0;;;;;;;;;;;;;;;:::i;:::-;;112:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;137:22::-;;;;:::o;566:92::-;609:6;618:8;623:2;618:4;:8::i;:::-;609:17;;643:5;649:1;643:8;;;;;;;;;;;;;;;;;;;636:15;;;;;;;;;;;;;;:::i;:::-;;;566:92;;:::o;170:108::-;223:5;234:18;;;;;;;;239:6;;234:18;;;;247:4;234:18;;;223:30;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;223:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;263:6;;:8;;;;;;;;;;;;;170:108;:::o;288:142::-;331:4;337:13;362:6;371:8;376:2;371:4;:8::i;:::-;362:17;;396:5;402:1;396:8;;;;;;;;;;;;;;;;;;:11;;;409:5;415:1;409:8;;;;;;;;;;;;;;;;;;:13;;389:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;288:142;;;:::o;440:116::-;502:6;511:8;516:2;511:4;:8::i;:::-;502:17;;545:4;529:5;535:1;529:8;;;;;;;;;;;;;;;;;;:13;;:20;;;;;;;;;;;;:::i;:::-;;440:116;;;:::o;668:230::-;713:4;733:6;742:1;733:10;;729:123;749:5;:12;;;;745:1;:16;729:123;;;799:2;784:5;790:1;784:8;;;;;;;;;;;;;;;;;;:11;;;:17;781:59;;;826:1;819:8;;;;;781:59;763:3;;;;;;;729:123;;;;861:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:230;;;;:::o;25:885::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "449600",
"executionCost": "20492",
"totalCost": "470092"
},
"external": {
"create(string)": "infinite",
"destroy(uint256)": "infinite",
"nextId()": "1005",
"read(uint256)": "infinite",
"update(uint256,string)": "infinite",
"users(uint256)": "infinite"
},
"internal": {
"find(uint256)": "infinite"
}
},
"methodIdentifiers": {
"create(string)": "b6a46b3b",
"destroy(uint256)": "9d118770",
"nextId()": "61b8ce8c",
"read(uint256)": "ed2e5a97",
"update(uint256,string)": "f745630f",
"users(uint256)": "365b98b2"
}
},
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"name": "create",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "destroy",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "nextId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "read",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"name": "update",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "users",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"name": "create",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "destroy",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "nextId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "read",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"name": "update",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "users",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Crud.sol": "Crud"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Crud.sol": {
"keccak256": "0xae6950f68625157b2ef1fbc5cc17ab69010fb7abc0c96422c040c514a45349fa",
"urls": [
"bzz-raw://44b872723522bba95ab93a45ccd547d853cd755aa1ca84505b3092a6639ede10",
"dweb:/ipfs/QmZQpfkMEcLyTrsSGWEGUFbxbaDdzi7NkKupUfpLeNLVHZ"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60806040526040516105c03803806105c08339818101604052606081101561002657600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600281905550600a34816100df57fe5b046003819055505050506104c8806100f86000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80634a8a7ce31161005b5780634a8a7ce3146101495780635dd65d3b1461016757806389facb2014610185578063aa8c217c146101a357610088565b80630405c3571461008d5780632be52146146100d75780633bfb6e31146100f55780633ccfd60b1461013f575b600080fd5b6100956101c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100df6101e7565b6040518082815260200191505060405180910390f35b6100fd6101ec565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610147610211565b005b61015161047c565b6040518082815260200191505060405180910390f35b61016f610482565b6040518082815260200191505060405180910390f35b61018d610488565b6040518082815260200191505060405180910390f35b6101ab61048d565b6040518082815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f62656e6966696369617279206f6e6c790000000000000000000000000000000081525060200191505060405180910390fd5b60025442101561034c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f746f6f206561726c79000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600a600454106103c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f207061796f757473206c656674000000000000000000000000000000000081525060200191505060405180910390fd5b6000600a6002544203816103d457fe5b049050600060045482039050600a6004548201116103f257806103f9565b600454600a035b905080600460008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60035483029081150290604051600060405180830381858888f19350505050158015610477573d6000803e3d6000fd5b505050565b60045481565b60025481565b600a81565b6003548156fea265627a7a72315820182702b5c89b71869eef1793434613c0f8d8b952615b0bf21ff4d07d421a377e64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x5C0 CODESIZE SUB DUP1 PUSH2 0x5C0 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP DUP3 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 TIMESTAMP ADD PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0xA CALLVALUE DUP2 PUSH2 0xDF JUMPI INVALID JUMPDEST DIV PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP POP POP PUSH2 0x4C8 DUP1 PUSH2 0xF8 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 0x4A8A7CE3 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x4A8A7CE3 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x5DD65D3B EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x89FACB20 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xAA8C217C EQ PUSH2 0x1A3 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x405C357 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x2BE52146 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x3BFB6E31 EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFD PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x211 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x151 PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16F PUSH2 0x482 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH2 0x488 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AB PUSH2 0x48D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xA DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x62656E6966696369617279206F6E6C7900000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP LT ISZERO PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x746F6F206561726C790000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA PUSH1 0x4 SLOAD LT PUSH2 0x3C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4E6F207061796F757473206C6566740000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA PUSH1 0x2 SLOAD TIMESTAMP SUB DUP2 PUSH2 0x3D4 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH1 0x0 PUSH1 0x4 SLOAD DUP3 SUB SWAP1 POP PUSH1 0xA PUSH1 0x4 SLOAD DUP3 ADD GT PUSH2 0x3F2 JUMPI DUP1 PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xA SUB JUMPDEST SWAP1 POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x3 SLOAD DUP4 MUL SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x477 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 XOR 0x27 MUL 0xB5 0xC8 SWAP12 PUSH18 0x869EEF1793434613C0F8D8B952615B0BF21F DELEGATECALL 0xD0 PUSH30 0x421A377E64736F6C63430005110032000000000000000000000000000000 ",
"sourceMap": "25:1048:0:-;;;280:272;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;280:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;430:7;421:6;;:16;;;;;;;;;;;;;;;;;;461:12;447:11;;:26;;;;;;;;;;;;;;;;;;500:7;494:3;:13;483:8;:24;;;;193:2;526:9;:19;;;;;;517:6;:28;;;;280:272;;;25:1048;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100885760003560e01c80634a8a7ce31161005b5780634a8a7ce3146101495780635dd65d3b1461016757806389facb2014610185578063aa8c217c146101a357610088565b80630405c3571461008d5780632be52146146100d75780633bfb6e31146100f55780633ccfd60b1461013f575b600080fd5b6100956101c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100df6101e7565b6040518082815260200191505060405180910390f35b6100fd6101ec565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610147610211565b005b61015161047c565b6040518082815260200191505060405180910390f35b61016f610482565b6040518082815260200191505060405180910390f35b61018d610488565b6040518082815260200191505060405180910390f35b6101ab61048d565b6040518082815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a81565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f62656e6966696369617279206f6e6c790000000000000000000000000000000081525060200191505060405180910390fd5b60025442101561034c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f746f6f206561726c79000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600a600454106103c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f207061796f757473206c656674000000000000000000000000000000000081525060200191505060405180910390fd5b6000600a6002544203816103d457fe5b049050600060045482039050600a6004548201116103f257806103f9565b600454600a035b905080600460008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60035483029081150290604051600060405180830381858888f19350505050158015610477573d6000803e3d6000fd5b505050565b60045481565b60025481565b600a81565b6003548156fea265627a7a72315820182702b5c89b71869eef1793434613c0f8d8b952615b0bf21ff4d07d421a377e64736f6c63430005110032",
"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 0x4A8A7CE3 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x4A8A7CE3 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x5DD65D3B EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x89FACB20 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0xAA8C217C EQ PUSH2 0x1A3 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x405C357 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x2BE52146 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x3BFB6E31 EQ PUSH2 0xF5 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x1C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFD PUSH2 0x1EC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x211 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x151 PUSH2 0x47C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16F PUSH2 0x482 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18D PUSH2 0x488 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AB PUSH2 0x48D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0xA DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x2D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x62656E6966696369617279206F6E6C7900000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD TIMESTAMP LT ISZERO PUSH2 0x34C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x746F6F206561726C790000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA PUSH1 0x4 SLOAD LT PUSH2 0x3C4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x4E6F207061796F757473206C6566740000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA PUSH1 0x2 SLOAD TIMESTAMP SUB DUP2 PUSH2 0x3D4 JUMPI INVALID JUMPDEST DIV SWAP1 POP PUSH1 0x0 PUSH1 0x4 SLOAD DUP3 SUB SWAP1 POP PUSH1 0xA PUSH1 0x4 SLOAD DUP3 ADD GT PUSH2 0x3F2 JUMPI DUP1 PUSH2 0x3F9 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0xA SUB JUMPDEST SWAP1 POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x3 SLOAD DUP4 MUL SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x477 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0xA DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 XOR 0x27 MUL 0xB5 0xC8 SWAP12 PUSH18 0x869EEF1793434613C0F8D8B952615B0BF21F DELEGATECALL 0xD0 PUSH30 0x421A377E64736F6C63430005110032000000000000000000000000000000 ",
"sourceMap": "25:1048:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:1048:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;72:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;162:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;45:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;562:504;;;:::i;:::-;;241:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;112:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;201:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;138:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;72:34;;;;;;;;;;;;;:::o;162:33::-;193:2;162:33;:::o;45:21::-;;;;;;;;;;;;;:::o;562:504::-;621:11;;;;;;;;;;;607:25;;:10;:25;;;599:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;678:8;;671:3;:15;;663:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;193:2;718:11;;:21;710:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:21;233:2;800:8;;794:3;:14;793:28;;;;;;769:52;;831:15;868:11;;849:16;:30;831:48;;193:2;915:11;;902:10;:24;:34;:71;;963:10;902:71;;;949:11;;193:2;939:21;902:71;889:84;;998:10;983:11;;:25;;;;;;;;;;;1018:11;;;;;;;;;;;:20;;:41;1052:6;;1039:10;:19;1018:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1018:41:0;562:504;;:::o;241:23::-;;;;:::o;112:20::-;;;;:::o;201:34::-;233:2;201:34;:::o;138:18::-;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "244800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"INTERVAL()": "249",
"PAYOUTS()": "228",
"amount()": "1071",
"benificiary()": "1054",
"earliest()": "1027",
"lawyer()": "1098",
"paidPayouts()": "1005",
"withdraw()": "infinite"
}
},
"methodIdentifiers": {
"INTERVAL()": "89facb20",
"PAYOUTS()": "2be52146",
"amount()": "aa8c217c",
"benificiary()": "0405c357",
"earliest()": "5dd65d3b",
"lawyer()": "3bfb6e31",
"paidPayouts()": "4a8a7ce3",
"withdraw()": "3ccfd60b"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_lawyer",
"type": "address"
},
{
"internalType": "address payable",
"name": "_benificiary",
"type": "address"
},
{
"internalType": "uint256",
"name": "fromNow",
"type": "uint256"
}
],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "INTERVAL",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "PAYOUTS",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "amount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "benificiary",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "earliest",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "lawyer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "paidPayouts",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "withdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_lawyer",
"type": "address"
},
{
"internalType": "address payable",
"name": "_benificiary",
"type": "address"
},
{
"internalType": "uint256",
"name": "fromNow",
"type": "uint256"
}
],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "INTERVAL",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "PAYOUTS",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "amount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "benificiary",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "earliest",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "lawyer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "paidPayouts",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "withdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/DeedMultiPayout.sol": "Deed"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/DeedMultiPayout.sol": {
"keccak256": "0x3903304a101f8edee837e0bdb3d8744c7cb9d784aca3301437b3297ed1ae5bea",
"urls": [
"bzz-raw://8a19f2afba53fcd4ad04a14151bbcc2f42ddbe51f90314f34d02523b814c6c38",
"dweb:/ipfs/QmUhKHuCgdNkzqLu9shgB1zT7SkfbCxtHzuT4SNyHMTLiS"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507389d24a6b4ccb1b6faa2625fe562bdd9a23260359600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736b175474e89094c44da98b954eedeac495271d0f600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156101b857600080fd5b50600160056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260056000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061041d806103646000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80634b3fb7f8146100675780636036cba31461008557806389a30271146100b5578063ad5c4648146100d3578063b8268788146100f1578063e0bab4c414610121575b600080fd5b61006f61013f565b60405161007c9190610320565b60405180910390f35b61009f600480360361009a9190810190610299565b610165565b6040516100ac919061035b565b60405180910390f35b6100bd61017d565b6040516100ca9190610320565b60405180910390f35b6100db6101a3565b6040516100e89190610320565b60405180910390f35b61010b60048036036101069190810190610299565b6101c9565b604051610118919061035b565b60405180910390f35b61012961025e565b6040516101369190610320565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102499061033b565b60405180910390fd5b60018103915050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081359050610293816103c3565b92915050565b6000602082840312156102ab57600080fd5b60006102b984828501610284565b91505092915050565b6102cb81610387565b82525050565b60006102de601c83610376565b91507f466c6173684c6f616e3a20556e737570706f7274656420746f6b656e000000006000830152602082019050919050565b61031a816103b9565b82525050565b600060208201905061033560008301846102c2565b92915050565b60006020820190508181036000830152610354816102d1565b9050919050565b60006020820190506103706000830184610311565b92915050565b600082825260208201905092915050565b600061039282610399565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6103cc81610387565b81146103d757600080fd5b5056fea365627a7a72315820b4dbf490c1e07df7c46c7db30cca48bc2faee15d9647dc0653bb66a6bf6762f76c6578706572696d656e74616cf564736f6c63430005110040",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH20 0x1E0447B19BB6ECFDAE1E4AE1694B0C3659614E4E PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0xC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0x89D24A6B4CCB1B6FAA2625FE562BDD9A23260359 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0x6B175474E89094C44DA98B954EEDEAC495271D0F PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x1B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x5 PUSH1 0x0 PUSH1 0x1 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 DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x2 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 DUP2 SWAP1 SSTORE POP PUSH1 0x3 PUSH1 0x5 PUSH1 0x0 PUSH1 0x3 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 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 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 DUP2 SWAP1 SSTORE POP PUSH2 0x41D DUP1 PUSH2 0x364 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 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4B3FB7F8 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x6036CBA3 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x89A30271 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0xB8268788 EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0xE0BAB4C4 EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x13F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x9A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x299 JUMP JUMPDEST PUSH2 0x165 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBD PUSH2 0x17D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCA SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x106 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x299 JUMP JUMPDEST PUSH2 0x1C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH2 0x25E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ ISZERO PUSH2 0x252 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x249 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 SUB SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x293 DUP2 PUSH2 0x3C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP3 DUP6 ADD PUSH2 0x284 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2CB DUP2 PUSH2 0x387 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DE PUSH1 0x1C DUP4 PUSH2 0x376 JUMP JUMPDEST SWAP2 POP PUSH32 0x466C6173684C6F616E3A20556E737570706F7274656420746F6B656E00000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x31A DUP2 PUSH2 0x3B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x335 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x354 DUP2 PUSH2 0x2D1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x370 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x311 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 PUSH1 0x0 PUSH2 0x392 DUP3 PUSH2 0x399 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3CC DUP2 PUSH2 0x387 JUMP JUMPDEST DUP2 EQ PUSH2 0x3D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xB4 0xDB DELEGATECALL SWAP1 0xC1 0xE0 PUSH30 0xF7C46C7DB30CCA48BC2FAEE15D9647DC0653BB66A6BF6762F76C65787065 PUSH19 0x696D656E74616CF564736F6C63430005110040 ",
"sourceMap": "2616:2562:0:-;;;2681:42;2656:68;;;;;;;;;;;;;;;;;;;;2753:42;2731:64;;;;;;;;;;;;;;;;;;;;2822:42;2801:63;;;;;;;;;;;;;;;;;;;;2892:42;2870:64;;;;;;;;;;;;;;;;;;;;2961:42;2940:63;;;;;;;;;;;;;;;;;;;;3061:146;8:9:-1;5:2;;;30:1;27;20:12;5:2;3061:146:0;3111:1;3092:10;:16;3103:4;;;;;;;;;;;3092:16;;;;;;;;;;;;;;;:20;;;;3140:1;3122:10;:15;3133:3;;;;;;;;;;;3122:15;;;;;;;;;;;;;;;:19;;;;3170:1;3151:10;:16;3162:4;;;;;;;;;;;3151:16;;;;;;;;;;;;;;;:20;;;;3199:1;3181:10;:15;3192:3;;;;;;;;;;;3181:15;;;;;;;;;;;;;;;:19;;;;2616:2562;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100625760003560e01c80634b3fb7f8146100675780636036cba31461008557806389a30271146100b5578063ad5c4648146100d3578063b8268788146100f1578063e0bab4c414610121575b600080fd5b61006f61013f565b60405161007c9190610320565b60405180910390f35b61009f600480360361009a9190810190610299565b610165565b6040516100ac919061035b565b60405180910390f35b6100bd61017d565b6040516100ca9190610320565b60405180910390f35b6100db6101a3565b6040516100e89190610320565b60405180910390f35b61010b60048036036101069190810190610299565b6101c9565b604051610118919061035b565b60405180910390f35b61012961025e565b6040516101369190610320565b60405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102499061033b565b60405180910390fd5b60018103915050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081359050610293816103c3565b92915050565b6000602082840312156102ab57600080fd5b60006102b984828501610284565b91505092915050565b6102cb81610387565b82525050565b60006102de601c83610376565b91507f466c6173684c6f616e3a20556e737570706f7274656420746f6b656e000000006000830152602082019050919050565b61031a816103b9565b82525050565b600060208201905061033560008301846102c2565b92915050565b60006020820190508181036000830152610354816102d1565b9050919050565b60006020820190506103706000830184610311565b92915050565b600082825260208201905092915050565b600061039282610399565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6103cc81610387565b81146103d757600080fd5b5056fea365627a7a72315820b4dbf490c1e07df7c46c7db30cca48bc2faee15d9647dc0653bb66a6bf6762f76c6578706572696d656e74616cf564736f6c63430005110040",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4B3FB7F8 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x6036CBA3 EQ PUSH2 0x85 JUMPI DUP1 PUSH4 0x89A30271 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0xD3 JUMPI DUP1 PUSH4 0xB8268788 EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0xE0BAB4C4 EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6F PUSH2 0x13F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7C SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x9A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x299 JUMP JUMPDEST PUSH2 0x165 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBD PUSH2 0x17D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCA SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x106 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x299 JUMP JUMPDEST PUSH2 0x1C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x35B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH2 0x25E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0x320 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ ISZERO PUSH2 0x252 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x249 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 SUB SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x293 DUP2 PUSH2 0x3C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2B9 DUP5 DUP3 DUP6 ADD PUSH2 0x284 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2CB DUP2 PUSH2 0x387 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DE PUSH1 0x1C DUP4 PUSH2 0x376 JUMP JUMPDEST SWAP2 POP PUSH32 0x466C6173684C6F616E3A20556E737570706F7274656420746F6B656E00000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x31A DUP2 PUSH2 0x3B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x335 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2C2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x354 DUP2 PUSH2 0x2D1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x370 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x311 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 PUSH1 0x0 PUSH2 0x392 DUP3 PUSH2 0x399 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3CC DUP2 PUSH2 0x387 JUMP JUMPDEST DUP2 EQ PUSH2 0x3D7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xB4 0xDB DELEGATECALL SWAP1 0xC1 0xE0 PUSH30 0xF7C46C7DB30CCA48BC2FAEE15D9647DC0653BB66A6BF6762F76C65787065 PUSH19 0x696D656E74616CF564736F6C63430005110040 ",
"sourceMap": "2616:2562:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2616:2562:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2801:63;;;:::i;:::-;;;;;;;;;;;;;;;;3009:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2870:64;;;:::i;:::-;;;;;;;;;;;;;;;;2731;;;:::i;:::-;;;;;;;;;;;;;;;;3385:216;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2940:63;;;:::i;:::-;;;;;;;;;;;;;;;;2801;;;;;;;;;;;;;:::o;3009:45::-;;;;;;;;;;;;;;;;;:::o;2870:64::-;;;;;;;;;;;;;:::o;2731:::-;;;;;;;;;;;;;:::o;3385:216::-;3446:7;3465:16;3484:10;:17;3495:5;3484:17;;;;;;;;;;;;;;;;3465:36;;3531:1;3519:8;:13;;3511:54;;;;;;;;;;;;;;;;;;;;;;3593:1;3582:8;:12;3575:19;;;3385:216;;;:::o;2940:63::-;;;;;;;;;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:241;;246:2;234:9;225:7;221:23;217:32;214:2;;;262:1;259;252:12;214:2;297:1;314:53;359:7;350:6;339:9;335:22;314:53;;;304:63;;276:97;208:175;;;;;390:113;473:24;491:5;473:24;;;468:3;461:37;455:48;;;511:328;;671:67;735:2;730:3;671:67;;;664:74;;771:30;767:1;762:3;758:11;751:51;830:2;825:3;821:12;814:19;;657:182;;;;847:113;930:24;948:5;930:24;;;925:3;918:37;912:48;;;967:213;;1085:2;1074:9;1070:18;1062:26;;1099:71;1167:1;1156:9;1152:17;1143:6;1099:71;;;1056:124;;;;;1187:407;;1378:2;1367:9;1363:18;1355:26;;1428:9;1422:4;1418:20;1414:1;1403:9;1399:17;1392:47;1453:131;1579:4;1453:131;;;1445:139;;1349:245;;;;1601:213;;1719:2;1708:9;1704:18;1696:26;;1733:71;1801:1;1790:9;1786:17;1777:6;1733:71;;;1690:124;;;;;1822:163;;1937:6;1932:3;1925:19;1974:4;1969:3;1965:14;1950:29;;1918:67;;;;;1993:91;;2055:24;2073:5;2055:24;;;2044:35;;2038:46;;;;2091:121;;2164:42;2157:5;2153:54;2142:65;;2136:76;;;;2219:72;;2281:5;2270:16;;2264:27;;;;2298:117;2367:24;2385:5;2367:24;;;2360:5;2357:35;2347:2;;2406:1;2403;2396:12;2347:2;2341:74;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "210600",
"executionCost": "188346",
"totalCost": "398946"
},
"external": {
"DAI()": "1302",
"SAI()": "1192",
"USDC()": "1236",
"WETH()": "1258",
"currencies(address)": "1514",
"tokenToMarketId(address)": "1709"
},
"internal": {
"flashloan(address,uint256,bytes memory)": "infinite"
}
},
"methodIdentifiers": {
"DAI()": "e0bab4c4",
"SAI()": "4b3fb7f8",
"USDC()": "89a30271",
"WETH()": "ad5c4648",
"currencies(address)": "6036cba3",
"tokenToMarketId(address)": "b8268788"
}
},
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "DAI",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SAI",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "USDC",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "currencies",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "tokenToMarketId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "DAI",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SAI",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "USDC",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "currencies",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "tokenToMarketId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Test.sol": "DyDxFlashLoan"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Test.sol": {
"keccak256": "0xfb8bc9204d67546a1f77a53da8360a8bb2dda71d5b8c7551f4aa57ac255b0847",
"urls": [
"bzz-raw://4216bcf163dd2dfe9b2a81bd85ccc57c84d718e2937dc3a1074d0183b2787f4a",
"dweb:/ipfs/QmTtRUsiYnL6rZTh74nqP86SZwxx5Gd2fDReBWMgDAZcN7"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"getAccountWei((address,uint256),uint256)": "c190c2ec",
"operate((address,uint256)[],(uint8,uint256,(bool,uint8,uint8,uint256),uint256,uint256,address,uint256,bytes)[])": "a67a6a45"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "number",
"type": "uint256"
}
],
"internalType": "struct Structs.Info",
"name": "account",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "marketId",
"type": "uint256"
}
],
"name": "getAccountWei",
"outputs": [
{
"components": [
{
"internalType": "bool",
"name": "sign",
"type": "bool"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"internalType": "struct Structs.Wei",
"name": "",
"type": "tuple"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "number",
"type": "uint256"
}
],
"internalType": "struct Structs.Info[]",
"name": "",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "enum Structs.ActionType",
"name": "actionType",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "accountId",
"type": "uint256"
},
{
"components": [
{
"internalType": "bool",
"name": "sign",
"type": "bool"
},
{
"internalType": "enum Structs.AssetDenomination",
"name": "denomination",
"type": "uint8"
},
{
"internalType": "enum Structs.AssetReference",
"name": "ref",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"internalType": "struct Structs.AssetAmount",
"name": "amount",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "primaryMarketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "secondaryMarketId",
"type": "uint256"
},
{
"internalType": "address",
"name": "otherAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "otherAccountId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"internalType": "struct Structs.ActionArgs[]",
"name": "",
"type": "tuple[]"
}
],
"name": "operate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "number",
"type": "uint256"
}
],
"internalType": "struct Structs.Info",
"name": "account",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "marketId",
"type": "uint256"
}
],
"name": "getAccountWei",
"outputs": [
{
"components": [
{
"internalType": "bool",
"name": "sign",
"type": "bool"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"internalType": "struct Structs.Wei",
"name": "",
"type": "tuple"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "number",
"type": "uint256"
}
],
"internalType": "struct Structs.Info[]",
"name": "",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "enum Structs.ActionType",
"name": "actionType",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "accountId",
"type": "uint256"
},
{
"components": [
{
"internalType": "bool",
"name": "sign",
"type": "bool"
},
{
"internalType": "enum Structs.AssetDenomination",
"name": "denomination",
"type": "uint8"
},
{
"internalType": "enum Structs.AssetReference",
"name": "ref",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"internalType": "struct Structs.AssetAmount",
"name": "amount",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "primaryMarketId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "secondaryMarketId",
"type": "uint256"
},
{
"internalType": "address",
"name": "otherAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "otherAccountId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"internalType": "struct Structs.ActionArgs[]",
"name": "",
"type": "tuple[]"
}
],
"name": "operate",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Test.sol": "DyDxPool"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Test.sol": {
"keccak256": "0xfb8bc9204d67546a1f77a53da8360a8bb2dda71d5b8c7551f4aa57ac255b0847",
"urls": [
"bzz-raw://4216bcf163dd2dfe9b2a81bd85ccc57c84d718e2937dc3a1074d0183b2787f4a",
"dweb:/ipfs/QmTtRUsiYnL6rZTh74nqP86SZwxx5Gd2fDReBWMgDAZcN7"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506040516060806106b88339810180604052606081101561003057600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600381905550505050610588806101306000396000f3fe60806040526004361061008d576000357c01000000000000000000000000000000000000000000000000000000009004806386d1a69f1161006b57806386d1a69f1461016b578063aa8c217c14610182578063ae90b213146101ad578063d0e30db0146102045761008d565b8063123119cd146100925780633bfb6e31146100e9578063722713f714610140575b600080fd5b34801561009e57600080fd5b506100a761020e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100f557600080fd5b506100fe610233565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014c57600080fd5b50610155610259565b6040518082815260200191505060405180910390f35b34801561017757600080fd5b50610180610278565b005b34801561018e57600080fd5b5061019761041d565b6040518082815260200191505060405180910390f35b3480156101b957600080fd5b506101c2610423565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61020c610449565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6003543073ffffffffffffffffffffffffffffffffffffffff1631141515610308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f63616e6e6f742072656c656173652066756e647320000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806105386025913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f1935050505015801561041a573d6000803e3d6000fd5b50565b60035481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561050d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f53656e646572206d75737420626520746865207061796572000000000000000081525060200191505060405180910390fd5b6003543073ffffffffffffffffffffffffffffffffffffffff16311115151561053557600080fd5b56fe6f6e6c7920746865206c61777965722063616e2072656c65617365207468652066756e6473a165627a7a72305820d2958ae95991e5965dff38c4e07238335e424c719df04929f8d4636e98546d5f0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x60 DUP1 PUSH2 0x6B8 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH1 0x60 DUP2 LT ISZERO PUSH2 0x30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP DUP3 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLER PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP POP POP PUSH2 0x588 DUP1 PUSH2 0x130 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x86D1A69F GT PUSH2 0x6B JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0xAA8C217C EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0xAE90B213 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x204 JUMPI PUSH2 0x8D JUMP JUMPDEST DUP1 PUSH4 0x123119CD EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x3BFB6E31 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x722713F7 EQ PUSH2 0x140 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x20E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFE PUSH2 0x233 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x155 PUSH2 0x259 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x180 PUSH2 0x278 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x197 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C2 PUSH2 0x423 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20C PUSH2 0x449 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE EQ ISZERO ISZERO PUSH2 0x308 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x63616E6E6F742072656C656173652066756E6473200000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x3B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x538 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x3 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x41A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x50D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x53656E646572206D757374206265207468652070617965720000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE GT ISZERO ISZERO ISZERO PUSH2 0x535 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST JUMP INVALID PUSH16 0x6E6C7920746865206C61777965722063 PUSH2 0x6E20 PUSH19 0x656C65617365207468652066756E6473A16562 PUSH27 0x7A72305820D2958AE95991E5965DFF38C4E07238335E424C719DF0 0x49 0x29 0xf8 0xd4 PUSH4 0x6E98546D 0x5f STOP 0x29 ",
"sourceMap": "25:880:0:-;;;163:234;8:9:-1;5:2;;;30:1;27;20:12;5:2;163:234:0;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;163:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:6;285:5;;:14;;;;;;;;;;;;;;;;;;321:6;313:5;;:14;;;;;;;;;;;;;;;;;;350:10;341:6;;:19;;;;;;;;;;;;;;;;;;383:7;374:6;:16;;;;163:234;;;25:880;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061008d576000357c01000000000000000000000000000000000000000000000000000000009004806386d1a69f1161006b57806386d1a69f1461016b578063aa8c217c14610182578063ae90b213146101ad578063d0e30db0146102045761008d565b8063123119cd146100925780633bfb6e31146100e9578063722713f714610140575b600080fd5b34801561009e57600080fd5b506100a761020e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100f557600080fd5b506100fe610233565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014c57600080fd5b50610155610259565b6040518082815260200191505060405180910390f35b34801561017757600080fd5b50610180610278565b005b34801561018e57600080fd5b5061019761041d565b6040518082815260200191505060405180910390f35b3480156101b957600080fd5b506101c2610423565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61020c610449565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6003543073ffffffffffffffffffffffffffffffffffffffff1631141515610308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f63616e6e6f742072656c656173652066756e647320000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156103b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806105386025913960400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6003549081150290604051600060405180830381858888f1935050505015801561041a573d6000803e3d6000fd5b50565b60035481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561050d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f53656e646572206d75737420626520746865207061796572000000000000000081525060200191505060405180910390fd5b6003543073ffffffffffffffffffffffffffffffffffffffff16311115151561053557600080fd5b56fe6f6e6c7920746865206c61777965722063616e2072656c65617365207468652066756e6473a165627a7a72305820d2958ae95991e5965dff38c4e07238335e424c719df04929f8d4636e98546d5f0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x8D JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x86D1A69F GT PUSH2 0x6B JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0xAA8C217C EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0xAE90B213 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x204 JUMPI PUSH2 0x8D JUMP JUMPDEST DUP1 PUSH4 0x123119CD EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0x3BFB6E31 EQ PUSH2 0xE9 JUMPI DUP1 PUSH4 0x722713F7 EQ PUSH2 0x140 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x20E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xFE PUSH2 0x233 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x155 PUSH2 0x259 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x180 PUSH2 0x278 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x197 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C2 PUSH2 0x423 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20C PUSH2 0x449 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE EQ ISZERO ISZERO PUSH2 0x308 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x63616E6E6F742072656C656173652066756E6473200000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x3B0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x25 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x538 PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH1 0x3 SLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x41A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO ISZERO PUSH2 0x50D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x53656E646572206D757374206265207468652070617965720000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 SLOAD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE GT ISZERO ISZERO ISZERO PUSH2 0x535 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST JUMP INVALID PUSH16 0x6E6C7920746865206C61777965722063 PUSH2 0x6E20 PUSH19 0x656C65617365207468652066756E6473A16562 PUSH27 0x7A72305820D2958AE95991E5965DFF38C4E07238335E424C719DF0 0x49 0x29 0xf8 0xd4 PUSH4 0x6E98546D 0x5f STOP 0x29 ",
"sourceMap": "25:880:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;107:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;107:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;811:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;811:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;581:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;581:220:0;;;:::i;:::-;;134:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;134:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;73:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;73:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;411:156;;;:::i;:::-;;47:20;;;;;;;;;;;;;:::o;107:21::-;;;;;;;;;;;;;:::o;811:92::-;852:4;883;875:21;;;868:28;;811:92;:::o;581:220::-;650:6;;633:4;625:21;;;:31;617:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;714:6;;;;;;;;;;;700:20;;:10;:20;;;692:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;772:5;;;;;;;;;;;:14;;:22;787:6;;772:22;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;772:22:0;581:220::o;134:18::-;;;;:::o;73:28::-;;;;;;;;;;;;;:::o;411:156::-;476:5;;;;;;;;;;;462:19;;:10;:19;;;454:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:6;;536:4;528:21;;;:31;;520:40;;;;;;;;411:156::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "283200",
"executionCost": "81314",
"totalCost": "364514"
},
"external": {
"amount()": "432",
"balanceOf()": "668",
"deposit()": "1104",
"lawyer()": "481",
"payee()": "502",
"payer()": "459",
"release()": "infinite"
}
},
"methodIdentifiers": {
"amount()": "aa8c217c",
"balanceOf()": "722713f7",
"deposit()": "d0e30db0",
"lawyer()": "3bfb6e31",
"payee()": "ae90b213",
"payer()": "123119cd",
"release()": "86d1a69f"
}
},
"abi": [
{
"constant": true,
"inputs": [],
"name": "payer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "lawyer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "release",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "amount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "payee",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "deposit",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"name": "_payer",
"type": "address"
},
{
"name": "_payee",
"type": "address"
},
{
"name": "_amount",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}
]
}
{
"compiler": {
"version": "0.5.2+commit.1df8f40c"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "payer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "lawyer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "release",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "amount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "payee",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "deposit",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"name": "_payer",
"type": "address"
},
{
"name": "_payee",
"type": "address"
},
{
"name": "_amount",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Escrow.sol": "Escrow"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Escrow.sol": {
"keccak256": "0xfadbc2a29d9db1efb44cf0a9327977ea2d16eb23bf0a5223fe58ec393c0818dc",
"urls": [
"bzzr://ad3ca4154fd0172861a1ce2ff4ecb9889291ca90b0ebd906fdff4693a6d78fec"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506040516103363803806103368339818101604052602081101561003357600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506102a2806100946000396000f3fe60806040526004361061003f5760003560e01c8063722713f7146100445780638da5cb5b1461006f578063d0679d34146100c6578063d0e30db014610121575b600080fd5b34801561005057600080fd5b5061005961012b565b6040518082815260200191505060405180910390f35b34801561007b57600080fd5b50610084610133565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d257600080fd5b5061011f600480360360408110156100e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610158565b005b61012961026b565b005b600047905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101f9578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156101f3573d6000803e3d6000fd5b50610267565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616c6c6f776564210000000000000000000081525060200191505060405180910390fd5b5050565b56fea265627a7a723158202fd54682353cedcbe8f348f0eb46ea051f80359b2e90b6e29e6e9c9d315b9f9264736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x336 CODESIZE SUB DUP1 PUSH2 0x336 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP 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 PUSH2 0x2A2 DUP1 PUSH2 0x94 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x722713F7 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xD0679D34 EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59 PUSH2 0x12B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x84 PUSH2 0x133 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x158 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH2 0x26B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1F9 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x267 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x53656E646572206973206E6F7420616C6C6F7765642100000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0x2F 0xD5 CHAINID DUP3 CALLDATALOAD EXTCODECOPY 0xED 0xCB 0xE8 RETURN 0x48 CREATE 0xEB CHAINID 0xEA SDIV 0x1F DUP1 CALLDATALOAD SWAP12 0x2E SWAP1 0xB6 0xE2 SWAP15 PUSH15 0x9C9D315B9F9264736F6C6343000511 STOP ORIGIN ",
"sourceMap": "25:501:0:-;;;83:70;8:9:-1;5:2;;;30:1;27;20:12;5:2;83:70:0;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;83:70:0;;;;;;;;;;;;;;;;136:6;128:5;;:14;;;;;;;;;;;;;;;;;;83:70;25:501;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c8063722713f7146100445780638da5cb5b1461006f578063d0679d34146100c6578063d0e30db014610121575b600080fd5b34801561005057600080fd5b5061005961012b565b6040518082815260200191505060405180910390f35b34801561007b57600080fd5b50610084610133565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100d257600080fd5b5061011f600480360360408110156100e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610158565b005b61012961026b565b005b600047905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101f9578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156101f3573d6000803e3d6000fd5b50610267565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616c6c6f776564210000000000000000000081525060200191505060405180910390fd5b5050565b56fea265627a7a723158202fd54682353cedcbe8f348f0eb46ea051f80359b2e90b6e29e6e9c9d315b9f9264736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x722713F7 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xD0679D34 EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59 PUSH2 0x12B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x84 PUSH2 0x133 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0xE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x158 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x129 PUSH2 0x26B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1F9 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1F3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x267 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x53656E646572206973206E6F7420616C6C6F7765642100000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0x2F 0xD5 CHAINID DUP3 CALLDATALOAD EXTCODECOPY 0xED 0xCB 0xE8 RETURN 0x48 CREATE 0xEB CHAINID 0xEA SDIV 0x1F DUP1 CALLDATALOAD SWAP12 0x2E SWAP1 0xB6 0xE2 SWAP15 PUSH15 0x9C9D315B9F9264736F6C6343000511 STOP ORIGIN ",
"sourceMap": "25:501:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;432:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;52:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;222:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;222:200:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;222:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;163:49;;;:::i;:::-;;432:92;473:4;496:21;489:28;;432:92;:::o;52:20::-;;;;;;;;;;;;;:::o;222:200::-;303:5;;;;;;;;;;;289:19;;:10;:19;;;286:88;;;324:2;:11;;:19;336:6;324:19;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;324:19:0;357:7;;286:88;383:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;222:200;;;:::o;163:49::-;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "134800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"balanceOf()": "193",
"deposit()": "164",
"owner()": "1053",
"send(address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"balanceOf()": "722713f7",
"deposit()": "d0e30db0",
"owner()": "8da5cb5b",
"send(address,uint256)": "d0679d34"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "deposit",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "send",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "deposit",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "send",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/EtherWallet.sol": "EtherWallet"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/EtherWallet.sol": {
"keccak256": "0x52e7f4d2749cb9ce9ef5ac6ff120e73ff9ef749ca25c06cb198b245f29b37877",
"urls": [
"bzz-raw://a7e08f67bb8a6b7e83a69caf11adf22b951bed6cd1b56433690dffd79bacc6a8",
"dweb:/ipfs/Qmf6H2HV43pWqajoLrTPZ5BeS1DkkLuTb1Pxy2kQj7qoXR"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610106806100206000396000f3fe6080604052348015600f57600080fd5b50600436106045576000357c010000000000000000000000000000000000000000000000000000000090048063c6c2ea1714604a575b600080fd5b607360048036036020811015605e57600080fd5b81019080803590602001909291905050506089565b6040518082815260200191505060405180910390f35b600080821415609a576000905060d5565b6000600190506000600190506000600290505b8481101560ce576000828401905083925080935050808060010191505060ad565b5081925050505b91905056fea165627a7a7230582071fe7d93dbdda37a8efe5cfd9f1ea8b4e925a9600458962bf4dd0ce693a8a2da0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x106 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x45 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xC6C2EA17 EQ PUSH1 0x4A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 EQ ISZERO PUSH1 0x9A JUMPI PUSH1 0x0 SWAP1 POP PUSH1 0xD5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x2 SWAP1 POP JUMPDEST DUP5 DUP2 LT ISZERO PUSH1 0xCE JUMPI PUSH1 0x0 DUP3 DUP5 ADD SWAP1 POP DUP4 SWAP3 POP DUP1 SWAP4 POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH1 0xAD JUMP JUMPDEST POP DUP2 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH18 0xFE7D93DBDDA37A8EFE5CFD9F1EA8B4E925A9 PUSH1 0x4 PC SWAP7 0x2b DELEGATECALL 0xdd 0xc 0xe6 SWAP4 0xa8 LOG2 0xda STOP 0x29 ",
"sourceMap": "25:332:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:332:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50600436106045576000357c010000000000000000000000000000000000000000000000000000000090048063c6c2ea1714604a575b600080fd5b607360048036036020811015605e57600080fd5b81019080803590602001909291905050506089565b6040518082815260200191505060405180910390f35b600080821415609a576000905060d5565b6000600190506000600190506000600290505b8481101560ce576000828401905083925080935050808060010191505060ad565b5081925050505b91905056fea165627a7a7230582071fe7d93dbdda37a8efe5cfd9f1ea8b4e925a9600458962bf4dd0ce693a8a2da0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x45 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0xC6C2EA17 EQ PUSH1 0x4A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x89 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP3 EQ ISZERO PUSH1 0x9A JUMPI PUSH1 0x0 SWAP1 POP PUSH1 0xD5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x1 SWAP1 POP PUSH1 0x0 PUSH1 0x2 SWAP1 POP JUMPDEST DUP5 DUP2 LT ISZERO PUSH1 0xCE JUMPI PUSH1 0x0 DUP3 DUP5 ADD SWAP1 POP DUP4 SWAP3 POP DUP1 SWAP4 POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH1 0xAD JUMP JUMPDEST POP DUP2 SWAP3 POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 PUSH18 0xFE7D93DBDDA37A8EFE5CFD9F1EA8B4E925A9 PUSH1 0x4 PC SWAP7 0x2b DELEGATECALL 0xdd 0xc 0xe6 SWAP4 0xa8 LOG2 0xda STOP 0x29 ",
"sourceMap": "25:332:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:332:0;;;;;;;;;;;;;;;;;;;;50:305;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;50:305:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;93:4;117:1;112;:6;109:24;;;129:1;122:8;;;;109:24;142:9;154:1;142:13;;165:9;177:1;165:13;;201:6;210:1;201:10;;197:122;217:1;213;:5;197:122;;;239:7;256:4;249;:11;239:21;;281:4;274:11;;306:2;299:9;;197:122;220:3;;;;;;;197:122;;;;344:4;337:11;;;;50:305;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "52400",
"executionCost": "105",
"totalCost": "52505"
},
"external": {
"fib(uint256)": "infinite"
}
},
"methodIdentifiers": {
"fib(uint256)": "c6c2ea17"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"name": "n",
"type": "uint256"
}
],
"name": "fib",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.2+commit.1df8f40c"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"name": "n",
"type": "uint256"
}
],
"name": "fib",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Fibonacci.sol": "Fibonacci"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Fibonacci.sol": {
"keccak256": "0xa937a43ec9997c33c1d6c04bca3cb222283e99db1e0885d49e53b06880b1df09",
"urls": [
"bzzr://05dedd84841a3c8b038531e3ce21fe8f4059bab3cad61c08a60ec56b150e968b"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061011d806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806319ff1d2114602d575b600080fd5b603360ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101560715780820151818401526020810190506058565b50505050905090810190601f168015609d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60606040518060400160405280600b81526020017f48656c6c6f20576f726c6400000000000000000000000000000000000000000081525090509056fea265627a7a7231582060e31d1b5990d1d1967ed77865f79466a46820d8d73b1a2dd43100af715a6c9064736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19FF1D21 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0xAB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH1 0x71 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x58 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH1 0x9D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F20576F726C64000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH1 0xE3 SAR SHL MSIZE SWAP1 0xD1 0xD1 SWAP7 PUSH31 0xD77865F79466A46820D8D73B1A2DD43100AF715A6C9064736F6C6343000511 STOP ORIGIN ",
"sourceMap": "25:118:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:118:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b506004361060285760003560e01c806319ff1d2114602d575b600080fd5b603360ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101560715780820151818401526020810190506058565b50505050905090810190601f168015609d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60606040518060400160405280600b81526020017f48656c6c6f20576f726c6400000000000000000000000000000000000000000081525090509056fea265627a7a7231582060e31d1b5990d1d1967ed77865f79466a46820d8d73b1a2dd43100af715a6c9064736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x19FF1D21 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0xAB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH1 0x71 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x58 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH1 0x9D JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F20576F726C64000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH1 0xE3 SAR SHL MSIZE SWAP1 0xD1 0xD1 SWAP7 PUSH31 0xD77865F79466A46820D8D73B1A2DD43100AF715A6C9064736F6C6343000511 STOP ORIGIN ",
"sourceMap": "25:118:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:118:0;;;;;;;;;;;;;;;;;;;52:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;52:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;89:13;114:20;;;;;;;;;;;;;;;;;;;52:89;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "57000",
"executionCost": "105",
"totalCost": "57105"
},
"external": {
"hello()": "infinite"
}
},
"methodIdentifiers": {
"hello()": "19ff1d21"
}
},
"abi": [
{
"constant": true,
"inputs": [],
"name": "hello",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "hello",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/HelloWorld.sol": "HelloWorld"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/HelloWorld.sol": {
"keccak256": "0x1352de17af133426dddd21b8e888dec182420deedf2f30e25689b4f6ec1cc3f4",
"urls": [
"bzz-raw://dfa68837d5b07aa5994f1e21205c929e3001c34cc7a08ee55623ad890e09ef2e",
"dweb:/ipfs/Qmb4HoBqMKbYY8QbgrxtuyLCKSA29ARBdNN3eDyMsckbZY"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a723058208558001d491c16c2923d0e69f069b73052966377588dd8f477b27fa8e4987cc30029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP6 PC STOP SAR 0x49 SHR AND 0xc2 SWAP3 RETURNDATASIZE 0xe PUSH10 0xF069B73052966377588D 0xd8 DELEGATECALL PUSH24 0xB27FA8E4987CC30029000000000000000000000000000000 ",
"sourceMap": "26:30:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:30:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600080fdfea165627a7a723058208558001d491c16c2923d0e69f069b73052966377588dd8f477b27fa8e4987cc30029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP6 PC STOP SAR 0x49 SHR AND 0xc2 SWAP3 RETURNDATASIZE 0xe PUSH10 0xF069B73052966377588D 0xd8 DELEGATECALL PUSH24 0xB27FA8E4987CC30029000000000000000000000000000000 ",
"sourceMap": "26:30:0:-;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "10600",
"executionCost": "66",
"totalCost": "10666"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.5.0+commit.1d4f565a"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/HelloWorld.sol": "HelloWorldContract"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/HelloWorld.sol": {
"keccak256": "0x9a1e8c1ff5ca184a1fa3d09e1f780a92e4a0037bd740895b4e6a6cc0f65fc2ea",
"urls": [
"bzzr://bd98f1c6ef5404b6bab65039478b06ce2219a1e4facc226f477799b85b6098dd"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"allowance(address,address)": "dd62ed3e",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"totalSupply()": "18160ddd",
"transfer(address,uint256)": "a9059cbb",
"transferFrom(address,address,uint256)": "23b872dd"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Interface of the ERC20 standard as defined in the EIP. Does not include the optional functions; to access them see `ERC20Detailed`.",
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Test.sol": "IERC20"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Test.sol": {
"keccak256": "0xfb8bc9204d67546a1f77a53da8360a8bb2dda71d5b8c7551f4aa57ac255b0847",
"urls": [
"bzz-raw://4216bcf163dd2dfe9b2a81bd85ccc57c84d718e2937dc3a1074d0183b2787f4a",
"dweb:/ipfs/QmTtRUsiYnL6rZTh74nqP86SZwxx5Gd2fDReBWMgDAZcN7"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"getExpectedReturn(address,address,uint256,uint256,uint256)": "085e2c5b",
"swap(address,address,uint256,uint256,uint256[],uint256)": "e2a7515e"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "contract IERC20",
"name": "fromToken",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "parts",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "disableFlags",
"type": "uint256"
}
],
"name": "getExpectedReturn",
"outputs": [
{
"internalType": "uint256",
"name": "returnAmount",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "distribution",
"type": "uint256[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "contract IERC20",
"name": "fromToken",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "distribution",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "disableFlags",
"type": "uint256"
}
],
"name": "swap",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "contract IERC20",
"name": "fromToken",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "parts",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "disableFlags",
"type": "uint256"
}
],
"name": "getExpectedReturn",
"outputs": [
{
"internalType": "uint256",
"name": "returnAmount",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "distribution",
"type": "uint256[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "contract IERC20",
"name": "fromToken",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "distribution",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "disableFlags",
"type": "uint256"
}
],
"name": "swap",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Test.sol": "IOneSplit"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Test.sol": {
"keccak256": "0xfb8bc9204d67546a1f77a53da8360a8bb2dda71d5b8c7551f4aa57ac255b0847",
"urls": [
"bzz-raw://4216bcf163dd2dfe9b2a81bd85ccc57c84d718e2937dc3a1074d0183b2787f4a",
"dweb:/ipfs/QmTtRUsiYnL6rZTh74nqP86SZwxx5Gd2fDReBWMgDAZcN7"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405260405161093a38038061093a8339818101604052604081101561002657600080fd5b810190808051604051939291908464010000000082111561004657600080fd5b8382019150602082018581111561005c57600080fd5b825186602082028301116401000000008211171561007957600080fd5b8083526020830192505050908051906020019060200280838360005b838110156100b0578082015181840152602081019050610095565b505050509050016040526020018051906020019092919050505081600090805190602001906100e09291906100ef565b508060018190555050506101bc565b828054828255906000526020600020908101928215610168579160200282015b828111156101675782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061010f565b5b5090506101759190610179565b5090565b6101b991905b808211156101b557600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010161017f565b5090565b90565b61076f806101cb6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631703a018146100515780634c12fa471461006f578063d1c68d1e146100bd578063d3650fb8146100eb575b600080fd5b610059610159565b6040518082815260200191505060405180910390f35b6100bb6004803603604081101561008557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015f565b005b6100e9600480360360208110156100d357600080fd5b8101908080359060200190929190505050610363565b005b6101176004803603602081101561010157600080fd5b81019080803590602001909291905050506106fe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60015481565b600080905060005b6000805490508110156101f1573373ffffffffffffffffffffffffffffffffffffffff166000828154811061019857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156101e457600191505b8080600101915050610167565b50600115158115151461026c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c7920617070726f76657220616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b6040518060a0016040528060035481526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160001515815250600260006003548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050600360008154809291906001019190505550505050565b600080905060005b6000805490508110156103f5573373ffffffffffffffffffffffffffffffffffffffff166000828154811061039c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156103e857600191505b808060010191505061036b565b506001151581151514610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c7920617070726f76657220616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600015156002600084815260200190815260200160002060040160009054906101000a900460ff1615151461050d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e736665722068617320616c7265616479206265656e2073656e742e0081525060200191505060405180910390fd5b6001546002600084815260200190815260200160002060030154106105ff5760016002600084815260200190815260200160002060040160006101000a81548160ff02191690831515021790555060006002600084815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008581526020019081526020016000206001015490508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156105f7573d6000803e3d6000fd5b5050506106fa565b60001515600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900460ff16151514156106f9576001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff02191690831515021790555060026000838152602001908152602001600020600301600081548092919060010191905055505b5b5050565b6000818154811061070b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea265627a7a72315820586426498356b738fffd05cf09ebb55aba99e4e7266f1950573ec15279620bb764736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x93A CODESIZE SUB DUP1 PUSH2 0x93A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD PUSH1 0x40 MLOAD SWAP4 SWAP3 SWAP2 SWAP1 DUP5 PUSH5 0x100000000 DUP3 GT ISZERO PUSH2 0x46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP3 ADD DUP6 DUP2 GT ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD DUP7 PUSH1 0x20 DUP3 MUL DUP4 ADD GT PUSH5 0x100000000 DUP3 GT OR ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP3 POP POP POP SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH1 0x20 MUL DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x95 JUMP JUMPDEST POP POP POP POP SWAP1 POP ADD PUSH1 0x40 MSTORE PUSH1 0x20 ADD DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP DUP2 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE0 SWAP3 SWAP2 SWAP1 PUSH2 0xEF JUMP JUMPDEST POP DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP PUSH2 0x1BC JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x168 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x167 JUMPI DUP3 MLOAD DUP3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x10F JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x179 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x1B9 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP2 DUP2 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x17F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x76F DUP1 PUSH2 0x1CB 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 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1703A018 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x4C12FA47 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xD1C68D1E EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0xD3650FB8 EQ PUSH2 0xEB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x159 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x363 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x117 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x6FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x1F1 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1E4 JUMPI PUSH1 0x1 SWAP2 POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x167 JUMP JUMPDEST POP PUSH1 0x1 ISZERO ISZERO DUP2 ISZERO ISZERO EQ PUSH2 0x26C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6F6E6C7920617070726F76657220616C6C6F7765640000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP PUSH1 0x2 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x3F5 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x3E8 JUMPI PUSH1 0x1 SWAP2 POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x36B JUMP JUMPDEST POP PUSH1 0x1 ISZERO ISZERO DUP2 ISZERO ISZERO EQ PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6F6E6C7920617070726F76657220616C6C6F7765640000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x50D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5472616E736665722068617320616C7265616479206265656E2073656E742E00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD LT PUSH2 0x5FF JUMPI PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x5F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ ISZERO PUSH2 0x6F9 JUMPI PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x70B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PC PUSH5 0x26498356B7 CODESIZE SELFDESTRUCT REVERT SDIV 0xCF MULMOD 0xEB 0xB5 GAS 0xBA SWAP10 0xE4 0xE7 0x26 PUSH16 0x1950573EC15279620BB764736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:1841:0:-;;;359:155;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;359:155:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;385:12;380:3;373:25;421:4;416:3;412:14;405:21;;0:433;;359:155:0;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;359:155:0;;;;;;;;;;;;;;;;;;;;;;463:10;451:9;:22;;;;;;;;;;;;:::i;:::-;;496:7;487:6;:16;;;;359:155;;25:1841;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80631703a018146100515780634c12fa471461006f578063d1c68d1e146100bd578063d3650fb8146100eb575b600080fd5b610059610159565b6040518082815260200191505060405180910390f35b6100bb6004803603604081101561008557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015f565b005b6100e9600480360360208110156100d357600080fd5b8101908080359060200190929190505050610363565b005b6101176004803603602081101561010157600080fd5b81019080803590602001909291905050506106fe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60015481565b600080905060005b6000805490508110156101f1573373ffffffffffffffffffffffffffffffffffffffff166000828154811061019857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156101e457600191505b8080600101915050610167565b50600115158115151461026c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c7920617070726f76657220616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b6040518060a0016040528060035481526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160001515815250600260006003548152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548160ff021916908315150217905550905050600360008154809291906001019190505550505050565b600080905060005b6000805490508110156103f5573373ffffffffffffffffffffffffffffffffffffffff166000828154811061039c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156103e857600191505b808060010191505061036b565b506001151581151514610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6f6e6c7920617070726f76657220616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b600015156002600084815260200190815260200160002060040160009054906101000a900460ff1615151461050d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e736665722068617320616c7265616479206265656e2073656e742e0081525060200191505060405180910390fd5b6001546002600084815260200190815260200160002060030154106105ff5760016002600084815260200190815260200160002060040160006101000a81548160ff02191690831515021790555060006002600084815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260008581526020019081526020016000206001015490508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156105f7573d6000803e3d6000fd5b5050506106fa565b60001515600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900460ff16151514156106f9576001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff02191690831515021790555060026000838152602001908152602001600020600301600081548092919060010191905055505b5b5050565b6000818154811061070b57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea265627a7a72315820586426498356b738fffd05cf09ebb55aba99e4e7266f1950573ec15279620bb764736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1703A018 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x4C12FA47 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xD1C68D1E EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0xD3650FB8 EQ PUSH2 0xEB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x159 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBB PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x363 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x117 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x6FE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x1F1 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x198 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1E4 JUMPI PUSH1 0x1 SWAP2 POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x167 JUMP JUMPDEST POP PUSH1 0x1 ISZERO ISZERO DUP2 ISZERO ISZERO EQ PUSH2 0x26C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6F6E6C7920617070726F76657220616C6C6F7765640000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE POP PUSH1 0x2 PUSH1 0x0 PUSH1 0x3 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP SWAP1 POP POP PUSH1 0x3 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 POP PUSH1 0x0 JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x3F5 JUMPI CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x39C JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x3E8 JUMPI PUSH1 0x1 SWAP2 POP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x36B JUMP JUMPDEST POP PUSH1 0x1 ISZERO ISZERO DUP2 ISZERO ISZERO EQ PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6F6E6C7920617070726F76657220616C6C6F7765640000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x50D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x5472616E736665722068617320616C7265616479206265656E2073656E742E00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD SLOAD LT PUSH2 0x5FF JUMPI PUSH1 0x1 PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x4 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x5F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH2 0x6FA JUMP JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ ISZERO PUSH2 0x6F9 JUMPI PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x3 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x70B JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PC PUSH5 0x26498356B7 CODESIZE SELFDESTRUCT REVERT SDIV 0xCF MULMOD 0xEB 0xB5 GAS 0xBA SWAP10 0xE4 0xE7 0x26 PUSH16 0x1950573EC15279620BB764736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:1841:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:1841:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;81:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;532:356;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;532:356:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;906:623;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;906:623:0;;;;;;;;;;;;;;;;;:::i;:::-;;49:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;49:26:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;81:18;;;;:::o;532:356::-;1585:12;1600:5;1585:20;;1623:6;1619:157;1635:9;:16;;;;1631:1;:20;1619:157;;;1695:10;1679:26;;:9;1689:1;1679:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;1676:86;;;1739:4;1729:14;;1676:86;1653:3;;;;;;;1619:157;;;;1808:4;1797:15;;:7;:15;;;1789:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;723:132;;;;;;;;749:6;;723:132;;;;773:6;723:132;;;;797:2;723:132;;;;;;817:1;723:132;;;;836:5;723:132;;;;;703:9;:17;713:6;;703:17;;;;;;;;;;;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;869:6;;:8;;;;;;;;;;;;;532:356;;;:::o;906:623::-;1585:12;1600:5;1585:20;;1623:6;1619:157;1635:9;:16;;;;1631:1;:20;1619:157;;;1695:10;1679:26;;:9;1689:1;1679:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;1676:86;;;1739:4;1729:14;;1676:86;1653:3;;;;;;;1619:157;;;;1808:4;1797:15;;:7;:15;;;1789:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1005:5;983:27;;:9;:13;993:2;983:13;;;;;;;;;;;:18;;;;;;;;;;;;:27;;;975:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:6;;1077:9;:13;1087:2;1077:13;;;;;;;;;;;:23;;;:33;1074:261;;1152:4;1131:9;:13;1141:2;1131:13;;;;;;;;;;;:18;;;:25;;;;;;;;;;;;;;;;;;1173:18;1194:9;:13;1204:2;1194:13;;;;;;;;;;;:16;;;;;;;;;;;;1173:37;;1227:11;1241:9;:13;1251:2;1241:13;;;;;;;;;;;:20;;;1227:34;;1278:2;:11;;:19;1290:6;1278:19;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1278:19:0;1314:7;;;;1074:261;1393:5;1364:34;;:9;:21;1374:10;1364:21;;;;;;;;;;;;;;;:25;1386:2;1364:25;;;;;;;;;;;;;;;;;;;;;:34;;;1361:146;;;1445:4;1417:9;:21;1427:10;1417:21;;;;;;;;;;;;;;;:25;1439:2;1417:25;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;1467:9;:13;1477:2;1467:13;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;1361:146;1852:1;906:623;;:::o;49:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "380600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"approvers(uint256)": "2061",
"createTransfer(uint256,address)": "infinite",
"quorum()": "983",
"sendTransfer(uint256)": "infinite"
}
},
"methodIdentifiers": {
"approvers(uint256)": "d3650fb8",
"createTransfer(uint256,address)": "4c12fa47",
"quorum()": "1703a018",
"sendTransfer(uint256)": "d1c68d1e"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address[]",
"name": "_approvers",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "_quorum",
"type": "uint256"
}
],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "approvers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "to",
"type": "address"
}
],
"name": "createTransfer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "quorum",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "sendTransfer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address[]",
"name": "_approvers",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "_quorum",
"type": "uint256"
}
],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "approvers",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "to",
"type": "address"
}
],
"name": "createTransfer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "quorum",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "sendTransfer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/MultiSig.sol": "MultiSig"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/MultiSig.sol": {
"keccak256": "0x32fd26fcf3512903d8175d21b492a705b69e29ee38bcadbe32c4bb9f261210d5",
"urls": [
"bzz-raw://66bfcbd27336daf9d768a9aca379cd4c8063170b2cda99823af3ec7f0b08a74a",
"dweb:/ipfs/QmWQivc1JGKEob2Kh8rwFFsA7BFsSowEQXiszMRbzk5N2Y"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a7230582042b2e379876ea94a2a0dc9110fdba4c56b8ec16bcaaecb07783aeb5af3d065c20029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 TIMESTAMP 0xb2 0xe3 PUSH26 0x876EA94A2A0DC9110FDBA4C56B8EC16BCAAECB07783AEB5AF3D0 PUSH6 0xC20029000000 ",
"sourceMap": "26:37:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:37:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600080fdfea165627a7a7230582042b2e379876ea94a2a0dc9110fdba4c56b8ec16bcaaecb07783aeb5af3d065c20029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 TIMESTAMP 0xb2 0xe3 PUSH26 0x876EA94A2A0DC9110FDBA4C56B8EC16BCAAECB07783AEB5AF3D0 PUSH6 0xC20029000000 ",
"sourceMap": "26:37:0:-;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "10600",
"executionCost": "66",
"totalCost": "10666"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.5.0+commit.1d4f565a"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/SimpleSmartContract.sol": "SimpleSmartContract"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/SimpleSmartContract.sol": {
"keccak256": "0x9ca2688866928422dcd69bc1e44b0acba09e4706fc055587d6575b9188ef1d99",
"urls": [
"bzzr://0d8935cc8f0e934d5c3de194b150a41b95cc83a321b0945579b41827c3f6046c"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061043b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80634ed3885e146100465780636d4ce63c1461010157806373d4a13a14610184575b600080fd5b6100ff6004803603602081101561005c57600080fd5b810190808035906020019064010000000081111561007957600080fd5b82018360208201111561008b57600080fd5b803590602001918460018302840111640100000000831117156100ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610207565b005b610109610221565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018c6102c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cc5780820151818401526020810190506101b1565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b806000908051906020019061021d929190610361565b5050565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102b95780601f1061028e576101008083540402835291602001916102b9565b820191906000526020600020905b81548152906001019060200180831161029c57829003601f168201915b5050505050905090565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103595780601f1061032e57610100808354040283529160200191610359565b820191906000526020600020905b81548152906001019060200180831161033c57829003601f168201915b505050505081565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106103a257805160ff19168380011785556103d0565b828001600101855582156103d0579182015b828111156103cf5782518255916020019190600101906103b4565b5b5090506103dd91906103e1565b5090565b61040391905b808211156103ff5760008160009055506001016103e7565b5090565b9056fea265627a7a723158200b5cf9acc187f38e70664f28f98196ba07f0f84c985fe8289fa0f3084cf7d10a64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x43B 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4ED3885E EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x6D4CE63C EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x73D4A13A EQ PUSH2 0x184 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x207 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x221 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x149 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x176 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18C PUSH2 0x2C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1CC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1B1 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1F9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x21D SWAP3 SWAP2 SWAP1 PUSH2 0x361 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x2B9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x28E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2B9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x29C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x359 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x32E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x359 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x33C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x3A2 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x3D0 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x3D0 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x3CF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3B4 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x3DD SWAP2 SWAP1 PUSH2 0x3E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x403 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3E7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 SIGNEXTEND 0x5C 0xF9 0xAC 0xC1 DUP8 RETURN DUP15 PUSH17 0x664F28F98196BA07F0F84C985FE8289FA0 RETURN ADDMOD 0x4C 0xF7 0xD1 EXP PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:210:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:210:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80634ed3885e146100465780636d4ce63c1461010157806373d4a13a14610184575b600080fd5b6100ff6004803603602081101561005c57600080fd5b810190808035906020019064010000000081111561007957600080fd5b82018360208201111561008b57600080fd5b803590602001918460018302840111640100000000831117156100ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610207565b005b610109610221565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014957808201518184015260208101905061012e565b50505050905090810190601f1680156101765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61018c6102c3565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cc5780820151818401526020810190506101b1565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b806000908051906020019061021d929190610361565b5050565b606060008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102b95780601f1061028e576101008083540402835291602001916102b9565b820191906000526020600020905b81548152906001019060200180831161029c57829003601f168201915b5050505050905090565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103595780601f1061032e57610100808354040283529160200191610359565b820191906000526020600020905b81548152906001019060200180831161033c57829003601f168201915b505050505081565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106103a257805160ff19168380011785556103d0565b828001600101855582156103d0579182015b828111156103cf5782518255916020019190600101906103b4565b5b5090506103dd91906103e1565b5090565b61040391905b808211156103ff5760008160009055506001016103e7565b5090565b9056fea265627a7a723158200b5cf9acc187f38e70664f28f98196ba07f0f84c985fe8289fa0f3084cf7d10a64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4ED3885E EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x6D4CE63C EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x73D4A13A EQ PUSH2 0x184 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x207 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x109 PUSH2 0x221 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x149 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x176 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18C PUSH2 0x2C3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1CC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1B1 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x1F9 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x21D SWAP3 SWAP2 SWAP1 PUSH2 0x361 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x2B9 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x28E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2B9 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x29C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x359 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x32E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x359 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x33C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH1 0x1F LT PUSH2 0x3A2 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x3D0 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x3D0 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x3CF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x3B4 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x3DD SWAP2 SWAP1 PUSH2 0x3E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0x403 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3E7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 SIGNEXTEND 0x5C 0xF9 0xAC 0xC1 DUP8 RETURN DUP15 PUSH17 0x664F28F98196BA07F0F84C985FE8289FA0 RETURN ADDMOD 0x4C 0xF7 0xD1 EXP PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:210:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;80:69;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;80:69:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;80:69:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;80:69:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;80:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;80:69:0;;;;;;;;;;;;;;;:::i;:::-;;157:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;157:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;53:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;53:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;80:69;138:5;131:4;:12;;;;;;;;;;;;:::i;:::-;;80:69;:::o;157:76::-;192:13;223:4;216:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;157:76;:::o;53:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;25:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "216600",
"executionCost": "257",
"totalCost": "216857"
},
"external": {
"data()": "infinite",
"get()": "infinite",
"set(string)": "infinite"
}
},
"methodIdentifiers": {
"data()": "73d4a13a",
"get()": "6d4ce63c",
"set(string)": "4ed3885e"
}
},
"abi": [
{
"constant": true,
"inputs": [],
"name": "data",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "get",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "string",
"name": "_data",
"type": "string"
}
],
"name": "set",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "data",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "get",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "string",
"name": "_data",
"type": "string"
}
],
"name": "set",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/SimpleStorage.sol": "SimpleStorage"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/SimpleStorage.sol": {
"keccak256": "0x67f585b483c60473f2985a0079d3a64192932502628487330c682030bdb61346",
"urls": [
"bzz-raw://83594c185e56ea7133ebdaa5eb6aa2c53e576e978843512a5f39d74e13f69e57",
"dweb:/ipfs/QmQHE25CLKk6QVHFh1kwNTTPcnD81iUwP8Zuf1PNXyPGWJ"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5060405161049d38038061049d8339818101604052602081101561003357600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610409806100946000396000f3fe6080604052600436106100295760003560e01c80638da5cb5b1461002e578063a645ff5f14610085575b600080fd5b34801561003a57600080fd5b506100436101d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101cf6004803603604081101561009b57600080fd5b81019080803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460208302840111640100000000831117156100ec57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561014c57600080fd5b82018360208201111561015e57600080fd5b8035906020019184602083028401116401000000008311171561018057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506101f6565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461029b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806103846022913960400191505060405180910390fd5b80518251146102f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806103a6602f913960400191505060405180910390fd5b60008090505b825181101561037e5782818151811061031057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc83838151811061033d57fe5b60200260200101519081150290604051600060405180830381858888f19350505050158015610370573d6000803e3d6000fd5b5080806001019150506102fb565b50505056fe6f6e6c7920746865206f776e65722063616e2073656e64207472616e73666572732e746f20616e6420616d6f756e7420617272617973206d7573742068617665207468652073616d65206c656e6774682ea265627a7a72315820e12033fbda02a4b84c37b4a710526292181329e63dfbb21c8217800f3c37fecc64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x49D CODESIZE SUB DUP1 PUSH2 0x49D DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP 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 PUSH2 0x409 DUP1 PUSH2 0x94 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xA645FF5F EQ PUSH2 0x85 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x43 PUSH2 0x1D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x14C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x15E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x1F6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x29B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x384 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x2F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3A6 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x37E JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x310 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x33D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x370 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x2FB JUMP JUMPDEST POP POP POP JUMP INVALID PUSH16 0x6E6C7920746865206F776E6572206361 PUSH15 0x2073656E64207472616E7366657273 0x2E PUSH21 0x6F20616E6420616D6F756E7420617272617973206D PUSH22 0x73742068617665207468652073616D65206C656E6774 PUSH9 0x2EA265627A7A723158 KECCAK256 0xE1 KECCAK256 CALLER 0xFB 0xDA MUL LOG4 0xB8 0x4C CALLDATACOPY 0xB4 0xA7 LT MSTORE PUSH3 0x921813 0x29 0xE6 RETURNDATASIZE 0xFB 0xB2 SHR DUP3 OR DUP1 0xF EXTCODECOPY CALLDATACOPY INVALID 0xCC PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:598:0:-;;;84:66;8:9:-1;5:2;;;30:1;27;20:12;5:2;84:66:0;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;84:66:0;;;;;;;;;;;;;;;;137:6;129:5;;:14;;;;;;;;;;;;;;;;;;84:66;25:598;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100295760003560e01c80638da5cb5b1461002e578063a645ff5f14610085575b600080fd5b34801561003a57600080fd5b506100436101d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101cf6004803603604081101561009b57600080fd5b81019080803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460208302840111640100000000831117156100ec57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561014c57600080fd5b82018360208201111561015e57600080fd5b8035906020019184602083028401116401000000008311171561018057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506101f6565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461029b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806103846022913960400191505060405180910390fd5b80518251146102f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806103a6602f913960400191505060405180910390fd5b60008090505b825181101561037e5782818151811061031057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166108fc83838151811061033d57fe5b60200260200101519081150290604051600060405180830381858888f19350505050158015610370573d6000803e3d6000fd5b5080806001019150506102fb565b50505056fe6f6e6c7920746865206f776e65722063616e2073656e64207472616e73666572732e746f20616e6420616d6f756e7420617272617973206d7573742068617665207468652073616d65206c656e6774682ea265627a7a72315820e12033fbda02a4b84c37b4a710526292181329e63dfbb21c8217800f3c37fecc64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xA645FF5F EQ PUSH2 0x85 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x43 PUSH2 0x1D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x14C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x15E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x1F6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x29B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x22 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x384 PUSH1 0x22 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x2F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2F DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x3A6 PUSH1 0x2F SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SWAP1 POP JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x37E JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x310 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x33D JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x370 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x2FB JUMP JUMPDEST POP POP POP JUMP INVALID PUSH16 0x6E6C7920746865206F776E6572206361 PUSH15 0x2073656E64207472616E7366657273 0x2E PUSH21 0x6F20616E6420616D6F756E7420617272617973206D PUSH22 0x73742068617665207468652073616D65206C656E6774 PUSH9 0x2EA265627A7A723158 KECCAK256 0xE1 KECCAK256 CALLER 0xFB 0xDA MUL LOG4 0xB8 0x4C CALLDATACOPY 0xB4 0xA7 LT MSTORE PUSH3 0x921813 0x29 0xE6 RETURNDATASIZE 0xFB 0xB2 SHR DUP3 OR DUP1 0xF EXTCODECOPY CALLDATACOPY INVALID 0xCC PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "25:598:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;53:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;160:311;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;160:311:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;160:311:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;160:311:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;160:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;160:311:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;160:311:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;160:311:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;160:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;160:311:0;;;;;;;;;;;;;;;:::i;:::-;;53:20;;;;;;;;;;;;;:::o;160:311::-;549:5;;;;;;;;;;;535:19;;:10;:19;;;527:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;304:6;:13;291:2;:9;:26;283:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;383:6;392:1;383:10;;379:86;399:2;:9;395:1;:13;379:86;;;429:2;432:1;429:5;;;;;;;;;;;;;;:14;;:25;444:6;451:1;444:9;;;;;;;;;;;;;;429:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;429:25:0;410:3;;;;;;;379:86;;;;160:311;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "206600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"owner()": "1031",
"send(address[],uint256[])": "infinite"
}
},
"methodIdentifiers": {
"owner()": "8da5cb5b",
"send(address[],uint256[])": "a645ff5f"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable[]",
"name": "to",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amount",
"type": "uint256[]"
}
],
"name": "send",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable[]",
"name": "to",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "amount",
"type": "uint256[]"
}
],
"name": "send",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/SplitPayment.sol": "SplitPayment"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/SplitPayment.sol": {
"keccak256": "0x251a08c7bd786829933d001c3f69597342a8c562a3693e9e9d60fa970e09bc3b",
"urls": [
"bzz-raw://dd7988173760917052822c33e1c18fcba4f2ae1179824510063aa8820fe6e84f",
"dweb:/ipfs/QmXkQWj7aVMypkTAsm9wFdricF4PpfDvGcG4fnLuzobT5M"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610385806100206000396000f3fe608060405234801561001057600080fd5b5060043610610053576000357c010000000000000000000000000000000000000000000000000000000090048063266001d314610058578063436a66e714610223575b600080fd5b6101a86004803603604081101561006e57600080fd5b810190808035906020019064010000000081111561008b57600080fd5b82018360208201111561009d57600080fd5b803590602001918460018302840111640100000000831117156100bf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561012257600080fd5b82018360208201111561013457600080fd5b8035906020019184600183028401116401000000008311171561015657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506102f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e85780820151818401526020810190506101cd565b50505050905090810190601f1680156102155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102dc6004803603602081101561023957600080fd5b810190808035906020019064010000000081111561025657600080fd5b82018360208201111561026857600080fd5b8035906020019184600183028401116401000000008311171561028a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610348565b6040518082815260200191505060405180910390f35b6060808390506060839050606081518351016040519080825280601f01601f1916602001820160405280156103365781602001600182028038833980820191505090505b50905060608190505050505092915050565b60006060829050805191505091905056fea165627a7a72305820a44df2db4dbb3409ce64115721f1f3f5253bb9d6503619477e9f0a1618c1323d0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x385 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 0x53 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x266001D3 EQ PUSH2 0x58 JUMPI DUP1 PUSH4 0x436A66E7 EQ PUSH2 0x223 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x2F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1E8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1CD JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x215 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x268 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x348 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 DUP1 DUP4 SWAP1 POP PUSH1 0x60 DUP4 SWAP1 POP PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x336 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x60 DUP2 SWAP1 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 SWAP1 POP DUP1 MLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 LOG4 0x4d CALLCODE 0xdb 0x4d 0xbb CALLVALUE MULMOD 0xce PUSH5 0x115721F1F3 CREATE2 0x25 EXTCODESIZE 0xb9 0xd6 POP CALLDATASIZE NOT 0x47 PUSH31 0x9F0A1618C1323D002900000000000000000000000000000000000000000000 ",
"sourceMap": "25:585:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:585:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5060043610610053576000357c010000000000000000000000000000000000000000000000000000000090048063266001d314610058578063436a66e714610223575b600080fd5b6101a86004803603604081101561006e57600080fd5b810190808035906020019064010000000081111561008b57600080fd5b82018360208201111561009d57600080fd5b803590602001918460018302840111640100000000831117156100bf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561012257600080fd5b82018360208201111561013457600080fd5b8035906020019184600183028401116401000000008311171561015657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506102f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e85780820151818401526020810190506101cd565b50505050905090810190601f1680156102155780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102dc6004803603602081101561023957600080fd5b810190808035906020019064010000000081111561025657600080fd5b82018360208201111561026857600080fd5b8035906020019184600183028401116401000000008311171561028a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610348565b6040518082815260200191505060405180910390f35b6060808390506060839050606081518351016040519080825280601f01601f1916602001820160405280156103365781602001600182028038833980820191505090505b50905060608190505050505092915050565b60006060829050805191505091905056fea165627a7a72305820a44df2db4dbb3409ce64115721f1f3f5253bb9d6503619477e9f0a1618c1323d0029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x53 JUMPI PUSH1 0x0 CALLDATALOAD PUSH29 0x100000000000000000000000000000000000000000000000000000000 SWAP1 DIV DUP1 PUSH4 0x266001D3 EQ PUSH2 0x58 JUMPI DUP1 PUSH4 0x436A66E7 EQ PUSH2 0x223 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x122 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x156 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x2F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE DUP4 DUP2 DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1E8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1CD JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x215 JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DC PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x239 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x268 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x1 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP SWAP2 SWAP3 SWAP2 SWAP3 SWAP1 POP POP POP PUSH2 0x348 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 DUP1 DUP4 SWAP1 POP PUSH1 0x60 DUP4 SWAP1 POP PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD ADD PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x336 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x60 DUP2 SWAP1 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 SWAP1 POP DUP1 MLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP INVALID LOG1 PUSH6 0x627A7A723058 KECCAK256 LOG4 0x4d CALLCODE 0xdb 0x4d 0xbb CALLVALUE MULMOD 0xce PUSH5 0x115721F1F3 CREATE2 0x25 EXTCODESIZE 0xb9 0xd6 POP CALLDATASIZE NOT 0x47 PUSH31 0x9F0A1618C1323D002900000000000000000000000000000000000000000000 ",
"sourceMap": "25:585:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25:585:0;;;;;;;;;;;;;;;;;;;;;;;;;206:402;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;206:402:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;206:402:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;206:402:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;206:402:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;206:402:0;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;206:402:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;206:402:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;206:402:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;206:402:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;206:402:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48:146;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;48:146:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;48:146:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;48:146:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;48:146:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;48:146:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;206:402;332:13;366:23;398:4;366:37;;413:23;445:4;413:37;;460:17;511:10;:17;491:10;:17;:37;480:49;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;480:49:0;;;;460:69;;539:22;570:3;539:35;;206:402;;;;;;;;:::o;48:146::-;103:4;119:22;150:3;119:35;;171:9;:16;164:23;;;48:146;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "180200",
"executionCost": "226",
"totalCost": "180426"
},
"external": {
"concatenate(string,string)": "infinite",
"length(string)": "infinite"
}
},
"methodIdentifiers": {
"concatenate(string,string)": "266001d3",
"length(string)": "436a66e7"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"name": "str1",
"type": "string"
},
{
"name": "str2",
"type": "string"
}
],
"name": "concatenate",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "str",
"type": "string"
}
],
"name": "length",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.2+commit.1df8f40c"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"name": "str1",
"type": "string"
},
{
"name": "str2",
"type": "string"
}
],
"name": "concatenate",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "str",
"type": "string"
}
],
"name": "length",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Strings.sol": "Strings"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Strings.sol": {
"keccak256": "0x2bdc47b32ebecf9112534e99613d0f8120baf39c44216fe8d4bdc6ea486834ee",
"urls": [
"bzzr://8db1cf4d0b211bd22e15ec3e347372d6be5367dcea2e9bde81ee7591b1f328d6"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50604c80601d6000396000f3fe6080604052600080fdfea365627a7a72315820f39ad650f9dd00ece461f77b5486bea2679a1aa01670296b9833891262dfb9d36c6578706572696d656e74616cf564736f6c63430005110040",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4C DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 RETURN SWAP11 0xD6 POP 0xF9 0xDD STOP 0xEC 0xE4 PUSH2 0xF77B SLOAD DUP7 0xBE LOG2 PUSH8 0x9A1AA01670296B98 CALLER DUP10 SLT PUSH3 0xDFB9D3 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV GT STOP BLOCKHASH ",
"sourceMap": "59:1483:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;59:1483:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600080fdfea365627a7a72315820f39ad650f9dd00ece461f77b5486bea2679a1aa01670296b9833891262dfb9d36c6578706572696d656e74616cf564736f6c63430005110040",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 RETURN SWAP11 0xD6 POP 0xF9 0xDD STOP 0xEC 0xE4 PUSH2 0xF77B SLOAD DUP7 0xBE LOG2 PUSH8 0x9A1AA01670296B98 CALLER DUP10 SLT PUSH3 0xDFB9D3 PUSH13 0x6578706572696D656E74616CF5 PUSH5 0x736F6C6343 STOP SDIV GT STOP BLOCKHASH ",
"sourceMap": "59:1483:0:-;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "15200",
"executionCost": "69",
"totalCost": "15269"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Test.sol": "Structs"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Test.sol": {
"keccak256": "0xfb8bc9204d67546a1f77a53da8360a8bb2dda71d5b8c7551f4aa57ac255b0847",
"urls": [
"bzz-raw://4216bcf163dd2dfe9b2a81bd85ccc57c84d718e2937dc3a1074d0183b2787f4a",
"dweb:/ipfs/QmTtRUsiYnL6rZTh74nqP86SZwxx5Gd2fDReBWMgDAZcN7"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052731e0447b19bb6ecfdae1e4ae1694b0c3659614e4e6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507389d24a6b4ccb1b6faa2625fe562bdd9a23260359600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736b175474e89094c44da98b954eedeac495271d0f600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c586bef4a0992c495cf22e1aeee4e446cecdee0e600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a6009556000600a557361935cbdd02287b511119ddb11aeb42f1593b7ef600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395e6f48254609a6ee006f7d493c8e5fb97094cef600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a26e80e7dea86279c6d778d702cc413e6cffa777600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260056000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460056000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620004b7346200050f60201b60201c565b620004c834620005e860201b60201c565b33600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200086c565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051620005599062000786565b60006040518083038185875af1925050503d806000811462000598576040519150601f19603f3d011682016040523d82523d6000602084013e6200059d565b606091505b5050905080620005e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005db90620007ca565b60405180910390fd5b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401620006699291906200079d565b602060405180830381600087803b1580156200068457600080fd5b505af115801562000699573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620006bf9190810190620006da565b5050565b600081519050620006d48162000852565b92915050565b600060208284031215620006ed57600080fd5b6000620006fd84828501620006c3565b91505092915050565b620007118162000808565b82525050565b600062000726601283620007f7565b91507f6661696c656420746f20676574207765746800000000000000000000000000006000830152602082019050919050565b600062000768600083620007ec565b9150600082019050919050565b620007808162000848565b82525050565b6000620007938262000759565b9150819050919050565b6000604082019050620007b4600083018562000706565b620007c3602083018462000775565b9392505050565b60006020820190508181036000830152620007e58162000717565b9050919050565b600081905092915050565b600082825260208201905092915050565b6000620008158262000828565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6200085d816200081c565b81146200086957600080fd5b50565b613122806200087c6000396000f3fe6080604052600436106100fe5760003560e01c80638b41871311610095578063d285b7b411610064578063d285b7b4146102c2578063d702c0d8146102ed578063df1e664614610309578063df99a2b214610332578063e0bab4c41461034e576100fe565b80638b41871314610215578063ad5c46481461023e578063b826878814610269578063c8c61a79146102a6576100fe565b80637362377b116100d15780637362377b1461018e5780637e68f511146101a557806389476069146101c157806389a30271146101ea576100fe565b8063107c279f1461010057806312b246dd1461010a5780634b3fb7f8146101265780636036cba314610151575b005b610108610379565b005b610124600480360361011f9190810190612162565b610414565b005b34801561013257600080fd5b5061013b6104b8565b6040516101489190612a54565b60405180910390f35b34801561015d57600080fd5b5061017860048036036101739190810190611fb2565b6104de565b6040516101859190612ce5565b60405180910390f35b34801561019a57600080fd5b506101a36104f6565b005b6101bf60048036036101ba91908101906120a9565b610614565b005b3480156101cd57600080fd5b506101e860048036036101e39190810190611fb2565b6106ba565b005b3480156101f657600080fd5b506101ff61088b565b60405161020c9190612a54565b60405180910390f35b34801561022157600080fd5b5061023c600480360361023791908101906121f1565b6108b1565b005b34801561024a57600080fd5b50610253610a5d565b6040516102609190612a54565b60405180910390f35b34801561027557600080fd5b50610290600480360361028b9190810190611fb2565b610a83565b60405161029d9190612ce5565b60405180910390f35b6102c060048036036102bb9190810190612320565b610b18565b005b3480156102ce57600080fd5b506102d7610bb8565b6040516102e49190612ce5565b60405180910390f35b6103076004803603610302919081019061225d565b610bbe565b005b34801561031557600080fd5b50610330600480360361032b91908101906123b0565b610d26565b005b61034c600480360361034791908101906120a9565b610dc2565b005b34801561035a57600080fd5b50610363610e68565b6040516103709190612a54565b60405180910390f35b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040090612c25565b60405180910390fd5b61041234610e8e565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049b90612c25565b60405180910390fd5b6104b18585858585610f60565b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90612c25565b60405180910390fd5b600030905060008173ffffffffffffffffffffffffffffffffffffffff16319050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561060f573d6000803e3d6000fd5b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069b90612c25565b60405180910390fd5b6106b2868686868686611173565b505050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074190612c25565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107859190612a6f565b60206040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107d591908101906123d9565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610834929190612a8a565b602060405180830381600087803b15801561084e57600080fd5b505af1158015610862573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108869190810190612387565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093790612c85565b60405180910390fd5b600080600080606060006060888861095b9190810190611fdb565b965096509650965096509650965060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109a49190612a6f565b60206040518083038186803b1580156109bc57600080fd5b505afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109f491908101906123d9565b90508686820314610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3190612ca5565b60405180910390fd5b80600681905550610a4f8886898787876112b7565b505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390612cc5565b60405180910390fd5b60018103915050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90612c25565b60405180910390fd5b610bb383838361142b565b505050565b60065481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590612c25565b60405180910390fd5b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c899190612a6f565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd991908101906123d9565b905060608989838a8a8a8a8a8a604051602001610cfe99989796959493929190612b05565b6040516020818303038152906040529050610d1a8a8a83611624565b50505050505050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90612c25565b60405180910390fd5b610dbf81611a93565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990612c25565b60405180910390fd5b610e608686868686866112b7565b505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610ed690612a3f565b60006040518083038185875af1925050503d8060008114610f13576040519150601f19603f3d011682016040523d82523d6000602084013e610f18565b606091505b5050905080610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612c65565b60405180910390fd5b5050565b600085905060008590506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b8152600401610fee929190612adc565b602060405180830381600087803b15801561100857600080fd5b505af115801561101c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110409190810190612387565b508073ffffffffffffffffffffffffffffffffffffffff1663e2a7515e8484898989600a546040518763ffffffff1660e01b815260040161108696959493929190612bbd565b600060405180830381600087803b1580156110a057600080fd5b505af11580156110b4573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006040518363ffffffff1660e01b8152600401611116929190612ab3565b602060405180830381600087803b15801561113057600080fd5b505af1158015611144573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111689190810190612387565b505050505050505050565b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111ae9190612a6f565b60206040518083038186803b1580156111c657600080fd5b505afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111fe91908101906123d9565b905061120b87868661142b565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112469190612a6f565b60206040518083038186803b15801561125e57600080fd5b505afa158015611272573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061129691908101906123d9565b9050600082820390506112ac888a838888610f60565b505050505050505050565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112f29190612a6f565b60206040518083038186803b15801561130a57600080fd5b505afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061134291908101906123d9565b9050611352878787878787611173565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161138d9190612a6f565b60206040518083038186803b1580156113a557600080fd5b505afa1580156113b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113dd91908101906123d9565b9050818111611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612c45565b60405180910390fd5b5050505050505050565b60008390508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161148d929190612adc565b602060405180830381600087803b1580156114a757600080fd5b505af11580156114bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114df9190810190612387565b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634836040516115289190612a28565b60006040518083038185875af1925050503d8060008114611565576040519150601f19603f3d011682016040523d82523d6000602084013e61156a565b606091505b5050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006040518363ffffffff1660e01b81526004016115cb929190612ab3565b602060405180830381600087803b1580156115e557600080fd5b505af11580156115f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061161d9190810190612387565b5050505050565b8273ffffffffffffffffffffffffffffffffffffffff1663095ea7b36000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600185016040518363ffffffff1660e01b8152600401611683929190612adc565b602060405180830381600087803b15801561169d57600080fd5b505af11580156116b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116d59190810190612387565b506060600160405190808252806020026020018201604052801561171357816020015b611700611b68565b8152602001906001900390816116f85790505b5090506060600360405190808252806020026020018201604052801561175357816020015b611740611b98565b8152602001906001900390816117385790505b50905060405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200160008152508260008151811061178f57fe5b60200260200101819052506117a2611c04565b60405180608001604052806000151581526020016000808111156117c257fe5b81526020016000808111156117d357fe5b81526020018681525090506117e6611c42565b6001816000019060088111156117f857fe5b9081600881111561180557fe5b81525050600081602001818152505081816040018190525061182687610a83565b816060018181525050308160a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808360008151811061187557fe5b6020026020010181905250611888611c42565b60088160000190600881111561189a57fe5b908160088111156118a757fe5b815250506000816020018181525050308160a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050858160e00181905250808460018151811061190557fe5b6020026020010181905250611918611c42565b611920611c04565b604051806080016040528060011515815260200160008081111561194057fe5b815260200160008081111561195157fe5b815260200160018b01815250905060008260000190600881111561197157fe5b9081600881111561197e57fe5b81525050600082602001818152505080826040018190525061199f8a610a83565b826060018181525050308260a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081866002815181106119ee57fe5b60200260200101819052506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67a6a4588886040518363ffffffff1660e01b8152600401611a55929190612b86565b600060405180830381600087803b158015611a6f57600080fd5b505af1158015611a83573d6000803e3d6000fd5b5050505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611b12929190612adc565b602060405180830381600087803b158015611b2c57600080fd5b505af1158015611b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b649190810190612387565b5050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b60405180610100016040528060006008811115611bb157fe5b815260200160008152602001611bc5611cae565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b6040518060800160405280600015158152602001600080811115611c2457fe5b8152602001600080811115611c3557fe5b8152602001600081525090565b60405180610100016040528060006008811115611c5b57fe5b815260200160008152602001611c6f611cae565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b6040518060800160405280600015158152602001600080811115611cce57fe5b8152602001600080811115611cdf57fe5b8152602001600081525090565b600081359050611cfb81613083565b92915050565b600081359050611d108161309a565b92915050565b60008083601f840112611d2857600080fd5b8235905067ffffffffffffffff811115611d4157600080fd5b602083019150836020820283011115611d5957600080fd5b9250929050565b600082601f830112611d7157600080fd5b8135611d84611d7f82612d2d565b612d00565b91508181835260208401935060208101905083856020840282011115611da957600080fd5b60005b83811015611dd95781611dbf8882611f88565b845260208401935060208301925050600181019050611dac565b5050505092915050565b600082601f830112611df457600080fd5b8135611e07611e0282612d55565b612d00565b91508181835260208401935060208101905083856020840282011115611e2c57600080fd5b60005b83811015611e5c5781611e428882611f88565b845260208401935060208301925050600181019050611e2f565b5050505092915050565b600081519050611e75816130b1565b92915050565b60008083601f840112611e8d57600080fd5b8235905067ffffffffffffffff811115611ea657600080fd5b602083019150836001820283011115611ebe57600080fd5b9250929050565b600082601f830112611ed657600080fd5b8135611ee9611ee482612d7d565b612d00565b91508082526020830160208301858383011115611f0557600080fd5b611f10838284613009565b50505092915050565b600082601f830112611f2a57600080fd5b8135611f3d611f3882612da9565b612d00565b91508082526020830160208301858383011115611f5957600080fd5b611f64838284613009565b50505092915050565b600060408284031215611f7f57600080fd5b81905092915050565b600081359050611f97816130c8565b92915050565b600081519050611fac816130c8565b92915050565b600060208284031215611fc457600080fd5b6000611fd284828501611cec565b91505092915050565b600080600080600080600060e0888a031215611ff657600080fd5b60006120048a828b01611d01565b97505060206120158a828b01611f88565b96505060406120268a828b01611f88565b95505060606120378a828b01611d01565b945050608088013567ffffffffffffffff81111561205457600080fd5b6120608a828b01611ec5565b93505060a06120718a828b01611f88565b92505060c088013567ffffffffffffffff81111561208e57600080fd5b61209a8a828b01611d60565b91505092959891949750929550565b60008060008060008060c087890312156120c257600080fd5b60006120d089828a01611cec565b96505060206120e189828a01611cec565b95505060406120f289828a01611f88565b945050606087013567ffffffffffffffff81111561210f57600080fd5b61211b89828a01611f19565b935050608061212c89828a01611f88565b92505060a087013567ffffffffffffffff81111561214957600080fd5b61215589828a01611de3565b9150509295509295509295565b600080600080600060a0868803121561217a57600080fd5b600061218888828901611cec565b955050602061219988828901611cec565b94505060406121aa88828901611f88565b93505060606121bb88828901611f88565b925050608086013567ffffffffffffffff8111156121d857600080fd5b6121e488828901611de3565b9150509295509295909350565b6000806000806080858703121561220757600080fd5b600061221587828801611cec565b945050602061222687828801611f6d565b935050606085013567ffffffffffffffff81111561224357600080fd5b61224f87828801611e7b565b925092505092959194509250565b60008060008060008060008060c0898b03121561227957600080fd5b60006122878b828c01611cec565b98505060206122988b828c01611f88565b97505060406122a98b828c01611cec565b965050606089013567ffffffffffffffff8111156122c657600080fd5b6122d28b828c01611e7b565b955095505060806122e58b828c01611f88565b93505060a089013567ffffffffffffffff81111561230257600080fd5b61230e8b828c01611d16565b92509250509295985092959890939650565b60008060006060848603121561233557600080fd5b600061234386828701611cec565b935050602061235486828701611f88565b925050604084013567ffffffffffffffff81111561237157600080fd5b61237d86828701611f19565b9150509250925092565b60006020828403121561239957600080fd5b60006123a784828501611e66565b91505092915050565b6000602082840312156123c257600080fd5b60006123d084828501611f88565b91505092915050565b6000602082840312156123eb57600080fd5b60006123f984828501611f9d565b91505092915050565b600061240e83836128d3565b905092915050565b600061242283836129db565b60408301905092915050565b600061243a8383612a0a565b60208301905092915050565b61244f81612f67565b82525050565b61245e81612ed4565b82525050565b61246d81612ed4565b82525050565b600061247e82612e05565b6124888185612e63565b93508360208202850161249a85612dd5565b8060005b858110156124d657848403895281516124b78582612402565b94506124c283612e3c565b925060208a0199505060018101905061249e565b50829750879550505050505092915050565b60006124f382612e10565b6124fd8185612e74565b935061250883612de5565b8060005b838110156125395781516125208882612416565b975061252b83612e49565b92505060018101905061250c565b5085935050505092915050565b60006125528385612e85565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561258157600080fd5b602083029250612592838584613009565b82840190509392505050565b60006125a982612e1b565b6125b38185612e85565b93506125be83612df5565b8060005b838110156125ef5781516125d6888261242e565b97506125e183612e56565b9250506001810190506125c2565b5085935050505092915050565b61260581612ef8565b82525050565b60006126178385612ea7565b9350612624838584613009565b61262d8361304b565b840190509392505050565b600061264382612e31565b61264d8185612eb8565b935061265d818560208601613018565b80840191505092915050565b600061267482612e26565b61267e8185612e96565b935061268e818560208601613018565b6126978161304b565b840191505092915050565b6126ab81612f79565b82525050565b6126ba81612f9d565b82525050565b6126c981612faf565b82525050565b6126d881612fc1565b82525050565b6126e781612fd3565b82525050565b60006126fa601883612ec3565b91507f63616c6c6572206973206e6f7420746865206f776e65722100000000000000006000830152602082019050919050565b600061273a602683612ec3565b91507f456e642062616c616e6365206d7573742065786365656420737461727420626160008301527f6c616e63652e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006127a0601283612ec3565b91507f6661696c656420746f20676574207765746800000000000000000000000000006000830152602082019050919050565b60006127e0602c83612ec3565b91507f466c6173684c6f616e3a20636f756c642062652063616c6c656420627920447960008301527f447820706f6f6c206f6e6c7900000000000000000000000000000000000000006020830152604082019050919050565b6000612846601d83612ec3565b91507f636f6e747261637420646964206e6f742067657420746865206c6f616e0000006000830152602082019050919050565b6000612886600083612eb8565b9150600082019050919050565b60006128a0601c83612ec3565b91507f466c6173684c6f616e3a20556e737570706f7274656420746f6b656e000000006000830152602082019050919050565b6000610160830160008301516128ec60008601826126b1565b5060208301516128ff6020860182612a0a565b5060408301516129126040860182612986565b50606083015161292560c0860182612a0a565b50608083015161293860e0860182612a0a565b5060a083015161294c610100860182612455565b5060c0830151612960610120860182612a0a565b5060e08301518482036101408601526129798282612669565b9150508091505092915050565b60808201600082015161299c60008501826125fc565b5060208201516129af60208501826126c0565b5060408201516129c260408501826126cf565b5060608201516129d56060850182612a0a565b50505050565b6040820160008201516129f16000850182612455565b506020820151612a046020850182612a0a565b50505050565b612a1381612f5d565b82525050565b612a2281612f5d565b82525050565b6000612a348284612638565b915081905092915050565b6000612a4a82612879565b9150819050919050565b6000602082019050612a696000830184612464565b92915050565b6000602082019050612a846000830184612446565b92915050565b6000604082019050612a9f6000830185612446565b612aac6020830184612a19565b9392505050565b6000604082019050612ac86000830185612464565b612ad560208301846126de565b9392505050565b6000604082019050612af16000830185612464565b612afe6020830184612a19565b9392505050565b600060e082019050612b1a600083018c612464565b612b27602083018b612a19565b612b34604083018a612a19565b612b416060830189612464565b8181036080830152612b5481878961260b565b9050612b6360a0830186612a19565b81810360c0830152612b76818486612546565b90509a9950505050505050505050565b60006040820190508181036000830152612ba081856124e8565b90508181036020830152612bb48184612473565b90509392505050565b600060c082019050612bd260008301896126a2565b612bdf60208301886126a2565b612bec6040830187612a19565b612bf96060830186612a19565b8181036080830152612c0b818561259e565b9050612c1a60a0830184612a19565b979650505050505050565b60006020820190508181036000830152612c3e816126ed565b9050919050565b60006020820190508181036000830152612c5e8161272d565b9050919050565b60006020820190508181036000830152612c7e81612793565b9050919050565b60006020820190508181036000830152612c9e816127d3565b9050919050565b60006020820190508181036000830152612cbe81612839565b9050919050565b60006020820190508181036000830152612cde81612893565b9050919050565b6000602082019050612cfa6000830184612a19565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612d2357600080fd5b8060405250919050565b600067ffffffffffffffff821115612d4457600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612d6c57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612d9457600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115612dc057600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612edf82612f3d565b9050919050565b6000612ef182612f3d565b9050919050565b60008115159050919050565b6000819050612f128261305c565b919050565b6000819050612f2582613069565b919050565b6000819050612f3882613076565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612f7282612fe5565b9050919050565b6000612f8482612f8b565b9050919050565b6000612f9682612f3d565b9050919050565b6000612fa882612f04565b9050919050565b6000612fba82612f17565b9050919050565b6000612fcc82612f2a565b9050919050565b6000612fde82612f5d565b9050919050565b6000612ff082612ff7565b9050919050565b600061300282612f3d565b9050919050565b82818337600083830152505050565b60005b8381101561303657808201518184015260208101905061301b565b83811115613045576000848401525b50505050565b6000601f19601f8301169050919050565b6009811061306657fe5b50565b6001811061307357fe5b50565b6001811061308057fe5b50565b61308c81612ed4565b811461309757600080fd5b50565b6130a381612ee6565b81146130ae57600080fd5b50565b6130ba81612ef8565b81146130c557600080fd5b50565b6130d181612f5d565b81146130dc57600080fd5b5056fea365627a7a72315820e0a73e38faaa1f6ff3845ad17f9b8251352caba26f1c5e07d0061d67cd163c656c6578706572696d656e74616cf564736f6c63430005110040",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH20 0x1E0447B19BB6ECFDAE1E4AE1694B0C3659614E4E PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0xC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0x89D24A6B4CCB1B6FAA2625FE562BDD9A23260359 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 PUSH1 0x3 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0x6B175474E89094C44DA98B954EEDEAC495271D0F PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0xC586BEF4A0992C495CF22E1AEEE4E446CECDEE0E PUSH1 0x8 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0xA PUSH1 0x9 SSTORE PUSH1 0x0 PUSH1 0xA SSTORE PUSH20 0x61935CBDD02287B511119DDB11AEB42F1593B7EF PUSH1 0xB PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0x95E6F48254609A6EE006F7D493C8E5FB97094CEF PUSH1 0xC PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0xA26E80E7DEA86279C6D778D702CC413E6CFFA777 PUSH1 0xD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x5 PUSH1 0x0 PUSH1 0x1 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 DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x5 PUSH1 0x0 PUSH1 0x2 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 DUP2 SWAP1 SSTORE POP PUSH1 0x3 PUSH1 0x5 PUSH1 0x0 PUSH1 0x3 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 DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 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 DUP2 SWAP1 SSTORE POP PUSH3 0x4B7 CALLVALUE PUSH3 0x50F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x4C8 CALLVALUE PUSH3 0x5E8 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST CALLER PUSH1 0x7 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH3 0x86C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH3 0x559 SWAP1 PUSH3 0x786 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH3 0x598 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH3 0x59D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH3 0x5E4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x5DB SWAP1 PUSH3 0x7CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0xD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x669 SWAP3 SWAP2 SWAP1 PUSH3 0x79D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x684 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x699 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH3 0x6BF SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x6DA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x6D4 DUP2 PUSH3 0x852 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x6ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x6FD DUP5 DUP3 DUP6 ADD PUSH3 0x6C3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x711 DUP2 PUSH3 0x808 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x726 PUSH1 0x12 DUP4 PUSH3 0x7F7 JUMP JUMPDEST SWAP2 POP PUSH32 0x6661696C656420746F2067657420776574680000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x768 PUSH1 0x0 DUP4 PUSH3 0x7EC JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x780 DUP2 PUSH3 0x848 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x793 DUP3 PUSH3 0x759 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0x7B4 PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x706 JUMP JUMPDEST PUSH3 0x7C3 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x775 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH3 0x7E5 DUP2 PUSH3 0x717 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x815 DUP3 PUSH3 0x828 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x85D DUP2 PUSH3 0x81C JUMP JUMPDEST DUP2 EQ PUSH3 0x869 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3122 DUP1 PUSH3 0x87C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xFE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B418713 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xD285B7B4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xD285B7B4 EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0xD702C0D8 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0xDF1E6646 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xDF99A2B2 EQ PUSH2 0x332 JUMPI DUP1 PUSH4 0xE0BAB4C4 EQ PUSH2 0x34E JUMPI PUSH2 0xFE JUMP JUMPDEST DUP1 PUSH4 0x8B418713 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xB8268788 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xC8C61A79 EQ PUSH2 0x2A6 JUMPI PUSH2 0xFE JUMP JUMPDEST DUP1 PUSH4 0x7362377B GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x7362377B EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0x7E68F511 EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x89476069 EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x89A30271 EQ PUSH2 0x1EA JUMPI PUSH2 0xFE JUMP JUMPDEST DUP1 PUSH4 0x107C279F EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x12B246DD EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x4B3FB7F8 EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x6036CBA3 EQ PUSH2 0x151 JUMPI JUMPDEST STOP JUMPDEST PUSH2 0x108 PUSH2 0x379 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x124 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x11F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x414 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x148 SWAP2 SWAP1 PUSH2 0x2A54 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x173 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FB2 JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A3 PUSH2 0x4F6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x1BA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x1E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FB2 JUMP JUMPDEST PUSH2 0x6BA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH2 0x88B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x2A54 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x237 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x8B1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0xA5D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x2A54 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x28B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FB2 JUMP JUMPDEST PUSH2 0xA83 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x2BB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2320 JUMP JUMPDEST PUSH2 0xB18 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D7 PUSH2 0xBB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E4 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x302 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0xBBE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x330 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x32B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23B0 JUMP JUMPDEST PUSH2 0xD26 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x347 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH2 0xDC2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0xE68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x2A54 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x409 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x400 SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x412 CALLVALUE PUSH2 0xE8E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x4A4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x49B SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4B1 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xF60 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x586 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x57D SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 ADDRESS SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x60F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6A4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x69B SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6B2 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1173 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x785 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x7D5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x834 SWAP3 SWAP2 SWAP1 PUSH2 0x2A8A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x862 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x886 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x940 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x937 SWAP1 PUSH2 0x2C85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 PUSH1 0x60 DUP9 DUP9 PUSH2 0x95B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FDB JUMP JUMPDEST SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A4 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x9F4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP DUP7 DUP7 DUP3 SUB EQ PUSH2 0xA3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA31 SWAP1 PUSH2 0x2CA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x6 DUP2 SWAP1 SSTORE POP PUSH2 0xA4F DUP9 DUP7 DUP10 DUP8 DUP8 DUP8 PUSH2 0x12B7 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ ISZERO PUSH2 0xB0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB03 SWAP1 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 SUB SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB9F SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBB3 DUP4 DUP4 DUP4 PUSH2 0x142B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC4E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC45 SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0xCD9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x60 DUP10 DUP10 DUP4 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCFE SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B05 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xD1A DUP11 DUP11 DUP4 PUSH2 0x1624 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xDB6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDAD SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDBF DUP2 PUSH2 0x1A93 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE49 SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE60 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x12B7 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0xED6 SWAP1 PUSH2 0x2A3F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xF13 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xF18 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xF5C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF53 SWAP1 PUSH2 0x2C65 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 SWAP1 POP PUSH1 0x0 DUP6 SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFEE SWAP3 SWAP2 SWAP1 PUSH2 0x2ADC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1008 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x101C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1040 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE2A7515E DUP5 DUP5 DUP10 DUP10 DUP10 PUSH1 0xA SLOAD PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1086 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2BBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1116 SWAP3 SWAP2 SWAP1 PUSH2 0x2AB3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1144 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1168 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11AE SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x11FE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP PUSH2 0x120B DUP8 DUP7 DUP7 PUSH2 0x142B JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1246 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x125E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1296 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 DUP3 SUB SWAP1 POP PUSH2 0x12AC DUP9 DUP11 DUP4 DUP9 DUP9 PUSH2 0xF60 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12F2 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x130A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x131E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1342 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP PUSH2 0x1352 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1173 JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x138D SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x13DD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT PUSH2 0x1421 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1418 SWAP1 PUSH2 0x2C45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x148D SWAP3 SWAP2 SWAP1 PUSH2 0x2ADC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x14DF SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLVALUE DUP4 PUSH1 0x40 MLOAD PUSH2 0x1528 SWAP2 SWAP1 PUSH2 0x2A28 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1565 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x156A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CB SWAP3 SWAP2 SWAP1 PUSH2 0x2AB3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x161D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP6 ADD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1683 SWAP3 SWAP2 SWAP1 PUSH2 0x2ADC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x169D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x16D5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP PUSH1 0x60 PUSH1 0x1 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1713 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x1700 PUSH2 0x1B68 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x16F8 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x60 PUSH1 0x3 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1753 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x1740 PUSH2 0x1B98 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x1738 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x178F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x17A2 PUSH2 0x1C04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x17C2 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x17D3 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE POP SWAP1 POP PUSH2 0x17E6 PUSH2 0x1C42 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD SWAP1 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x17F8 JUMPI INVALID JUMPDEST SWAP1 DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1805 JUMPI INVALID JUMPDEST DUP2 MSTORE POP POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP DUP2 DUP2 PUSH1 0x40 ADD DUP2 SWAP1 MSTORE POP PUSH2 0x1826 DUP8 PUSH2 0xA83 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP ADDRESS DUP2 PUSH1 0xA0 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1875 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x1888 PUSH2 0x1C42 JUMP JUMPDEST PUSH1 0x8 DUP2 PUSH1 0x0 ADD SWAP1 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x189A JUMPI INVALID JUMPDEST SWAP1 DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x18A7 JUMPI INVALID JUMPDEST DUP2 MSTORE POP POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP ADDRESS DUP2 PUSH1 0xA0 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP6 DUP2 PUSH1 0xE0 ADD DUP2 SWAP1 MSTORE POP DUP1 DUP5 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1905 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x1918 PUSH2 0x1C42 JUMP JUMPDEST PUSH2 0x1920 PUSH2 0x1C04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1940 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1951 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP12 ADD DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD SWAP1 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1971 JUMPI INVALID JUMPDEST SWAP1 DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x197E JUMPI INVALID JUMPDEST DUP2 MSTORE POP POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP3 PUSH1 0x40 ADD DUP2 SWAP1 MSTORE POP PUSH2 0x199F DUP11 PUSH2 0xA83 JUMP JUMPDEST DUP3 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP ADDRESS DUP3 PUSH1 0xA0 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 DUP7 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0x19EE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA67A6A45 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A55 SWAP3 SWAP2 SWAP1 PUSH2 0x2B86 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A83 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0xD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B12 SWAP3 SWAP2 SWAP1 PUSH2 0x2ADC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B40 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1B64 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1BB1 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BC5 PUSH2 0x1CAE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1C24 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1C35 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1C5B JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C6F PUSH2 0x1CAE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1CCE JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1CDF JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CFB DUP2 PUSH2 0x3083 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D10 DUP2 PUSH2 0x309A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1D28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1D59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1D71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D84 PUSH2 0x1D7F DUP3 PUSH2 0x2D2D JUMP JUMPDEST PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1DA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1DD9 JUMPI DUP2 PUSH2 0x1DBF DUP9 DUP3 PUSH2 0x1F88 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1DAC JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1DF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1E07 PUSH2 0x1E02 DUP3 PUSH2 0x2D55 JUMP JUMPDEST PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1E2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1E5C JUMPI DUP2 PUSH2 0x1E42 DUP9 DUP3 PUSH2 0x1F88 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1E2F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E75 DUP2 PUSH2 0x30B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1E8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1EBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1ED6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EE9 PUSH2 0x1EE4 DUP3 PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1F05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F10 DUP4 DUP3 DUP5 PUSH2 0x3009 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F3D PUSH2 0x1F38 DUP3 PUSH2 0x2DA9 JUMP JUMPDEST PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1F59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F64 DUP4 DUP3 DUP5 PUSH2 0x3009 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F97 DUP2 PUSH2 0x30C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1FAC DUP2 PUSH2 0x30C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FD2 DUP5 DUP3 DUP6 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1FF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2004 DUP11 DUP3 DUP12 ADD PUSH2 0x1D01 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x2015 DUP11 DUP3 DUP12 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x2026 DUP11 DUP3 DUP12 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x2037 DUP11 DUP3 DUP12 ADD PUSH2 0x1D01 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2054 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2060 DUP11 DUP3 DUP12 ADD PUSH2 0x1EC5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x2071 DUP11 DUP3 DUP12 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x208E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x209A DUP11 DUP3 DUP12 ADD PUSH2 0x1D60 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x20C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x20D0 DUP10 DUP3 DUP11 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x20E1 DUP10 DUP3 DUP11 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x20F2 DUP10 DUP3 DUP11 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x211B DUP10 DUP3 DUP11 ADD PUSH2 0x1F19 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x212C DUP10 DUP3 DUP11 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2155 DUP10 DUP3 DUP11 ADD PUSH2 0x1DE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x217A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2188 DUP9 DUP3 DUP10 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2199 DUP9 DUP3 DUP10 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x21AA DUP9 DUP3 DUP10 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x21BB DUP9 DUP3 DUP10 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x21D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21E4 DUP9 DUP3 DUP10 ADD PUSH2 0x1DE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2215 DUP8 DUP3 DUP9 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2226 DUP8 DUP3 DUP9 ADD PUSH2 0x1F6D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x224F DUP8 DUP3 DUP9 ADD PUSH2 0x1E7B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2287 DUP12 DUP3 DUP13 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x2298 DUP12 DUP3 DUP13 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x22A9 DUP12 DUP3 DUP13 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22D2 DUP12 DUP3 DUP13 ADD PUSH2 0x1E7B JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x80 PUSH2 0x22E5 DUP12 DUP3 DUP13 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x230E DUP12 DUP3 DUP13 ADD PUSH2 0x1D16 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2343 DUP7 DUP3 DUP8 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2354 DUP7 DUP3 DUP8 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2371 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x237D DUP7 DUP3 DUP8 ADD PUSH2 0x1F19 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x23A7 DUP5 DUP3 DUP6 ADD PUSH2 0x1E66 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x23D0 DUP5 DUP3 DUP6 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x23F9 DUP5 DUP3 DUP6 ADD PUSH2 0x1F9D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240E DUP4 DUP4 PUSH2 0x28D3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2422 DUP4 DUP4 PUSH2 0x29DB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x243A DUP4 DUP4 PUSH2 0x2A0A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x244F DUP2 PUSH2 0x2F67 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x245E DUP2 PUSH2 0x2ED4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x246D DUP2 PUSH2 0x2ED4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247E DUP3 PUSH2 0x2E05 JUMP JUMPDEST PUSH2 0x2488 DUP2 DUP6 PUSH2 0x2E63 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x249A DUP6 PUSH2 0x2DD5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x24D6 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x24B7 DUP6 DUP3 PUSH2 0x2402 JUMP JUMPDEST SWAP5 POP PUSH2 0x24C2 DUP4 PUSH2 0x2E3C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x249E JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24F3 DUP3 PUSH2 0x2E10 JUMP JUMPDEST PUSH2 0x24FD DUP2 DUP6 PUSH2 0x2E74 JUMP JUMPDEST SWAP4 POP PUSH2 0x2508 DUP4 PUSH2 0x2DE5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2539 JUMPI DUP2 MLOAD PUSH2 0x2520 DUP9 DUP3 PUSH2 0x2416 JUMP JUMPDEST SWAP8 POP PUSH2 0x252B DUP4 PUSH2 0x2E49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x250C JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2552 DUP4 DUP6 PUSH2 0x2E85 JUMP JUMPDEST SWAP4 POP PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x2581 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 MUL SWAP3 POP PUSH2 0x2592 DUP4 DUP6 DUP5 PUSH2 0x3009 JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25A9 DUP3 PUSH2 0x2E1B JUMP JUMPDEST PUSH2 0x25B3 DUP2 DUP6 PUSH2 0x2E85 JUMP JUMPDEST SWAP4 POP PUSH2 0x25BE DUP4 PUSH2 0x2DF5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25EF JUMPI DUP2 MLOAD PUSH2 0x25D6 DUP9 DUP3 PUSH2 0x242E JUMP JUMPDEST SWAP8 POP PUSH2 0x25E1 DUP4 PUSH2 0x2E56 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x25C2 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2605 DUP2 PUSH2 0x2EF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2617 DUP4 DUP6 PUSH2 0x2EA7 JUMP JUMPDEST SWAP4 POP PUSH2 0x2624 DUP4 DUP6 DUP5 PUSH2 0x3009 JUMP JUMPDEST PUSH2 0x262D DUP4 PUSH2 0x304B JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2643 DUP3 PUSH2 0x2E31 JUMP JUMPDEST PUSH2 0x264D DUP2 DUP6 PUSH2 0x2EB8 JUMP JUMPDEST SWAP4 POP PUSH2 0x265D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3018 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2674 DUP3 PUSH2 0x2E26 JUMP JUMPDEST PUSH2 0x267E DUP2 DUP6 PUSH2 0x2E96 JUMP JUMPDEST SWAP4 POP PUSH2 0x268E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3018 JUMP JUMPDEST PUSH2 0x2697 DUP2 PUSH2 0x304B JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x26AB DUP2 PUSH2 0x2F79 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26BA DUP2 PUSH2 0x2F9D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26C9 DUP2 PUSH2 0x2FAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26D8 DUP2 PUSH2 0x2FC1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26E7 DUP2 PUSH2 0x2FD3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26FA PUSH1 0x18 DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x63616C6C6572206973206E6F7420746865206F776E6572210000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x273A PUSH1 0x26 DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x456E642062616C616E6365206D75737420657863656564207374617274206261 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C616E63652E0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27A0 PUSH1 0x12 DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x6661696C656420746F2067657420776574680000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27E0 PUSH1 0x2C DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x466C6173684C6F616E3A20636F756C642062652063616C6C6564206279204479 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x447820706F6F6C206F6E6C790000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2846 PUSH1 0x1D DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x636F6E747261637420646964206E6F742067657420746865206C6F616E000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2886 PUSH1 0x0 DUP4 PUSH2 0x2EB8 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28A0 PUSH1 0x1C DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x466C6173684C6F616E3A20556E737570706F7274656420746F6B656E00000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x28EC PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x26B1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x28FF PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2912 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x2986 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2925 PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x2938 PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x294C PUSH2 0x100 DUP7 ADD DUP3 PUSH2 0x2455 JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x2960 PUSH2 0x120 DUP7 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x140 DUP7 ADD MSTORE PUSH2 0x2979 DUP3 DUP3 PUSH2 0x2669 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x299C PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x25FC JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x29AF PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x26C0 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x29C2 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x26CF JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x29D5 PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x29F1 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x2455 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x2A04 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2A13 DUP2 PUSH2 0x2F5D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2A22 DUP2 PUSH2 0x2F5D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A34 DUP3 DUP5 PUSH2 0x2638 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A4A DUP3 PUSH2 0x2879 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2A69 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2464 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2A84 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2A9F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2446 JUMP JUMPDEST PUSH2 0x2AAC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A19 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2AC8 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2464 JUMP JUMPDEST PUSH2 0x2AD5 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26DE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2AF1 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2464 JUMP JUMPDEST PUSH2 0x2AFE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A19 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 ADD SWAP1 POP PUSH2 0x2B1A PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x2464 JUMP JUMPDEST PUSH2 0x2B27 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2A19 JUMP JUMPDEST PUSH2 0x2B34 PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x2A19 JUMP JUMPDEST PUSH2 0x2B41 PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x2464 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2B54 DUP2 DUP8 DUP10 PUSH2 0x260B JUMP JUMPDEST SWAP1 POP PUSH2 0x2B63 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x2A19 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x2B76 DUP2 DUP5 DUP7 PUSH2 0x2546 JUMP JUMPDEST SWAP1 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2BA0 DUP2 DUP6 PUSH2 0x24E8 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2BB4 DUP2 DUP5 PUSH2 0x2473 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH2 0x2BD2 PUSH1 0x0 DUP4 ADD DUP10 PUSH2 0x26A2 JUMP JUMPDEST PUSH2 0x2BDF PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x26A2 JUMP JUMPDEST PUSH2 0x2BEC PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x2A19 JUMP JUMPDEST PUSH2 0x2BF9 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x2A19 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2C0B DUP2 DUP6 PUSH2 0x259E JUMP JUMPDEST SWAP1 POP PUSH2 0x2C1A PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0x2A19 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C3E DUP2 PUSH2 0x26ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C5E DUP2 PUSH2 0x272D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C7E DUP2 PUSH2 0x2793 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C9E DUP2 PUSH2 0x27D3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2CBE DUP2 PUSH2 0x2839 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2CDE DUP2 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2CFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2A19 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2DC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EDF DUP3 PUSH2 0x2F3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF1 DUP3 PUSH2 0x2F3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x2F12 DUP3 PUSH2 0x305C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x2F25 DUP3 PUSH2 0x3069 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x2F38 DUP3 PUSH2 0x3076 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F72 DUP3 PUSH2 0x2FE5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F84 DUP3 PUSH2 0x2F8B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F96 DUP3 PUSH2 0x2F3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA8 DUP3 PUSH2 0x2F04 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FBA DUP3 PUSH2 0x2F17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCC DUP3 PUSH2 0x2F2A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FDE DUP3 PUSH2 0x2F5D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FF0 DUP3 PUSH2 0x2FF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3002 DUP3 PUSH2 0x2F3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3036 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x301B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3045 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 DUP2 LT PUSH2 0x3066 JUMPI INVALID JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 DUP2 LT PUSH2 0x3073 JUMPI INVALID JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 DUP2 LT PUSH2 0x3080 JUMPI INVALID JUMPDEST POP JUMP JUMPDEST PUSH2 0x308C DUP2 PUSH2 0x2ED4 JUMP JUMPDEST DUP2 EQ PUSH2 0x3097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x30A3 DUP2 PUSH2 0x2EE6 JUMP JUMPDEST DUP2 EQ PUSH2 0x30AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x30BA DUP2 PUSH2 0x2EF8 JUMP JUMPDEST DUP2 EQ PUSH2 0x30C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x30D1 DUP2 PUSH2 0x2F5D JUMP JUMPDEST DUP2 EQ PUSH2 0x30DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xE0 0xA7 RETURNDATACOPY CODESIZE STATICCALL 0xAA 0x1F PUSH16 0xF3845AD17F9B8251352CABA26F1C5E07 0xD0 MOD SAR PUSH8 0xCD163C656C657870 PUSH6 0x72696D656E74 PUSH2 0x6CF5 PUSH5 0x736F6C6343 STOP SDIV GT STOP BLOCKHASH ",
"sourceMap": "5738:6929:0:-;;;2681:42;2656:68;;;;;;;;;;;;;;;;;;;;2753:42;2731:64;;;;;;;;;;;;;;;;;;;;2822:42;2801:63;;;;;;;;;;;;;;;;;;;;2892:42;2870:64;;;;;;;;;;;;;;;;;;;;2961:42;2940:63;;;;;;;;;;;;;;;;;;;;5903:42;5875:70;;;;;;;;;;;;;;;;;;;;5967:2;5951:18;;5991:1;5975:17;;6048:42;6017:73;;;;;;;;;;;;;;;;;;;;6130:42;6096:76;;;;;;;;;;;;;;;;;;;;6206:42;6178:70;;;;;;;;;;;;;;;;;;;;3111:1;3092:10;:16;3103:4;;;;;;;;;;;3092:16;;;;;;;;;;;;;;;:20;;;;3140:1;3122:10;:15;3133:3;;;;;;;;;;;3122:15;;;;;;;;;;;;;;;:19;;;;3170:1;3151:10;:16;3162:4;;;;;;;;;;;3151:16;;;;;;;;;;;;;;;:20;;;;3199:1;3181:10;:15;3192:3;;;;;;;;;;;3181:15;;;;;;;;;;;;;;;:19;;;;6520;6529:9;6520:8;;;:19;;:::i;:::-;6549:23;6562:9;6549:12;;;:23;;:::i;:::-;6590:10;6582:5;;:18;;;;;;;;;;;;;;;;;;5738:6929;;11735:156;11790:12;11808:4;;;;;;;;;;;:9;;11824:7;11808:28;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;11789:47:0;;;11854:7;11846:38;;;;;;;;;;;;;;;;;;;;;;11735:156;;:::o;11996:113::-;12061:4;;;;;;;;;;;12054:20;;;12075:17;;;;;;;;;;;12094:7;12054:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12054:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12054:48:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12054:48:0;;;;;;;;;;11996:113;:::o;5:128:-1:-;;86:6;80:13;71:22;;98:30;122:5;98:30;;;65:68;;;;;140:257;;252:2;240:9;231:7;227:23;223:32;220:2;;;268:1;265;258:12;220:2;303:1;320:61;373:7;364:6;353:9;349:22;320:61;;;310:71;;282:105;214:183;;;;;404:113;487:24;505:5;487:24;;;482:3;475:37;469:48;;;525:318;;685:67;749:2;744:3;685:67;;;678:74;;785:20;781:1;776:3;772:11;765:41;834:2;829:3;825:12;818:19;;671:172;;;;852:296;;1029:83;1110:1;1105:3;1029:83;;;1022:90;;1140:1;1135:3;1131:11;1124:18;;1015:133;;;;1156:113;1239:24;1257:5;1239:24;;;1234:3;1227:37;1221:48;;;1276:370;;1474:147;1617:3;1474:147;;;1467:154;;1638:3;1631:10;;1455:191;;;;1653:324;;1799:2;1788:9;1784:18;1776:26;;1813:71;1881:1;1870:9;1866:17;1857:6;1813:71;;;1895:72;1963:2;1952:9;1948:18;1939:6;1895:72;;;1770:207;;;;;;1984:407;;2175:2;2164:9;2160:18;2152:26;;2225:9;2219:4;2215:20;2211:1;2200:9;2196:17;2189:47;2250:131;2376:4;2250:131;;;2242:139;;2146:245;;;;2399:144;;2534:3;2519:18;;2512:31;;;;;2552:163;;2667:6;2662:3;2655:19;2704:4;2699:3;2695:14;2680:29;;2648:67;;;;;2723:91;;2785:24;2803:5;2785:24;;;2774:35;;2768:46;;;;2821:85;;2894:5;2887:13;2880:21;2869:32;;2863:43;;;;2913:121;;2986:42;2979:5;2975:54;2964:65;;2958:76;;;;3041:72;;3103:5;3092:16;;3086:27;;;;3120:111;3186:21;3201:5;3186:21;;;3179:5;3176:32;3166:2;;3222:1;3219;3212:12;3166:2;3160:71;;5738:6929:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100fe5760003560e01c80638b41871311610095578063d285b7b411610064578063d285b7b4146102c2578063d702c0d8146102ed578063df1e664614610309578063df99a2b214610332578063e0bab4c41461034e576100fe565b80638b41871314610215578063ad5c46481461023e578063b826878814610269578063c8c61a79146102a6576100fe565b80637362377b116100d15780637362377b1461018e5780637e68f511146101a557806389476069146101c157806389a30271146101ea576100fe565b8063107c279f1461010057806312b246dd1461010a5780634b3fb7f8146101265780636036cba314610151575b005b610108610379565b005b610124600480360361011f9190810190612162565b610414565b005b34801561013257600080fd5b5061013b6104b8565b6040516101489190612a54565b60405180910390f35b34801561015d57600080fd5b5061017860048036036101739190810190611fb2565b6104de565b6040516101859190612ce5565b60405180910390f35b34801561019a57600080fd5b506101a36104f6565b005b6101bf60048036036101ba91908101906120a9565b610614565b005b3480156101cd57600080fd5b506101e860048036036101e39190810190611fb2565b6106ba565b005b3480156101f657600080fd5b506101ff61088b565b60405161020c9190612a54565b60405180910390f35b34801561022157600080fd5b5061023c600480360361023791908101906121f1565b6108b1565b005b34801561024a57600080fd5b50610253610a5d565b6040516102609190612a54565b60405180910390f35b34801561027557600080fd5b50610290600480360361028b9190810190611fb2565b610a83565b60405161029d9190612ce5565b60405180910390f35b6102c060048036036102bb9190810190612320565b610b18565b005b3480156102ce57600080fd5b506102d7610bb8565b6040516102e49190612ce5565b60405180910390f35b6103076004803603610302919081019061225d565b610bbe565b005b34801561031557600080fd5b50610330600480360361032b91908101906123b0565b610d26565b005b61034c600480360361034791908101906120a9565b610dc2565b005b34801561035a57600080fd5b50610363610e68565b6040516103709190612a54565b60405180910390f35b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040090612c25565b60405180910390fd5b61041234610e8e565b565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049b90612c25565b60405180910390fd5b6104b18585858585610f60565b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057d90612c25565b60405180910390fd5b600030905060008173ffffffffffffffffffffffffffffffffffffffff16319050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561060f573d6000803e3d6000fd5b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069b90612c25565b60405180910390fd5b6106b2868686868686611173565b505050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461074a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074190612c25565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107859190612a6f565b60206040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107d591908101906123d9565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610834929190612a8a565b602060405180830381600087803b15801561084e57600080fd5b505af1158015610862573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108869190810190612387565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093790612c85565b60405180910390fd5b600080600080606060006060888861095b9190810190611fdb565b965096509650965096509650965060008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109a49190612a6f565b60206040518083038186803b1580156109bc57600080fd5b505afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109f491908101906123d9565b90508686820314610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3190612ca5565b60405180910390fd5b80600681905550610a4f8886898787876112b7565b505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390612cc5565b60405180910390fd5b60018103915050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90612c25565b60405180910390fd5b610bb383838361142b565b505050565b60065481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4590612c25565b60405180910390fd5b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c899190612a6f565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cd991908101906123d9565b905060608989838a8a8a8a8a8a604051602001610cfe99989796959493929190612b05565b6040516020818303038152906040529050610d1a8a8a83611624565b50505050505050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90612c25565b60405180910390fd5b610dbf81611a93565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990612c25565b60405180910390fd5b610e608686868686866112b7565b505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051610ed690612a3f565b60006040518083038185875af1925050503d8060008114610f13576040519150601f19603f3d011682016040523d82523d6000602084013e610f18565b606091505b5050905080610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612c65565b60405180910390fd5b5050565b600085905060008590506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518363ffffffff1660e01b8152600401610fee929190612adc565b602060405180830381600087803b15801561100857600080fd5b505af115801561101c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110409190810190612387565b508073ffffffffffffffffffffffffffffffffffffffff1663e2a7515e8484898989600a546040518763ffffffff1660e01b815260040161108696959493929190612bbd565b600060405180830381600087803b1580156110a057600080fd5b505af11580156110b4573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006040518363ffffffff1660e01b8152600401611116929190612ab3565b602060405180830381600087803b15801561113057600080fd5b505af1158015611144573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111689190810190612387565b505050505050505050565b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111ae9190612a6f565b60206040518083038186803b1580156111c657600080fd5b505afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111fe91908101906123d9565b905061120b87868661142b565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112469190612a6f565b60206040518083038186803b15801561125e57600080fd5b505afa158015611272573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061129691908101906123d9565b9050600082820390506112ac888a838888610f60565b505050505050505050565b60008673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112f29190612a6f565b60206040518083038186803b15801561130a57600080fd5b505afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061134291908101906123d9565b9050611352878787878787611173565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161138d9190612a6f565b60206040518083038186803b1580156113a557600080fd5b505afa1580156113b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113dd91908101906123d9565b9050818111611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890612c45565b60405180910390fd5b5050505050505050565b60008390508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161148d929190612adc565b602060405180830381600087803b1580156114a757600080fd5b505af11580156114bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114df9190810190612387565b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634836040516115289190612a28565b60006040518083038185875af1925050503d8060008114611565576040519150601f19603f3d011682016040523d82523d6000602084013e61156a565b606091505b5050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660006040518363ffffffff1660e01b81526004016115cb929190612ab3565b602060405180830381600087803b1580156115e557600080fd5b505af11580156115f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061161d9190810190612387565b5050505050565b8273ffffffffffffffffffffffffffffffffffffffff1663095ea7b36000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600185016040518363ffffffff1660e01b8152600401611683929190612adc565b602060405180830381600087803b15801561169d57600080fd5b505af11580156116b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116d59190810190612387565b506060600160405190808252806020026020018201604052801561171357816020015b611700611b68565b8152602001906001900390816116f85790505b5090506060600360405190808252806020026020018201604052801561175357816020015b611740611b98565b8152602001906001900390816117385790505b50905060405180604001604052803073ffffffffffffffffffffffffffffffffffffffff16815260200160008152508260008151811061178f57fe5b60200260200101819052506117a2611c04565b60405180608001604052806000151581526020016000808111156117c257fe5b81526020016000808111156117d357fe5b81526020018681525090506117e6611c42565b6001816000019060088111156117f857fe5b9081600881111561180557fe5b81525050600081602001818152505081816040018190525061182687610a83565b816060018181525050308160a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808360008151811061187557fe5b6020026020010181905250611888611c42565b60088160000190600881111561189a57fe5b908160088111156118a757fe5b815250506000816020018181525050308160a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050858160e00181905250808460018151811061190557fe5b6020026020010181905250611918611c42565b611920611c04565b604051806080016040528060011515815260200160008081111561194057fe5b815260200160008081111561195157fe5b815260200160018b01815250905060008260000190600881111561197157fe5b9081600881111561197e57fe5b81525050600082602001818152505080826040018190525061199f8a610a83565b826060018181525050308260a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081866002815181106119ee57fe5b60200260200101819052506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a67a6a4588886040518363ffffffff1660e01b8152600401611a55929190612b86565b600060405180830381600087803b158015611a6f57600080fd5b505af1158015611a83573d6000803e3d6000fd5b5050505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611b12929190612adc565b602060405180830381600087803b158015611b2c57600080fd5b505af1158015611b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b649190810190612387565b5050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b60405180610100016040528060006008811115611bb157fe5b815260200160008152602001611bc5611cae565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b6040518060800160405280600015158152602001600080811115611c2457fe5b8152602001600080811115611c3557fe5b8152602001600081525090565b60405180610100016040528060006008811115611c5b57fe5b815260200160008152602001611c6f611cae565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b6040518060800160405280600015158152602001600080811115611cce57fe5b8152602001600080811115611cdf57fe5b8152602001600081525090565b600081359050611cfb81613083565b92915050565b600081359050611d108161309a565b92915050565b60008083601f840112611d2857600080fd5b8235905067ffffffffffffffff811115611d4157600080fd5b602083019150836020820283011115611d5957600080fd5b9250929050565b600082601f830112611d7157600080fd5b8135611d84611d7f82612d2d565b612d00565b91508181835260208401935060208101905083856020840282011115611da957600080fd5b60005b83811015611dd95781611dbf8882611f88565b845260208401935060208301925050600181019050611dac565b5050505092915050565b600082601f830112611df457600080fd5b8135611e07611e0282612d55565b612d00565b91508181835260208401935060208101905083856020840282011115611e2c57600080fd5b60005b83811015611e5c5781611e428882611f88565b845260208401935060208301925050600181019050611e2f565b5050505092915050565b600081519050611e75816130b1565b92915050565b60008083601f840112611e8d57600080fd5b8235905067ffffffffffffffff811115611ea657600080fd5b602083019150836001820283011115611ebe57600080fd5b9250929050565b600082601f830112611ed657600080fd5b8135611ee9611ee482612d7d565b612d00565b91508082526020830160208301858383011115611f0557600080fd5b611f10838284613009565b50505092915050565b600082601f830112611f2a57600080fd5b8135611f3d611f3882612da9565b612d00565b91508082526020830160208301858383011115611f5957600080fd5b611f64838284613009565b50505092915050565b600060408284031215611f7f57600080fd5b81905092915050565b600081359050611f97816130c8565b92915050565b600081519050611fac816130c8565b92915050565b600060208284031215611fc457600080fd5b6000611fd284828501611cec565b91505092915050565b600080600080600080600060e0888a031215611ff657600080fd5b60006120048a828b01611d01565b97505060206120158a828b01611f88565b96505060406120268a828b01611f88565b95505060606120378a828b01611d01565b945050608088013567ffffffffffffffff81111561205457600080fd5b6120608a828b01611ec5565b93505060a06120718a828b01611f88565b92505060c088013567ffffffffffffffff81111561208e57600080fd5b61209a8a828b01611d60565b91505092959891949750929550565b60008060008060008060c087890312156120c257600080fd5b60006120d089828a01611cec565b96505060206120e189828a01611cec565b95505060406120f289828a01611f88565b945050606087013567ffffffffffffffff81111561210f57600080fd5b61211b89828a01611f19565b935050608061212c89828a01611f88565b92505060a087013567ffffffffffffffff81111561214957600080fd5b61215589828a01611de3565b9150509295509295509295565b600080600080600060a0868803121561217a57600080fd5b600061218888828901611cec565b955050602061219988828901611cec565b94505060406121aa88828901611f88565b93505060606121bb88828901611f88565b925050608086013567ffffffffffffffff8111156121d857600080fd5b6121e488828901611de3565b9150509295509295909350565b6000806000806080858703121561220757600080fd5b600061221587828801611cec565b945050602061222687828801611f6d565b935050606085013567ffffffffffffffff81111561224357600080fd5b61224f87828801611e7b565b925092505092959194509250565b60008060008060008060008060c0898b03121561227957600080fd5b60006122878b828c01611cec565b98505060206122988b828c01611f88565b97505060406122a98b828c01611cec565b965050606089013567ffffffffffffffff8111156122c657600080fd5b6122d28b828c01611e7b565b955095505060806122e58b828c01611f88565b93505060a089013567ffffffffffffffff81111561230257600080fd5b61230e8b828c01611d16565b92509250509295985092959890939650565b60008060006060848603121561233557600080fd5b600061234386828701611cec565b935050602061235486828701611f88565b925050604084013567ffffffffffffffff81111561237157600080fd5b61237d86828701611f19565b9150509250925092565b60006020828403121561239957600080fd5b60006123a784828501611e66565b91505092915050565b6000602082840312156123c257600080fd5b60006123d084828501611f88565b91505092915050565b6000602082840312156123eb57600080fd5b60006123f984828501611f9d565b91505092915050565b600061240e83836128d3565b905092915050565b600061242283836129db565b60408301905092915050565b600061243a8383612a0a565b60208301905092915050565b61244f81612f67565b82525050565b61245e81612ed4565b82525050565b61246d81612ed4565b82525050565b600061247e82612e05565b6124888185612e63565b93508360208202850161249a85612dd5565b8060005b858110156124d657848403895281516124b78582612402565b94506124c283612e3c565b925060208a0199505060018101905061249e565b50829750879550505050505092915050565b60006124f382612e10565b6124fd8185612e74565b935061250883612de5565b8060005b838110156125395781516125208882612416565b975061252b83612e49565b92505060018101905061250c565b5085935050505092915050565b60006125528385612e85565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561258157600080fd5b602083029250612592838584613009565b82840190509392505050565b60006125a982612e1b565b6125b38185612e85565b93506125be83612df5565b8060005b838110156125ef5781516125d6888261242e565b97506125e183612e56565b9250506001810190506125c2565b5085935050505092915050565b61260581612ef8565b82525050565b60006126178385612ea7565b9350612624838584613009565b61262d8361304b565b840190509392505050565b600061264382612e31565b61264d8185612eb8565b935061265d818560208601613018565b80840191505092915050565b600061267482612e26565b61267e8185612e96565b935061268e818560208601613018565b6126978161304b565b840191505092915050565b6126ab81612f79565b82525050565b6126ba81612f9d565b82525050565b6126c981612faf565b82525050565b6126d881612fc1565b82525050565b6126e781612fd3565b82525050565b60006126fa601883612ec3565b91507f63616c6c6572206973206e6f7420746865206f776e65722100000000000000006000830152602082019050919050565b600061273a602683612ec3565b91507f456e642062616c616e6365206d7573742065786365656420737461727420626160008301527f6c616e63652e00000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006127a0601283612ec3565b91507f6661696c656420746f20676574207765746800000000000000000000000000006000830152602082019050919050565b60006127e0602c83612ec3565b91507f466c6173684c6f616e3a20636f756c642062652063616c6c656420627920447960008301527f447820706f6f6c206f6e6c7900000000000000000000000000000000000000006020830152604082019050919050565b6000612846601d83612ec3565b91507f636f6e747261637420646964206e6f742067657420746865206c6f616e0000006000830152602082019050919050565b6000612886600083612eb8565b9150600082019050919050565b60006128a0601c83612ec3565b91507f466c6173684c6f616e3a20556e737570706f7274656420746f6b656e000000006000830152602082019050919050565b6000610160830160008301516128ec60008601826126b1565b5060208301516128ff6020860182612a0a565b5060408301516129126040860182612986565b50606083015161292560c0860182612a0a565b50608083015161293860e0860182612a0a565b5060a083015161294c610100860182612455565b5060c0830151612960610120860182612a0a565b5060e08301518482036101408601526129798282612669565b9150508091505092915050565b60808201600082015161299c60008501826125fc565b5060208201516129af60208501826126c0565b5060408201516129c260408501826126cf565b5060608201516129d56060850182612a0a565b50505050565b6040820160008201516129f16000850182612455565b506020820151612a046020850182612a0a565b50505050565b612a1381612f5d565b82525050565b612a2281612f5d565b82525050565b6000612a348284612638565b915081905092915050565b6000612a4a82612879565b9150819050919050565b6000602082019050612a696000830184612464565b92915050565b6000602082019050612a846000830184612446565b92915050565b6000604082019050612a9f6000830185612446565b612aac6020830184612a19565b9392505050565b6000604082019050612ac86000830185612464565b612ad560208301846126de565b9392505050565b6000604082019050612af16000830185612464565b612afe6020830184612a19565b9392505050565b600060e082019050612b1a600083018c612464565b612b27602083018b612a19565b612b34604083018a612a19565b612b416060830189612464565b8181036080830152612b5481878961260b565b9050612b6360a0830186612a19565b81810360c0830152612b76818486612546565b90509a9950505050505050505050565b60006040820190508181036000830152612ba081856124e8565b90508181036020830152612bb48184612473565b90509392505050565b600060c082019050612bd260008301896126a2565b612bdf60208301886126a2565b612bec6040830187612a19565b612bf96060830186612a19565b8181036080830152612c0b818561259e565b9050612c1a60a0830184612a19565b979650505050505050565b60006020820190508181036000830152612c3e816126ed565b9050919050565b60006020820190508181036000830152612c5e8161272d565b9050919050565b60006020820190508181036000830152612c7e81612793565b9050919050565b60006020820190508181036000830152612c9e816127d3565b9050919050565b60006020820190508181036000830152612cbe81612839565b9050919050565b60006020820190508181036000830152612cde81612893565b9050919050565b6000602082019050612cfa6000830184612a19565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612d2357600080fd5b8060405250919050565b600067ffffffffffffffff821115612d4457600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612d6c57600080fd5b602082029050602081019050919050565b600067ffffffffffffffff821115612d9457600080fd5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115612dc057600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612edf82612f3d565b9050919050565b6000612ef182612f3d565b9050919050565b60008115159050919050565b6000819050612f128261305c565b919050565b6000819050612f2582613069565b919050565b6000819050612f3882613076565b919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612f7282612fe5565b9050919050565b6000612f8482612f8b565b9050919050565b6000612f9682612f3d565b9050919050565b6000612fa882612f04565b9050919050565b6000612fba82612f17565b9050919050565b6000612fcc82612f2a565b9050919050565b6000612fde82612f5d565b9050919050565b6000612ff082612ff7565b9050919050565b600061300282612f3d565b9050919050565b82818337600083830152505050565b60005b8381101561303657808201518184015260208101905061301b565b83811115613045576000848401525b50505050565b6000601f19601f8301169050919050565b6009811061306657fe5b50565b6001811061307357fe5b50565b6001811061308057fe5b50565b61308c81612ed4565b811461309757600080fd5b50565b6130a381612ee6565b81146130ae57600080fd5b50565b6130ba81612ef8565b81146130c557600080fd5b50565b6130d181612f5d565b81146130dc57600080fd5b5056fea365627a7a72315820e0a73e38faaa1f6ff3845ad17f9b8251352caba26f1c5e07d0061d67cd163c656c6578706572696d656e74616cf564736f6c63430005110040",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xFE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8B418713 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xD285B7B4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xD285B7B4 EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0xD702C0D8 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0xDF1E6646 EQ PUSH2 0x309 JUMPI DUP1 PUSH4 0xDF99A2B2 EQ PUSH2 0x332 JUMPI DUP1 PUSH4 0xE0BAB4C4 EQ PUSH2 0x34E JUMPI PUSH2 0xFE JUMP JUMPDEST DUP1 PUSH4 0x8B418713 EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0xAD5C4648 EQ PUSH2 0x23E JUMPI DUP1 PUSH4 0xB8268788 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xC8C61A79 EQ PUSH2 0x2A6 JUMPI PUSH2 0xFE JUMP JUMPDEST DUP1 PUSH4 0x7362377B GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x7362377B EQ PUSH2 0x18E JUMPI DUP1 PUSH4 0x7E68F511 EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x89476069 EQ PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x89A30271 EQ PUSH2 0x1EA JUMPI PUSH2 0xFE JUMP JUMPDEST DUP1 PUSH4 0x107C279F EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x12B246DD EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x4B3FB7F8 EQ PUSH2 0x126 JUMPI DUP1 PUSH4 0x6036CBA3 EQ PUSH2 0x151 JUMPI JUMPDEST STOP JUMPDEST PUSH2 0x108 PUSH2 0x379 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x124 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x11F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x414 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13B PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x148 SWAP2 SWAP1 PUSH2 0x2A54 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x178 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x173 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FB2 JUMP JUMPDEST PUSH2 0x4DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x185 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A3 PUSH2 0x4F6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x1BA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x1E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FB2 JUMP JUMPDEST PUSH2 0x6BA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1FF PUSH2 0x88B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20C SWAP2 SWAP1 PUSH2 0x2A54 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x237 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x8B1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0xA5D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x2A54 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x275 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x290 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x28B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FB2 JUMP JUMPDEST PUSH2 0xA83 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x29D SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x2BB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2320 JUMP JUMPDEST PUSH2 0xB18 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D7 PUSH2 0xBB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E4 SWAP2 SWAP1 PUSH2 0x2CE5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x307 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x302 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x225D JUMP JUMPDEST PUSH2 0xBBE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x330 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x32B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23B0 JUMP JUMPDEST PUSH2 0xD26 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH2 0x347 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x20A9 JUMP JUMPDEST PUSH2 0xDC2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x363 PUSH2 0xE68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x2A54 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x409 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x400 SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x412 CALLVALUE PUSH2 0xE8E JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x4A4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x49B SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4B1 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xF60 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x586 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x57D SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 ADDRESS SWAP1 POP PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x60F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6A4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x69B SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6B2 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x1173 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x74A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x741 SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x785 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x7D5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x834 SWAP3 SWAP2 SWAP1 PUSH2 0x2A8A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x862 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x886 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x940 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x937 SWAP1 PUSH2 0x2C85 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x0 PUSH1 0x60 DUP9 DUP9 PUSH2 0x95B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1FDB JUMP JUMPDEST SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP SWAP7 POP PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9A4 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x9F4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP DUP7 DUP7 DUP3 SUB EQ PUSH2 0xA3A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA31 SWAP1 PUSH2 0x2CA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x6 DUP2 SWAP1 SSTORE POP PUSH2 0xA4F DUP9 DUP7 DUP10 DUP8 DUP8 DUP8 PUSH2 0x12B7 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x5 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH1 0x0 DUP2 EQ ISZERO PUSH2 0xB0C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB03 SWAP1 PUSH2 0x2CC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP2 SUB SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBA8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB9F SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBB3 DUP4 DUP4 DUP4 PUSH2 0x142B JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC4E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC45 SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0xCD9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x60 DUP10 DUP10 DUP4 DUP11 DUP11 DUP11 DUP11 DUP11 DUP11 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xCFE SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B05 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xD1A DUP11 DUP11 DUP4 PUSH2 0x1624 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xDB6 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDAD SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDBF DUP2 PUSH2 0x1A93 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xE52 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE49 SWAP1 PUSH2 0x2C25 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE60 DUP7 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x12B7 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0xED6 SWAP1 PUSH2 0x2A3F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xF13 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xF18 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xF5C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF53 SWAP1 PUSH2 0x2C65 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 SWAP1 POP PUSH1 0x0 DUP6 SWAP1 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFEE SWAP3 SWAP2 SWAP1 PUSH2 0x2ADC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1008 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x101C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1040 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE2A7515E DUP5 DUP5 DUP10 DUP10 DUP10 PUSH1 0xA SLOAD PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1086 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2BBD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x10B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1116 SWAP3 SWAP2 SWAP1 PUSH2 0x2AB3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1144 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1168 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11AE SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x11FE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP PUSH2 0x120B DUP8 DUP7 DUP7 PUSH2 0x142B JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1246 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x125E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1296 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 DUP3 SUB SWAP1 POP PUSH2 0x12AC DUP9 DUP11 DUP4 DUP9 DUP9 PUSH2 0xF60 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12F2 SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x130A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x131E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1342 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP PUSH2 0x1352 DUP8 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1173 JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x138D SWAP2 SWAP1 PUSH2 0x2A6F JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x13DD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x23D9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT PUSH2 0x1421 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1418 SWAP1 PUSH2 0x2C45 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x148D SWAP3 SWAP2 SWAP1 PUSH2 0x2ADC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x14BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x14DF SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP PUSH1 0xB PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLVALUE DUP4 PUSH1 0x40 MLOAD PUSH2 0x1528 SWAP2 SWAP1 PUSH2 0x2A28 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1565 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x156A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0xC PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15CB SWAP3 SWAP2 SWAP1 PUSH2 0x2AB3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x161D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 DUP6 ADD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1683 SWAP3 SWAP2 SWAP1 PUSH2 0x2ADC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x169D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x16D5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP PUSH1 0x60 PUSH1 0x1 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1713 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x1700 PUSH2 0x1B68 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x16F8 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x60 PUSH1 0x3 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1753 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x1740 PUSH2 0x1B98 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x1738 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x178F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x17A2 PUSH2 0x1C04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x17C2 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x17D3 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE POP SWAP1 POP PUSH2 0x17E6 PUSH2 0x1C42 JUMP JUMPDEST PUSH1 0x1 DUP2 PUSH1 0x0 ADD SWAP1 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x17F8 JUMPI INVALID JUMPDEST SWAP1 DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1805 JUMPI INVALID JUMPDEST DUP2 MSTORE POP POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP DUP2 DUP2 PUSH1 0x40 ADD DUP2 SWAP1 MSTORE POP PUSH2 0x1826 DUP8 PUSH2 0xA83 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP ADDRESS DUP2 PUSH1 0xA0 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 DUP4 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1875 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x1888 PUSH2 0x1C42 JUMP JUMPDEST PUSH1 0x8 DUP2 PUSH1 0x0 ADD SWAP1 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x189A JUMPI INVALID JUMPDEST SWAP1 DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x18A7 JUMPI INVALID JUMPDEST DUP2 MSTORE POP POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP ADDRESS DUP2 PUSH1 0xA0 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP6 DUP2 PUSH1 0xE0 ADD DUP2 SWAP1 MSTORE POP DUP1 DUP5 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1905 JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH2 0x1918 PUSH2 0x1C42 JUMP JUMPDEST PUSH2 0x1920 PUSH2 0x1C04 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1940 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1951 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP12 ADD DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD SWAP1 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1971 JUMPI INVALID JUMPDEST SWAP1 DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x197E JUMPI INVALID JUMPDEST DUP2 MSTORE POP POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP3 PUSH1 0x40 ADD DUP2 SWAP1 MSTORE POP PUSH2 0x199F DUP11 PUSH2 0xA83 JUMP JUMPDEST DUP3 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP ADDRESS DUP3 PUSH1 0xA0 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 DUP7 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0x19EE JUMPI INVALID JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA67A6A45 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A55 SWAP3 SWAP2 SWAP1 PUSH2 0x2B86 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A83 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x95EA7B3 PUSH1 0xD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B12 SWAP3 SWAP2 SWAP1 PUSH2 0x2ADC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B40 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1B64 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2387 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1BB1 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1BC5 PUSH2 0x1CAE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1C24 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1C35 JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1C5B JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1C6F PUSH2 0x1CAE JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1CCE JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 DUP2 GT ISZERO PUSH2 0x1CDF JUMPI INVALID JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1CFB DUP2 PUSH2 0x3083 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D10 DUP2 PUSH2 0x309A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1D28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1D59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1D71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D84 PUSH2 0x1D7F DUP3 PUSH2 0x2D2D JUMP JUMPDEST PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1DA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1DD9 JUMPI DUP2 PUSH2 0x1DBF DUP9 DUP3 PUSH2 0x1F88 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1DAC JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1DF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1E07 PUSH2 0x1E02 DUP3 PUSH2 0x2D55 JUMP JUMPDEST PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP DUP2 DUP2 DUP4 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP2 ADD SWAP1 POP DUP4 DUP6 PUSH1 0x20 DUP5 MUL DUP3 ADD GT ISZERO PUSH2 0x1E2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1E5C JUMPI DUP2 PUSH2 0x1E42 DUP9 DUP3 PUSH2 0x1F88 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1E2F JUMP JUMPDEST POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E75 DUP2 PUSH2 0x30B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1E8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1EBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1ED6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1EE9 PUSH2 0x1EE4 DUP3 PUSH2 0x2D7D JUMP JUMPDEST PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1F05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F10 DUP4 DUP3 DUP5 PUSH2 0x3009 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F3D PUSH2 0x1F38 DUP3 PUSH2 0x2DA9 JUMP JUMPDEST PUSH2 0x2D00 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x1F59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F64 DUP4 DUP3 DUP5 PUSH2 0x3009 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F97 DUP2 PUSH2 0x30C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1FAC DUP2 PUSH2 0x30C8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1FD2 DUP5 DUP3 DUP6 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x1FF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2004 DUP11 DUP3 DUP12 ADD PUSH2 0x1D01 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x2015 DUP11 DUP3 DUP12 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x2026 DUP11 DUP3 DUP12 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x2037 DUP11 DUP3 DUP12 ADD PUSH2 0x1D01 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2054 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2060 DUP11 DUP3 DUP12 ADD PUSH2 0x1EC5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x2071 DUP11 DUP3 DUP12 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x208E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x209A DUP11 DUP3 DUP12 ADD PUSH2 0x1D60 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x20C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x20D0 DUP10 DUP3 DUP11 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x20E1 DUP10 DUP3 DUP11 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x20F2 DUP10 DUP3 DUP11 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x211B DUP10 DUP3 DUP11 ADD PUSH2 0x1F19 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0x212C DUP10 DUP3 DUP11 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2155 DUP10 DUP3 DUP11 ADD PUSH2 0x1DE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x217A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2188 DUP9 DUP3 DUP10 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2199 DUP9 DUP3 DUP10 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x21AA DUP9 DUP3 DUP10 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x21BB DUP9 DUP3 DUP10 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x21D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x21E4 DUP9 DUP3 DUP10 ADD PUSH2 0x1DE3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2215 DUP8 DUP3 DUP9 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x2226 DUP8 DUP3 DUP9 ADD PUSH2 0x1F6D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2243 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x224F DUP8 DUP3 DUP9 ADD PUSH2 0x1E7B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2287 DUP12 DUP3 DUP13 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x2298 DUP12 DUP3 DUP13 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 PUSH2 0x22A9 DUP12 DUP3 DUP13 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x22D2 DUP12 DUP3 DUP13 ADD PUSH2 0x1E7B JUMP JUMPDEST SWAP6 POP SWAP6 POP POP PUSH1 0x80 PUSH2 0x22E5 DUP12 DUP3 DUP13 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2302 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x230E DUP12 DUP3 DUP13 ADD PUSH2 0x1D16 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2343 DUP7 DUP3 DUP8 ADD PUSH2 0x1CEC JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2354 DUP7 DUP3 DUP8 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2371 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x237D DUP7 DUP3 DUP8 ADD PUSH2 0x1F19 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2399 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x23A7 DUP5 DUP3 DUP6 ADD PUSH2 0x1E66 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23C2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x23D0 DUP5 DUP3 DUP6 ADD PUSH2 0x1F88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x23F9 DUP5 DUP3 DUP6 ADD PUSH2 0x1F9D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x240E DUP4 DUP4 PUSH2 0x28D3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2422 DUP4 DUP4 PUSH2 0x29DB JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x243A DUP4 DUP4 PUSH2 0x2A0A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x244F DUP2 PUSH2 0x2F67 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x245E DUP2 PUSH2 0x2ED4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x246D DUP2 PUSH2 0x2ED4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247E DUP3 PUSH2 0x2E05 JUMP JUMPDEST PUSH2 0x2488 DUP2 DUP6 PUSH2 0x2E63 JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x249A DUP6 PUSH2 0x2DD5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x24D6 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x24B7 DUP6 DUP3 PUSH2 0x2402 JUMP JUMPDEST SWAP5 POP PUSH2 0x24C2 DUP4 PUSH2 0x2E3C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x249E JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24F3 DUP3 PUSH2 0x2E10 JUMP JUMPDEST PUSH2 0x24FD DUP2 DUP6 PUSH2 0x2E74 JUMP JUMPDEST SWAP4 POP PUSH2 0x2508 DUP4 PUSH2 0x2DE5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2539 JUMPI DUP2 MLOAD PUSH2 0x2520 DUP9 DUP3 PUSH2 0x2416 JUMP JUMPDEST SWAP8 POP PUSH2 0x252B DUP4 PUSH2 0x2E49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x250C JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2552 DUP4 DUP6 PUSH2 0x2E85 JUMP JUMPDEST SWAP4 POP PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x2581 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 MUL SWAP3 POP PUSH2 0x2592 DUP4 DUP6 DUP5 PUSH2 0x3009 JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25A9 DUP3 PUSH2 0x2E1B JUMP JUMPDEST PUSH2 0x25B3 DUP2 DUP6 PUSH2 0x2E85 JUMP JUMPDEST SWAP4 POP PUSH2 0x25BE DUP4 PUSH2 0x2DF5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x25EF JUMPI DUP2 MLOAD PUSH2 0x25D6 DUP9 DUP3 PUSH2 0x242E JUMP JUMPDEST SWAP8 POP PUSH2 0x25E1 DUP4 PUSH2 0x2E56 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x25C2 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2605 DUP2 PUSH2 0x2EF8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2617 DUP4 DUP6 PUSH2 0x2EA7 JUMP JUMPDEST SWAP4 POP PUSH2 0x2624 DUP4 DUP6 DUP5 PUSH2 0x3009 JUMP JUMPDEST PUSH2 0x262D DUP4 PUSH2 0x304B JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2643 DUP3 PUSH2 0x2E31 JUMP JUMPDEST PUSH2 0x264D DUP2 DUP6 PUSH2 0x2EB8 JUMP JUMPDEST SWAP4 POP PUSH2 0x265D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3018 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2674 DUP3 PUSH2 0x2E26 JUMP JUMPDEST PUSH2 0x267E DUP2 DUP6 PUSH2 0x2E96 JUMP JUMPDEST SWAP4 POP PUSH2 0x268E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3018 JUMP JUMPDEST PUSH2 0x2697 DUP2 PUSH2 0x304B JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x26AB DUP2 PUSH2 0x2F79 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26BA DUP2 PUSH2 0x2F9D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26C9 DUP2 PUSH2 0x2FAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26D8 DUP2 PUSH2 0x2FC1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x26E7 DUP2 PUSH2 0x2FD3 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26FA PUSH1 0x18 DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x63616C6C6572206973206E6F7420746865206F776E6572210000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x273A PUSH1 0x26 DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x456E642062616C616E6365206D75737420657863656564207374617274206261 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x6C616E63652E0000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27A0 PUSH1 0x12 DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x6661696C656420746F2067657420776574680000000000000000000000000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27E0 PUSH1 0x2C DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x466C6173684C6F616E3A20636F756C642062652063616C6C6564206279204479 PUSH1 0x0 DUP4 ADD MSTORE PUSH32 0x447820706F6F6C206F6E6C790000000000000000000000000000000000000000 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2846 PUSH1 0x1D DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x636F6E747261637420646964206E6F742067657420746865206C6F616E000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2886 PUSH1 0x0 DUP4 PUSH2 0x2EB8 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28A0 PUSH1 0x1C DUP4 PUSH2 0x2EC3 JUMP JUMPDEST SWAP2 POP PUSH32 0x466C6173684C6F616E3A20556E737570706F7274656420746F6B656E00000000 PUSH1 0x0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x28EC PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x26B1 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x28FF PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2912 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x2986 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2925 PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x2938 PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x294C PUSH2 0x100 DUP7 ADD DUP3 PUSH2 0x2455 JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x2960 PUSH2 0x120 DUP7 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH2 0x140 DUP7 ADD MSTORE PUSH2 0x2979 DUP3 DUP3 PUSH2 0x2669 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x299C PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x25FC JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x29AF PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x26C0 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x29C2 PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x26CF JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x29D5 PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x29F1 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x2455 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x2A04 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x2A0A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2A13 DUP2 PUSH2 0x2F5D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2A22 DUP2 PUSH2 0x2F5D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A34 DUP3 DUP5 PUSH2 0x2638 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A4A DUP3 PUSH2 0x2879 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2A69 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2464 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2A84 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2A9F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2446 JUMP JUMPDEST PUSH2 0x2AAC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A19 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2AC8 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2464 JUMP JUMPDEST PUSH2 0x2AD5 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26DE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2AF1 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2464 JUMP JUMPDEST PUSH2 0x2AFE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A19 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xE0 DUP3 ADD SWAP1 POP PUSH2 0x2B1A PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x2464 JUMP JUMPDEST PUSH2 0x2B27 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0x2A19 JUMP JUMPDEST PUSH2 0x2B34 PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x2A19 JUMP JUMPDEST PUSH2 0x2B41 PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x2464 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2B54 DUP2 DUP8 DUP10 PUSH2 0x260B JUMP JUMPDEST SWAP1 POP PUSH2 0x2B63 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x2A19 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x2B76 DUP2 DUP5 DUP7 PUSH2 0x2546 JUMP JUMPDEST SWAP1 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2BA0 DUP2 DUP6 PUSH2 0x24E8 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2BB4 DUP2 DUP5 PUSH2 0x2473 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 ADD SWAP1 POP PUSH2 0x2BD2 PUSH1 0x0 DUP4 ADD DUP10 PUSH2 0x26A2 JUMP JUMPDEST PUSH2 0x2BDF PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x26A2 JUMP JUMPDEST PUSH2 0x2BEC PUSH1 0x40 DUP4 ADD DUP8 PUSH2 0x2A19 JUMP JUMPDEST PUSH2 0x2BF9 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0x2A19 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2C0B DUP2 DUP6 PUSH2 0x259E JUMP JUMPDEST SWAP1 POP PUSH2 0x2C1A PUSH1 0xA0 DUP4 ADD DUP5 PUSH2 0x2A19 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C3E DUP2 PUSH2 0x26ED JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C5E DUP2 PUSH2 0x272D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C7E DUP2 PUSH2 0x2793 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2C9E DUP2 PUSH2 0x27D3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2CBE DUP2 PUSH2 0x2839 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2CDE DUP2 PUSH2 0x2893 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2CFA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2A19 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2D23 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D94 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2DC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EDF DUP3 PUSH2 0x2F3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF1 DUP3 PUSH2 0x2F3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x2F12 DUP3 PUSH2 0x305C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x2F25 DUP3 PUSH2 0x3069 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x2F38 DUP3 PUSH2 0x3076 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F72 DUP3 PUSH2 0x2FE5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F84 DUP3 PUSH2 0x2F8B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F96 DUP3 PUSH2 0x2F3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA8 DUP3 PUSH2 0x2F04 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FBA DUP3 PUSH2 0x2F17 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FCC DUP3 PUSH2 0x2F2A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FDE DUP3 PUSH2 0x2F5D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FF0 DUP3 PUSH2 0x2FF7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3002 DUP3 PUSH2 0x2F3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3036 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x301B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3045 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x9 DUP2 LT PUSH2 0x3066 JUMPI INVALID JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 DUP2 LT PUSH2 0x3073 JUMPI INVALID JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 DUP2 LT PUSH2 0x3080 JUMPI INVALID JUMPDEST POP JUMP JUMPDEST PUSH2 0x308C DUP2 PUSH2 0x2ED4 JUMP JUMPDEST DUP2 EQ PUSH2 0x3097 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x30A3 DUP2 PUSH2 0x2EE6 JUMP JUMPDEST DUP2 EQ PUSH2 0x30AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x30BA DUP2 PUSH2 0x2EF8 JUMP JUMPDEST DUP2 EQ PUSH2 0x30C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x30D1 DUP2 PUSH2 0x2F5D JUMP JUMPDEST DUP2 EQ PUSH2 0x30DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG3 PUSH6 0x627A7A723158 KECCAK256 0xE0 0xA7 RETURNDATACOPY CODESIZE STATICCALL 0xAA 0x1F PUSH16 0xF3845AD17F9B8251352CABA26F1C5E07 0xD0 MOD SAR PUSH8 0xCD163C656C657870 PUSH6 0x72696D656E74 PUSH2 0x6CF5 PUSH5 0x736F6C6343 STOP SDIV GT STOP BLOCKHASH ",
"sourceMap": "5738:6929:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11649:80;;;:::i;:::-;;10794:222;;;;;;;;;;;;;;;;:::i;:::-;;2801:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2801:63:0;;;:::i;:::-;;;;;;;;;;;;;;;;3009:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3009:45:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;12454:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12454:211:0;;;:::i;:::-;;9064:291;;;;;;;;;;;;;;;;:::i;:::-;;12179:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12179:200:0;;;;;;;;;;;;;;;;:::i;:::-;;2870:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2870:64:0;;;:::i;:::-;;;;;;;;;;;;;;;;7189:906;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7189:906:0;;;;;;;;;;;;;;;;:::i;:::-;;2731:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2731:64:0;;;:::i;:::-;;;;;;;;;;;;;;;;3385:216;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3385:216:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10193:168;;;;;;;;;;;;;;;;:::i;:::-;;5781:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5781:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;6613:570;;;;;;;;;;;;;;;;:::i;:::-;;11897:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11897:93:0;;;;;;;;;;;;;;;;:::i;:::-;;8101:287;;;;;;;;;;;;;;;;:::i;:::-;;2940:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2940:63:0;;;:::i;:::-;;;;;;;;;;;;;;;;11649:80;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;11703:19;11712:9;11703:8;:19::i;:::-;11649:80::o;10794:222::-;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;10948:61;10962:5;10969:3;10974:7;10983:10;10995:13;10948;:61::i;:::-;10794:222;;;;;:::o;2801:63::-;;;;;;;;;;;;;:::o;3009:45::-;;;;;;;;;;;;;;;;;:::o;12454:211::-;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;12506:12;12529:4;12506:28;;12586:15;12604:4;:12;;;12586:30;;12634:5;;;;;;;;;;;12626:23;;:32;12650:7;12626:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12626:32:0;6386:1;;12454:211::o;9064:291::-;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;9259:89;9266:10;9278:8;9288:11;9301:7;9310:16;9328:19;9259:6;:89::i;:::-;9064:291;;;;;;:::o;12179:200::-;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;12252:15;12277:13;12270:31;;;12310:4;12270:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12270:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12270:46:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12270:46:0;;;;;;;;;12252:64;;12333:13;12326:30;;;12357:5;;;;;;;;;;;12364:7;12326:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12326:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12326:46:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12326:46:0;;;;;;;;;;6386:1;12179:200;:::o;2870:64::-;;;;;;;;;;;;;:::o;7189:906::-;3286:4;;;;;;;;;;;3264:27;;:10;:27;;;3243:118;;;;;;;;;;;;;;;;;;;;;;7346:18;7366:19;7387:21;7410:16;7428:20;7450:25;7477:37;7542:4;;7518:94;;;;;;;;;7345:267;;;;;;;;;;;;;;7622:20;7652:10;7645:28;;;7682:4;7645:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7645:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7645:43:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;7645:43:0;;;;;;;;;7622:66;;7751:11;7734:13;7719:12;:28;:43;7698:119;;;;;;;;;;;;;;;;;;;;;;7834:12;7827:4;:19;;;;7999:89;8004:10;8016:8;8026:11;8039:7;8048:17;8067:20;7999:4;:89::i;:::-;3371:1;;;;;;;;7189:906;;;;:::o;2731:64::-;;;;;;;;;;;;;:::o;3385:216::-;3446:7;3465:16;3484:10;:17;3495:5;3484:17;;;;;;;;;;;;;;;;3465:36;;3531:1;3519:8;:13;;3511:54;;;;;;;;;;;;;;;;;;;;;;3593:1;3582:8;:12;3575:19;;;3385:216;;;:::o;10193:168::-;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;10310:44;10319:5;10326:7;10335:18;10310:8;:44::i;:::-;10193:168;;;:::o;5781:19::-;;;;:::o;6613:570::-;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;6823:21;6854:10;6847:28;;;6884:4;6847:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6847:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6847:43:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6847:43:0;;;;;;;;;6823:67;;6900:17;6931:10;6943:11;6956:13;6971:8;6981:7;;6990:17;7009:20;;6920:110;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6920:110:0;;;6900:130;;7040:40;7050:10;7062:11;7075:4;7040:9;:40::i;:::-;6386:1;;6613:570;;;;;;;;:::o;11897:93::-;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;11962:21;11975:7;11962:12;:21::i;:::-;11897:93;:::o;8101:287::-;6342:5;;;;;;;;;;;6328:19;;:10;:19;;;6320:56;;;;;;;;;;;;;;;;;;;;;;8294:87;8299:10;8311:8;8321:11;8334:7;8343:16;8361:19;8294:4;:87::i;:::-;8101:287;;;;;;:::o;2940:63::-;;;;;;;;;;;;;:::o;11735:156::-;11790:12;11808:4;;;;;;;;;;;:9;;11824:7;11808:28;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;11789:47:0;;;11854:7;11846:38;;;;;;;;;;;;;;;;;;;;;;11735:156;;:::o;11022:621::-;11188:18;11216:5;11188:34;;11232:16;11258:3;11232:30;;11272:27;11312:17;;;;;;;;;;;11272:58;;11367:11;:19;;;11387:17;;;;;;;;;;;11406:7;11367:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11367:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11367:47:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11367:47:0;;;;;;;;;;11469:17;:22;;;11492:11;11505:9;11516:7;11525:10;11537:13;11552:5;;11469:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11469:89:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11469:89:0;;;;11595:11;:19;;;11615:17;;;;;;;;;;;11634:1;11595:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11595:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11595:41:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11595:41:0;;;;;;;;;;11022:621;;;;;;;;:::o;9361:826::-;9607:22;9639:8;9632:26;;;9667:4;9632:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9632:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9632:41:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9632:41:0;;;;;;;;;9607:66;;9741:42;9750:10;9762:11;9775:7;9741:8;:42::i;:::-;9853:21;9884:8;9877:26;;;9912:4;9877:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9877:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9877:41:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9877:41:0;;;;;;;;;9853:65;;9973:17;10009:14;9993:13;:30;9973:50;;10095:85;10109:8;10119:10;10131:9;10142:16;10160:19;10095:13;:85::i;:::-;9361:826;;;;;;;;;:::o;8394:664::-;8606:21;8637:10;8630:28;;;8667:4;8630:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8630:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8630:43:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8630:43:0;;;;;;;;;8606:67;;8717:89;8724:10;8736:8;8746:11;8759:7;8768:16;8786:19;8717:6;:89::i;:::-;8849:19;8878:10;8871:28;;;8908:4;8871:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8871:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8871:43:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;8871:43:0;;;;;;;;;8849:65;;8995:13;8981:11;:27;8973:78;;;;;;;;;;;;;;;;;;;;;;8394:664;;;;;;;;:::o;10367:421::-;10495:18;10523:5;10495:34;;10539:11;:19;;;10559:23;;;;;;;;;;;10584:7;10539:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10539:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10539:53:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10539:53:0;;;;;;;;;;10634:20;;;;;;;;;;;10626:34;;10667:9;10678:18;10626:71;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;10626:71:0;;10734:11;:19;;;10754:23;;;;;;;;;;;10779:1;10734:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10734:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10734:47:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10734:47:0;;;;;;;;;;10367:421;;;;:::o;3743:1433::-;3850:5;3843:21;;;3873:4;;;;;;;;;;;3889:1;3880:6;:10;3843:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3843:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3843:48:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3843:48:0;;;;;;;;;;3901:19;3934:1;3923:13;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3901:35;;3946:24;3990:1;3973:19;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3946:46;;4014:22;;;;;;;;4027:4;4014:22;;;;;;4034:1;4014:22;;;4003:5;4009:1;4003:8;;;;;;;;;;;;;:33;;;;4047:23;;:::i;:::-;4073:129;;;;;;;;4098:5;4073:129;;;;;;4117:21;4073:129;;;;;;;;;;;;4152:20;4073:129;;;;;;;;;;;;4186:6;4073:129;;;4047:155;;4212:26;;:::i;:::-;4270:19;4248:8;:19;;:41;;;;;;;;;;;;;;;;;;;;;;;4320:1;4299:8;:18;;:22;;;;;4349:4;4331:8;:15;;:22;;;;4390;4406:5;4390:15;:22::i;:::-;4363:8;:24;;:49;;;;;4454:4;4422:8;:21;;:37;;;;;;;;;;;4480:8;4470:4;4475:1;4470:7;;;;;;;;;;;;;:18;;;;4499:22;;:::i;:::-;4549:15;4531:4;:15;;:33;;;;;;;;;;;;;;;;;;;;;;;4591:1;4574:4;:14;;:18;;;;;4630:4;4602;:17;;:33;;;;;;;;;;;4657:4;4645;:9;;:16;;;;4682:4;4672;4677:1;4672:7;;;;;;;;;;;;;:14;;;;4697:25;;:::i;:::-;4732:23;;:::i;:::-;4758:132;;;;;;;;4783:4;4758:132;;;;;;4801:21;4758:132;;;;;;;;;;;;4836:20;4758:132;;;;;;;;;;;;4879:1;4870:6;:10;4758:132;;;4732:158;;4921:18;4900:7;:18;;:39;;;;;;;;;;;;;;;;;;;;;;;4969:1;4949:7;:17;;:21;;;;;4997:4;4980:7;:14;;:21;;;;5037:22;5053:5;5037:15;:22::i;:::-;5011:7;:23;;:48;;;;;5100:4;5069:7;:20;;:36;;;;;;;;;;;5126:7;5116:4;5121:1;5116:7;;;;;;;;;;;;;:17;;;;5144:4;;;;;;;;;;;:12;;;5157:5;5164:4;5144:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5144:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5144:25:0;;;;3743:1433;;;;;;;;;;:::o;11996:113::-;12061:4;;;;;;;;;;;12054:20;;;12075:17;;;;;;;;;;;12094:7;12054:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12054:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12054:48:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12054:48:0;;;;;;;;;;11996:113;:::o;5738:6929::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:146;;230:6;217:20;208:29;;242:41;277:5;242:41;;;202:86;;;;;313:352;;;443:3;436:4;428:6;424:17;420:27;410:2;;461:1;458;451:12;410:2;494:6;481:20;471:30;;521:18;513:6;510:30;507:2;;;553:1;550;543:12;507:2;587:4;579:6;575:17;563:29;;638:3;630:4;622:6;618:17;608:8;604:32;601:41;598:2;;;655:1;652;645:12;598:2;403:262;;;;;;691:699;;804:3;797:4;789:6;785:17;781:27;771:2;;822:1;819;812:12;771:2;859:6;846:20;881:76;896:60;949:6;896:60;;;881:76;;;872:85;;974:5;999:6;992:5;985:21;1029:4;1021:6;1017:17;1007:27;;1051:4;1046:3;1042:14;1035:21;;1104:6;1151:3;1143:4;1135:6;1131:17;1126:3;1122:27;1119:36;1116:2;;;1168:1;1165;1158:12;1116:2;1193:1;1178:206;1203:6;1200:1;1197:13;1178:206;;;1261:3;1283:37;1316:3;1304:10;1283:37;;;1278:3;1271:50;1344:4;1339:3;1335:14;1328:21;;1372:4;1367:3;1363:14;1356:21;;1235:149;1225:1;1222;1218:9;1213:14;;1178:206;;;1182:14;764:626;;;;;;;;1416:707;;1533:3;1526:4;1518:6;1514:17;1510:27;1500:2;;1551:1;1548;1541:12;1500:2;1588:6;1575:20;1610:80;1625:64;1682:6;1625:64;;;1610:80;;;1601:89;;1707:5;1732:6;1725:5;1718:21;1762:4;1754:6;1750:17;1740:27;;1784:4;1779:3;1775:14;1768:21;;1837:6;1884:3;1876:4;1868:6;1864:17;1859:3;1855:27;1852:36;1849:2;;;1901:1;1898;1891:12;1849:2;1926:1;1911:206;1936:6;1933:1;1930:13;1911:206;;;1994:3;2016:37;2049:3;2037:10;2016:37;;;2011:3;2004:50;2077:4;2072:3;2068:14;2061:21;;2105:4;2100:3;2096:14;2089:21;;1968:149;1958:1;1955;1951:9;1946:14;;1911:206;;;1915:14;1493:630;;;;;;;;2131:128;;2212:6;2206:13;2197:22;;2224:30;2248:5;2224:30;;;2191:68;;;;;2280:336;;;2394:3;2387:4;2379:6;2375:17;2371:27;2361:2;;2412:1;2409;2402:12;2361:2;2445:6;2432:20;2422:30;;2472:18;2464:6;2461:30;2458:2;;;2504:1;2501;2494:12;2458:2;2538:4;2530:6;2526:17;2514:29;;2589:3;2581:4;2573:6;2569:17;2559:8;2555:32;2552:41;2549:2;;;2606:1;2603;2596:12;2549:2;2354:262;;;;;;2625:432;;2722:3;2715:4;2707:6;2703:17;2699:27;2689:2;;2740:1;2737;2730:12;2689:2;2777:6;2764:20;2799:60;2814:44;2851:6;2814:44;;;2799:60;;;2790:69;;2879:6;2872:5;2865:21;2915:4;2907:6;2903:17;2948:4;2941:5;2937:16;2983:3;2974:6;2969:3;2965:16;2962:25;2959:2;;;3000:1;2997;2990:12;2959:2;3010:41;3044:6;3039:3;3034;3010:41;;;2682:375;;;;;;;;3066:440;;3167:3;3160:4;3152:6;3148:17;3144:27;3134:2;;3185:1;3182;3175:12;3134:2;3222:6;3209:20;3244:64;3259:48;3300:6;3259:48;;;3244:64;;;3235:73;;3328:6;3321:5;3314:21;3364:4;3356:6;3352:17;3397:4;3390:5;3386:16;3432:3;3423:6;3418:3;3414:16;3411:25;3408:2;;;3449:1;3446;3439:12;3408:2;3459:41;3493:6;3488:3;3483;3459:41;;;3127:379;;;;;;;;3542:153;;3648:2;3639:6;3634:3;3630:16;3626:25;3623:2;;;3664:1;3661;3654:12;3623:2;3683:6;3674:15;;3616:79;;;;;3702:130;;3782:6;3769:20;3760:29;;3794:33;3821:5;3794:33;;;3754:78;;;;;3839:134;;3923:6;3917:13;3908:22;;3935:33;3962:5;3935:33;;;3902:71;;;;;3980:241;;4084:2;4072:9;4063:7;4059:23;4055:32;4052:2;;;4100:1;4097;4090:12;4052:2;4135:1;4152:53;4197:7;4188:6;4177:9;4173:22;4152:53;;;4142:63;;4114:97;4046:175;;;;;4228:1251;;;;;;;;4476:3;4464:9;4455:7;4451:23;4447:33;4444:2;;;4493:1;4490;4483:12;4444:2;4528:1;4545:61;4598:7;4589:6;4578:9;4574:22;4545:61;;;4535:71;;4507:105;4643:2;4661:53;4706:7;4697:6;4686:9;4682:22;4661:53;;;4651:63;;4622:98;4751:2;4769:53;4814:7;4805:6;4794:9;4790:22;4769:53;;;4759:63;;4730:98;4859:2;4877:61;4930:7;4921:6;4910:9;4906:22;4877:61;;;4867:71;;4838:106;5003:3;4992:9;4988:19;4975:33;5028:18;5020:6;5017:30;5014:2;;;5060:1;5057;5050:12;5014:2;5080:58;5130:7;5121:6;5110:9;5106:22;5080:58;;;5070:68;;4954:190;5175:3;5194:53;5239:7;5230:6;5219:9;5215:22;5194:53;;;5184:63;;5154:99;5312:3;5301:9;5297:19;5284:33;5337:18;5329:6;5326:30;5323:2;;;5369:1;5366;5359:12;5323:2;5389:74;5455:7;5446:6;5435:9;5431:22;5389:74;;;5379:84;;5263:206;4438:1041;;;;;;;;;;;5486:1109;;;;;;;5709:3;5697:9;5688:7;5684:23;5680:33;5677:2;;;5726:1;5723;5716:12;5677:2;5761:1;5778:53;5823:7;5814:6;5803:9;5799:22;5778:53;;;5768:63;;5740:97;5868:2;5886:53;5931:7;5922:6;5911:9;5907:22;5886:53;;;5876:63;;5847:98;5976:2;5994:53;6039:7;6030:6;6019:9;6015:22;5994:53;;;5984:63;;5955:98;6112:2;6101:9;6097:18;6084:32;6136:18;6128:6;6125:30;6122:2;;;6168:1;6165;6158:12;6122:2;6188:62;6242:7;6233:6;6222:9;6218:22;6188:62;;;6178:72;;6063:193;6287:3;6306:53;6351:7;6342:6;6331:9;6327:22;6306:53;;;6296:63;;6266:99;6424:3;6413:9;6409:19;6396:33;6449:18;6441:6;6438:30;6435:2;;;6481:1;6478;6471:12;6435:2;6501:78;6571:7;6562:6;6551:9;6547:22;6501:78;;;6491:88;;6375:210;5671:924;;;;;;;;;6602:879;;;;;;6799:3;6787:9;6778:7;6774:23;6770:33;6767:2;;;6816:1;6813;6806:12;6767:2;6851:1;6868:53;6913:7;6904:6;6893:9;6889:22;6868:53;;;6858:63;;6830:97;6958:2;6976:53;7021:7;7012:6;7001:9;6997:22;6976:53;;;6966:63;;6937:98;7066:2;7084:53;7129:7;7120:6;7109:9;7105:22;7084:53;;;7074:63;;7045:98;7174:2;7192:53;7237:7;7228:6;7217:9;7213:22;7192:53;;;7182:63;;7153:98;7310:3;7299:9;7295:19;7282:33;7335:18;7327:6;7324:30;7321:2;;;7367:1;7364;7357:12;7321:2;7387:78;7457:7;7448:6;7437:9;7433:22;7387:78;;;7377:88;;7261:210;6761:720;;;;;;;;;7488:660;;;;;7667:3;7655:9;7646:7;7642:23;7638:33;7635:2;;;7684:1;7681;7674:12;7635:2;7719:1;7736:53;7781:7;7772:6;7761:9;7757:22;7736:53;;;7726:63;;7698:97;7826:2;7844:75;7911:7;7902:6;7891:9;7887:22;7844:75;;;7834:85;;7805:120;7984:2;7973:9;7969:18;7956:32;8008:18;8000:6;7997:30;7994:2;;;8040:1;8037;8030:12;7994:2;8068:64;8124:7;8115:6;8104:9;8100:22;8068:64;;;8058:74;;;;7935:203;7629:519;;;;;;;;8155:1149;;;;;;;;;8398:3;8386:9;8377:7;8373:23;8369:33;8366:2;;;8415:1;8412;8405:12;8366:2;8450:1;8467:53;8512:7;8503:6;8492:9;8488:22;8467:53;;;8457:63;;8429:97;8557:2;8575:53;8620:7;8611:6;8600:9;8596:22;8575:53;;;8565:63;;8536:98;8665:2;8683:53;8728:7;8719:6;8708:9;8704:22;8683:53;;;8673:63;;8644:98;8801:2;8790:9;8786:18;8773:32;8825:18;8817:6;8814:30;8811:2;;;8857:1;8854;8847:12;8811:2;8885:64;8941:7;8932:6;8921:9;8917:22;8885:64;;;8875:74;;;;8752:203;8986:3;9005:53;9050:7;9041:6;9030:9;9026:22;9005:53;;;8995:63;;8965:99;9123:3;9112:9;9108:19;9095:33;9148:18;9140:6;9137:30;9134:2;;;9180:1;9177;9170:12;9134:2;9208:80;9280:7;9271:6;9260:9;9256:22;9208:80;;;9198:90;;;;9074:220;8360:944;;;;;;;;;;;;9311:595;;;;9458:2;9446:9;9437:7;9433:23;9429:32;9426:2;;;9474:1;9471;9464:12;9426:2;9509:1;9526:53;9571:7;9562:6;9551:9;9547:22;9526:53;;;9516:63;;9488:97;9616:2;9634:53;9679:7;9670:6;9659:9;9655:22;9634:53;;;9624:63;;9595:98;9752:2;9741:9;9737:18;9724:32;9776:18;9768:6;9765:30;9762:2;;;9808:1;9805;9798:12;9762:2;9828:62;9882:7;9873:6;9862:9;9858:22;9828:62;;;9818:72;;9703:193;9420:486;;;;;;9913:257;;10025:2;10013:9;10004:7;10000:23;9996:32;9993:2;;;10041:1;10038;10031:12;9993:2;10076:1;10093:61;10146:7;10137:6;10126:9;10122:22;10093:61;;;10083:71;;10055:105;9987:183;;;;;10177:241;;10281:2;10269:9;10260:7;10256:23;10252:32;10249:2;;;10297:1;10294;10287:12;10249:2;10332:1;10349:53;10394:7;10385:6;10374:9;10370:22;10349:53;;;10339:63;;10311:97;10243:175;;;;;10425:263;;10540:2;10528:9;10519:7;10515:23;10511:32;10508:2;;;10556:1;10553;10546:12;10508:2;10591:1;10608:64;10664:7;10655:6;10644:9;10640:22;10608:64;;;10598:74;;10570:108;10502:186;;;;;10696:245;;10841:94;10931:3;10923:6;10841:94;;;10827:108;;10820:121;;;;;10950:241;;11069:82;11147:3;11139:6;11069:82;;;11180:4;11175:3;11171:14;11157:28;;11062:129;;;;;11200:173;;11287:46;11329:3;11321:6;11287:46;;;11362:4;11357:3;11353:14;11339:28;;11280:93;;;;;11381:142;11472:45;11511:5;11472:45;;;11467:3;11460:58;11454:69;;;11530:103;11603:24;11621:5;11603:24;;;11598:3;11591:37;11585:48;;;11640:113;11723:24;11741:5;11723:24;;;11718:3;11711:37;11705:48;;;11827:1024;;12016:76;12086:5;12016:76;;;12105:108;12206:6;12201:3;12105:108;;;12098:115;;12236:3;12278:4;12270:6;12266:17;12261:3;12257:27;12305:78;12377:5;12305:78;;;12403:7;12431:1;12416:396;12441:6;12438:1;12435:13;12416:396;;;12503:9;12497:4;12493:20;12488:3;12481:33;12548:6;12542:13;12570:108;12673:4;12658:13;12570:108;;;12562:116;;12695:82;12770:6;12695:82;;;12685:92;;12800:4;12795:3;12791:14;12784:21;;12473:339;12463:1;12460;12456:9;12451:14;;12416:396;;;12420:14;12825:4;12818:11;;12842:3;12835:10;;11995:856;;;;;;;;;;12914:818;;13091:70;13155:5;13091:70;;;13174:102;13269:6;13264:3;13174:102;;;13167:109;;13297:72;13363:5;13297:72;;;13389:7;13417:1;13402:308;13427:6;13424:1;13421:13;13402:308;;;13494:6;13488:13;13515:95;13606:3;13591:13;13515:95;;;13508:102;;13627:76;13696:6;13627:76;;;13617:86;;13459:251;13449:1;13446;13442:9;13437:14;;13402:308;;;13406:14;13723:3;13716:10;;13070:662;;;;;;;;13771:467;;13917:86;13996:6;13991:3;13917:86;;;13910:93;;14030:66;14022:6;14019:78;14016:2;;;14110:1;14107;14100:12;14016:2;14143:4;14135:6;14131:17;14121:27;;14160:43;14196:6;14191:3;14184:5;14160:43;;;14225:6;14220:3;14216:16;14209:23;;13903:335;;;;;;14277:690;;14422:54;14470:5;14422:54;;;14489:86;14568:6;14563:3;14489:86;;;14482:93;;14596:56;14646:5;14596:56;;;14672:7;14700:1;14685:260;14710:6;14707:1;14704:13;14685:260;;;14777:6;14771:13;14798:63;14857:3;14842:13;14798:63;;;14791:70;;14878:60;14931:6;14878:60;;;14868:70;;14742:203;14732:1;14729;14725:9;14720:14;;14685:260;;;14689:14;14958:3;14951:10;;14401:566;;;;;;;;14975:94;15042:21;15057:5;15042:21;;;15037:3;15030:34;15024:45;;;15099:297;;15213:70;15276:6;15271:3;15213:70;;;15206:77;;15295:43;15331:6;15326:3;15319:5;15295:43;;;15360:29;15382:6;15360:29;;;15355:3;15351:39;15344:46;;15199:197;;;;;;15404:356;;15532:38;15564:5;15532:38;;;15582:88;15663:6;15658:3;15582:88;;;15575:95;;15675:52;15720:6;15715:3;15708:4;15701:5;15697:16;15675:52;;;15748:6;15743:3;15739:16;15732:23;;15512:248;;;;;;15767:315;;15863:34;15891:5;15863:34;;;15909:60;15962:6;15957:3;15909:60;;;15902:67;;15974:52;16019:6;16014:3;16007:4;16000:5;15996:16;15974:52;;;16047:29;16069:6;16047:29;;;16042:3;16038:39;16031:46;;15843:239;;;;;;16089:154;16186:51;16231:5;16186:51;;;16181:3;16174:64;16168:75;;;16250:138;16334:48;16376:5;16334:48;;;16329:3;16322:61;16316:72;;;16395:152;16486:55;16535:5;16486:55;;;16481:3;16474:68;16468:79;;;16554:146;16642:52;16688:5;16642:52;;;16637:3;16630:65;16624:76;;;16707:142;16798:45;16837:5;16798:45;;;16793:3;16786:58;16780:69;;;16857:324;;17017:67;17081:2;17076:3;17017:67;;;17010:74;;17117:26;17113:1;17108:3;17104:11;17097:47;17172:2;17167:3;17163:12;17156:19;;17003:178;;;;17190:375;;17350:67;17414:2;17409:3;17350:67;;;17343:74;;17450:34;17446:1;17441:3;17437:11;17430:55;17519:8;17514:2;17509:3;17505:12;17498:30;17556:2;17551:3;17547:12;17540:19;;17336:229;;;;17574:318;;17734:67;17798:2;17793:3;17734:67;;;17727:74;;17834:20;17830:1;17825:3;17821:11;17814:41;17883:2;17878:3;17874:12;17867:19;;17720:172;;;;17901:381;;18061:67;18125:2;18120:3;18061:67;;;18054:74;;18161:34;18157:1;18152:3;18148:11;18141:55;18230:14;18225:2;18220:3;18216:12;18209:36;18273:2;18268:3;18264:12;18257:19;;18047:235;;;;18291:329;;18451:67;18515:2;18510:3;18451:67;;;18444:74;;18551:31;18547:1;18542:3;18538:11;18531:52;18611:2;18606:3;18602:12;18595:19;;18437:183;;;;18629:296;;18806:83;18887:1;18882:3;18806:83;;;18799:90;;18917:1;18912:3;18908:11;18901:18;;18792:133;;;;18934:328;;19094:67;19158:2;19153:3;19094:67;;;19087:74;;19194:30;19190:1;19185:3;19181:11;19174:51;19253:2;19248:3;19244:12;19237:19;;19080:182;;;;19331:1601;;19470:6;19465:3;19461:16;19561:4;19554:5;19550:16;19544:23;19573:74;19641:4;19636:3;19632:14;19618:12;19573:74;;;19492:161;19731:4;19724:5;19720:16;19714:23;19743:63;19800:4;19795:3;19791:14;19777:12;19743:63;;;19663:149;19887:4;19880:5;19876:16;19870:23;19899:113;20006:4;20001:3;19997:14;19983:12;19899:113;;;19822:196;20102:4;20095:5;20091:16;20085:23;20114:63;20171:4;20166:3;20162:14;20148:12;20114:63;;;20028:155;20269:4;20262:5;20258:16;20252:23;20281:63;20338:4;20333:3;20329:14;20315:12;20281:63;;;20193:157;20431:4;20424:5;20420:16;20414:23;20443:65;20500:6;20495:3;20491:16;20477:12;20443:65;;;20360:154;20597:4;20590:5;20586:16;20580:23;20609:65;20666:6;20661:3;20657:16;20643:12;20609:65;;;20524:156;20753:4;20746:5;20742:16;20736:23;20807:3;20801:4;20797:14;20788:6;20783:3;20779:16;20772:40;20827:67;20889:4;20875:12;20827:67;;;20819:75;;20690:216;20923:4;20916:11;;19443:1489;;;;;;21002:809;21135:4;21130:3;21126:14;21218:4;21211:5;21207:16;21201:23;21230:57;21281:4;21276:3;21272:14;21258:12;21230:57;;;21155:138;21374:4;21367:5;21363:16;21357:23;21386:81;21461:4;21456:3;21452:14;21438:12;21386:81;;;21303:170;21545:4;21538:5;21534:16;21528:23;21557:78;21629:4;21624:3;21620:14;21606:12;21557:78;;;21483:158;21715:4;21708:5;21704:16;21698:23;21727:63;21784:4;21779:3;21775:14;21761:12;21727:63;;;21651:145;21108:703;;;;21867:455;21986:4;21981:3;21977:14;22070:4;22063:5;22059:16;22053:23;22082:63;22139:4;22134:3;22130:14;22116:12;22082:63;;;22006:145;22226:4;22219:5;22215:16;22209:23;22238:63;22295:4;22290:3;22286:14;22272:12;22238:63;;;22161:146;21959:363;;;;22329:103;22402:24;22420:5;22402:24;;;22397:3;22390:37;22384:48;;;22439:113;22522:24;22540:5;22522:24;;;22517:3;22510:37;22504:48;;;22559:262;;22703:93;22792:3;22783:6;22703:93;;;22696:100;;22813:3;22806:10;;22684:137;;;;;22828:370;;23026:147;23169:3;23026:147;;;23019:154;;23190:3;23183:10;;23007:191;;;;23205:213;;23323:2;23312:9;23308:18;23300:26;;23337:71;23405:1;23394:9;23390:17;23381:6;23337:71;;;23294:124;;;;;23425:229;;23551:2;23540:9;23536:18;23528:26;;23565:79;23641:1;23630:9;23626:17;23617:6;23565:79;;;23522:132;;;;;23661:340;;23815:2;23804:9;23800:18;23792:26;;23829:79;23905:1;23894:9;23890:17;23881:6;23829:79;;;23919:72;23987:2;23976:9;23972:18;23963:6;23919:72;;;23786:215;;;;;;24008:340;;24162:2;24151:9;24147:18;24139:26;;24176:71;24244:1;24233:9;24229:17;24220:6;24176:71;;;24258:80;24334:2;24323:9;24319:18;24310:6;24258:80;;;24133:215;;;;;;24355:324;;24501:2;24490:9;24486:18;24478:26;;24515:71;24583:1;24572:9;24568:17;24559:6;24515:71;;;24597:72;24665:2;24654:9;24650:18;24641:6;24597:72;;;24472:207;;;;;;24686:1155;;25060:3;25049:9;25045:19;25037:27;;25075:71;25143:1;25132:9;25128:17;25119:6;25075:71;;;25157:72;25225:2;25214:9;25210:18;25201:6;25157:72;;;25240;25308:2;25297:9;25293:18;25284:6;25240:72;;;25323;25391:2;25380:9;25376:18;25367:6;25323:72;;;25444:9;25438:4;25434:20;25428:3;25417:9;25413:19;25406:49;25469:86;25550:4;25541:6;25533;25469:86;;;25461:94;;25566:73;25634:3;25623:9;25619:19;25610:6;25566:73;;;25688:9;25682:4;25678:20;25672:3;25661:9;25657:19;25650:49;25713:118;25826:4;25817:6;25809;25713:118;;;25705:126;;25031:810;;;;;;;;;;;;;25848:772;;26170:2;26159:9;26155:18;26147:26;;26220:9;26214:4;26210:20;26206:1;26195:9;26191:17;26184:47;26245:140;26380:4;26371:6;26245:140;;;26237:148;;26433:9;26427:4;26423:20;26418:2;26407:9;26403:18;26396:48;26458:152;26605:4;26596:6;26458:152;;;26450:160;;26141:479;;;;;;26627:975;;26963:3;26952:9;26948:19;26940:27;;26978:85;27060:1;27049:9;27045:17;27036:6;26978:85;;;27074:86;27156:2;27145:9;27141:18;27132:6;27074:86;;;27171:72;27239:2;27228:9;27224:18;27215:6;27171:72;;;27254;27322:2;27311:9;27307:18;27298:6;27254:72;;;27375:9;27369:4;27365:20;27359:3;27348:9;27344:19;27337:49;27400:108;27503:4;27494:6;27400:108;;;27392:116;;27519:73;27587:3;27576:9;27572:19;27563:6;27519:73;;;26934:668;;;;;;;;;;27609:407;;27800:2;27789:9;27785:18;27777:26;;27850:9;27844:4;27840:20;27836:1;27825:9;27821:17;27814:47;27875:131;28001:4;27875:131;;;27867:139;;27771:245;;;;28023:407;;28214:2;28203:9;28199:18;28191:26;;28264:9;28258:4;28254:20;28250:1;28239:9;28235:17;28228:47;28289:131;28415:4;28289:131;;;28281:139;;28185:245;;;;28437:407;;28628:2;28617:9;28613:18;28605:26;;28678:9;28672:4;28668:20;28664:1;28653:9;28649:17;28642:47;28703:131;28829:4;28703:131;;;28695:139;;28599:245;;;;28851:407;;29042:2;29031:9;29027:18;29019:26;;29092:9;29086:4;29082:20;29078:1;29067:9;29063:17;29056:47;29117:131;29243:4;29117:131;;;29109:139;;29013:245;;;;29265:407;;29456:2;29445:9;29441:18;29433:26;;29506:9;29500:4;29496:20;29492:1;29481:9;29477:17;29470:47;29531:131;29657:4;29531:131;;;29523:139;;29427:245;;;;29679:407;;29870:2;29859:9;29855:18;29847:26;;29920:9;29914:4;29910:20;29906:1;29895:9;29891:17;29884:47;29945:131;30071:4;29945:131;;;29937:139;;29841:245;;;;30093:213;;30211:2;30200:9;30196:18;30188:26;;30225:71;30293:1;30282:9;30278:17;30269:6;30225:71;;;30182:124;;;;;30313:256;;30375:2;30369:9;30359:19;;30413:4;30405:6;30401:17;30512:6;30500:10;30497:22;30476:18;30464:10;30461:34;30458:62;30455:2;;;30533:1;30530;30523:12;30455:2;30553:10;30549:2;30542:22;30353:216;;;;;30576:300;;30731:18;30723:6;30720:30;30717:2;;;30763:1;30760;30753:12;30717:2;30798:4;30790:6;30786:17;30778:25;;30861:4;30855;30851:15;30843:23;;30654:222;;;;30883:304;;31042:18;31034:6;31031:30;31028:2;;;31074:1;31071;31064:12;31028:2;31109:4;31101:6;31097:17;31089:25;;31172:4;31166;31162:15;31154:23;;30965:222;;;;31194:317;;31333:18;31325:6;31322:30;31319:2;;;31365:1;31362;31355:12;31319:2;31432:4;31428:9;31421:4;31413:6;31409:17;31405:33;31397:41;;31496:4;31490;31486:15;31478:23;;31256:255;;;;31518:321;;31661:18;31653:6;31650:30;31647:2;;;31693:1;31690;31683:12;31647:2;31760:4;31756:9;31749:4;31741:6;31737:17;31733:33;31725:41;;31824:4;31818;31814:15;31806:23;;31584:255;;;;31846:173;;31954:3;31946:11;;31992:4;31987:3;31983:14;31975:22;;31940:79;;;;32026:167;;32128:3;32120:11;;32166:4;32161:3;32157:14;32149:22;;32114:79;;;;32200:151;;32286:3;32278:11;;32324:4;32319:3;32315:14;32307:22;;32272:79;;;;32358:159;;32489:5;32483:12;32473:22;;32454:63;;;;32524:153;;32649:5;32643:12;32633:22;;32614:63;;;;32684:137;;32793:5;32787:12;32777:22;;32758:63;;;;32828:117;;32917:5;32911:12;32901:22;;32882:63;;;;32952:121;;33045:5;33039:12;33029:22;;33010:63;;;;33080:130;;33200:4;33195:3;33191:14;33183:22;;33177:33;;;;33217:124;;33331:4;33326:3;33322:14;33314:22;;33308:33;;;;33348:108;;33446:4;33441:3;33437:14;33429:22;;33423:33;;;;33464:200;;33616:6;33611:3;33604:19;33653:4;33648:3;33644:14;33629:29;;33597:67;;;;;33673:194;;33819:6;33814:3;33807:19;33856:4;33851:3;33847:14;33832:29;;33800:67;;;;;33876:178;;34006:6;34001:3;33994:19;34043:4;34038:3;34034:14;34019:29;;33987:67;;;;;34063:152;;34167:6;34162:3;34155:19;34204:4;34199:3;34195:14;34180:29;;34148:67;;;;;34224:162;;34338:6;34333:3;34326:19;34375:4;34370:3;34366:14;34351:29;;34319:67;;;;;34395:144;;34530:3;34515:18;;34508:31;;;;;34548:163;;34663:6;34658:3;34651:19;34700:4;34695:3;34691:14;34676:29;;34644:67;;;;;34719:91;;34781:24;34799:5;34781:24;;;34770:35;;34764:46;;;;34817:99;;34887:24;34905:5;34887:24;;;34876:35;;34870:46;;;;34923:85;;34996:5;34989:13;34982:21;34971:32;;34965:43;;;;35015:132;;35090:5;35079:16;;35096:46;35136:5;35096:46;;;35073:74;;;;35154:146;;35236:5;35225:16;;35242:53;35289:5;35242:53;;;35219:81;;;;35307:140;;35386:5;35375:16;;35392:50;35436:5;35392:50;;;35369:78;;;;35454:121;;35527:42;35520:5;35516:54;35505:65;;35499:76;;;;35582:72;;35644:5;35633:16;;35627:27;;;;35661:129;;35748:37;35779:5;35748:37;;;35735:50;;35729:61;;;;35797:149;;35890:51;35935:5;35890:51;;;35877:64;;35871:75;;;;35953:122;;36046:24;36064:5;36046:24;;;36033:37;;36027:48;;;;36082:132;;36172:37;36203:5;36172:37;;;36159:50;;36153:61;;;;36221:146;;36318:44;36356:5;36318:44;;;36305:57;;36299:68;;;;36374:140;;36468:41;36503:5;36468:41;;;36455:54;;36449:65;;;;36521:116;;36608:24;36626:5;36608:24;;;36595:37;;36589:48;;;;36644:121;;36723:37;36754:5;36723:37;;;36710:50;;36704:61;;;;36772:108;;36851:24;36869:5;36851:24;;;36838:37;;36832:48;;;;36888:145;36969:6;36964:3;36959;36946:30;37025:1;37016:6;37011:3;37007:16;37000:27;36939:94;;;;37042:268;37107:1;37114:101;37128:6;37125:1;37122:13;37114:101;;;37204:1;37199:3;37195:11;37189:18;37185:1;37180:3;37176:11;37169:39;37150:2;37147:1;37143:10;37138:15;;37114:101;;;37230:6;37227:1;37224:13;37221:2;;;37295:1;37286:6;37281:3;37277:16;37270:27;37221:2;37091:219;;;;;37318:97;;37406:2;37402:7;37397:2;37390:5;37386:14;37382:28;37372:38;;37366:49;;;;37423:104;37505:1;37498:5;37495:12;37485:2;;37511:9;37485:2;37479:48;;37534:111;37623:1;37616:5;37613:12;37603:2;;37629:9;37603:2;37597:48;;37652:108;37738:1;37731:5;37728:12;37718:2;;37744:9;37718:2;37712:48;;37767:117;37836:24;37854:5;37836:24;;;37829:5;37826:35;37816:2;;37875:1;37872;37865:12;37816:2;37810:74;;37891:133;37968:32;37994:5;37968:32;;;37961:5;37958:43;37948:2;;38015:1;38012;38005:12;37948:2;37942:82;;38031:111;38097:21;38112:5;38097:21;;;38090:5;38087:32;38077:2;;38133:1;38130;38123:12;38077:2;38071:71;;38149:117;38218:24;38236:5;38218:24;;;38211:5;38208:35;38198:2;;38257:1;38254;38247:12;38198:2;38192:74;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "2515600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"": "186",
"DAI()": "1324",
"SAI()": "1282",
"USDC()": "1303",
"WETH()": "1259",
"approveWeth(uint256)": "infinite",
"arb(address,address,uint256,bytes,uint256,uint256[])": "infinite",
"callFunction(address,(address,uint256),bytes)": "infinite",
"currencies(address)": "1604",
"getFlashloan(address,uint256,address,bytes,uint256,uint256[])": "infinite",
"getWeth()": "infinite",
"loan()": "1151",
"oneSplitSwap(address,address,uint256,uint256,uint256[])": "infinite",
"tokenToMarketId(address)": "1710",
"trade(address,address,uint256,bytes,uint256,uint256[])": "infinite",
"withdrawEther()": "infinite",
"withdrawToken(address)": "infinite",
"zrxSwap(address,uint256,bytes)": "infinite"
},
"internal": {
"_approveWeth(uint256)": "infinite",
"_arb(address,address,uint256,bytes memory,uint256,uint256[] memory)": "infinite",
"_getWeth(uint256)": "infinite",
"_oneSplitSwap(address,address,uint256,uint256,uint256[] memory)": "infinite",
"_trade(address,address,uint256,bytes memory,uint256,uint256[] memory)": "infinite",
"_zrxSwap(address,uint256,bytes memory)": "infinite"
}
},
"methodIdentifiers": {
"DAI()": "e0bab4c4",
"SAI()": "4b3fb7f8",
"USDC()": "89a30271",
"WETH()": "ad5c4648",
"approveWeth(uint256)": "df1e6646",
"arb(address,address,uint256,bytes,uint256,uint256[])": "df99a2b2",
"callFunction(address,(address,uint256),bytes)": "8b418713",
"currencies(address)": "6036cba3",
"getFlashloan(address,uint256,address,bytes,uint256,uint256[])": "d702c0d8",
"getWeth()": "107c279f",
"loan()": "d285b7b4",
"oneSplitSwap(address,address,uint256,uint256,uint256[])": "12b246dd",
"tokenToMarketId(address)": "b8268788",
"trade(address,address,uint256,bytes,uint256,uint256[])": "7e68f511",
"withdrawEther()": "7362377b",
"withdrawToken(address)": "89476069",
"zrxSwap(address,uint256,bytes)": "c8c61a79"
}
},
"abi": [
{
"inputs": [],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": true,
"inputs": [],
"name": "DAI",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SAI",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "USDC",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "approveWeth",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_fromToken",
"type": "address"
},
{
"internalType": "address",
"name": "_toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_fromAmount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_0xData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_1SplitMinReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_1SplitDistribution",
"type": "uint256[]"
}
],
"name": "arb",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "number",
"type": "uint256"
}
],
"internalType": "struct Structs.Info",
"name": "",
"type": "tuple"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "callFunction",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "currencies",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "flashToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "flashAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "arbToken",
"type": "address"
},
{
"internalType": "bytes",
"name": "zrxData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "oneSplitMinReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "oneSplitDistribution",
"type": "uint256[]"
}
],
"name": "getFlashloan",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "getWeth",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "loan",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_minReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_distribution",
"type": "uint256[]"
}
],
"name": "oneSplitSwap",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "tokenToMarketId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_fromToken",
"type": "address"
},
{
"internalType": "address",
"name": "_toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_fromAmount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_0xData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_1SplitMinReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_1SplitDistribution",
"type": "uint256[]"
}
],
"name": "trade",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "withdrawEther",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
}
],
"name": "withdrawToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_calldataHexString",
"type": "bytes"
}
],
"name": "zrxSwap",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": true,
"inputs": [],
"name": "DAI",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SAI",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "USDC",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "WETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "approveWeth",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_fromToken",
"type": "address"
},
{
"internalType": "address",
"name": "_toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_fromAmount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_0xData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_1SplitMinReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_1SplitDistribution",
"type": "uint256[]"
}
],
"name": "arb",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "number",
"type": "uint256"
}
],
"internalType": "struct Structs.Info",
"name": "",
"type": "tuple"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "callFunction",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "currencies",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "flashToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "flashAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "arbToken",
"type": "address"
},
{
"internalType": "bytes",
"name": "zrxData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "oneSplitMinReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "oneSplitDistribution",
"type": "uint256[]"
}
],
"name": "getFlashloan",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "getWeth",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "loan",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_minReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_distribution",
"type": "uint256[]"
}
],
"name": "oneSplitSwap",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "tokenToMarketId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_fromToken",
"type": "address"
},
{
"internalType": "address",
"name": "_toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "_fromAmount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_0xData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_1SplitMinReturn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "_1SplitDistribution",
"type": "uint256[]"
}
],
"name": "trade",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "withdrawEther",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
}
],
"name": "withdrawToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_calldataHexString",
"type": "bytes"
}
],
"name": "zrxSwap",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"browser/Test.sol": "TradingBot"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"browser/Test.sol": {
"keccak256": "0xfb8bc9204d67546a1f77a53da8360a8bb2dda71d5b8c7551f4aa57ac255b0847",
"urls": [
"bzz-raw://4216bcf163dd2dfe9b2a81bd85ccc57c84d718e2937dc3a1074d0183b2787f4a",
"dweb:/ipfs/QmTtRUsiYnL6rZTh74nqP86SZwxx5Gd2fDReBWMgDAZcN7"
]
}
},
"version": 1
}
pragma solidity ^0.5.0;
contract Crud {
struct User {
uint id;
string name;
}
User[] public users;
uint public nextId = 1;
function create(string memory name) public {
users.push(User(nextId, name));
nextId++;
}
function read(uint id) view public returns(uint, string memory) {
uint i = find(id);
return(users[i].id, users[i].name);
}
function update(uint id, string memory name) public {
uint i = find(id);
users[i].name = name;
}
function destroy(uint id) public {
uint i = find(id);
delete users[i];
}
function find(uint id) view internal returns(uint) {
for(uint i = 0; i < users.length; i++ ) {
if(users[i].id == id) {
return i;
}
}
revert('User does not exist!');
}
}
pragma solidity ^0.5.0;
contract Deed {
address public lawyer;
address payable public benificiary;
uint public earliest;
constructor(
address _lawyer,
address payable _benificiary,
uint fromNow
)
payable
public
{
lawyer = _lawyer;
benificiary = _benificiary;
earliest = now + fromNow;
}
function withdraw() public {
require(msg.sender == lawyer, 'lawyer only');
require(now >= earliest, 'too early');
benificiary.transfer(address(this).balance);
}
}
pragma solidity ^0.5.0;
contract Deed {
address public lawyer;
address payable public benificiary;
uint public earliest;
uint public amount;
uint constant public PAYOUTS = 10;
uint constant public INTERVAL = 10;
uint public paidPayouts;
constructor(
address _lawyer,
address payable _benificiary,
uint fromNow
)
payable
public
{
lawyer = _lawyer;
benificiary = _benificiary;
earliest = now + fromNow;
amount = msg.value / PAYOUTS;
}
function withdraw() public {
require(msg.sender == benificiary, 'benificiary only');
require(now >= earliest, 'too early');
require(paidPayouts < PAYOUTS, 'No payouts left');
uint elligiblePayouts = (now - earliest) / INTERVAL;
uint duePayouts = elligiblePayouts - paidPayouts;
duePayouts = duePayouts + paidPayouts > PAYOUTS ? PAYOUTS - paidPayouts : duePayouts;
paidPayouts += duePayouts;
benificiary.transfer(duePayouts * amount);
}
}
pragma solidity ^0.5.2;
contract Escrow {
address public payer;
address payable public payee;
address public lawyer;
uint public amount;
constructor(
address _payer,
address payable _payee,
uint _amount
) public {
payer = _payer;
payee = _payee;
lawyer = msg.sender;
amount = _amount;
}
function deposit() payable public{
require(msg.sender == payer, 'Sender must be the payer');
require(address(this).balance <= amount);
}
function release() public {
require(address(this).balance == amount, 'cannot release funds ');
require(msg.sender == lawyer, 'only the lawyer can release the funds');
payee.transfer(amount);
}
function balanceOf() view public returns(uint) {
return address(this).balance;
}
}
pragma solidity ^0.5.0;
contract EtherWallet {
address public owner;
constructor(address _owner) public {
owner = _owner;
}
function deposit() payable public{
}
function send(address payable to, uint amount) public {
if(msg.sender == owner) {
to.transfer(amount);
return;
}
revert('Sender is not allowed!');
}
function balanceOf() view public returns(uint) {
return address(this).balance;
}
}
pragma solidity ^0.5.2;
contract Fibonacci {
function fib(uint n) pure external returns(uint) {
if(n == 0) { return 0; }
uint fi_1 = 1;
uint fi_2 = 1;
for(uint i = 2; i < n; i++) {
uint fi = fi_1 + fi_2;
fi_2 = fi_1;
fi_1 = fi;
}
return fi_1;
}
}
pragma solidity ^0.5.0;
contract HelloWorld {
function hello() pure public returns(string memory) {
return 'Hello World';
}
}
{"compiler":{"version":"0.5.17+commit.d19bba13"},"language":"Solidity","output":{"abi":[{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"DAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SAI","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approveWeth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_fromToken","type":"address"},{"internalType":"address","name":"_toToken","type":"address"},{"internalType":"uint256","name":"_fromAmount","type":"uint256"},{"internalType":"bytes","name":"_0xData","type":"bytes"},{"internalType":"uint256","name":"_1SplitMinReturn","type":"uint256"},{"internalType":"uint256[]","name":"_1SplitDistribution","type":"uint256[]"}],"name":"arb","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"number","type":"uint256"}],"internalType":"struct Structs.Info","name":"","type":"tuple"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"callFunction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"currencies","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"flashToken","type":"address"},{"internalType":"uint256","name":"flashAmount","type":"uint256"},{"internalType":"address","name":"arbToken","type":"address"},{"internalType":"bytes","name":"zrxData","type":"bytes"},{"internalType":"uint256","name":"oneSplitMinReturn","type":"uint256"},{"internalType":"uint256[]","name":"oneSplitDistribution","type":"uint256[]"}],"name":"getFlashloan","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"getWeth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"loan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_minReturn","type":"uint256"},{"internalType":"uint256[]","name":"_distribution","type":"uint256[]"}],"name":"oneSplitSwap","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"tokenToMarketId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_fromToken","type":"address"},{"internalType":"address","name":"_toToken","type":"address"},{"internalType":"uint256","name":"_fromAmount","type":"uint256"},{"internalType":"bytes","name":"_0xData","type":"bytes"},{"internalType":"uint256","name":"_1SplitMinReturn","type":"uint256"},{"internalType":"uint256[]","name":"_1SplitDistribution","type":"uint256[]"}],"name":"trade","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_calldataHexString","type":"bytes"}],"name":"zrxSwap","outputs":[],"payable":true,"stateMutability":"payable","type":"function"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"compilationTarget":{"browser/Test.sol":"TradingBot"},"evmVersion":"istanbul","libraries":{},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"browser/Test.sol":{"keccak256":"0xfb8bc9204d67546a1f77a53da8360a8bb2dda71d5b8c7551f4aa57ac255b0847","urls":["bzz-raw://4216bcf163dd2dfe9b2a81bd85ccc57c84d718e2937dc3a1074d0183b2787f4a","dweb:/ipfs/QmTtRUsiYnL6rZTh74nqP86SZwxx5Gd2fDReBWMgDAZcN7"]}},"version":1}
pragma solidity ^0.5.0;
pragma experimental ABIEncoderV2;
interface Structs {
struct Val {
uint256 value;
}
enum ActionType {
Deposit, // supply tokens
Withdraw, // borrow tokens
Transfer, // transfer balance between accounts
Buy, // buy an amount of some token (externally)
Sell, // sell an amount of some token (externally)
Trade, // trade tokens against another account
Liquidate, // liquidate an undercollateralized or expiring account
Vaporize, // use excess tokens to zero-out a completely negative account
Call // send arbitrary data to an address
}
enum AssetDenomination {
Wei // the amount is denominated in wei
}
enum AssetReference {
Delta // the amount is given as a delta from the current value
}
struct AssetAmount {
bool sign; // true if positive
AssetDenomination denomination;
AssetReference ref;
uint256 value;
}
struct ActionArgs {
ActionType actionType;
uint256 accountId;
AssetAmount amount;
uint256 primaryMarketId;
uint256 secondaryMarketId;
address otherAddress;
uint256 otherAccountId;
bytes data;
}
struct Info {
address owner; // The address that owns the account
uint256 number; // A nonce that allows a single address to control many accounts
}
struct Wei {
bool sign; // true if positive
uint256 value;
}
}
contract DyDxPool is Structs {
function getAccountWei(Info memory account, uint256 marketId) public view returns (Wei memory);
function operate(Info[] memory, ActionArgs[] memory) public;
}
pragma solidity ^0.5.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP. Does not include
* the optional functions; to access them see `ERC20Detailed`.
*/
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
pragma solidity ^0.5.0;
contract DyDxFlashLoan is Structs {
DyDxPool pool = DyDxPool(0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e);
address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
address public SAI = 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359;
address public USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
address public DAI = 0x6B175474E89094C44Da98b954EedeAC495271d0F;
mapping(address => uint256) public currencies;
constructor() public {
currencies[WETH] = 1;
currencies[SAI] = 2;
currencies[USDC] = 3;
currencies[DAI] = 4;
}
modifier onlyPool() {
require(
msg.sender == address(pool),
"FlashLoan: could be called by DyDx pool only"
);
_;
}
function tokenToMarketId(address token) public view returns (uint256) {
uint256 marketId = currencies[token];
require(marketId != 0, "FlashLoan: Unsupported token");
return marketId - 1;
}
// the DyDx will call `callFunction(address sender, Info memory accountInfo, bytes memory data) public` after during `operate` call
function flashloan(address token, uint256 amount, bytes memory data)
internal
{
IERC20(token).approve(address(pool), amount + 1);
Info[] memory infos = new Info[](1);
ActionArgs[] memory args = new ActionArgs[](3);
infos[0] = Info(address(this), 0);
AssetAmount memory wamt = AssetAmount(
false,
AssetDenomination.Wei,
AssetReference.Delta,
amount
);
ActionArgs memory withdraw;
withdraw.actionType = ActionType.Withdraw;
withdraw.accountId = 0;
withdraw.amount = wamt;
withdraw.primaryMarketId = tokenToMarketId(token);
withdraw.otherAddress = address(this);
args[0] = withdraw;
ActionArgs memory call;
call.actionType = ActionType.Call;
call.accountId = 0;
call.otherAddress = address(this);
call.data = data;
args[1] = call;
ActionArgs memory deposit;
AssetAmount memory damt = AssetAmount(
true,
AssetDenomination.Wei,
AssetReference.Delta,
amount + 1
);
deposit.actionType = ActionType.Deposit;
deposit.accountId = 0;
deposit.amount = damt;
deposit.primaryMarketId = tokenToMarketId(token);
deposit.otherAddress = address(this);
args[2] = deposit;
pool.operate(infos, args);
}
}
pragma solidity ^0.5.0;
contract IOneSplit {
function getExpectedReturn(
IERC20 fromToken,
IERC20 toToken,
uint256 amount,
uint256 parts,
uint256 disableFlags
)
public
view
returns(
uint256 returnAmount,
uint256[] memory distribution
);
function swap(
IERC20 fromToken,
IERC20 toToken,
uint256 amount,
uint256 minReturn,
uint256[] memory distribution,
uint256 disableFlags
) public payable;
}
contract TradingBot is DyDxFlashLoan {
uint256 public loan;
// Addresses
address payable OWNER;
// OneSplit Config
address ONE_SPLIT_ADDRESS = 0xC586BeF4a0992C495Cf22e1aeEE4E446CECDee0E;
uint256 PARTS = 10;
uint256 FLAGS = 0;
// ZRX Config
address ZRX_EXCHANGE_ADDRESS = 0x61935CbDd02287B511119DDb11Aeb42F1593b7Ef;
address ZRX_ERC20_PROXY_ADDRESS = 0x95E6F48254609A6ee006F7D493c8e5fB97094ceF;
address ZRX_STAKING_PROXY = 0xa26e80e7Dea86279c6d778D702Cc413E6CFfA777; // Fee collector
// Modifiers
modifier onlyOwner() {
require(msg.sender == OWNER, "caller is not the owner!");
_;
}
// Allow the contract to receive Ether
function () external payable {}
constructor() public payable {
_getWeth(msg.value);
_approveWeth(msg.value);
OWNER = msg.sender;
}
function getFlashloan(address flashToken, uint256 flashAmount, address arbToken, bytes calldata zrxData, uint256 oneSplitMinReturn, uint256[] calldata oneSplitDistribution) external payable onlyOwner {
uint256 balanceBefore = IERC20(flashToken).balanceOf(address(this));
bytes memory data = abi.encode(flashToken, flashAmount, balanceBefore, arbToken, zrxData, oneSplitMinReturn, oneSplitDistribution);
flashloan(flashToken, flashAmount, data); // execution goes to `callFunction`
// and this point we have succefully paid the dept
}
function callFunction(
address, /* sender */
Info calldata, /* accountInfo */
bytes calldata data
) external onlyPool {
(address flashToken, uint256 flashAmount, uint256 balanceBefore, address arbToken, bytes memory zrxData, uint256 oneSplitMinReturn, uint256[] memory oneSplitDistribution) = abi
.decode(data, (address, uint256, uint256, address, bytes, uint256, uint256[]));
uint256 balanceAfter = IERC20(flashToken).balanceOf(address(this));
require(
balanceAfter - balanceBefore == flashAmount,
"contract did not get the loan"
);
loan = balanceAfter;
// do whatever you want with the money
// the dept will be automatically withdrawn from this contract at the end of execution
_arb(flashToken, arbToken, flashAmount, zrxData, oneSplitMinReturn, oneSplitDistribution);
}
function arb(address _fromToken, address _toToken, uint256 _fromAmount, bytes memory _0xData, uint256 _1SplitMinReturn, uint256[] memory _1SplitDistribution) onlyOwner payable public {
_arb(_fromToken, _toToken, _fromAmount, _0xData, _1SplitMinReturn, _1SplitDistribution);
}
function _arb(address _fromToken, address _toToken, uint256 _fromAmount, bytes memory _0xData, uint256 _1SplitMinReturn, uint256[] memory _1SplitDistribution) internal {
// Track original balance
uint256 _startBalance = IERC20(_fromToken).balanceOf(address(this));
// Perform the arb trade
_trade(_fromToken, _toToken, _fromAmount, _0xData, _1SplitMinReturn, _1SplitDistribution);
// Track result balance
uint256 _endBalance = IERC20(_fromToken).balanceOf(address(this));
// Require that arbitrage is profitable
require(_endBalance > _startBalance, "End balance must exceed start balance.");
}
function trade(address _fromToken, address _toToken, uint256 _fromAmount, bytes memory _0xData, uint256 _1SplitMinReturn, uint256[] memory _1SplitDistribution) onlyOwner payable public {
_trade(_fromToken, _toToken, _fromAmount, _0xData, _1SplitMinReturn, _1SplitDistribution);
}
function _trade(address _fromToken, address _toToken, uint256 _fromAmount, bytes memory _0xData, uint256 _1SplitMinReturn, uint256[] memory _1SplitDistribution) internal {
// Track the balance of the token RECEIVED from the trade
uint256 _beforeBalance = IERC20(_toToken).balanceOf(address(this));
// Swap on 0x: give _fromToken, receive _toToken
_zrxSwap(_fromToken, _fromAmount, _0xData);
// Calculate the how much of the token we received
uint256 _afterBalance = IERC20(_toToken).balanceOf(address(this));
// Read _toToken balance after swap
uint256 _toAmount = _afterBalance - _beforeBalance;
// Swap on 1Split: give _toToken, receive _fromToken
_oneSplitSwap(_toToken, _fromToken, _toAmount, _1SplitMinReturn, _1SplitDistribution);
}
function zrxSwap(address _from, uint256 _amount, bytes memory _calldataHexString) onlyOwner public payable {
_zrxSwap(_from, _amount, _calldataHexString);
}
function _zrxSwap(address _from, uint256 _amount, bytes memory _calldataHexString) internal {
// Approve tokens
IERC20 _fromIERC20 = IERC20(_from);
_fromIERC20.approve(ZRX_ERC20_PROXY_ADDRESS, _amount);
// Swap tokens
address(ZRX_EXCHANGE_ADDRESS).call.value(msg.value)(_calldataHexString);
// Reset approval
_fromIERC20.approve(ZRX_ERC20_PROXY_ADDRESS, 0);
}
function oneSplitSwap(address _from, address _to, uint256 _amount, uint256 _minReturn, uint256[] memory _distribution) onlyOwner public payable {
_oneSplitSwap(_from, _to, _amount, _minReturn, _distribution);
}
function _oneSplitSwap(address _from, address _to, uint256 _amount, uint256 _minReturn, uint256[] memory _distribution) internal {
// Setup contracts
IERC20 _fromIERC20 = IERC20(_from);
IERC20 _toIERC20 = IERC20(_to);
IOneSplit _oneSplitContract = IOneSplit(ONE_SPLIT_ADDRESS);
// Approve tokens
_fromIERC20.approve(ONE_SPLIT_ADDRESS, _amount);
// Swap tokens: give _from, get _to
_oneSplitContract.swap(_fromIERC20, _toIERC20, _amount, _minReturn, _distribution, FLAGS);
// Reset approval
_fromIERC20.approve(ONE_SPLIT_ADDRESS, 0);
}
function getWeth() public payable onlyOwner {
_getWeth(msg.value);
}
function _getWeth(uint256 _amount) internal {
(bool success, ) = WETH.call.value(_amount)("");
require(success, "failed to get weth");
}
function approveWeth(uint256 _amount) public onlyOwner {
_approveWeth(_amount);
}
function _approveWeth(uint256 _amount) internal {
IERC20(WETH).approve(ZRX_STAKING_PROXY, _amount);
}
// KEEP THIS FUNCTION IN CASE THE CONTRACT RECEIVES TOKENS!
function withdrawToken(address _tokenAddress) public onlyOwner {
uint256 balance = IERC20(_tokenAddress).balanceOf(address(this));
IERC20(_tokenAddress).transfer(OWNER, balance);
}
// KEEP THIS FUNCTION IN CASE THE CONTRACT KEEPS LEFTOVER ETHER!
function withdrawEther() public onlyOwner {
address self = address(this); // workaround for a possible solidity bug
uint256 balance = self.balance;
address(OWNER).transfer(balance);
}
}
pragma solidity ^0.5.2;
contract MultiSig {
address[] public approvers;
uint public quorum;
struct Transfer {
uint id;
uint amount;
address payable to;
uint approvals;
bool sent;
}
mapping(uint => Transfer) transfers;
uint nextId;
mapping(address => mapping(uint => bool)) approvals;
constructor(address[] memory _approvers, uint _quorum)
public payable {
approvers = _approvers;
quorum = _quorum;
}
function createTransfer(uint amount, address payable to)
onlyApprover()
external
{
// Container
// Transfer
transfers[nextId] = Transfer(
nextId,
amount,
to,
0,
false
);
nextId++;
}
function sendTransfer(uint id) onlyApprover() external {
require(transfers[id].sent == false, 'Transfer has already been sent.');
if(transfers[id].approvals >= quorum) {
transfers[id].sent = true;
address payable to = transfers[id].to;
uint amount = transfers[id].amount;
to.transfer(amount);
return;
}
if(approvals[msg.sender][id] == false) {
approvals[msg.sender][id] = true;
transfers[id].approvals++;
}
}
modifier onlyApprover() {
bool allowed = false;
for(uint i; i < approvers.length; i++) {
if(approvers[i] == msg.sender) {
allowed = true;
}
}
require(allowed == true, 'only approver allowed');
_;
}
}
pragma solidity ^ 0.5.0;
contract SimpleSmartContract {
}
pragma solidity ^0.5.0;
contract SimpleStorage {
string public data;
function set(string memory _data) public {
data = _data;
}
function get() view public returns(string memory) {
return data;
}
}
pragma solidity ^0.5.0;
contract SplitPayment {
address public owner;
constructor(address _owner) public {
owner = _owner;
}
function send(address payable [] memory to, uint [] memory amount)
payable
onlyOwner()
public
{
require(to.length == amount.length, 'to and amount arrays must have the same length.');
for(uint i = 0; i < to.length; i++) {
to[i].transfer(amount[i]);
}
}
//modifier
modifier onlyOwner() {
require(msg.sender == owner, 'only the owner can send transfers.');
_;
}
}
pragma solidity ^0.5.2;
contract Strings {
function length(string memory str) pure public returns(uint) {
bytes memory str_bytes = bytes(str);
return str_bytes.length;
}
function concatenate(
string memory str1,
string memory str2)
pure
public
returns(string memory)
{
bytes memory str1_bytes = bytes(str1);
bytes memory str2_bytes = bytes(str2);
string memory str = new string(str1_bytes.length + str2_bytes.length);
bytes memory str_bytes = bytes(str);
unit j = 0;
for(unit i = 0; i < str1_bytes.length; i++) {
str_bytes[j] = str1_bytes[i];
j++;
}
for(unit j = 0; j < str2_bytes.length; j++) {
str_bytes[j] = str2_bytes[i];
j++;
}
return string(str_bytes);
}
}
pragma solidity ^0.5.0;
pragma experimental ABIEncoderV2;
interface Structs {
struct Val {
uint256 value;
}
enum ActionType {
Deposit, // supply tokens
Withdraw, // borrow tokens
Transfer, // transfer balance between accounts
Buy, // buy an amount of some token (externally)
Sell, // sell an amount of some token (externally)
Trade, // trade tokens against another account
Liquidate, // liquidate an undercollateralized or expiring account
Vaporize, // use excess tokens to zero-out a completely negative account
Call // send arbitrary data to an address
}
enum AssetDenomination {
Wei // the amount is denominated in wei
}
enum AssetReference {
Delta // the amount is given as a delta from the current value
}
struct AssetAmount {
bool sign; // true if positive
AssetDenomination denomination;
AssetReference ref;
uint256 value;
}
struct ActionArgs {
ActionType actionType;
uint256 accountId;
AssetAmount amount;
uint256 primaryMarketId;
uint256 secondaryMarketId;
address otherAddress;
uint256 otherAccountId;
bytes data;
}
struct Info {
address owner; // The address that owns the account
uint256 number; // A nonce that allows a single address to control many accounts
}
struct Wei {
bool sign; // true if positive
uint256 value;
}
}
contract DyDxPool is Structs {
function getAccountWei(Info memory account, uint256 marketId) public view returns (Wei memory);
function operate(Info[] memory, ActionArgs[] memory) public;
}
pragma solidity ^0.5.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP. Does not include
* the optional functions; to access them see `ERC20Detailed`.
*/
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
pragma solidity ^0.5.0;
contract DyDxFlashLoan is Structs {
DyDxPool pool = DyDxPool(0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e);
address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
address public SAI = 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359;
address public USDC = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
address public DAI = 0x6B175474E89094C44Da98b954EedeAC495271d0F;
mapping(address => uint256) public currencies;
constructor() public {
currencies[WETH] = 1;
currencies[SAI] = 2;
currencies[USDC] = 3;
currencies[DAI] = 4;
}
modifier onlyPool() {
require(
msg.sender == address(pool),
"FlashLoan: could be called by DyDx pool only"
);
_;
}
function tokenToMarketId(address token) public view returns (uint256) {
uint256 marketId = currencies[token];
require(marketId != 0, "FlashLoan: Unsupported token");
return marketId - 1;
}
// the DyDx will call `callFunction(address sender, Info memory accountInfo, bytes memory data) public` after during `operate` call
function flashloan(address token, uint256 amount, bytes memory data)
internal
{
IERC20(token).approve(address(pool), amount + 1);
Info[] memory infos = new Info[](1);
ActionArgs[] memory args = new ActionArgs[](3);
infos[0] = Info(address(this), 0);
AssetAmount memory wamt = AssetAmount(
false,
AssetDenomination.Wei,
AssetReference.Delta,
amount
);
ActionArgs memory withdraw;
withdraw.actionType = ActionType.Withdraw;
withdraw.accountId = 0;
withdraw.amount = wamt;
withdraw.primaryMarketId = tokenToMarketId(token);
withdraw.otherAddress = address(this);
args[0] = withdraw;
ActionArgs memory call;
call.actionType = ActionType.Call;
call.accountId = 0;
call.otherAddress = address(this);
call.data = data;
args[1] = call;
ActionArgs memory deposit;
AssetAmount memory damt = AssetAmount(
true,
AssetDenomination.Wei,
AssetReference.Delta,
amount + 1
);
deposit.actionType = ActionType.Deposit;
deposit.accountId = 0;
deposit.amount = damt;
deposit.primaryMarketId = tokenToMarketId(token);
deposit.otherAddress = address(this);
args[2] = deposit;
pool.operate(infos, args);
}
}
pragma solidity ^0.5.0;
contract IOneSplit {
function getExpectedReturn(
IERC20 fromToken,
IERC20 toToken,
uint256 amount,
uint256 parts,
uint256 disableFlags
)
public
view
returns(
uint256 returnAmount,
uint256[] memory distribution
);
function swap(
IERC20 fromToken,
IERC20 toToken,
uint256 amount,
uint256 minReturn,
uint256[] memory distribution,
uint256 disableFlags
) public payable;
}
contract TradingBot is DyDxFlashLoan {
uint256 public loan;
// Addresses
address payable OWNER;
// OneSplit Config
address ONE_SPLIT_ADDRESS = 0xC586BeF4a0992C495Cf22e1aeEE4E446CECDee0E;
uint256 PARTS = 10;
uint256 FLAGS = 0;
// ZRX Config
address ZRX_EXCHANGE_ADDRESS = 0x61935CbDd02287B511119DDb11Aeb42F1593b7Ef;
address ZRX_ERC20_PROXY_ADDRESS = 0x95E6F48254609A6ee006F7D493c8e5fB97094ceF;
address ZRX_STAKING_PROXY = 0xa26e80e7Dea86279c6d778D702Cc413E6CFfA777; // Fee collector
// Modifiers
modifier onlyOwner() {
require(msg.sender == OWNER, "caller is not the owner!");
_;
}
// Allow the contract to receive Ether
function () external payable {}
constructor() public payable {
_getWeth(msg.value);
_approveWeth(msg.value);
OWNER = msg.sender;
}
function getFlashloan(address flashToken, uint256 flashAmount, address arbToken, bytes calldata zrxData, uint256 oneSplitMinReturn, uint256[] calldata oneSplitDistribution) external payable onlyOwner {
uint256 balanceBefore = IERC20(flashToken).balanceOf(address(this));
bytes memory data = abi.encode(flashToken, flashAmount, balanceBefore, arbToken, zrxData, oneSplitMinReturn, oneSplitDistribution);
flashloan(flashToken, flashAmount, data); // execution goes to `callFunction`
// and this point we have succefully paid the dept
}
function callFunction(
address, /* sender */
Info calldata, /* accountInfo */
bytes calldata data
) external onlyPool {
(address flashToken, uint256 flashAmount, uint256 balanceBefore, address arbToken, bytes memory zrxData, uint256 oneSplitMinReturn, uint256[] memory oneSplitDistribution) = abi
.decode(data, (address, uint256, uint256, address, bytes, uint256, uint256[]));
uint256 balanceAfter = IERC20(flashToken).balanceOf(address(this));
require(
balanceAfter - balanceBefore == flashAmount,
"contract did not get the loan"
);
loan = balanceAfter;
// do whatever you want with the money
// the dept will be automatically withdrawn from this contract at the end of execution
_arb(flashToken, arbToken, flashAmount, zrxData, oneSplitMinReturn, oneSplitDistribution);
}
function arb(address _fromToken, address _toToken, uint256 _fromAmount, bytes memory _0xData, uint256 _1SplitMinReturn, uint256[] memory _1SplitDistribution) onlyOwner payable public {
_arb(_fromToken, _toToken, _fromAmount, _0xData, _1SplitMinReturn, _1SplitDistribution);
}
function _arb(address _fromToken, address _toToken, uint256 _fromAmount, bytes memory _0xData, uint256 _1SplitMinReturn, uint256[] memory _1SplitDistribution) internal {
// Track original balance
uint256 _startBalance = IERC20(_fromToken).balanceOf(address(this));
// Perform the arb trade
_trade(_fromToken, _toToken, _fromAmount, _0xData, _1SplitMinReturn, _1SplitDistribution);
// Track result balance
uint256 _endBalance = IERC20(_fromToken).balanceOf(address(this));
// Require that arbitrage is profitable
require(_endBalance > _startBalance, "End balance must exceed start balance.");
}
function trade(address _fromToken, address _toToken, uint256 _fromAmount, bytes memory _0xData, uint256 _1SplitMinReturn, uint256[] memory _1SplitDistribution) onlyOwner payable public {
_trade(_fromToken, _toToken, _fromAmount, _0xData, _1SplitMinReturn, _1SplitDistribution);
}
function _trade(address _fromToken, address _toToken, uint256 _fromAmount, bytes memory _0xData, uint256 _1SplitMinReturn, uint256[] memory _1SplitDistribution) internal {
// Track the balance of the token RECEIVED from the trade
uint256 _beforeBalance = IERC20(_toToken).balanceOf(address(this));
// Swap on 0x: give _fromToken, receive _toToken
_zrxSwap(_fromToken, _fromAmount, _0xData);
// Calculate the how much of the token we received
uint256 _afterBalance = IERC20(_toToken).balanceOf(address(this));
// Read _toToken balance after swap
uint256 _toAmount = _afterBalance - _beforeBalance;
// Swap on 1Split: give _toToken, receive _fromToken
_oneSplitSwap(_toToken, _fromToken, _toAmount, _1SplitMinReturn, _1SplitDistribution);
}
function zrxSwap(address _from, uint256 _amount, bytes memory _calldataHexString) onlyOwner public payable {
_zrxSwap(_from, _amount, _calldataHexString);
}
function _zrxSwap(address _from, uint256 _amount, bytes memory _calldataHexString) internal {
// Approve tokens
IERC20 _fromIERC20 = IERC20(_from);
_fromIERC20.approve(ZRX_ERC20_PROXY_ADDRESS, _amount);
// Swap tokens
address(ZRX_EXCHANGE_ADDRESS).call.value(msg.value)(_calldataHexString);
// Reset approval
_fromIERC20.approve(ZRX_ERC20_PROXY_ADDRESS, 0);
}
function oneSplitSwap(address _from, address _to, uint256 _amount, uint256 _minReturn, uint256[] memory _distribution) onlyOwner public payable {
_oneSplitSwap(_from, _to, _amount, _minReturn, _distribution);
}
function _oneSplitSwap(address _from, address _to, uint256 _amount, uint256 _minReturn, uint256[] memory _distribution) internal {
// Setup contracts
IERC20 _fromIERC20 = IERC20(_from);
IERC20 _toIERC20 = IERC20(_to);
IOneSplit _oneSplitContract = IOneSplit(ONE_SPLIT_ADDRESS);
// Approve tokens
_fromIERC20.approve(ONE_SPLIT_ADDRESS, _amount);
// Swap tokens: give _from, get _to
_oneSplitContract.swap(_fromIERC20, _toIERC20, _amount, _minReturn, _distribution, FLAGS);
// Reset approval
_fromIERC20.approve(ONE_SPLIT_ADDRESS, 0);
}
function getWeth() public payable onlyOwner {
_getWeth(msg.value);
}
function _getWeth(uint256 _amount) internal {
(bool success, ) = WETH.call.value(_amount)("");
require(success, "failed to get weth");
}
function approveWeth(uint256 _amount) public onlyOwner {
_approveWeth(_amount);
}
function _approveWeth(uint256 _amount) internal {
IERC20(WETH).approve(ZRX_STAKING_PROXY, _amount);
}
// KEEP THIS FUNCTION IN CASE THE CONTRACT RECEIVES TOKENS!
function withdrawToken(address _tokenAddress) public onlyOwner {
uint256 balance = IERC20(_tokenAddress).balanceOf(address(this));
IERC20(_tokenAddress).transfer(OWNER, balance);
}
// KEEP THIS FUNCTION IN CASE THE CONTRACT KEEPS LEFTOVER ETHER!
function withdrawEther() public onlyOwner {
address self = address(this); // workaround for a possible solidity bug
uint256 balance = self.balance;
address(OWNER).transfer(balance);
}
}
pragma solidity >=0.4.22 <0.7.0;
import "remix_tests.sol"; // this import is automatically injected by Remix.
import "../3_Ballot.sol";
contract BallotTest {
bytes32[] proposalNames;
Ballot ballotToTest;
function beforeAll () public {
proposalNames.push(bytes32("candidate1"));
ballotToTest = new Ballot(proposalNames);
}
function checkWinningProposal () public {
ballotToTest.vote(0);
Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal");
Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name");
}
function checkWinninProposalWithReturnValue () public view returns (bool) {
return ballotToTest.winningProposal() == 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment