Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PatrickAlphaC/ad0c4081cf73db1fd7beeec36926f9ae to your computer and use it in GitHub Desktop.
Save PatrickAlphaC/ad0c4081cf73db1fd7beeec36926f9ae 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=
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
{
"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": "608060405234801561001057600080fd5b50739326bfa02add2366b30bacb125260af6410313316000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061016c806100746000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638e15f47314610030575b600080fd5b61003861004e565b6040518082815260200191505060405180910390f35b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156100be57600080fd5b505afa1580156100d2573d6000803e3d6000fd5b505050506040513d60a08110156100e857600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509450945094509450945083955050505050509056fea2646970667358221220c4812f8bceeb89a8994e72960fe081889552dc295a07e8c03662b09e235c5a4f64736f6c63430006070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0x9326BFA02ADD2366B30BACB125260AF641031331 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x16C DUP1 PUSH2 0x74 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8E15F473 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E 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 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xE8 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 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP DUP4 SWAP6 POP POP POP POP POP POP SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC4 DUP2 0x2F DUP12 0xCE 0xEB DUP10 0xA8 SWAP10 0x4E PUSH19 0x960FE081889552DC295A07E8C03662B09E235C GAS 0x4F PUSH5 0x736F6C6343 STOP MOD SMOD STOP CALLER ",
"sourceMap": "239:649:0:-:0;;;442:115;5:9:-1;2:2;;;27:1;24;17:12;2:2;442:115:0;507:42;473:9;;:77;;;;;;;;;;;;;;;;;;239:649;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80638e15f47314610030575b600080fd5b61003861004e565b6040518082815260200191505060405180910390f35b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156100be57600080fd5b505afa1580156100d2573d6000803e3d6000fd5b505050506040513d60a08110156100e857600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509450945094509450945083955050505050509056fea2646970667358221220c4812f8bceeb89a8994e72960fe081889552dc295a07e8c03662b09e235c5a4f64736f6c63430006070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8E15F473 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E 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 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xE8 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 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP DUP4 SWAP6 POP POP POP POP POP POP SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC4 DUP2 0x2F DUP12 0xCE 0xEB DUP10 0xA8 SWAP10 0x4E PUSH19 0x960FE081889552DC295A07E8C03662B09E235C GAS 0x4F PUSH5 0x736F6C6343 STOP MOD SMOD STOP CALLER ",
"sourceMap": "239:649:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;239:649:0;;;;;;;;;;;;;;;;12:1:-1;9;2:12;611:275:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;658:3;687:14;716:9;739:14;767;795:22;830:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;830:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;830:27:0;;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;830:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;673:184;;;;;;;;;;874:5;867:12;;;;;;;611:275;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "72800",
"executionCost": "20990",
"totalCost": "93790"
},
"external": {
"getLatestPrice()": "infinite"
}
},
"methodIdentifiers": {
"getLatestPrice()": "8e15f473"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.7+commit.b8d736ae"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {
"constructor": "Network: Kovan Aggregator: ETH/USD Address: 0x9326BFA02ADD2366b30bacB125260Af641031331",
"getLatestPrice()": {
"notice": "Returns the latest price"
}
}
}
},
"settings": {
"compilationTarget": {
"0c5928a00094810d2ba01fd8d1083581/PriceConsumerV3.sol": "PriceConsumerV3"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"0c5928a00094810d2ba01fd8d1083581/PriceConsumerV3.sol": {
"keccak256": "0xb93dd6e168e9760b5ac15ecf42310e571902a5a49bb86efb6a991a073bd4c0ec",
"urls": [
"bzz-raw://31effca99806bce5d4932452e3943dc1d2866f83b1b426dbce86e3d82c7716ea",
"dweb:/ipfs/QmQKLjPaS1Xmgqgz9mUr8KPe7UmUH8rnYRJjTTnA8Qispy"
]
},
"https://github.com/smartcontractkit/chainlink/blob/master/evm-contracts/src/v0.6/interfaces/AggregatorV3Interface.sol": {
"keccak256": "0x1862840d741dedb36e774534b877a13b5187555e3b78b8d2815f898b0dc02268",
"urls": [
"bzz-raw://64a15f4349aea6e60703f581a6280b71d6adb35ee74d2f3c4f130a2adc3efee3",
"dweb:/ipfs/QmdVoSQvGfJNPnjQsAs7ZN3ueWghzTa72jSqzhGiQNDpkL"
]
}
},
"version": 1
}
// This example code is designed to quickly deploy an example contract using Remix.
pragma solidity ^0.6.7;
import "https://github.com/smartcontractkit/chainlink/blob/master/evm-contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
contract PriceConsumerV3 {
AggregatorV3Interface internal priceFeed;
/**
* Network: Kovan
* Aggregator: ETH/USD
* Address: 0x9326BFA02ADD2366b30bacB125260Af641031331
*/
constructor() public {
priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
}
/**
* Returns the latest price
*/
function getLatestPrice() public view returns (int) {
(
uint80 roundID,
int price,
uint startedAt,
uint timeStamp,
uint80 answeredInRound
) = priceFeed.latestRoundData();
return price;
}
}
{
"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": "60806040527f3100000000000000000000000000000000000000000000000000000000000000600460006101000a81548160ff021916908360f81c02179055506000600460016101000a81548160ff0219169083600281111561005e57fe5b021790555034801561006f57600080fd5b50610b5c8061007f6000396000f3fe6080604052600436106100c25760003560e01c8063c19d93fb1161007f578063d2f0be9911610059578063d2f0be991461032d578063d7bb99ba14610380578063d939c9601461039e578063fe389e09146103f5576100c2565b8063c19d93fb146102b2578063c2052403146102eb578063c5c4744c14610302576100c2565b806302d05d3f146100c7578063105ea5401461011e57806328b3aa4c1461014957806337f944cc146102455780634c4cea5a1461027057806386f325861461029b575b600080fd5b3480156100d357600080fd5b506100dc61040c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012a57600080fd5b50610133610431565b6040518082815260200191505060405180910390f35b34801561015557600080fd5b506102436004803603608081101561016c57600080fd5b81019080803590602001909291908035906020019064010000000081111561019357600080fd5b8201836020820111156101a557600080fd5b803590602001918460018302840111640100000000831117156101c757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610437565b005b34801561025157600080fd5b5061025a6104e9565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b506102856104ef565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06104f5565b005b3480156102be57600080fd5b506102c761056b565b604051808260028111156102d757fe5b60ff16815260200191505060405180910390f35b3480156102f757600080fd5b5061030061057e565b005b34801561030e57600080fd5b506103176106a2565b6040518082815260200191505060405180910390f35b34801561033957600080fd5b506103666004803603602081101561035057600080fd5b81019080803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b6103886107fd565b6040518082815260200191505060405180910390f35b3480156103aa57600080fd5b506103b3610976565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040157600080fd5b5061040a61099c565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600390805190602001906104ce929190610a81565b5080600281905550610e108402420160068190555050505050565b60065481565b60075481565b6002546005541115610532576002600460016101000a81548160ff0219169083600281111561052057fe5b021790555061052d61057e565b610562565b600654421115610561576001600460016101000a81548160ff0219169083600281111561055b57fe5b02179055505b5b42600781905550565b600460019054906101000a900460ff1681565b600280600281111561058c57fe5b600460019054906101000a900460ff1660028111156105a757fe5b146105b157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610619573d6000803e3d6000fd5b507fcc2a9192e91e4dd58845fd890b297de7bfda33e9f07f14bb2e4fe2237c86723d600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60055481565b600060018060028111156106b857fe5b600460019054906101000a900460ff1660028111156106d357fe5b146106dd57600080fd5b826008805490501180156106f2575060008310155b801561071d575060006008848154811061070857fe5b90600052602060002090600202016000015414155b61072657600080fd5b60006008848154811061073557fe5b906000526020600020906002020160000154905060006008858154811061075857fe5b9060005260206000209060020201600001819055506008848154811061077a57fe5b906000526020600020906002020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156107f1573d6000803e3d6000fd5b50600192505050919050565b60008080600281111561080c57fe5b600460019054906101000a900460ff16600281111561082757fe5b1461083157600080fd5b600860405180604001604052803481526020013373ffffffffffffffffffffffffffffffffffffffff1681525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050346005600082825401925050819055507f304e48bb03eae5e9bf3575d270648664895983e116a51773a65e9f3341b3b40e3334600554604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a16109676104f5565b60016008805490500391505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109f557600080fd5b60016002811115610a0257fe5b600460019054906101000a900460ff166002811115610a1d57fe5b1480610a4d5750600280811115610a3057fe5b600460019054906101000a900460ff166002811115610a4b57fe5b145b8015610a5f57504262dd7c0060075401105b610a6857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610ac257805160ff1916838001178555610af0565b82800160010185558215610af0579182015b82811115610aef578251825591602001919060010190610ad4565b5b509050610afd9190610b01565b5090565b610b2391905b80821115610b1f576000816000905550600101610b07565b5090565b9056fea2646970667358221220250791b228614b334f8cd73654963fe49b4d6f40b21e2291c8207fc5d5bcee8a64736f6c63430006060033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH32 0x3100000000000000000000000000000000000000000000000000000000000000 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF8 SHR MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5E JUMPI INVALID JUMPDEST MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5C DUP1 PUSH2 0x7F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC2 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC19D93FB GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xD2F0BE99 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xD2F0BE99 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0xD7BB99BA EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0xD939C960 EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0xFE389E09 EQ PUSH2 0x3F5 JUMPI PUSH2 0xC2 JUMP JUMPDEST DUP1 PUSH4 0xC19D93FB EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0xC2052403 EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xC5C4744C EQ PUSH2 0x302 JUMPI PUSH2 0xC2 JUMP JUMPDEST DUP1 PUSH4 0x2D05D3F EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x105EA540 EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x28B3AA4C EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x37F944CC EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x4C4CEA5A EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x86F32586 EQ PUSH2 0x29B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDC PUSH2 0x40C 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 0x12A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x133 PUSH2 0x431 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 0x155 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x16C 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 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x1A5 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 0x1C7 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 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 0x437 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0x4E9 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 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x285 PUSH2 0x4EF 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 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B0 PUSH2 0x4F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x56B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2D7 JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x300 PUSH2 0x57E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x317 PUSH2 0x6A2 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 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x366 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x350 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x6A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x388 PUSH2 0x7FD 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 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B3 PUSH2 0x976 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 0x401 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40A PUSH2 0x99C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP 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 DUP3 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4CE SWAP3 SWAP2 SWAP1 PUSH2 0xA81 JUMP JUMPDEST POP DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH2 0xE10 DUP5 MUL TIMESTAMP ADD PUSH1 0x6 DUP2 SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x5 SLOAD GT ISZERO PUSH2 0x532 JUMPI PUSH1 0x2 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x520 JUMPI INVALID JUMPDEST MUL OR SWAP1 SSTORE POP PUSH2 0x52D PUSH2 0x57E JUMP JUMPDEST PUSH2 0x562 JUMP JUMPDEST PUSH1 0x6 SLOAD TIMESTAMP GT ISZERO PUSH2 0x561 JUMPI PUSH1 0x1 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x55B JUMPI INVALID JUMPDEST MUL OR SWAP1 SSTORE POP JUMPDEST JUMPDEST TIMESTAMP PUSH1 0x7 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 DUP1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5A7 JUMPI INVALID JUMPDEST EQ PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE 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 0x619 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH32 0xCC2A9192E91E4DD58845FD890B297DE7BFDA33E9F07F14BB2E4FE2237C86723D PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND 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 LOG1 POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6B8 JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6D3 JUMPI INVALID JUMPDEST EQ PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x8 DUP1 SLOAD SWAP1 POP GT DUP1 ISZERO PUSH2 0x6F2 JUMPI POP PUSH1 0x0 DUP4 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x71D JUMPI POP PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x708 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD EQ ISZERO JUMPDEST PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x735 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x77A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD 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 0x7F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x80C JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x827 JUMPI INVALID JUMPDEST EQ PUSH2 0x831 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLVALUE DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP CALLVALUE PUSH1 0x5 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x304E48BB03EAE5E9BF3575D270648664895983E116A51773A65E9F3341B3B40E CALLER CALLVALUE PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x967 PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x8 DUP1 SLOAD SWAP1 POP SUB SWAP2 POP POP SWAP1 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 PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA02 JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA1D JUMPI INVALID JUMPDEST EQ DUP1 PUSH2 0xA4D JUMPI POP PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xA30 JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA4B JUMPI INVALID JUMPDEST EQ JUMPDEST DUP1 ISZERO PUSH2 0xA5F JUMPI POP TIMESTAMP PUSH3 0xDD7C00 PUSH1 0x7 SLOAD ADD LT JUMPDEST PUSH2 0xA68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT 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 0xAC2 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xAF0 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xAF0 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xAEF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xAD4 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xAFD SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xB23 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xB1F JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xB07 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 SMOD SWAP2 0xB2 0x28 PUSH2 0x4B33 0x4F DUP13 0xD7 CALLDATASIZE SLOAD SWAP7 EXTCODEHASH 0xE4 SWAP12 0x4D PUSH16 0x40B21E2291C8207FC5D5BCEE8A64736F PUSH13 0x63430006060033000000000000 ",
"sourceMap": "186:3359:0:-:0;;;491:18;;;;;;;;;;;;;;;;;;;;;760:17;739:38;;;;;;;;;;;;;;;;;;;;;;;;;;186:3359;5:9:-1;2:2;;;27:1;24;17:12;2:2;186:3359:0;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100c25760003560e01c8063c19d93fb1161007f578063d2f0be9911610059578063d2f0be991461032d578063d7bb99ba14610380578063d939c9601461039e578063fe389e09146103f5576100c2565b8063c19d93fb146102b2578063c2052403146102eb578063c5c4744c14610302576100c2565b806302d05d3f146100c7578063105ea5401461011e57806328b3aa4c1461014957806337f944cc146102455780634c4cea5a1461027057806386f325861461029b575b600080fd5b3480156100d357600080fd5b506100dc61040c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012a57600080fd5b50610133610431565b6040518082815260200191505060405180910390f35b34801561015557600080fd5b506102436004803603608081101561016c57600080fd5b81019080803590602001909291908035906020019064010000000081111561019357600080fd5b8201836020820111156101a557600080fd5b803590602001918460018302840111640100000000831117156101c757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610437565b005b34801561025157600080fd5b5061025a6104e9565b6040518082815260200191505060405180910390f35b34801561027c57600080fd5b506102856104ef565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06104f5565b005b3480156102be57600080fd5b506102c761056b565b604051808260028111156102d757fe5b60ff16815260200191505060405180910390f35b3480156102f757600080fd5b5061030061057e565b005b34801561030e57600080fd5b506103176106a2565b6040518082815260200191505060405180910390f35b34801561033957600080fd5b506103666004803603602081101561035057600080fd5b81019080803590602001909291905050506106a8565b604051808215151515815260200191505060405180910390f35b6103886107fd565b6040518082815260200191505060405180910390f35b3480156103aa57600080fd5b506103b3610976565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040157600080fd5b5061040a61099c565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600390805190602001906104ce929190610a81565b5080600281905550610e108402420160068190555050505050565b60065481565b60075481565b6002546005541115610532576002600460016101000a81548160ff0219169083600281111561052057fe5b021790555061052d61057e565b610562565b600654421115610561576001600460016101000a81548160ff0219169083600281111561055b57fe5b02179055505b5b42600781905550565b600460019054906101000a900460ff1681565b600280600281111561058c57fe5b600460019054906101000a900460ff1660028111156105a757fe5b146105b157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610619573d6000803e3d6000fd5b507fcc2a9192e91e4dd58845fd890b297de7bfda33e9f07f14bb2e4fe2237c86723d600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60055481565b600060018060028111156106b857fe5b600460019054906101000a900460ff1660028111156106d357fe5b146106dd57600080fd5b826008805490501180156106f2575060008310155b801561071d575060006008848154811061070857fe5b90600052602060002090600202016000015414155b61072657600080fd5b60006008848154811061073557fe5b906000526020600020906002020160000154905060006008858154811061075857fe5b9060005260206000209060020201600001819055506008848154811061077a57fe5b906000526020600020906002020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156107f1573d6000803e3d6000fd5b50600192505050919050565b60008080600281111561080c57fe5b600460019054906101000a900460ff16600281111561082757fe5b1461083157600080fd5b600860405180604001604052803481526020013373ffffffffffffffffffffffffffffffffffffffff1681525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050346005600082825401925050819055507f304e48bb03eae5e9bf3575d270648664895983e116a51773a65e9f3341b3b40e3334600554604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a16109676104f5565b60016008805490500391505090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109f557600080fd5b60016002811115610a0257fe5b600460019054906101000a900460ff166002811115610a1d57fe5b1480610a4d5750600280811115610a3057fe5b600460019054906101000a900460ff166002811115610a4b57fe5b145b8015610a5f57504262dd7c0060075401105b610a6857600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610ac257805160ff1916838001178555610af0565b82800160010185558215610af0579182015b82811115610aef578251825591602001919060010190610ad4565b5b509050610afd9190610b01565b5090565b610b2391905b80821115610b1f576000816000905550600101610b07565b5090565b9056fea2646970667358221220250791b228614b334f8cd73654963fe49b4d6f40b21e2291c8207fc5d5bcee8a64736f6c63430006060033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC2 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC19D93FB GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xD2F0BE99 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xD2F0BE99 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0xD7BB99BA EQ PUSH2 0x380 JUMPI DUP1 PUSH4 0xD939C960 EQ PUSH2 0x39E JUMPI DUP1 PUSH4 0xFE389E09 EQ PUSH2 0x3F5 JUMPI PUSH2 0xC2 JUMP JUMPDEST DUP1 PUSH4 0xC19D93FB EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0xC2052403 EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xC5C4744C EQ PUSH2 0x302 JUMPI PUSH2 0xC2 JUMP JUMPDEST DUP1 PUSH4 0x2D05D3F EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x105EA540 EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x28B3AA4C EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0x37F944CC EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x4C4CEA5A EQ PUSH2 0x270 JUMPI DUP1 PUSH4 0x86F32586 EQ PUSH2 0x29B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDC PUSH2 0x40C 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 0x12A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x133 PUSH2 0x431 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 0x155 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x243 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0x16C 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 0x193 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x1A5 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 0x1C7 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 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 0x437 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25A PUSH2 0x4E9 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 0x27C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x285 PUSH2 0x4EF 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 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2B0 PUSH2 0x4F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C7 PUSH2 0x56B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2D7 JUMPI INVALID JUMPDEST PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x300 PUSH2 0x57E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x317 PUSH2 0x6A2 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 0x339 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x366 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x350 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x6A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x388 PUSH2 0x7FD 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 0x3AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B3 PUSH2 0x976 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 0x401 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x40A PUSH2 0x99C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP 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 DUP3 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4CE SWAP3 SWAP2 SWAP1 PUSH2 0xA81 JUMP JUMPDEST POP DUP1 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH2 0xE10 DUP5 MUL TIMESTAMP ADD PUSH1 0x6 DUP2 SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x5 SLOAD GT ISZERO PUSH2 0x532 JUMPI PUSH1 0x2 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x520 JUMPI INVALID JUMPDEST MUL OR SWAP1 SSTORE POP PUSH2 0x52D PUSH2 0x57E JUMP JUMPDEST PUSH2 0x562 JUMP JUMPDEST PUSH1 0x6 SLOAD TIMESTAMP GT ISZERO PUSH2 0x561 JUMPI PUSH1 0x1 PUSH1 0x4 PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x55B JUMPI INVALID JUMPDEST MUL OR SWAP1 SSTORE POP JUMPDEST JUMPDEST TIMESTAMP PUSH1 0x7 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 DUP1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x58C JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5A7 JUMPI INVALID JUMPDEST EQ PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE 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 0x619 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH32 0xCC2A9192E91E4DD58845FD890B297DE7BFDA33E9F07F14BB2E4FE2237C86723D PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND 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 LOG1 POP JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6B8 JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x6D3 JUMPI INVALID JUMPDEST EQ PUSH2 0x6DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x8 DUP1 SLOAD SWAP1 POP GT DUP1 ISZERO PUSH2 0x6F2 JUMPI POP PUSH1 0x0 DUP4 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x71D JUMPI POP PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x708 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD EQ ISZERO JUMPDEST PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x735 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD SLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x8 DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x758 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x8 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x77A JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x1 ADD 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 0x7F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x80C JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x827 JUMPI INVALID JUMPDEST EQ PUSH2 0x831 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLVALUE DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP CALLVALUE PUSH1 0x5 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH32 0x304E48BB03EAE5E9BF3575D270648664895983E116A51773A65E9F3341B3B40E CALLER CALLVALUE PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x967 PUSH2 0x4F5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x8 DUP1 SLOAD SWAP1 POP SUB SWAP2 POP POP SWAP1 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 PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA02 JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA1D JUMPI INVALID JUMPDEST EQ DUP1 PUSH2 0xA4D JUMPI POP PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xA30 JUMPI INVALID JUMPDEST PUSH1 0x4 PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA4B JUMPI INVALID JUMPDEST EQ JUMPDEST DUP1 ISZERO PUSH2 0xA5F JUMPI POP TIMESTAMP PUSH3 0xDD7C00 PUSH1 0x7 SLOAD ADD LT JUMPDEST PUSH2 0xA68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT 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 0xAC2 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xAF0 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xAF0 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xAEF JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xAD4 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xAFD SWAP2 SWAP1 PUSH2 0xB01 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH2 0xB23 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xB1F JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xB07 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 SMOD SWAP2 0xB2 0x28 PUSH2 0x4B33 0x4F DUP13 0xD7 CALLDATASIZE SLOAD SWAP7 EXTCODEHASH 0xE4 SWAP12 0x4D PUSH16 0x40B21E2291C8207FC5D5BCEE8A64736F PUSH13 0x63430006060033000000000000 ",
"sourceMap": "186:3359:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;255:22:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;255:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;389:26;;5:9:-1;2:2;;;27:1;24;17:12;2:2;389:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1475:403;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1475:403:0;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;1475:403:0;;;;;;;;;;;;;;;;;;;27:11:-1;14;11:28;8:2;;;52:1;49;42:12;8:2;1475:403:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;1475:403: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;1475:403: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;;1475:403:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;836:19;;5:9:-1;2:2;;;27:1;24;17:12;2:2;836:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;861:22;;5:9:-1;2:2;;;27:1;24;17:12;2:2;861:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2388:418;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2388:418:0;;;:::i;:::-;;739:38;;5:9:-1;2:2;;;27:1;24;17:12;2:2;739:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2812:163;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2812:163:0;;;:::i;:::-;;807:23;;5:9:-1;2:2;;;27:1;24;17:12;2:2;807:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2981:378;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2981:378:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2981:378:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1884:498;;;:::i;:::-;;;;;;;;;;;;;;;;;;;283:36;;5:9:-1;2:2;;;27:1;24;17:12;2:2;283:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3365:178;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3365:178:0;;;:::i;:::-;;255:22;;;;;;;;;;;;;:::o;389:26::-;;;;:::o;1475:403::-;1680:10;1670:7;;:20;;;;;;;;;;;;;;;;;;1716:14;1700:13;;:30;;;;;;;;;;;;;;;;;;1754:12;1740:11;:26;;;;;;;;;;;;:::i;:::-;;1793:15;1776:14;:32;;;;1863:7;1835:25;:35;1828:3;:43;1818:7;:53;;;;1475:403;;;;:::o;836:19::-;;;;:::o;861:22::-;;;;:::o;2388:418::-;2474:14;;2460:11;;:28;2456:318;;;2512:16;2504:5;;:24;;;;;;;;;;;;;;;;;;;;;;;;2542:8;:6;:8::i;:::-;2456:318;;;2651:7;;2645:3;:13;2640:134;;;2684:19;2676:5;;:27;;;;;;;;;;;;;;;;;;;;;;;;2640:134;2456:318;2796:3;2783:10;:16;;;;2388:418::o;739:38::-;;;;;;;;;;;;;:::o;2812:163::-;2853:16;1107:6;1098:15;;;;;;;;:5;;;;;;;;;;;:15;;;;;;;;;1090:24;;12:1:-1;9;2:12;1090:24:0;2885:13:::1;;;;;;;;;;;:22;;:45;2908:21;2885:45;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;2885:45:0;2940:28;2954:13;;;;;;;;;;;2940:28;;;;;;;;;;;;;;;;;;;;;;2812:163:::0;:::o;807:23::-;;;;:::o;2981:378::-;3068:4;3024:19;1107:6;1098:15;;;;;;;;:5;;;;;;;;;;;:15;;;;;;;;;1090:24;;12:1:-1;9;2:12;1090:24:0;3119:2:::1;3096:13;:20;;;;:25;:36;;;;;3131:1;3125:2;:7;;3096:36;:69;;;;;3164:1;3136:13;3150:2;3136:17;;;;;;;;;;;;;;;;;;:24;;;:29;;3096:69;3088:79;;12:1:-1;9::::0;2:12:::1;3088:79:0;3178:22;3203:13;3217:2;3203:17;;;;;;;;;;;;;;;;;;:24;;;3178:49;;3264:1;3237:13;3251:2;3237:17;;;;;;;;;;;;;;;;;;:24;;:28;;;;3276:13;3290:2;3276:17;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:38;;:54;3315:14;3276:54;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;3276:54:0;3348:4;3341:11;;;2981:378:::0;;;;:::o;1884:498::-;1972:10;1941:17;1107:6;1098:15;;;;;;;;:5;;;;;;;;;;;:15;;;;;;;;;1090:24;;12:1:-1;9;2:12;1090:24:0;1998:13:::1;2030:104;;;;;;;;2069:9;2030:104;;;;2109:10;2030:104;;;;::::0;1998:175:::1;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1998:175:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2198:9;2183:11;;:24;;;;;;;;;;;2223:54;2242:10;2254:9;2265:11;;2223:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2288:33;:31;:33::i;:::-;2361:1;2338:13;:20;;;;:24;2331:31;;1884:498:::0;;:::o;283:36::-;;;;;;;;;;;;;:::o;3365:178::-;1191:7;;;;;;;;;;;1177:21;;:10;:21;;;1169:30;;12:1:-1;9;2:12;1169:30:0;1361:19:::1;1352:28;;;;;;;;:5;;;;;;;;;;;:28;;;;;;;;;:57;;;;1393:16;1384:25:::0;::::1;;;;;;;:5;;;;;;;;;;;:25;;;;;;;;;1352:57;1351:98;;;;;1446:3;1435:8;1422:10;;:21;:27;1351:98;1342:109;;12:1:-1;9::::0;2:12:::1;1342:109:0;3468:10:::2;3455:24;;;186:3359:::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "581600",
"executionCost": "42417",
"totalCost": "624017"
},
"external": {
"checkIfFundingCompleteOrExpired()": "infinite",
"completeAt()": "1094",
"contribute()": "infinite",
"creator()": "1054",
"crowdFund(uint256,string,address,uint256)": "infinite",
"fundRecipient()": "1119",
"getRefund(uint256)": "infinite",
"minimumToRaise()": "1028",
"payOut()": "infinite",
"raiseBy()": "1072",
"removeContract()": "33864",
"state()": "1146",
"totalRaised()": "1072"
}
},
"methodIdentifiers": {
"checkIfFundingCompleteOrExpired()": "86f32586",
"completeAt()": "4c4cea5a",
"contribute()": "d7bb99ba",
"creator()": "02d05d3f",
"crowdFund(uint256,string,address,uint256)": "28b3aa4c",
"fundRecipient()": "d939c960",
"getRefund(uint256)": "d2f0be99",
"minimumToRaise()": "105ea540",
"payOut()": "c2052403",
"raiseBy()": "37f944cc",
"removeContract()": "fe389e09",
"state()": "c19d93fb",
"totalRaised()": "c5c4744c"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "currentTotal",
"type": "uint256"
}
],
"name": "LogFundingReceived",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "winnerAddress",
"type": "address"
}
],
"name": "LogWinnerPaid",
"type": "event"
},
{
"inputs": [],
"name": "checkIfFundingCompleteOrExpired",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "completeAt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "contribute",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "creator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "timeInHoursForFundraising",
"type": "uint256"
},
{
"internalType": "string",
"name": "_campaignUrl",
"type": "string"
},
{
"internalType": "address payable",
"name": "_fundRecipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "_minimumToRaise",
"type": "uint256"
}
],
"name": "crowdFund",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "fundRecipient",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getRefund",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "minimumToRaise",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "payOut",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "raiseBy",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "removeContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "state",
"outputs": [
{
"internalType": "enum CrowdFunder.State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalRaised",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.6+commit.6c089d02"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "addr",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "currentTotal",
"type": "uint256"
}
],
"name": "LogFundingReceived",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "winnerAddress",
"type": "address"
}
],
"name": "LogWinnerPaid",
"type": "event"
},
{
"inputs": [],
"name": "checkIfFundingCompleteOrExpired",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "completeAt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "contribute",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "creator",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "timeInHoursForFundraising",
"type": "uint256"
},
{
"internalType": "string",
"name": "_campaignUrl",
"type": "string"
},
{
"internalType": "address payable",
"name": "_fundRecipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "_minimumToRaise",
"type": "uint256"
}
],
"name": "crowdFund",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "fundRecipient",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getRefund",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "minimumToRaise",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "payOut",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "raiseBy",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "removeContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "state",
"outputs": [
{
"internalType": "enum CrowdFunder.State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalRaised",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"author": "nemild",
"methods": {},
"title": "CrowdFunder"
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"3d12cd503dcedfcdd715ef61f786be0b/CrowdFunder.sol": "CrowdFunder"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"3d12cd503dcedfcdd715ef61f786be0b/CrowdFunder.sol": {
"keccak256": "0x216993a8afbeceac77ed7ad466976d4ef8a4cf8a60561624f271c52bfa64b884",
"urls": [
"bzz-raw://1d6c64ed4b42df13127990755f7f7f2fa5ee491e2a6eb759eeddb5d33da8e794",
"dweb:/ipfs/QmXhVQvmTxPx3pFm3pfD2XJg5CiCeVy3JdEBDz3bXsZuL8"
]
}
},
"version": 1
}
// *** EXAMPLE: A crowdfunding example (broadly similar to Kickstarter) ***
// ** START EXAMPLE **
// CrowdFunder.sol
pragma solidity ^0.6.6;
/// @title CrowdFunder
/// @author nemild
contract CrowdFunder {
// Variables set on create by creator
address public creator;
address payable public fundRecipient; // creator may be different than recipient, and must be payable
uint public minimumToRaise; // required to tip, else everyone gets refund
string campaignUrl;
byte version = "1";
// Data structures
enum State {
Fundraising,
ExpiredRefund,
Successful
}
struct Contribution {
uint amount;
address payable contributor;
}
// State variables
State public state = State.Fundraising; // initialize on create
uint public totalRaised;
uint public raiseBy;
uint public completeAt;
Contribution[] contributions;
event LogFundingReceived(address addr, uint amount, uint currentTotal);
event LogWinnerPaid(address winnerAddress);
modifier inState(State _state) {
require(state == _state);
_;
}
modifier isCreator() {
require(msg.sender == creator);
_;
}
// Wait 24 weeks after final contract state before allowing contract destruction
modifier atEndOfLifecycle() {
require(((state == State.ExpiredRefund || state == State.Successful) &&
completeAt + 24 weeks < now));
_;
}
function crowdFund(
uint timeInHoursForFundraising,
string memory _campaignUrl,
address payable _fundRecipient,
uint _minimumToRaise)
public
{
creator = msg.sender;
fundRecipient = _fundRecipient;
campaignUrl = _campaignUrl;
minimumToRaise = _minimumToRaise;
raiseBy = now + (timeInHoursForFundraising * 1 hours);
}
function contribute()
public
payable
inState(State.Fundraising)
returns(uint256 id)
{
contributions.push(
Contribution({
amount: msg.value,
contributor: msg.sender
}) // use array, so can iterate
);
totalRaised += msg.value;
emit LogFundingReceived(msg.sender, msg.value, totalRaised);
checkIfFundingCompleteOrExpired();
return contributions.length - 1; // return id
}
function checkIfFundingCompleteOrExpired()
public
{
if (totalRaised > minimumToRaise) {
state = State.Successful;
payOut();
// could incentivize sender who initiated state change here
} else if ( now > raiseBy ) {
state = State.ExpiredRefund; // backers can now collect refunds by calling getRefund(id)
}
completeAt = now;
}
function payOut()
public
inState(State.Successful)
{
fundRecipient.transfer(address(this).balance);
LogWinnerPaid(fundRecipient);
}
function getRefund(uint256 id)
inState(State.ExpiredRefund)
public
returns(bool)
{
require(contributions.length > id && id >= 0 && contributions[id].amount != 0 );
uint256 amountToRefund = contributions[id].amount;
contributions[id].amount = 0;
contributions[id].contributor.transfer(amountToRefund);
return true;
}
function removeContract()
public
isCreator()
atEndOfLifecycle()
{
selfdestruct(msg.sender);
// creator gets all money that hasn't be claimed
}
}
// ** END EXAMPLE **
{
"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": "60c060405234801561001057600080fd5b5073dd3782915140c8f3b190b5d67eac6dc5760c46e973a36085f69e2889c224210f603d836748e7dc00888173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050507f6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f460001b60018190555067016345785d8a000060028190555060805160601c60a05160601c6108f161012060003980610328528061058a52508060fb528061013852806103fc528061054e52506108f16000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806342619f66146100515780638dc654a21461006f57806394985ddd14610079578063b37217a4146100b1575b600080fd5b6100596100f3565b6040518082815260200191505060405180910390f35b6100776100f9565b005b6100af6004803603604081101561008f57600080fd5b810190808035906020019092919080359060200190929190505050610326565b005b6100dd600480360360208110156100c757600080fd5b81019080803590602001909291905050506103f5565b6040518082815260200191505060405180910390f35b60035481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156101d357600080fd5b505afa1580156101e7573d6000803e3d6000fd5b505050506040513d60208110156101fd57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561027757600080fd5b505af115801561028b573d6000803e3d6000fd5b505050506040513d60208110156102a157600080fd5b8101908080519060200190929190505050610324576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e61626c6520746f207472616e73666572000000000000000000000000000081525060200191505060405180910390fd5b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0081525060200191505060405180910390fd5b6103f1828261053f565b5050565b60006002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561049757600080fd5b505afa1580156104ab573d6000803e3d6000fd5b505050506040513d60208110156104c157600080fd5b81019080805190602001909291905050501015610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610891602b913960400191505060405180910390fd5b6105386001546002548461054a565b9050919050565b806003819055505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634000aea07f000000000000000000000000000000000000000000000000000000000000000085878660405160200180838152602001828152602001925050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561065957808201518184015260208101905061063e565b50505050905090810190601f1680156106865780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050506040513d60208110156106d157600080fd5b81019080805190602001909291905050505060006107038584306000808a815260200190815260200160002054610755565b905061072b6001600080888152602001908152602001600020546107cf90919063ffffffff16565b6000808781526020019081526020016000208190555061074b8582610857565b9150509392505050565b600084848484604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506040516020818303038152906040528051906020012060001c9050949350505050565b60008082840190508381101561084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000828260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090509291505056fe4e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e7472616374207769746820666175636574a2646970667358221220f4691515d0ef70ee0058a1cdd593f6b8113651db56b795961e47a22b727a698b64736f6c63430006060033",
"opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0xDD3782915140C8F3B190B5D67EAC6DC5760C46E9 PUSH20 0xA36085F69E2889C224210F603D836748E7DC0088 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE POP POP POP POP PUSH32 0x6C3699283BDA56AD74F6B855546325B68D482E983852A7A82979CC4807B641F4 PUSH1 0x0 SHL PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH8 0x16345785D8A0000 PUSH1 0x2 DUP2 SWAP1 SSTORE POP PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x8F1 PUSH2 0x120 PUSH1 0x0 CODECOPY DUP1 PUSH2 0x328 MSTORE DUP1 PUSH2 0x58A MSTORE POP DUP1 PUSH1 0xFB MSTORE DUP1 PUSH2 0x138 MSTORE DUP1 PUSH2 0x3FC MSTORE DUP1 PUSH2 0x54E MSTORE POP PUSH2 0x8F1 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 0x42619F66 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x94985DDD EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xB37217A4 EQ PUSH2 0xB1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xF3 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 0x77 PUSH2 0xF9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x8F 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 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x326 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x3F5 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 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x324 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3E7 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 0x4F6E6C7920565246436F6F7264696E61746F722063616E2066756C66696C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3F1 DUP3 DUP3 PUSH2 0x53F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP LT ISZERO PUSH2 0x529 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x891 PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x538 PUSH1 0x1 SLOAD PUSH1 0x2 SLOAD DUP5 PUSH2 0x54A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 PUSH32 0x0 DUP6 DUP8 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD 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 0x659 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x63E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x686 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 SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP POP PUSH1 0x0 PUSH2 0x703 DUP6 DUP5 ADDRESS PUSH1 0x0 DUP1 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH2 0x72B PUSH1 0x1 PUSH1 0x0 DUP1 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x7CF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x74B DUP6 DUP3 PUSH2 0x857 JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x84D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID 0x4E PUSH16 0x7420656E6F756768204C494E4B202D20 PUSH7 0x696C6C20636F6E PUSH21 0x72616374207769746820666175636574A264697066 PUSH20 0x58221220F4691515D0EF70EE0058A1CDD593F6B8 GT CALLDATASIZE MLOAD 0xDB JUMP 0xB7 SWAP6 SWAP7 0x1E SELFBALANCE LOG2 0x2B PUSH19 0x7A698B64736F6C634300060600330000000000 ",
"sourceMap": "231:2516:0:-:0;;;734:341;5:9:-1;2:2;;;27:1;24;17:12;2:2;734:341:0;786:42;861;9015:15:1;8998:32;;;;;;;;;;;;9062:5;9036:32;;;;;;;;;;;;8933:140;;960:66:0::1;950:76;;:7;:76;;;;1042:14;1036:3;:20;;;;231:2516:::0;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {
"171": [
{
"length": 32,
"start": 251
},
{
"length": 32,
"start": 312
},
{
"length": 32,
"start": 1020
},
{
"length": 32,
"start": 1358
}
],
"173": [
{
"length": 32,
"start": 808
},
{
"length": 32,
"start": 1418
}
]
},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c806342619f66146100515780638dc654a21461006f57806394985ddd14610079578063b37217a4146100b1575b600080fd5b6100596100f3565b6040518082815260200191505060405180910390f35b6100776100f9565b005b6100af6004803603604081101561008f57600080fd5b810190808035906020019092919080359060200190929190505050610326565b005b6100dd600480360360208110156100c757600080fd5b81019080803590602001909291905050506103f5565b6040518082815260200191505060405180910390f35b60035481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb337f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156101d357600080fd5b505afa1580156101e7573d6000803e3d6000fd5b505050506040513d60208110156101fd57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561027757600080fd5b505af115801561028b573d6000803e3d6000fd5b505050506040513d60208110156102a157600080fd5b8101908080519060200190929190505050610324576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e61626c6520746f207472616e73666572000000000000000000000000000081525060200191505060405180910390fd5b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0081525060200191505060405180910390fd5b6103f1828261053f565b5050565b60006002547f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561049757600080fd5b505afa1580156104ab573d6000803e3d6000fd5b505050506040513d60208110156104c157600080fd5b81019080805190602001909291905050501015610529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610891602b913960400191505060405180910390fd5b6105386001546002548461054a565b9050919050565b806003819055505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634000aea07f000000000000000000000000000000000000000000000000000000000000000085878660405160200180838152602001828152602001925050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561065957808201518184015260208101905061063e565b50505050905090810190601f1680156106865780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050506040513d60208110156106d157600080fd5b81019080805190602001909291905050505060006107038584306000808a815260200190815260200160002054610755565b905061072b6001600080888152602001908152602001600020546107cf90919063ffffffff16565b6000808781526020019081526020016000208190555061074b8582610857565b9150509392505050565b600084848484604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506040516020818303038152906040528051906020012060001c9050949350505050565b60008082840190508381101561084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000828260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090509291505056fe4e6f7420656e6f756768204c494e4b202d2066696c6c20636f6e7472616374207769746820666175636574a2646970667358221220f4691515d0ef70ee0058a1cdd593f6b8113651db56b795961e47a22b727a698b64736f6c63430006060033",
"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 0x42619F66 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x94985DDD EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xB37217A4 EQ PUSH2 0xB1 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xF3 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 0x77 PUSH2 0xF9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAF PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x8F 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 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x326 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDD PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x3F5 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 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x28B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x324 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3E7 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 0x4F6E6C7920565246436F6F7264696E61746F722063616E2066756C66696C6C00 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3F1 DUP3 DUP3 PUSH2 0x53F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x497 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP LT ISZERO PUSH2 0x529 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x2B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x891 PUSH1 0x2B SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x538 PUSH1 0x1 SLOAD PUSH1 0x2 SLOAD DUP5 PUSH2 0x54A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 PUSH32 0x0 DUP6 DUP8 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD 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 0x659 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x63E JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x686 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 SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP POP PUSH1 0x0 PUSH2 0x703 DUP6 DUP5 ADDRESS PUSH1 0x0 DUP1 DUP11 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x755 JUMP JUMPDEST SWAP1 POP PUSH2 0x72B PUSH1 0x1 PUSH1 0x0 DUP1 DUP9 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x7CF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x74B DUP6 DUP3 PUSH2 0x857 JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 ADD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x84D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID 0x4E PUSH16 0x7420656E6F756768204C494E4B202D20 PUSH7 0x696C6C20636F6E PUSH21 0x72616374207769746820666175636574A264697066 PUSH20 0x58221220F4691515D0EF70EE0058A1CDD593F6B8 GT CALLDATASIZE MLOAD 0xDB JUMP 0xB7 SWAP6 SWAP7 0x1E SELFBALANCE LOG2 0x2B PUSH19 0x7A698B64736F6C634300060600330000000000 ",
"sourceMap": "231:2516:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;231:2516:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;352:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2608:137;;;:::i;:::-;;9268:207:1;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;9268:207:1;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1959:261:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1959:261:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;352:27;;;;:::o;2608:137::-;2659:4;:13;;;2673:10;2685:4;:14;;;2708:4;2685:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2685:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2685:29:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2685:29:0;;;;;;;;;;;;;;;;2659:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2659:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2659:56:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2659:56:0;;;;;;;;;;;;;;;;2651:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2608:137::o;9268:207:1:-;9374:14;9360:28;;:10;:28;;;9352:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9430:40;9448:9;9459:10;9430:17;:40::i;:::-;9268:207;;:::o;1959:261:0:-;2026:17;2096:3;;2063:4;:14;;;2086:4;2063:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2063:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2063:29:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;2063:29:0;;;;;;;;;;;;;;;;:36;;2055:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2164:49;2182:7;;2191:3;;2196:16;2164:17;:49::i;:::-;2157:56;;1959:261;;;:::o;2291:126::-;2400:10;2385:12;:25;;;;2291:126;;:::o;7428:1013:1:-;7524:17;7551:4;:20;;;7572:14;7588:4;7605:8;7615:5;7594:27;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7594:27:1;;;7551:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7551:71:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7551:71:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7551:71:1;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7551:71:1;;;;;;;;;;;;;;;;;7853:15;7872:66;7889:8;7899:5;7914:4;7921:6;:16;7928:8;7921:16;;;;;;;;;;;;7872;:66::i;:::-;7853:85;;8368:23;8389:1;8368:6;:16;8375:8;8368:16;;;;;;;;;;;;:20;;:23;;;;:::i;:::-;8349:6;:16;8356:8;8349:16;;;;;;;;;;;:42;;;;8404:32;8418:8;8428:7;8404:13;:32::i;:::-;8397:39;;;7428:1013;;;;;:::o;797:231:2:-;927:7;981:8;991:9;1002:10;1014:6;970:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;970:51:2;;;960:62;;;;;;952:71;;944:79;;797:231;;;;;;:::o;863:162:4:-;921:7;936:9;952:1;948;:5;936:17;;972:1;967;:6;;959:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1019:1;1012:8;;;863:162;;;;:::o;1408:171:2:-;1500:7;1549:8;1559:13;1532:41;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1532:41:2;;;1522:52;;;;;;1515:59;;1408:171;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "457800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"getRandomNumber(uint256)": "infinite",
"randomResult()": "983",
"rawFulfillRandomness(bytes32,uint256)": "infinite",
"withdrawLink()": "infinite"
},
"internal": {
"fulfillRandomness(bytes32,uint256)": "20027"
}
},
"methodIdentifiers": {
"getRandomNumber(uint256)": "b37217a4",
"randomResult()": "42619f66",
"rawFulfillRandomness(bytes32,uint256)": "94985ddd",
"withdrawLink()": "8dc654a2"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "userProvidedSeed",
"type": "uint256"
}
],
"name": "getRandomNumber",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "randomResult",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "randomness",
"type": "uint256"
}
],
"name": "rawFulfillRandomness",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.6+commit.6c089d02"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "userProvidedSeed",
"type": "uint256"
}
],
"name": "getRandomNumber",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "randomResult",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "randomness",
"type": "uint256"
}
],
"name": "rawFulfillRandomness",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {
"constructor": "Constructor inherits VRFConsumerBase * Network: Kovan Chainlink VRF Coordinator address: 0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9 LINK token address: 0xa36085F69e2889c224210F603D836748e7dC0088 Key Hash: 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4",
"getRandomNumber(uint256)": {
"notice": "Requests randomness from a user-provided seed************************************************************************************ STOP! * THIS FUNCTION WILL FAIL IF THIS CONTRACT DOES NOT OWN LINK * ---------------------------------------------------------- * Learn how to obtain testnet LINK and fund this contract: * ------- https://docs.chain.link/docs/acquire-link -------- * ---- https://docs.chain.link/docs/fund-your-contract ----- * ************************************************************************************"
},
"withdrawLink()": {
"notice": "Withdraw LINK from this contract * DO NOT USE THIS IN PRODUCTION AS IT CAN BE CALLED BY ANY ADDRESS. THIS IS PURELY FOR EXAMPLE PURPOSES."
}
}
}
},
"settings": {
"compilationTarget": {
"536123b71478ad4442cfc4278e8de577/RandomNumberConsumer.sol": "RandomNumberConsumer"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"536123b71478ad4442cfc4278e8de577/RandomNumberConsumer.sol": {
"keccak256": "0x4a196a5f22c71159d70d66cecb58c8bbb4a3a44dc3f37bb97db4dd6047ea9893",
"urls": [
"bzz-raw://4c30e623aa3d67001dd2f2263d97fc048cc23913705b4074aa38da79795b3125",
"dweb:/ipfs/QmYeWwJq7LvModUWrLhm4ES42P36yaYh18ctEPqBnGhV7h"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/VRFConsumerBase.sol": {
"keccak256": "0xbb84a6411e071d5b04b36d7dda59eaf1cb5a28b3b289757a5ac849ddf9befac3",
"urls": [
"bzz-raw://6bc702d1ec269920a3f0cf371155b6c4800d36233949873144e95ce3c4427eb3",
"dweb:/ipfs/QmUrYPpfh7TAcUBx3B5ugW2jCAeWThMssY5oyRgQXQRkbE"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/VRFRequestIDBase.sol": {
"keccak256": "0x0c3bd40c63dac8398a979b1228c8ecb1c269c157dd16f2dce2086d2270b65b22",
"urls": [
"bzz-raw://ed9db87be9dfb0f763a556d8d80356b08282b8ea48484838cdf470a5c3cd15d5",
"dweb:/ipfs/QmPLhwDAS3TPDiEQmTyqXnWBqwEMBSbXtjEiQDSGejoiPt"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xe245a7be950c94d87bb775ae9ee9fbd693fbe2987778e6ce0b04605ea44b7b68",
"urls": [
"bzz-raw://bd2c3165d949fc66fe407b96eb3dc2092c7e800f4c073b411bf7b96de3e156c9",
"dweb:/ipfs/QmcfJhR1Np4GsLWnww2Duqks2wEzYk8VDTvCAYy7MisG1r"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/vendor/SafeMathChainlink.sol": {
"keccak256": "0x105f5e9491f3d0bbdd4f1c7627eb839d69b944bfd803028a01cc083597692c1f",
"urls": [
"bzz-raw://ec45a2748a024a947a921183d4102d5e206808588501d85ddc4f5668a009bc73",
"dweb:/ipfs/QmRNAMpq7LdWFnJ7wWKGbUuAcURaGSS42PMxtQ4vjrHmp9"
]
}
},
"version": 1
}
// This example code is designed to quickly deploy an example contract using Remix.
pragma solidity 0.6.6;
import "https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/VRFConsumerBase.sol";
contract RandomNumberConsumer is VRFConsumerBase {
bytes32 internal keyHash;
uint256 internal fee;
uint256 public randomResult;
/**
* Constructor inherits VRFConsumerBase
*
* Network: Kovan
* Chainlink VRF Coordinator address: 0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9
* LINK token address: 0xa36085F69e2889c224210F603D836748e7dC0088
* Key Hash: 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4
*/
constructor()
VRFConsumerBase(
0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9, // VRF Coordinator
0xa36085F69e2889c224210F603D836748e7dC0088 // LINK Token
) public
{
keyHash = 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4;
fee = 0.1 * 10 ** 18; // 0.1 LINK
}
/**
* Requests randomness from a user-provided seed
************************************************************************************
* STOP! *
* THIS FUNCTION WILL FAIL IF THIS CONTRACT DOES NOT OWN LINK *
* ---------------------------------------------------------- *
* Learn how to obtain testnet LINK and fund this contract: *
* ------- https://docs.chain.link/docs/acquire-link -------- *
* ---- https://docs.chain.link/docs/fund-your-contract ----- *
* *
************************************************************************************/
function getRandomNumber(uint256 userProvidedSeed) public returns (bytes32 requestId) {
require(LINK.balanceOf(address(this)) >= fee, "Not enough LINK - fill contract with faucet");
return requestRandomness(keyHash, fee, userProvidedSeed);
}
/**
* Callback function used by VRF Coordinator
*/
function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
randomResult = randomness;
}
/**
* Withdraw LINK from this contract
*
* DO NOT USE THIS IN PRODUCTION AS IT CAN BE CALLED BY ANY ADDRESS.
* THIS IS PURELY FOR EXAMPLE PURPOSES.
*/
function withdrawLink() external {
require(LINK.transfer(msg.sender, LINK.balanceOf(address(this))), "Unable to transfer");
}
}
{
"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": "6080604081905260016004556017805461ff00191690556000601881905542601955601a819055601b5562002ad83881900390819083398101806040526200004b9190810190620004a2565b60068054600160a060020a0319908116331790915560078054909116739326bfa02add2366b30bacb125260af641031331179055620000938264010000000062000234810204565b6008819055620000c5620000af64010000000062000256810204565b8590640100000000620012226200035a82021704565b3410156200010a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010190620006dd565b60405180910390fd5b6009805433600160a060020a031991821617909155600a8054909116600160a060020a03891617905542600b55600c869055600d859055600e84905560006016556017805460ff1916600117905582516200016d90600f90602086019062000370565b50601480547305c8fadf1798437c143683e665800d58a42b6e19600160a060020a031991821681179092556015805490911690911790557f61313765386662663463626634366565623739653034623365623836346134656012819055601355600954600a54600c54600d54600e546040517f0203790cae2ea31823a6382172bd46011fcfbab29b22bb78b4b2f266febf6072956200021f95600160a060020a03918216959116939092909162000687565b60405180910390a150505050505050620007a1565b60028054600160a060020a031916600160a060020a0392909216919091179055565b600080600080600080600760009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160a060405180830381600087803b158015620002cc57600080fd5b505af1158015620002e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000307919081019062000565565b9450945094509450945060008211151562000350576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010190620006f5565b5091949350505050565b600081838115156200036857fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003b357805160ff1916838001178555620003e3565b82800160010185558215620003e3579182015b82811115620003e3578251825591602001919060010190620003c6565b50620003f1929150620003f5565b5090565b6200041291905b80821115620003f15760008155600101620003fc565b90565b600062000423825162000756565b9392505050565b600062000423825162000412565b6000601f820183136200044a57600080fd5b8151620004616200045b826200072e565b62000707565b915080825260208301602083018583830111156200047e57600080fd5b6200048b8382846200076e565b50505092915050565b600062000423825162000762565b600080600080600080600060e0888a031215620004be57600080fd5b6000620004cc8a8a62000415565b9750506020620004df8a828b016200042a565b9650506040620004f28a828b016200042a565b9550506060620005058a828b016200042a565b94505060808801516001604060020a038111156200052257600080fd5b620005308a828b0162000438565b93505060a0620005438a828b0162000415565b92505060c0620005568a828b016200042a565b91505092959891949750929550565b600080600080600060a086880312156200057e57600080fd5b60006200058c888862000494565b95505060206200059f888289016200042a565b9450506040620005b2888289016200042a565b9350506060620005c5888289016200042a565b9250506080620005d88882890162000494565b9150509295509295909350565b620005f08162000756565b82525050565b602181527f4e6f7420656e6f7567682066756e64732073656e7420746f20636f6e7472616360208201527f7400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b620005f08162000412565b60a08101620006978288620005e5565b620006a66020830187620005e5565b620006b560408301866200067c565b620006c460608301856200067c565b620006d360808301846200067c565b9695505050505050565b60208082528101620006ef81620005f6565b92915050565b60208082528101620006ef816200064c565b6040518181016001604060020a03811182821017156200072657600080fd5b604052919050565b60006001604060020a038211156200074557600080fd5b506020601f91909101601f19160190565b600160a060020a031690565b6001605060020a031690565b60005b838110156200078b57818101518382015260200162000771565b838111156200079b576000848401525b50505050565b61232780620007b16000396000f30060806040526004361061013a5763ffffffff60e060020a6000350416630c15c365811461013c578063165d35e114610167578063185e5b4014610189578063243d9a5d146101a95780633fad1834146101be5780634162cc88146101d357806356a6d508146101f35780635b69a7d8146102085780635fdc6281146102285780636f9fb98a1461023d578063715018a6146102525780637a50413d146102675780638da5cb5b1461027c5780638e15f47314610291578063a241c089146102a6578063ad2e8c9b146102bb578063b0b30fee146102d0578063b1b91f7a146102f2578063b807873214610312578063bbe4fd5014610327578063c032846b1461033c578063c974402914610351578063ce2ce3fc14610366578063dbc837c514610388578063dcbacd111461039d578063f2fde38b146103b2575b005b34801561014857600080fd5b506101516103d2565b60405161015e9190612199565b60405180910390f35b34801561017357600080fd5b5061017c6103d8565b60405161015e91906120b8565b34801561019557600080fd5b506101516101a4366004611d44565b6103e7565b3480156101b557600080fd5b506101516103fb565b3480156101ca57600080fd5b50610151610401565b3480156101df57600080fd5b506101516101ee366004611d44565b610407565b3480156101ff57600080fd5b50610151610414565b34801561021457600080fd5b5061017c610223366004611d44565b61041a565b34801561023457600080fd5b50610151610437565b34801561024957600080fd5b5061015161043c565b34801561025e57600080fd5b5061013a610441565b34801561027357600080fd5b506101516104ce565b34801561028857600080fd5b5061017c6104d4565b34801561029d57600080fd5b506101516104e3565b3480156102b257600080fd5b506101516105b0565b3480156102c757600080fd5b50610151610aea565b3480156102dc57600080fd5b506102e5610af0565b60405161015e919061218b565b3480156102fe57600080fd5b5061013a61030d366004611d0a565b610afe565b34801561031e57600080fd5b50610151610d06565b34801561033357600080fd5b50610151610d0b565b34801561034857600080fd5b506102e5610d0f565b34801561035d57600080fd5b50610151610d18565b34801561037257600080fd5b5061037b610d1e565b60405161015e91906121a7565b34801561039457600080fd5b5061017c610db4565b3480156103a957600080fd5b50610151610dc3565b3480156103be57600080fd5b5061013a6103cd366004611cce565b610dc9565b60185490565b60006103e2610e02565b905090565b601081600281106103f457fe5b0154905081565b600e5490565b601a5490565b601281600281106103f457fe5b60195490565b6014816002811061042757fe5b0154600160a060020a0316905081565b603c81565b303190565b600954600160a060020a031633146104775760405160e560020a62461bcd02815260040161046e90612208565b60405180910390fd5b600654604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26006805473ffffffffffffffffffffffffffffffffffffffff19169055565b60165490565b600654600160a060020a031681565b600080600080600080600760009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15801561053f57600080fd5b505af1158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105779190810190611d80565b945094509450945094506000821115156105a65760405160e560020a62461bcd02815260040161046e90612218565b5091949350505050565b60175460009060609060ff1615156001146105e05760405160e560020a62461bcd02815260040161046e906121e8565b6105e8610e11565b60175460ff1615610ae6576000601b5560408051606081018252603a81527f687474703a2f2f6170692e776f726c64776561746865726f6e6c696e652e636f60208083019182527f6d2f7072656d69756d2f76312f776561746865722e617368783f0000000000008385015283518085018552601e81527f36323963366464303962626334333634623761333338313032303039313100008183015293518351939493600f9391909201918291908083835b602083106106b95780518252601f19909201916020918201910161069a565b51815160209384036101000a60001901801990921691161790527f6b65793d00000000000000000000000000000000000000000000000000000000919093019081528551600490910192860191508083835b6020831061072a5780518252601f19909201916020918201910161070b565b6001836020036101000a038019825116818451168082178552505050505050905001807f26713d0000000000000000000000000000000000000000000000000000000000815250600301828054600181600116156101000203166002900480156107cb5780601f106107a95761010080835404028352918201916107cb565b820191906000526020600020905b8154815290600101906020018083116107b7575b50507f26666f726d61743d6a736f6e266e756d5f6f665f646179733d31000000000000815260408051600519818403018152601a9092019052945061088e9350601492506000915061081a9050565b0154600160a060020a031660126000015483606060405190810160405280602181526020017f646174612e63757272656e745f636f6e646974696f6e2e302e7072656369704d81526020017f4d0000000000000000000000000000000000000000000000000000000000000081525061109e565b50606060405190810160405280602781526020017f68747470733a2f2f6170692e776561746865726269742e696f2f76322e302f6381526020017f757272656e743f00000000000000000000000000000000000000000000000000815250600f6040805190810160405280602081526020017f35653035616566303734313034303166616334393162303665623965386663388152506040516020018084805190602001908083835b602083106109565780518252601f199092019160209182019101610937565b6001836020036101000a038019825116818451168082178552505050505050905001807f636974793d000000000000000000000000000000000000000000000000000000815250600501838054600181600116156101000203166002900480156109f75780601f106109d55761010080835404028352918201916109f7565b820191906000526020600020905b8154815290600101906020018083116109e3575b5050807f266b65793d00000000000000000000000000000000000000000000000000000081525060050182805190602001908083835b60208310610a4c5780518252601f199092019160209182019101610a2d565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040529050610ae460146001600281101515610a9757fe5b0154600160a060020a0316601260010154836040805190810160405280600d81526020017f646174612e302e7072656369700000000000000000000000000000000000000081525061109e565b505b5090565b600c5490565b601754610100900460ff1690565b6000828152600560205260409020548290600160a060020a03163314610b395760405160e560020a62461bcd02815260040161046e90612228565b600081815260056020526040808220805473ffffffffffffffffffffffffffffffffffffffff191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a260175460ff161515600114610bb35760405160e560020a62461bcd02815260040161046e906121e8565b610bd6610bc8603c600c63ffffffff61122216565b603c9063ffffffff61123916565b601954610bea90429063ffffffff61123916565b11610c0a5760405160e560020a62461bcd02815260040161046e906121d8565b816010601b54600281101515610c1c57fe5b0155601b80546001908101918290551015610cca57601154601054610c5391600291610c479161124b565b9063ffffffff61122216565b601881905542601955601a805460010190551515610c7957601680546001019055610cb8565b60006016556018546040517f2e5a5a6cf30e14f6500f404203cc44691f83c62354f375539ea7d45bcc49230591610caf91612199565b60405180910390a15b601654600311610cca57610cca611258565b7f9acb88f10af47daa34522605143d1719bad9aa6562e4c443c8abb9d594ea73f482604051610cf99190612199565b60405180910390a1505050565b600381565b4290565b60175460ff1690565b600d5490565b600f8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610daa5780601f10610d7f57610100808354040283529160200191610daa565b820191906000526020600020905b815481529060010190602001808311610d8d57829003601f168201915b5050505050905090565b600954600160a060020a031681565b600b5490565b600954600160a060020a03163314610df65760405160e560020a62461bcd02815260040161046e90612208565b610dff81611455565b50565b600254600160a060020a031690565b600042600c54600b54011015610dff57600c54600290610e3890603c63ffffffff61122216565b03601a54101515610e8357600954604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610e7d573d6000803e3d6000fd5b50610f11565b600a54600160a060020a03166108fc610eac610e9d6104e3565b600d549063ffffffff61122216565b6040518115909202916000818181858888f19350505050158015610ed4573d6000803e3d6000fd5b50600954604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610f0f573d6000803e3d6000fd5b505b610f19610e02565b6009546040517f70a08231000000000000000000000000000000000000000000000000000000008152919250600160a060020a038084169263a9059cbb929091169083906370a0823190610f719030906004016120b8565b602060405180830381600087803b158015610f8b57600080fd5b505af1158015610f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fc39190810190611d62565b6040518363ffffffff1660e060020a028152600401610fe39291906120c6565b602060405180830381600087803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110359190810190611cec565b15156110565760405160e560020a62461bcd02815260040161046e906121b8565b6017805460ff191690556040517f71d9f146944417dd66115a997376d9878c3618f396c331a6c3aa82ce653eae1490611093904290303190612238565b60405180910390a150565b60006110a8611c45565b60175460ff1615156001146110d25760405160e560020a62461bcd02815260040161046e906121e8565b6110fd85307fb1b91f7a000000000000000000000000000000000000000000000000000000006114d3565b60408051808201909152600381527f676574000000000000000000000000000000000000000000000000000000000060208201529091506111469082908663ffffffff6114fe16565b60408051808201909152600481527f7061746800000000000000000000000000000000000000000000000000000000602082015261118c9082908563ffffffff6114fe16565b60408051808201909152600581527f74696d657300000000000000000000000000000000000000000000000000000060208201526111d3908290606463ffffffff61152d16565b6111e08682600854611557565b91507f9b79db1508864f538c7703d2267a0c858007ee5877c83d83aec1b431e5add541826040516112119190612199565b60405180910390a150949350505050565b6000818381151561122f57fe5b0490505b92915050565b60008282111561124557fe5b50900390565b8181018281101561123357fe5b60175460009060ff1615156001146112855760405160e560020a62461bcd02815260040161046e906121e8565b600a54604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156112bf573d6000803e3d6000fd5b506112c8610e02565b6009546040517f70a08231000000000000000000000000000000000000000000000000000000008152919250600160a060020a038084169263a9059cbb929091169083906370a08231906113209030906004016120b8565b602060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113729190810190611d62565b6040518363ffffffff1660e060020a0281526004016113929291906120c6565b602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113e49190810190611cec565b15156114055760405160e560020a62461bcd02815260040161046e906121f8565b600e546018546040517fd8874104029b491ba57b1b4875bd4ba8d4a98bf0261e1fdfac96db44022f95f89261143b924292612246565b60405180910390a1506017805461ffff1916610100179055565b600160a060020a038116151561146a57600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6114db611c45565b6114e3611c45565b6114f58186868663ffffffff61172616565b95945050505050565b6080830151611513908363ffffffff61178116565b6080830151611528908263ffffffff61178116565b505050565b6080830151611542908363ffffffff61178116565b6080830151611528908263ffffffff61179e16565b6000306004546040516020018083600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106115d35780518252601f1990920191602091820191016115b4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060045460608a015260008181526005909252838220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038c1617905592519295508594507fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99350919050a2600254600160a060020a0316634000aea0858461168187611800565b6040518463ffffffff1660e060020a0281526004016116a29392919061215e565b602060405180830381600087803b1580156116bc57600080fd5b505af11580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116f49190810190611cec565b15156117155760405160e560020a62461bcd02815260040161046e906121c8565b6004805460010190555b9392505050565b61172e611c45565b61173e85608001516101006118bd565b5050828452600160a060020a03821660208501527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981166040850152835b949350505050565b61178e82600383516118f7565b611528828263ffffffff6119fa16565b67ffffffffffffffff198112156117be576117b98282611a14565b6117fc565b67ffffffffffffffff8113156117d8576117b98282611a53565b600081126117ec576117b9826000836118f7565b6117fc82600183600019036118f7565b5050565b80516020820151604080840151606085810151608087015151935191957f40429946000000000000000000000000000000000000000000000000000000009561185a956000958695939492939092916001916024016120e1565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091529050919050565b6118c5611c7a565b60208206156118da5760208206602003820191505b506020828101829052604080518085526000815290920101905290565b60178111611919576119138360ff848116602002168317611a7a565b50611528565b60ff811161194d5761193a836018602060ff8616021763ffffffff611a7a16565b506119138382600163ffffffff611a9216565b61ffff81116119825761196f836019602060ff8616021763ffffffff611a7a16565b506119138382600263ffffffff611a9216565b63ffffffff81116119b9576119a683601a602060ff8616021763ffffffff611a7a16565b506119138382600463ffffffff611a9216565b67ffffffffffffffff8111611528576119e183601b602060ff8616021763ffffffff611a7a16565b506119f48382600863ffffffff611a9216565b50505050565b611a02611c7a565b61171f83846000015151848551611aab565b611a258260c363ffffffff611a7a16565b506117fc828260001903604051602001611a3f9190612199565b604051602081830303815290604052611b61565b611a648260c263ffffffff611a7a16565b506117fc8282604051602001611a3f9190612199565b611a82611c7a565b61171f8384600001515184611b6e565b611a9a611c7a565b611779848560000151518585611bb9565b611ab3611c7a565b600080600085518511151515611ac857600080fd5b87602001518588011115611af257611af288611aea8a602001518a8901611c17565b600202611c2e565b875180518860208301019450808988011115611b0e5788870182525b60208801935050505b60208510611b395781518352601f199094019360209283019290910190611b17565b505181516020949094036101000a600019018019909116931692909217909152509192915050565b61178e82600283516118f7565b611b76611c7a565b60208401518310611b9257611b92848560200151600202611c2e565b8351805160208583010184815381861415611bae576001820183525b509495945050505050565b611bc1611c7a565b600085602001518584011115611be057611be086868501600202611c2e565b6001836101000a0390508551838682010185831982511617815281518588011115611c0b5784870182525b50959695505050505050565b600081831115611c28575081611233565b50919050565b8151611c3a83836118bd565b506119f483826119fa565b6040805160c081018252600080825260208201819052918101829052606081019190915260808101611c75611c7a565b905290565b60408051808201909152606081526000602082015290565b600061171f8235612272565b600061171f825161227e565b600061171f8235612283565b600061171f8251612283565b600061171f82516122a8565b600060208284031215611ce057600080fd5b60006117798484611c92565b600060208284031215611cfe57600080fd5b60006117798484611c9e565b60008060408385031215611d1d57600080fd5b6000611d298585611caa565b9250506020611d3a85828601611caa565b9150509250929050565b600060208284031215611d5657600080fd5b60006117798484611caa565b600060208284031215611d7457600080fd5b60006117798484611cb6565b600080600080600060a08688031215611d9857600080fd5b6000611da48888611cc2565b9550506020611db588828901611cb6565b9450506040611dc688828901611cb6565b9350506060611dd788828901611cb6565b9250506080611de888828901611cc2565b9150509295509295909350565b611dfe81612272565b82525050565b611dfe8161227e565b611dfe81612283565b611dfe81612286565b6000611e2a8261226e565b808452611e3e8160208601602086016122b7565b611e47816122e3565b9093016020019392505050565b602881527f556e61626c6520746f207472616e736665722072656d61696e696e67204c494e60208201527f4b20746f6b656e73000000000000000000000000000000000000000000000000604082015260600190565b602381527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f726160208201527f636c650000000000000000000000000000000000000000000000000000000000604082015260600190565b602481527f43616e206f6e6c7920636865636b207261696e66616c6c206f6e63652070657260208201527f2064617900000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f436f6e74726163742068617320656e6465642c2063616e7420696e746572616360208201527f74207769746820697420616e796d6f7265000000000000000000000000000000604082015260600190565b601281527f556e61626c6520746f207472616e736665720000000000000000000000000000602082015260400190565b602381527f4f6e6c7920496e737572616e63652070726f76696465722063616e20646f207460208201527f6869730000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b602881527f536f75726365206d75737420626520746865206f7261636c65206f662074686560208201527f2072657175657374000000000000000000000000000000000000000000000000604082015260600190565b602081016112338284611df5565b604081016120d48285611df5565b61171f6020830184611e0d565b61010081016120f0828b611df5565b6120fd602083018a611e0d565b61210a6040830189611e0d565b6121176060830188611df5565b6121246080830187611e16565b61213160a0830186611e0d565b61213e60c0830185611e0d565b81810360e08301526121508184611e1f565b9a9950505050505050505050565b6060810161216c8286611df5565b6121796020830185611e0d565b81810360408301526114f58184611e1f565b602081016112338284611e04565b602081016112338284611e0d565b6020808252810161171f8184611e1f565b6020808252810161123381611e54565b6020808252810161123381611eaa565b6020808252810161123381611f00565b6020808252810161123381611f56565b6020808252810161123381611fac565b6020808252810161123381611fdc565b6020808252810161123381612032565b6020808252810161123381612062565b604081016120d48285611e0d565b606081016122548286611e0d565b6122616020830185611e0d565b6117796040830184611e0d565b5190565b600160a060020a031690565b151590565b90565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690565b69ffffffffffffffffffff1690565b60005b838110156122d25781810151838201526020016122ba565b838111156119f45750506000910152565b601f01601f1916905600a265627a7a72305820ae7c6b1bc3e9c37bd83ce7ef0d6ebc72ee71c196bd8a89b84fa508d5c11d3f406c6578706572696d656e74616cf50037",
"opcodes": "PUSH1 0x80 PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x17 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x18 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x19 SSTORE PUSH1 0x1A DUP2 SWAP1 SSTORE PUSH1 0x1B SSTORE PUSH3 0x2AD8 CODESIZE DUP2 SWAP1 SUB SWAP1 DUP2 SWAP1 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x4B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x4A2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND PUSH20 0x9326BFA02ADD2366B30BACB125260AF641031331 OR SWAP1 SSTORE PUSH3 0x93 DUP3 PUSH5 0x100000000 PUSH3 0x234 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x8 DUP2 SWAP1 SSTORE PUSH3 0xC5 PUSH3 0xAF PUSH5 0x100000000 PUSH3 0x256 DUP2 MUL DIV JUMP JUMPDEST DUP6 SWAP1 PUSH5 0x100000000 PUSH3 0x1222 PUSH3 0x35A DUP3 MUL OR DIV JUMP JUMPDEST CALLVALUE LT ISZERO PUSH3 0x10A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x101 SWAP1 PUSH3 0x6DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xA DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND OR SWAP1 SSTORE TIMESTAMP PUSH1 0xB SSTORE PUSH1 0xC DUP7 SWAP1 SSTORE PUSH1 0xD DUP6 SWAP1 SSTORE PUSH1 0xE DUP5 SWAP1 SSTORE PUSH1 0x0 PUSH1 0x16 SSTORE PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP3 MLOAD PUSH3 0x16D SWAP1 PUSH1 0xF SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x370 JUMP JUMPDEST POP PUSH1 0x14 DUP1 SLOAD PUSH20 0x5C8FADF1798437C143683E665800D58A42B6E19 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x15 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x6131376538666266346362663436656562373965303462336562383634613465 PUSH1 0x12 DUP2 SWAP1 SSTORE PUSH1 0x13 SSTORE PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH32 0x203790CAE2EA31823A6382172BD46011FCFBAB29B22BB78B4B2F266FEBF6072 SWAP6 PUSH3 0x21F SWAP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP6 SWAP2 AND SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH3 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP PUSH3 0x7A1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x2E1 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 0x307 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x565 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH3 0x350 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x101 SWAP1 PUSH3 0x6F5 JUMP JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH3 0x368 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP 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 PUSH3 0x3B3 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x3E3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x3E3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x3E3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x3C6 JUMP JUMPDEST POP PUSH3 0x3F1 SWAP3 SWAP2 POP PUSH3 0x3F5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x412 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x3F1 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3FC JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x756 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x412 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH3 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x461 PUSH3 0x45B DUP3 PUSH3 0x72E JUMP JUMPDEST PUSH3 0x707 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH3 0x47E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x48B DUP4 DUP3 DUP5 PUSH3 0x76E JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x762 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH3 0x4BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x4CC DUP11 DUP11 PUSH3 0x415 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH3 0x4DF DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH3 0x4F2 DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH3 0x505 DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP2 GT ISZERO PUSH3 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x530 DUP11 DUP3 DUP12 ADD PUSH3 0x438 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH3 0x543 DUP11 DUP3 DUP12 ADD PUSH3 0x415 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH3 0x556 DUP11 DUP3 DUP12 ADD PUSH3 0x42A 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 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x58C DUP9 DUP9 PUSH3 0x494 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH3 0x59F DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0x5B2 DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0x5C5 DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH3 0x5D8 DUP9 DUP3 DUP10 ADD PUSH3 0x494 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH3 0x5F0 DUP2 PUSH3 0x756 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x4E6F7420656E6F7567682066756E64732073656E7420746F20636F6E74726163 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x7400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH3 0x5F0 DUP2 PUSH3 0x412 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH3 0x697 DUP3 DUP9 PUSH3 0x5E5 JUMP JUMPDEST PUSH3 0x6A6 PUSH1 0x20 DUP4 ADD DUP8 PUSH3 0x5E5 JUMP JUMPDEST PUSH3 0x6B5 PUSH1 0x40 DUP4 ADD DUP7 PUSH3 0x67C JUMP JUMPDEST PUSH3 0x6C4 PUSH1 0x60 DUP4 ADD DUP6 PUSH3 0x67C JUMP JUMPDEST PUSH3 0x6D3 PUSH1 0x80 DUP4 ADD DUP5 PUSH3 0x67C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x6EF DUP2 PUSH3 0x5F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x6EF DUP2 PUSH3 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP3 GT ISZERO PUSH3 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x50 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x78B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x771 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x79B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2327 DUP1 PUSH3 0x7B1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13A JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC15C365 DUP2 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x165D35E1 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x185E5B40 EQ PUSH2 0x189 JUMPI DUP1 PUSH4 0x243D9A5D EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x3FAD1834 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x4162CC88 EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x56A6D508 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x5B69A7D8 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x5FDC6281 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x7A50413D EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x8E15F473 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0xA241C089 EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0xAD2E8C9B EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0xB0B30FEE EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0xB1B91F7A EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0xB8078732 EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0xBBE4FD50 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xC032846B EQ PUSH2 0x33C JUMPI DUP1 PUSH4 0xC9744029 EQ PUSH2 0x351 JUMPI DUP1 PUSH4 0xCE2CE3FC EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0xDBC837C5 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0xDCBACD11 EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3B2 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x148 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x3D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x20B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x1A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x3E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x3FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x401 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x407 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x414 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x41A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x437 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x441 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x273 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x4CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x4D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x4E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x5B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xAEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x218B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x30D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D0A JUMP JUMPDEST PUSH2 0xAFE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0xD0F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD18 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37B PUSH2 0xD1E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0xDB4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xDC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x1CCE JUMP JUMPDEST PUSH2 0xDC9 JUMP JUMPDEST PUSH1 0x18 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E2 PUSH2 0xE02 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x3F4 JUMPI INVALID JUMPDEST ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0xE SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1A SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x3F4 JUMPI INVALID JUMPDEST PUSH1 0x19 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x14 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x427 JUMPI INVALID JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x3C DUP2 JUMP JUMPDEST ADDRESS BALANCE SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x477 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2208 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x16 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x53F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x553 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 0x577 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D80 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2218 JUMP JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x5E0 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0x5E8 PUSH2 0xE11 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 PUSH1 0x1B SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x3A DUP2 MSTORE PUSH32 0x687474703A2F2F6170692E776F726C64776561746865726F6E6C696E652E636F PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH32 0x6D2F7072656D69756D2F76312F776561746865722E617368783F000000000000 DUP4 DUP6 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH32 0x3632396336646430396262633433363462376133333831303230303931310000 DUP2 DUP4 ADD MSTORE SWAP4 MLOAD DUP4 MLOAD SWAP4 SWAP5 SWAP4 PUSH1 0xF SWAP4 SWAP2 SWAP1 SWAP3 ADD SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x6B9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x69A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x6B65793D00000000000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x72A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x70B JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x26713D0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x3 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x7CB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 DUP3 ADD SWAP2 PUSH2 0x7CB 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 0x7B7 JUMPI JUMPDEST POP POP PUSH32 0x26666F726D61743D6A736F6E266E756D5F6F665F646179733D31000000000000 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x5 NOT DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x1A SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP5 POP PUSH2 0x88E SWAP4 POP PUSH1 0x14 SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH2 0x81A SWAP1 POP JUMP JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x12 PUSH1 0x0 ADD SLOAD DUP4 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174612E63757272656E745F636F6E646974696F6E2E302E7072656369704D DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x109E JUMP JUMPDEST POP PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x68747470733A2F2F6170692E776561746865726269742E696F2F76322E302F63 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x757272656E743F00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3565303561656630373431303430316661633439316230366562396538666338 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x956 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x636974793D000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x5 ADD DUP4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x9F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9D5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 DUP3 ADD SWAP2 PUSH2 0x9F7 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 0x9E3 JUMPI JUMPDEST POP POP DUP1 PUSH32 0x266B65793D000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x5 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA4C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA2D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xAE4 PUSH1 0x14 PUSH1 0x1 PUSH1 0x2 DUP2 LT ISZERO ISZERO PUSH2 0xA97 JUMPI INVALID JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x12 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174612E302E70726563697000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x109E JUMP JUMPDEST POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0xC SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xB39 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2228 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0xBB3 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0xBD6 PUSH2 0xBC8 PUSH1 0x3C PUSH1 0xC PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x3C SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1239 AND JUMP JUMPDEST PUSH1 0x19 SLOAD PUSH2 0xBEA SWAP1 TIMESTAMP SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1239 AND JUMP JUMPDEST GT PUSH2 0xC0A JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21D8 JUMP JUMPDEST DUP2 PUSH1 0x10 PUSH1 0x1B SLOAD PUSH1 0x2 DUP2 LT ISZERO ISZERO PUSH2 0xC1C JUMPI INVALID JUMPDEST ADD SSTORE PUSH1 0x1B DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD SWAP2 DUP3 SWAP1 SSTORE LT ISZERO PUSH2 0xCCA JUMPI PUSH1 0x11 SLOAD PUSH1 0x10 SLOAD PUSH2 0xC53 SWAP2 PUSH1 0x2 SWAP2 PUSH2 0xC47 SWAP2 PUSH2 0x124B JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x18 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x19 SSTORE PUSH1 0x1A DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE ISZERO ISZERO PUSH2 0xC79 JUMPI PUSH1 0x16 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x16 SSTORE PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH32 0x2E5A5A6CF30E14F6500F404203CC44691F83C62354F375539EA7D45BCC492305 SWAP2 PUSH2 0xCAF SWAP2 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x3 GT PUSH2 0xCCA JUMPI PUSH2 0xCCA PUSH2 0x1258 JUMP JUMPDEST PUSH32 0x9ACB88F10AF47DAA34522605143D1719BAD9AA6562E4C443C8ABB9D594EA73F4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCF9 SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP9 AND ISZERO MUL ADD SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xDAA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDAA 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 0xD8D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xDF6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2208 JUMP JUMPDEST PUSH2 0xDFF DUP2 PUSH2 0x1455 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH1 0xC SLOAD PUSH1 0xB SLOAD ADD LT ISZERO PUSH2 0xDFF JUMPI PUSH1 0xC SLOAD PUSH1 0x2 SWAP1 PUSH2 0xE38 SWAP1 PUSH1 0x3C PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST SUB PUSH1 0x1A SLOAD LT ISZERO ISZERO PUSH2 0xE83 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0xF11 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC PUSH2 0xEAC PUSH2 0xE9D PUSH2 0x4E3 JUMP JUMPDEST PUSH1 0xD SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 ISZERO SWAP1 SWAP3 MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xED4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xF0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0xF19 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0xF71 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x20B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF9F 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 0xFC3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE3 SWAP3 SWAP2 SWAP1 PUSH2 0x20C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1011 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 0x1035 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1056 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21B8 JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x71D9F146944417DD66115A997376D9878C3618F396C331A6C3AA82CE653EAE14 SWAP1 PUSH2 0x1093 SWAP1 TIMESTAMP SWAP1 ADDRESS BALANCE SWAP1 PUSH2 0x2238 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10A8 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x10D2 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0x10FD DUP6 ADDRESS PUSH32 0xB1B91F7A00000000000000000000000000000000000000000000000000000000 PUSH2 0x14D3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH32 0x6765740000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x1146 SWAP1 DUP3 SWAP1 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x14FE AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP2 MSTORE PUSH32 0x7061746800000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x118C SWAP1 DUP3 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x14FE AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x74696D6573000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x11D3 SWAP1 DUP3 SWAP1 PUSH1 0x64 PUSH4 0xFFFFFFFF PUSH2 0x152D AND JUMP JUMPDEST PUSH2 0x11E0 DUP7 DUP3 PUSH1 0x8 SLOAD PUSH2 0x1557 JUMP JUMPDEST SWAP2 POP PUSH32 0x9B79DB1508864F538C7703D2267A0C858007EE5877C83D83AEC1B431E5ADD541 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1211 SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x122F JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1245 JUMPI INVALID JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP3 DUP2 LT ISZERO PUSH2 0x1233 JUMPI INVALID JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x1285 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x12BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x12C8 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1320 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x20B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1372 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1392 SWAP3 SWAP2 SWAP1 PUSH2 0x20C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C0 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 0x13E4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1405 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21F8 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH32 0xD8874104029B491BA57B1B4875BD4BA8D4A98BF0261E1FDFAC96DB44022F95F8 SWAP3 PUSH2 0x143B SWAP3 TIMESTAMP SWAP3 PUSH2 0x2246 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x17 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x146A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x14DB PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x14E3 PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x14F5 DUP2 DUP7 DUP7 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1726 AND JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1513 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1528 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1542 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1528 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x179E AND JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH13 0x1000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x15D3 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x15B4 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SLOAD PUSH1 0x60 DUP11 ADD MSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE DUP4 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND OR SWAP1 SSTORE SWAP3 MLOAD SWAP3 SWAP6 POP DUP6 SWAP5 POP PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP4 POP SWAP2 SWAP1 POP LOG2 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0x1681 DUP8 PUSH2 0x1800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16A2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x215E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16D0 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 0x16F4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1715 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21C8 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x172E PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x173E DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x18BD JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x178E DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x1528 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x19FA AND JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 SLT ISZERO PUSH2 0x17BE JUMPI PUSH2 0x17B9 DUP3 DUP3 PUSH2 0x1A14 JUMP JUMPDEST PUSH2 0x17FC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 SGT ISZERO PUSH2 0x17D8 JUMPI PUSH2 0x17B9 DUP3 DUP3 PUSH2 0x1A53 JUMP JUMPDEST PUSH1 0x0 DUP2 SLT PUSH2 0x17EC JUMPI PUSH2 0x17B9 DUP3 PUSH1 0x0 DUP4 PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x17FC DUP3 PUSH1 0x1 DUP4 PUSH1 0x0 NOT SUB PUSH2 0x18F7 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 DUP2 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP4 MLOAD SWAP2 SWAP6 PUSH32 0x4042994600000000000000000000000000000000000000000000000000000000 SWAP6 PUSH2 0x185A SWAP6 PUSH1 0x0 SWAP6 DUP7 SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x20E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18C5 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x20 DUP3 MOD ISZERO PUSH2 0x18DA JUMPI PUSH1 0x20 DUP3 MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0x1919 JUMPI PUSH2 0x1913 DUP4 PUSH1 0xFF DUP5 DUP2 AND PUSH1 0x20 MUL AND DUP4 OR PUSH2 0x1A7A JUMP JUMPDEST POP PUSH2 0x1528 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0x194D JUMPI PUSH2 0x193A DUP4 PUSH1 0x18 PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0x1982 JUMPI PUSH2 0x196F DUP4 PUSH1 0x19 PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x2 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0x19B9 JUMPI PUSH2 0x19A6 DUP4 PUSH1 0x1A PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x4 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x1528 JUMPI PUSH2 0x19E1 DUP4 PUSH1 0x1B PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x19F4 DUP4 DUP3 PUSH1 0x8 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1A02 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x171F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x1AAB JUMP JUMPDEST PUSH2 0x1A25 DUP3 PUSH1 0xC3 PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x17FC DUP3 DUP3 PUSH1 0x0 NOT SUB PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3F SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1B61 JUMP JUMPDEST PUSH2 0x1A64 DUP3 PUSH1 0xC2 PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x17FC DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3F SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH2 0x1A82 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x171F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x1A9A PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x1779 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x1AB3 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP6 GT ISZERO ISZERO ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 ADD MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1AF2 JUMPI PUSH2 0x1AF2 DUP9 PUSH2 0x1AEA DUP11 PUSH1 0x20 ADD MLOAD DUP11 DUP10 ADD PUSH2 0x1C17 JUMP JUMPDEST PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST DUP8 MLOAD DUP1 MLOAD DUP9 PUSH1 0x20 DUP4 ADD ADD SWAP5 POP DUP1 DUP10 DUP9 ADD GT ISZERO PUSH2 0x1B0E JUMPI DUP9 DUP8 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP9 ADD SWAP4 POP POP POP JUMPDEST PUSH1 0x20 DUP6 LT PUSH2 0x1B39 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x1F NOT SWAP1 SWAP5 ADD SWAP4 PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1B17 JUMP JUMPDEST POP MLOAD DUP2 MLOAD PUSH1 0x20 SWAP5 SWAP1 SWAP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x1B76 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD DUP4 LT PUSH2 0x1B92 JUMPI PUSH2 0x1B92 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0x1BAE JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1BC1 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x20 ADD MLOAD DUP6 DUP5 ADD GT ISZERO PUSH2 0x1BE0 JUMPI PUSH2 0x1BE0 DUP7 DUP7 DUP6 ADD PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1C0B JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP SWAP6 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x1C28 JUMPI POP DUP2 PUSH2 0x1233 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1C3A DUP4 DUP4 PUSH2 0x18BD JUMP JUMPDEST POP PUSH2 0x19F4 DUP4 DUP3 PUSH2 0x19FA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x1C75 PUSH2 0x1C7A JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 CALLDATALOAD PUSH2 0x2272 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x227E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 CALLDATALOAD PUSH2 0x2283 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x2283 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x22A8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1C92 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1C9E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D29 DUP6 DUP6 PUSH2 0x1CAA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D3A DUP6 DUP3 DUP7 ADD PUSH2 0x1CAA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1CAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1CB6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1D98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DA4 DUP9 DUP9 PUSH2 0x1CC2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1DB5 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1DC6 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1DD7 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1DE8 DUP9 DUP3 DUP10 ADD PUSH2 0x1CC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2272 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x227E JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2283 JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2286 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E2A DUP3 PUSH2 0x226E JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E3E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x22B7 JUMP JUMPDEST PUSH2 0x1E47 DUP2 PUSH2 0x22E3 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x28 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665722072656D61696E696E67204C494E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4B20746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x636C650000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH32 0x43616E206F6E6C7920636865636B207261696E66616C6C206F6E636520706572 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2064617900000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x31 DUP2 MSTORE PUSH32 0x436F6E74726163742068617320656E6465642C2063616E7420696E7465726163 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x74207769746820697420616E796D6F7265000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x4F6E6C7920496E737572616E63652070726F76696465722063616E20646F2074 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6869730000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x28 DUP2 MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2072657175657374000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1DF5 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x20D4 DUP3 DUP6 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x171F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x20F0 DUP3 DUP12 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x20FD PUSH1 0x20 DUP4 ADD DUP11 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x210A PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x2117 PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x2124 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x1E16 JUMP JUMPDEST PUSH2 0x2131 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x213E PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x2150 DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x216C DUP3 DUP7 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x2179 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x14F5 DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1E04 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1E0D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x171F DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1E54 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1EAA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1F00 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1F56 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1FAC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1FDC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x2032 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x2062 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x20D4 DUP3 DUP6 PUSH2 0x1E0D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x2254 DUP3 DUP7 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x2261 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x1779 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E0D JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22D2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x22BA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x19F4 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 JUMP STOP LOG2 PUSH6 0x627A7A723058 KECCAK256 0xae PUSH29 0x6B1BC3E9C37BD83CE7EF0D6EBC72EE71C196BD8A89B84FA508D5C11D3F BLOCKHASH PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ",
"sourceMap": "5997:15237:0:-;;;;;1121:1:2;1094:28;;7598:25:0;;;-1:-1:-1;;7598:25:0;;;7618:5;7629:24;;;;7755:3;7721:37;;7810:21;;;;7942:25;;9602:1930;;;;;;;;5997:15237;9602:1930;;;;;;;;;;;;;;;567:5:12;:18;;-1:-1:-1;;;;;;567:18:12;;;575:10;567:18;;;;9843:9:0;:77;;;;;9877:42;9843:77;;;10013:24;10031:5;10013:17;;;;:24;:::i;:::-;10047:19;:42;;;10190:40;10212:16;:14;;;;:16;:::i;:::-;10190:12;;:16;;;;;;:40;:::i;:::-;10177:9;:53;;10169:99;;;;;;;;;;;;;;;;;;;;;;10336:7;:19;;10345:10;-1:-1:-1;;;;;;10336:19:0;;;;;;;10365:6;:16;;;;;-1:-1:-1;;;;;10365:16:0;;;;;10403:3;10391:9;:15;10470:8;:20;;;10500:7;:18;;;10528:11;:26;;;-1:-1:-1;10564:15:0;:19;10593:14;:21;;-1:-1:-1;;10593:21:0;-1:-1:-1;10593:21:0;;;10624:28;;;;:12;;:28;;;;;:::i;:::-;-1:-1:-1;11089:7:0;:55;;11102:42;-1:-1:-1;;;;;;11089:55:0;;;;;;;;11154:10;:55;;;;;;;;;;11219:46;:6;:46;;;11275:9;:46;11361:7;;11399:6;;11436:8;;11475:7;;11513:11;;11345:180;;;;;;-1:-1:-1;;;;;11361:7:0;;;;11399:6;;;11436:8;;11475:7;;11345:180;;;;;;;;;;9602:1930;;;;;;;5997:15237;;4751:94:2;4808:4;:32;;-1:-1:-1;;;;;;4808:32:2;-1:-1:-1;;;;;4808:32:2;;;;;;;;;;4751:94::o;17267:389:0:-;17314:3;17343:14;17372:9;17395:14;17423;17451:22;17486:9;;;;;;;;;-1:-1:-1;;;;;17486:9:0;-1:-1:-1;;;;;17486:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17486:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17486:27: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;17486:27:0;;;;;;;;;17329:184;;;;;;;;;;17603:1;17591:9;:13;17583:44;;;;;;;;;;;;;;;;-1:-1:-1;17644:5:0;;17267:389;-1:-1:-1;;;;17267:389:0:o;674:283:13:-;734:7;950:2;945;:7;;;;;;;;;674:283;-1:-1:-1;;;674:283:13:o;5997:15237:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5997:15237:0;;;-1:-1:-1;5997:15237:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;5:122:-1:-;;83:39;114:6;108:13;83:39;;;74:48;68:59;-1:-1;;;68:59;134:120;;211:38;241:6;235:13;211:38;;262:444;;368:4;356:17;;352:27;-1:-1;342:2;;393:1;390;383:12;342:2;423:6;417:13;445:65;460:49;502:6;460:49;;;445:65;;;436:74;;530:6;523:5;516:21;566:4;558:6;554:17;599:4;592:5;588:16;634:3;625:6;620:3;616:16;613:25;610:2;;;651:1;648;641:12;610:2;661:39;693:6;688:3;683;661:39;;;335:371;;;;;;;;843:120;;920:38;950:6;944:13;920:38;;970:1182;;;;;;;;1197:3;1185:9;1176:7;1172:23;1168:33;1165:2;;;1214:1;1211;1204:12;1165:2;1249:1;1266:64;1322:7;1302:9;1266:64;;;1256:74;;1228:108;1367:2;1385:64;1441:7;1432:6;1421:9;1417:22;1385:64;;;1375:74;;1346:109;1486:2;1504:64;1560:7;1551:6;1540:9;1536:22;1504:64;;;1494:74;;1465:109;1605:2;1623:64;1679:7;1670:6;1659:9;1655:22;1623:64;;;1613:74;;1584:109;1745:3;1734:9;1730:19;1724:26;-1:-1;;;;;1762:6;1759:30;1756:2;;;1802:1;1799;1792:12;1756:2;1822:74;1888:7;1879:6;1868:9;1864:22;1822:74;;;1812:84;;1703:199;1933:3;1952:64;2008:7;1999:6;1988:9;1984:22;1952:64;;;1942:74;;1912:110;2053:3;2072:64;2128:7;2119:6;2108:9;2104:22;2072:64;;;2062:74;;2032:110;1159:993;;;;;;;;;;;2159:803;;;;;;2339:3;2327:9;2318:7;2314:23;2310:33;2307:2;;;2356:1;2353;2346:12;2307:2;2391:1;2408:63;2463:7;2443:9;2408:63;;;2398:73;;2370:107;2508:2;2526:63;2581:7;2572:6;2561:9;2557:22;2526:63;;;2516:73;;2487:108;2626:2;2644:64;2700:7;2691:6;2680:9;2676:22;2644:64;;;2634:74;;2605:109;2745:2;2763:64;2819:7;2810:6;2799:9;2795:22;2763:64;;;2753:74;;2724:109;2864:3;2883:63;2938:7;2929:6;2918:9;2914:22;2883:63;;;2873:73;;2843:109;2301:661;;;;;;;;;2969:110;3042:31;3067:5;3042:31;;;3037:3;3030:44;3024:55;;;3087:397;3242:2;3230:15;;3279:66;3274:2;3265:12;;3258:88;3380:66;3375:2;3366:12;;3359:88;3475:2;3466:12;;3223:261;3493:296;3648:2;3636:15;;3685:66;3680:2;3671:12;;3664:88;3780:2;3771:12;;3629:160;3797:110;3870:31;3895:5;3870:31;;3914:599;4134:3;4119:19;;4149:61;4123:9;4183:6;4149:61;;;4221:62;4279:2;4268:9;4264:18;4255:6;4221:62;;;4294;4352:2;4341:9;4337:18;4328:6;4294:62;;;4367;4425:2;4414:9;4410:18;4401:6;4367:62;;;4440:63;4498:3;4487:9;4483:19;4474:6;4440:63;;;4105:408;;;;;;;;;4520:387;4701:2;4715:47;;;4686:18;;4776:121;4686:18;4776:121;;;4768:129;4672:235;-1:-1;;4672:235;4914:387;5095:2;5109:47;;;5080:18;;5170:121;5080:18;5170:121;;5308:256;5370:2;5364:9;5396:17;;;-1:-1;;;;;5456:34;;5492:22;;;5453:62;5450:2;;;5528:1;5525;5518:12;5450:2;5544;5537:22;5348:216;;-1:-1;5348:216;5571:259;;-1:-1;;;;;5707:6;5704:30;5701:2;;;5747:1;5744;5737:12;5701:2;-1:-1;5820:4;5791;5768:17;;;;-1:-1;;5764:33;5810:15;;5638:192;5837:128;-1:-1;;;;;5906:54;;5889:76;6364:107;-1:-1;;;;;6432:34;;6415:56;6479:268;6544:1;6551:101;6565:6;6562:1;6559:13;6551:101;;;6632:11;;;6626:18;6613:11;;;6606:39;6587:2;6580:10;6551:101;;;6667:6;6664:1;6661:13;6658:2;;;6732:1;6723:6;6718:3;6714:16;6707:27;6658:2;6528:219;;;;;;5997:15237:0;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061013a5763ffffffff60e060020a6000350416630c15c365811461013c578063165d35e114610167578063185e5b4014610189578063243d9a5d146101a95780633fad1834146101be5780634162cc88146101d357806356a6d508146101f35780635b69a7d8146102085780635fdc6281146102285780636f9fb98a1461023d578063715018a6146102525780637a50413d146102675780638da5cb5b1461027c5780638e15f47314610291578063a241c089146102a6578063ad2e8c9b146102bb578063b0b30fee146102d0578063b1b91f7a146102f2578063b807873214610312578063bbe4fd5014610327578063c032846b1461033c578063c974402914610351578063ce2ce3fc14610366578063dbc837c514610388578063dcbacd111461039d578063f2fde38b146103b2575b005b34801561014857600080fd5b506101516103d2565b60405161015e9190612199565b60405180910390f35b34801561017357600080fd5b5061017c6103d8565b60405161015e91906120b8565b34801561019557600080fd5b506101516101a4366004611d44565b6103e7565b3480156101b557600080fd5b506101516103fb565b3480156101ca57600080fd5b50610151610401565b3480156101df57600080fd5b506101516101ee366004611d44565b610407565b3480156101ff57600080fd5b50610151610414565b34801561021457600080fd5b5061017c610223366004611d44565b61041a565b34801561023457600080fd5b50610151610437565b34801561024957600080fd5b5061015161043c565b34801561025e57600080fd5b5061013a610441565b34801561027357600080fd5b506101516104ce565b34801561028857600080fd5b5061017c6104d4565b34801561029d57600080fd5b506101516104e3565b3480156102b257600080fd5b506101516105b0565b3480156102c757600080fd5b50610151610aea565b3480156102dc57600080fd5b506102e5610af0565b60405161015e919061218b565b3480156102fe57600080fd5b5061013a61030d366004611d0a565b610afe565b34801561031e57600080fd5b50610151610d06565b34801561033357600080fd5b50610151610d0b565b34801561034857600080fd5b506102e5610d0f565b34801561035d57600080fd5b50610151610d18565b34801561037257600080fd5b5061037b610d1e565b60405161015e91906121a7565b34801561039457600080fd5b5061017c610db4565b3480156103a957600080fd5b50610151610dc3565b3480156103be57600080fd5b5061013a6103cd366004611cce565b610dc9565b60185490565b60006103e2610e02565b905090565b601081600281106103f457fe5b0154905081565b600e5490565b601a5490565b601281600281106103f457fe5b60195490565b6014816002811061042757fe5b0154600160a060020a0316905081565b603c81565b303190565b600954600160a060020a031633146104775760405160e560020a62461bcd02815260040161046e90612208565b60405180910390fd5b600654604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26006805473ffffffffffffffffffffffffffffffffffffffff19169055565b60165490565b600654600160a060020a031681565b600080600080600080600760009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15801561053f57600080fd5b505af1158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105779190810190611d80565b945094509450945094506000821115156105a65760405160e560020a62461bcd02815260040161046e90612218565b5091949350505050565b60175460009060609060ff1615156001146105e05760405160e560020a62461bcd02815260040161046e906121e8565b6105e8610e11565b60175460ff1615610ae6576000601b5560408051606081018252603a81527f687474703a2f2f6170692e776f726c64776561746865726f6e6c696e652e636f60208083019182527f6d2f7072656d69756d2f76312f776561746865722e617368783f0000000000008385015283518085018552601e81527f36323963366464303962626334333634623761333338313032303039313100008183015293518351939493600f9391909201918291908083835b602083106106b95780518252601f19909201916020918201910161069a565b51815160209384036101000a60001901801990921691161790527f6b65793d00000000000000000000000000000000000000000000000000000000919093019081528551600490910192860191508083835b6020831061072a5780518252601f19909201916020918201910161070b565b6001836020036101000a038019825116818451168082178552505050505050905001807f26713d0000000000000000000000000000000000000000000000000000000000815250600301828054600181600116156101000203166002900480156107cb5780601f106107a95761010080835404028352918201916107cb565b820191906000526020600020905b8154815290600101906020018083116107b7575b50507f26666f726d61743d6a736f6e266e756d5f6f665f646179733d31000000000000815260408051600519818403018152601a9092019052945061088e9350601492506000915061081a9050565b0154600160a060020a031660126000015483606060405190810160405280602181526020017f646174612e63757272656e745f636f6e646974696f6e2e302e7072656369704d81526020017f4d0000000000000000000000000000000000000000000000000000000000000081525061109e565b50606060405190810160405280602781526020017f68747470733a2f2f6170692e776561746865726269742e696f2f76322e302f6381526020017f757272656e743f00000000000000000000000000000000000000000000000000815250600f6040805190810160405280602081526020017f35653035616566303734313034303166616334393162303665623965386663388152506040516020018084805190602001908083835b602083106109565780518252601f199092019160209182019101610937565b6001836020036101000a038019825116818451168082178552505050505050905001807f636974793d000000000000000000000000000000000000000000000000000000815250600501838054600181600116156101000203166002900480156109f75780601f106109d55761010080835404028352918201916109f7565b820191906000526020600020905b8154815290600101906020018083116109e3575b5050807f266b65793d00000000000000000000000000000000000000000000000000000081525060050182805190602001908083835b60208310610a4c5780518252601f199092019160209182019101610a2d565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040529050610ae460146001600281101515610a9757fe5b0154600160a060020a0316601260010154836040805190810160405280600d81526020017f646174612e302e7072656369700000000000000000000000000000000000000081525061109e565b505b5090565b600c5490565b601754610100900460ff1690565b6000828152600560205260409020548290600160a060020a03163314610b395760405160e560020a62461bcd02815260040161046e90612228565b600081815260056020526040808220805473ffffffffffffffffffffffffffffffffffffffff191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a260175460ff161515600114610bb35760405160e560020a62461bcd02815260040161046e906121e8565b610bd6610bc8603c600c63ffffffff61122216565b603c9063ffffffff61123916565b601954610bea90429063ffffffff61123916565b11610c0a5760405160e560020a62461bcd02815260040161046e906121d8565b816010601b54600281101515610c1c57fe5b0155601b80546001908101918290551015610cca57601154601054610c5391600291610c479161124b565b9063ffffffff61122216565b601881905542601955601a805460010190551515610c7957601680546001019055610cb8565b60006016556018546040517f2e5a5a6cf30e14f6500f404203cc44691f83c62354f375539ea7d45bcc49230591610caf91612199565b60405180910390a15b601654600311610cca57610cca611258565b7f9acb88f10af47daa34522605143d1719bad9aa6562e4c443c8abb9d594ea73f482604051610cf99190612199565b60405180910390a1505050565b600381565b4290565b60175460ff1690565b600d5490565b600f8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610daa5780601f10610d7f57610100808354040283529160200191610daa565b820191906000526020600020905b815481529060010190602001808311610d8d57829003601f168201915b5050505050905090565b600954600160a060020a031681565b600b5490565b600954600160a060020a03163314610df65760405160e560020a62461bcd02815260040161046e90612208565b610dff81611455565b50565b600254600160a060020a031690565b600042600c54600b54011015610dff57600c54600290610e3890603c63ffffffff61122216565b03601a54101515610e8357600954604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610e7d573d6000803e3d6000fd5b50610f11565b600a54600160a060020a03166108fc610eac610e9d6104e3565b600d549063ffffffff61122216565b6040518115909202916000818181858888f19350505050158015610ed4573d6000803e3d6000fd5b50600954604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610f0f573d6000803e3d6000fd5b505b610f19610e02565b6009546040517f70a08231000000000000000000000000000000000000000000000000000000008152919250600160a060020a038084169263a9059cbb929091169083906370a0823190610f719030906004016120b8565b602060405180830381600087803b158015610f8b57600080fd5b505af1158015610f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fc39190810190611d62565b6040518363ffffffff1660e060020a028152600401610fe39291906120c6565b602060405180830381600087803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110359190810190611cec565b15156110565760405160e560020a62461bcd02815260040161046e906121b8565b6017805460ff191690556040517f71d9f146944417dd66115a997376d9878c3618f396c331a6c3aa82ce653eae1490611093904290303190612238565b60405180910390a150565b60006110a8611c45565b60175460ff1615156001146110d25760405160e560020a62461bcd02815260040161046e906121e8565b6110fd85307fb1b91f7a000000000000000000000000000000000000000000000000000000006114d3565b60408051808201909152600381527f676574000000000000000000000000000000000000000000000000000000000060208201529091506111469082908663ffffffff6114fe16565b60408051808201909152600481527f7061746800000000000000000000000000000000000000000000000000000000602082015261118c9082908563ffffffff6114fe16565b60408051808201909152600581527f74696d657300000000000000000000000000000000000000000000000000000060208201526111d3908290606463ffffffff61152d16565b6111e08682600854611557565b91507f9b79db1508864f538c7703d2267a0c858007ee5877c83d83aec1b431e5add541826040516112119190612199565b60405180910390a150949350505050565b6000818381151561122f57fe5b0490505b92915050565b60008282111561124557fe5b50900390565b8181018281101561123357fe5b60175460009060ff1615156001146112855760405160e560020a62461bcd02815260040161046e906121e8565b600a54604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156112bf573d6000803e3d6000fd5b506112c8610e02565b6009546040517f70a08231000000000000000000000000000000000000000000000000000000008152919250600160a060020a038084169263a9059cbb929091169083906370a08231906113209030906004016120b8565b602060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113729190810190611d62565b6040518363ffffffff1660e060020a0281526004016113929291906120c6565b602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113e49190810190611cec565b15156114055760405160e560020a62461bcd02815260040161046e906121f8565b600e546018546040517fd8874104029b491ba57b1b4875bd4ba8d4a98bf0261e1fdfac96db44022f95f89261143b924292612246565b60405180910390a1506017805461ffff1916610100179055565b600160a060020a038116151561146a57600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6114db611c45565b6114e3611c45565b6114f58186868663ffffffff61172616565b95945050505050565b6080830151611513908363ffffffff61178116565b6080830151611528908263ffffffff61178116565b505050565b6080830151611542908363ffffffff61178116565b6080830151611528908263ffffffff61179e16565b6000306004546040516020018083600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106115d35780518252601f1990920191602091820191016115b4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060045460608a015260008181526005909252838220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038c1617905592519295508594507fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99350919050a2600254600160a060020a0316634000aea0858461168187611800565b6040518463ffffffff1660e060020a0281526004016116a29392919061215e565b602060405180830381600087803b1580156116bc57600080fd5b505af11580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116f49190810190611cec565b15156117155760405160e560020a62461bcd02815260040161046e906121c8565b6004805460010190555b9392505050565b61172e611c45565b61173e85608001516101006118bd565b5050828452600160a060020a03821660208501527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981166040850152835b949350505050565b61178e82600383516118f7565b611528828263ffffffff6119fa16565b67ffffffffffffffff198112156117be576117b98282611a14565b6117fc565b67ffffffffffffffff8113156117d8576117b98282611a53565b600081126117ec576117b9826000836118f7565b6117fc82600183600019036118f7565b5050565b80516020820151604080840151606085810151608087015151935191957f40429946000000000000000000000000000000000000000000000000000000009561185a956000958695939492939092916001916024016120e1565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091529050919050565b6118c5611c7a565b60208206156118da5760208206602003820191505b506020828101829052604080518085526000815290920101905290565b60178111611919576119138360ff848116602002168317611a7a565b50611528565b60ff811161194d5761193a836018602060ff8616021763ffffffff611a7a16565b506119138382600163ffffffff611a9216565b61ffff81116119825761196f836019602060ff8616021763ffffffff611a7a16565b506119138382600263ffffffff611a9216565b63ffffffff81116119b9576119a683601a602060ff8616021763ffffffff611a7a16565b506119138382600463ffffffff611a9216565b67ffffffffffffffff8111611528576119e183601b602060ff8616021763ffffffff611a7a16565b506119f48382600863ffffffff611a9216565b50505050565b611a02611c7a565b61171f83846000015151848551611aab565b611a258260c363ffffffff611a7a16565b506117fc828260001903604051602001611a3f9190612199565b604051602081830303815290604052611b61565b611a648260c263ffffffff611a7a16565b506117fc8282604051602001611a3f9190612199565b611a82611c7a565b61171f8384600001515184611b6e565b611a9a611c7a565b611779848560000151518585611bb9565b611ab3611c7a565b600080600085518511151515611ac857600080fd5b87602001518588011115611af257611af288611aea8a602001518a8901611c17565b600202611c2e565b875180518860208301019450808988011115611b0e5788870182525b60208801935050505b60208510611b395781518352601f199094019360209283019290910190611b17565b505181516020949094036101000a600019018019909116931692909217909152509192915050565b61178e82600283516118f7565b611b76611c7a565b60208401518310611b9257611b92848560200151600202611c2e565b8351805160208583010184815381861415611bae576001820183525b509495945050505050565b611bc1611c7a565b600085602001518584011115611be057611be086868501600202611c2e565b6001836101000a0390508551838682010185831982511617815281518588011115611c0b5784870182525b50959695505050505050565b600081831115611c28575081611233565b50919050565b8151611c3a83836118bd565b506119f483826119fa565b6040805160c081018252600080825260208201819052918101829052606081019190915260808101611c75611c7a565b905290565b60408051808201909152606081526000602082015290565b600061171f8235612272565b600061171f825161227e565b600061171f8235612283565b600061171f8251612283565b600061171f82516122a8565b600060208284031215611ce057600080fd5b60006117798484611c92565b600060208284031215611cfe57600080fd5b60006117798484611c9e565b60008060408385031215611d1d57600080fd5b6000611d298585611caa565b9250506020611d3a85828601611caa565b9150509250929050565b600060208284031215611d5657600080fd5b60006117798484611caa565b600060208284031215611d7457600080fd5b60006117798484611cb6565b600080600080600060a08688031215611d9857600080fd5b6000611da48888611cc2565b9550506020611db588828901611cb6565b9450506040611dc688828901611cb6565b9350506060611dd788828901611cb6565b9250506080611de888828901611cc2565b9150509295509295909350565b611dfe81612272565b82525050565b611dfe8161227e565b611dfe81612283565b611dfe81612286565b6000611e2a8261226e565b808452611e3e8160208601602086016122b7565b611e47816122e3565b9093016020019392505050565b602881527f556e61626c6520746f207472616e736665722072656d61696e696e67204c494e60208201527f4b20746f6b656e73000000000000000000000000000000000000000000000000604082015260600190565b602381527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f726160208201527f636c650000000000000000000000000000000000000000000000000000000000604082015260600190565b602481527f43616e206f6e6c7920636865636b207261696e66616c6c206f6e63652070657260208201527f2064617900000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f436f6e74726163742068617320656e6465642c2063616e7420696e746572616360208201527f74207769746820697420616e796d6f7265000000000000000000000000000000604082015260600190565b601281527f556e61626c6520746f207472616e736665720000000000000000000000000000602082015260400190565b602381527f4f6e6c7920496e737572616e63652070726f76696465722063616e20646f207460208201527f6869730000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b602881527f536f75726365206d75737420626520746865206f7261636c65206f662074686560208201527f2072657175657374000000000000000000000000000000000000000000000000604082015260600190565b602081016112338284611df5565b604081016120d48285611df5565b61171f6020830184611e0d565b61010081016120f0828b611df5565b6120fd602083018a611e0d565b61210a6040830189611e0d565b6121176060830188611df5565b6121246080830187611e16565b61213160a0830186611e0d565b61213e60c0830185611e0d565b81810360e08301526121508184611e1f565b9a9950505050505050505050565b6060810161216c8286611df5565b6121796020830185611e0d565b81810360408301526114f58184611e1f565b602081016112338284611e04565b602081016112338284611e0d565b6020808252810161171f8184611e1f565b6020808252810161123381611e54565b6020808252810161123381611eaa565b6020808252810161123381611f00565b6020808252810161123381611f56565b6020808252810161123381611fac565b6020808252810161123381611fdc565b6020808252810161123381612032565b6020808252810161123381612062565b604081016120d48285611e0d565b606081016122548286611e0d565b6122616020830185611e0d565b6117796040830184611e0d565b5190565b600160a060020a031690565b151590565b90565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690565b69ffffffffffffffffffff1690565b60005b838110156122d25781810151838201526020016122ba565b838111156119f45750506000910152565b601f01601f1916905600a265627a7a72305820ae7c6b1bc3e9c37bd83ce7ef0d6ebc72ee71c196bd8a89b84fa508d5c11d3f406c6578706572696d656e74616cf50037",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13A JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC15C365 DUP2 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x165D35E1 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x185E5B40 EQ PUSH2 0x189 JUMPI DUP1 PUSH4 0x243D9A5D EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x3FAD1834 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x4162CC88 EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x56A6D508 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x5B69A7D8 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x5FDC6281 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x7A50413D EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x8E15F473 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0xA241C089 EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0xAD2E8C9B EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0xB0B30FEE EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0xB1B91F7A EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0xB8078732 EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0xBBE4FD50 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xC032846B EQ PUSH2 0x33C JUMPI DUP1 PUSH4 0xC9744029 EQ PUSH2 0x351 JUMPI DUP1 PUSH4 0xCE2CE3FC EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0xDBC837C5 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0xDCBACD11 EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3B2 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x148 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x3D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x20B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x1A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x3E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x3FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x401 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x407 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x414 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x41A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x437 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x441 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x273 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x4CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x4D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x4E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x5B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xAEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x218B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x30D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D0A JUMP JUMPDEST PUSH2 0xAFE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0xD0F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD18 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37B PUSH2 0xD1E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0xDB4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xDC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x1CCE JUMP JUMPDEST PUSH2 0xDC9 JUMP JUMPDEST PUSH1 0x18 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E2 PUSH2 0xE02 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x3F4 JUMPI INVALID JUMPDEST ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0xE SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1A SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x3F4 JUMPI INVALID JUMPDEST PUSH1 0x19 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x14 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x427 JUMPI INVALID JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x3C DUP2 JUMP JUMPDEST ADDRESS BALANCE SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x477 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2208 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x16 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x53F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x553 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 0x577 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D80 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2218 JUMP JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x5E0 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0x5E8 PUSH2 0xE11 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 PUSH1 0x1B SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x3A DUP2 MSTORE PUSH32 0x687474703A2F2F6170692E776F726C64776561746865726F6E6C696E652E636F PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH32 0x6D2F7072656D69756D2F76312F776561746865722E617368783F000000000000 DUP4 DUP6 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH32 0x3632396336646430396262633433363462376133333831303230303931310000 DUP2 DUP4 ADD MSTORE SWAP4 MLOAD DUP4 MLOAD SWAP4 SWAP5 SWAP4 PUSH1 0xF SWAP4 SWAP2 SWAP1 SWAP3 ADD SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x6B9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x69A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x6B65793D00000000000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x72A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x70B JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x26713D0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x3 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x7CB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 DUP3 ADD SWAP2 PUSH2 0x7CB 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 0x7B7 JUMPI JUMPDEST POP POP PUSH32 0x26666F726D61743D6A736F6E266E756D5F6F665F646179733D31000000000000 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x5 NOT DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x1A SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP5 POP PUSH2 0x88E SWAP4 POP PUSH1 0x14 SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH2 0x81A SWAP1 POP JUMP JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x12 PUSH1 0x0 ADD SLOAD DUP4 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174612E63757272656E745F636F6E646974696F6E2E302E7072656369704D DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x109E JUMP JUMPDEST POP PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x68747470733A2F2F6170692E776561746865726269742E696F2F76322E302F63 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x757272656E743F00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3565303561656630373431303430316661633439316230366562396538666338 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x956 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x636974793D000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x5 ADD DUP4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x9F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9D5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 DUP3 ADD SWAP2 PUSH2 0x9F7 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 0x9E3 JUMPI JUMPDEST POP POP DUP1 PUSH32 0x266B65793D000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x5 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA4C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA2D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xAE4 PUSH1 0x14 PUSH1 0x1 PUSH1 0x2 DUP2 LT ISZERO ISZERO PUSH2 0xA97 JUMPI INVALID JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x12 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174612E302E70726563697000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x109E JUMP JUMPDEST POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0xC SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xB39 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2228 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0xBB3 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0xBD6 PUSH2 0xBC8 PUSH1 0x3C PUSH1 0xC PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x3C SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1239 AND JUMP JUMPDEST PUSH1 0x19 SLOAD PUSH2 0xBEA SWAP1 TIMESTAMP SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1239 AND JUMP JUMPDEST GT PUSH2 0xC0A JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21D8 JUMP JUMPDEST DUP2 PUSH1 0x10 PUSH1 0x1B SLOAD PUSH1 0x2 DUP2 LT ISZERO ISZERO PUSH2 0xC1C JUMPI INVALID JUMPDEST ADD SSTORE PUSH1 0x1B DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD SWAP2 DUP3 SWAP1 SSTORE LT ISZERO PUSH2 0xCCA JUMPI PUSH1 0x11 SLOAD PUSH1 0x10 SLOAD PUSH2 0xC53 SWAP2 PUSH1 0x2 SWAP2 PUSH2 0xC47 SWAP2 PUSH2 0x124B JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x18 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x19 SSTORE PUSH1 0x1A DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE ISZERO ISZERO PUSH2 0xC79 JUMPI PUSH1 0x16 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x16 SSTORE PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH32 0x2E5A5A6CF30E14F6500F404203CC44691F83C62354F375539EA7D45BCC492305 SWAP2 PUSH2 0xCAF SWAP2 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x3 GT PUSH2 0xCCA JUMPI PUSH2 0xCCA PUSH2 0x1258 JUMP JUMPDEST PUSH32 0x9ACB88F10AF47DAA34522605143D1719BAD9AA6562E4C443C8ABB9D594EA73F4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCF9 SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP9 AND ISZERO MUL ADD SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xDAA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDAA 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 0xD8D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xDF6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2208 JUMP JUMPDEST PUSH2 0xDFF DUP2 PUSH2 0x1455 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH1 0xC SLOAD PUSH1 0xB SLOAD ADD LT ISZERO PUSH2 0xDFF JUMPI PUSH1 0xC SLOAD PUSH1 0x2 SWAP1 PUSH2 0xE38 SWAP1 PUSH1 0x3C PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST SUB PUSH1 0x1A SLOAD LT ISZERO ISZERO PUSH2 0xE83 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0xF11 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC PUSH2 0xEAC PUSH2 0xE9D PUSH2 0x4E3 JUMP JUMPDEST PUSH1 0xD SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 ISZERO SWAP1 SWAP3 MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xED4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xF0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0xF19 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0xF71 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x20B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF9F 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 0xFC3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE3 SWAP3 SWAP2 SWAP1 PUSH2 0x20C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1011 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 0x1035 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1056 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21B8 JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x71D9F146944417DD66115A997376D9878C3618F396C331A6C3AA82CE653EAE14 SWAP1 PUSH2 0x1093 SWAP1 TIMESTAMP SWAP1 ADDRESS BALANCE SWAP1 PUSH2 0x2238 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10A8 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x10D2 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0x10FD DUP6 ADDRESS PUSH32 0xB1B91F7A00000000000000000000000000000000000000000000000000000000 PUSH2 0x14D3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH32 0x6765740000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x1146 SWAP1 DUP3 SWAP1 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x14FE AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP2 MSTORE PUSH32 0x7061746800000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x118C SWAP1 DUP3 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x14FE AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x74696D6573000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x11D3 SWAP1 DUP3 SWAP1 PUSH1 0x64 PUSH4 0xFFFFFFFF PUSH2 0x152D AND JUMP JUMPDEST PUSH2 0x11E0 DUP7 DUP3 PUSH1 0x8 SLOAD PUSH2 0x1557 JUMP JUMPDEST SWAP2 POP PUSH32 0x9B79DB1508864F538C7703D2267A0C858007EE5877C83D83AEC1B431E5ADD541 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1211 SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x122F JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1245 JUMPI INVALID JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP3 DUP2 LT ISZERO PUSH2 0x1233 JUMPI INVALID JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x1285 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x12BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x12C8 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1320 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x20B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1372 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1392 SWAP3 SWAP2 SWAP1 PUSH2 0x20C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C0 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 0x13E4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1405 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21F8 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH32 0xD8874104029B491BA57B1B4875BD4BA8D4A98BF0261E1FDFAC96DB44022F95F8 SWAP3 PUSH2 0x143B SWAP3 TIMESTAMP SWAP3 PUSH2 0x2246 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x17 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x146A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x14DB PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x14E3 PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x14F5 DUP2 DUP7 DUP7 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1726 AND JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1513 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1528 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1542 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1528 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x179E AND JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH13 0x1000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x15D3 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x15B4 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SLOAD PUSH1 0x60 DUP11 ADD MSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE DUP4 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND OR SWAP1 SSTORE SWAP3 MLOAD SWAP3 SWAP6 POP DUP6 SWAP5 POP PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP4 POP SWAP2 SWAP1 POP LOG2 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0x1681 DUP8 PUSH2 0x1800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16A2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x215E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16D0 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 0x16F4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1715 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21C8 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x172E PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x173E DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x18BD JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x178E DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x1528 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x19FA AND JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 SLT ISZERO PUSH2 0x17BE JUMPI PUSH2 0x17B9 DUP3 DUP3 PUSH2 0x1A14 JUMP JUMPDEST PUSH2 0x17FC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 SGT ISZERO PUSH2 0x17D8 JUMPI PUSH2 0x17B9 DUP3 DUP3 PUSH2 0x1A53 JUMP JUMPDEST PUSH1 0x0 DUP2 SLT PUSH2 0x17EC JUMPI PUSH2 0x17B9 DUP3 PUSH1 0x0 DUP4 PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x17FC DUP3 PUSH1 0x1 DUP4 PUSH1 0x0 NOT SUB PUSH2 0x18F7 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 DUP2 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP4 MLOAD SWAP2 SWAP6 PUSH32 0x4042994600000000000000000000000000000000000000000000000000000000 SWAP6 PUSH2 0x185A SWAP6 PUSH1 0x0 SWAP6 DUP7 SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x20E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18C5 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x20 DUP3 MOD ISZERO PUSH2 0x18DA JUMPI PUSH1 0x20 DUP3 MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0x1919 JUMPI PUSH2 0x1913 DUP4 PUSH1 0xFF DUP5 DUP2 AND PUSH1 0x20 MUL AND DUP4 OR PUSH2 0x1A7A JUMP JUMPDEST POP PUSH2 0x1528 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0x194D JUMPI PUSH2 0x193A DUP4 PUSH1 0x18 PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0x1982 JUMPI PUSH2 0x196F DUP4 PUSH1 0x19 PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x2 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0x19B9 JUMPI PUSH2 0x19A6 DUP4 PUSH1 0x1A PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x4 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x1528 JUMPI PUSH2 0x19E1 DUP4 PUSH1 0x1B PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x19F4 DUP4 DUP3 PUSH1 0x8 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1A02 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x171F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x1AAB JUMP JUMPDEST PUSH2 0x1A25 DUP3 PUSH1 0xC3 PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x17FC DUP3 DUP3 PUSH1 0x0 NOT SUB PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3F SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1B61 JUMP JUMPDEST PUSH2 0x1A64 DUP3 PUSH1 0xC2 PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x17FC DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3F SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH2 0x1A82 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x171F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x1A9A PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x1779 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x1AB3 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP6 GT ISZERO ISZERO ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 ADD MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1AF2 JUMPI PUSH2 0x1AF2 DUP9 PUSH2 0x1AEA DUP11 PUSH1 0x20 ADD MLOAD DUP11 DUP10 ADD PUSH2 0x1C17 JUMP JUMPDEST PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST DUP8 MLOAD DUP1 MLOAD DUP9 PUSH1 0x20 DUP4 ADD ADD SWAP5 POP DUP1 DUP10 DUP9 ADD GT ISZERO PUSH2 0x1B0E JUMPI DUP9 DUP8 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP9 ADD SWAP4 POP POP POP JUMPDEST PUSH1 0x20 DUP6 LT PUSH2 0x1B39 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x1F NOT SWAP1 SWAP5 ADD SWAP4 PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1B17 JUMP JUMPDEST POP MLOAD DUP2 MLOAD PUSH1 0x20 SWAP5 SWAP1 SWAP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x1B76 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD DUP4 LT PUSH2 0x1B92 JUMPI PUSH2 0x1B92 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0x1BAE JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1BC1 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x20 ADD MLOAD DUP6 DUP5 ADD GT ISZERO PUSH2 0x1BE0 JUMPI PUSH2 0x1BE0 DUP7 DUP7 DUP6 ADD PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1C0B JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP SWAP6 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x1C28 JUMPI POP DUP2 PUSH2 0x1233 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1C3A DUP4 DUP4 PUSH2 0x18BD JUMP JUMPDEST POP PUSH2 0x19F4 DUP4 DUP3 PUSH2 0x19FA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x1C75 PUSH2 0x1C7A JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 CALLDATALOAD PUSH2 0x2272 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x227E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 CALLDATALOAD PUSH2 0x2283 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x2283 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x22A8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1C92 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1C9E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D29 DUP6 DUP6 PUSH2 0x1CAA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D3A DUP6 DUP3 DUP7 ADD PUSH2 0x1CAA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1CAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1CB6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1D98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DA4 DUP9 DUP9 PUSH2 0x1CC2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1DB5 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1DC6 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1DD7 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1DE8 DUP9 DUP3 DUP10 ADD PUSH2 0x1CC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2272 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x227E JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2283 JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2286 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E2A DUP3 PUSH2 0x226E JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E3E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x22B7 JUMP JUMPDEST PUSH2 0x1E47 DUP2 PUSH2 0x22E3 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x28 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665722072656D61696E696E67204C494E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4B20746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x636C650000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH32 0x43616E206F6E6C7920636865636B207261696E66616C6C206F6E636520706572 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2064617900000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x31 DUP2 MSTORE PUSH32 0x436F6E74726163742068617320656E6465642C2063616E7420696E7465726163 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x74207769746820697420616E796D6F7265000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x4F6E6C7920496E737572616E63652070726F76696465722063616E20646F2074 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6869730000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x28 DUP2 MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2072657175657374000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1DF5 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x20D4 DUP3 DUP6 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x171F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x20F0 DUP3 DUP12 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x20FD PUSH1 0x20 DUP4 ADD DUP11 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x210A PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x2117 PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x2124 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x1E16 JUMP JUMPDEST PUSH2 0x2131 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x213E PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x2150 DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x216C DUP3 DUP7 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x2179 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x14F5 DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1E04 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1E0D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x171F DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1E54 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1EAA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1F00 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1F56 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1FAC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1FDC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x2032 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x2062 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x20D4 DUP3 DUP6 PUSH2 0x1E0D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x2254 DUP3 DUP7 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x2261 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x1779 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E0D JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22D2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x22BA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x19F4 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 JUMP STOP LOG2 PUSH6 0x627A7A723058 KECCAK256 0xae PUSH29 0x6B1BC3E9C37BD83CE7EF0D6EBC72EE71C196BD8A89B84FA508D5C11D3F BLOCKHASH PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY ",
"sourceMap": "5997:15237:0:-;;;;;;;;-1:-1:-1;;;5997:15237:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18734:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18734:98:0;;;;;;;;;;;;;;;;;;;;19990:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19990:106:0;;;;;;;;;;;;6595:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6595:37:0;;;;;;;;;18053:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18053:90:0;;;;19123:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19123:92:0;;;;6638:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6638:24:0;;;;;;;;;19319:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19319:120:0;;;;6668:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6668:25:0;;;;;;;;;6153:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6153:40:0;;;;17732:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17732:104:0;;;;1001:111:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:12;;;;18916:98:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18916:98:0;;;;238:20:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:12;;;;17267:389:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17267:389:0;;;;11616:1012;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11616:1012:0;;;;19504:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19504:84:0;;;;18547:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18547:92:0;;;;;;;;;;;;13604:1408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13604:1408:0;;;;;;;;;6265:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6265:48:0;;;;19842:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19842:74:0;;;;18362:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18362:96:0;;;;18209:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18209:82:0;;;;17898:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17898:90:0;;;;;;;;;;;;6436:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6436:22:0;;;;19655:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19655:94:0;;;;1274:103:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:12;;;;;;;;;18734:98:0;18810:15;;18734:98;:::o;19990:106::-;20040:7;20066:23;:21;:23::i;:::-;20059:30;;19990:106;:::o;6595:37::-;;;;;;;;;;;;;-1:-1:-1;6595:37:0;:::o;18053:90::-;18125:11;;18053:90;:::o;19123:92::-;19196:12;;19123:92;:::o;6638:24::-;;;;;;;;;19319:120;19406:26;;19319:120;:::o;6668:25::-;;;;;;;;;;;;-1:-1:-1;;;;;6668:25:0;;-1:-1:-1;6668:25:0;:::o;6153:40::-;6191:2;6153:40;:::o;17732:104::-;17816:4;17808:21;17732:104;:::o;1001:111:12:-;8191:7:0;;-1:-1:-1;;;;;8191:7:0;8202:10;8191:21;8183:68;;;;-1:-1:-1;;;;;8183:68:0;;;;;;;;;;;;;;;;;1077:5:12;;1058:25;;-1:-1:-1;;;;;1077:5:12;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:12;;;1001:111::o;18916:98:0:-;18992:15;;18916:98;:::o;238:20:12:-;;;-1:-1:-1;;;;;238:20:12;;:::o;17267:389:0:-;17486:9;;:27;;;;;;;;17314:3;;;;;;;;;;;;-1:-1:-1;;;;;17486:9:0;;;;:25;;:27;;;;;-1:-1:-1;;17486:27:0;;;;;;;;17314:3;17486:9;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;17486:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17486:27: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;17486:27:0;;;;;;;;;17329:184;;;;;;;;;;17603:1;17591:9;:13;17583:44;;;;;;-1:-1:-1;;;;;17583:44:0;;;;;;;;;-1:-1:-1;17644:5:0;;17267:389;-1:-1:-1;;;;17267:389:0:o;11616:1012::-;8641:14;;11677:17;;12122;;8641:14;;:22;;:14;:22;8633:84;;;;-1:-1:-1;;;;;8633:84:0;;;;;;;;;11844:18;:16;:18::i;:::-;11967:14;;;;11963:659;;;12016:1;11997:16;:20;12166:24;;;;;;;;;;;;;;;;;;;;;;;;12199;;;;;;;;;;;;;;;12149:123;;;;12166:24;;12199;12230:12;;12149:123;;;;;;;12166:24;12149:123;;12166:24;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;12149:123:0;;;;;;;;;;;;;;;;;;-1:-1:-1;12149:123:0;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12149:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12149:123:0;;;;;;26:21:-1;;;-1:-1;;22:32;6:49;;12149:123:0;;;;;;;-1:-1:-1;12287:68:0;;-1:-1:-1;12301:7:0;;-1:-1:-1;12309:1:0;;-1:-1:-1;12301:10:0;;-1:-1:-1;12301:10:0;;;;12313:6;:9;12329:25;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12301:10:0;;;;12324:3;;12287:13;:68::i;:::-;;12474:14;;;;;;;;;;;;;;;;;;;;;;;12498:12;12519:14;;;;;;;;;;;;;;;;;;12457:77;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12457:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12457:77:0;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12457:77:0;;;12444:91;;12549:58;12563:7;12571:1;12563:10;;;;;;;;;;;12575:9;;12591:15;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12563:10:0;;;;12586:3;;12549:13;:58::i;:::-;;11963:659;11616:1012;;:::o;19504:84::-;19573:8;;19504:84;:::o;18547:92::-;18620:12;;;;;;;;18547:92::o;13604:1408::-;8660:27:2;;;;:15;:27;;;;;;;;-1:-1:-1;;;;;8660:27:2;8646:10;:41;8638:94;;;;-1:-1:-1;;;;;8638:94:2;;;;;;;;;8745:27;;;;:15;:27;;;;;;8738:34;;-1:-1:-1;;8738:34:2;;;8783:30;8745:27;;8783:30;;;8641:14:0;;;;:22;;:14;:22;8633:84;;;;-1:-1:-1;;;;;8633:84:0;;;;;;;;;9040:42;9059:22;6191:2;9078;9059:22;:18;:22;:::i;:::-;6191:2;;9040:42;:18;:42;:::i;:::-;9009:26;;9001:35;;:3;;:35;:7;:35;:::i;:::-;:82;8993:130;;;;-1:-1:-1;;;;;8993:130:0;;;;;;;;;13954:9;13914:19;13934:16;;13914:37;;;;;;;;;;:49;13992:16;;;14011:1;13992:20;;;13973:39;;;;-1:-1:-1;14085:867:0;;;14169:22;;:19;14142:22;:57;;14197:1;;14142:50;;:26;:50::i;:::-;:54;:57;:54;:57;:::i;:::-;14123:15;:77;;;14241:3;14212:26;:32;14256:12;:16;;14271:1;14256:16;;;14425:20;14421:323;;;14524:15;:20;;14543:1;14524:20;;;14421:323;;;14671:1;14653:15;:19;14715:15;;14693:38;;;;;;;;;;;;;;;;14421:323;14767:15;;6312:1;-1:-1:-1;14763:180:0;;14914:16;:14;:16::i;:::-;14973:23;14986:9;14973:23;;;;;;;;;;;;;;;13604:1408;;;:::o;6265:48::-;6312:1;6265:48;:::o;19842:74::-;19906:3;19842:74;:::o;18362:96::-;18437:14;;;;18362:96;:::o;18209:82::-;18277:7;;18209:82;:::o;17898:90::-;17969:12;17962:19;;;;;;;;;;;;;-1:-1:-1;;17962:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;17944:6;;17962:19;;17969:12;;17962:19;;;17969:12;17962:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17898:90;:::o;6436:22::-;;;-1:-1:-1;;;;;6436:22:0;;:::o;19655:94::-;19733:9;;19655:94;:::o;1274:103:12:-;8191:7:0;;-1:-1:-1;;;;;8191:7:0;8202:10;8191:21;8183:68;;;;-1:-1:-1;;;;;8183:68:0;;;;;;;;;1343:29:12;1362:9;1343:18;:29::i;:::-;1274:103;:::o;5210:110:2:-;5310:4;;-1:-1:-1;;;;;5310:4:2;;5210:110::o;15959:1250:0:-;16833:23;8457:3;8446:8;;8434:9;;:20;:26;8430:58;;;16258:8;;16289:1;;16258:28;;6191:2;16258:28;:12;:28;:::i;:::-;:32;16241:12;;:50;;16237:513;;;16388:7;;:39;;-1:-1:-1;;;;;16388:7:0;;;;16413:4;16405:21;16388:39;;;;;:7;:39;:7;:39;16405:21;16388:7;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16388:39:0;16237:513;;;16634:6;;-1:-1:-1;;;;;16634:6:0;:52;16650:35;16667:16;:14;:16::i;:::-;16650:7;;;:35;:11;:35;:::i;:::-;16634:52;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;16700:7:0;;:39;;-1:-1:-1;;;;;16700:7:0;;;;16725:4;16717:21;16700:39;;;;;:7;:39;:7;:39;16717:21;16700:7;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16700:39:0;16237:513;16878:23;:21;:23::i;:::-;16934:7;;16943:29;;;;;16833:69;;-1:-1:-1;;;;;;16920:13:0;;;;;;16934:7;;;;;16920:13;;16943:14;;:29;;16966:4;;16943:29;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16943:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16943:29: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;16943:29:0;;;;;;;;;16920:53;;-1:-1:-1;;;16920:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16920:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16920: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;16920:53:0;;;;;;;;;16912:106;;;;;;-1:-1:-1;;;;;16912:106:0;;;;;;;;;17124:14;:22;;-1:-1:-1;;17124:22:0;;;17161:41;;;;;;17175:3;;17188:4;17180:21;;17161:41;;;;;;;;;;15959:1250;:::o;12713:622::-;12832:17;12927:28;;:::i;:::-;8641:14;;;;:22;;:14;:22;8633:84;;;;-1:-1:-1;;;;;8633:84:0;;;;;;;;;12958:81;12980:6;12996:4;13003:35;12958:21;:81::i;:::-;13061:20;;;;;;;;;;;;;;;;;12927:112;;-1:-1:-1;13061:20:0;;12927:112;;13076:4;13061:20;:7;:20;:::i;:::-;13129:22;;;;;;;;;;;;;;;;;;;:3;;13145:5;13129:22;:7;:22;:::i;:::-;13161:24;;;;;;;;;;;;;;;;;;;:3;;13181;13161:24;:10;:24;:::i;:::-;13216:57;13239:7;13248:3;13253:19;;13216:22;:57::i;:::-;13204:69;;13302:26;13318:9;13302:26;;;;;;;;;;;;;;;12713:622;;;;;;;:::o;674:283:13:-;734:7;950:2;945;:7;;;;;;;;938:14;;674:283;;;;;:::o;1069:116::-;1129:7;1151:8;;;;1144:16;;;;-1:-1:-1;1173:7:13;;;1069:116::o;1247:128::-;1328:7;;;1348;;;;1341:15;;;15134:692:0;8641:14;;15372:23;;8641:14;;:22;;:14;:22;8633:84;;;;-1:-1:-1;;;;;8633:84:0;;;;;;;;;15250:6;;:38;;-1:-1:-1;;;;;15250:6:0;;;;15274:4;15266:21;15250:38;;;;;:6;:38;:6;:38;15266:21;15250:6;:38;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15250:38:0;15417:23;:21;:23::i;:::-;15473:7;;15482:29;;;;;15372:69;;-1:-1:-1;;;;;;15459:13:0;;;;;;15473:7;;;;;15459:13;;15482:14;;:29;;15505:4;;15482:29;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15482:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15482:29: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;15482:29:0;;;;;;;;;15459:53;;-1:-1:-1;;;15459:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15459:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15459: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;15459:53:0;;;;;;;;;15451:84;;;;;;-1:-1:-1;;;;;15451:84:0;;;;;;;;;15580:11;;15593:15;;15559:50;;;;;;15575:3;;15559:50;;;;;;;;;;-1:-1:-1;15763:14:0;:22;;-1:-1:-1;;15795:19:0;15763:22;15795:19;;;15134:692::o;1512:171:12:-;-1:-1:-1;;;;;1582:23:12;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:12;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:12;-1:-1:-1;;;;;1661:17:12;;;;;;;;;;1512:171::o;1725:295:2:-;1873:17;;:::i;:::-;1905:28;;:::i;:::-;1946:69;:3;1961:7;1970:16;1988:26;1946:69;:14;:69;:::i;:::-;1939:76;1725:295;-1:-1:-1;;;;;1725:295:2:o;1958:155:1:-;2046:8;;;;:27;;2068:4;2046:27;:21;:27;:::i;:::-;2079:8;;;;:29;;2101:6;2079:29;:21;:29;:::i;:::-;1958:155;;;:::o;2683:::-;2774:8;;;;:27;;2796:4;2774:27;:21;:27;:::i;:::-;2807:8;;;;:26;;2826:6;2807:26;:18;:26;:::i;3001:476:2:-;3197:8;;3174:32;;;;3191:4;3174:32;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3174:32:2;;;;;;;;3164:43;;3125:17;;3174:32;;;;3164:43;;;;;3174:32;3164:43;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;3164:43:2;;;;;;;;;;;;;3226:8;;3213:10;;;:21;-1:-1:-1;3240:26:2;;;:15;:26;;;;;;:36;;-1:-1:-1;;3240:36:2;-1:-1:-1;;;;;3240:36:2;;;;;3287:29;;3164:43;;-1:-1:-1;3164:43:2;;-1:-1:-1;3287:29:2;;-1:-1:-1;;3287:29:2;-1:-1:-1;3287:29:2;3330:4;;-1:-1:-1;;;;;3330:4:2;:20;3351:7;3360:8;3370:19;3384:4;3370:13;:19::i;:::-;3330:60;;-1:-1:-1;;;3330:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3330:60:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3330:60:2;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3330:60:2;;;;;;;;;3322:108;;;;;;-1:-1:-1;;;;;3322:108:2;;;;;;;;;3436:8;:13;;3448:1;3436:13;;;3001:476;;;;;;:::o;972:366:1:-;1121:17;;:::i;:::-;1153:50;1175:4;:8;;;336:3;1153:21;:50::i;:::-;-1:-1:-1;;1209:13:1;;;-1:-1:-1;;;;;1228:39:1;;:20;;;:39;-1:-1:-1;;1273:43:1;;:23;;;:43;1209:13;972:366;;;;;;;:::o;2833:198:10:-;2935:55;2946:3;396:1;2976:5;2970:19;2935:10;:55::i;:::-;3000:24;:3;3017:5;3000:24;:10;:24;:::i;1742:448::-;-1:-1:-1;;1834:28:10;;1831:353;;;1878:30;1897:3;1902:5;1878:18;:30::i;:::-;1831:353;;;1936:18;1928:5;:26;1925:259;;;1970:24;1983:3;1988:5;1970:12;:24::i;1925:259::-;2023:1;2014:10;;2011:173;;2040:44;2051:3;241:1;2077:5;2040:10;:44::i;2011:173::-;2115:58;2126:3;297:1;2166:5;-1:-1:-1;;2161:10:10;2115;:58::i;:::-;1742:448;;:::o;7481:527:2:-;7878:7;;7893:20;;;;7921:23;;;;;7569:5;7952:10;;;;7990:8;;;;:12;7598:405;;7569:5;;7628:29;;7598:405;;7628:6;;;;7878:7;;7893:20;;7921:23;;7952:10;7628:6;;7598:405;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;7598:405:2;;;49:4:-1;25:18;;61:17;;7598:405:2;182:15:-1;-1:-1;;7598:405:2;;;179:29:-1;;;;160:49;;;7598:405:2;-1:-1:-1;7481:527:2;;;:::o;942:395:9:-;1012:6;;:::i;:::-;1048:2;1037:8;:13;:18;1033:71;;1094:2;1083:8;:13;1077:2;:20;1065:32;;;;1033:71;-1:-1:-1;1151:12:9;;;;:23;;;1214:4;1208:11;;1226:16;;;-1:-1:-1;1249:14:9;;1291:18;;;1283:27;1270:41;;1151:12;942:395::o;709:724:10:-;824:2;815:11;;812:615;;842:44;:3;865:10;;;;;;864:20;;;842:15;:44::i;:::-;;812:615;;;915:4;906:13;;903:524;;935:41;:3;972:2;958:10;;;;;957:17;935:41;:15;:41;:::i;:::-;-1:-1:-1;990:23:10;:3;1004:5;1011:1;990:23;:13;:23;:::i;903:524::-;1042:6;1033:15;;1030:397;;1064:41;:3;1101:2;1087:10;;;;;1086:17;1064:41;:15;:41;:::i;:::-;-1:-1:-1;1119:23:10;:3;1133:5;1140:1;1119:23;:13;:23;:::i;1030:397::-;1171:10;1162:19;;1159:268;;1197:41;:3;1234:2;1220:10;;;;;1219:17;1197:41;:15;:41;:::i;:::-;-1:-1:-1;1252:23:10;:3;1266:5;1273:1;1252:23;:13;:23;:::i;1159:268::-;1304:18;1295:27;;1292:135;;1338:41;:3;1375:2;1361:10;;;;;1360:17;1338:41;:15;:41;:::i;:::-;-1:-1:-1;1393:23:10;:3;1407:5;1414:1;1393:23;:13;:23;:::i;:::-;;709:724;;;:::o;4496:155:9:-;4573:6;;:::i;:::-;4601:45;4607:3;4612;:7;;;:14;4628:4;4634;:11;4601:5;:45::i;2598:229:10:-;2694:72;:3;2716:48;2694:72;:15;:72;:::i;:::-;;2774:46;2786:3;2812:5;-1:-1:-1;;2807:10:10;2791:28;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2791:28:10;;;2774:11;:46::i;2383:209::-;2473:63;:3;2495:39;2473:63;:15;:63;:::i;:::-;;2544:41;2556:3;2577:5;2561:23;;;;;;;;;5811:144:9;5885:6;;:::i;:::-;5913:37;5924:3;5929;:7;;;:14;5945:4;5913:10;:37::i;9497:154::-;9578:6;;:::i;:::-;9606:40;9615:3;9620;:7;;;:14;9636:4;9642:3;9606:8;:40::i;2651:1140::-;2746:6;;:::i;:::-;2897:9;2912:8;3580:9;2782:4;:11;2775:3;:18;;2767:27;;;;;;;;2817:3;:12;;;2811:3;2805;:9;:24;2801:90;;;2839:45;2846:3;2851:28;2855:3;:12;;;2875:3;2869;:9;2851:3;:28::i;:::-;2882:1;2851:32;2839:6;:45::i;:::-;3006:3;3000:10;3077:6;3071:13;3193:3;3188:2;3180:6;3176:15;3172:25;3164:33;;3277:6;3271:3;3266;3262:13;3259:25;3256:2;;;3319:3;3314;3310:13;3302:6;3295:29;3256:2;3356;3350:4;3346:13;3339:20;;2935:430;;3417:129;3431:2;3424:9;;3417:129;;3486:10;;3473:24;;-1:-1:-1;;3435:9:9;;;;3520:2;3512:10;;;;3530:9;;;;3417:129;;;-1:-1:-1;3655:10:9;3704:11;;3600:2;:8;;;;3592:3;:17;-1:-1:-1;;3592:21:9;3667:9;;3651:26;;;3700:22;;3742:21;;;;3729:35;;;-1:-1:-1;3783:3:9;;;-1:-1:-1;;2651:1140:9:o;2196:181:10:-;2296:47;2307:3;346:1;2330:5;:12;2296:10;:47::i;4945:619:9:-;5028:6;;:::i;:::-;5060:12;;;;5053:19;;5049:69;;5082:29;5089:3;5094;:12;;;5109:1;5094:16;5082:6;:29::i;:::-;5204:3;5198:10;5275:6;5269:13;5387:2;5381:3;5373:6;5369:16;5365:25;5411:4;5405;5397:19;5482:6;5477:3;5474:15;5471:2;;;5527:1;5519:6;5515:14;5507:6;5500:30;5471:2;-1:-1:-1;5556:3:9;;4945:619;-1:-1:-1;;;;;4945:619:9:o;8610:642::-;8699:6;;:::i;:::-;8799:9;8736:3;:12;;;8730:3;8724;:9;:24;8720:73;;;8758:28;8765:3;8777;8771;:9;8784:1;8770:15;8758:6;:28::i;:::-;8824:1;8818:3;8811;:10;:14;8799:26;;8911:3;8905:10;9026:3;9020;9012:6;9008:16;9004:26;9082:4;9074;9070:9;9063:4;9057:11;9053:27;9050:37;9044:4;9037:51;9170:6;9164:13;9158:3;9153;9149:13;9146:32;9143:2;;;9213:3;9208;9204:13;9196:6;9189:29;9143:2;-1:-1:-1;9244:3:9;;8610:642;-1:-1:-1;;;;;;8610:642:9:o;1889:114::-;1939:4;1959:1;1955;:5;1951:34;;;-1:-1:-1;1977:1:9;1970:8;;1951:34;-1:-1:-1;1997:1:9;1889:114;-1:-1:-1;1889:114:9:o;1732:153::-;1823:7;;1836:19;1823:3;1846:8;1836:4;:19::i;:::-;;1861;1868:3;1873:6;1861;:19::i;5997:15237:0:-;;;;;;;;;-1:-1:-1;5997:15237:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;5997:15237:0;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:116;;205:36;233:6;227:13;205:36;;253:118;;320:46;358:6;345:20;320:46;;378:120;;455:38;485:6;479:13;455:38;;759:120;;836:38;866:6;860:13;836:38;;886:241;;990:2;978:9;969:7;965:23;961:32;958:2;;;1006:1;1003;996:12;958:2;1041:1;1058:53;1103:7;1083:9;1058:53;;1134:257;;1246:2;1234:9;1225:7;1221:23;1217:32;1214:2;;;1262:1;1259;1252:12;1214:2;1297:1;1314:61;1367:7;1347:9;1314:61;;1398:366;;;1519:2;1507:9;1498:7;1494:23;1490:32;1487:2;;;1535:1;1532;1525:12;1487:2;1570:1;1587:53;1632:7;1612:9;1587:53;;;1577:63;;1549:97;1677:2;1695:53;1740:7;1731:6;1720:9;1716:22;1695:53;;;1685:63;;1656:98;1481:283;;;;;;1771:241;;1875:2;1863:9;1854:7;1850:23;1846:32;1843:2;;;1891:1;1888;1881:12;1843:2;1926:1;1943:53;1988:7;1968:9;1943:53;;2019:263;;2134:2;2122:9;2113:7;2109:23;2105:32;2102:2;;;2150:1;2147;2140:12;2102:2;2185:1;2202:64;2258:7;2238:9;2202:64;;2289:803;;;;;;2469:3;2457:9;2448:7;2444:23;2440:33;2437:2;;;2486:1;2483;2476:12;2437:2;2521:1;2538:63;2593:7;2573:9;2538:63;;;2528:73;;2500:107;2638:2;2656:63;2711:7;2702:6;2691:9;2687:22;2656:63;;;2646:73;;2617:108;2756:2;2774:64;2830:7;2821:6;2810:9;2806:22;2774:64;;;2764:74;;2735:109;2875:2;2893:64;2949:7;2940:6;2929:9;2925:22;2893:64;;;2883:74;;2854:109;2994:3;3013:63;3068:7;3059:6;3048:9;3044:22;3013:63;;;3003:73;;2973:109;2431:661;;;;;;;;;3099:110;3172:31;3197:5;3172:31;;;3167:3;3160:44;3154:55;;;3216:101;3283:28;3305:5;3283:28;;3324:110;3397:31;3422:5;3397:31;;3441:107;3512:30;3536:5;3512:30;;3555:297;;3655:38;3687:5;3655:38;;;3710:6;3705:3;3698:19;3722:63;3778:6;3771:4;3766:3;3762:14;3755:4;3748:5;3744:16;3722:63;;;3817:29;3839:6;3817:29;;;3797:50;;;3810:4;3797:50;;3635:217;-1:-1;;;3635:217;4577:397;4732:2;4720:15;;4769:66;4764:2;4755:12;;4748:88;4870:66;4865:2;4856:12;;4849:88;4965:2;4956:12;;4713:261;4983:397;5138:2;5126:15;;5175:66;5170:2;5161:12;;5154:88;5276:66;5271:2;5262:12;;5255:88;5371:2;5362:12;;5119:261;5389:397;5544:2;5532:15;;5581:66;5576:2;5567:12;;5560:88;5682:66;5677:2;5668:12;;5661:88;5777:2;5768:12;;5525:261;5795:397;5950:2;5938:15;;5987:66;5982:2;5973:12;;5966:88;6088:66;6083:2;6074:12;;6067:88;6183:2;6174:12;;5931:261;6201:296;6356:2;6344:15;;6393:66;6388:2;6379:12;;6372:88;6488:2;6479:12;;6337:160;6506:397;6661:2;6649:15;;6698:66;6693:2;6684:12;;6677:88;6799:66;6794:2;6785:12;;6778:88;6894:2;6885:12;;6642:261;6912:296;7067:2;7055:15;;7104:66;7099:2;7090:12;;7083:88;7199:2;7190:12;;7048:160;7217:397;7372:2;7360:15;;7409:66;7404:2;7395:12;;7388:88;7510:66;7505:2;7496:12;;7489:88;7605:2;7596:12;;7353:261;7739:193;7847:2;7832:18;;7861:61;7836:9;7895:6;7861:61;;7939:294;8075:2;8060:18;;8089:61;8064:9;8123:6;8089:61;;;8161:62;8219:2;8208:9;8204:18;8195:6;8161:62;;8240:977;8556:3;8541:19;;8571:61;8545:9;8605:6;8571:61;;;8643:62;8701:2;8690:9;8686:18;8677:6;8643:62;;;8716;8774:2;8763:9;8759:18;8750:6;8716:62;;;8789;8847:2;8836:9;8832:18;8823:6;8789:62;;;8862:61;8918:3;8907:9;8903:19;8894:6;8862:61;;;8934:63;8992:3;8981:9;8977:19;8968:6;8934:63;;;9008;9066:3;9055:9;9051:19;9042:6;9008:63;;;9120:9;9114:4;9110:20;9104:3;9093:9;9089:19;9082:49;9145:62;9202:4;9193:6;9145:62;;;9137:70;8527:690;-1:-1;;;;;;;;;;8527:690;9224:479;9406:2;9391:18;;9420:61;9395:9;9454:6;9420:61;;;9492:62;9550:2;9539:9;9535:18;9526:6;9492:62;;;9602:9;9596:4;9592:20;9587:2;9576:9;9572:18;9565:48;9627:66;9688:4;9679:6;9627:66;;9710:181;9812:2;9797:18;;9826:55;9801:9;9854:6;9826:55;;9898:193;10006:2;9991:18;;10020:61;9995:9;10054:6;10020:61;;10294:281;10422:2;10436:47;;;10407:18;;10497:68;10407:18;10551:6;10497:68;;10582:387;10763:2;10777:47;;;10748:18;;10838:121;10748:18;10838:121;;10976:387;11157:2;11171:47;;;11142:18;;11232:121;11142:18;11232:121;;11370:387;11551:2;11565:47;;;11536:18;;11626:121;11536:18;11626:121;;11764:387;11945:2;11959:47;;;11930:18;;12020:121;11930:18;12020:121;;12158:387;12339:2;12353:47;;;12324:18;;12414:121;12324:18;12414:121;;12552:387;12733:2;12747:47;;;12718:18;;12808:121;12718:18;12808:121;;12946:387;13127:2;13141:47;;;13112:18;;13202:121;13112:18;13202:121;;13340:387;13521:2;13535:47;;;13506:18;;13596:121;13506:18;13596:121;;13934:294;14070:2;14055:18;;14084:61;14059:9;14118:6;14084:61;;14235:395;14399:2;14384:18;;14413:61;14388:9;14447:6;14413:61;;;14485:62;14543:2;14532:9;14528:18;14519:6;14485:62;;;14558;14616:2;14605:9;14601:18;14592:6;14558:62;;14637:87;14707:12;;14691:33;14928:128;-1:-1;;;;;14997:54;;14980:76;15063:92;15136:13;15129:21;;15112:43;15162:79;15231:5;15214:27;15248:151;-1:-1;;15316:78;;15299:100;16068:107;16147:22;16136:34;;16119:56;16183:268;16248:1;16255:101;16269:6;16266:1;16263:13;16255:101;;;16336:11;;;16330:18;16317:11;;;16310:39;16291:2;16284:10;16255:101;;;16371:6;16368:1;16365:13;16362:2;;;-1:-1;;16436:1;16418:16;;16411:27;16232:219;16459:97;16547:2;16527:14;-1:-1;;16523:28;;16507:49"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "1799800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"": "695",
"DAY_IN_SECONDS()": "524",
"DROUGHT_DAYS_THRESDHOLD()": "744",
"checkRainfallCallBack(bytes32,uint256)": "infinite",
"currentRainfallList(uint256)": "infinite",
"getChainlinkToken()": "755",
"getContractBalance()": "945",
"getContractPaid()": "923",
"getContractStartDate()": "1076",
"getContractStatus()": "1000",
"getCurrentRainfall()": "548",
"getCurrentRainfallDateChecked()": "680",
"getDaysWithoutRain()": "790",
"getDuration()": "878",
"getLatestPrice()": "infinite",
"getLocation()": "infinite",
"getNow()": "765",
"getPayoutValue()": "614",
"getPremium()": "1010",
"getRequestCount()": "636",
"insurer()": "1204",
"jobIds(uint256)": "infinite",
"oracles(uint256)": "1045",
"owner()": "962",
"renounceOwnership()": "22358",
"transferOwnership(address)": "23526",
"updateContract()": "infinite"
},
"internal": {
"checkEndContract()": "infinite",
"checkRainfall(address,bytes32,string memory,string memory)": "infinite",
"payOutContract()": "infinite",
"stringToBytes32(string memory)": "infinite",
"uint2str(uint256)": "infinite"
}
},
"methodIdentifiers": {
"DAY_IN_SECONDS()": "5fdc6281",
"DROUGHT_DAYS_THRESDHOLD()": "b8078732",
"checkRainfallCallBack(bytes32,uint256)": "b1b91f7a",
"currentRainfallList(uint256)": "185e5b40",
"getChainlinkToken()": "165d35e1",
"getContractBalance()": "6f9fb98a",
"getContractPaid()": "b0b30fee",
"getContractStartDate()": "dcbacd11",
"getContractStatus()": "c032846b",
"getCurrentRainfall()": "0c15c365",
"getCurrentRainfallDateChecked()": "56a6d508",
"getDaysWithoutRain()": "7a50413d",
"getDuration()": "ad2e8c9b",
"getLatestPrice()": "8e15f473",
"getLocation()": "ce2ce3fc",
"getNow()": "bbe4fd50",
"getPayoutValue()": "243d9a5d",
"getPremium()": "c9744029",
"getRequestCount()": "3fad1834",
"insurer()": "dbc837c5",
"jobIds(uint256)": "4162cc88",
"oracles(uint256)": "5b69a7d8",
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"transferOwnership(address)": "f2fde38b",
"updateContract()": "a241c089"
}
},
"abi": [
{
"constant": true,
"inputs": [],
"name": "getCurrentRainfall",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getChainlinkToken",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "currentRainfallList",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getPayoutValue",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getRequestCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "jobIds",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCurrentRainfallDateChecked",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "oracles",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "DAY_IN_SECONDS",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractBalance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getDaysWithoutRain",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "updateContract",
"outputs": [
{
"name": "requestId",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getDuration",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractPaid",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_requestId",
"type": "bytes32"
},
{
"name": "_rainfall",
"type": "uint256"
}
],
"name": "checkRainfallCallBack",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "DROUGHT_DAYS_THRESDHOLD",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getNow",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractStatus",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getPremium",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getLocation",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "insurer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractStartDate",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "_client",
"type": "address"
},
{
"name": "_duration",
"type": "uint256"
},
{
"name": "_premium",
"type": "uint256"
},
{
"name": "_payoutValue",
"type": "uint256"
},
{
"name": "_cropLocation",
"type": "string"
},
{
"name": "_link",
"type": "address"
},
{
"name": "_oraclePaymentAmount",
"type": "uint256"
}
],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_insurer",
"type": "address"
},
{
"indexed": false,
"name": "_client",
"type": "address"
},
{
"indexed": false,
"name": "_duration",
"type": "uint256"
},
{
"indexed": false,
"name": "_premium",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalCover",
"type": "uint256"
}
],
"name": "contractCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_paidTime",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalPaid",
"type": "uint256"
},
{
"indexed": false,
"name": "_finalRainfall",
"type": "uint256"
}
],
"name": "contractPaidOut",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_endTime",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalReturned",
"type": "uint256"
}
],
"name": "contractEnded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_rainfall",
"type": "uint256"
}
],
"name": "ranfallThresholdReset",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "requestId",
"type": "bytes32"
}
],
"name": "dataRequestSent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_rainfall",
"type": "uint256"
}
],
"name": "dataReceived",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
}
],
"name": "OwnershipRenounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
}
]
}
{
"compiler": {
"version": "0.4.24+commit.e67f0147"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "getCurrentRainfall",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getChainlinkToken",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "currentRainfallList",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getPayoutValue",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getRequestCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "jobIds",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCurrentRainfallDateChecked",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "oracles",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "DAY_IN_SECONDS",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractBalance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getDaysWithoutRain",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "updateContract",
"outputs": [
{
"name": "requestId",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getDuration",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractPaid",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_requestId",
"type": "bytes32"
},
{
"name": "_rainfall",
"type": "uint256"
}
],
"name": "checkRainfallCallBack",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "DROUGHT_DAYS_THRESDHOLD",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getNow",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractStatus",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getPremium",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getLocation",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "insurer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractStartDate",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"name": "_client",
"type": "address"
},
{
"name": "_duration",
"type": "uint256"
},
{
"name": "_premium",
"type": "uint256"
},
{
"name": "_payoutValue",
"type": "uint256"
},
{
"name": "_cropLocation",
"type": "string"
},
{
"name": "_link",
"type": "address"
},
{
"name": "_oraclePaymentAmount",
"type": "uint256"
}
],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_insurer",
"type": "address"
},
{
"indexed": false,
"name": "_client",
"type": "address"
},
{
"indexed": false,
"name": "_duration",
"type": "uint256"
},
{
"indexed": false,
"name": "_premium",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalCover",
"type": "uint256"
}
],
"name": "contractCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_paidTime",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalPaid",
"type": "uint256"
},
{
"indexed": false,
"name": "_finalRainfall",
"type": "uint256"
}
],
"name": "contractPaidOut",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_endTime",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalReturned",
"type": "uint256"
}
],
"name": "contractEnded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_rainfall",
"type": "uint256"
}
],
"name": "ranfallThresholdReset",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "requestId",
"type": "bytes32"
}
],
"name": "dataRequestSent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_rainfall",
"type": "uint256"
}
],
"name": "dataReceived",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
}
],
"name": "OwnershipRenounced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
}
],
"devdoc": {
"methods": {
"checkRainfallCallBack(bytes32,uint256)": {
"details": "Callback function - This gets called by the Oracle Contract when the Oracle Node passes data back to the Oracle Contract The function will take the rainfall given by the Oracle and updated the Inusrance Contract state"
},
"getChainlinkToken()": {
"details": "Get address of the chainlink token"
},
"getContractBalance()": {
"details": "Get the balance of the contract"
},
"getContractPaid()": {
"details": "Get whether the contract has been paid out or not"
},
"getContractStartDate()": {
"details": "Get the contract start date"
},
"getContractStatus()": {
"details": "Get the status of the contract"
},
"getCurrentRainfall()": {
"details": "Get the current recorded rainfall for the contract"
},
"getCurrentRainfallDateChecked()": {
"details": "Get the last time that the rainfall was checked for the contract"
},
"getDaysWithoutRain()": {
"details": "Get the recorded number of days without rain"
},
"getDuration()": {
"details": "Get the contract duration"
},
"getLocation()": {
"details": "Get the Crop Location"
},
"getNow()": {
"details": "Get the current date/time according to the blockchain"
},
"getPayoutValue()": {
"details": "Get the Total Cover"
},
"getPremium()": {
"details": "Get the Premium paid"
},
"getRequestCount()": {
"details": "Get the count of requests that has occured for the Insurance Contract"
},
"renounceOwnership()": {
"details": "Allows the current owner to relinquish control of the contract."
},
"transferOwnership(address)": {
"details": "Allows the current owner to transfer control of the contract to a newOwner.",
"params": {
"_newOwner": "The address to transfer ownership to."
}
},
"updateContract()": {
"details": "Calls out to an Oracle to obtain weather data"
}
}
},
"userdoc": {
"methods": {
"getLatestPrice()": {
"notice": "Returns the latest price"
},
"renounceOwnership()": {
"notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore."
}
}
}
},
"settings": {
"compilationTarget": {
"79cf8c59f1fbf6e6a0327920c9a9c49a/Parametric-Crop-Insurance.sol": "InsuranceContract"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"79cf8c59f1fbf6e6a0327920c9a9c49a/Parametric-Crop-Insurance.sol": {
"keccak256": "0x69a7f1ba4320036e9ec8d803ef7386fa0e9c2a28fd65eab0600ff1da0ae56d35",
"urls": [
"bzzr://df8956114b97ca4384c8d51110c4518189f561f1cbc9885cab289db60c69907f"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/Chainlink.sol": {
"keccak256": "0x3e8d01f8aead4e1eac6b3332d366ed8bc2ef5d889c2c8c344777b981d4071f63",
"urls": [
"bzzr://7be4bdda81bc444446593968124112fb399d460f529d80761e50c47874b9cb4f"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/ChainlinkClient.sol": {
"keccak256": "0xc36504687b2b37000d8e6e25830cdb613c3e88509b0253aa09220e18876dc380",
"urls": [
"bzzr://a678a44b26b199a1600d422f4f6eda5d805f00a360245037a1c465b48274fe6d"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/AggregatorInterface.sol": {
"keccak256": "0xb21fa756e241d3fbfe7546158a7e1bb4a98f261744751c4e9dfe5f474ea46338",
"urls": [
"bzzr://acb860d28a70616f38d2d7d72ce5c82a2221734deefe67ace468112e92679bf7"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/AggregatorV3Interface.sol": {
"keccak256": "0xbf26d0dca0e2815b7c0bd09bddc9ceca339b8c9c2319ca74b2555273f5cbc19c",
"urls": [
"bzzr://2fcac254d89fbaf4c08461c7d7eb787e9143c7945683cb368119829e532db63d"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/ChainlinkRequestInterface.sol": {
"keccak256": "0x7d3983584065248fba8f0ce75fd86feac43ade43784466f87ea502254ddec992",
"urls": [
"bzzr://30de07df8cb9fb4ec53aff0f115f88d65936ffd6e90d2aeb031a05d6bf4de6c1"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/ENSInterface.sol": {
"keccak256": "0xd0b1a6134b5d6c0213bc4db5df8693ec41e13de3d97d43cc8d19639e516f9767",
"urls": [
"bzzr://93d66e26b4b5cf6cfa8c6a5d04cb56ff27d49a2aee8f54858ac3db7658355b1f"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/LinkTokenInterface.sol": {
"keccak256": "0x37f31fbd4f4f28ba236cbd9a61ae9b6f7806ea7fe0a684a855e4835f808f8b92",
"urls": [
"bzzr://5518135de15ba1afd8bdac829875935dea5520b152d1f602cdc34551d3c0b806"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/PointerInterface.sol": {
"keccak256": "0x8019f30a207af4ee80a8b2774e42aba721641254ed0a97826a54f33d7caef218",
"urls": [
"bzzr://8ddbb9ae67ec27aed40d6013d6ea176c05f7cd61d4f6fa95492a03fa086d90af"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/Buffer.sol": {
"keccak256": "0x900b4c8ab35b4876d89835a8b050c96107ace250a70f64c5bba6a78a60f03883",
"urls": [
"bzzr://408340da4e8fa35e608196ee508f11f9d44f6f70a10f0db0083ab20b5a894d59"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/CBOR.sol": {
"keccak256": "0x93faa5cd4bb12e81f73ee0edd3c1fe4fa6dbb0a0a7ab550e46b3c3d845268c9d",
"urls": [
"bzzr://c7f8bd088823a62b35a8138d5b2ff380d0527a030121a226c2a47559ea7d3679"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/ENSResolver.sol": {
"keccak256": "0x08965df63f00cb8d164d6fc36a0c388740725906b0bfb79b17391d5dfeabf683",
"urls": [
"bzzr://0700cb12e032ed8ed8327e446dfd805ae9fa28785a2909a73def511fe374b8cd"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/Ownable.sol": {
"keccak256": "0x84c7090c27cf3657b73d9e26b6b316975fa0bd233b8169f254de0c3b3acfaefc",
"urls": [
"bzzr://b983355647976c1daa5de581a1b6a41be9c5adc17cce257b8679649db78f8a11"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/SafeMathChainlink.sol": {
"keccak256": "0xb822782dea15f1fa4992c27639e9f9e4a4758b2c2fd8b12ec90c4de336de9074",
"urls": [
"bzzr://1328bb1e33d56d48209e5bbea79fa18b212e8df3f449ac9a75d20962cc36cce5"
]
}
},
"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": "608060405260008054600160a060020a0319908116331790915560018054909116739326bfa02add2366b30bacb125260af641031331179055613a59806100476000396000f300608060405260043610620000b95763ffffffff60e060020a6000350416630ad1c2fa8114620000bb578063125716d614620000f85780635d0c1476146200012c5780635fdc628114620001535780636896c870146200017a5780636f9fb98a146200019f57806371f2864014620001b75780637c463db014620001dc5780638e15f47314620001f4578063a1219c42146200020c578063dbc837c51462000216578063dfdf79e8146200022e578063e3db17b81462000245575b005b348015620000c857600080fd5b50620000e0620000da36600462000a7e565b6200026a565b604051620000ef919062000e23565b60405180910390f35b3480156200010557600080fd5b506200011d6200011736600462000a7e565b62000288565b604051620000ef919062000e13565b3480156200013957600080fd5b50620001446200030f565b604051620000ef919062000d39565b3480156200016057600080fd5b506200016b6200031e565b604051620000ef919062000e33565b3480156200018757600080fd5b506200016b6200019936600462000a7e565b62000323565b348015620001ac57600080fd5b506200016b620003a3565b348015620001c457600080fd5b506200016b620001d636600462000a7e565b620003a8565b348015620001e957600080fd5b5062000144620003ed565b3480156200020157600080fd5b506200016b62000405565b620000b9620004e2565b3480156200022357600080fd5b506200014462000672565b620001446200023f36600462000ac8565b62000681565b3480156200025257600080fd5b50620000b96200026436600462000a7e565b620008f4565b600160a060020a039081166000908152600260205260409020541690565b60008082905080600160a060020a031663c032846b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620002cd57600080fd5b505af1158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000308919081019062000b61565b9392505050565b600054600160a060020a031690565b603c81565b60008082905080600160a060020a0316633fad18346040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200036857600080fd5b505af11580156200037d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000308919081019062000b82565b303190565b60008082905080600160a060020a0316630c15c3656040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200036857600080fd5b73a36085f69e2889c224210f603d836748e7dc008881565b600080600080600080600160009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1580156200046257600080fd5b505af115801562000477573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200049d919081019062000ba3565b94509450945094509450600082111515620004d85760405160e560020a62461bcd028152600401620004cf9062000e67565b60405180910390fd5b5091949350505050565b60008054600160a060020a03163314620005135760405160e560020a62461bcd028152600401620004cf9062000e55565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273a36085f69e2889c224210f603d836748e7dc008890819063a9059cbb90339083906370a08231906200057290309060040162000d39565b602060405180830381600087803b1580156200058d57600080fd5b505af1158015620005a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620005c8919081019062000b82565b6040518363ffffffff1660e060020a028152600401620005ea92919062000d49565b602060405180830381600087803b1580156200060557600080fd5b505af11580156200061a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000640919081019062000b61565b1515620006645760405160e560020a62461bcd028152600401620004cf9062000e43565b600054600160a060020a0316ff5b600054600160a060020a031681565b6000805481908190600160a060020a03163314620006b65760405160e560020a62461bcd028152600401620004cf9062000e55565b620006dc620006c462000405565b670de0b6b3a764000087029063ffffffff6200097816565b888888888873a36085f69e2889c224210f603d836748e7dc008867016345785d8a000062000709620009bd565b6200071b979695949392919062000d96565b6040518091039082f08015801562000737573d6000803e3d6000fd5b50600160a060020a03811660008181526002602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916909217909155519093507fa44aa7756c3391a11525eeee40213754bf3aee2a051d2597433fb40572a47d769150620007a99084903490899062000d68565b60405180910390a181600160a060020a031663165d35e16040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620007f057600080fd5b505af115801562000805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200082b919081019062000aa7565b9050600160a060020a03811663a9059cbb836200085867016345785d8a0000600263ffffffff6200099016565b6200086b8b603c63ffffffff6200097816565b600201026040518363ffffffff1660e060020a0281526004016200089192919062000d49565b602060405180830381600087803b158015620008ac57600080fd5b505af1158015620008c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620008e7919081019062000b61565b5090979650505050505050565b600081905080600160a060020a031663a241c0896040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200093857600080fd5b505af11580156200094d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000973919081019062000b82565b505050565b600081838115156200098657fe5b0490505b92915050565b6000821515620009a3575060006200098a565b50818102818382811515620009b457fe5b04146200098a57fe5b604051612ad88062000f4883390190565b600062000308823562000ece565b600062000308825162000ece565b600062000308825162000eda565b600062000308825162000edf565b6000601f8201831362000a1857600080fd5b813562000a2f62000a298262000ea1565b62000e79565b9150808252602083016020830185838301111562000a4c57600080fd5b62000a5983828462000efe565b50505092915050565b600062000308823562000edf565b600062000308825162000ee2565b60006020828403121562000a9157600080fd5b600062000a9f8484620009ce565b949350505050565b60006020828403121562000aba57600080fd5b600062000a9f8484620009dc565b600080600080600060a0868803121562000ae157600080fd5b600062000aef8888620009ce565b955050602062000b028882890162000a62565b945050604062000b158882890162000a62565b935050606062000b288882890162000a62565b925050608086013567ffffffffffffffff81111562000b4657600080fd5b62000b548882890162000a06565b9150509295509295909350565b60006020828403121562000b7457600080fd5b600062000a9f8484620009ea565b60006020828403121562000b9557600080fd5b600062000a9f8484620009f8565b600080600080600060a0868803121562000bbc57600080fd5b600062000bca888862000a70565b955050602062000bdd88828901620009f8565b945050604062000bf088828901620009f8565b935050606062000c0388828901620009f8565b925050608062000b548882890162000a70565b62000c218162000ece565b82525050565b62000c218162000eda565b62000c218162000ef1565b62000c218162000edf565b600062000c558262000eca565b80845262000c6b81602086016020860162000f0a565b62000c768162000f3d565b9093016020019392505050565b601281527f556e61626c6520746f207472616e736665720000000000000000000000000000602082015260400190565b602381527f4f6e6c7920496e737572616e63652070726f76696465722063616e20646f207460208201527f6869730000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b602081016200098a828462000c16565b6040810162000d59828562000c16565b62000308602083018462000c3d565b6060810162000d78828662000c16565b62000d87602083018562000c3d565b62000a9f604083018462000c3d565b60e0810162000da6828a62000c16565b62000db5602083018962000c3d565b62000dc4604083018862000c3d565b62000dd3606083018762000c3d565b818103608083015262000de7818662000c48565b905062000df860a083018562000c16565b62000e0760c083018462000c3d565b98975050505050505050565b602081016200098a828462000c27565b602081016200098a828462000c32565b602081016200098a828462000c3d565b602080825281016200098a8162000c83565b602080825281016200098a8162000cb3565b602080825281016200098a8162000d09565b60405181810167ffffffffffffffff8111828210171562000e9957600080fd5b604052919050565b600067ffffffffffffffff82111562000eb957600080fd5b506020601f91909101601f19160190565b5190565b600160a060020a031690565b151590565b90565b69ffffffffffffffffffff1690565b60006200098a8262000ece565b82818337506000910152565b60005b8381101562000f2757818101518382015260200162000f0d565b8381111562000f37576000848401525b50505050565b601f01601f19169056006080604081905260016004556017805461ff00191690556000601881905542601955601a819055601b5562002ad83881900390819083398101806040526200004b9190810190620004a2565b60068054600160a060020a0319908116331790915560078054909116739326bfa02add2366b30bacb125260af641031331179055620000938264010000000062000234810204565b6008819055620000c5620000af64010000000062000256810204565b8590640100000000620012226200035a82021704565b3410156200010a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010190620006dd565b60405180910390fd5b6009805433600160a060020a031991821617909155600a8054909116600160a060020a03891617905542600b55600c869055600d859055600e84905560006016556017805460ff1916600117905582516200016d90600f90602086019062000370565b50601480547305c8fadf1798437c143683e665800d58a42b6e19600160a060020a031991821681179092556015805490911690911790557f61313765386662663463626634366565623739653034623365623836346134656012819055601355600954600a54600c54600d54600e546040517f0203790cae2ea31823a6382172bd46011fcfbab29b22bb78b4b2f266febf6072956200021f95600160a060020a03918216959116939092909162000687565b60405180910390a150505050505050620007a1565b60028054600160a060020a031916600160a060020a0392909216919091179055565b600080600080600080600760009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160a060405180830381600087803b158015620002cc57600080fd5b505af1158015620002e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000307919081019062000565565b9450945094509450945060008211151562000350576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010190620006f5565b5091949350505050565b600081838115156200036857fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003b357805160ff1916838001178555620003e3565b82800160010185558215620003e3579182015b82811115620003e3578251825591602001919060010190620003c6565b50620003f1929150620003f5565b5090565b6200041291905b80821115620003f15760008155600101620003fc565b90565b600062000423825162000756565b9392505050565b600062000423825162000412565b6000601f820183136200044a57600080fd5b8151620004616200045b826200072e565b62000707565b915080825260208301602083018583830111156200047e57600080fd5b6200048b8382846200076e565b50505092915050565b600062000423825162000762565b600080600080600080600060e0888a031215620004be57600080fd5b6000620004cc8a8a62000415565b9750506020620004df8a828b016200042a565b9650506040620004f28a828b016200042a565b9550506060620005058a828b016200042a565b94505060808801516001604060020a038111156200052257600080fd5b620005308a828b0162000438565b93505060a0620005438a828b0162000415565b92505060c0620005568a828b016200042a565b91505092959891949750929550565b600080600080600060a086880312156200057e57600080fd5b60006200058c888862000494565b95505060206200059f888289016200042a565b9450506040620005b2888289016200042a565b9350506060620005c5888289016200042a565b9250506080620005d88882890162000494565b9150509295509295909350565b620005f08162000756565b82525050565b602181527f4e6f7420656e6f7567682066756e64732073656e7420746f20636f6e7472616360208201527f7400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b620005f08162000412565b60a08101620006978288620005e5565b620006a66020830187620005e5565b620006b560408301866200067c565b620006c460608301856200067c565b620006d360808301846200067c565b9695505050505050565b60208082528101620006ef81620005f6565b92915050565b60208082528101620006ef816200064c565b6040518181016001604060020a03811182821017156200072657600080fd5b604052919050565b60006001604060020a038211156200074557600080fd5b506020601f91909101601f19160190565b600160a060020a031690565b6001605060020a031690565b60005b838110156200078b57818101518382015260200162000771565b838111156200079b576000848401525b50505050565b61232780620007b16000396000f30060806040526004361061013a5763ffffffff60e060020a6000350416630c15c365811461013c578063165d35e114610167578063185e5b4014610189578063243d9a5d146101a95780633fad1834146101be5780634162cc88146101d357806356a6d508146101f35780635b69a7d8146102085780635fdc6281146102285780636f9fb98a1461023d578063715018a6146102525780637a50413d146102675780638da5cb5b1461027c5780638e15f47314610291578063a241c089146102a6578063ad2e8c9b146102bb578063b0b30fee146102d0578063b1b91f7a146102f2578063b807873214610312578063bbe4fd5014610327578063c032846b1461033c578063c974402914610351578063ce2ce3fc14610366578063dbc837c514610388578063dcbacd111461039d578063f2fde38b146103b2575b005b34801561014857600080fd5b506101516103d2565b60405161015e9190612199565b60405180910390f35b34801561017357600080fd5b5061017c6103d8565b60405161015e91906120b8565b34801561019557600080fd5b506101516101a4366004611d44565b6103e7565b3480156101b557600080fd5b506101516103fb565b3480156101ca57600080fd5b50610151610401565b3480156101df57600080fd5b506101516101ee366004611d44565b610407565b3480156101ff57600080fd5b50610151610414565b34801561021457600080fd5b5061017c610223366004611d44565b61041a565b34801561023457600080fd5b50610151610437565b34801561024957600080fd5b5061015161043c565b34801561025e57600080fd5b5061013a610441565b34801561027357600080fd5b506101516104ce565b34801561028857600080fd5b5061017c6104d4565b34801561029d57600080fd5b506101516104e3565b3480156102b257600080fd5b506101516105b0565b3480156102c757600080fd5b50610151610aea565b3480156102dc57600080fd5b506102e5610af0565b60405161015e919061218b565b3480156102fe57600080fd5b5061013a61030d366004611d0a565b610afe565b34801561031e57600080fd5b50610151610d06565b34801561033357600080fd5b50610151610d0b565b34801561034857600080fd5b506102e5610d0f565b34801561035d57600080fd5b50610151610d18565b34801561037257600080fd5b5061037b610d1e565b60405161015e91906121a7565b34801561039457600080fd5b5061017c610db4565b3480156103a957600080fd5b50610151610dc3565b3480156103be57600080fd5b5061013a6103cd366004611cce565b610dc9565b60185490565b60006103e2610e02565b905090565b601081600281106103f457fe5b0154905081565b600e5490565b601a5490565b601281600281106103f457fe5b60195490565b6014816002811061042757fe5b0154600160a060020a0316905081565b603c81565b303190565b600954600160a060020a031633146104775760405160e560020a62461bcd02815260040161046e90612208565b60405180910390fd5b600654604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26006805473ffffffffffffffffffffffffffffffffffffffff19169055565b60165490565b600654600160a060020a031681565b600080600080600080600760009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15801561053f57600080fd5b505af1158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105779190810190611d80565b945094509450945094506000821115156105a65760405160e560020a62461bcd02815260040161046e90612218565b5091949350505050565b60175460009060609060ff1615156001146105e05760405160e560020a62461bcd02815260040161046e906121e8565b6105e8610e11565b60175460ff1615610ae6576000601b5560408051606081018252603a81527f687474703a2f2f6170692e776f726c64776561746865726f6e6c696e652e636f60208083019182527f6d2f7072656d69756d2f76312f776561746865722e617368783f0000000000008385015283518085018552601e81527f36323963366464303962626334333634623761333338313032303039313100008183015293518351939493600f9391909201918291908083835b602083106106b95780518252601f19909201916020918201910161069a565b51815160209384036101000a60001901801990921691161790527f6b65793d00000000000000000000000000000000000000000000000000000000919093019081528551600490910192860191508083835b6020831061072a5780518252601f19909201916020918201910161070b565b6001836020036101000a038019825116818451168082178552505050505050905001807f26713d0000000000000000000000000000000000000000000000000000000000815250600301828054600181600116156101000203166002900480156107cb5780601f106107a95761010080835404028352918201916107cb565b820191906000526020600020905b8154815290600101906020018083116107b7575b50507f26666f726d61743d6a736f6e266e756d5f6f665f646179733d31000000000000815260408051600519818403018152601a9092019052945061088e9350601492506000915061081a9050565b0154600160a060020a031660126000015483606060405190810160405280602181526020017f646174612e63757272656e745f636f6e646974696f6e2e302e7072656369704d81526020017f4d0000000000000000000000000000000000000000000000000000000000000081525061109e565b50606060405190810160405280602781526020017f68747470733a2f2f6170692e776561746865726269742e696f2f76322e302f6381526020017f757272656e743f00000000000000000000000000000000000000000000000000815250600f6040805190810160405280602081526020017f35653035616566303734313034303166616334393162303665623965386663388152506040516020018084805190602001908083835b602083106109565780518252601f199092019160209182019101610937565b6001836020036101000a038019825116818451168082178552505050505050905001807f636974793d000000000000000000000000000000000000000000000000000000815250600501838054600181600116156101000203166002900480156109f75780601f106109d55761010080835404028352918201916109f7565b820191906000526020600020905b8154815290600101906020018083116109e3575b5050807f266b65793d00000000000000000000000000000000000000000000000000000081525060050182805190602001908083835b60208310610a4c5780518252601f199092019160209182019101610a2d565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040529050610ae460146001600281101515610a9757fe5b0154600160a060020a0316601260010154836040805190810160405280600d81526020017f646174612e302e7072656369700000000000000000000000000000000000000081525061109e565b505b5090565b600c5490565b601754610100900460ff1690565b6000828152600560205260409020548290600160a060020a03163314610b395760405160e560020a62461bcd02815260040161046e90612228565b600081815260056020526040808220805473ffffffffffffffffffffffffffffffffffffffff191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a260175460ff161515600114610bb35760405160e560020a62461bcd02815260040161046e906121e8565b610bd6610bc8603c600c63ffffffff61122216565b603c9063ffffffff61123916565b601954610bea90429063ffffffff61123916565b11610c0a5760405160e560020a62461bcd02815260040161046e906121d8565b816010601b54600281101515610c1c57fe5b0155601b80546001908101918290551015610cca57601154601054610c5391600291610c479161124b565b9063ffffffff61122216565b601881905542601955601a805460010190551515610c7957601680546001019055610cb8565b60006016556018546040517f2e5a5a6cf30e14f6500f404203cc44691f83c62354f375539ea7d45bcc49230591610caf91612199565b60405180910390a15b601654600311610cca57610cca611258565b7f9acb88f10af47daa34522605143d1719bad9aa6562e4c443c8abb9d594ea73f482604051610cf99190612199565b60405180910390a1505050565b600381565b4290565b60175460ff1690565b600d5490565b600f8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610daa5780601f10610d7f57610100808354040283529160200191610daa565b820191906000526020600020905b815481529060010190602001808311610d8d57829003601f168201915b5050505050905090565b600954600160a060020a031681565b600b5490565b600954600160a060020a03163314610df65760405160e560020a62461bcd02815260040161046e90612208565b610dff81611455565b50565b600254600160a060020a031690565b600042600c54600b54011015610dff57600c54600290610e3890603c63ffffffff61122216565b03601a54101515610e8357600954604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610e7d573d6000803e3d6000fd5b50610f11565b600a54600160a060020a03166108fc610eac610e9d6104e3565b600d549063ffffffff61122216565b6040518115909202916000818181858888f19350505050158015610ed4573d6000803e3d6000fd5b50600954604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610f0f573d6000803e3d6000fd5b505b610f19610e02565b6009546040517f70a08231000000000000000000000000000000000000000000000000000000008152919250600160a060020a038084169263a9059cbb929091169083906370a0823190610f719030906004016120b8565b602060405180830381600087803b158015610f8b57600080fd5b505af1158015610f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fc39190810190611d62565b6040518363ffffffff1660e060020a028152600401610fe39291906120c6565b602060405180830381600087803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110359190810190611cec565b15156110565760405160e560020a62461bcd02815260040161046e906121b8565b6017805460ff191690556040517f71d9f146944417dd66115a997376d9878c3618f396c331a6c3aa82ce653eae1490611093904290303190612238565b60405180910390a150565b60006110a8611c45565b60175460ff1615156001146110d25760405160e560020a62461bcd02815260040161046e906121e8565b6110fd85307fb1b91f7a000000000000000000000000000000000000000000000000000000006114d3565b60408051808201909152600381527f676574000000000000000000000000000000000000000000000000000000000060208201529091506111469082908663ffffffff6114fe16565b60408051808201909152600481527f7061746800000000000000000000000000000000000000000000000000000000602082015261118c9082908563ffffffff6114fe16565b60408051808201909152600581527f74696d657300000000000000000000000000000000000000000000000000000060208201526111d3908290606463ffffffff61152d16565b6111e08682600854611557565b91507f9b79db1508864f538c7703d2267a0c858007ee5877c83d83aec1b431e5add541826040516112119190612199565b60405180910390a150949350505050565b6000818381151561122f57fe5b0490505b92915050565b60008282111561124557fe5b50900390565b8181018281101561123357fe5b60175460009060ff1615156001146112855760405160e560020a62461bcd02815260040161046e906121e8565b600a54604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156112bf573d6000803e3d6000fd5b506112c8610e02565b6009546040517f70a08231000000000000000000000000000000000000000000000000000000008152919250600160a060020a038084169263a9059cbb929091169083906370a08231906113209030906004016120b8565b602060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113729190810190611d62565b6040518363ffffffff1660e060020a0281526004016113929291906120c6565b602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113e49190810190611cec565b15156114055760405160e560020a62461bcd02815260040161046e906121f8565b600e546018546040517fd8874104029b491ba57b1b4875bd4ba8d4a98bf0261e1fdfac96db44022f95f89261143b924292612246565b60405180910390a1506017805461ffff1916610100179055565b600160a060020a038116151561146a57600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6114db611c45565b6114e3611c45565b6114f58186868663ffffffff61172616565b95945050505050565b6080830151611513908363ffffffff61178116565b6080830151611528908263ffffffff61178116565b505050565b6080830151611542908363ffffffff61178116565b6080830151611528908263ffffffff61179e16565b6000306004546040516020018083600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106115d35780518252601f1990920191602091820191016115b4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060045460608a015260008181526005909252838220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038c1617905592519295508594507fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99350919050a2600254600160a060020a0316634000aea0858461168187611800565b6040518463ffffffff1660e060020a0281526004016116a29392919061215e565b602060405180830381600087803b1580156116bc57600080fd5b505af11580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116f49190810190611cec565b15156117155760405160e560020a62461bcd02815260040161046e906121c8565b6004805460010190555b9392505050565b61172e611c45565b61173e85608001516101006118bd565b5050828452600160a060020a03821660208501527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981166040850152835b949350505050565b61178e82600383516118f7565b611528828263ffffffff6119fa16565b67ffffffffffffffff198112156117be576117b98282611a14565b6117fc565b67ffffffffffffffff8113156117d8576117b98282611a53565b600081126117ec576117b9826000836118f7565b6117fc82600183600019036118f7565b5050565b80516020820151604080840151606085810151608087015151935191957f40429946000000000000000000000000000000000000000000000000000000009561185a956000958695939492939092916001916024016120e1565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091529050919050565b6118c5611c7a565b60208206156118da5760208206602003820191505b506020828101829052604080518085526000815290920101905290565b60178111611919576119138360ff848116602002168317611a7a565b50611528565b60ff811161194d5761193a836018602060ff8616021763ffffffff611a7a16565b506119138382600163ffffffff611a9216565b61ffff81116119825761196f836019602060ff8616021763ffffffff611a7a16565b506119138382600263ffffffff611a9216565b63ffffffff81116119b9576119a683601a602060ff8616021763ffffffff611a7a16565b506119138382600463ffffffff611a9216565b67ffffffffffffffff8111611528576119e183601b602060ff8616021763ffffffff611a7a16565b506119f48382600863ffffffff611a9216565b50505050565b611a02611c7a565b61171f83846000015151848551611aab565b611a258260c363ffffffff611a7a16565b506117fc828260001903604051602001611a3f9190612199565b604051602081830303815290604052611b61565b611a648260c263ffffffff611a7a16565b506117fc8282604051602001611a3f9190612199565b611a82611c7a565b61171f8384600001515184611b6e565b611a9a611c7a565b611779848560000151518585611bb9565b611ab3611c7a565b600080600085518511151515611ac857600080fd5b87602001518588011115611af257611af288611aea8a602001518a8901611c17565b600202611c2e565b875180518860208301019450808988011115611b0e5788870182525b60208801935050505b60208510611b395781518352601f199094019360209283019290910190611b17565b505181516020949094036101000a600019018019909116931692909217909152509192915050565b61178e82600283516118f7565b611b76611c7a565b60208401518310611b9257611b92848560200151600202611c2e565b8351805160208583010184815381861415611bae576001820183525b509495945050505050565b611bc1611c7a565b600085602001518584011115611be057611be086868501600202611c2e565b6001836101000a0390508551838682010185831982511617815281518588011115611c0b5784870182525b50959695505050505050565b600081831115611c28575081611233565b50919050565b8151611c3a83836118bd565b506119f483826119fa565b6040805160c081018252600080825260208201819052918101829052606081019190915260808101611c75611c7a565b905290565b60408051808201909152606081526000602082015290565b600061171f8235612272565b600061171f825161227e565b600061171f8235612283565b600061171f8251612283565b600061171f82516122a8565b600060208284031215611ce057600080fd5b60006117798484611c92565b600060208284031215611cfe57600080fd5b60006117798484611c9e565b60008060408385031215611d1d57600080fd5b6000611d298585611caa565b9250506020611d3a85828601611caa565b9150509250929050565b600060208284031215611d5657600080fd5b60006117798484611caa565b600060208284031215611d7457600080fd5b60006117798484611cb6565b600080600080600060a08688031215611d9857600080fd5b6000611da48888611cc2565b9550506020611db588828901611cb6565b9450506040611dc688828901611cb6565b9350506060611dd788828901611cb6565b9250506080611de888828901611cc2565b9150509295509295909350565b611dfe81612272565b82525050565b611dfe8161227e565b611dfe81612283565b611dfe81612286565b6000611e2a8261226e565b808452611e3e8160208601602086016122b7565b611e47816122e3565b9093016020019392505050565b602881527f556e61626c6520746f207472616e736665722072656d61696e696e67204c494e60208201527f4b20746f6b656e73000000000000000000000000000000000000000000000000604082015260600190565b602381527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f726160208201527f636c650000000000000000000000000000000000000000000000000000000000604082015260600190565b602481527f43616e206f6e6c7920636865636b207261696e66616c6c206f6e63652070657260208201527f2064617900000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f436f6e74726163742068617320656e6465642c2063616e7420696e746572616360208201527f74207769746820697420616e796d6f7265000000000000000000000000000000604082015260600190565b601281527f556e61626c6520746f207472616e736665720000000000000000000000000000602082015260400190565b602381527f4f6e6c7920496e737572616e63652070726f76696465722063616e20646f207460208201527f6869730000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b602881527f536f75726365206d75737420626520746865206f7261636c65206f662074686560208201527f2072657175657374000000000000000000000000000000000000000000000000604082015260600190565b602081016112338284611df5565b604081016120d48285611df5565b61171f6020830184611e0d565b61010081016120f0828b611df5565b6120fd602083018a611e0d565b61210a6040830189611e0d565b6121176060830188611df5565b6121246080830187611e16565b61213160a0830186611e0d565b61213e60c0830185611e0d565b81810360e08301526121508184611e1f565b9a9950505050505050505050565b6060810161216c8286611df5565b6121796020830185611e0d565b81810360408301526114f58184611e1f565b602081016112338284611e04565b602081016112338284611e0d565b6020808252810161171f8184611e1f565b6020808252810161123381611e54565b6020808252810161123381611eaa565b6020808252810161123381611f00565b6020808252810161123381611f56565b6020808252810161123381611fac565b6020808252810161123381611fdc565b6020808252810161123381612032565b6020808252810161123381612062565b604081016120d48285611e0d565b606081016122548286611e0d565b6122616020830185611e0d565b6117796040830184611e0d565b5190565b600160a060020a031690565b151590565b90565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690565b69ffffffffffffffffffff1690565b60005b838110156122d25781810151838201526020016122ba565b838111156119f45750506000910152565b601f01601f1916905600a265627a7a72305820ae7c6b1bc3e9c37bd83ce7ef0d6ebc72ee71c196bd8a89b84fa508d5c11d3f406c6578706572696d656e74616cf50037a265627a7a723058206a9ff78faeb5974430352b268145bc943bed6f9b68339ef70368b5e9bb8d6c6e6c6578706572696d656e74616cf50037",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND PUSH20 0x9326BFA02ADD2366B30BACB125260AF641031331 OR SWAP1 SSTORE PUSH2 0x3A59 DUP1 PUSH2 0x47 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xB9 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xAD1C2FA DUP2 EQ PUSH3 0xBB JUMPI DUP1 PUSH4 0x125716D6 EQ PUSH3 0xF8 JUMPI DUP1 PUSH4 0x5D0C1476 EQ PUSH3 0x12C JUMPI DUP1 PUSH4 0x5FDC6281 EQ PUSH3 0x153 JUMPI DUP1 PUSH4 0x6896C870 EQ PUSH3 0x17A JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x71F28640 EQ PUSH3 0x1B7 JUMPI DUP1 PUSH4 0x7C463DB0 EQ PUSH3 0x1DC JUMPI DUP1 PUSH4 0x8E15F473 EQ PUSH3 0x1F4 JUMPI DUP1 PUSH4 0xA1219C42 EQ PUSH3 0x20C JUMPI DUP1 PUSH4 0xDBC837C5 EQ PUSH3 0x216 JUMPI DUP1 PUSH4 0xDFDF79E8 EQ PUSH3 0x22E JUMPI DUP1 PUSH4 0xE3DB17B8 EQ PUSH3 0x245 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xE0 PUSH3 0xDA CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xEF SWAP2 SWAP1 PUSH3 0xE23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x11D PUSH3 0x117 CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x288 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xEF SWAP2 SWAP1 PUSH3 0xE13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x144 PUSH3 0x30F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xEF SWAP2 SWAP1 PUSH3 0xD39 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xEF SWAP2 SWAP1 PUSH3 0xE33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x199 CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x323 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x3A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x3A8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x144 PUSH3 0x3ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x405 JUMP JUMPDEST PUSH3 0xB9 PUSH3 0x4E2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x144 PUSH3 0x672 JUMP JUMPDEST PUSH3 0x144 PUSH3 0x23F CALLDATASIZE PUSH1 0x4 PUSH3 0xAC8 JUMP JUMPDEST PUSH3 0x681 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x252 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xB9 PUSH3 0x264 CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x8F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC032846B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x2CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x2E2 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 0x308 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB61 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x3C DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3FAD1834 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x37D 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 0x308 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB82 JUMP JUMPDEST ADDRESS BALANCE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC15C365 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xA36085F69E2889C224210F603D836748E7DC0088 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x477 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 0x49D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xBA3 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH3 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x4CF SWAP1 PUSH3 0xE67 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x513 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x4CF SWAP1 PUSH3 0xE55 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xA36085F69E2889C224210F603D836748E7DC0088 SWAP1 DUP2 SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH3 0x572 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH3 0xD39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x58D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x5A2 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 0x5C8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x5EA SWAP3 SWAP2 SWAP1 PUSH3 0xD49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x61A 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 0x640 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB61 JUMP JUMPDEST ISZERO ISZERO PUSH3 0x664 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x4CF SWAP1 PUSH3 0xE43 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SELFDESTRUCT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x6B6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x4CF SWAP1 PUSH3 0xE55 JUMP JUMPDEST PUSH3 0x6DC PUSH3 0x6C4 PUSH3 0x405 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP8 MUL SWAP1 PUSH4 0xFFFFFFFF PUSH3 0x978 AND JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 PUSH20 0xA36085F69E2889C224210F603D836748E7DC0088 PUSH8 0x16345785D8A0000 PUSH3 0x709 PUSH3 0x9BD JUMP JUMPDEST PUSH3 0x71B SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 DUP3 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x737 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE MLOAD SWAP1 SWAP4 POP PUSH32 0xA44AA7756C3391A11525EEEE40213754BF3AEE2A051D2597433FB40572A47D76 SWAP2 POP PUSH3 0x7A9 SWAP1 DUP5 SWAP1 CALLVALUE SWAP1 DUP10 SWAP1 PUSH3 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x165D35E1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x805 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 0x82B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xAA7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH4 0xA9059CBB DUP4 PUSH3 0x858 PUSH8 0x16345785D8A0000 PUSH1 0x2 PUSH4 0xFFFFFFFF PUSH3 0x990 AND JUMP JUMPDEST PUSH3 0x86B DUP12 PUSH1 0x3C PUSH4 0xFFFFFFFF PUSH3 0x978 AND JUMP JUMPDEST PUSH1 0x2 ADD MUL PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x891 SWAP3 SWAP2 SWAP1 PUSH3 0xD49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x8C1 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 0x8E7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB61 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA241C089 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x94D 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 0x973 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB82 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH3 0x986 JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO ISZERO PUSH3 0x9A3 JUMPI POP PUSH1 0x0 PUSH3 0x98A JUMP JUMPDEST POP DUP2 DUP2 MUL DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH3 0x9B4 JUMPI INVALID JUMPDEST DIV EQ PUSH3 0x98A JUMPI INVALID JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AD8 DUP1 PUSH3 0xF48 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 CALLDATALOAD PUSH3 0xECE JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 MLOAD PUSH3 0xECE JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 MLOAD PUSH3 0xEDA JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 MLOAD PUSH3 0xEDF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH3 0xA18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH3 0xA2F PUSH3 0xA29 DUP3 PUSH3 0xEA1 JUMP JUMPDEST PUSH3 0xE79 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH3 0xA4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0xA59 DUP4 DUP3 DUP5 PUSH3 0xEFE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 CALLDATALOAD PUSH3 0xEDF JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 MLOAD PUSH3 0xEE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xA91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xA9F DUP5 DUP5 PUSH3 0x9CE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xABA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xA9F DUP5 DUP5 PUSH3 0x9DC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0xAE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xAEF DUP9 DUP9 PUSH3 0x9CE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH3 0xB02 DUP9 DUP3 DUP10 ADD PUSH3 0xA62 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0xB15 DUP9 DUP3 DUP10 ADD PUSH3 0xA62 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0xB28 DUP9 DUP3 DUP10 ADD PUSH3 0xA62 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0xB46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0xB54 DUP9 DUP3 DUP10 ADD PUSH3 0xA06 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xA9F DUP5 DUP5 PUSH3 0x9EA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xB95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xA9F DUP5 DUP5 PUSH3 0x9F8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0xBBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xBCA DUP9 DUP9 PUSH3 0xA70 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH3 0xBDD DUP9 DUP3 DUP10 ADD PUSH3 0x9F8 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0xBF0 DUP9 DUP3 DUP10 ADD PUSH3 0x9F8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0xC03 DUP9 DUP3 DUP10 ADD PUSH3 0x9F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH3 0xB54 DUP9 DUP3 DUP10 ADD PUSH3 0xA70 JUMP JUMPDEST PUSH3 0xC21 DUP2 PUSH3 0xECE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0xC21 DUP2 PUSH3 0xEDA JUMP JUMPDEST PUSH3 0xC21 DUP2 PUSH3 0xEF1 JUMP JUMPDEST PUSH3 0xC21 DUP2 PUSH3 0xEDF JUMP JUMPDEST PUSH1 0x0 PUSH3 0xC55 DUP3 PUSH3 0xECA JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH3 0xC6B DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH3 0xF0A JUMP JUMPDEST PUSH3 0xC76 DUP2 PUSH3 0xF3D JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x4F6E6C7920496E737572616E63652070726F76696465722063616E20646F2074 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6869730000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x98A DUP3 DUP5 PUSH3 0xC16 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH3 0xD59 DUP3 DUP6 PUSH3 0xC16 JUMP JUMPDEST PUSH3 0x308 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0xC3D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH3 0xD78 DUP3 DUP7 PUSH3 0xC16 JUMP JUMPDEST PUSH3 0xD87 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0xC3D JUMP JUMPDEST PUSH3 0xA9F PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0xC3D JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH3 0xDA6 DUP3 DUP11 PUSH3 0xC16 JUMP JUMPDEST PUSH3 0xDB5 PUSH1 0x20 DUP4 ADD DUP10 PUSH3 0xC3D JUMP JUMPDEST PUSH3 0xDC4 PUSH1 0x40 DUP4 ADD DUP9 PUSH3 0xC3D JUMP JUMPDEST PUSH3 0xDD3 PUSH1 0x60 DUP4 ADD DUP8 PUSH3 0xC3D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH3 0xDE7 DUP2 DUP7 PUSH3 0xC48 JUMP JUMPDEST SWAP1 POP PUSH3 0xDF8 PUSH1 0xA0 DUP4 ADD DUP6 PUSH3 0xC16 JUMP JUMPDEST PUSH3 0xE07 PUSH1 0xC0 DUP4 ADD DUP5 PUSH3 0xC3D JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x98A DUP3 DUP5 PUSH3 0xC27 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x98A DUP3 DUP5 PUSH3 0xC32 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x98A DUP3 DUP5 PUSH3 0xC3D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x98A DUP2 PUSH3 0xC83 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x98A DUP2 PUSH3 0xCB3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x98A DUP2 PUSH3 0xD09 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0xE99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0xEB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x98A DUP3 PUSH3 0xECE JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xF27 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xF0D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0xF37 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x17 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x18 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x19 SSTORE PUSH1 0x1A DUP2 SWAP1 SSTORE PUSH1 0x1B SSTORE PUSH3 0x2AD8 CODESIZE DUP2 SWAP1 SUB SWAP1 DUP2 SWAP1 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x4B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x4A2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND PUSH20 0x9326BFA02ADD2366B30BACB125260AF641031331 OR SWAP1 SSTORE PUSH3 0x93 DUP3 PUSH5 0x100000000 PUSH3 0x234 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x8 DUP2 SWAP1 SSTORE PUSH3 0xC5 PUSH3 0xAF PUSH5 0x100000000 PUSH3 0x256 DUP2 MUL DIV JUMP JUMPDEST DUP6 SWAP1 PUSH5 0x100000000 PUSH3 0x1222 PUSH3 0x35A DUP3 MUL OR DIV JUMP JUMPDEST CALLVALUE LT ISZERO PUSH3 0x10A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x101 SWAP1 PUSH3 0x6DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xA DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND OR SWAP1 SSTORE TIMESTAMP PUSH1 0xB SSTORE PUSH1 0xC DUP7 SWAP1 SSTORE PUSH1 0xD DUP6 SWAP1 SSTORE PUSH1 0xE DUP5 SWAP1 SSTORE PUSH1 0x0 PUSH1 0x16 SSTORE PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP3 MLOAD PUSH3 0x16D SWAP1 PUSH1 0xF SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x370 JUMP JUMPDEST POP PUSH1 0x14 DUP1 SLOAD PUSH20 0x5C8FADF1798437C143683E665800D58A42B6E19 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x15 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x6131376538666266346362663436656562373965303462336562383634613465 PUSH1 0x12 DUP2 SWAP1 SSTORE PUSH1 0x13 SSTORE PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH32 0x203790CAE2EA31823A6382172BD46011FCFBAB29B22BB78B4B2F266FEBF6072 SWAP6 PUSH3 0x21F SWAP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP6 SWAP2 AND SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH3 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP PUSH3 0x7A1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x2E1 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 0x307 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x565 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH3 0x350 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x101 SWAP1 PUSH3 0x6F5 JUMP JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH3 0x368 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP 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 PUSH3 0x3B3 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x3E3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x3E3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x3E3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x3C6 JUMP JUMPDEST POP PUSH3 0x3F1 SWAP3 SWAP2 POP PUSH3 0x3F5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x412 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x3F1 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3FC JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x756 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x412 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH3 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x461 PUSH3 0x45B DUP3 PUSH3 0x72E JUMP JUMPDEST PUSH3 0x707 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH3 0x47E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x48B DUP4 DUP3 DUP5 PUSH3 0x76E JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x762 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH3 0x4BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x4CC DUP11 DUP11 PUSH3 0x415 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH3 0x4DF DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH3 0x4F2 DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH3 0x505 DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP2 GT ISZERO PUSH3 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x530 DUP11 DUP3 DUP12 ADD PUSH3 0x438 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH3 0x543 DUP11 DUP3 DUP12 ADD PUSH3 0x415 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH3 0x556 DUP11 DUP3 DUP12 ADD PUSH3 0x42A 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 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x58C DUP9 DUP9 PUSH3 0x494 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH3 0x59F DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0x5B2 DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0x5C5 DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH3 0x5D8 DUP9 DUP3 DUP10 ADD PUSH3 0x494 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH3 0x5F0 DUP2 PUSH3 0x756 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x4E6F7420656E6F7567682066756E64732073656E7420746F20636F6E74726163 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x7400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH3 0x5F0 DUP2 PUSH3 0x412 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH3 0x697 DUP3 DUP9 PUSH3 0x5E5 JUMP JUMPDEST PUSH3 0x6A6 PUSH1 0x20 DUP4 ADD DUP8 PUSH3 0x5E5 JUMP JUMPDEST PUSH3 0x6B5 PUSH1 0x40 DUP4 ADD DUP7 PUSH3 0x67C JUMP JUMPDEST PUSH3 0x6C4 PUSH1 0x60 DUP4 ADD DUP6 PUSH3 0x67C JUMP JUMPDEST PUSH3 0x6D3 PUSH1 0x80 DUP4 ADD DUP5 PUSH3 0x67C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x6EF DUP2 PUSH3 0x5F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x6EF DUP2 PUSH3 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP3 GT ISZERO PUSH3 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x50 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x78B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x771 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x79B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2327 DUP1 PUSH3 0x7B1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13A JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC15C365 DUP2 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x165D35E1 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x185E5B40 EQ PUSH2 0x189 JUMPI DUP1 PUSH4 0x243D9A5D EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x3FAD1834 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x4162CC88 EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x56A6D508 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x5B69A7D8 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x5FDC6281 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x7A50413D EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x8E15F473 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0xA241C089 EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0xAD2E8C9B EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0xB0B30FEE EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0xB1B91F7A EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0xB8078732 EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0xBBE4FD50 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xC032846B EQ PUSH2 0x33C JUMPI DUP1 PUSH4 0xC9744029 EQ PUSH2 0x351 JUMPI DUP1 PUSH4 0xCE2CE3FC EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0xDBC837C5 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0xDCBACD11 EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3B2 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x148 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x3D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x20B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x1A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x3E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x3FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x401 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x407 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x414 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x41A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x437 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x441 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x273 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x4CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x4D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x4E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x5B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xAEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x218B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x30D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D0A JUMP JUMPDEST PUSH2 0xAFE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0xD0F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD18 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37B PUSH2 0xD1E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0xDB4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xDC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x1CCE JUMP JUMPDEST PUSH2 0xDC9 JUMP JUMPDEST PUSH1 0x18 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E2 PUSH2 0xE02 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x3F4 JUMPI INVALID JUMPDEST ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0xE SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1A SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x3F4 JUMPI INVALID JUMPDEST PUSH1 0x19 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x14 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x427 JUMPI INVALID JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x3C DUP2 JUMP JUMPDEST ADDRESS BALANCE SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x477 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2208 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x16 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x53F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x553 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 0x577 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D80 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2218 JUMP JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x5E0 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0x5E8 PUSH2 0xE11 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 PUSH1 0x1B SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x3A DUP2 MSTORE PUSH32 0x687474703A2F2F6170692E776F726C64776561746865726F6E6C696E652E636F PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH32 0x6D2F7072656D69756D2F76312F776561746865722E617368783F000000000000 DUP4 DUP6 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH32 0x3632396336646430396262633433363462376133333831303230303931310000 DUP2 DUP4 ADD MSTORE SWAP4 MLOAD DUP4 MLOAD SWAP4 SWAP5 SWAP4 PUSH1 0xF SWAP4 SWAP2 SWAP1 SWAP3 ADD SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x6B9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x69A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x6B65793D00000000000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x72A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x70B JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x26713D0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x3 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x7CB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 DUP3 ADD SWAP2 PUSH2 0x7CB 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 0x7B7 JUMPI JUMPDEST POP POP PUSH32 0x26666F726D61743D6A736F6E266E756D5F6F665F646179733D31000000000000 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x5 NOT DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x1A SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP5 POP PUSH2 0x88E SWAP4 POP PUSH1 0x14 SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH2 0x81A SWAP1 POP JUMP JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x12 PUSH1 0x0 ADD SLOAD DUP4 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174612E63757272656E745F636F6E646974696F6E2E302E7072656369704D DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x109E JUMP JUMPDEST POP PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x68747470733A2F2F6170692E776561746865726269742E696F2F76322E302F63 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x757272656E743F00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3565303561656630373431303430316661633439316230366562396538666338 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x956 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x636974793D000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x5 ADD DUP4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x9F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9D5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 DUP3 ADD SWAP2 PUSH2 0x9F7 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 0x9E3 JUMPI JUMPDEST POP POP DUP1 PUSH32 0x266B65793D000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x5 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA4C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA2D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xAE4 PUSH1 0x14 PUSH1 0x1 PUSH1 0x2 DUP2 LT ISZERO ISZERO PUSH2 0xA97 JUMPI INVALID JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x12 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174612E302E70726563697000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x109E JUMP JUMPDEST POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0xC SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xB39 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2228 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0xBB3 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0xBD6 PUSH2 0xBC8 PUSH1 0x3C PUSH1 0xC PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x3C SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1239 AND JUMP JUMPDEST PUSH1 0x19 SLOAD PUSH2 0xBEA SWAP1 TIMESTAMP SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1239 AND JUMP JUMPDEST GT PUSH2 0xC0A JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21D8 JUMP JUMPDEST DUP2 PUSH1 0x10 PUSH1 0x1B SLOAD PUSH1 0x2 DUP2 LT ISZERO ISZERO PUSH2 0xC1C JUMPI INVALID JUMPDEST ADD SSTORE PUSH1 0x1B DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD SWAP2 DUP3 SWAP1 SSTORE LT ISZERO PUSH2 0xCCA JUMPI PUSH1 0x11 SLOAD PUSH1 0x10 SLOAD PUSH2 0xC53 SWAP2 PUSH1 0x2 SWAP2 PUSH2 0xC47 SWAP2 PUSH2 0x124B JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x18 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x19 SSTORE PUSH1 0x1A DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE ISZERO ISZERO PUSH2 0xC79 JUMPI PUSH1 0x16 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x16 SSTORE PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH32 0x2E5A5A6CF30E14F6500F404203CC44691F83C62354F375539EA7D45BCC492305 SWAP2 PUSH2 0xCAF SWAP2 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x3 GT PUSH2 0xCCA JUMPI PUSH2 0xCCA PUSH2 0x1258 JUMP JUMPDEST PUSH32 0x9ACB88F10AF47DAA34522605143D1719BAD9AA6562E4C443C8ABB9D594EA73F4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCF9 SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP9 AND ISZERO MUL ADD SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xDAA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDAA 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 0xD8D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xDF6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2208 JUMP JUMPDEST PUSH2 0xDFF DUP2 PUSH2 0x1455 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH1 0xC SLOAD PUSH1 0xB SLOAD ADD LT ISZERO PUSH2 0xDFF JUMPI PUSH1 0xC SLOAD PUSH1 0x2 SWAP1 PUSH2 0xE38 SWAP1 PUSH1 0x3C PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST SUB PUSH1 0x1A SLOAD LT ISZERO ISZERO PUSH2 0xE83 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0xF11 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC PUSH2 0xEAC PUSH2 0xE9D PUSH2 0x4E3 JUMP JUMPDEST PUSH1 0xD SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 ISZERO SWAP1 SWAP3 MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xED4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xF0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0xF19 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0xF71 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x20B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF9F 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 0xFC3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE3 SWAP3 SWAP2 SWAP1 PUSH2 0x20C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1011 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 0x1035 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1056 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21B8 JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x71D9F146944417DD66115A997376D9878C3618F396C331A6C3AA82CE653EAE14 SWAP1 PUSH2 0x1093 SWAP1 TIMESTAMP SWAP1 ADDRESS BALANCE SWAP1 PUSH2 0x2238 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10A8 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x10D2 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0x10FD DUP6 ADDRESS PUSH32 0xB1B91F7A00000000000000000000000000000000000000000000000000000000 PUSH2 0x14D3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH32 0x6765740000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x1146 SWAP1 DUP3 SWAP1 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x14FE AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP2 MSTORE PUSH32 0x7061746800000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x118C SWAP1 DUP3 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x14FE AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x74696D6573000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x11D3 SWAP1 DUP3 SWAP1 PUSH1 0x64 PUSH4 0xFFFFFFFF PUSH2 0x152D AND JUMP JUMPDEST PUSH2 0x11E0 DUP7 DUP3 PUSH1 0x8 SLOAD PUSH2 0x1557 JUMP JUMPDEST SWAP2 POP PUSH32 0x9B79DB1508864F538C7703D2267A0C858007EE5877C83D83AEC1B431E5ADD541 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1211 SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x122F JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1245 JUMPI INVALID JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP3 DUP2 LT ISZERO PUSH2 0x1233 JUMPI INVALID JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x1285 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x12BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x12C8 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1320 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x20B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1372 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1392 SWAP3 SWAP2 SWAP1 PUSH2 0x20C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C0 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 0x13E4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1405 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21F8 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH32 0xD8874104029B491BA57B1B4875BD4BA8D4A98BF0261E1FDFAC96DB44022F95F8 SWAP3 PUSH2 0x143B SWAP3 TIMESTAMP SWAP3 PUSH2 0x2246 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x17 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x146A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x14DB PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x14E3 PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x14F5 DUP2 DUP7 DUP7 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1726 AND JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1513 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1528 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1542 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1528 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x179E AND JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH13 0x1000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x15D3 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x15B4 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SLOAD PUSH1 0x60 DUP11 ADD MSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE DUP4 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND OR SWAP1 SSTORE SWAP3 MLOAD SWAP3 SWAP6 POP DUP6 SWAP5 POP PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP4 POP SWAP2 SWAP1 POP LOG2 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0x1681 DUP8 PUSH2 0x1800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16A2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x215E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16D0 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 0x16F4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1715 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21C8 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x172E PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x173E DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x18BD JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x178E DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x1528 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x19FA AND JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 SLT ISZERO PUSH2 0x17BE JUMPI PUSH2 0x17B9 DUP3 DUP3 PUSH2 0x1A14 JUMP JUMPDEST PUSH2 0x17FC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 SGT ISZERO PUSH2 0x17D8 JUMPI PUSH2 0x17B9 DUP3 DUP3 PUSH2 0x1A53 JUMP JUMPDEST PUSH1 0x0 DUP2 SLT PUSH2 0x17EC JUMPI PUSH2 0x17B9 DUP3 PUSH1 0x0 DUP4 PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x17FC DUP3 PUSH1 0x1 DUP4 PUSH1 0x0 NOT SUB PUSH2 0x18F7 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 DUP2 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP4 MLOAD SWAP2 SWAP6 PUSH32 0x4042994600000000000000000000000000000000000000000000000000000000 SWAP6 PUSH2 0x185A SWAP6 PUSH1 0x0 SWAP6 DUP7 SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x20E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18C5 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x20 DUP3 MOD ISZERO PUSH2 0x18DA JUMPI PUSH1 0x20 DUP3 MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0x1919 JUMPI PUSH2 0x1913 DUP4 PUSH1 0xFF DUP5 DUP2 AND PUSH1 0x20 MUL AND DUP4 OR PUSH2 0x1A7A JUMP JUMPDEST POP PUSH2 0x1528 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0x194D JUMPI PUSH2 0x193A DUP4 PUSH1 0x18 PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0x1982 JUMPI PUSH2 0x196F DUP4 PUSH1 0x19 PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x2 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0x19B9 JUMPI PUSH2 0x19A6 DUP4 PUSH1 0x1A PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x4 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x1528 JUMPI PUSH2 0x19E1 DUP4 PUSH1 0x1B PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x19F4 DUP4 DUP3 PUSH1 0x8 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1A02 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x171F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x1AAB JUMP JUMPDEST PUSH2 0x1A25 DUP3 PUSH1 0xC3 PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x17FC DUP3 DUP3 PUSH1 0x0 NOT SUB PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3F SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1B61 JUMP JUMPDEST PUSH2 0x1A64 DUP3 PUSH1 0xC2 PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x17FC DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3F SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH2 0x1A82 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x171F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x1A9A PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x1779 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x1AB3 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP6 GT ISZERO ISZERO ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 ADD MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1AF2 JUMPI PUSH2 0x1AF2 DUP9 PUSH2 0x1AEA DUP11 PUSH1 0x20 ADD MLOAD DUP11 DUP10 ADD PUSH2 0x1C17 JUMP JUMPDEST PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST DUP8 MLOAD DUP1 MLOAD DUP9 PUSH1 0x20 DUP4 ADD ADD SWAP5 POP DUP1 DUP10 DUP9 ADD GT ISZERO PUSH2 0x1B0E JUMPI DUP9 DUP8 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP9 ADD SWAP4 POP POP POP JUMPDEST PUSH1 0x20 DUP6 LT PUSH2 0x1B39 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x1F NOT SWAP1 SWAP5 ADD SWAP4 PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1B17 JUMP JUMPDEST POP MLOAD DUP2 MLOAD PUSH1 0x20 SWAP5 SWAP1 SWAP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x1B76 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD DUP4 LT PUSH2 0x1B92 JUMPI PUSH2 0x1B92 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0x1BAE JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1BC1 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x20 ADD MLOAD DUP6 DUP5 ADD GT ISZERO PUSH2 0x1BE0 JUMPI PUSH2 0x1BE0 DUP7 DUP7 DUP6 ADD PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1C0B JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP SWAP6 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x1C28 JUMPI POP DUP2 PUSH2 0x1233 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1C3A DUP4 DUP4 PUSH2 0x18BD JUMP JUMPDEST POP PUSH2 0x19F4 DUP4 DUP3 PUSH2 0x19FA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x1C75 PUSH2 0x1C7A JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 CALLDATALOAD PUSH2 0x2272 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x227E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 CALLDATALOAD PUSH2 0x2283 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x2283 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x22A8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1C92 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1C9E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D29 DUP6 DUP6 PUSH2 0x1CAA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D3A DUP6 DUP3 DUP7 ADD PUSH2 0x1CAA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1CAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1CB6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1D98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DA4 DUP9 DUP9 PUSH2 0x1CC2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1DB5 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1DC6 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1DD7 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1DE8 DUP9 DUP3 DUP10 ADD PUSH2 0x1CC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2272 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x227E JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2283 JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2286 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E2A DUP3 PUSH2 0x226E JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E3E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x22B7 JUMP JUMPDEST PUSH2 0x1E47 DUP2 PUSH2 0x22E3 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x28 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665722072656D61696E696E67204C494E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4B20746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x636C650000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH32 0x43616E206F6E6C7920636865636B207261696E66616C6C206F6E636520706572 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2064617900000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x31 DUP2 MSTORE PUSH32 0x436F6E74726163742068617320656E6465642C2063616E7420696E7465726163 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x74207769746820697420616E796D6F7265000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x4F6E6C7920496E737572616E63652070726F76696465722063616E20646F2074 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6869730000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x28 DUP2 MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2072657175657374000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1DF5 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x20D4 DUP3 DUP6 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x171F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x20F0 DUP3 DUP12 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x20FD PUSH1 0x20 DUP4 ADD DUP11 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x210A PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x2117 PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x2124 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x1E16 JUMP JUMPDEST PUSH2 0x2131 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x213E PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x2150 DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x216C DUP3 DUP7 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x2179 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x14F5 DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1E04 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1E0D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x171F DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1E54 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1EAA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1F00 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1F56 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1FAC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1FDC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x2032 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x2062 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x20D4 DUP3 DUP6 PUSH2 0x1E0D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x2254 DUP3 DUP7 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x2261 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x1779 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E0D JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22D2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x22BA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x19F4 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 JUMP STOP LOG2 PUSH6 0x627A7A723058 KECCAK256 0xae PUSH29 0x6B1BC3E9C37BD83CE7EF0D6EBC72EE71C196BD8A89B84FA508D5C11D3F BLOCKHASH PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY LOG2 PUSH6 0x627A7A723058 KECCAK256 PUSH11 0x9FF78FAEB5974430352B26 DUP2 GASLIMIT 0xbc SWAP5 EXTCODESIZE 0xed PUSH16 0x9B68339EF70368B5E9BB8D6C6E6C6578 PUSH17 0x6572696D656E74616CF500370000000000 ",
"sourceMap": "1024:4971:0:-;;;1100:35;;;-1:-1:-1;;;;;;1100:35:0;;;1125:10;1100:35;;;;;1667:77;;;;;1701:42;1667:77;;;1024:4971;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405260043610620000b95763ffffffff60e060020a6000350416630ad1c2fa8114620000bb578063125716d614620000f85780635d0c1476146200012c5780635fdc628114620001535780636896c870146200017a5780636f9fb98a146200019f57806371f2864014620001b75780637c463db014620001dc5780638e15f47314620001f4578063a1219c42146200020c578063dbc837c51462000216578063dfdf79e8146200022e578063e3db17b81462000245575b005b348015620000c857600080fd5b50620000e0620000da36600462000a7e565b6200026a565b604051620000ef919062000e23565b60405180910390f35b3480156200010557600080fd5b506200011d6200011736600462000a7e565b62000288565b604051620000ef919062000e13565b3480156200013957600080fd5b50620001446200030f565b604051620000ef919062000d39565b3480156200016057600080fd5b506200016b6200031e565b604051620000ef919062000e33565b3480156200018757600080fd5b506200016b6200019936600462000a7e565b62000323565b348015620001ac57600080fd5b506200016b620003a3565b348015620001c457600080fd5b506200016b620001d636600462000a7e565b620003a8565b348015620001e957600080fd5b5062000144620003ed565b3480156200020157600080fd5b506200016b62000405565b620000b9620004e2565b3480156200022357600080fd5b506200014462000672565b620001446200023f36600462000ac8565b62000681565b3480156200025257600080fd5b50620000b96200026436600462000a7e565b620008f4565b600160a060020a039081166000908152600260205260409020541690565b60008082905080600160a060020a031663c032846b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620002cd57600080fd5b505af1158015620002e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000308919081019062000b61565b9392505050565b600054600160a060020a031690565b603c81565b60008082905080600160a060020a0316633fad18346040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200036857600080fd5b505af11580156200037d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000308919081019062000b82565b303190565b60008082905080600160a060020a0316630c15c3656040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200036857600080fd5b73a36085f69e2889c224210f603d836748e7dc008881565b600080600080600080600160009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1580156200046257600080fd5b505af115801562000477573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200049d919081019062000ba3565b94509450945094509450600082111515620004d85760405160e560020a62461bcd028152600401620004cf9062000e67565b60405180910390fd5b5091949350505050565b60008054600160a060020a03163314620005135760405160e560020a62461bcd028152600401620004cf9062000e55565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815273a36085f69e2889c224210f603d836748e7dc008890819063a9059cbb90339083906370a08231906200057290309060040162000d39565b602060405180830381600087803b1580156200058d57600080fd5b505af1158015620005a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620005c8919081019062000b82565b6040518363ffffffff1660e060020a028152600401620005ea92919062000d49565b602060405180830381600087803b1580156200060557600080fd5b505af11580156200061a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000640919081019062000b61565b1515620006645760405160e560020a62461bcd028152600401620004cf9062000e43565b600054600160a060020a0316ff5b600054600160a060020a031681565b6000805481908190600160a060020a03163314620006b65760405160e560020a62461bcd028152600401620004cf9062000e55565b620006dc620006c462000405565b670de0b6b3a764000087029063ffffffff6200097816565b888888888873a36085f69e2889c224210f603d836748e7dc008867016345785d8a000062000709620009bd565b6200071b979695949392919062000d96565b6040518091039082f08015801562000737573d6000803e3d6000fd5b50600160a060020a03811660008181526002602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916909217909155519093507fa44aa7756c3391a11525eeee40213754bf3aee2a051d2597433fb40572a47d769150620007a99084903490899062000d68565b60405180910390a181600160a060020a031663165d35e16040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620007f057600080fd5b505af115801562000805573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506200082b919081019062000aa7565b9050600160a060020a03811663a9059cbb836200085867016345785d8a0000600263ffffffff6200099016565b6200086b8b603c63ffffffff6200097816565b600201026040518363ffffffff1660e060020a0281526004016200089192919062000d49565b602060405180830381600087803b158015620008ac57600080fd5b505af1158015620008c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620008e7919081019062000b61565b5090979650505050505050565b600081905080600160a060020a031663a241c0896040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200093857600080fd5b505af11580156200094d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000973919081019062000b82565b505050565b600081838115156200098657fe5b0490505b92915050565b6000821515620009a3575060006200098a565b50818102818382811515620009b457fe5b04146200098a57fe5b604051612ad88062000f4883390190565b600062000308823562000ece565b600062000308825162000ece565b600062000308825162000eda565b600062000308825162000edf565b6000601f8201831362000a1857600080fd5b813562000a2f62000a298262000ea1565b62000e79565b9150808252602083016020830185838301111562000a4c57600080fd5b62000a5983828462000efe565b50505092915050565b600062000308823562000edf565b600062000308825162000ee2565b60006020828403121562000a9157600080fd5b600062000a9f8484620009ce565b949350505050565b60006020828403121562000aba57600080fd5b600062000a9f8484620009dc565b600080600080600060a0868803121562000ae157600080fd5b600062000aef8888620009ce565b955050602062000b028882890162000a62565b945050604062000b158882890162000a62565b935050606062000b288882890162000a62565b925050608086013567ffffffffffffffff81111562000b4657600080fd5b62000b548882890162000a06565b9150509295509295909350565b60006020828403121562000b7457600080fd5b600062000a9f8484620009ea565b60006020828403121562000b9557600080fd5b600062000a9f8484620009f8565b600080600080600060a0868803121562000bbc57600080fd5b600062000bca888862000a70565b955050602062000bdd88828901620009f8565b945050604062000bf088828901620009f8565b935050606062000c0388828901620009f8565b925050608062000b548882890162000a70565b62000c218162000ece565b82525050565b62000c218162000eda565b62000c218162000ef1565b62000c218162000edf565b600062000c558262000eca565b80845262000c6b81602086016020860162000f0a565b62000c768162000f3d565b9093016020019392505050565b601281527f556e61626c6520746f207472616e736665720000000000000000000000000000602082015260400190565b602381527f4f6e6c7920496e737572616e63652070726f76696465722063616e20646f207460208201527f6869730000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b602081016200098a828462000c16565b6040810162000d59828562000c16565b62000308602083018462000c3d565b6060810162000d78828662000c16565b62000d87602083018562000c3d565b62000a9f604083018462000c3d565b60e0810162000da6828a62000c16565b62000db5602083018962000c3d565b62000dc4604083018862000c3d565b62000dd3606083018762000c3d565b818103608083015262000de7818662000c48565b905062000df860a083018562000c16565b62000e0760c083018462000c3d565b98975050505050505050565b602081016200098a828462000c27565b602081016200098a828462000c32565b602081016200098a828462000c3d565b602080825281016200098a8162000c83565b602080825281016200098a8162000cb3565b602080825281016200098a8162000d09565b60405181810167ffffffffffffffff8111828210171562000e9957600080fd5b604052919050565b600067ffffffffffffffff82111562000eb957600080fd5b506020601f91909101601f19160190565b5190565b600160a060020a031690565b151590565b90565b69ffffffffffffffffffff1690565b60006200098a8262000ece565b82818337506000910152565b60005b8381101562000f2757818101518382015260200162000f0d565b8381111562000f37576000848401525b50505050565b601f01601f19169056006080604081905260016004556017805461ff00191690556000601881905542601955601a819055601b5562002ad83881900390819083398101806040526200004b9190810190620004a2565b60068054600160a060020a0319908116331790915560078054909116739326bfa02add2366b30bacb125260af641031331179055620000938264010000000062000234810204565b6008819055620000c5620000af64010000000062000256810204565b8590640100000000620012226200035a82021704565b3410156200010a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010190620006dd565b60405180910390fd5b6009805433600160a060020a031991821617909155600a8054909116600160a060020a03891617905542600b55600c869055600d859055600e84905560006016556017805460ff1916600117905582516200016d90600f90602086019062000370565b50601480547305c8fadf1798437c143683e665800d58a42b6e19600160a060020a031991821681179092556015805490911690911790557f61313765386662663463626634366565623739653034623365623836346134656012819055601355600954600a54600c54600d54600e546040517f0203790cae2ea31823a6382172bd46011fcfbab29b22bb78b4b2f266febf6072956200021f95600160a060020a03918216959116939092909162000687565b60405180910390a150505050505050620007a1565b60028054600160a060020a031916600160a060020a0392909216919091179055565b600080600080600080600760009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160a060405180830381600087803b158015620002cc57600080fd5b505af1158015620002e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000307919081019062000565565b9450945094509450945060008211151562000350576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200010190620006f5565b5091949350505050565b600081838115156200036857fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003b357805160ff1916838001178555620003e3565b82800160010185558215620003e3579182015b82811115620003e3578251825591602001919060010190620003c6565b50620003f1929150620003f5565b5090565b6200041291905b80821115620003f15760008155600101620003fc565b90565b600062000423825162000756565b9392505050565b600062000423825162000412565b6000601f820183136200044a57600080fd5b8151620004616200045b826200072e565b62000707565b915080825260208301602083018583830111156200047e57600080fd5b6200048b8382846200076e565b50505092915050565b600062000423825162000762565b600080600080600080600060e0888a031215620004be57600080fd5b6000620004cc8a8a62000415565b9750506020620004df8a828b016200042a565b9650506040620004f28a828b016200042a565b9550506060620005058a828b016200042a565b94505060808801516001604060020a038111156200052257600080fd5b620005308a828b0162000438565b93505060a0620005438a828b0162000415565b92505060c0620005568a828b016200042a565b91505092959891949750929550565b600080600080600060a086880312156200057e57600080fd5b60006200058c888862000494565b95505060206200059f888289016200042a565b9450506040620005b2888289016200042a565b9350506060620005c5888289016200042a565b9250506080620005d88882890162000494565b9150509295509295909350565b620005f08162000756565b82525050565b602181527f4e6f7420656e6f7567682066756e64732073656e7420746f20636f6e7472616360208201527f7400000000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b620005f08162000412565b60a08101620006978288620005e5565b620006a66020830187620005e5565b620006b560408301866200067c565b620006c460608301856200067c565b620006d360808301846200067c565b9695505050505050565b60208082528101620006ef81620005f6565b92915050565b60208082528101620006ef816200064c565b6040518181016001604060020a03811182821017156200072657600080fd5b604052919050565b60006001604060020a038211156200074557600080fd5b506020601f91909101601f19160190565b600160a060020a031690565b6001605060020a031690565b60005b838110156200078b57818101518382015260200162000771565b838111156200079b576000848401525b50505050565b61232780620007b16000396000f30060806040526004361061013a5763ffffffff60e060020a6000350416630c15c365811461013c578063165d35e114610167578063185e5b4014610189578063243d9a5d146101a95780633fad1834146101be5780634162cc88146101d357806356a6d508146101f35780635b69a7d8146102085780635fdc6281146102285780636f9fb98a1461023d578063715018a6146102525780637a50413d146102675780638da5cb5b1461027c5780638e15f47314610291578063a241c089146102a6578063ad2e8c9b146102bb578063b0b30fee146102d0578063b1b91f7a146102f2578063b807873214610312578063bbe4fd5014610327578063c032846b1461033c578063c974402914610351578063ce2ce3fc14610366578063dbc837c514610388578063dcbacd111461039d578063f2fde38b146103b2575b005b34801561014857600080fd5b506101516103d2565b60405161015e9190612199565b60405180910390f35b34801561017357600080fd5b5061017c6103d8565b60405161015e91906120b8565b34801561019557600080fd5b506101516101a4366004611d44565b6103e7565b3480156101b557600080fd5b506101516103fb565b3480156101ca57600080fd5b50610151610401565b3480156101df57600080fd5b506101516101ee366004611d44565b610407565b3480156101ff57600080fd5b50610151610414565b34801561021457600080fd5b5061017c610223366004611d44565b61041a565b34801561023457600080fd5b50610151610437565b34801561024957600080fd5b5061015161043c565b34801561025e57600080fd5b5061013a610441565b34801561027357600080fd5b506101516104ce565b34801561028857600080fd5b5061017c6104d4565b34801561029d57600080fd5b506101516104e3565b3480156102b257600080fd5b506101516105b0565b3480156102c757600080fd5b50610151610aea565b3480156102dc57600080fd5b506102e5610af0565b60405161015e919061218b565b3480156102fe57600080fd5b5061013a61030d366004611d0a565b610afe565b34801561031e57600080fd5b50610151610d06565b34801561033357600080fd5b50610151610d0b565b34801561034857600080fd5b506102e5610d0f565b34801561035d57600080fd5b50610151610d18565b34801561037257600080fd5b5061037b610d1e565b60405161015e91906121a7565b34801561039457600080fd5b5061017c610db4565b3480156103a957600080fd5b50610151610dc3565b3480156103be57600080fd5b5061013a6103cd366004611cce565b610dc9565b60185490565b60006103e2610e02565b905090565b601081600281106103f457fe5b0154905081565b600e5490565b601a5490565b601281600281106103f457fe5b60195490565b6014816002811061042757fe5b0154600160a060020a0316905081565b603c81565b303190565b600954600160a060020a031633146104775760405160e560020a62461bcd02815260040161046e90612208565b60405180910390fd5b600654604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26006805473ffffffffffffffffffffffffffffffffffffffff19169055565b60165490565b600654600160a060020a031681565b600080600080600080600760009054906101000a9004600160a060020a0316600160a060020a031663feaf968c6040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15801561053f57600080fd5b505af1158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105779190810190611d80565b945094509450945094506000821115156105a65760405160e560020a62461bcd02815260040161046e90612218565b5091949350505050565b60175460009060609060ff1615156001146105e05760405160e560020a62461bcd02815260040161046e906121e8565b6105e8610e11565b60175460ff1615610ae6576000601b5560408051606081018252603a81527f687474703a2f2f6170692e776f726c64776561746865726f6e6c696e652e636f60208083019182527f6d2f7072656d69756d2f76312f776561746865722e617368783f0000000000008385015283518085018552601e81527f36323963366464303962626334333634623761333338313032303039313100008183015293518351939493600f9391909201918291908083835b602083106106b95780518252601f19909201916020918201910161069a565b51815160209384036101000a60001901801990921691161790527f6b65793d00000000000000000000000000000000000000000000000000000000919093019081528551600490910192860191508083835b6020831061072a5780518252601f19909201916020918201910161070b565b6001836020036101000a038019825116818451168082178552505050505050905001807f26713d0000000000000000000000000000000000000000000000000000000000815250600301828054600181600116156101000203166002900480156107cb5780601f106107a95761010080835404028352918201916107cb565b820191906000526020600020905b8154815290600101906020018083116107b7575b50507f26666f726d61743d6a736f6e266e756d5f6f665f646179733d31000000000000815260408051600519818403018152601a9092019052945061088e9350601492506000915061081a9050565b0154600160a060020a031660126000015483606060405190810160405280602181526020017f646174612e63757272656e745f636f6e646974696f6e2e302e7072656369704d81526020017f4d0000000000000000000000000000000000000000000000000000000000000081525061109e565b50606060405190810160405280602781526020017f68747470733a2f2f6170692e776561746865726269742e696f2f76322e302f6381526020017f757272656e743f00000000000000000000000000000000000000000000000000815250600f6040805190810160405280602081526020017f35653035616566303734313034303166616334393162303665623965386663388152506040516020018084805190602001908083835b602083106109565780518252601f199092019160209182019101610937565b6001836020036101000a038019825116818451168082178552505050505050905001807f636974793d000000000000000000000000000000000000000000000000000000815250600501838054600181600116156101000203166002900480156109f75780601f106109d55761010080835404028352918201916109f7565b820191906000526020600020905b8154815290600101906020018083116109e3575b5050807f266b65793d00000000000000000000000000000000000000000000000000000081525060050182805190602001908083835b60208310610a4c5780518252601f199092019160209182019101610a2d565b6001836020036101000a03801982511681845116808217855250505050505090500193505050506040516020818303038152906040529050610ae460146001600281101515610a9757fe5b0154600160a060020a0316601260010154836040805190810160405280600d81526020017f646174612e302e7072656369700000000000000000000000000000000000000081525061109e565b505b5090565b600c5490565b601754610100900460ff1690565b6000828152600560205260409020548290600160a060020a03163314610b395760405160e560020a62461bcd02815260040161046e90612228565b600081815260056020526040808220805473ffffffffffffffffffffffffffffffffffffffff191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a260175460ff161515600114610bb35760405160e560020a62461bcd02815260040161046e906121e8565b610bd6610bc8603c600c63ffffffff61122216565b603c9063ffffffff61123916565b601954610bea90429063ffffffff61123916565b11610c0a5760405160e560020a62461bcd02815260040161046e906121d8565b816010601b54600281101515610c1c57fe5b0155601b80546001908101918290551015610cca57601154601054610c5391600291610c479161124b565b9063ffffffff61122216565b601881905542601955601a805460010190551515610c7957601680546001019055610cb8565b60006016556018546040517f2e5a5a6cf30e14f6500f404203cc44691f83c62354f375539ea7d45bcc49230591610caf91612199565b60405180910390a15b601654600311610cca57610cca611258565b7f9acb88f10af47daa34522605143d1719bad9aa6562e4c443c8abb9d594ea73f482604051610cf99190612199565b60405180910390a1505050565b600381565b4290565b60175460ff1690565b600d5490565b600f8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610daa5780601f10610d7f57610100808354040283529160200191610daa565b820191906000526020600020905b815481529060010190602001808311610d8d57829003601f168201915b5050505050905090565b600954600160a060020a031681565b600b5490565b600954600160a060020a03163314610df65760405160e560020a62461bcd02815260040161046e90612208565b610dff81611455565b50565b600254600160a060020a031690565b600042600c54600b54011015610dff57600c54600290610e3890603c63ffffffff61122216565b03601a54101515610e8357600954604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610e7d573d6000803e3d6000fd5b50610f11565b600a54600160a060020a03166108fc610eac610e9d6104e3565b600d549063ffffffff61122216565b6040518115909202916000818181858888f19350505050158015610ed4573d6000803e3d6000fd5b50600954604051600160a060020a0390911690303180156108fc02916000818181858888f19350505050158015610f0f573d6000803e3d6000fd5b505b610f19610e02565b6009546040517f70a08231000000000000000000000000000000000000000000000000000000008152919250600160a060020a038084169263a9059cbb929091169083906370a0823190610f719030906004016120b8565b602060405180830381600087803b158015610f8b57600080fd5b505af1158015610f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fc39190810190611d62565b6040518363ffffffff1660e060020a028152600401610fe39291906120c6565b602060405180830381600087803b158015610ffd57600080fd5b505af1158015611011573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110359190810190611cec565b15156110565760405160e560020a62461bcd02815260040161046e906121b8565b6017805460ff191690556040517f71d9f146944417dd66115a997376d9878c3618f396c331a6c3aa82ce653eae1490611093904290303190612238565b60405180910390a150565b60006110a8611c45565b60175460ff1615156001146110d25760405160e560020a62461bcd02815260040161046e906121e8565b6110fd85307fb1b91f7a000000000000000000000000000000000000000000000000000000006114d3565b60408051808201909152600381527f676574000000000000000000000000000000000000000000000000000000000060208201529091506111469082908663ffffffff6114fe16565b60408051808201909152600481527f7061746800000000000000000000000000000000000000000000000000000000602082015261118c9082908563ffffffff6114fe16565b60408051808201909152600581527f74696d657300000000000000000000000000000000000000000000000000000060208201526111d3908290606463ffffffff61152d16565b6111e08682600854611557565b91507f9b79db1508864f538c7703d2267a0c858007ee5877c83d83aec1b431e5add541826040516112119190612199565b60405180910390a150949350505050565b6000818381151561122f57fe5b0490505b92915050565b60008282111561124557fe5b50900390565b8181018281101561123357fe5b60175460009060ff1615156001146112855760405160e560020a62461bcd02815260040161046e906121e8565b600a54604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156112bf573d6000803e3d6000fd5b506112c8610e02565b6009546040517f70a08231000000000000000000000000000000000000000000000000000000008152919250600160a060020a038084169263a9059cbb929091169083906370a08231906113209030906004016120b8565b602060405180830381600087803b15801561133a57600080fd5b505af115801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113729190810190611d62565b6040518363ffffffff1660e060020a0281526004016113929291906120c6565b602060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113e49190810190611cec565b15156114055760405160e560020a62461bcd02815260040161046e906121f8565b600e546018546040517fd8874104029b491ba57b1b4875bd4ba8d4a98bf0261e1fdfac96db44022f95f89261143b924292612246565b60405180910390a1506017805461ffff1916610100179055565b600160a060020a038116151561146a57600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6114db611c45565b6114e3611c45565b6114f58186868663ffffffff61172616565b95945050505050565b6080830151611513908363ffffffff61178116565b6080830151611528908263ffffffff61178116565b505050565b6080830151611542908363ffffffff61178116565b6080830151611528908263ffffffff61179e16565b6000306004546040516020018083600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401828152602001925050506040516020818303038152906040526040518082805190602001908083835b602083106115d35780518252601f1990920191602091820191016115b4565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912060045460608a015260008181526005909252838220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038c1617905592519295508594507fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99350919050a2600254600160a060020a0316634000aea0858461168187611800565b6040518463ffffffff1660e060020a0281526004016116a29392919061215e565b602060405180830381600087803b1580156116bc57600080fd5b505af11580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116f49190810190611cec565b15156117155760405160e560020a62461bcd02815260040161046e906121c8565b6004805460010190555b9392505050565b61172e611c45565b61173e85608001516101006118bd565b5050828452600160a060020a03821660208501527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1981166040850152835b949350505050565b61178e82600383516118f7565b611528828263ffffffff6119fa16565b67ffffffffffffffff198112156117be576117b98282611a14565b6117fc565b67ffffffffffffffff8113156117d8576117b98282611a53565b600081126117ec576117b9826000836118f7565b6117fc82600183600019036118f7565b5050565b80516020820151604080840151606085810151608087015151935191957f40429946000000000000000000000000000000000000000000000000000000009561185a956000958695939492939092916001916024016120e1565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19909316929092179091529050919050565b6118c5611c7a565b60208206156118da5760208206602003820191505b506020828101829052604080518085526000815290920101905290565b60178111611919576119138360ff848116602002168317611a7a565b50611528565b60ff811161194d5761193a836018602060ff8616021763ffffffff611a7a16565b506119138382600163ffffffff611a9216565b61ffff81116119825761196f836019602060ff8616021763ffffffff611a7a16565b506119138382600263ffffffff611a9216565b63ffffffff81116119b9576119a683601a602060ff8616021763ffffffff611a7a16565b506119138382600463ffffffff611a9216565b67ffffffffffffffff8111611528576119e183601b602060ff8616021763ffffffff611a7a16565b506119f48382600863ffffffff611a9216565b50505050565b611a02611c7a565b61171f83846000015151848551611aab565b611a258260c363ffffffff611a7a16565b506117fc828260001903604051602001611a3f9190612199565b604051602081830303815290604052611b61565b611a648260c263ffffffff611a7a16565b506117fc8282604051602001611a3f9190612199565b611a82611c7a565b61171f8384600001515184611b6e565b611a9a611c7a565b611779848560000151518585611bb9565b611ab3611c7a565b600080600085518511151515611ac857600080fd5b87602001518588011115611af257611af288611aea8a602001518a8901611c17565b600202611c2e565b875180518860208301019450808988011115611b0e5788870182525b60208801935050505b60208510611b395781518352601f199094019360209283019290910190611b17565b505181516020949094036101000a600019018019909116931692909217909152509192915050565b61178e82600283516118f7565b611b76611c7a565b60208401518310611b9257611b92848560200151600202611c2e565b8351805160208583010184815381861415611bae576001820183525b509495945050505050565b611bc1611c7a565b600085602001518584011115611be057611be086868501600202611c2e565b6001836101000a0390508551838682010185831982511617815281518588011115611c0b5784870182525b50959695505050505050565b600081831115611c28575081611233565b50919050565b8151611c3a83836118bd565b506119f483826119fa565b6040805160c081018252600080825260208201819052918101829052606081019190915260808101611c75611c7a565b905290565b60408051808201909152606081526000602082015290565b600061171f8235612272565b600061171f825161227e565b600061171f8235612283565b600061171f8251612283565b600061171f82516122a8565b600060208284031215611ce057600080fd5b60006117798484611c92565b600060208284031215611cfe57600080fd5b60006117798484611c9e565b60008060408385031215611d1d57600080fd5b6000611d298585611caa565b9250506020611d3a85828601611caa565b9150509250929050565b600060208284031215611d5657600080fd5b60006117798484611caa565b600060208284031215611d7457600080fd5b60006117798484611cb6565b600080600080600060a08688031215611d9857600080fd5b6000611da48888611cc2565b9550506020611db588828901611cb6565b9450506040611dc688828901611cb6565b9350506060611dd788828901611cb6565b9250506080611de888828901611cc2565b9150509295509295909350565b611dfe81612272565b82525050565b611dfe8161227e565b611dfe81612283565b611dfe81612286565b6000611e2a8261226e565b808452611e3e8160208601602086016122b7565b611e47816122e3565b9093016020019392505050565b602881527f556e61626c6520746f207472616e736665722072656d61696e696e67204c494e60208201527f4b20746f6b656e73000000000000000000000000000000000000000000000000604082015260600190565b602381527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f726160208201527f636c650000000000000000000000000000000000000000000000000000000000604082015260600190565b602481527f43616e206f6e6c7920636865636b207261696e66616c6c206f6e63652070657260208201527f2064617900000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f436f6e74726163742068617320656e6465642c2063616e7420696e746572616360208201527f74207769746820697420616e796d6f7265000000000000000000000000000000604082015260600190565b601281527f556e61626c6520746f207472616e736665720000000000000000000000000000602082015260400190565b602381527f4f6e6c7920496e737572616e63652070726f76696465722063616e20646f207460208201527f6869730000000000000000000000000000000000000000000000000000000000604082015260600190565b601281527f526f756e64206e6f7420636f6d706c6574650000000000000000000000000000602082015260400190565b602881527f536f75726365206d75737420626520746865206f7261636c65206f662074686560208201527f2072657175657374000000000000000000000000000000000000000000000000604082015260600190565b602081016112338284611df5565b604081016120d48285611df5565b61171f6020830184611e0d565b61010081016120f0828b611df5565b6120fd602083018a611e0d565b61210a6040830189611e0d565b6121176060830188611df5565b6121246080830187611e16565b61213160a0830186611e0d565b61213e60c0830185611e0d565b81810360e08301526121508184611e1f565b9a9950505050505050505050565b6060810161216c8286611df5565b6121796020830185611e0d565b81810360408301526114f58184611e1f565b602081016112338284611e04565b602081016112338284611e0d565b6020808252810161171f8184611e1f565b6020808252810161123381611e54565b6020808252810161123381611eaa565b6020808252810161123381611f00565b6020808252810161123381611f56565b6020808252810161123381611fac565b6020808252810161123381611fdc565b6020808252810161123381612032565b6020808252810161123381612062565b604081016120d48285611e0d565b606081016122548286611e0d565b6122616020830185611e0d565b6117796040830184611e0d565b5190565b600160a060020a031690565b151590565b90565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690565b69ffffffffffffffffffff1690565b60005b838110156122d25781810151838201526020016122ba565b838111156119f45750506000910152565b601f01601f1916905600a265627a7a72305820ae7c6b1bc3e9c37bd83ce7ef0d6ebc72ee71c196bd8a89b84fa508d5c11d3f406c6578706572696d656e74616cf50037a265627a7a723058206a9ff78faeb5974430352b268145bc943bed6f9b68339ef70368b5e9bb8d6c6e6c6578706572696d656e74616cf50037",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH3 0xB9 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xAD1C2FA DUP2 EQ PUSH3 0xBB JUMPI DUP1 PUSH4 0x125716D6 EQ PUSH3 0xF8 JUMPI DUP1 PUSH4 0x5D0C1476 EQ PUSH3 0x12C JUMPI DUP1 PUSH4 0x5FDC6281 EQ PUSH3 0x153 JUMPI DUP1 PUSH4 0x6896C870 EQ PUSH3 0x17A JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH3 0x19F JUMPI DUP1 PUSH4 0x71F28640 EQ PUSH3 0x1B7 JUMPI DUP1 PUSH4 0x7C463DB0 EQ PUSH3 0x1DC JUMPI DUP1 PUSH4 0x8E15F473 EQ PUSH3 0x1F4 JUMPI DUP1 PUSH4 0xA1219C42 EQ PUSH3 0x20C JUMPI DUP1 PUSH4 0xDBC837C5 EQ PUSH3 0x216 JUMPI DUP1 PUSH4 0xDFDF79E8 EQ PUSH3 0x22E JUMPI DUP1 PUSH4 0xE3DB17B8 EQ PUSH3 0x245 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xE0 PUSH3 0xDA CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x26A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xEF SWAP2 SWAP1 PUSH3 0xE23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x11D PUSH3 0x117 CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x288 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xEF SWAP2 SWAP1 PUSH3 0xE13 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x139 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x144 PUSH3 0x30F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xEF SWAP2 SWAP1 PUSH3 0xD39 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x160 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xEF SWAP2 SWAP1 PUSH3 0xE33 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x199 CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x323 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x3A3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x3A8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x1E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x144 PUSH3 0x3ED JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x16B PUSH3 0x405 JUMP JUMPDEST PUSH3 0xB9 PUSH3 0x4E2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x144 PUSH3 0x672 JUMP JUMPDEST PUSH3 0x144 PUSH3 0x23F CALLDATASIZE PUSH1 0x4 PUSH3 0xAC8 JUMP JUMPDEST PUSH3 0x681 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH3 0x252 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0xB9 PUSH3 0x264 CALLDATASIZE PUSH1 0x4 PUSH3 0xA7E JUMP JUMPDEST PUSH3 0x8F4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC032846B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x2CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x2E2 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 0x308 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB61 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x3C DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x3FAD1834 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x37D 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 0x308 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB82 JUMP JUMPDEST ADDRESS BALANCE SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xC15C365 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x368 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH20 0xA36085F69E2889C224210F603D836748E7DC0088 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x462 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x477 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 0x49D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xBA3 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH3 0x4D8 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x4CF SWAP1 PUSH3 0xE67 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x513 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x4CF SWAP1 PUSH3 0xE55 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xA36085F69E2889C224210F603D836748E7DC0088 SWAP1 DUP2 SWAP1 PUSH4 0xA9059CBB SWAP1 CALLER SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH3 0x572 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH3 0xD39 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x58D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x5A2 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 0x5C8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x5EA SWAP3 SWAP2 SWAP1 PUSH3 0xD49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x605 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x61A 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 0x640 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB61 JUMP JUMPDEST ISZERO ISZERO PUSH3 0x664 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x4CF SWAP1 PUSH3 0xE43 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SELFDESTRUCT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH3 0x6B6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x4CF SWAP1 PUSH3 0xE55 JUMP JUMPDEST PUSH3 0x6DC PUSH3 0x6C4 PUSH3 0x405 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP8 MUL SWAP1 PUSH4 0xFFFFFFFF PUSH3 0x978 AND JUMP JUMPDEST DUP9 DUP9 DUP9 DUP9 DUP9 PUSH20 0xA36085F69E2889C224210F603D836748E7DC0088 PUSH8 0x16345785D8A0000 PUSH3 0x709 PUSH3 0x9BD JUMP JUMPDEST PUSH3 0x71B SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 DUP3 CREATE DUP1 ISZERO DUP1 ISZERO PUSH3 0x737 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE MLOAD SWAP1 SWAP4 POP PUSH32 0xA44AA7756C3391A11525EEEE40213754BF3AEE2A051D2597433FB40572A47D76 SWAP2 POP PUSH3 0x7A9 SWAP1 DUP5 SWAP1 CALLVALUE SWAP1 DUP10 SWAP1 PUSH3 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x165D35E1 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x7F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x805 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 0x82B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xAA7 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH4 0xA9059CBB DUP4 PUSH3 0x858 PUSH8 0x16345785D8A0000 PUSH1 0x2 PUSH4 0xFFFFFFFF PUSH3 0x990 AND JUMP JUMPDEST PUSH3 0x86B DUP12 PUSH1 0x3C PUSH4 0xFFFFFFFF PUSH3 0x978 AND JUMP JUMPDEST PUSH1 0x2 ADD MUL PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x891 SWAP3 SWAP2 SWAP1 PUSH3 0xD49 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x8AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x8C1 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 0x8E7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB61 JUMP JUMPDEST POP SWAP1 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA241C089 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x94D 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 0x973 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0xB82 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH3 0x986 JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 ISZERO ISZERO PUSH3 0x9A3 JUMPI POP PUSH1 0x0 PUSH3 0x98A JUMP JUMPDEST POP DUP2 DUP2 MUL DUP2 DUP4 DUP3 DUP2 ISZERO ISZERO PUSH3 0x9B4 JUMPI INVALID JUMPDEST DIV EQ PUSH3 0x98A JUMPI INVALID JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2AD8 DUP1 PUSH3 0xF48 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 CALLDATALOAD PUSH3 0xECE JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 MLOAD PUSH3 0xECE JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 MLOAD PUSH3 0xEDA JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 MLOAD PUSH3 0xEDF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH3 0xA18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH3 0xA2F PUSH3 0xA29 DUP3 PUSH3 0xEA1 JUMP JUMPDEST PUSH3 0xE79 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH3 0xA4C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0xA59 DUP4 DUP3 DUP5 PUSH3 0xEFE JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 CALLDATALOAD PUSH3 0xEDF JUMP JUMPDEST PUSH1 0x0 PUSH3 0x308 DUP3 MLOAD PUSH3 0xEE2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xA91 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xA9F DUP5 DUP5 PUSH3 0x9CE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xABA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xA9F DUP5 DUP5 PUSH3 0x9DC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0xAE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xAEF DUP9 DUP9 PUSH3 0x9CE JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH3 0xB02 DUP9 DUP3 DUP10 ADD PUSH3 0xA62 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0xB15 DUP9 DUP3 DUP10 ADD PUSH3 0xA62 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0xB28 DUP9 DUP3 DUP10 ADD PUSH3 0xA62 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0xB46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0xB54 DUP9 DUP3 DUP10 ADD PUSH3 0xA06 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xB74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xA9F DUP5 DUP5 PUSH3 0x9EA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0xB95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xA9F DUP5 DUP5 PUSH3 0x9F8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0xBBC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0xBCA DUP9 DUP9 PUSH3 0xA70 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH3 0xBDD DUP9 DUP3 DUP10 ADD PUSH3 0x9F8 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0xBF0 DUP9 DUP3 DUP10 ADD PUSH3 0x9F8 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0xC03 DUP9 DUP3 DUP10 ADD PUSH3 0x9F8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH3 0xB54 DUP9 DUP3 DUP10 ADD PUSH3 0xA70 JUMP JUMPDEST PUSH3 0xC21 DUP2 PUSH3 0xECE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH3 0xC21 DUP2 PUSH3 0xEDA JUMP JUMPDEST PUSH3 0xC21 DUP2 PUSH3 0xEF1 JUMP JUMPDEST PUSH3 0xC21 DUP2 PUSH3 0xEDF JUMP JUMPDEST PUSH1 0x0 PUSH3 0xC55 DUP3 PUSH3 0xECA JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH3 0xC6B DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH3 0xF0A JUMP JUMPDEST PUSH3 0xC76 DUP2 PUSH3 0xF3D JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x4F6E6C7920496E737572616E63652070726F76696465722063616E20646F2074 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6869730000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x98A DUP3 DUP5 PUSH3 0xC16 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH3 0xD59 DUP3 DUP6 PUSH3 0xC16 JUMP JUMPDEST PUSH3 0x308 PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0xC3D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH3 0xD78 DUP3 DUP7 PUSH3 0xC16 JUMP JUMPDEST PUSH3 0xD87 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0xC3D JUMP JUMPDEST PUSH3 0xA9F PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0xC3D JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH3 0xDA6 DUP3 DUP11 PUSH3 0xC16 JUMP JUMPDEST PUSH3 0xDB5 PUSH1 0x20 DUP4 ADD DUP10 PUSH3 0xC3D JUMP JUMPDEST PUSH3 0xDC4 PUSH1 0x40 DUP4 ADD DUP9 PUSH3 0xC3D JUMP JUMPDEST PUSH3 0xDD3 PUSH1 0x60 DUP4 ADD DUP8 PUSH3 0xC3D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH3 0xDE7 DUP2 DUP7 PUSH3 0xC48 JUMP JUMPDEST SWAP1 POP PUSH3 0xDF8 PUSH1 0xA0 DUP4 ADD DUP6 PUSH3 0xC16 JUMP JUMPDEST PUSH3 0xE07 PUSH1 0xC0 DUP4 ADD DUP5 PUSH3 0xC3D JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x98A DUP3 DUP5 PUSH3 0xC27 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x98A DUP3 DUP5 PUSH3 0xC32 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x98A DUP3 DUP5 PUSH3 0xC3D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x98A DUP2 PUSH3 0xC83 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x98A DUP2 PUSH3 0xCB3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x98A DUP2 PUSH3 0xD09 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0xE99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0xEB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD SWAP1 JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x98A DUP3 PUSH3 0xECE JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0xF27 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0xF0D JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0xF37 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 JUMP STOP PUSH1 0x80 PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE PUSH1 0x17 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x0 PUSH1 0x18 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x19 SSTORE PUSH1 0x1A DUP2 SWAP1 SSTORE PUSH1 0x1B SSTORE PUSH3 0x2AD8 CODESIZE DUP2 SWAP1 SUB SWAP1 DUP2 SWAP1 DUP4 CODECOPY DUP2 ADD DUP1 PUSH1 0x40 MSTORE PUSH3 0x4B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x4A2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP1 DUP2 AND CALLER OR SWAP1 SWAP2 SSTORE PUSH1 0x7 DUP1 SLOAD SWAP1 SWAP2 AND PUSH20 0x9326BFA02ADD2366B30BACB125260AF641031331 OR SWAP1 SSTORE PUSH3 0x93 DUP3 PUSH5 0x100000000 PUSH3 0x234 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x8 DUP2 SWAP1 SSTORE PUSH3 0xC5 PUSH3 0xAF PUSH5 0x100000000 PUSH3 0x256 DUP2 MUL DIV JUMP JUMPDEST DUP6 SWAP1 PUSH5 0x100000000 PUSH3 0x1222 PUSH3 0x35A DUP3 MUL OR DIV JUMP JUMPDEST CALLVALUE LT ISZERO PUSH3 0x10A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x101 SWAP1 PUSH3 0x6DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x9 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0xA DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP10 AND OR SWAP1 SSTORE TIMESTAMP PUSH1 0xB SSTORE PUSH1 0xC DUP7 SWAP1 SSTORE PUSH1 0xD DUP6 SWAP1 SSTORE PUSH1 0xE DUP5 SWAP1 SSTORE PUSH1 0x0 PUSH1 0x16 SSTORE PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP3 MLOAD PUSH3 0x16D SWAP1 PUSH1 0xF SWAP1 PUSH1 0x20 DUP7 ADD SWAP1 PUSH3 0x370 JUMP JUMPDEST POP PUSH1 0x14 DUP1 SLOAD PUSH20 0x5C8FADF1798437C143683E665800D58A42B6E19 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH1 0x15 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x6131376538666266346362663436656562373965303462336562383634613465 PUSH1 0x12 DUP2 SWAP1 SSTORE PUSH1 0x13 SSTORE PUSH1 0x9 SLOAD PUSH1 0xA SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH32 0x203790CAE2EA31823A6382172BD46011FCFBAB29B22BB78B4B2F266FEBF6072 SWAP6 PUSH3 0x21F SWAP6 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP6 SWAP2 AND SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 PUSH3 0x687 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP PUSH3 0x7A1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x2CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x2E1 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 0x307 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH3 0x565 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH3 0x350 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x101 SWAP1 PUSH3 0x6F5 JUMP JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH3 0x368 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP 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 PUSH3 0x3B3 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x3E3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x3E3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x3E3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x3C6 JUMP JUMPDEST POP PUSH3 0x3F1 SWAP3 SWAP2 POP PUSH3 0x3F5 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH3 0x412 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x3F1 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3FC JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x756 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x412 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F DUP3 ADD DUP4 SGT PUSH3 0x44A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x461 PUSH3 0x45B DUP3 PUSH3 0x72E JUMP JUMPDEST PUSH3 0x707 JUMP JUMPDEST SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP4 ADD DUP6 DUP4 DUP4 ADD GT ISZERO PUSH3 0x47E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x48B DUP4 DUP3 DUP5 PUSH3 0x76E JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x423 DUP3 MLOAD PUSH3 0x762 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH3 0x4BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x4CC DUP11 DUP11 PUSH3 0x415 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH3 0x4DF DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH3 0x4F2 DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH3 0x505 DUP11 DUP3 DUP12 ADD PUSH3 0x42A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 DUP9 ADD MLOAD PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP2 GT ISZERO PUSH3 0x522 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x530 DUP11 DUP3 DUP12 ADD PUSH3 0x438 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH3 0x543 DUP11 DUP3 DUP12 ADD PUSH3 0x415 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH3 0x556 DUP11 DUP3 DUP12 ADD PUSH3 0x42A 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 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x57E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x58C DUP9 DUP9 PUSH3 0x494 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH3 0x59F DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH3 0x5B2 DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH3 0x5C5 DUP9 DUP3 DUP10 ADD PUSH3 0x42A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH3 0x5D8 DUP9 DUP3 DUP10 ADD PUSH3 0x494 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH3 0x5F0 DUP2 PUSH3 0x756 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x21 DUP2 MSTORE PUSH32 0x4E6F7420656E6F7567682066756E64732073656E7420746F20636F6E74726163 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x7400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH3 0x5F0 DUP2 PUSH3 0x412 JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH3 0x697 DUP3 DUP9 PUSH3 0x5E5 JUMP JUMPDEST PUSH3 0x6A6 PUSH1 0x20 DUP4 ADD DUP8 PUSH3 0x5E5 JUMP JUMPDEST PUSH3 0x6B5 PUSH1 0x40 DUP4 ADD DUP7 PUSH3 0x67C JUMP JUMPDEST PUSH3 0x6C4 PUSH1 0x60 DUP4 ADD DUP6 PUSH3 0x67C JUMP JUMPDEST PUSH3 0x6D3 PUSH1 0x80 DUP4 ADD DUP5 PUSH3 0x67C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x6EF DUP2 PUSH3 0x5F6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x6EF DUP2 PUSH3 0x64C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH3 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 PUSH1 0x2 EXP SUB DUP3 GT ISZERO PUSH3 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x20 PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x50 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x78B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x771 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x79B JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2327 DUP1 PUSH3 0x7B1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13A JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC15C365 DUP2 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x165D35E1 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x185E5B40 EQ PUSH2 0x189 JUMPI DUP1 PUSH4 0x243D9A5D EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x3FAD1834 EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x4162CC88 EQ PUSH2 0x1D3 JUMPI DUP1 PUSH4 0x56A6D508 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x5B69A7D8 EQ PUSH2 0x208 JUMPI DUP1 PUSH4 0x5FDC6281 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x6F9FB98A EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x7A50413D EQ PUSH2 0x267 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x8E15F473 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0xA241C089 EQ PUSH2 0x2A6 JUMPI DUP1 PUSH4 0xAD2E8C9B EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0xB0B30FEE EQ PUSH2 0x2D0 JUMPI DUP1 PUSH4 0xB1B91F7A EQ PUSH2 0x2F2 JUMPI DUP1 PUSH4 0xB8078732 EQ PUSH2 0x312 JUMPI DUP1 PUSH4 0xBBE4FD50 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xC032846B EQ PUSH2 0x33C JUMPI DUP1 PUSH4 0xC9744029 EQ PUSH2 0x351 JUMPI DUP1 PUSH4 0xCE2CE3FC EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0xDBC837C5 EQ PUSH2 0x388 JUMPI DUP1 PUSH4 0xDCBACD11 EQ PUSH2 0x39D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3B2 JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x148 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x3D2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x20B8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x1A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x3E7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x3FB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x401 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x407 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x414 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x214 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D44 JUMP JUMPDEST PUSH2 0x41A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x437 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x43C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x441 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x273 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x4CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0x4D4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x4E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0x5B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xAEA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x218B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x30D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D0A JUMP JUMPDEST PUSH2 0xAFE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD0B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH2 0xD0F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xD18 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x372 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x37B PUSH2 0xD1E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15E SWAP2 SWAP1 PUSH2 0x21A7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17C PUSH2 0xDB4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x151 PUSH2 0xDC3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13A PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x1CCE JUMP JUMPDEST PUSH2 0xDC9 JUMP JUMPDEST PUSH1 0x18 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E2 PUSH2 0xE02 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x10 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x3F4 JUMPI INVALID JUMPDEST ADD SLOAD SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0xE SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1A SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x3F4 JUMPI INVALID JUMPDEST PUSH1 0x19 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x14 DUP2 PUSH1 0x2 DUP2 LT PUSH2 0x427 JUMPI INVALID JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 POP DUP2 JUMP JUMPDEST PUSH1 0x3C DUP2 JUMP JUMPDEST ADDRESS BALANCE SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x477 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2208 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 PUSH32 0xF8DF31144D9C2F0F6B59D69B8B98ABD5459D07F2742C4DF920B25AAE33C64820 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x16 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xFEAF968C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x53F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x553 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 0x577 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D80 JUMP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP SWAP5 POP PUSH1 0x0 DUP3 GT ISZERO ISZERO PUSH2 0x5A6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2218 JUMP JUMPDEST POP SWAP2 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 SWAP1 PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x5E0 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0x5E8 PUSH2 0xE11 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xAE6 JUMPI PUSH1 0x0 PUSH1 0x1B SSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x3A DUP2 MSTORE PUSH32 0x687474703A2F2F6170692E776F726C64776561746865726F6E6C696E652E636F PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH32 0x6D2F7072656D69756D2F76312F776561746865722E617368783F000000000000 DUP4 DUP6 ADD MSTORE DUP4 MLOAD DUP1 DUP6 ADD DUP6 MSTORE PUSH1 0x1E DUP2 MSTORE PUSH32 0x3632396336646430396262633433363462376133333831303230303931310000 DUP2 DUP4 ADD MSTORE SWAP4 MLOAD DUP4 MLOAD SWAP4 SWAP5 SWAP4 PUSH1 0xF SWAP4 SWAP2 SWAP1 SWAP3 ADD SWAP2 DUP3 SWAP2 SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x6B9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x69A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x6B65793D00000000000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x72A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x70B JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x26713D0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x3 ADD DUP3 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x7CB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x7A9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 DUP3 ADD SWAP2 PUSH2 0x7CB 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 0x7B7 JUMPI JUMPDEST POP POP PUSH32 0x26666F726D61743D6A736F6E266E756D5F6F665F646179733D31000000000000 DUP2 MSTORE PUSH1 0x40 DUP1 MLOAD PUSH1 0x5 NOT DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x1A SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP5 POP PUSH2 0x88E SWAP4 POP PUSH1 0x14 SWAP3 POP PUSH1 0x0 SWAP2 POP PUSH2 0x81A SWAP1 POP JUMP JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x12 PUSH1 0x0 ADD SLOAD DUP4 PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174612E63757272656E745F636F6E646974696F6E2E302E7072656369704D DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x109E JUMP JUMPDEST POP PUSH1 0x60 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x68747470733A2F2F6170692E776561746865726269742E696F2F76322E302F63 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x757272656E743F00000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0xF PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3565303561656630373431303430316661633439316230366562396538666338 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x956 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x937 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x636974793D000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x5 ADD DUP4 DUP1 SLOAD PUSH1 0x1 DUP2 PUSH1 0x1 AND ISZERO PUSH2 0x100 MUL SUB AND PUSH1 0x2 SWAP1 DIV DUP1 ISZERO PUSH2 0x9F7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x9D5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 DUP3 ADD SWAP2 PUSH2 0x9F7 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 0x9E3 JUMPI JUMPDEST POP POP DUP1 PUSH32 0x266B65793D000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x5 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0xA4C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0xA2D JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xAE4 PUSH1 0x14 PUSH1 0x1 PUSH1 0x2 DUP2 LT ISZERO ISZERO PUSH2 0xA97 JUMPI INVALID JUMPDEST ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x12 PUSH1 0x1 ADD SLOAD DUP4 PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x646174612E302E70726563697000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x109E JUMP JUMPDEST POP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0xC SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 SWAP1 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xB39 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2228 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0xBB3 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0xBD6 PUSH2 0xBC8 PUSH1 0x3C PUSH1 0xC PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x3C SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1239 AND JUMP JUMPDEST PUSH1 0x19 SLOAD PUSH2 0xBEA SWAP1 TIMESTAMP SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1239 AND JUMP JUMPDEST GT PUSH2 0xC0A JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21D8 JUMP JUMPDEST DUP2 PUSH1 0x10 PUSH1 0x1B SLOAD PUSH1 0x2 DUP2 LT ISZERO ISZERO PUSH2 0xC1C JUMPI INVALID JUMPDEST ADD SSTORE PUSH1 0x1B DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 ADD SWAP2 DUP3 SWAP1 SSTORE LT ISZERO PUSH2 0xCCA JUMPI PUSH1 0x11 SLOAD PUSH1 0x10 SLOAD PUSH2 0xC53 SWAP2 PUSH1 0x2 SWAP2 PUSH2 0xC47 SWAP2 PUSH2 0x124B JUMP JUMPDEST SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x18 DUP2 SWAP1 SSTORE TIMESTAMP PUSH1 0x19 SSTORE PUSH1 0x1A DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE ISZERO ISZERO PUSH2 0xC79 JUMPI PUSH1 0x16 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE PUSH2 0xCB8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x16 SSTORE PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH32 0x2E5A5A6CF30E14F6500F404203CC44691F83C62354F375539EA7D45BCC492305 SWAP2 PUSH2 0xCAF SWAP2 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST PUSH1 0x16 SLOAD PUSH1 0x3 GT PUSH2 0xCCA JUMPI PUSH2 0xCCA PUSH2 0x1258 JUMP JUMPDEST PUSH32 0x9ACB88F10AF47DAA34522605143D1719BAD9AA6562E4C443C8ABB9D594EA73F4 DUP3 PUSH1 0x40 MLOAD PUSH2 0xCF9 SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 JUMP JUMPDEST TIMESTAMP SWAP1 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0xD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F PUSH1 0x2 PUSH1 0x0 NOT PUSH2 0x100 PUSH1 0x1 DUP9 AND ISZERO MUL ADD SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 DIV SWAP4 DUP5 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP3 DUP2 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP3 SWAP1 SWAP2 DUP4 ADD DUP3 DUP3 DUP1 ISZERO PUSH2 0xDAA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD7F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xDAA 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 0xD8D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 JUMP JUMPDEST PUSH1 0xB SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xDF6 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x2208 JUMP JUMPDEST PUSH2 0xDFF DUP2 PUSH2 0x1455 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 TIMESTAMP PUSH1 0xC SLOAD PUSH1 0xB SLOAD ADD LT ISZERO PUSH2 0xDFF JUMPI PUSH1 0xC SLOAD PUSH1 0x2 SWAP1 PUSH2 0xE38 SWAP1 PUSH1 0x3C PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST SUB PUSH1 0x1A SLOAD LT ISZERO ISZERO PUSH2 0xE83 JUMPI PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0xF11 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH2 0x8FC PUSH2 0xEAC PUSH2 0xE9D PUSH2 0x4E3 JUMP JUMPDEST PUSH1 0xD SLOAD SWAP1 PUSH4 0xFFFFFFFF PUSH2 0x1222 AND JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 ISZERO SWAP1 SWAP3 MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xED4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0xF0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMPDEST PUSH2 0xF19 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0xF71 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x20B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF9F 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 0xFC3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE3 SWAP3 SWAP2 SWAP1 PUSH2 0x20C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xFFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1011 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 0x1035 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1056 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21B8 JUMP JUMPDEST PUSH1 0x17 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x71D9F146944417DD66115A997376D9878C3618F396C331A6C3AA82CE653EAE14 SWAP1 PUSH2 0x1093 SWAP1 TIMESTAMP SWAP1 ADDRESS BALANCE SWAP1 PUSH2 0x2238 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10A8 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x17 SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x10D2 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH2 0x10FD DUP6 ADDRESS PUSH32 0xB1B91F7A00000000000000000000000000000000000000000000000000000000 PUSH2 0x14D3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH32 0x6765740000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x1146 SWAP1 DUP3 SWAP1 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x14FE AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP2 MSTORE PUSH32 0x7061746800000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x118C SWAP1 DUP3 SWAP1 DUP6 PUSH4 0xFFFFFFFF PUSH2 0x14FE AND JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x5 DUP2 MSTORE PUSH32 0x74696D6573000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x11D3 SWAP1 DUP3 SWAP1 PUSH1 0x64 PUSH4 0xFFFFFFFF PUSH2 0x152D AND JUMP JUMPDEST PUSH2 0x11E0 DUP7 DUP3 PUSH1 0x8 SLOAD PUSH2 0x1557 JUMP JUMPDEST SWAP2 POP PUSH32 0x9B79DB1508864F538C7703D2267A0C858007EE5877C83D83AEC1B431E5ADD541 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1211 SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 DUP2 ISZERO ISZERO PUSH2 0x122F JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1245 JUMPI INVALID JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST DUP2 DUP2 ADD DUP3 DUP2 LT ISZERO PUSH2 0x1233 JUMPI INVALID JUMPDEST PUSH1 0x17 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND ISZERO ISZERO PUSH1 0x1 EQ PUSH2 0x1285 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21E8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP1 ADDRESS BALANCE DUP1 ISZERO PUSH2 0x8FC MUL SWAP2 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x12BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH2 0x12C8 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 PUSH4 0xA9059CBB SWAP3 SWAP1 SWAP2 AND SWAP1 DUP4 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH2 0x1320 SWAP1 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x20B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP PUSH2 0x1372 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1D62 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1392 SWAP3 SWAP2 SWAP1 PUSH2 0x20C6 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13C0 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 0x13E4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1405 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21F8 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH1 0x18 SLOAD PUSH1 0x40 MLOAD PUSH32 0xD8874104029B491BA57B1B4875BD4BA8D4A98BF0261E1FDFAC96DB44022F95F8 SWAP3 PUSH2 0x143B SWAP3 TIMESTAMP SWAP3 PUSH2 0x2246 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH1 0x17 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x146A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP5 AND SWAP3 AND SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 PUSH1 0x6 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x14DB PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x14E3 PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x14F5 DUP2 DUP7 DUP7 DUP7 PUSH4 0xFFFFFFFF PUSH2 0x1726 AND JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1513 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1528 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1542 SWAP1 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1781 AND JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x1528 SWAP1 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x179E AND JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH13 0x1000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x15D3 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x15B4 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP3 SWAP1 SWAP5 ADD DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x4 SLOAD PUSH1 0x60 DUP11 ADD MSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE DUP4 DUP3 KECCAK256 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP13 AND OR SWAP1 SSTORE SWAP3 MLOAD SWAP3 SWAP6 POP DUP6 SWAP5 POP PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP4 POP SWAP2 SWAP1 POP LOG2 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0x1681 DUP8 PUSH2 0x1800 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16A2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x215E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16D0 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 0x16F4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1CEC JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1715 JUMPI PUSH1 0x40 MLOAD PUSH1 0xE5 PUSH1 0x2 EXP PUSH3 0x461BCD MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x46E SWAP1 PUSH2 0x21C8 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x172E PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x173E DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x18BD JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x178E DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x1528 DUP3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x19FA AND JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF NOT DUP2 SLT ISZERO PUSH2 0x17BE JUMPI PUSH2 0x17B9 DUP3 DUP3 PUSH2 0x1A14 JUMP JUMPDEST PUSH2 0x17FC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 SGT ISZERO PUSH2 0x17D8 JUMPI PUSH2 0x17B9 DUP3 DUP3 PUSH2 0x1A53 JUMP JUMPDEST PUSH1 0x0 DUP2 SLT PUSH2 0x17EC JUMPI PUSH2 0x17B9 DUP3 PUSH1 0x0 DUP4 PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x17FC DUP3 PUSH1 0x1 DUP4 PUSH1 0x0 NOT SUB PUSH2 0x18F7 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x60 DUP6 DUP2 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP4 MLOAD SWAP2 SWAP6 PUSH32 0x4042994600000000000000000000000000000000000000000000000000000000 SWAP6 PUSH2 0x185A SWAP6 PUSH1 0x0 SWAP6 DUP7 SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP1 SWAP3 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x20E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18C5 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x20 DUP3 MOD ISZERO PUSH2 0x18DA JUMPI PUSH1 0x20 DUP3 MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0x1919 JUMPI PUSH2 0x1913 DUP4 PUSH1 0xFF DUP5 DUP2 AND PUSH1 0x20 MUL AND DUP4 OR PUSH2 0x1A7A JUMP JUMPDEST POP PUSH2 0x1528 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0x194D JUMPI PUSH2 0x193A DUP4 PUSH1 0x18 PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x1 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0x1982 JUMPI PUSH2 0x196F DUP4 PUSH1 0x19 PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x2 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0x19B9 JUMPI PUSH2 0x19A6 DUP4 PUSH1 0x1A PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x1913 DUP4 DUP3 PUSH1 0x4 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0x1528 JUMPI PUSH2 0x19E1 DUP4 PUSH1 0x1B PUSH1 0x20 PUSH1 0xFF DUP7 AND MUL OR PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x19F4 DUP4 DUP3 PUSH1 0x8 PUSH4 0xFFFFFFFF PUSH2 0x1A92 AND JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1A02 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x171F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x1AAB JUMP JUMPDEST PUSH2 0x1A25 DUP3 PUSH1 0xC3 PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x17FC DUP3 DUP3 PUSH1 0x0 NOT SUB PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3F SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x1B61 JUMP JUMPDEST PUSH2 0x1A64 DUP3 PUSH1 0xC2 PUSH4 0xFFFFFFFF PUSH2 0x1A7A AND JUMP JUMPDEST POP PUSH2 0x17FC DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3F SWAP2 SWAP1 PUSH2 0x2199 JUMP JUMPDEST PUSH2 0x1A82 PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x171F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1B6E JUMP JUMPDEST PUSH2 0x1A9A PUSH2 0x1C7A JUMP JUMPDEST PUSH2 0x1779 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x1AB3 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 MLOAD DUP6 GT ISZERO ISZERO ISZERO PUSH2 0x1AC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 ADD MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1AF2 JUMPI PUSH2 0x1AF2 DUP9 PUSH2 0x1AEA DUP11 PUSH1 0x20 ADD MLOAD DUP11 DUP10 ADD PUSH2 0x1C17 JUMP JUMPDEST PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST DUP8 MLOAD DUP1 MLOAD DUP9 PUSH1 0x20 DUP4 ADD ADD SWAP5 POP DUP1 DUP10 DUP9 ADD GT ISZERO PUSH2 0x1B0E JUMPI DUP9 DUP8 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP9 ADD SWAP4 POP POP POP JUMPDEST PUSH1 0x20 DUP6 LT PUSH2 0x1B39 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x1F NOT SWAP1 SWAP5 ADD SWAP4 PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1B17 JUMP JUMPDEST POP MLOAD DUP2 MLOAD PUSH1 0x20 SWAP5 SWAP1 SWAP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x178E DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x1B76 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD DUP4 LT PUSH2 0x1B92 JUMPI PUSH2 0x1B92 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0x1BAE JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1BC1 PUSH2 0x1C7A JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x20 ADD MLOAD DUP6 DUP5 ADD GT ISZERO PUSH2 0x1BE0 JUMPI PUSH2 0x1BE0 DUP7 DUP7 DUP6 ADD PUSH1 0x2 MUL PUSH2 0x1C2E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1C0B JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP SWAP6 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x1C28 JUMPI POP DUP2 PUSH2 0x1233 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1C3A DUP4 DUP4 PUSH2 0x18BD JUMP JUMPDEST POP PUSH2 0x19F4 DUP4 DUP3 PUSH2 0x19FA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x1C75 PUSH2 0x1C7A JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 CALLDATALOAD PUSH2 0x2272 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x227E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 CALLDATALOAD PUSH2 0x2283 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x2283 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x171F DUP3 MLOAD PUSH2 0x22A8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1C92 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1C9E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D29 DUP6 DUP6 PUSH2 0x1CAA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1D3A DUP6 DUP3 DUP7 ADD PUSH2 0x1CAA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1CAA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1779 DUP5 DUP5 PUSH2 0x1CB6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1D98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DA4 DUP9 DUP9 PUSH2 0x1CC2 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1DB5 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1DC6 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1DD7 DUP9 DUP3 DUP10 ADD PUSH2 0x1CB6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 PUSH2 0x1DE8 DUP9 DUP3 DUP10 ADD PUSH2 0x1CC2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2272 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x227E JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2283 JUMP JUMPDEST PUSH2 0x1DFE DUP2 PUSH2 0x2286 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E2A DUP3 PUSH2 0x226E JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH2 0x1E3E DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x22B7 JUMP JUMPDEST PUSH2 0x1E47 DUP2 PUSH2 0x22E3 JUMP JUMPDEST SWAP1 SWAP4 ADD PUSH1 0x20 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x28 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665722072656D61696E696E67204C494E PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x4B20746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x636C650000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH32 0x43616E206F6E6C7920636865636B207261696E66616C6C206F6E636520706572 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2064617900000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x31 DUP2 MSTORE PUSH32 0x436F6E74726163742068617320656E6465642C2063616E7420696E7465726163 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x74207769746820697420616E796D6F7265000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x23 DUP2 MSTORE PUSH32 0x4F6E6C7920496E737572616E63652070726F76696465722063616E20646F2074 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6869730000000000000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x12 DUP2 MSTORE PUSH32 0x526F756E64206E6F7420636F6D706C6574650000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x28 DUP2 MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2072657175657374000000000000000000000000000000000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1DF5 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x20D4 DUP3 DUP6 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x171F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x100 DUP2 ADD PUSH2 0x20F0 DUP3 DUP12 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x20FD PUSH1 0x20 DUP4 ADD DUP11 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x210A PUSH1 0x40 DUP4 ADD DUP10 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x2117 PUSH1 0x60 DUP4 ADD DUP9 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x2124 PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x1E16 JUMP JUMPDEST PUSH2 0x2131 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x213E PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x2150 DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x216C DUP3 DUP7 PUSH2 0x1DF5 JUMP JUMPDEST PUSH2 0x2179 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x14F5 DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1E04 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1233 DUP3 DUP5 PUSH2 0x1E0D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x171F DUP2 DUP5 PUSH2 0x1E1F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1E54 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1EAA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1F00 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1F56 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1FAC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x1FDC JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x2032 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x1233 DUP2 PUSH2 0x2062 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x20D4 DUP3 DUP6 PUSH2 0x1E0D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x2254 DUP3 DUP7 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x2261 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1E0D JUMP JUMPDEST PUSH2 0x1779 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1E0D JUMP JUMPDEST MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 JUMP JUMPDEST PUSH10 0xFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x22D2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x22BA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x19F4 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 JUMP STOP LOG2 PUSH6 0x627A7A723058 KECCAK256 0xae PUSH29 0x6B1BC3E9C37BD83CE7EF0D6EBC72EE71C196BD8A89B84FA508D5C11D3F BLOCKHASH PUSH13 0x6578706572696D656E74616CF5 STOP CALLDATACOPY LOG2 PUSH6 0x627A7A723058 KECCAK256 PUSH11 0x9FF78FAEB5974430352B26 DUP2 GASLIMIT 0xbc SWAP5 EXTCODESIZE 0xed PUSH16 0x9B68339EF70368B5E9BB8D6C6E6C6578 PUSH17 0x6572696D656E74616CF500370000000000 ",
"sourceMap": "1024:4971:0:-;;;;;;;;;-1:-1:-1;;;1024:4971:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3439:126:0;;;;;;;;;;;;;;;;;;;;;;;;;4610:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4610:178:0;;;;;;;;;;;;;;;;;4442:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4442:85:0;;;;;;;;;;;;1188:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1188:40:0;;;;;;;;;;;;4159:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4159:183:0;;;;;;;;;4875:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4875:104:0;;;;3884:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3884:182:0;;;;;;;;;1377:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1377:79:0;;;;5497:389;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5497:389:0;;;;5178:261;;;;1100:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:35:0;;;;2266:1093;;;;;;;;;;3644:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3644:147:0;;;;;;;;;3439:126;-1:-1:-1;;;;;3538:20:0;;;3502:17;3538:20;;;:9;:20;;;;;;;;3439:126::o;4610:178::-;4678:4;4694:19;4734:8;4694:49;;4760:1;-1:-1:-1;;;;;4760:19:0;;:21;;;;;-1:-1:-1;;;4760:21:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4760:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4760:21: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;4760:21:0;;;;;;;;;4753:28;4610:178;-1:-1:-1;;;4610:178:0:o;4442:85::-;4487:7;4513;-1:-1:-1;;;;;4513:7:0;4442:85;:::o;1188:40::-;1226:2;1188:40;:::o;4159:183::-;4233:4;4249:19;4289:9;4249:50;;4316:1;-1:-1:-1;;;;;4316:17:0;;:19;;;;;-1:-1:-1;;;4316:19:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4316:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4316:19: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;4316:19:0;;;;;;;;4875:104;4959:4;4951:21;4875:104;:::o;3884:182::-;3954:4;3970:19;4010:9;3970:50;;4037:1;-1:-1:-1;;;;;4037:20:0;;:22;;;;;-1:-1:-1;;;4037:22:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;1377:79:0;1414:42;1377:79;:::o;5497:389::-;5544:3;5573:14;5602:9;5625:14;5653;5681:22;5716:9;;;;;;;;;-1:-1:-1;;;;;5716:9:0;-1:-1:-1;;;;;5716:25:0;;:27;;;;;-1:-1:-1;;;5716:27:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5716:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5716:27: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;5716:27:0;;;;;;;;;5559:184;;;;;;;;;;5833:1;5821:9;:13;5813:44;;;;;;-1:-1:-1;;;;;5813:44:0;;;;;;;;;;;;;;;;;-1:-1:-1;5874:5:0;;5497:389;-1:-1:-1;;;;5497:389:0:o;5178:261::-;5248:23;1893:7;;-1:-1:-1;;;;;1893:7:0;1904:10;1893:21;1885:68;;;;-1:-1:-1;;;;;1885:68:0;;;;;;;;;-1:-1:-1;5348:29:0;;;;;1414:42;;;;5322:13;;5336:10;;1414:42;;5348:14;;:29;;5371:4;;5348:29;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5348:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5348:29: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;5348:29:0;;;;;;;;;5322:56;;;;;-1:-1:-1;;;5322:56:0;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5322:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5322:56: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;5322:56:0;;;;;;;;;5314:87;;;;;;-1:-1:-1;;;;;5314:87:0;;;;;;;;;5424:7;;-1:-1:-1;;;;;5424:7:0;5411:21;1100:35;;;-1:-1:-1;;;;;1100:35:0;;:::o;2266:1093::-;2411:7;1893;;2411;;;;-1:-1:-1;;;;;1893:7:0;1904:10;1893:21;1885:68;;;;-1:-1:-1;;;;;1885:68:0;;;;;;;;;2586:52;2620:16;:14;:16::i;:::-;2602:7;2587:22;;;2586:52;:28;:52;:::i;:::-;2640:7;2649:9;2660:8;2670:12;2684:13;1414:42;1347:12;2556:169;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;2745:21:0;;;;;;:9;:21;;;;;;;:25;;-1:-1:-1;;2745:25:0;;;;;;;2911:52;2556:169;;-1:-1:-1;2911:52:0;;-1:-1:-1;2911:52:0;;2556:169;;2939:9;;2950:12;;2911:52;;;;;;;;;;3178:1;-1:-1:-1;;;;;3178:19:0;;:21;;;;;-1:-1:-1;;;3178:21:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3178:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3178:21: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;3178:21:0;;;;;;;;;3133:67;-1:-1:-1;;;;;;3210:13:0;;;3232:1;3276:21;1347:12;3295:1;3276:21;:18;:21;:::i;:::-;3238:29;:9;1226:2;3238:29;:13;:29;:::i;:::-;3271:1;3237:35;3236:61;3210:88;;;;;-1:-1:-1;;;3210:88:0;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3210:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3210:88: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;3210:88:0;;;;;;;;;-1:-1:-1;3341:1:0;;2266:1093;-1:-1:-1;;;;;;;2266:1093:0:o;3644:147::-;3706:19;3746:9;3706:50;;3766:1;-1:-1:-1;;;;;3766:16:0;;:18;;;;;-1:-1:-1;;;3766:18:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3766:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3766:18: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;3766:18:0;;;;;;;;;;3644:147;;:::o;674:283:13:-;734:7;950:2;945;:7;;;;;;;;938:14;;674:283;;;;;:::o;212:380::-;272:9;498:7;;494:36;;;-1:-1:-1;522:1:13;515:8;;494:36;-1:-1:-1;540:7:13;;;545:2;540;:7;560:6;;;;;;;;:12;553:20;;;1024:4971:0;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;130:122;;208:39;239:6;233:13;208:39;;259:116;;334:36;362:6;356:13;334:36;;382:122;;460:39;491:6;485:13;460:39;;639:442;;734:4;722:17;;718:27;-1:-1;708:2;;759:1;756;749:12;708:2;796:6;783:20;818:65;833:49;875:6;833:49;;;818:65;;;809:74;;903:6;896:5;889:21;939:4;931:6;927:17;972:4;965:5;961:16;1007:3;998:6;993:3;989:16;986:25;983:2;;;1024:1;1021;1014:12;983:2;1034:41;1068:6;1063:3;1058;1034:41;;;701:380;;;;;;;;1089:118;;1156:46;1194:6;1181:20;1156:46;;1343:120;;1420:38;1450:6;1444:13;1420:38;;1470:241;;1574:2;1562:9;1553:7;1549:23;1545:32;1542:2;;;1590:1;1587;1580:12;1542:2;1625:1;1642:53;1687:7;1667:9;1642:53;;;1632:63;1536:175;-1:-1;;;;1536:175;1718:263;;1833:2;1821:9;1812:7;1808:23;1804:32;1801:2;;;1849:1;1846;1839:12;1801:2;1884:1;1901:64;1957:7;1937:9;1901:64;;1988:849;;;;;;2170:3;2158:9;2149:7;2145:23;2141:33;2138:2;;;2187:1;2184;2177:12;2138:2;2222:1;2239:53;2284:7;2264:9;2239:53;;;2229:63;;2201:97;2329:2;2347:53;2392:7;2383:6;2372:9;2368:22;2347:53;;;2337:63;;2308:98;2437:2;2455:53;2500:7;2491:6;2480:9;2476:22;2455:53;;;2445:63;;2416:98;2545:2;2563:53;2608:7;2599:6;2588:9;2584:22;2563:53;;;2553:63;;2524:98;2681:3;2670:9;2666:19;2653:33;2706:18;2698:6;2695:30;2692:2;;;2738:1;2735;2728:12;2692:2;2758:63;2813:7;2804:6;2793:9;2789:22;2758:63;;;2748:73;;2632:195;2132:705;;;;;;;;;2844:257;;2956:2;2944:9;2935:7;2931:23;2927:32;2924:2;;;2972:1;2969;2962:12;2924:2;3007:1;3024:61;3077:7;3057:9;3024:61;;3108:263;;3223:2;3211:9;3202:7;3198:23;3194:32;3191:2;;;3239:1;3236;3229:12;3191:2;3274:1;3291:64;3347:7;3327:9;3291:64;;3648:803;;;;;;3828:3;3816:9;3807:7;3803:23;3799:33;3796:2;;;3845:1;3842;3835:12;3796:2;3880:1;3897:63;3952:7;3932:9;3897:63;;;3887:73;;3859:107;3997:2;4015:63;4070:7;4061:6;4050:9;4046:22;4015:63;;;4005:73;;3976:108;4115:2;4133:64;4189:7;4180:6;4169:9;4165:22;4133:64;;;4123:74;;4094:109;4234:2;4252:64;4308:7;4299:6;4288:9;4284:22;4252:64;;;4242:74;;4213:109;4353:3;4372:63;4427:7;4418:6;4407:9;4403:22;4372:63;;4458:110;4531:31;4556:5;4531:31;;;4526:3;4519:44;4513:55;;;4575:101;4642:28;4664:5;4642:28;;4683:168;4782:63;4839:5;4782:63;;4858:107;4929:30;4953:5;4929:30;;4972:300;;5074:39;5107:5;5074:39;;;5130:6;5125:3;5118:19;5142:63;5198:6;5191:4;5186:3;5182:14;5175:4;5168:5;5164:16;5142:63;;;5237:29;5259:6;5237:29;;;5217:50;;;5230:4;5217:50;;5054:218;-1:-1;;;5054:218;5280:296;5435:2;5423:15;;5472:66;5467:2;5458:12;;5451:88;5567:2;5558:12;;5416:160;5585:397;5740:2;5728:15;;5777:66;5772:2;5763:12;;5756:88;5878:66;5873:2;5864:12;;5857:88;5973:2;5964:12;;5721:261;5991:296;6146:2;6134:15;;6183:66;6178:2;6169:12;;6162:88;6278:2;6269:12;;6127:160;6412:193;6520:2;6505:18;;6534:61;6509:9;6568:6;6534:61;;6612:294;6748:2;6733:18;;6762:61;6737:9;6796:6;6762:61;;;6834:62;6892:2;6881:9;6877:18;6868:6;6834:62;;6913:395;7077:2;7062:18;;7091:61;7066:9;7125:6;7091:61;;;7163:62;7221:2;7210:9;7206:18;7197:6;7163:62;;;7236;7294:2;7283:9;7279:18;7270:6;7236:62;;7315:891;7611:3;7596:19;;7626:61;7600:9;7660:6;7626:61;;;7698:62;7756:2;7745:9;7741:18;7732:6;7698:62;;;7771;7829:2;7818:9;7814:18;7805:6;7771:62;;;7844;7902:2;7891:9;7887:18;7878:6;7844:62;;;7955:9;7949:4;7945:20;7939:3;7928:9;7924:19;7917:49;7980:68;8043:4;8034:6;7980:68;;;7972:76;;8059:63;8117:3;8106:9;8102:19;8093:6;8059:63;;;8133;8191:3;8180:9;8176:19;8167:6;8133:63;;;7582:624;;;;;;;;;;;8213:181;8315:2;8300:18;;8329:55;8304:9;8357:6;8329:55;;8401:245;8535:2;8520:18;;8549:87;8524:9;8609:6;8549:87;;8653:189;8759:2;8744:18;;8773:59;8748:9;8805:6;8773:59;;8849:387;9030:2;9044:47;;;9015:18;;9105:121;9015:18;9105:121;;9243:387;9424:2;9438:47;;;9409:18;;9499:121;9409:18;9499:121;;9637:387;9818:2;9832:47;;;9803:18;;9893:121;9803:18;9893:121;;10231:256;10293:2;10287:9;10319:17;;;10394:18;10379:34;;10415:22;;;10376:62;10373:2;;;10451:1;10448;10441:12;10373:2;10467;10460:22;10271:216;;-1:-1;10271:216;10494:259;;10638:18;10630:6;10627:30;10624:2;;;10670:1;10667;10660:12;10624:2;-1:-1;10743:4;10714;10691:17;;;;-1:-1;;10687:33;10733:15;;10561:192;10760:92;10835:12;;10819:33;10859:128;-1:-1;;;;;10928:54;;10911:76;10994:92;11067:13;11060:21;;11043:43;11093:78;11161:5;11144:27;11755:107;11834:22;11823:34;;11806:56;11869:141;;11974:31;11999:5;11974:31;;12018:145;12099:6;12094:3;12089;12076:30;-1:-1;12155:1;12137:16;;12130:27;12069:94;12172:268;12237:1;12244:101;12258:6;12255:1;12252:13;12244:101;;;12325:11;;;12319:18;12306:11;;;12299:39;12280:2;12273:10;12244:101;;;12360:6;12357:1;12354:13;12351:2;;;12425:1;12416:6;12411:3;12407:16;12400:27;12351:2;12221:219;;;;;12448:97;12536:2;12516:14;-1:-1;;12512:28;;12496:49"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "2987400",
"executionCost": "43779",
"totalCost": "3031179"
},
"external": {
"": "409",
"DAY_IN_SECONDS()": "414",
"LINK_KOVAN()": "577",
"endContractProvider()": "infinite",
"getContract(address)": "infinite",
"getContractBalance()": "857",
"getContractRainfall(address)": "infinite",
"getContractRequestCount(address)": "infinite",
"getContractStatus(address)": "infinite",
"getInsurer()": "742",
"getLatestPrice()": "infinite",
"insurer()": "918",
"newContract(address,uint256,uint256,uint256,string)": "infinite",
"updateContract(address)": "infinite"
}
},
"methodIdentifiers": {
"DAY_IN_SECONDS()": "5fdc6281",
"LINK_KOVAN()": "7c463db0",
"endContractProvider()": "a1219c42",
"getContract(address)": "0ad1c2fa",
"getContractBalance()": "6f9fb98a",
"getContractRainfall(address)": "71f28640",
"getContractRequestCount(address)": "6896c870",
"getContractStatus(address)": "125716d6",
"getInsurer()": "5d0c1476",
"getLatestPrice()": "8e15f473",
"insurer()": "dbc837c5",
"newContract(address,uint256,uint256,uint256,string)": "dfdf79e8",
"updateContract(address)": "e3db17b8"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"name": "_contract",
"type": "address"
}
],
"name": "getContract",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_address",
"type": "address"
}
],
"name": "getContractStatus",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getInsurer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "DAY_IN_SECONDS",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_contract",
"type": "address"
}
],
"name": "getContractRequestCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractBalance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_contract",
"type": "address"
}
],
"name": "getContractRainfall",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "LINK_KOVAN",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "endContractProvider",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "insurer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_client",
"type": "address"
},
{
"name": "_duration",
"type": "uint256"
},
{
"name": "_premium",
"type": "uint256"
},
{
"name": "_payoutValue",
"type": "uint256"
},
{
"name": "_cropLocation",
"type": "string"
}
],
"name": "newContract",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_contract",
"type": "address"
}
],
"name": "updateContract",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_insuranceContract",
"type": "address"
},
{
"indexed": false,
"name": "_premium",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalCover",
"type": "uint256"
}
],
"name": "contractCreated",
"type": "event"
}
]
}
{
"compiler": {
"version": "0.4.24+commit.e67f0147"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"name": "_contract",
"type": "address"
}
],
"name": "getContract",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_address",
"type": "address"
}
],
"name": "getContractStatus",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getInsurer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "DAY_IN_SECONDS",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_contract",
"type": "address"
}
],
"name": "getContractRequestCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getContractBalance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_contract",
"type": "address"
}
],
"name": "getContractRainfall",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "LINK_KOVAN",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getLatestPrice",
"outputs": [
{
"name": "",
"type": "int256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "endContractProvider",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "insurer",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_client",
"type": "address"
},
{
"name": "_duration",
"type": "uint256"
},
{
"name": "_premium",
"type": "uint256"
},
{
"name": "_payoutValue",
"type": "uint256"
},
{
"name": "_cropLocation",
"type": "string"
}
],
"name": "newContract",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_contract",
"type": "address"
}
],
"name": "updateContract",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"payable": true,
"stateMutability": "payable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "_insuranceContract",
"type": "address"
},
{
"indexed": false,
"name": "_premium",
"type": "uint256"
},
{
"indexed": false,
"name": "_totalCover",
"type": "uint256"
}
],
"name": "contractCreated",
"type": "event"
}
],
"devdoc": {
"methods": {
"endContractProvider()": {
"details": "Function to end provider contract, in case of bugs or needing to update logic etc, funds are returned to insurance provider, including any remaining LINK tokens"
},
"getContract(address)": {
"details": "returns the contract for a given address"
},
"getContractBalance()": {
"details": "Return how much ether is in this master contract"
},
"getContractRainfall(address)": {
"details": "gets the current rainfall for a given contract address"
},
"getContractRequestCount(address)": {
"details": "gets the current rainfall for a given contract address"
},
"getContractStatus(address)": {
"details": "Get the status of a given Contract"
},
"getInsurer()": {
"details": "Get the insurer address for this insurance provider"
},
"newContract(address,uint256,uint256,uint256,string)": {
"details": "Create a new contract for client, automatically approved and deployed to the blockchain"
},
"updateContract(address)": {
"details": "updates the contract for a given address"
}
}
},
"userdoc": {
"methods": {
"getLatestPrice()": {
"notice": "Returns the latest price"
}
}
}
},
"settings": {
"compilationTarget": {
"79cf8c59f1fbf6e6a0327920c9a9c49a/Parametric-Crop-Insurance.sol": "InsuranceProvider"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"79cf8c59f1fbf6e6a0327920c9a9c49a/Parametric-Crop-Insurance.sol": {
"keccak256": "0x69a7f1ba4320036e9ec8d803ef7386fa0e9c2a28fd65eab0600ff1da0ae56d35",
"urls": [
"bzzr://df8956114b97ca4384c8d51110c4518189f561f1cbc9885cab289db60c69907f"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/Chainlink.sol": {
"keccak256": "0x3e8d01f8aead4e1eac6b3332d366ed8bc2ef5d889c2c8c344777b981d4071f63",
"urls": [
"bzzr://7be4bdda81bc444446593968124112fb399d460f529d80761e50c47874b9cb4f"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/ChainlinkClient.sol": {
"keccak256": "0xc36504687b2b37000d8e6e25830cdb613c3e88509b0253aa09220e18876dc380",
"urls": [
"bzzr://a678a44b26b199a1600d422f4f6eda5d805f00a360245037a1c465b48274fe6d"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/AggregatorInterface.sol": {
"keccak256": "0xb21fa756e241d3fbfe7546158a7e1bb4a98f261744751c4e9dfe5f474ea46338",
"urls": [
"bzzr://acb860d28a70616f38d2d7d72ce5c82a2221734deefe67ace468112e92679bf7"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/AggregatorV3Interface.sol": {
"keccak256": "0xbf26d0dca0e2815b7c0bd09bddc9ceca339b8c9c2319ca74b2555273f5cbc19c",
"urls": [
"bzzr://2fcac254d89fbaf4c08461c7d7eb787e9143c7945683cb368119829e532db63d"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/ChainlinkRequestInterface.sol": {
"keccak256": "0x7d3983584065248fba8f0ce75fd86feac43ade43784466f87ea502254ddec992",
"urls": [
"bzzr://30de07df8cb9fb4ec53aff0f115f88d65936ffd6e90d2aeb031a05d6bf4de6c1"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/ENSInterface.sol": {
"keccak256": "0xd0b1a6134b5d6c0213bc4db5df8693ec41e13de3d97d43cc8d19639e516f9767",
"urls": [
"bzzr://93d66e26b4b5cf6cfa8c6a5d04cb56ff27d49a2aee8f54858ac3db7658355b1f"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/LinkTokenInterface.sol": {
"keccak256": "0x37f31fbd4f4f28ba236cbd9a61ae9b6f7806ea7fe0a684a855e4835f808f8b92",
"urls": [
"bzzr://5518135de15ba1afd8bdac829875935dea5520b152d1f602cdc34551d3c0b806"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/PointerInterface.sol": {
"keccak256": "0x8019f30a207af4ee80a8b2774e42aba721641254ed0a97826a54f33d7caef218",
"urls": [
"bzzr://8ddbb9ae67ec27aed40d6013d6ea176c05f7cd61d4f6fa95492a03fa086d90af"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/Buffer.sol": {
"keccak256": "0x900b4c8ab35b4876d89835a8b050c96107ace250a70f64c5bba6a78a60f03883",
"urls": [
"bzzr://408340da4e8fa35e608196ee508f11f9d44f6f70a10f0db0083ab20b5a894d59"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/CBOR.sol": {
"keccak256": "0x93faa5cd4bb12e81f73ee0edd3c1fe4fa6dbb0a0a7ab550e46b3c3d845268c9d",
"urls": [
"bzzr://c7f8bd088823a62b35a8138d5b2ff380d0527a030121a226c2a47559ea7d3679"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/ENSResolver.sol": {
"keccak256": "0x08965df63f00cb8d164d6fc36a0c388740725906b0bfb79b17391d5dfeabf683",
"urls": [
"bzzr://0700cb12e032ed8ed8327e446dfd805ae9fa28785a2909a73def511fe374b8cd"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/Ownable.sol": {
"keccak256": "0x84c7090c27cf3657b73d9e26b6b316975fa0bd233b8169f254de0c3b3acfaefc",
"urls": [
"bzzr://b983355647976c1daa5de581a1b6a41be9c5adc17cce257b8679649db78f8a11"
]
},
"https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/SafeMathChainlink.sol": {
"keccak256": "0xb822782dea15f1fa4992c27639e9f9e4a4758b2c2fd8b12ec90c4de336de9074",
"urls": [
"bzzr://1328bb1e33d56d48209e5bbea79fa18b212e8df3f449ac9a75d20962cc36cce5"
]
}
},
"version": 1
}
pragma solidity 0.4.24;
pragma experimental ABIEncoderV2;
//Truffle Imports
//import "chainlink/contracts/ChainlinkClient.sol";
//import "chainlink/contracts/vendor/Ownable.sol";
//import "chainlink/contracts/interfaces/LinkTokenInterface.sol";
//Remix imports - used when testing in remix
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/ChainlinkClient.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/Ownable.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/LinkTokenInterface.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/AggregatorInterface.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/vendor/SafeMathChainlink.sol";
import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.4/interfaces/AggregatorV3Interface.sol";
contract InsuranceProvider {
using SafeMathChainlink for uint;
address public insurer = msg.sender;
AggregatorV3Interface internal priceFeed;
uint public constant DAY_IN_SECONDS = 60; //How many seconds in a day. 60 for testing, 86400 for Production
uint256 constant private ORACLE_PAYMENT = 0.1 * 10**18; // 0.1 LINK
address public constant LINK_KOVAN = 0xa36085F69e2889c224210F603D836748e7dC0088 ; //address of LINK token on Kovan
//here is where all the insurance contracts are stored.
mapping (address => InsuranceContract) contracts;
constructor() public payable {
priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
}
/**
* @dev Prevents a function being run unless it's called by the Insurance Provider
*/
modifier onlyOwner() {
require(insurer == msg.sender,'Only Insurance provider can do this');
_;
}
/**
* @dev Event to log when a contract is created
*/
event contractCreated(address _insuranceContract, uint _premium, uint _totalCover);
/**
* @dev Create a new contract for client, automatically approved and deployed to the blockchain
*/
function newContract(address _client, uint _duration, uint _premium, uint _payoutValue, string _cropLocation) public payable onlyOwner() returns(address) {
//create contract, send payout amount so contract is fully funded plus a small buffer
InsuranceContract i = (new InsuranceContract).value((_payoutValue * 1 ether).div(uint(getLatestPrice())))(_client, _duration, _premium, _payoutValue, _cropLocation, LINK_KOVAN,ORACLE_PAYMENT);
contracts[address(i)] = i; //store insurance contract in contracts Map
//emit an event to say the contract has been created and funded
emit contractCreated(address(i), msg.value, _payoutValue);
//now that contract has been created, we need to fund it with enough LINK tokens to fulfil 1 Oracle request per day, with a small buffer added
LinkTokenInterface link = LinkTokenInterface(i.getChainlinkToken());
link.transfer(address(i), ((_duration.div(DAY_IN_SECONDS)) + 2) * ORACLE_PAYMENT.mul(2));
return address(i);
}
/**
* @dev returns the contract for a given address
*/
function getContract(address _contract) external view returns (InsuranceContract) {
return contracts[_contract];
}
/**
* @dev updates the contract for a given address
*/
function updateContract(address _contract) external {
InsuranceContract i = InsuranceContract(_contract);
i.updateContract();
}
/**
* @dev gets the current rainfall for a given contract address
*/
function getContractRainfall(address _contract) external view returns(uint) {
InsuranceContract i = InsuranceContract(_contract);
return i.getCurrentRainfall();
}
/**
* @dev gets the current rainfall for a given contract address
*/
function getContractRequestCount(address _contract) external view returns(uint) {
InsuranceContract i = InsuranceContract(_contract);
return i.getRequestCount();
}
/**
* @dev Get the insurer address for this insurance provider
*/
function getInsurer() external view returns (address) {
return insurer;
}
/**
* @dev Get the status of a given Contract
*/
function getContractStatus(address _address) external view returns (bool) {
InsuranceContract i = InsuranceContract(_address);
return i.getContractStatus();
}
/**
* @dev Return how much ether is in this master contract
*/
function getContractBalance() external view returns (uint) {
return address(this).balance;
}
/**
* @dev Function to end provider contract, in case of bugs or needing to update logic etc, funds are returned to insurance provider, including any remaining LINK tokens
*/
function endContractProvider() external payable onlyOwner() {
LinkTokenInterface link = LinkTokenInterface(LINK_KOVAN);
require(link.transfer(msg.sender, link.balanceOf(address(this))), "Unable to transfer");
selfdestruct(insurer);
}
/**
* Returns the latest price
*/
function getLatestPrice() public view returns (int) {
(
uint80 roundID,
int price,
uint startedAt,
uint timeStamp,
uint80 answeredInRound
) = priceFeed.latestRoundData();
// If the round is not complete yet, timestamp is 0
require(timeStamp > 0, "Round not complete");
return price;
}
/**
* @dev fallback function, to receive ether
*/
function() external payable { }
}
contract InsuranceContract is ChainlinkClient, Ownable {
using SafeMathChainlink for uint;
AggregatorV3Interface internal priceFeed;
uint public constant DAY_IN_SECONDS = 60; //How many seconds in a day. 60 for testing, 86400 for Production
uint public constant DROUGHT_DAYS_THRESDHOLD = 3 ; //Number of consecutive days without rainfall to be defined as a drought
uint256 private oraclePaymentAmount;
address public insurer;
address client;
uint startDate;
uint duration;
uint premium;
uint payoutValue;
string cropLocation;
uint256[2] public currentRainfallList;
bytes32[2] public jobIds;
address[2] public oracles;
string constant WORLD_WEATHER_ONLINE_URL = "http://api.worldweatheronline.com/premium/v1/weather.ashx?";
string constant WORLD_WEATHER_ONLINE_KEY = "629c6dd09bbc4364b7a33810200911";
string constant WORLD_WEATHER_ONLINE_PATH = "data.current_condition.0.precipMM";
string constant OPEN_WEATHER_URL = "https://openweathermap.org/data/2.5/weather?";
string constant OPEN_WEATHER_KEY = "b4e40205aeb3f27b74333393de24ca79";
string constant OPEN_WEATHER_PATH = "rain.1h";
string constant WEATHERBIT_URL = "https://api.weatherbit.io/v2.0/current?";
string constant WEATHERBIT_KEY = "5e05aef07410401fac491b06eb9e8fc8";
string constant WEATHERBIT_PATH = "data.0.precip";
uint daysWithoutRain; //how many days there has been with 0 rain
bool contractActive; //is the contract currently active, or has it ended
bool contractPaid = false;
uint currentRainfall = 0; //what is the current rainfall for the location
uint currentRainfallDateChecked = now; //when the last rainfall check was performed
uint requestCount = 0; //how many requests for rainfall data have been made so far for this insurance contract
uint dataRequestsSent = 0; //variable used to determine if both requests have been sent or not
/**
* @dev Prevents a function being run unless it's called by Insurance Provider
*/
modifier onlyOwner() {
require(insurer == msg.sender,'Only Insurance provider can do this');
_;
}
/**
* @dev Prevents a function being run unless the Insurance Contract duration has been reached
*/
modifier onContractEnded() {
if (startDate + duration < now) {
_;
}
}
/**
* @dev Prevents a function being run unless contract is still active
*/
modifier onContractActive() {
require(contractActive == true ,'Contract has ended, cant interact with it anymore');
_;
}
/**
* @dev Prevents a data request to be called unless it's been a day since the last call (to avoid spamming and spoofing results)
* apply a tolerance of 2/24 of a day or 2 hours.
*/
modifier callFrequencyOncePerDay() {
require(now.sub(currentRainfallDateChecked) > (DAY_IN_SECONDS.sub(DAY_IN_SECONDS.div(12))),'Can only check rainfall once per day');
_;
}
event contractCreated(address _insurer, address _client, uint _duration, uint _premium, uint _totalCover);
event contractPaidOut(uint _paidTime, uint _totalPaid, uint _finalRainfall);
event contractEnded(uint _endTime, uint _totalReturned);
event ranfallThresholdReset(uint _rainfall);
event dataRequestSent(bytes32 requestId);
event dataReceived(uint _rainfall);
/**
* @dev Creates a new Insurance contract
*/
constructor(address _client, uint _duration, uint _premium, uint _payoutValue, string _cropLocation,
address _link, uint256 _oraclePaymentAmount) payable Ownable() public {
//set ETH/USD Price Feed
priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
//initialize variables required for Chainlink Network interaction
setChainlinkToken(_link);
oraclePaymentAmount = _oraclePaymentAmount;
//first ensure insurer has fully funded the contract
require(msg.value >= _payoutValue.div(uint(getLatestPrice())), "Not enough funds sent to contract");
//now initialize values for the contract
insurer= msg.sender;
client = _client;
startDate = now ; //contract will be effective immediately on creation
duration = _duration;
premium = _premium;
payoutValue = _payoutValue;
daysWithoutRain = 0;
contractActive = true;
cropLocation = _cropLocation;
//set the oracles and jodids to values from nodes on market.link
//oracles[0] = 0x240bae5a27233fd3ac5440b5a598467725f7d1cd;
//oracles[1] = 0x5b4247e58fe5a54a116e4a3be32b31be7030c8a3;
//jobIds[0] = '1bc4f827ff5942eaaa7540b7dd1e20b9';
//jobIds[1] = 'e67ddf1f394d44e79a9a2132efd00050';
//or if you have your own node and job setup you can use it for both requests
oracles[0] = 0x05c8fadf1798437c143683e665800d58a42b6e19;
oracles[1] = 0x05c8fadf1798437c143683e665800d58a42b6e19;
jobIds[0] = 'a17e8fbf4cbf46eeb79e04b3eb864a4e';
jobIds[1] = 'a17e8fbf4cbf46eeb79e04b3eb864a4e';
emit contractCreated(insurer,
client,
duration,
premium,
payoutValue);
}
/**
* @dev Calls out to an Oracle to obtain weather data
*/
function updateContract() public onContractActive() returns (bytes32 requestId) {
//first call end contract in case of insurance contract duration expiring, if it hasn't then this functin execution will resume
checkEndContract();
//contract may have been marked inactive above, only do request if needed
if (contractActive) {
dataRequestsSent = 0;
//First build up a request to World Weather Online to get the current rainfall
string memory url = string(abi.encodePacked(WORLD_WEATHER_ONLINE_URL, "key=",WORLD_WEATHER_ONLINE_KEY,"&q=",cropLocation,"&format=json&num_of_days=1"));
checkRainfall(oracles[0], jobIds[0], url, WORLD_WEATHER_ONLINE_PATH);
// Now build up the second request to WeatherBit
url = string(abi.encodePacked(WEATHERBIT_URL, "city=",cropLocation,"&key=",WEATHERBIT_KEY));
checkRainfall(oracles[1], jobIds[1], url, WEATHERBIT_PATH);
}
}
/**
* @dev Calls out to an Oracle to obtain weather data
*/
function checkRainfall(address _oracle, bytes32 _jobId, string _url, string _path) private onContractActive() returns (bytes32 requestId) {
//First build up a request to get the current rainfall
Chainlink.Request memory req = buildChainlinkRequest(_jobId, address(this), this.checkRainfallCallBack.selector);
req.add("get", _url); //sends the GET request to the oracle
req.add("path", _path);
req.addInt("times", 100);
requestId = sendChainlinkRequestTo(_oracle, req, oraclePaymentAmount);
emit dataRequestSent(requestId);
}
/**
* @dev Callback function - This gets called by the Oracle Contract when the Oracle Node passes data back to the Oracle Contract
* The function will take the rainfall given by the Oracle and updated the Inusrance Contract state
*/
function checkRainfallCallBack(bytes32 _requestId, uint256 _rainfall) public recordChainlinkFulfillment(_requestId) onContractActive() callFrequencyOncePerDay() {
//set current temperature to value returned from Oracle, and store date this was retrieved (to avoid spam and gaming the contract)
currentRainfallList[dataRequestsSent] = _rainfall;
dataRequestsSent = dataRequestsSent + 1;
//set current rainfall to average of both values
if (dataRequestsSent > 1) {
currentRainfall = (currentRainfallList[0].add(currentRainfallList[1]).div(2));
currentRainfallDateChecked = now;
requestCount +=1;
//check if payout conditions have been met, if so call payoutcontract, which should also end/kill contract at the end
if (currentRainfall == 0 ) { //temp threshold has been met, add a day of over threshold
daysWithoutRain += 1;
} else {
//there was rain today, so reset daysWithoutRain parameter
daysWithoutRain = 0;
emit ranfallThresholdReset(currentRainfall);
}
if (daysWithoutRain >= DROUGHT_DAYS_THRESDHOLD) { // day threshold has been met
//need to pay client out insurance amount
payOutContract();
}
}
emit dataReceived(_rainfall);
}
/**
* @dev Insurance conditions have been met, do payout of total cover amount to client
*/
function payOutContract() private onContractActive() {
//Transfer agreed amount to client
client.transfer(address(this).balance);
//Transfer any remaining funds (premium) back to Insurer
LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());
require(link.transfer(insurer, link.balanceOf(address(this))), "Unable to transfer");
emit contractPaidOut(now, payoutValue, currentRainfall);
//now that amount has been transferred, can end the contract
//mark contract as ended, so no future calls can be done
contractActive = false;
contractPaid = true;
}
/**
* @dev Insurance conditions have not been met, and contract expired, end contract and return funds
*/
function checkEndContract() private onContractEnded() {
//Insurer needs to have performed at least 1 weather call per day to be eligible to retrieve funds back.
//We will allow for 1 missed weather call to account for unexpected issues on a given day.
if (requestCount >= (duration.div(DAY_IN_SECONDS) - 2)) {
//return funds back to insurance provider then end/kill the contract
insurer.transfer(address(this).balance);
} else { //insurer hasn't done the minimum number of data requests, client is eligible to receive his premium back
// need to use ETH/USD price feed to calculate ETH amount
client.transfer(premium.div(uint(getLatestPrice())));
insurer.transfer(address(this).balance);
}
//transfer any remaining LINK tokens back to the insurer
LinkTokenInterface link = LinkTokenInterface(chainlinkTokenAddress());
require(link.transfer(insurer, link.balanceOf(address(this))), "Unable to transfer remaining LINK tokens");
//mark contract as ended, so no future state changes can occur on the contract
contractActive = false;
emit contractEnded(now, address(this).balance);
}
/**
* Returns the latest price
*/
function getLatestPrice() public view returns (int) {
(
uint80 roundID,
int price,
uint startedAt,
uint timeStamp,
uint80 answeredInRound
) = priceFeed.latestRoundData();
// If the round is not complete yet, timestamp is 0
require(timeStamp > 0, "Round not complete");
return price;
}
/**
* @dev Get the balance of the contract
*/
function getContractBalance() external view returns (uint) {
return address(this).balance;
}
/**
* @dev Get the Crop Location
*/
function getLocation() external view returns (string) {
return cropLocation;
}
/**
* @dev Get the Total Cover
*/
function getPayoutValue() external view returns (uint) {
return payoutValue;
}
/**
* @dev Get the Premium paid
*/
function getPremium() external view returns (uint) {
return premium;
}
/**
* @dev Get the status of the contract
*/
function getContractStatus() external view returns (bool) {
return contractActive;
}
/**
* @dev Get whether the contract has been paid out or not
*/
function getContractPaid() external view returns (bool) {
return contractPaid;
}
/**
* @dev Get the current recorded rainfall for the contract
*/
function getCurrentRainfall() external view returns (uint) {
return currentRainfall;
}
/**
* @dev Get the recorded number of days without rain
*/
function getDaysWithoutRain() external view returns (uint) {
return daysWithoutRain;
}
/**
* @dev Get the count of requests that has occured for the Insurance Contract
*/
function getRequestCount() external view returns (uint) {
return requestCount;
}
/**
* @dev Get the last time that the rainfall was checked for the contract
*/
function getCurrentRainfallDateChecked() external view returns (uint) {
return currentRainfallDateChecked;
}
/**
* @dev Get the contract duration
*/
function getDuration() external view returns (uint) {
return duration;
}
/**
* @dev Get the contract start date
*/
function getContractStartDate() external view returns (uint) {
return startDate;
}
/**
* @dev Get the current date/time according to the blockchain
*/
function getNow() external view returns (uint) {
return now;
}
/**
* @dev Get address of the chainlink token
*/
function getChainlinkToken() public view returns (address) {
return chainlinkTokenAddress();
}
/**
* @dev Helper function for converting a string to a bytes32 object
*/
function stringToBytes32(string memory source) private pure returns (bytes32 result) {
bytes memory tempEmptyStringTest = bytes(source);
if (tempEmptyStringTest.length == 0) {
return 0x0;
}
assembly { // solhint-disable-line no-inline-assembly
result := mload(add(source, 32))
}
}
/**
* @dev Helper function for converting uint to a string
*/
function uint2str(uint _i) internal pure returns (string memory _uintAsString) {
if (_i == 0) {
return "0";
}
uint j = _i;
uint len;
while (j != 0) {
len++;
j /= 10;
}
bytes memory bstr = new bytes(len);
uint k = len - 1;
while (_i != 0) {
bstr[k--] = byte(uint8(48 + _i % 10));
_i /= 10;
}
return string(bstr);
}
/**
* @dev Fallback function so contrat can receive ether when required
*/
function() external payable { }
}
// This example code is designed to quickly deploy an example contract using Remix.
pragma solidity ^0.6.0;
import "https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/ChainlinkClient.sol";
contract APIConsumer is ChainlinkClient {
uint256 public volume;
address private oracle;
bytes32 private jobId;
uint256 private fee;
/**
* Network: Kovan
* Chainlink - 0xc57B33452b4F7BB189bB5AfaE9cc4aBa1f7a4FD8
* Chainlink - d5270d1c311941d0b08bead21fea7747
* Fee: 0.1 LINK
*/
constructor() public {
setPublicChainlinkToken();
oracle = 0xc57B33452b4F7BB189bB5AfaE9cc4aBa1f7a4FD8;
jobId = "d5270d1c311941d0b08bead21fea7747";
fee = 0.1 * 10 ** 18; // 0.1 LINK
}
/**
* Create a Chainlink request to retrieve API response, find the target
* data, then multiply by 1000000000000000000 (to remove decimal places from data).
************************************************************************************
* STOP! *
* THIS FUNCTION WILL FAIL IF THIS CONTRACT DOES NOT OWN LINK *
* ---------------------------------------------------------- *
* Learn how to obtain testnet LINK and fund this contract: *
* ------- https://docs.chain.link/docs/acquire-link -------- *
* ---- https://docs.chain.link/docs/fund-your-contract ----- *
* *
************************************************************************************/
function requestVolumeData() public returns (bytes32 requestId)
{
Chainlink.Request memory request = buildChainlinkRequest(jobId, address(this), this.fulfill.selector);
// Set the URL to perform the GET request on
request.add("get", "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=ETH&tsyms=USD");
// Set the path to find the desired data in the API response, where the response format is:
// {"RAW":
// {"ETH":
// {"USD":
// {
// ...,
// "VOLUME24HOUR": xxx.xxx,
// ...
// }
// }
// }
// }
request.add("path", "RAW.ETH.USD.VOLUME24HOUR");
// Multiply the result by 1000000000000000000 to remove decimals
int timesAmount = 10**18;
request.addInt("times", timesAmount);
// Sends the request
return sendChainlinkRequestTo(oracle, request, fee);
}
/**
* Receive the response in the form of uint256
*/
function fulfill(bytes32 _requestId, uint256 _volume) public recordChainlinkFulfillment(_requestId)
{
volume = _volume;
}
/**
* Withdraw LINK from this contract
*
* NOTE: DO NOT USE THIS IN PRODUCTION AS IT CAN BE CALLED BY ANY ADDRESS.
* THIS IS PURELY FOR EXAMPLE PURPOSES ONLY.
*/
function withdrawLink() external {
LinkTokenInterface linkToken = LinkTokenInterface(chainlinkTokenAddress());
require(linkToken.transfer(msg.sender, linkToken.balanceOf(address(this))), "Unable to transfer");
}
}
{
"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": "6080604052600160045534801561001557600080fd5b506100246100b460201b60201c565b73aa1dc356dc4b18f30c347798fd5379f3d77abc5b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f633764643732636131346234346630633962366366636434623765633061326360088190555067016345785d8a000060098190555061019d565b61015773c89bd4e1632d3a43cb03aaad5262cbe4038bc57173ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b15801561011157600080fd5b505afa158015610125573d6000803e3d6000fd5b505050506040513d602081101561013b57600080fd5b810190808051906020019092919050505061015960201b60201c565b565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611224806101ac6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80634357855e14610051578063684ede7f146100895780638dc654a2146100cb578063c618a1e4146100d5575b600080fd5b6100876004803603604081101561006757600080fd5b8101908080359060200190929190803590602001909291905050506100f3565b005b6100b56004803603602081101561009f57600080fd5b810190808035906020019092919050505061021a565b6040518082815260200191505060405180910390f35b6100d36103f4565b005b6100dd6105c2565b6040518082815260200191505060405180910390f35b816005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061117e6028913960400191505060405180910390fd5b6005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a281600681905550505050565b60006102246110d3565b61023860085430634357855e60e01b6105c8565b905061029c6040518060400160405280600381526020017f67657400000000000000000000000000000000000000000000000000000000008152506040518060800160405280604981526020016111a660499139836105f99092919063ffffffff16565b6102e66040518060400160405280600a81526020017f72616e646f6d5f6b657900000000000000000000000000000000000000000000815250848361062c9092919063ffffffff16565b6103656040518060400160405280600481526020017f70617468000000000000000000000000000000000000000000000000000000008152506040518060400160405280601881526020017f5241572e4554482e5553442e564f4c554d453234484f55520000000000000000815250836105f99092919063ffffffff16565b6000670de0b6b3a764000090506103bc6040518060400160405280600581526020017f74696d6573000000000000000000000000000000000000000000000000000000815250828461065f9092919063ffffffff16565b6103eb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600954610692565b92505050919050565b60006103fe61091b565b90508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561048457600080fd5b505afa158015610498573d6000803e3d6000fd5b505050506040513d60208110156104ae57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561051257600080fd5b505af1158015610526573d6000803e3d6000fd5b505050506040513d602081101561053c57600080fd5b81019080805190602001909291905050506105bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e61626c6520746f207472616e73666572000000000000000000000000000081525060200191505060405180910390fd5b50565b60065481565b6105d06110d3565b6105d86110d3565b6105ef85858584610945909392919063ffffffff16565b9150509392505050565b6106108284608001516109f590919063ffffffff16565b6106278184608001516109f590919063ffffffff16565b505050565b6106438284608001516109f590919063ffffffff16565b61065a818460800151610a1a90919063ffffffff16565b505050565b6106768284608001516109f590919063ffffffff16565b61068d818460800151610a2a90919063ffffffff16565b505050565b600030600454604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b815260140182815260200192505050604051602081830303815290604052805190602001209050600454836060018181525050836005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af960405160405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea085846107b487610ace565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561082557808201518184015260208101905061080a565b50505050905090810190601f1680156108525780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b8101908080519060200190929190505050610903576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061115b6023913960400191505060405180910390fd5b60016004600082825401925050819055509392505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61094d6110d3565b61095d8560800151610100610c4f565b508385600001818152505082856020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508185604001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050849050949350505050565b610a028260038351610ca3565b610a158183610de890919063ffffffff16565b505050565b610a2682600083610ca3565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811215610a6157610a5c8282610e0a565b610aca565b67ffffffffffffffff811315610a8057610a7b8282610e78565b610ac9565b60008112610a9957610a9482600083610ca3565b610ac8565b610ac7826001837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03610ca3565b5b5b5b5050565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401808973ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff168152602001857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610bb2578082015181840152602081019050610b97565b50505050905090810190601f168015610bdf5780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050919050565b610c57611140565b600060208381610c6357fe5b0614610c7c5760208281610c7357fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b60178111610cd057610cca8160058460ff16901b60ff161784610ec490919063ffffffff16565b50610de3565b60ff8111610d1257610cf5601860058460ff16901b1784610ec490919063ffffffff16565b50610d0c81600185610ee49092919063ffffffff16565b50610de2565b61ffff8111610d5557610d38601960058460ff16901b1784610ec490919063ffffffff16565b50610d4f81600285610ee49092919063ffffffff16565b50610de1565b63ffffffff8111610d9a57610d7d601a60058460ff16901b1784610ec490919063ffffffff16565b50610d9481600485610ee49092919063ffffffff16565b50610de0565b67ffffffffffffffff8111610ddf57610dc6601b60058460ff16901b1784610ec490919063ffffffff16565b50610ddd81600885610ee49092919063ffffffff16565b505b5b5b5b5b505050565b610df0611140565b610e0283846000015151848551610f06565b905092915050565b610e2860036005600660ff16901b1783610ec490919063ffffffff16565b50610e7482827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0360405160200180828152602001915050604051602081830303815290604052610fbf565b5050565b610e9660026005600660ff16901b1783610ec490919063ffffffff16565b50610ec0828260405160200180828152602001915050604051602081830303815290604052610fbf565b5050565b610ecc611140565b610edc8384600001515184610fe4565b905092915050565b610eec611140565b610efd848560000151518585611032565b90509392505050565b610f0e611140565b8251821115610f1c57600080fd5b84602001518285011115610f4757610f46856002610f408860200151888701611093565b026110af565b5b600080865180518760208301019350808887011115610f665787860182525b60208701925050505b60208410610f925780518252602082019150602081019050602084039350610f6f565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b610fcc8260028351610ca3565b610fdf8183610de890919063ffffffff16565b505050565b610fec611140565b83602001518310611009576110088460028660200151026110af565b5b8351805160208583010184815381861415611025576001820183525b5050508390509392505050565b61103a611140565b8460200151848301111561105857611057856002868501026110af565b5b60006001836101000a03905085518386820101858319825116178152815185880111156110855784870182525b505085915050949350505050565b6000818311156110a5578290506110a9565b8190505b92915050565b6060826000015190506110c28383610c4f565b506110cd8382610de8565b50505050565b6040518060a0016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000815260200161113a611140565b81525090565b60405180604001604052806060815260200160008152509056fe756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65536f75726365206d75737420626520746865206f7261636c65206f6620746865207265717565737468747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963656d756c746966756c6c3f6673796d733d455448267473796d733d555344a2646970667358221220949f3ae5f5e3177bbd509cf9e9fb421d3449c194dc2098ecf1556d20ecdba51564736f6c634300060c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24 PUSH2 0xB4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xAA1DC356DC4B18F30C347798FD5379F3D77ABC5B 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 PUSH32 0x6337646437326361313462343466306339623663666364346237656330613263 PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH8 0x16345785D8A0000 PUSH1 0x9 DUP2 SWAP1 SSTORE POP PUSH2 0x19D JUMP JUMPDEST PUSH2 0x157 PUSH20 0xC89BD4E1632D3A43CB03AAAD5262CBE4038BC571 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x38CC4831 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x125 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x13B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x159 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMP JUMPDEST DUP1 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 POP JUMP JUMPDEST PUSH2 0x1224 DUP1 PUSH2 0x1AC 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 0x4357855E EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x684EDE7F EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xC618A1E4 EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x67 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 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x21A 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 0xD3 PUSH2 0x3F4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDD PUSH2 0x5C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x117E PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE DUP1 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP2 PUSH1 0x6 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x224 PUSH2 0x10D3 JUMP JUMPDEST PUSH2 0x238 PUSH1 0x8 SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x5C8 JUMP JUMPDEST SWAP1 POP PUSH2 0x29C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6765740000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x49 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x11A6 PUSH1 0x49 SWAP2 CODECOPY DUP4 PUSH2 0x5F9 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2E6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x72616E646F6D5F6B657900000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP5 DUP4 PUSH2 0x62C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x365 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061746800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5241572E4554482E5553442E564F4C554D453234484F55520000000000000000 DUP2 MSTORE POP DUP4 PUSH2 0x5F9 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 SWAP1 POP PUSH2 0x3BC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x74696D6573000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP3 DUP5 PUSH2 0x65F SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3EB PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x9 SLOAD PUSH2 0x692 JUMP JUMPDEST SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FE PUSH2 0x91B JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x498 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x526 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x5D0 PUSH2 0x10D3 JUMP JUMPDEST PUSH2 0x5D8 PUSH2 0x10D3 JUMP JUMPDEST PUSH2 0x5EF DUP6 DUP6 DUP6 DUP5 PUSH2 0x945 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x610 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x9F5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x627 DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x9F5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x643 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x9F5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x65A DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0xA1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x676 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x9F5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x68D DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0xA2A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x4 SLOAD DUP4 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP4 PUSH1 0x5 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0x7B4 DUP8 PUSH2 0xACE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD 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 0x825 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x80A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x852 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 SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x887 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x89D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x903 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x115B PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x94D PUSH2 0x10D3 JUMP JUMPDEST PUSH2 0x95D DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0xC4F JUMP JUMPDEST POP DUP4 DUP6 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP DUP3 DUP6 PUSH1 0x20 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 DUP6 PUSH1 0x40 ADD SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP5 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xA02 DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH2 0xA15 DUP2 DUP4 PUSH2 0xDE8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA26 DUP3 PUSH1 0x0 DUP4 PUSH2 0xCA3 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 DUP2 SLT ISZERO PUSH2 0xA61 JUMPI PUSH2 0xA5C DUP3 DUP3 PUSH2 0xE0A JUMP JUMPDEST PUSH2 0xACA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 SGT ISZERO PUSH2 0xA80 JUMPI PUSH2 0xA7B DUP3 DUP3 PUSH2 0xE78 JUMP JUMPDEST PUSH2 0xAC9 JUMP JUMPDEST PUSH1 0x0 DUP2 SLT PUSH2 0xA99 JUMPI PUSH2 0xA94 DUP3 PUSH1 0x0 DUP4 PUSH2 0xCA3 JUMP JUMPDEST PUSH2 0xAC8 JUMP JUMPDEST PUSH2 0xAC7 DUP3 PUSH1 0x1 DUP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB PUSH2 0xCA3 JUMP JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH4 0x40429946 PUSH1 0xE0 SHL PUSH1 0x0 DUP1 DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x1 DUP10 PUSH1 0x80 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD 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 0xBB2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xB97 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBDF 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 SWAP10 POP POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC57 PUSH2 0x1140 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 DUP2 PUSH2 0xC63 JUMPI INVALID JUMPDEST MOD EQ PUSH2 0xC7C JUMPI PUSH1 0x20 DUP3 DUP2 PUSH2 0xC73 JUMPI INVALID JUMPDEST MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP4 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 DUP2 MSTORE DUP3 DUP2 ADD PUSH1 0x20 ADD PUSH1 0x40 MSTORE POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0xCD0 JUMPI PUSH2 0xCCA DUP2 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL PUSH1 0xFF AND OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDE3 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0xD12 JUMPI PUSH2 0xCF5 PUSH1 0x18 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xD0C DUP2 PUSH1 0x1 DUP6 PUSH2 0xEE4 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0xD55 JUMPI PUSH2 0xD38 PUSH1 0x19 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xD4F DUP2 PUSH1 0x2 DUP6 PUSH2 0xEE4 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDE1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0xD9A JUMPI PUSH2 0xD7D PUSH1 0x1A PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xD94 DUP2 PUSH1 0x4 DUP6 PUSH2 0xEE4 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDE0 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0xDDF JUMPI PUSH2 0xDC6 PUSH1 0x1B PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDDD DUP2 PUSH1 0x8 DUP6 PUSH2 0xEE4 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xDF0 PUSH2 0x1140 JUMP JUMPDEST PUSH2 0xE02 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xF06 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE28 PUSH1 0x3 PUSH1 0x5 PUSH1 0x6 PUSH1 0xFF AND SWAP1 SHL OR DUP4 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xE74 DUP3 DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xFBF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE96 PUSH1 0x2 PUSH1 0x5 PUSH1 0x6 PUSH1 0xFF AND SWAP1 SHL OR DUP4 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xEC0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xFBF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xECC PUSH2 0x1140 JUMP JUMPDEST PUSH2 0xEDC DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xFE4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEEC PUSH2 0x1140 JUMP JUMPDEST PUSH2 0xEFD DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1032 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF0E PUSH2 0x1140 JUMP JUMPDEST DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xF1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP3 DUP6 ADD GT ISZERO PUSH2 0xF47 JUMPI PUSH2 0xF46 DUP6 PUSH1 0x2 PUSH2 0xF40 DUP9 PUSH1 0x20 ADD MLOAD DUP9 DUP8 ADD PUSH2 0x1093 JUMP JUMPDEST MUL PUSH2 0x10AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xF66 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP8 ADD SWAP3 POP POP POP JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xF92 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0xF6F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP6 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB SWAP1 POP DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP2 DUP2 OR DUP6 MSTORE POP POP DUP8 SWAP4 POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFCC DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH2 0xFDF DUP2 DUP4 PUSH2 0xDE8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xFEC PUSH2 0x1140 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x1009 JUMPI PUSH2 0x1008 DUP5 PUSH1 0x2 DUP7 PUSH1 0x20 ADD MLOAD MUL PUSH2 0x10AF JUMP JUMPDEST JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0x1025 JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP POP POP DUP4 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x103A PUSH2 0x1140 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP4 ADD GT ISZERO PUSH2 0x1058 JUMPI PUSH2 0x1057 DUP6 PUSH1 0x2 DUP7 DUP6 ADD MUL PUSH2 0x10AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1085 JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP POP DUP6 SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x10A5 JUMPI DUP3 SWAP1 POP PUSH2 0x10A9 JUMP JUMPDEST DUP2 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x10C2 DUP4 DUP4 PUSH2 0xC4F JUMP JUMPDEST POP PUSH2 0x10CD DUP4 DUP3 PUSH2 0xDE8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x113A PUSH2 0x1140 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID PUSH22 0x6E61626C6520746F207472616E73666572416E644361 PUSH13 0x6C20746F206F7261636C65536F PUSH22 0x726365206D75737420626520746865206F7261636C65 KECCAK256 PUSH16 0x66207468652072657175657374687474 PUSH17 0x733A2F2F6D696E2D6170692E6372797074 PUSH16 0x636F6D706172652E636F6D2F64617461 0x2F PUSH17 0x726963656D756C746966756C6C3F667379 PUSH14 0x733D455448267473796D733D5553 DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP5 SWAP16 GASPRICE 0xE5 CREATE2 0xE3 OR PUSH28 0xBD509CF9E9FB421D3449C194DC2098ECF1556D20ECDBA51564736F6C PUSH4 0x4300060C STOP CALLER ",
"sourceMap": "233:3345:0:-:0;;;1163:1:2;1132:32;;572:218:0;;;;;;;;;;603:25;:23;;;:25;;:::i;:::-;647:42;638:6;;:51;;;;;;;;;;;;;;;;;;699:42;:5;:42;;;;757:14;751:3;:20;;;;233:3345;;5051:123:2;5101:68;951:42;5119:47;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5101:17;;;:68;;:::i;:::-;5051:123::o;4834:94::-;4917:5;4891:4;;:32;;;;;;;;;;;;;;;;;;4834:94;:::o;233:3345:0:-;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80634357855e14610051578063684ede7f146100895780638dc654a2146100cb578063c618a1e4146100d5575b600080fd5b6100876004803603604081101561006757600080fd5b8101908080359060200190929190803590602001909291905050506100f3565b005b6100b56004803603602081101561009f57600080fd5b810190808035906020019092919050505061021a565b6040518082815260200191505060405180910390f35b6100d36103f4565b005b6100dd6105c2565b6040518082815260200191505060405180910390f35b816005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061117e6028913960400191505060405180910390fd5b6005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a281600681905550505050565b60006102246110d3565b61023860085430634357855e60e01b6105c8565b905061029c6040518060400160405280600381526020017f67657400000000000000000000000000000000000000000000000000000000008152506040518060800160405280604981526020016111a660499139836105f99092919063ffffffff16565b6102e66040518060400160405280600a81526020017f72616e646f6d5f6b657900000000000000000000000000000000000000000000815250848361062c9092919063ffffffff16565b6103656040518060400160405280600481526020017f70617468000000000000000000000000000000000000000000000000000000008152506040518060400160405280601881526020017f5241572e4554482e5553442e564f4c554d453234484f55520000000000000000815250836105f99092919063ffffffff16565b6000670de0b6b3a764000090506103bc6040518060400160405280600581526020017f74696d6573000000000000000000000000000000000000000000000000000000815250828461065f9092919063ffffffff16565b6103eb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600954610692565b92505050919050565b60006103fe61091b565b90508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561048457600080fd5b505afa158015610498573d6000803e3d6000fd5b505050506040513d60208110156104ae57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561051257600080fd5b505af1158015610526573d6000803e3d6000fd5b505050506040513d602081101561053c57600080fd5b81019080805190602001909291905050506105bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e61626c6520746f207472616e73666572000000000000000000000000000081525060200191505060405180910390fd5b50565b60065481565b6105d06110d3565b6105d86110d3565b6105ef85858584610945909392919063ffffffff16565b9150509392505050565b6106108284608001516109f590919063ffffffff16565b6106278184608001516109f590919063ffffffff16565b505050565b6106438284608001516109f590919063ffffffff16565b61065a818460800151610a1a90919063ffffffff16565b505050565b6106768284608001516109f590919063ffffffff16565b61068d818460800151610a2a90919063ffffffff16565b505050565b600030600454604051602001808373ffffffffffffffffffffffffffffffffffffffff1660601b815260140182815260200192505050604051602081830303815290604052805190602001209050600454836060018181525050836005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af960405160405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea085846107b487610ace565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561082557808201518184015260208101905061080a565b50505050905090810190601f1680156108525780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b8101908080519060200190929190505050610903576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061115b6023913960400191505060405180910390fd5b60016004600082825401925050819055509392505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61094d6110d3565b61095d8560800151610100610c4f565b508385600001818152505082856020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508185604001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050849050949350505050565b610a028260038351610ca3565b610a158183610de890919063ffffffff16565b505050565b610a2682600083610ca3565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811215610a6157610a5c8282610e0a565b610aca565b67ffffffffffffffff811315610a8057610a7b8282610e78565b610ac9565b60008112610a9957610a9482600083610ca3565b610ac8565b610ac7826001837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03610ca3565b5b5b5b5050565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401808973ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff168152602001857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610bb2578082015181840152602081019050610b97565b50505050905090810190601f168015610bdf5780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050919050565b610c57611140565b600060208381610c6357fe5b0614610c7c5760208281610c7357fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b60178111610cd057610cca8160058460ff16901b60ff161784610ec490919063ffffffff16565b50610de3565b60ff8111610d1257610cf5601860058460ff16901b1784610ec490919063ffffffff16565b50610d0c81600185610ee49092919063ffffffff16565b50610de2565b61ffff8111610d5557610d38601960058460ff16901b1784610ec490919063ffffffff16565b50610d4f81600285610ee49092919063ffffffff16565b50610de1565b63ffffffff8111610d9a57610d7d601a60058460ff16901b1784610ec490919063ffffffff16565b50610d9481600485610ee49092919063ffffffff16565b50610de0565b67ffffffffffffffff8111610ddf57610dc6601b60058460ff16901b1784610ec490919063ffffffff16565b50610ddd81600885610ee49092919063ffffffff16565b505b5b5b5b5b505050565b610df0611140565b610e0283846000015151848551610f06565b905092915050565b610e2860036005600660ff16901b1783610ec490919063ffffffff16565b50610e7482827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0360405160200180828152602001915050604051602081830303815290604052610fbf565b5050565b610e9660026005600660ff16901b1783610ec490919063ffffffff16565b50610ec0828260405160200180828152602001915050604051602081830303815290604052610fbf565b5050565b610ecc611140565b610edc8384600001515184610fe4565b905092915050565b610eec611140565b610efd848560000151518585611032565b90509392505050565b610f0e611140565b8251821115610f1c57600080fd5b84602001518285011115610f4757610f46856002610f408860200151888701611093565b026110af565b5b600080865180518760208301019350808887011115610f665787860182525b60208701925050505b60208410610f925780518252602082019150602081019050602084039350610f6f565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b610fcc8260028351610ca3565b610fdf8183610de890919063ffffffff16565b505050565b610fec611140565b83602001518310611009576110088460028660200151026110af565b5b8351805160208583010184815381861415611025576001820183525b5050508390509392505050565b61103a611140565b8460200151848301111561105857611057856002868501026110af565b5b60006001836101000a03905085518386820101858319825116178152815185880111156110855784870182525b505085915050949350505050565b6000818311156110a5578290506110a9565b8190505b92915050565b6060826000015190506110c28383610c4f565b506110cd8382610de8565b50505050565b6040518060a0016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000815260200161113a611140565b81525090565b60405180604001604052806060815260200160008152509056fe756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65536f75726365206d75737420626520746865206f7261636c65206f6620746865207265717565737468747470733a2f2f6d696e2d6170692e63727970746f636f6d706172652e636f6d2f646174612f70726963656d756c746966756c6c3f6673796d733d455448267473796d733d555344a2646970667358221220949f3ae5f5e3177bbd509cf9e9fb421d3449c194dc2098ecf1556d20ecdba51564736f6c634300060c0033",
"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 0x4357855E EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x684EDE7F EQ PUSH2 0x89 JUMPI DUP1 PUSH4 0x8DC654A2 EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xC618A1E4 EQ PUSH2 0xD5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x67 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 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB5 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x21A 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 0xD3 PUSH2 0x3F4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xDD PUSH2 0x5C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x117E PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE DUP1 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP2 PUSH1 0x6 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x224 PUSH2 0x10D3 JUMP JUMPDEST PUSH2 0x238 PUSH1 0x8 SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x5C8 JUMP JUMPDEST SWAP1 POP PUSH2 0x29C PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6765740000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x49 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x11A6 PUSH1 0x49 SWAP2 CODECOPY DUP4 PUSH2 0x5F9 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x2E6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x72616E646F6D5F6B657900000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP5 DUP4 PUSH2 0x62C SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x365 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x7061746800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5241572E4554482E5553442E564F4C554D453234484F55520000000000000000 DUP2 MSTORE POP DUP4 PUSH2 0x5F9 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 SWAP1 POP PUSH2 0x3BC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x74696D6573000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP3 DUP5 PUSH2 0x65F SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3EB PUSH1 0x7 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x9 SLOAD PUSH2 0x692 JUMP JUMPDEST SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FE PUSH2 0x91B JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB CALLER DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x498 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x4AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x526 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x5BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x556E61626C6520746F207472616E736665720000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x5D0 PUSH2 0x10D3 JUMP JUMPDEST PUSH2 0x5D8 PUSH2 0x10D3 JUMP JUMPDEST PUSH2 0x5EF DUP6 DUP6 DUP6 DUP5 PUSH2 0x945 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x610 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x9F5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x627 DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x9F5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x643 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x9F5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x65A DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0xA1A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x676 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x9F5 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x68D DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0xA2A SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x4 SLOAD DUP4 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP4 PUSH1 0x5 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0x7B4 DUP8 PUSH2 0xACE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD 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 0x825 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x80A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x852 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 SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x873 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x887 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x89D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x903 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x115B PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x94D PUSH2 0x10D3 JUMP JUMPDEST PUSH2 0x95D DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0xC4F JUMP JUMPDEST POP DUP4 DUP6 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP DUP3 DUP6 PUSH1 0x20 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 DUP6 PUSH1 0x40 ADD SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP5 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xA02 DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH2 0xA15 DUP2 DUP4 PUSH2 0xDE8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xA26 DUP3 PUSH1 0x0 DUP4 PUSH2 0xCA3 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 DUP2 SLT ISZERO PUSH2 0xA61 JUMPI PUSH2 0xA5C DUP3 DUP3 PUSH2 0xE0A JUMP JUMPDEST PUSH2 0xACA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 SGT ISZERO PUSH2 0xA80 JUMPI PUSH2 0xA7B DUP3 DUP3 PUSH2 0xE78 JUMP JUMPDEST PUSH2 0xAC9 JUMP JUMPDEST PUSH1 0x0 DUP2 SLT PUSH2 0xA99 JUMPI PUSH2 0xA94 DUP3 PUSH1 0x0 DUP4 PUSH2 0xCA3 JUMP JUMPDEST PUSH2 0xAC8 JUMP JUMPDEST PUSH2 0xAC7 DUP3 PUSH1 0x1 DUP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB PUSH2 0xCA3 JUMP JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH4 0x40429946 PUSH1 0xE0 SHL PUSH1 0x0 DUP1 DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x1 DUP10 PUSH1 0x80 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD 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 0xBB2 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xB97 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBDF 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 SWAP10 POP POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC57 PUSH2 0x1140 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 DUP2 PUSH2 0xC63 JUMPI INVALID JUMPDEST MOD EQ PUSH2 0xC7C JUMPI PUSH1 0x20 DUP3 DUP2 PUSH2 0xC73 JUMPI INVALID JUMPDEST MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP4 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 DUP2 MSTORE DUP3 DUP2 ADD PUSH1 0x20 ADD PUSH1 0x40 MSTORE POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0xCD0 JUMPI PUSH2 0xCCA DUP2 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL PUSH1 0xFF AND OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDE3 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0xD12 JUMPI PUSH2 0xCF5 PUSH1 0x18 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xD0C DUP2 PUSH1 0x1 DUP6 PUSH2 0xEE4 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0xD55 JUMPI PUSH2 0xD38 PUSH1 0x19 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xD4F DUP2 PUSH1 0x2 DUP6 PUSH2 0xEE4 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDE1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0xD9A JUMPI PUSH2 0xD7D PUSH1 0x1A PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xD94 DUP2 PUSH1 0x4 DUP6 PUSH2 0xEE4 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDE0 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0xDDF JUMPI PUSH2 0xDC6 PUSH1 0x1B PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xDDD DUP2 PUSH1 0x8 DUP6 PUSH2 0xEE4 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xDF0 PUSH2 0x1140 JUMP JUMPDEST PUSH2 0xE02 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xF06 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE28 PUSH1 0x3 PUSH1 0x5 PUSH1 0x6 PUSH1 0xFF AND SWAP1 SHL OR DUP4 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xE74 DUP3 DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xFBF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xE96 PUSH1 0x2 PUSH1 0x5 PUSH1 0x6 PUSH1 0xFF AND SWAP1 SHL OR DUP4 PUSH2 0xEC4 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xEC0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xFBF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xECC PUSH2 0x1140 JUMP JUMPDEST PUSH2 0xEDC DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xFE4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEEC PUSH2 0x1140 JUMP JUMPDEST PUSH2 0xEFD DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x1032 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xF0E PUSH2 0x1140 JUMP JUMPDEST DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xF1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP3 DUP6 ADD GT ISZERO PUSH2 0xF47 JUMPI PUSH2 0xF46 DUP6 PUSH1 0x2 PUSH2 0xF40 DUP9 PUSH1 0x20 ADD MLOAD DUP9 DUP8 ADD PUSH2 0x1093 JUMP JUMPDEST MUL PUSH2 0x10AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xF66 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP8 ADD SWAP3 POP POP POP JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xF92 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0xF6F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP6 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB SWAP1 POP DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP2 DUP2 OR DUP6 MSTORE POP POP DUP8 SWAP4 POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xFCC DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0xCA3 JUMP JUMPDEST PUSH2 0xFDF DUP2 DUP4 PUSH2 0xDE8 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xFEC PUSH2 0x1140 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x1009 JUMPI PUSH2 0x1008 DUP5 PUSH1 0x2 DUP7 PUSH1 0x20 ADD MLOAD MUL PUSH2 0x10AF JUMP JUMPDEST JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0x1025 JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP POP POP DUP4 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x103A PUSH2 0x1140 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP4 ADD GT ISZERO PUSH2 0x1058 JUMPI PUSH2 0x1057 DUP6 PUSH1 0x2 DUP7 DUP6 ADD MUL PUSH2 0x10AF JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0x1085 JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP POP DUP6 SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x10A5 JUMPI DUP3 SWAP1 POP PUSH2 0x10A9 JUMP JUMPDEST DUP2 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x10C2 DUP4 DUP4 PUSH2 0xC4F JUMP JUMPDEST POP PUSH2 0x10CD DUP4 DUP3 PUSH2 0xDE8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x113A PUSH2 0x1140 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID PUSH22 0x6E61626C6520746F207472616E73666572416E644361 PUSH13 0x6C20746F206F7261636C65536F PUSH22 0x726365206D75737420626520746865206F7261636C65 KECCAK256 PUSH16 0x66207468652072657175657374687474 PUSH17 0x733A2F2F6D696E2D6170692E6372797074 PUSH16 0x636F6D706172652E636F6D2F64617461 0x2F PUSH17 0x726963656D756C746966756C6C3F667379 PUSH14 0x733D455448267473796D733D5553 DIFFICULTY LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP5 SWAP16 GASPRICE 0xE5 CREATE2 0xE3 OR PUSH28 0xBD509CF9E9FB421D3449C194DC2098ECF1556D20ECDBA51564736F6C PUSH4 0x4300060C STOP CALLER ",
"sourceMap": "233:3345:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3006:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1784:1144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3345:231;;;:::i;:::-;;282:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3006:137;3094:10;8743:15:2;:27;8759:10;8743:27;;;;;;;;;;;;;;;;;;;;;8729:41;;:10;:41;;;8721:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8840:15;:27;8856:10;8840:27;;;;;;;;;;;;8833:34;;;;;;;;;;;8897:10;8878:30;;;;;;;;;;3129:7:0::1;3120:6;:16;;;;3006:137:::0;;;:::o;1784:1144::-;1851:17;1885:32;;:::i;:::-;1920:66;1942:5;;1957:4;1964:21;;;1920;:66::i;:::-;1885:101;;2058:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:11;;:95;;;;;:::i;:::-;2163:45;;;;;;;;;;;;;;;;;;2193:14;2163:7;:15;;:45;;;;;:::i;:::-;2613:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:11;;:47;;;;;:::i;:::-;2752:15;2770:6;2752:24;;2786:36;;;;;;;;;;;;;;;;;;2810:11;2786:7;:14;;:36;;;;;:::i;:::-;2877:44;2900:6;;;;;;;;;;;2908:7;2917:3;;2877:22;:44::i;:::-;2870:51;;;;1784:1144;;;:::o;3345:231::-;3388:28;3438:23;:21;:23::i;:::-;3388:74;;3480:9;:18;;;3499:10;3511:9;:19;;;3539:4;3511:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3480:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3472:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3345:231;:::o;282:21::-;;;;:::o;1767:295:2:-;1915:24;;:::i;:::-;1947:28;;:::i;:::-;1988:69;2003:7;2012:16;2030:26;1988:3;:14;;:69;;;;;;:::i;:::-;1981:76;;;1767:295;;;;;:::o;1988:169:1:-;2090:27;2112:4;2090;:8;;;:21;;:27;;;;:::i;:::-;2123:29;2145:6;2123:4;:8;;;:21;;:29;;;;:::i;:::-;1988:169;;;:::o;3112:165::-;3212:27;3234:4;3212;:8;;;:21;;:27;;;;:::i;:::-;3245;3265:6;3245:4;:8;;;:19;;:27;;;;:::i;:::-;3112:165;;;:::o;2741:162::-;2839:27;2861:4;2839;:8;;;:21;;:27;;;;:::i;:::-;2872:26;2891:6;2872:4;:8;;;:18;;:26;;;;:::i;:::-;2741:162;;;:::o;3072:488:2:-;3196:17;3262:4;3268:12;;3245:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3235:47;;;;;;3223:59;;3301:12;;3288:4;:10;;:25;;;;;3348:7;3319:15;:26;3335:9;3319:26;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;3385:9;3366:29;;;;;;;;;;3409:4;;;;;;;;;;;:20;;;3430:7;3439:8;3449:19;3463:4;3449:13;:19::i;:::-;3409:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3401:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:1;3515:12;;:17;;;;;;;;;;;3072:488;;;;;:::o;5293:110::-;5361:7;5393:4;;;;;;;;;;;5378:20;;5293:110;:::o;998:365:1:-;1147:24;;:::i;:::-;1179:49;1200:4;:8;;;365:3;1179:20;:49::i;:::-;;1244:3;1234:4;:7;;:13;;;;;1276:16;1253:4;:20;;:39;;;;;;;;;;;1324:17;1298:4;:23;;:43;;;;;;;;;;;;;1354:4;1347:11;;998:365;;;;;;:::o;2841:198:8:-;2943:55;2954:3;404:1;2984:5;2978:19;2943:10;:55::i;:::-;3008:24;3025:5;3008:3;:10;;:24;;;;:::i;:::-;;2841:198;;:::o;1608:136::-;1699:38;1710:3;249:1;1731:5;1699:10;:38::i;:::-;1608:136;;:::o;1750:448::-;1850:20;1842:5;:28;1839:353;;;1886:30;1905:3;1910:5;1886:18;:30::i;:::-;1839:353;;;1944:18;1936:5;:26;1933:259;;;1978:24;1991:3;1996:5;1978:12;:24::i;:::-;1933:259;;;2031:1;2022:5;:10;2019:173;;2048:44;2059:3;249:1;2085:5;2048:10;:44::i;:::-;2019:173;;;2123:58;2134:3;305:1;2174:5;2169:2;:10;2123;:58::i;:::-;2019:173;1933:259;1839:353;1750:448;;:::o;7564:527:2:-;7652:12;7711:29;;;719:1;663;7961:4;:7;;;7976:4;:20;;;8004:4;:23;;;8035:4;:10;;;765:1;8073:4;:8;;;:12;;;7681:405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7674:412;;7564:527;;;:::o;982:395:7:-;1052:13;;:::i;:::-;1094:1;1088:2;1077:8;:13;;;;;;:18;1073:71;;1134:2;1123:8;:13;;;;;;1117:2;:20;1105:32;;;;1073:71;1206:8;1191:3;:12;;:23;;;;;1254:4;1248:11;1278:3;1273;1266:16;1301:1;1296:3;1289:14;1340:8;1335:3;1331:18;1327:2;1323:27;1317:4;1310:41;1229:128;1369:3;1362:10;;982:395;;;;:::o;717:724:8:-;832:2;823:5;:11;820:615;;850:44;887:5;882:1;873:5;:10;;;;872:20;;;850:3;:15;;:44;;;;:::i;:::-;;820:615;;;923:4;914:5;:13;911:524;;943:41;980:2;975:1;966:5;:10;;;;965:17;943:3;:15;;:41;;;;:::i;:::-;;998:23;1012:5;1019:1;998:3;:13;;:23;;;;;:::i;:::-;;911:524;;;1050:6;1041:5;:15;1038:397;;1072:41;1109:2;1104:1;1095:5;:10;;;;1094:17;1072:3;:15;;:41;;;;:::i;:::-;;1127:23;1141:5;1148:1;1127:3;:13;;:23;;;;;:::i;:::-;;1038:397;;;1179:10;1170:5;:19;1167:268;;1205:41;1242:2;1237:1;1228:5;:10;;;;1227:17;1205:3;:15;;:41;;;;:::i;:::-;;1260:23;1274:5;1281:1;1260:3;:13;;:23;;;;;:::i;:::-;;1167:268;;;1312:18;1303:5;:27;1300:135;;1346:41;1383:2;1378:1;1369:5;:10;;;;1368:17;1346:3;:15;;:41;;;;:::i;:::-;;1401:23;1415:5;1422:1;1401:3;:13;;:23;;;;;:::i;:::-;;1300:135;1167:268;1038:397;911:524;820:615;717:724;;;:::o;4536:155:7:-;4613:13;;:::i;:::-;4641:45;4647:3;4652;:7;;;:14;4668:4;4674;:11;4641:5;:45::i;:::-;4634:52;;4536:155;;;;:::o;2606:229:8:-;2702:72;709:1;2743;547;2725:19;;;;2724:48;2702:3;:15;;:72;;;;:::i;:::-;;2782:46;2794:3;2820:5;2815:2;:10;2799:28;;;;;;;;;;;;;;;;;;;;;;;;;2782:11;:46::i;:::-;2606:229;;:::o;2391:209::-;2481:63;652:1;2522;547;2504:19;;;;2503:39;2481:3;:15;;:63;;;;:::i;:::-;;2552:41;2564:3;2585:5;2569:23;;;;;;;;;;;;;;;;;;;;;;;;;2552:11;:41::i;:::-;2391:209;;:::o;5851:144:7:-;5925:13;;:::i;:::-;5953:37;5964:3;5969;:7;;;:14;5985:4;5953:10;:37::i;:::-;5946:44;;5851:144;;;;:::o;9543:154::-;9624:13;;:::i;:::-;9652:40;9661:3;9666;:7;;;:14;9682:4;9688:3;9652:8;:40::i;:::-;9645:47;;9543:154;;;;;:::o;2691:1140::-;2786:13;;:::i;:::-;2822:4;:11;2815:3;:18;;2807:27;;;;;;2857:3;:12;;;2851:3;2845;:9;:24;2841:90;;;2879:45;2886:3;2922:1;2891:28;2895:3;:12;;;2915:3;2909;:9;2891:3;:28::i;:::-;:32;2879:6;:45::i;:::-;2841:90;2937:9;2952:8;3046:3;3040:10;3117:6;3111:13;3233:3;3228:2;3220:6;3216:15;3212:25;3204:33;;3317:6;3311:3;3306;3302:13;3299:25;3296:2;;;3359:3;3354;3350:13;3342:6;3335:29;3296:2;3396;3390:4;3386:13;3379:20;;2975:430;;3457:129;3471:2;3464:3;:9;3457:129;;3532:3;3526:10;3520:4;3513:24;3560:2;3552:10;;;;3577:2;3570:9;;;;3482:2;3475:9;;;;3457:129;;;3620:9;3652:1;3645:3;3640:2;:8;3632:3;:17;:21;3620:33;;3711:4;3707:9;3701:3;3695:10;3691:26;3757:4;3750;3744:11;3740:22;3795:7;3785:8;3782:21;3776:4;3769:35;3668:142;;3823:3;3816:10;;;;;2691:1140;;;;;;:::o;2204:181:8:-;2304:47;2315:3;354:1;2338:5;:12;2304:10;:47::i;:::-;2361:17;2372:5;2361:3;:10;;:17;;;;:::i;:::-;;2204:181;;:::o;4985:619:7:-;5068:13;;:::i;:::-;5100:3;:12;;;5093:3;:19;5089:69;;5122:29;5129:3;5149:1;5134:3;:12;;;:16;5122:6;:29::i;:::-;5089:69;5244:3;5238:10;5315:6;5309:13;5427:2;5421:3;5413:6;5409:16;5405:25;5451:4;5445;5437:19;5522:6;5517:3;5514:15;5511:2;;;5567:1;5559:6;5555:14;5547:6;5540:30;5511:2;5173:411;;;5596:3;5589:10;;4985:619;;;;;:::o;8650:642::-;8739:13;;:::i;:::-;8776:3;:12;;;8770:3;8764;:9;:24;8760:73;;;8798:28;8805:3;8824:1;8817:3;8811;:9;8810:15;8798:6;:28::i;:::-;8760:73;8839:9;8864:1;8858:3;8851;:10;:14;8839:26;;8951:3;8945:10;9066:3;9060;9052:6;9048:16;9044:26;9122:4;9114;9110:9;9103:4;9097:11;9093:27;9090:37;9084:4;9077:51;9210:6;9204:13;9198:3;9193;9189:13;9186:32;9183:2;;;9253:3;9248;9244:13;9236:6;9229:29;9183:2;8880:392;;9284:3;9277:10;;;8650:642;;;;;;:::o;1929:114::-;1979:4;1999:1;1995;:5;1991:34;;;2017:1;2010:8;;;;1991:34;2037:1;2030:8;;1929:114;;;;;:::o;1772:153::-;1841:19;1863:3;:7;;;1841:29;;1876:19;1881:3;1886:8;1876:4;:19::i;:::-;;1901;1908:3;1913:6;1901;:19::i;:::-;;1772:153;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "928800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"fulfill(bytes32,uint256)": "infinite",
"requestVolumeData(uint256)": "infinite",
"volume()": "1049",
"withdrawLink()": "infinite"
}
},
"methodIdentifiers": {
"fulfill(bytes32,uint256)": "4357855e",
"requestVolumeData(uint256)": "684ede7f",
"volume()": "c618a1e4",
"withdrawLink()": "8dc654a2"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_volume",
"type": "uint256"
}
],
"name": "fulfill",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "massive_number",
"type": "uint256"
}
],
"name": "requestVolumeData",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "volume",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdrawLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.12+commit.27d51765"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_volume",
"type": "uint256"
}
],
"name": "fulfill",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "massive_number",
"type": "uint256"
}
],
"name": "requestVolumeData",
"outputs": [
{
"internalType": "bytes32",
"name": "requestId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "volume",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdrawLink",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"constructor": "Network: Kovan Chainlink - 0x2f90A6D021db21e1B2A077c5a37B3C7E75D15b7e Chainlink - 29fa9aa13bf1468788b7cc4a500a45b8 Fee: 0.1 LINK",
"fulfill(bytes32,uint256)": {
"notice": "Receive the response in the form of uint256"
},
"requestVolumeData(uint256)": {
"notice": "Create a Chainlink request to retrieve API response, find the target data, then multiply by 1000000000000000000 (to remove decimal places from data).************************************************************************************ STOP! * THIS FUNCTION WILL FAIL IF THIS CONTRACT DOES NOT OWN LINK * ---------------------------------------------------------- * Learn how to obtain testnet LINK and fund this contract: * ------- https://docs.chain.link/docs/acquire-link -------- * ---- https://docs.chain.link/docs/fund-your-contract ----- * ************************************************************************************"
},
"withdrawLink()": {
"notice": "Withdraw LINK from this contract NOTE: DO NOT USE THIS IN PRODUCTION AS IT CAN BE CALLED BY ANY ADDRESS. THIS IS PURELY FOR EXAMPLE PURPOSES ONLY."
}
},
"version": 1
}
},
"settings": {
"compilationTarget": {
"8a173a65099261582a652ba18b7d96c1/APIConsumer.sol": "APIConsumer"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"8a173a65099261582a652ba18b7d96c1/APIConsumer.sol": {
"keccak256": "0x00aaeea4f056b58dcf6daa61186d95ec516f755a6facf9260de38113e88ee413",
"urls": [
"bzz-raw://6faf20ecf7701c1aa56a03563e9b84935548e95cc297acedc4414e8408f6494b",
"dweb:/ipfs/QmYqK4iN9td3Rp7piMfRC3eDCvYjbqKwDJLxGSm7e7fF47"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/Chainlink.sol": {
"keccak256": "0x7bef34fd97f611103c6113025e3d6af755f326069767e72266698f64258e62b6",
"license": "MIT",
"urls": [
"bzz-raw://82125916319b872093aa8599d2c00bd07d363386a74a4d0268c6edf25c366f82",
"dweb:/ipfs/QmXTnVy1XEw387NduvHHFQNmnzYTwFUhVz95kRvRrcwdHd"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/ChainlinkClient.sol": {
"keccak256": "0x9f8883b8b5b76bba151e5f30d4c353b8a3f15ee3d97117deee4cccd91fe8640f",
"license": "MIT",
"urls": [
"bzz-raw://ee9b132779ac24df4f8a5e45dfc256acc70eb5e43f715de36593e488f20a44ff",
"dweb:/ipfs/QmagJ1htVpP2ZYLAdHEpSEMx1Xd3csbUHAhLctryVDsNFg"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/ChainlinkRequestInterface.sol": {
"keccak256": "0xe513c0f60edf13da7d82625489cf2008c7b66170f3b1ed1606b84c73f95b17ad",
"license": "MIT",
"urls": [
"bzz-raw://78e083ef252b80bb63a5aa126bc7283cd9b88767dfdf0190d46802bc32756ecf",
"dweb:/ipfs/QmdTyEQwX5ecoXR1rBh8DLDJpCYVDM85JjjR2sEJdE9wAA"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/ENSInterface.sol": {
"keccak256": "0xdef864af6e516477773ea246b73531b1836de5bea4ac1cfd8be6e7f4b3f3c3fd",
"license": "MIT",
"urls": [
"bzz-raw://ad3346f5a393cd62d8de678a77d8dc323d8f9e21f0aaa504d0d0b990c8b61477",
"dweb:/ipfs/QmQ2n8329Fzb7Zbzk5wqYvAfKJ9QPwTdCUmm9zUqhL67a1"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xe245a7be950c94d87bb775ae9ee9fbd693fbe2987778e6ce0b04605ea44b7b68",
"license": "MIT",
"urls": [
"bzz-raw://bd2c3165d949fc66fe407b96eb3dc2092c7e800f4c073b411bf7b96de3e156c9",
"dweb:/ipfs/QmcfJhR1Np4GsLWnww2Duqks2wEzYk8VDTvCAYy7MisG1r"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/PointerInterface.sol": {
"keccak256": "0x08aed19c3bef1ae2d90fc0d9d28a497fd7f312991ed08fedfe545de6b9a476e4",
"license": "MIT",
"urls": [
"bzz-raw://b2e7b4acfbd4cfbd4c3e266011955954ec0f5a2323647e81b936c66cb35e1b5e",
"dweb:/ipfs/QmXVrpdo76r2WhxE7gJPj3dGycZYKKvK39VNVaB7HyhAbT"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/vendor/BufferChainlink.sol": {
"keccak256": "0x14f13139229a2fef8f705f29f91de0bc81bcd5070ec75b4bd3fd82c1536ca685",
"license": "MIT",
"urls": [
"bzz-raw://9a403d7f17b316c7b8837a25df0563de2a1c3121b7cd43473abce8ce6742bd29",
"dweb:/ipfs/QmWZYi4xJGjPt1pEM7mS7XsA1eF2zpcxiiuGHuiTndXHo7"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/vendor/CBORChainlink.sol": {
"keccak256": "0xd4e84a8ade1a2dba213842fea48ca1c7ea5d0eb4105b06c603966b955834e105",
"license": "MIT",
"urls": [
"bzz-raw://1d5dde29effbd8bc604215034a01c0f00957b666a016b9e5e478e01c789f1b1b",
"dweb:/ipfs/QmTepdEiHcoxDKmodo5zqaZNc68r1zrdEhb3PAaGG4dhv8"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/vendor/ENSResolver.sol": {
"keccak256": "0xfd992937d215ad669f69e91fefbe62cad8973ae329b4e810ca9b26a1ae0b6bb7",
"license": "MIT",
"urls": [
"bzz-raw://afb189e69fb705795bf41dea9ff20bab191164fc4876803168372f9bf1a1a0f1",
"dweb:/ipfs/QmUBbNkFiJh9BrPepNVYMpxnEk1a5xqun8VT6Zb2jC3FtV"
]
}
},
"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": "6080604052600160045534801561001557600080fd5b506100246100b460201b60201c565b732f90a6d021db21e1b2a077c5a37b3c7e75d15b7e600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f3866346565646131613837323430373761303536306565383465623030366234600781905550670de0b6b3a764000060088190555061019d565b61015773c89bd4e1632d3a43cb03aaad5262cbe4038bc57173ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b15801561011157600080fd5b505afa158015610125573d6000803e3d6000fd5b505050506040513d602081101561013b57600080fd5b810190808051906020019092919050505061015960201b60201c565b565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f0e806101ac6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631604f9ea146100465780634357855e146100505780639d1b464a14610088575b600080fd5b61004e6100a6565b005b6100866004803603604081101561006657600080fd5b8101908080359060200190929190803590602001909291905050506101c1565b005b6100906102e8565b6040518082815260200191505060405180910390f35b6100ae610e06565b6100c260075430634357855e60e01b6102ee565b90506101436040518060400160405280600581526020017f696e6465780000000000000000000000000000000000000000000000000000008152506040518060400160405280600c81526020017f444546495f4b58425455534400000000000000000000000000000000000000008152508361031f9092919063ffffffff16565b61018e6040518060400160405280600581526020017f74696d65730000000000000000000000000000000000000000000000000000008152506064836103529092919063ffffffff16565b6101bd600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600854610385565b5050565b816005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610279576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610eb16028913960400191505060405180910390fd5b6005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a281600981905550505050565b60095481565b6102f6610e06565b6102fe610e06565b6103158585858461063d909392919063ffffffff16565b9150509392505050565b6103368284608001516106ed90919063ffffffff16565b61034d8184608001516106ed90919063ffffffff16565b505050565b6103698284608001516106ed90919063ffffffff16565b61038081846080015161071290919063ffffffff16565b505050565b600030600454604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140182815260200192505050604051602081830303815290604052805190602001209050600454836060018181525050836005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af960405160405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea085846104bd876107b6565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610544578082015181840152602081019050610529565b50505050905090810190601f1680156105715780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561059257600080fd5b505af11580156105a6573d6000803e3d6000fd5b505050506040513d60208110156105bc57600080fd5b8101908080519060200190929190505050610622576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610e8e6023913960400191505060405180910390fd5b60016004600082825401925050819055508090509392505050565b610645610e06565b6106558560800151610100610982565b508385600001818152505082856020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508185604001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050849050949350505050565b6106fa82600383516109d6565b61070d8183610b1b90919063ffffffff16565b505050565b7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811215610749576107448282610b3d565b6107b2565b67ffffffffffffffff811315610768576107638282610bab565b6107b1565b600081126107815761077c826000836109d6565b6107b0565b6107af826001837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036109d6565b5b5b5b5050565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108e55780820151818401526020810190506108ca565b50505050905090810190601f1680156109125780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050919050565b61098a610e73565b60006020838161099657fe5b06146109af57602082816109a657fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b60178111610a03576109fd8160058460ff16901b60ff161784610bf790919063ffffffff16565b50610b16565b60ff8111610a4557610a28601860058460ff16901b1784610bf790919063ffffffff16565b50610a3f81600185610c179092919063ffffffff16565b50610b15565b61ffff8111610a8857610a6b601960058460ff16901b1784610bf790919063ffffffff16565b50610a8281600285610c179092919063ffffffff16565b50610b14565b63ffffffff8111610acd57610ab0601a60058460ff16901b1784610bf790919063ffffffff16565b50610ac781600485610c179092919063ffffffff16565b50610b13565b67ffffffffffffffff8111610b1257610af9601b60058460ff16901b1784610bf790919063ffffffff16565b50610b1081600885610c179092919063ffffffff16565b505b5b5b5b5b505050565b610b23610e73565b610b3583846000015151848551610c39565b905092915050565b610b5b60036005600660ff16901b1783610bf790919063ffffffff16565b50610ba782827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0360405160200180828152602001915050604051602081830303815290604052610cf2565b5050565b610bc960026005600660ff16901b1783610bf790919063ffffffff16565b50610bf3828260405160200180828152602001915050604051602081830303815290604052610cf2565b5050565b610bff610e73565b610c0f8384600001515184610d17565b905092915050565b610c1f610e73565b610c30848560000151518585610d65565b90509392505050565b610c41610e73565b8251821115610c4f57600080fd5b84602001518285011115610c7a57610c79856002610c738860200151888701610dc6565b02610de2565b5b600080865180518760208301019350808887011115610c995787860182525b60208701925050505b60208410610cc55780518252602082019150602081019050602084039350610ca2565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b610cff82600283516109d6565b610d128183610b1b90919063ffffffff16565b505050565b610d1f610e73565b83602001518310610d3c57610d3b846002866020015102610de2565b5b8351805160208583010184815381861415610d58576001820183525b5050508390509392505050565b610d6d610e73565b84602001518483011115610d8b57610d8a85600286850102610de2565b5b60006001836101000a0390508551838682010185831982511617815281518588011115610db85784870182525b505085915050949350505050565b600081831115610dd857829050610ddc565b8190505b92915050565b606082600001519050610df58383610982565b50610e008382610b1b565b50505050565b6040518060a0016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160008152602001610e6d610e73565b81525090565b60405180604001604052806060815260200160008152509056fe756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374a2646970667358221220431694313021ade4e09d883a642fb486edb88e93121e4180a858dac664614c3e64736f6c63430006070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24 PUSH2 0xB4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0x2F90A6D021DB21E1B2A077C5A37B3C7E75D15B7E PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x3866346565646131613837323430373761303536306565383465623030366234 PUSH1 0x7 DUP2 SWAP1 SSTORE POP PUSH8 0xDE0B6B3A7640000 PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH2 0x19D JUMP JUMPDEST PUSH2 0x157 PUSH20 0xC89BD4E1632D3A43CB03AAAD5262CBE4038BC571 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x38CC4831 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x125 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x13B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x159 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST JUMP JUMPDEST DUP1 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 POP JUMP JUMPDEST PUSH2 0xF0E DUP1 PUSH2 0x1AC 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 0x1604F9EA EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x9D1B464A EQ PUSH2 0x88 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x66 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 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1C1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x90 PUSH2 0x2E8 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 0xAE PUSH2 0xE06 JUMP JUMPDEST PUSH2 0xC2 PUSH1 0x7 SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x2EE JUMP JUMPDEST SWAP1 POP PUSH2 0x143 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x696E646578000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x444546495F4B5842545553440000000000000000000000000000000000000000 DUP2 MSTORE POP DUP4 PUSH2 0x31F SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x18E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x74696D6573000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x64 DUP4 PUSH2 0x352 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1BD PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x8 SLOAD PUSH2 0x385 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x279 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xEB1 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE DUP1 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP2 PUSH1 0x9 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2F6 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x2FE PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x315 DUP6 DUP6 DUP6 DUP5 PUSH2 0x63D SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x336 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x6ED SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x34D DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x6ED SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x369 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x6ED SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x380 DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x712 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x4 SLOAD DUP4 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP4 PUSH1 0x5 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0x4BD DUP8 PUSH2 0x7B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD 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 0x544 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x529 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x571 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 SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x622 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE8E PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x645 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x655 DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x982 JUMP JUMPDEST POP DUP4 DUP6 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP DUP3 DUP6 PUSH1 0x20 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 DUP6 PUSH1 0x40 ADD SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP5 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x6FA DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x9D6 JUMP JUMPDEST PUSH2 0x70D DUP2 DUP4 PUSH2 0xB1B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 DUP2 SLT ISZERO PUSH2 0x749 JUMPI PUSH2 0x744 DUP3 DUP3 PUSH2 0xB3D JUMP JUMPDEST PUSH2 0x7B2 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 SGT ISZERO PUSH2 0x768 JUMPI PUSH2 0x763 DUP3 DUP3 PUSH2 0xBAB JUMP JUMPDEST PUSH2 0x7B1 JUMP JUMPDEST PUSH1 0x0 DUP2 SLT PUSH2 0x781 JUMPI PUSH2 0x77C DUP3 PUSH1 0x0 DUP4 PUSH2 0x9D6 JUMP JUMPDEST PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x7AF DUP3 PUSH1 0x1 DUP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB PUSH2 0x9D6 JUMP JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH4 0x40429946 PUSH1 0xE0 SHL PUSH1 0x0 DUP1 DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x1 DUP10 PUSH1 0x80 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD 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 0x8E5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x8CA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x912 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 SWAP10 POP POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98A PUSH2 0xE73 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 DUP2 PUSH2 0x996 JUMPI INVALID JUMPDEST MOD EQ PUSH2 0x9AF JUMPI PUSH1 0x20 DUP3 DUP2 PUSH2 0x9A6 JUMPI INVALID JUMPDEST MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP4 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 DUP2 MSTORE DUP3 DUP2 ADD PUSH1 0x20 ADD PUSH1 0x40 MSTORE POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0xA03 JUMPI PUSH2 0x9FD DUP2 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL PUSH1 0xFF AND OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB16 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0xA45 JUMPI PUSH2 0xA28 PUSH1 0x18 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xA3F DUP2 PUSH1 0x1 DUP6 PUSH2 0xC17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB15 JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0xA88 JUMPI PUSH2 0xA6B PUSH1 0x19 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xA82 DUP2 PUSH1 0x2 DUP6 PUSH2 0xC17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB14 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0xACD JUMPI PUSH2 0xAB0 PUSH1 0x1A PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xAC7 DUP2 PUSH1 0x4 DUP6 PUSH2 0xC17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB13 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0xB12 JUMPI PUSH2 0xAF9 PUSH1 0x1B PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB10 DUP2 PUSH1 0x8 DUP6 PUSH2 0xC17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xB23 PUSH2 0xE73 JUMP JUMPDEST PUSH2 0xB35 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xC39 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB5B PUSH1 0x3 PUSH1 0x5 PUSH1 0x6 PUSH1 0xFF AND SWAP1 SHL OR DUP4 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xBA7 DUP3 DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xCF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xBC9 PUSH1 0x2 PUSH1 0x5 PUSH1 0x6 PUSH1 0xFF AND SWAP1 SHL OR DUP4 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xBF3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xCF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xBFF PUSH2 0xE73 JUMP JUMPDEST PUSH2 0xC0F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xD17 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC1F PUSH2 0xE73 JUMP JUMPDEST PUSH2 0xC30 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0xD65 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC41 PUSH2 0xE73 JUMP JUMPDEST DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xC4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP3 DUP6 ADD GT ISZERO PUSH2 0xC7A JUMPI PUSH2 0xC79 DUP6 PUSH1 0x2 PUSH2 0xC73 DUP9 PUSH1 0x20 ADD MLOAD DUP9 DUP8 ADD PUSH2 0xDC6 JUMP JUMPDEST MUL PUSH2 0xDE2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xC99 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP8 ADD SWAP3 POP POP POP JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xCC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0xCA2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP6 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB SWAP1 POP DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP2 DUP2 OR DUP6 MSTORE POP POP DUP8 SWAP4 POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xCFF DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0x9D6 JUMP JUMPDEST PUSH2 0xD12 DUP2 DUP4 PUSH2 0xB1B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xD1F PUSH2 0xE73 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0xD3C JUMPI PUSH2 0xD3B DUP5 PUSH1 0x2 DUP7 PUSH1 0x20 ADD MLOAD MUL PUSH2 0xDE2 JUMP JUMPDEST JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0xD58 JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP POP POP DUP4 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xD6D PUSH2 0xE73 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP4 ADD GT ISZERO PUSH2 0xD8B JUMPI PUSH2 0xD8A DUP6 PUSH1 0x2 DUP7 DUP6 ADD MUL PUSH2 0xDE2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0xDB8 JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP POP DUP6 SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0xDD8 JUMPI DUP3 SWAP1 POP PUSH2 0xDDC JUMP JUMPDEST DUP2 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0xDF5 DUP4 DUP4 PUSH2 0x982 JUMP JUMPDEST POP PUSH2 0xE00 DUP4 DUP3 PUSH2 0xB1B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE6D PUSH2 0xE73 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID PUSH22 0x6E61626C6520746F207472616E73666572416E644361 PUSH13 0x6C20746F206F7261636C65536F PUSH22 0x726365206D75737420626520746865206F7261636C65 KECCAK256 PUSH16 0x66207468652072657175657374A26469 PUSH17 0x667358221220431694313021ADE4E09D88 GASPRICE PUSH5 0x2FB486EDB8 DUP15 SWAP4 SLT 0x1E COINBASE DUP1 0xA8 PC 0xDA 0xC6 PUSH5 0x614C3E6473 PUSH16 0x6C634300060700330000000000000000 ",
"sourceMap": "235:993:0:-:0;;;1163:1:2;1132:32;;580:214:0;5:9:-1;2:2;;;27:1;24;17:12;2:2;580:214:0;611:25;:23;;;:25;;:::i;:::-;655:42;646:6;;:51;;;;;;;;;;;;;;;;;;707:42;:5;:42;;;;765:12;759:3;:18;;;;235:993;;5051:123:2;5101:68;951:42;5119:47;;;:49;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5119:49:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5119:49:2;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5119:49:2;;;;;;;;;;;;;;;;5101:17;;;:68;;:::i;:::-;5051:123::o;4834:94::-;4917:5;4891:4;;:32;;;;;;;;;;;;;;;;;;4834:94;:::o;235:993:0:-;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80631604f9ea146100465780634357855e146100505780639d1b464a14610088575b600080fd5b61004e6100a6565b005b6100866004803603604081101561006657600080fd5b8101908080359060200190929190803590602001909291905050506101c1565b005b6100906102e8565b6040518082815260200191505060405180910390f35b6100ae610e06565b6100c260075430634357855e60e01b6102ee565b90506101436040518060400160405280600581526020017f696e6465780000000000000000000000000000000000000000000000000000008152506040518060400160405280600c81526020017f444546495f4b58425455534400000000000000000000000000000000000000008152508361031f9092919063ffffffff16565b61018e6040518060400160405280600581526020017f74696d65730000000000000000000000000000000000000000000000000000008152506064836103529092919063ffffffff16565b6101bd600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600854610385565b5050565b816005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610279576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610eb16028913960400191505060405180910390fd5b6005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a281600981905550505050565b60095481565b6102f6610e06565b6102fe610e06565b6103158585858461063d909392919063ffffffff16565b9150509392505050565b6103368284608001516106ed90919063ffffffff16565b61034d8184608001516106ed90919063ffffffff16565b505050565b6103698284608001516106ed90919063ffffffff16565b61038081846080015161071290919063ffffffff16565b505050565b600030600454604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140182815260200192505050604051602081830303815290604052805190602001209050600454836060018181525050836005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af960405160405180910390a2600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea085846104bd876107b6565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610544578082015181840152602081019050610529565b50505050905090810190601f1680156105715780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561059257600080fd5b505af11580156105a6573d6000803e3d6000fd5b505050506040513d60208110156105bc57600080fd5b8101908080519060200190929190505050610622576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180610e8e6023913960400191505060405180910390fd5b60016004600082825401925050819055508090509392505050565b610645610e06565b6106558560800151610100610982565b508385600001818152505082856020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508185604001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050849050949350505050565b6106fa82600383516109d6565b61070d8183610b1b90919063ffffffff16565b505050565b7fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811215610749576107448282610b3d565b6107b2565b67ffffffffffffffff811315610768576107638282610bab565b6107b1565b600081126107815761077c826000836109d6565b6107b0565b6107af826001837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff036109d6565b5b5b5b5050565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108e55780820151818401526020810190506108ca565b50505050905090810190601f1680156109125780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050919050565b61098a610e73565b60006020838161099657fe5b06146109af57602082816109a657fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b60178111610a03576109fd8160058460ff16901b60ff161784610bf790919063ffffffff16565b50610b16565b60ff8111610a4557610a28601860058460ff16901b1784610bf790919063ffffffff16565b50610a3f81600185610c179092919063ffffffff16565b50610b15565b61ffff8111610a8857610a6b601960058460ff16901b1784610bf790919063ffffffff16565b50610a8281600285610c179092919063ffffffff16565b50610b14565b63ffffffff8111610acd57610ab0601a60058460ff16901b1784610bf790919063ffffffff16565b50610ac781600485610c179092919063ffffffff16565b50610b13565b67ffffffffffffffff8111610b1257610af9601b60058460ff16901b1784610bf790919063ffffffff16565b50610b1081600885610c179092919063ffffffff16565b505b5b5b5b5b505050565b610b23610e73565b610b3583846000015151848551610c39565b905092915050565b610b5b60036005600660ff16901b1783610bf790919063ffffffff16565b50610ba782827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0360405160200180828152602001915050604051602081830303815290604052610cf2565b5050565b610bc960026005600660ff16901b1783610bf790919063ffffffff16565b50610bf3828260405160200180828152602001915050604051602081830303815290604052610cf2565b5050565b610bff610e73565b610c0f8384600001515184610d17565b905092915050565b610c1f610e73565b610c30848560000151518585610d65565b90509392505050565b610c41610e73565b8251821115610c4f57600080fd5b84602001518285011115610c7a57610c79856002610c738860200151888701610dc6565b02610de2565b5b600080865180518760208301019350808887011115610c995787860182525b60208701925050505b60208410610cc55780518252602082019150602081019050602084039350610ca2565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b610cff82600283516109d6565b610d128183610b1b90919063ffffffff16565b505050565b610d1f610e73565b83602001518310610d3c57610d3b846002866020015102610de2565b5b8351805160208583010184815381861415610d58576001820183525b5050508390509392505050565b610d6d610e73565b84602001518483011115610d8b57610d8a85600286850102610de2565b5b60006001836101000a0390508551838682010185831982511617815281518588011115610db85784870182525b505085915050949350505050565b600081831115610dd857829050610ddc565b8190505b92915050565b606082600001519050610df58383610982565b50610e008382610b1b565b50505050565b6040518060a0016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160008152602001610e6d610e73565b81525090565b60405180604001604052806060815260200160008152509056fe756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374a2646970667358221220431694313021ade4e09d883a642fb486edb88e93121e4180a858dac664614c3e64736f6c63430006070033",
"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 0x1604F9EA EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x4357855E EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0x9D1B464A EQ PUSH2 0x88 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x66 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 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1C1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x90 PUSH2 0x2E8 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 0xAE PUSH2 0xE06 JUMP JUMPDEST PUSH2 0xC2 PUSH1 0x7 SLOAD ADDRESS PUSH4 0x4357855E PUSH1 0xE0 SHL PUSH2 0x2EE JUMP JUMPDEST SWAP1 POP PUSH2 0x143 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x696E646578000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x444546495F4B5842545553440000000000000000000000000000000000000000 DUP2 MSTORE POP DUP4 PUSH2 0x31F SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x18E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x74696D6573000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x64 DUP4 PUSH2 0x352 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x1BD PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x8 SLOAD PUSH2 0x385 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x279 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x28 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xEB1 PUSH1 0x28 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 SSTORE DUP1 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP2 PUSH1 0x9 DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x9 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x2F6 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x2FE PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x315 DUP6 DUP6 DUP6 DUP5 PUSH2 0x63D SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x336 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x6ED SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x34D DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x6ED SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x369 DUP3 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x6ED SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x380 DUP2 DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x712 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH1 0x4 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE PUSH1 0x14 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH1 0x4 SLOAD DUP4 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP4 PUSH1 0x5 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4000AEA0 DUP6 DUP5 PUSH2 0x4BD DUP8 PUSH2 0x7B6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD 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 0x544 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x529 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x571 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 SWAP5 POP POP POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x622 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x23 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0xE8E PUSH1 0x23 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x4 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x645 PUSH2 0xE06 JUMP JUMPDEST PUSH2 0x655 DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x982 JUMP JUMPDEST POP DUP4 DUP6 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP DUP3 DUP6 PUSH1 0x20 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 DUP6 PUSH1 0x40 ADD SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP5 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x6FA DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x9D6 JUMP JUMPDEST PUSH2 0x70D DUP2 DUP4 PUSH2 0xB1B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 DUP2 SLT ISZERO PUSH2 0x749 JUMPI PUSH2 0x744 DUP3 DUP3 PUSH2 0xB3D JUMP JUMPDEST PUSH2 0x7B2 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 SGT ISZERO PUSH2 0x768 JUMPI PUSH2 0x763 DUP3 DUP3 PUSH2 0xBAB JUMP JUMPDEST PUSH2 0x7B1 JUMP JUMPDEST PUSH1 0x0 DUP2 SLT PUSH2 0x781 JUMPI PUSH2 0x77C DUP3 PUSH1 0x0 DUP4 PUSH2 0x9D6 JUMP JUMPDEST PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x7AF DUP3 PUSH1 0x1 DUP4 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB PUSH2 0x9D6 JUMP JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH4 0x40429946 PUSH1 0xE0 SHL PUSH1 0x0 DUP1 DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x1 DUP10 PUSH1 0x80 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD DUP1 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP9 DUP2 MSTORE PUSH1 0x20 ADD DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD 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 0x8E5 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x8CA JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0x912 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 SWAP10 POP POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98A PUSH2 0xE73 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 DUP2 PUSH2 0x996 JUMPI INVALID JUMPDEST MOD EQ PUSH2 0x9AF JUMPI PUSH1 0x20 DUP3 DUP2 PUSH2 0x9A6 JUMPI INVALID JUMPDEST MOD PUSH1 0x20 SUB DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP4 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 DUP2 MSTORE DUP3 DUP2 ADD PUSH1 0x20 ADD PUSH1 0x40 MSTORE POP DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x17 DUP2 GT PUSH2 0xA03 JUMPI PUSH2 0x9FD DUP2 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL PUSH1 0xFF AND OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB16 JUMP JUMPDEST PUSH1 0xFF DUP2 GT PUSH2 0xA45 JUMPI PUSH2 0xA28 PUSH1 0x18 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xA3F DUP2 PUSH1 0x1 DUP6 PUSH2 0xC17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB15 JUMP JUMPDEST PUSH2 0xFFFF DUP2 GT PUSH2 0xA88 JUMPI PUSH2 0xA6B PUSH1 0x19 PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xA82 DUP2 PUSH1 0x2 DUP6 PUSH2 0xC17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB14 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 GT PUSH2 0xACD JUMPI PUSH2 0xAB0 PUSH1 0x1A PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xAC7 DUP2 PUSH1 0x4 DUP6 PUSH2 0xC17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB13 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT PUSH2 0xB12 JUMPI PUSH2 0xAF9 PUSH1 0x1B PUSH1 0x5 DUP5 PUSH1 0xFF AND SWAP1 SHL OR DUP5 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xB10 DUP2 PUSH1 0x8 DUP6 PUSH2 0xC17 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST JUMPDEST JUMPDEST JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xB23 PUSH2 0xE73 JUMP JUMPDEST PUSH2 0xB35 DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0xC39 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB5B PUSH1 0x3 PUSH1 0x5 PUSH1 0x6 PUSH1 0xFF AND SWAP1 SHL OR DUP4 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xBA7 DUP3 DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xCF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xBC9 PUSH1 0x2 PUSH1 0x5 PUSH1 0x6 PUSH1 0xFF AND SWAP1 SHL OR DUP4 PUSH2 0xBF7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP PUSH2 0xBF3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0xCF2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xBFF PUSH2 0xE73 JUMP JUMPDEST PUSH2 0xC0F DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0xD17 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC1F PUSH2 0xE73 JUMP JUMPDEST PUSH2 0xC30 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0xD65 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC41 PUSH2 0xE73 JUMP JUMPDEST DUP3 MLOAD DUP3 GT ISZERO PUSH2 0xC4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP3 DUP6 ADD GT ISZERO PUSH2 0xC7A JUMPI PUSH2 0xC79 DUP6 PUSH1 0x2 PUSH2 0xC73 DUP9 PUSH1 0x20 ADD MLOAD DUP9 DUP8 ADD PUSH2 0xDC6 JUMP JUMPDEST MUL PUSH2 0xDE2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0xC99 JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST PUSH1 0x20 DUP8 ADD SWAP3 POP POP POP JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0xCC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH1 0x20 DUP5 SUB SWAP4 POP PUSH2 0xCA2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP6 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB SWAP1 POP DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP2 DUP2 OR DUP6 MSTORE POP POP DUP8 SWAP4 POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xCFF DUP3 PUSH1 0x2 DUP4 MLOAD PUSH2 0x9D6 JUMP JUMPDEST PUSH2 0xD12 DUP2 DUP4 PUSH2 0xB1B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xD1F PUSH2 0xE73 JUMP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0xD3C JUMPI PUSH2 0xD3B DUP5 PUSH1 0x2 DUP7 PUSH1 0x20 ADD MLOAD MUL PUSH2 0xDE2 JUMP JUMPDEST JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 DUP2 DUP7 EQ ISZERO PUSH2 0xD58 JUMPI PUSH1 0x1 DUP3 ADD DUP4 MSTORE JUMPDEST POP POP POP DUP4 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xD6D PUSH2 0xE73 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP4 ADD GT ISZERO PUSH2 0xD8B JUMPI PUSH2 0xD8A DUP6 PUSH1 0x2 DUP7 DUP6 ADD MUL PUSH2 0xDE2 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP4 PUSH2 0x100 EXP SUB SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE DUP2 MLOAD DUP6 DUP9 ADD GT ISZERO PUSH2 0xDB8 JUMPI DUP5 DUP8 ADD DUP3 MSTORE JUMPDEST POP POP DUP6 SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0xDD8 JUMPI DUP3 SWAP1 POP PUSH2 0xDDC JUMP JUMPDEST DUP2 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0xDF5 DUP4 DUP4 PUSH2 0x982 JUMP JUMPDEST POP PUSH2 0xE00 DUP4 DUP3 PUSH2 0xB1B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE6D PUSH2 0xE73 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID PUSH22 0x6E61626C6520746F207472616E73666572416E644361 PUSH13 0x6C20746F206F7261636C65536F PUSH22 0x726365206D75737420626520746865206F7261636C65 KECCAK256 PUSH16 0x66207468652072657175657374A26469 PUSH17 0x667358221220431694313021ADE4E09D88 GASPRICE PUSH5 0x2FB486EDB8 DUP15 SWAP4 SLT 0x1E COINBASE DUP1 0xA8 PC 0xDA 0xC6 PUSH5 0x614C3E6473 PUSH16 0x6C634300060700330000000000000000 ",
"sourceMap": "235:993:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;235:993:0;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;804:263:0;;;:::i;:::-;;1077:149;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;1077:149:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;374:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;804:263;843:28;;:::i;:::-;874:66;896:5;;911:4;918:21;;;874;:66::i;:::-;843:97;;948:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;:7;;:32;;;;;:::i;:::-;988:24;;;;;;;;;;;;;;;;;;1008:3;988;:10;;:24;;;;;:::i;:::-;1020:40;1043:6;;;;;;;;;;;1051:3;1056;;1020:22;:40::i;:::-;;804:263;:::o;1077:149::-;1172:10;8743:15:2;:27;8759:10;8743:27;;;;;;;;;;;;;;;;;;;;;8729:41;;:10;:41;;;8721:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8840:15;:27;8856:10;8840:27;;;;;;;;;;;;8833:34;;;;;;;;;;;8897:10;8878:30;;;;;;;;;;1213:6:0::1;1198:12;:21;;;;1077:149:::0;;;:::o;374:27::-;;;;:::o;1767:295:2:-;1915:24;;:::i;:::-;1947:28;;:::i;:::-;1988:69;2003:7;2012:16;2030:26;1988:3;:14;;:69;;;;;;:::i;:::-;1981:76;;;1767:295;;;;;:::o;1988:169:1:-;2090:27;2112:4;2090;:8;;;:21;;:27;;;;:::i;:::-;2123:29;2145:6;2123:4;:8;;;:21;;:29;;;;:::i;:::-;1988:169;;;:::o;2741:162::-;2839:27;2861:4;2839;:8;;;:21;;:27;;;;:::i;:::-;2872:26;2891:6;2872:4;:8;;;:18;;:26;;;;:::i;:::-;2741:162;;;:::o;3072:488:2:-;3196:17;3262:4;3268:12;;3245:36;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3245:36:2;;;3235:47;;;;;;3223:59;;3301:12;;3288:4;:10;;:25;;;;;3348:7;3319:15;:26;3335:9;3319:26;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;3385:9;3366:29;;;;;;;;;;3409:4;;;;;;;;;;;:20;;;3430:7;3439:8;3449:19;3463:4;3449:13;:19::i;:::-;3409:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3409:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3409:60:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3409:60:2;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3409:60:2;;;;;;;;;;;;;;;;3401:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3531:1;3515:12;;:17;;;;;;;;;;;3546:9;3539:16;;3072:488;;;;;:::o;998:365:1:-;1147:24;;:::i;:::-;1179:49;1200:4;:8;;;365:3;1179:20;:49::i;:::-;;1244:3;1234:4;:7;;:13;;;;;1276:16;1253:4;:20;;:39;;;;;;;;;;;1324:17;1298:4;:23;;:43;;;;;;;;;;;;;1354:4;1347:11;;998:365;;;;;;:::o;2841:198:8:-;2943:55;2954:3;404:1;2984:5;2978:19;2943:10;:55::i;:::-;3008:24;3025:5;3008:3;:10;;:24;;;;:::i;:::-;;2841:198;;:::o;1750:448::-;1850:20;1842:5;:28;1839:353;;;1886:30;1905:3;1910:5;1886:18;:30::i;:::-;1839:353;;;1944:18;1936:5;:26;1933:259;;;1978:24;1991:3;1996:5;1978:12;:24::i;:::-;1933:259;;;2031:1;2022:5;:10;2019:173;;2048:44;2059:3;249:1;2085:5;2048:10;:44::i;:::-;2019:173;;;2123:58;2134:3;305:1;2174:5;2169:2;:10;2123;:58::i;:::-;2019:173;1933:259;1839:353;1750:448;;:::o;7564:527:2:-;7652:12;7711:29;;;719:1;663;7961:4;:7;;;7976:4;:20;;;8004:4;:23;;;8035:4;:10;;;765:1;8073:4;:8;;;:12;;;7681:405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7681:405:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7681:405:2;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;7681:405:2;7674:412;;7564:527;;;:::o;982:395:7:-;1052:13;;:::i;:::-;1094:1;1088:2;1077:8;:13;;;;;;:18;1073:71;;1134:2;1123:8;:13;;;;;;1117:2;:20;1105:32;;;;1073:71;1206:8;1191:3;:12;;:23;;;;;1254:4;1248:11;1278:3;1273;1266:16;1301:1;1296:3;1289:14;1340:8;1335:3;1331:18;1327:2;1323:27;1317:4;1310:41;1229:128;1369:3;1362:10;;982:395;;;;:::o;717:724:8:-;832:2;823:5;:11;820:615;;850:44;887:5;882:1;873:5;:10;;;;872:20;;;850:3;:15;;:44;;;;:::i;:::-;;820:615;;;923:4;914:5;:13;911:524;;943:41;980:2;975:1;966:5;:10;;;;965:17;943:3;:15;;:41;;;;:::i;:::-;;998:23;1012:5;1019:1;998:3;:13;;:23;;;;;:::i;:::-;;911:524;;;1050:6;1041:5;:15;1038:397;;1072:41;1109:2;1104:1;1095:5;:10;;;;1094:17;1072:3;:15;;:41;;;;:::i;:::-;;1127:23;1141:5;1148:1;1127:3;:13;;:23;;;;;:::i;:::-;;1038:397;;;1179:10;1170:5;:19;1167:268;;1205:41;1242:2;1237:1;1228:5;:10;;;;1227:17;1205:3;:15;;:41;;;;:::i;:::-;;1260:23;1274:5;1281:1;1260:3;:13;;:23;;;;;:::i;:::-;;1167:268;;;1312:18;1303:5;:27;1300:135;;1346:41;1383:2;1378:1;1369:5;:10;;;;1368:17;1346:3;:15;;:41;;;;:::i;:::-;;1401:23;1415:5;1422:1;1401:3;:13;;:23;;;;;:::i;:::-;;1300:135;1167:268;1038:397;911:524;820:615;717:724;;;:::o;4536:155:7:-;4613:13;;:::i;:::-;4641:45;4647:3;4652;:7;;;:14;4668:4;4674;:11;4641:5;:45::i;:::-;4634:52;;4536:155;;;;:::o;2606:229:8:-;2702:72;709:1;2743;547;2725:19;;;;2724:48;2702:3;:15;;:72;;;;:::i;:::-;;2782:46;2794:3;2820:5;2815:2;:10;2799:28;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2799:28:8;;;2782:11;:46::i;:::-;2606:229;;:::o;2391:209::-;2481:63;652:1;2522;547;2504:19;;;;2503:39;2481:3;:15;;:63;;;;:::i;:::-;;2552:41;2564:3;2585:5;2569:23;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2569:23:8;;;2552:11;:41::i;:::-;2391:209;;:::o;5851:144:7:-;5925:13;;:::i;:::-;5953:37;5964:3;5969;:7;;;:14;5985:4;5953:10;:37::i;:::-;5946:44;;5851:144;;;;:::o;9543:154::-;9624:13;;:::i;:::-;9652:40;9661:3;9666;:7;;;:14;9682:4;9688:3;9652:8;:40::i;:::-;9645:47;;9543:154;;;;;:::o;2691:1140::-;2786:13;;:::i;:::-;2822:4;:11;2815:3;:18;;2807:27;;12:1:-1;9;2:12;2807:27:7;2857:3;:12;;;2851:3;2845;:9;:24;2841:90;;;2879:45;2886:3;2922:1;2891:28;2895:3;:12;;;2915:3;2909;:9;2891:3;:28::i;:::-;:32;2879:6;:45::i;:::-;2841:90;2937:9;2952:8;3046:3;3040:10;3117:6;3111:13;3233:3;3228:2;3220:6;3216:15;3212:25;3204:33;;3317:6;3311:3;3306;3302:13;3299:25;3296:2;;;3359:3;3354;3350:13;3342:6;3335:29;3296:2;3396;3390:4;3386:13;3379:20;;2975:430;;3457:129;3471:2;3464:3;:9;3457:129;;3532:3;3526:10;3520:4;3513:24;3560:2;3552:10;;;;3577:2;3570:9;;;;3482:2;3475:9;;;;3457:129;;;3620:9;3652:1;3645:3;3640:2;:8;3632:3;:17;:21;3620:33;;3711:4;3707:9;3701:3;3695:10;3691:26;3757:4;3750;3744:11;3740:22;3795:7;3785:8;3782:21;3776:4;3769:35;3668:142;;3823:3;3816:10;;;;;2691:1140;;;;;;:::o;2204:181:8:-;2304:47;2315:3;354:1;2338:5;:12;2304:10;:47::i;:::-;2361:17;2372:5;2361:3;:10;;:17;;;;:::i;:::-;;2204:181;;:::o;4985:619:7:-;5068:13;;:::i;:::-;5100:3;:12;;;5093:3;:19;5089:69;;5122:29;5129:3;5149:1;5134:3;:12;;;:16;5122:6;:29::i;:::-;5089:69;5244:3;5238:10;5315:6;5309:13;5427:2;5421:3;5413:6;5409:16;5405:25;5451:4;5445;5437:19;5522:6;5517:3;5514:15;5511:2;;;5567:1;5559:6;5555:14;5547:6;5540:30;5511:2;5173:411;;;5596:3;5589:10;;4985:619;;;;;:::o;8650:642::-;8739:13;;:::i;:::-;8776:3;:12;;;8770:3;8764;:9;:24;8760:73;;;8798:28;8805:3;8824:1;8817:3;8811;:9;8810:15;8798:6;:28::i;:::-;8760:73;8839:9;8864:1;8858:3;8851;:10;:14;8839:26;;8951:3;8945:10;9066:3;9060;9052:6;9048:16;9044:26;9122:4;9114;9110:9;9103:4;9097:11;9093:27;9090:37;9084:4;9077:51;9210:6;9204:13;9198:3;9193;9189:13;9186:32;9183:2;;;9253:3;9248;9244:13;9236:6;9229:29;9183:2;8880:392;;9284:3;9277:10;;;8650:642;;;;;;:::o;1929:114::-;1979:4;1999:1;1995;:5;1991:34;;;2017:1;2010:8;;;;1991:34;2037:1;2030:8;;1929:114;;;;;:::o;1772:153::-;1841:19;1863:3;:7;;;1841:29;;1876:19;1881:3;1886:8;1876:4;:19::i;:::-;;1901;1908:3;1913:6;1901;:19::i;:::-;;1772:153;;;:::o;235:993:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "770800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"currentPrice()": "1027",
"fulfill(bytes32,uint256)": "infinite",
"requestPrice()": "infinite"
}
},
"methodIdentifiers": {
"currentPrice()": "9d1b464a",
"fulfill(bytes32,uint256)": "4357855e",
"requestPrice()": "1604f9ea"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"inputs": [],
"name": "currentPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_price",
"type": "uint256"
}
],
"name": "fulfill",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "requestPrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.6.7+commit.b8d736ae"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkFulfilled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "ChainlinkRequested",
"type": "event"
},
{
"inputs": [],
"name": "currentPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_requestId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "_price",
"type": "uint256"
}
],
"name": "fulfill",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "requestPrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {
"constructor": "Network: Kovan Chainlink - 0x2f90A6D021db21e1B2A077c5a37B3C7E75D15b7e Kraken - 8f4eeda1a8724077a0560ee84eb006b4 Fee: 1 LINK"
},
"notice": "DO NOT USE IN PRODUCTION!! THIS IS EXAMPLE CONTRACT FOR THE KOVAN TESTNET"
}
},
"settings": {
"compilationTarget": {
"902e40cbf5d0a2f583ce2ceb0b9c7749/KrakenConsumer.sol": "KrakenConsumer"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"902e40cbf5d0a2f583ce2ceb0b9c7749/KrakenConsumer.sol": {
"keccak256": "0x67e1cc1e1bdcfd8f6a4da464e05da21d948d3602c90a902f658276319630cca0",
"urls": [
"bzz-raw://8726ff7afa88c229c8920d106572028bd76dd87b917c0a7953ab737681b8f2c0",
"dweb:/ipfs/QmPuHVjxxjUxMKmKJmdgfXuSsGHMtRq22Nsbido1t9gqEF"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/Chainlink.sol": {
"keccak256": "0x7bef34fd97f611103c6113025e3d6af755f326069767e72266698f64258e62b6",
"urls": [
"bzz-raw://82125916319b872093aa8599d2c00bd07d363386a74a4d0268c6edf25c366f82",
"dweb:/ipfs/QmXTnVy1XEw387NduvHHFQNmnzYTwFUhVz95kRvRrcwdHd"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/ChainlinkClient.sol": {
"keccak256": "0x9f8883b8b5b76bba151e5f30d4c353b8a3f15ee3d97117deee4cccd91fe8640f",
"urls": [
"bzz-raw://ee9b132779ac24df4f8a5e45dfc256acc70eb5e43f715de36593e488f20a44ff",
"dweb:/ipfs/QmagJ1htVpP2ZYLAdHEpSEMx1Xd3csbUHAhLctryVDsNFg"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/ChainlinkRequestInterface.sol": {
"keccak256": "0xe513c0f60edf13da7d82625489cf2008c7b66170f3b1ed1606b84c73f95b17ad",
"urls": [
"bzz-raw://78e083ef252b80bb63a5aa126bc7283cd9b88767dfdf0190d46802bc32756ecf",
"dweb:/ipfs/QmdTyEQwX5ecoXR1rBh8DLDJpCYVDM85JjjR2sEJdE9wAA"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/ENSInterface.sol": {
"keccak256": "0xdef864af6e516477773ea246b73531b1836de5bea4ac1cfd8be6e7f4b3f3c3fd",
"urls": [
"bzz-raw://ad3346f5a393cd62d8de678a77d8dc323d8f9e21f0aaa504d0d0b990c8b61477",
"dweb:/ipfs/QmQ2n8329Fzb7Zbzk5wqYvAfKJ9QPwTdCUmm9zUqhL67a1"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/LinkTokenInterface.sol": {
"keccak256": "0xe245a7be950c94d87bb775ae9ee9fbd693fbe2987778e6ce0b04605ea44b7b68",
"urls": [
"bzz-raw://bd2c3165d949fc66fe407b96eb3dc2092c7e800f4c073b411bf7b96de3e156c9",
"dweb:/ipfs/QmcfJhR1Np4GsLWnww2Duqks2wEzYk8VDTvCAYy7MisG1r"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/interfaces/PointerInterface.sol": {
"keccak256": "0x08aed19c3bef1ae2d90fc0d9d28a497fd7f312991ed08fedfe545de6b9a476e4",
"urls": [
"bzz-raw://b2e7b4acfbd4cfbd4c3e266011955954ec0f5a2323647e81b936c66cb35e1b5e",
"dweb:/ipfs/QmXVrpdo76r2WhxE7gJPj3dGycZYKKvK39VNVaB7HyhAbT"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/vendor/BufferChainlink.sol": {
"keccak256": "0x14f13139229a2fef8f705f29f91de0bc81bcd5070ec75b4bd3fd82c1536ca685",
"urls": [
"bzz-raw://9a403d7f17b316c7b8837a25df0563de2a1c3121b7cd43473abce8ce6742bd29",
"dweb:/ipfs/QmWZYi4xJGjPt1pEM7mS7XsA1eF2zpcxiiuGHuiTndXHo7"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/vendor/CBORChainlink.sol": {
"keccak256": "0xd4e84a8ade1a2dba213842fea48ca1c7ea5d0eb4105b06c603966b955834e105",
"urls": [
"bzz-raw://1d5dde29effbd8bc604215034a01c0f00957b666a016b9e5e478e01c789f1b1b",
"dweb:/ipfs/QmTepdEiHcoxDKmodo5zqaZNc68r1zrdEhb3PAaGG4dhv8"
]
},
"https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/vendor/ENSResolver.sol": {
"keccak256": "0xfd992937d215ad669f69e91fefbe62cad8973ae329b4e810ca9b26a1ae0b6bb7",
"urls": [
"bzz-raw://afb189e69fb705795bf41dea9ff20bab191164fc4876803168372f9bf1a1a0f1",
"dweb:/ipfs/QmUBbNkFiJh9BrPepNVYMpxnEk1a5xqun8VT6Zb2jC3FtV"
]
}
},
"version": 1
}
pragma solidity ^0.6.0;
import "https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/ChainlinkClient.sol";
/**
* DO NOT USE IN PRODUCTION!!
* THIS IS EXAMPLE CONTRACT FOR THE KOVAN TESTNET
*/
contract KrakenConsumer is ChainlinkClient {
address private oracle;
bytes32 private jobId;
uint256 private fee;
uint256 public currentPrice;
/**
* Network: Kovan
* Chainlink - 0x2f90A6D021db21e1B2A077c5a37B3C7E75D15b7e
* Kraken - 8f4eeda1a8724077a0560ee84eb006b4
* Fee: 1 LINK
*/
constructor() public {
setPublicChainlinkToken();
oracle = 0x2f90A6D021db21e1B2A077c5a37B3C7E75D15b7e;
jobId = "8f4eeda1a8724077a0560ee84eb006b4";
fee = 1 * 10 ** 18; // 1 LINK
}
function requestPrice() public {
Chainlink.Request memory req = buildChainlinkRequest(jobId, address(this), this.fulfill.selector);
req.add("index", "DEFI_KXBTUSD");
req.addInt("times", 100);
sendChainlinkRequestTo(oracle, req, fee);
}
function fulfill(bytes32 _requestId, uint256 _price) public
recordChainlinkFulfillment(_requestId)
{
currentPrice = _price;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment