More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 2,887 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 324281622 | 14 days ago | IN | 0 ETH | 0.00000635 | ||||
Approve | 317608828 | 34 days ago | IN | 0 ETH | 0.00000049 | ||||
Approve | 315910579 | 39 days ago | IN | 0 ETH | 0.00000049 | ||||
Approve | 313726568 | 45 days ago | IN | 0 ETH | 0.00000049 | ||||
Approve | 312917384 | 47 days ago | IN | 0 ETH | 0.00000253 | ||||
Approve | 312881919 | 47 days ago | IN | 0 ETH | 0.00000403 | ||||
Approve | 310215212 | 55 days ago | IN | 0 ETH | 0.00002251 | ||||
Approve | 309726115 | 57 days ago | IN | 0 ETH | 0.00000348 | ||||
Approve | 305678469 | 68 days ago | IN | 0 ETH | 0.00000211 | ||||
Approve | 305153747 | 70 days ago | IN | 0 ETH | 0.00000039 | ||||
Approve | 305153669 | 70 days ago | IN | 0 ETH | 0.00000039 | ||||
Approve | 304797792 | 71 days ago | IN | 0 ETH | 0.00000051 | ||||
Approve | 304678737 | 71 days ago | IN | 0 ETH | 0.00000117 | ||||
Approve | 303586813 | 74 days ago | IN | 0 ETH | 0.0000007 | ||||
Approve | 298850753 | 88 days ago | IN | 0 ETH | 0.00000323 | ||||
Approve | 295969371 | 97 days ago | IN | 0 ETH | 0.0000021 | ||||
Approve | 295262627 | 99 days ago | IN | 0 ETH | 0.00000066 | ||||
Approve | 294791842 | 100 days ago | IN | 0 ETH | 0.00000063 | ||||
Approve | 294016988 | 102 days ago | IN | 0 ETH | 0.00000258 | ||||
Approve | 293556898 | 104 days ago | IN | 0 ETH | 0.00000087 | ||||
Approve | 293414553 | 104 days ago | IN | 0 ETH | 0.00000369 | ||||
Approve | 293197369 | 105 days ago | IN | 0 ETH | 0.00000104 | ||||
Approve | 292589821 | 106 days ago | IN | 0 ETH | 0.00000119 | ||||
Approve | 292381359 | 107 days ago | IN | 0 ETH | 0.00000088 | ||||
Approve | 292366730 | 107 days ago | IN | 0 ETH | 0.00000101 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
117788680 | 628 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x77876280...34ab2EFc2 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
SpartaDexPair
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2023-07-21 */ /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ //SPDX-License-Identifier: Unlicense pragma solidity 0.8.18; library SafeMath { function add(uint x, uint y) internal pure returns (uint z) { require((z = x + y) >= x, "ds-math-add-overflow"); } function sub(uint x, uint y) internal pure returns (uint z) { require((z = x - y) <= x, "ds-math-sub-underflow"); } function mul(uint x, uint y) internal pure returns (uint z) { require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow"); } function div(uint x, uint y) internal pure returns (uint) { require(y != 0, "ds-math-div-zero"); return x / y; } } /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ interface IUniswapV2ERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance( address owner, address spender ) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom( address from, address to, uint value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external; } /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ interface IUniswapV2Callee { function uniswapV2Call( address sender, uint amount0, uint amount1, bytes calldata data ) external; } /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ interface IUniswapV2Factory { error IdenticalAddress(); error ZeroAddress(); error PairAlreadyExists(); error OnlyFeeToSetter(); event PairCreated( address indexed token0, address indexed token1, address pair, uint ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ library UQ112x112 { uint224 constant Q112 = 2 ** 112; // encode a uint112 as a UQ112x112 function encode(uint112 y) internal pure returns (uint224 z) { z = uint224(y) * Q112; // never overflows } // divide a UQ112x112 by a uint112, returning a UQ112x112 function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) { z = x / uint224(y); } } /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ library Math { function min(uint x, uint y) internal pure returns (uint z) { z = x < y ? x : y; } // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method) function sqrt(uint y) internal pure returns (uint z) { if (y > 3) { z = y; uint x = y / 2 + 1; while (x < z) { z = x; x = (y / x + x) / 2; } } else if (y != 0) { z = 1; } } } /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ ////import {IUniswapV2ERC20} from "./interfaces/IUniswapV2ERC20.sol"; ////import {SafeMath} from "./libraries/SafeMath.sol"; contract SpartaDexERC20 is IUniswapV2ERC20 { string public constant override name = "SpartaDexERC20"; string public constant override symbol = "SRTDX"; uint8 public constant override decimals = 18; uint public override totalSupply; mapping(address => uint) public override balanceOf; mapping(address => mapping(address => uint)) public override allowance; bytes32 public override DOMAIN_SEPARATOR; // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 public constant override PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; mapping(address => uint) public override nonces; constructor() { DOMAIN_SEPARATOR = keccak256( abi.encode( keccak256( "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" ), keccak256(bytes(name)), keccak256(bytes("1")), _chainId(), address(this) ) ); } function _chainId() internal view returns (uint256 chainId_) { assembly { chainId_ := chainid() } } function _mint(address to, uint value) internal { totalSupply += value; balanceOf[to] += value; emit Transfer(address(0), to, value); } function _burn(address from, uint value) internal { balanceOf[from] -= value; totalSupply -= value; emit Transfer(from, address(0), value); } function _approve(address owner, address spender, uint value) private { allowance[owner][spender] = value; emit Approval(owner, spender, value); } function _transfer(address from, address to, uint value) private { balanceOf[from] -= value; balanceOf[to] += value; emit Transfer(from, to, value); } function approve( address spender, uint value ) external override returns (bool) { _approve(msg.sender, spender, value); return true; } function transfer(address to, uint value) external override returns (bool) { _transfer(msg.sender, to, value); return true; } function transferFrom( address from, address to, uint value ) external override returns (bool) { if (allowance[from][msg.sender] != type(uint).max) { allowance[from][msg.sender] -= value; } _transfer(from, to, value); return true; } function permit( address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s ) external override { require(deadline >= block.timestamp, "UniswapV2: EXPIRED"); bytes32 digest = keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR, keccak256( abi.encode( PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline ) ) ) ); address recoveredAddress = ecrecover(digest, v, r, s); require( recoveredAddress != address(0) && recoveredAddress == owner, "UniswapV2: INVALID_SIGNATURE" ); _approve(owner, spender, value); } } /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ ////import {IUniswapV2ERC20} from "./IUniswapV2ERC20.sol"; interface IUniswapV2Pair is IUniswapV2ERC20 { event Mint(address indexed sender, uint amount0, uint amount1); event Burn( address indexed sender, uint amount0, uint amount1, address indexed to ); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap( uint amount0Out, uint amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } /** * SourceUnit: /Users/marcincichocki/dev/klex/sdex-smart-contracts/contracts/dex/core/SpartaDexPair.sol */ ////import {IUniswapV2Pair} from "./interfaces/IUniswapV2Pair.sol"; ////import {SpartaDexERC20} from "./SpartaDexERC20.sol"; ////import {Math} from "./libraries/Math.sol"; ////import {SafeMath} from "./libraries/SafeMath.sol"; ////import {UQ112x112} from "./libraries/UQ112x112.sol"; ////import {IUniswapV2Factory} from "./interfaces/IUniswapV2Factory.sol"; ////import {IUniswapV2Callee} from "./interfaces/IUniswapV2Callee.sol"; contract SpartaDexPair is IUniswapV2Pair, SpartaDexERC20 { using SafeMath for uint; using UQ112x112 for uint224; uint public constant override MINIMUM_LIQUIDITY = 10 ** 3; bytes4 private constant SELECTOR = bytes4(keccak256(bytes("transfer(address,uint256)"))); address public override factory; address public override token0; address public override token1; uint112 private reserve0; // uses single storage slot, accessible via getReserves uint112 private reserve1; // uses single storage slot, accessible via getReserves uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves uint public override price0CumulativeLast; uint public override price1CumulativeLast; uint public override kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event uint private unlocked = 1; modifier lock() { require(unlocked == 1, "UniswapV2: LOCKED"); unlocked = 0; _; unlocked = 1; } function getReserves() public view override returns ( uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast ) { _reserve0 = reserve0; _reserve1 = reserve1; _blockTimestampLast = blockTimestampLast; } function _safeTransfer(address token, address to, uint value) private { (bool success, bytes memory data) = token.call( abi.encodeWithSelector(SELECTOR, to, value) ); require( success && (data.length == 0 || abi.decode(data, (bool))), "UniswapV2: TRANSFER_FAILED" ); } constructor() { factory = msg.sender; } // called once by the factory at time of deployment function initialize(address _token0, address _token1) external override { require(msg.sender == factory, "UniswapV2: FORBIDDEN"); // sufficient check token0 = _token0; token1 = _token1; } // update reserves and, on the first call per block, price accumulators function _update( uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1 ) private { require( balance0 <= type(uint112).max && balance1 <= type(uint112).max, "UniswapV2: OVERFLOW" ); uint32 blockTimestamp = uint32(block.timestamp % 2 ** 32); uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) { // * never overflows, and + overflow is desired price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed; price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed; } reserve0 = uint112(balance0); reserve1 = uint112(balance1); blockTimestampLast = blockTimestamp; emit Sync(reserve0, reserve1); } // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k) function _mintFee( uint112 _reserve0, uint112 _reserve1 ) private returns (bool feeOn) { address feeTo = IUniswapV2Factory(factory).feeTo(); feeOn = feeTo != address(0); uint _kLast = kLast; // gas savings if (feeOn) { if (_kLast != 0) { uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1)); uint rootKLast = Math.sqrt(_kLast); if (rootK > rootKLast) { uint numerator = totalSupply.mul(rootK.sub(rootKLast)); uint denominator = rootK.mul(5).add(rootKLast); uint liquidity = numerator / denominator; if (liquidity > 0) _mint(feeTo, liquidity); } } } else if (_kLast != 0) { kLast = 0; } } // this low-level function should be called from a contract which performs ////important safety checks function mint(address to) external override lock returns (uint liquidity) { (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings uint balance0 = IUniswapV2Pair(token0).balanceOf(address(this)); uint balance1 = IUniswapV2Pair(token1).balanceOf(address(this)); uint amount0 = balance0.sub(_reserve0); uint amount1 = balance1.sub(_reserve1); bool feeOn = _mintFee(_reserve0, _reserve1); uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee if (_totalSupply == 0) { liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY); _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens } else { liquidity = Math.min( amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1 ); } require(liquidity > 0, "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED"); _mint(to, liquidity); _update(balance0, balance1, _reserve0, _reserve1); if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date emit Mint(msg.sender, amount0, amount1); } // this low-level function should be called from a contract which performs ////important safety checks function burn( address to ) external override lock returns (uint amount0, uint amount1) { (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings address _token0 = token0; // gas savings address _token1 = token1; // gas savings uint balance0 = IUniswapV2Pair(_token0).balanceOf(address(this)); uint balance1 = IUniswapV2Pair(_token1).balanceOf(address(this)); uint liquidity = balanceOf[address(this)]; bool feeOn = _mintFee(_reserve0, _reserve1); uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution require( amount0 > 0 && amount1 > 0, "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" ); _burn(address(this), liquidity); _safeTransfer(_token0, to, amount0); _safeTransfer(_token1, to, amount1); balance0 = IUniswapV2Pair(_token0).balanceOf(address(this)); balance1 = IUniswapV2Pair(_token1).balanceOf(address(this)); _update(balance0, balance1, _reserve0, _reserve1); if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date emit Burn(msg.sender, amount0, amount1, to); } // this low-level function should be called from a contract which performs ////important safety checks function swap( uint amount0Out, uint amount1Out, address to, bytes calldata data ) external override lock { require( amount0Out > 0 || amount1Out > 0, "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" ); (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings require( amount0Out < _reserve0 && amount1Out < _reserve1, "UniswapV2: INSUFFICIENT_LIQUIDITY" ); uint balance0; uint balance1; { // scope for _token{0,1}, avoids stack too deep errors address _token0 = token0; address _token1 = token1; require(to != _token0 && to != _token1, "UniswapV2: INVALID_TO"); if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call( msg.sender, amount0Out, amount1Out, data ); balance0 = IUniswapV2Pair(_token0).balanceOf(address(this)); balance1 = IUniswapV2Pair(_token1).balanceOf(address(this)); } uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0; uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0; require( amount0In > 0 || amount1In > 0, "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" ); { // scope for reserve{0,1}Adjusted, avoids stack too deep errors uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3)); uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3)); require( balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000 ** 2), "UniswapV2: K" ); } _update(balance0, balance1, _reserve0, _reserve1); emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to); } // force balances to match reserves function skim(address to) external override lock { address _token0 = token0; // gas savings address _token1 = token1; // gas savings _safeTransfer( _token0, to, IUniswapV2Pair(_token0).balanceOf(address(this)).sub(reserve0) ); _safeTransfer( _token1, to, IUniswapV2Pair(_token1).balanceOf(address(this)).sub(reserve1) ); } // force reserves to match balances function sync() external override lock { _update( IUniswapV2Pair(token0).balanceOf(address(this)), IUniswapV2Pair(token1).balanceOf(address(this)), reserve0, reserve1 ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146104db578063d505accf146104f9578063dd62ed3e14610515578063fff6cae914610545576101a9565b8063ba9a7a5614610483578063bc25cf77146104a1578063c45a0155146104bd576101a9565b80637ecebe00116100d35780637ecebe00146103d457806389afcb441461040457806395d89b4114610435578063a9059cbb14610453576101a9565b80636a6278421461035657806370a08231146103865780637464fc3d146103b6576101a9565b806323b872dd116101665780633644e515116101405780633644e515146102e0578063485cc955146102fe5780635909c0d51461031a5780635a3d549314610338576101a9565b806323b872dd1461027457806330adf81f146102a4578063313ce567146102c2576101a9565b8063022c0d9f146101ae57806306fdde03146101ca5780630902f1ac146101e8578063095ea7b3146102085780630dfe16811461023857806318160ddd14610256575b600080fd5b6101c860048036038101906101c39190612be1565b61054f565b005b6101d2610ba1565b6040516101df9190612cf9565b60405180910390f35b6101f0610bda565b6040516101ff93929190612d63565b60405180910390f35b610222600480360381019061021d9190612d9a565b610c37565b60405161022f9190612df5565b60405180910390f35b610240610c4e565b60405161024d9190612e1f565b60405180910390f35b61025e610c74565b60405161026b9190612e49565b60405180910390f35b61028e60048036038101906102899190612e64565b610c7a565b60405161029b9190612df5565b60405180910390f35b6102ac610dc9565b6040516102b99190612ed0565b60405180910390f35b6102ca610df0565b6040516102d79190612f07565b60405180910390f35b6102e8610df5565b6040516102f59190612ed0565b60405180910390f35b61031860048036038101906103139190612f22565b610dfb565b005b610322610f11565b60405161032f9190612e49565b60405180910390f35b610340610f17565b60405161034d9190612e49565b60405180910390f35b610370600480360381019061036b9190612f62565b610f1d565b60405161037d9190612e49565b60405180910390f35b6103a0600480360381019061039b9190612f62565b611306565b6040516103ad9190612e49565b60405180910390f35b6103be61131e565b6040516103cb9190612e49565b60405180910390f35b6103ee60048036038101906103e99190612f62565b611324565b6040516103fb9190612e49565b60405180910390f35b61041e60048036038101906104199190612f62565b61133c565b60405161042c929190612f8f565b60405180910390f35b61043d6117e6565b60405161044a9190612cf9565b60405180910390f35b61046d60048036038101906104689190612d9a565b61181f565b60405161047a9190612df5565b60405180910390f35b61048b611836565b6040516104989190612e49565b60405180910390f35b6104bb60048036038101906104b69190612f62565b61183c565b005b6104c5611a68565b6040516104d29190612e1f565b60405180910390f35b6104e3611a8e565b6040516104f09190612e1f565b60405180910390f35b610513600480360381019061050e9190613010565b611ab4565b005b61052f600480360381019061052a9190612f22565b611cdc565b60405161053c9190612e49565b60405180910390f35b61054d611d01565b005b6001600c5414610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b906130fe565b60405180910390fd5b6000600c8190555060008511806105ab5750600084115b6105ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e190613190565b60405180910390fd5b6000806105f5610bda565b5091509150816dffffffffffffffffffffffffffff16871080156106285750806dffffffffffffffffffffffffffff1686105b610667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065e90613222565b60405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161415801561072057508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b61075f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107569061328e565b60405180910390fd5b60008b111561077457610773828a8d611ed2565b5b60008a111561078957610788818a8c611ed2565b5b6000888890501115610809578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b81526004016107d69594939291906132fb565b600060405180830381600087803b1580156107f057600080fd5b505af1158015610804573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108429190612e1f565b602060405180830381865afa15801561085f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610883919061335e565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108be9190612e1f565b602060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ff919061335e565b92505050600089856dffffffffffffffffffffffffffff1661092191906133ba565b831161092e576000610956565b89856dffffffffffffffffffffffffffff1661094a91906133ba565b8361095591906133ba565b5b9050600089856dffffffffffffffffffffffffffff1661097691906133ba565b83116109835760006109ab565b89856dffffffffffffffffffffffffffff1661099f91906133ba565b836109aa91906133ba565b5b905060008211806109bc5750600081115b6109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f290613460565b60405180910390fd5b6000610a37610a1460038561205c90919063ffffffff16565b610a296103e88861205c90919063ffffffff16565b6120c990919063ffffffff16565b90506000610a75610a5260038561205c90919063ffffffff16565b610a676103e88861205c90919063ffffffff16565b6120c990919063ffffffff16565b9050610abf620f4240610ab1896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff1661205c90919063ffffffff16565b61205c90919063ffffffff16565b610ad2828461205c90919063ffffffff16565b1015610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a906134cc565b60405180910390fd5b5050610b2184848888612122565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f604051610b8494939291906134ec565b60405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600e81526020017f537061727461446578455243323000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b6000610c44338484612416565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610db35781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dab91906133ba565b925050819055505b610dbe848484612501565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e829061357d565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c5414610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b906130fe565b60405180910390fd5b6000600c81905550600080610f77610bda565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fd99190612e1f565b602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a919061335e565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110799190612e1f565b602060405180830381865afa158015611096573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ba919061335e565b905060006110e1856dffffffffffffffffffffffffffff16846120c990919063ffffffff16565b90506000611108856dffffffffffffffffffffffffffff16846120c990919063ffffffff16565b905060006111168787612617565b905060008054905060008103611169576111556103e8611147611142868861205c90919063ffffffff16565b6127e8565b6120c990919063ffffffff16565b985061116460006103e8612862565b6111d0565b6111cd886dffffffffffffffffffffffffffff16611190838761205c90919063ffffffff16565b61119a91906135cc565b886dffffffffffffffffffffffffffff166111be848761205c90919063ffffffff16565b6111c891906135cc565b61293a565b98505b60008911611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a9061366f565b60405180910390fd5b61121d8a8a612862565b61122986868a8a612122565b81156112a15761129a6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1661205c90919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f85856040516112e9929190612f8f565b60405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137b906130fe565b60405180910390fd5b6000600c81905550600080611397610bda565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114259190612e1f565b602060405180830381865afa158015611442573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611466919061335e565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016114a39190612e1f565b602060405180830381865afa1580156114c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e4919061335e565b90506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060006115368888612617565b905060008054905080611552868561205c90919063ffffffff16565b61155c91906135cc565b9a5080611572858561205c90919063ffffffff16565b61157c91906135cc565b995060008b11801561158e575060008a115b6115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c490613701565b60405180910390fd5b6115d73084612953565b6115e2878d8d611ed2565b6115ed868d8c611ed2565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116269190612e1f565b602060405180830381865afa158015611643573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611667919061335e565b94508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116a29190612e1f565b602060405180830381865afa1580156116bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e3919061335e565b93506116f185858b8b612122565b8115611769576117626008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1661205c90919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d6040516117c8929190612f8f565b60405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600581526020017f535254445800000000000000000000000000000000000000000000000000000081525081565b600061182c338484612501565b6001905092915050565b6103e881565b6001600c5414611881576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611878906130fe565b60405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506119998284611994600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119459190612e1f565b602060405180830381865afa158015611962573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611986919061335e565b6120c990919063ffffffff16565b611ed2565b611a5b8184611a566008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a079190612e1f565b602060405180830381865afa158015611a24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a48919061335e565b6120c990919063ffffffff16565b611ed2565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aee9061376d565b60405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b739061378d565b919050558a604051602001611b8d969594939291906137d5565b60405160208183030381529060405280519060200120604051602001611bb49291906138ae565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051611bf194939291906138e5565b6020604051602081039080840390855afa158015611c13573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611c8757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbd90613976565b60405180910390fd5b611cd1898989612416565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c5414611d46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3d906130fe565b60405180910390fd5b6000600c81905550611ec8600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611dac9190612e1f565b602060405180830381865afa158015611dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ded919061335e565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611e489190612e1f565b602060405180830381865afa158015611e65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e89919061335e565b600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612122565b6001600c81905550565b6000808473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401611f3c929190613996565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611fa69190613a06565b6000604051808303816000865af19150503d8060008114611fe3576040519150601f19603f3d011682016040523d82523d6000602084013e611fe8565b606091505b509150915081801561201657506000815114806120155750808060200190518101906120149190613a49565b5b5b612055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204c90613ac2565b60405180910390fd5b5050505050565b6000808214806120845750828283856120759190613ae2565b92508261208291906135cc565b145b6120c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ba90613b70565b60405180910390fd5b92915050565b60008282846120d891906133ba565b915081111561211c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211390613bdc565b60405180910390fd5b92915050565b6dffffffffffffffffffffffffffff8016841115801561215257506dffffffffffffffffffffffffffff80168311155b612191576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218890613c48565b60405180910390fd5b6000640100000000426121a49190613c68565b905060006008601c9054906101000a900463ffffffff16826121c69190613c99565b905060008163ffffffff161180156121ef57506000846dffffffffffffffffffffffffffff1614155b801561220c57506000836dffffffffffffffffffffffffffff1614155b15612312578063ffffffff166122518561222586612a2b565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612a5f90919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166122799190613ae2565b6009600082825461228a9190613cd1565b925050819055508063ffffffff166122d1846122a587612a2b565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612a5f90919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166122f99190613ae2565b600a600082825461230a9190613cd1565b925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16604051612406929190613d05565b60405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124f49190612e49565b60405180910390a3505050565b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461255091906133ba565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125a69190613cd1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161260a9190612e49565b60405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b8152600401602060405180830381865afa158015612687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ab9190613d43565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156127ce57600081146127c957600061273261272d866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff1661205c90919063ffffffff16565b6127e8565b9050600061273f836127e8565b9050808211156127c657600061277261276183856120c990919063ffffffff16565b60005461205c90919063ffffffff16565b9050600061279c8361278e60058761205c90919063ffffffff16565b612a8590919063ffffffff16565b9050600081836127ac91906135cc565b905060008111156127c2576127c18782612862565b5b5050505b50505b6127e0565b600081146127df576000600b819055505b5b505092915050565b6000600382111561284f578190506000600160028461280791906135cc565b6128119190613cd1565b90505b8181101561284957809150600281828561282e91906135cc565b6128389190613cd1565b61284291906135cc565b9050612814565b5061285d565b6000821461285c57600190505b5b919050565b806000808282546128739190613cd1565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128c99190613cd1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161292e9190612e49565b60405180910390a35050565b6000818310612949578161294b565b825b905092915050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129a291906133ba565b92505081905550806000808282546129ba91906133ba565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a1f9190612e49565b60405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16612a589190613d98565b9050919050565b6000816dffffffffffffffffffffffffffff1683612a7d9190613dda565b905092915050565b6000828284612a949190613cd1565b9150811015612ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612acf90613e57565b60405180910390fd5b92915050565b600080fd5b600080fd5b6000819050919050565b612afb81612ae8565b8114612b0657600080fd5b50565b600081359050612b1881612af2565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b4982612b1e565b9050919050565b612b5981612b3e565b8114612b6457600080fd5b50565b600081359050612b7681612b50565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612ba157612ba0612b7c565b5b8235905067ffffffffffffffff811115612bbe57612bbd612b81565b5b602083019150836001820283011115612bda57612bd9612b86565b5b9250929050565b600080600080600060808688031215612bfd57612bfc612ade565b5b6000612c0b88828901612b09565b9550506020612c1c88828901612b09565b9450506040612c2d88828901612b67565b935050606086013567ffffffffffffffff811115612c4e57612c4d612ae3565b5b612c5a88828901612b8b565b92509250509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ca3578082015181840152602081019050612c88565b60008484015250505050565b6000601f19601f8301169050919050565b6000612ccb82612c69565b612cd58185612c74565b9350612ce5818560208601612c85565b612cee81612caf565b840191505092915050565b60006020820190508181036000830152612d138184612cc0565b905092915050565b60006dffffffffffffffffffffffffffff82169050919050565b612d3e81612d1b565b82525050565b600063ffffffff82169050919050565b612d5d81612d44565b82525050565b6000606082019050612d786000830186612d35565b612d856020830185612d35565b612d926040830184612d54565b949350505050565b60008060408385031215612db157612db0612ade565b5b6000612dbf85828601612b67565b9250506020612dd085828601612b09565b9150509250929050565b60008115159050919050565b612def81612dda565b82525050565b6000602082019050612e0a6000830184612de6565b92915050565b612e1981612b3e565b82525050565b6000602082019050612e346000830184612e10565b92915050565b612e4381612ae8565b82525050565b6000602082019050612e5e6000830184612e3a565b92915050565b600080600060608486031215612e7d57612e7c612ade565b5b6000612e8b86828701612b67565b9350506020612e9c86828701612b67565b9250506040612ead86828701612b09565b9150509250925092565b6000819050919050565b612eca81612eb7565b82525050565b6000602082019050612ee56000830184612ec1565b92915050565b600060ff82169050919050565b612f0181612eeb565b82525050565b6000602082019050612f1c6000830184612ef8565b92915050565b60008060408385031215612f3957612f38612ade565b5b6000612f4785828601612b67565b9250506020612f5885828601612b67565b9150509250929050565b600060208284031215612f7857612f77612ade565b5b6000612f8684828501612b67565b91505092915050565b6000604082019050612fa46000830185612e3a565b612fb16020830184612e3a565b9392505050565b612fc181612eeb565b8114612fcc57600080fd5b50565b600081359050612fde81612fb8565b92915050565b612fed81612eb7565b8114612ff857600080fd5b50565b60008135905061300a81612fe4565b92915050565b600080600080600080600060e0888a03121561302f5761302e612ade565b5b600061303d8a828b01612b67565b975050602061304e8a828b01612b67565b965050604061305f8a828b01612b09565b95505060606130708a828b01612b09565b94505060806130818a828b01612fcf565b93505060a06130928a828b01612ffb565b92505060c06130a38a828b01612ffb565b91505092959891949750929550565b7f556e697377617056323a204c4f434b4544000000000000000000000000000000600082015250565b60006130e8601183612c74565b91506130f3826130b2565b602082019050919050565b60006020820190508181036000830152613117816130db565b9050919050565b7f556e697377617056323a20494e53554646494349454e545f4f55545055545f4160008201527f4d4f554e54000000000000000000000000000000000000000000000000000000602082015250565b600061317a602583612c74565b91506131858261311e565b604082019050919050565b600060208201905081810360008301526131a98161316d565b9050919050565b7f556e697377617056323a20494e53554646494349454e545f4c4951554944495460008201527f5900000000000000000000000000000000000000000000000000000000000000602082015250565b600061320c602183612c74565b9150613217826131b0565b604082019050919050565b6000602082019050818103600083015261323b816131ff565b9050919050565b7f556e697377617056323a20494e56414c49445f544f0000000000000000000000600082015250565b6000613278601583612c74565b915061328382613242565b602082019050919050565b600060208201905081810360008301526132a78161326b565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b60006132da83856132ae565b93506132e78385846132bf565b6132f083612caf565b840190509392505050565b60006080820190506133106000830188612e10565b61331d6020830187612e3a565b61332a6040830186612e3a565b818103606083015261333d8184866132ce565b90509695505050505050565b60008151905061335881612af2565b92915050565b60006020828403121561337457613373612ade565b5b600061338284828501613349565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133c582612ae8565b91506133d083612ae8565b92508282039050818111156133e8576133e761338b565b5b92915050565b7f556e697377617056323a2020494e53554646494349454e545f494e5055545f4160008201527f4d4f554e54000000000000000000000000000000000000000000000000000000602082015250565b600061344a602583612c74565b9150613455826133ee565b604082019050919050565b600060208201905081810360008301526134798161343d565b9050919050565b7f556e697377617056323a204b0000000000000000000000000000000000000000600082015250565b60006134b6600c83612c74565b91506134c182613480565b602082019050919050565b600060208201905081810360008301526134e5816134a9565b9050919050565b60006080820190506135016000830187612e3a565b61350e6020830186612e3a565b61351b6040830185612e3a565b6135286060830184612e3a565b95945050505050565b7f556e697377617056323a20464f5242494444454e000000000000000000000000600082015250565b6000613567601483612c74565b915061357282613531565b602082019050919050565b600060208201905081810360008301526135968161355a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135d782612ae8565b91506135e283612ae8565b9250826135f2576135f161359d565b5b828204905092915050565b7f556e697377617056323a20494e53554646494349454e545f4c4951554944495460008201527f595f4d494e544544000000000000000000000000000000000000000000000000602082015250565b6000613659602883612c74565b9150613664826135fd565b604082019050919050565b600060208201905081810360008301526136888161364c565b9050919050565b7f556e697377617056323a20494e53554646494349454e545f4c4951554944495460008201527f595f4255524e4544000000000000000000000000000000000000000000000000602082015250565b60006136eb602883612c74565b91506136f68261368f565b604082019050919050565b6000602082019050818103600083015261371a816136de565b9050919050565b7f556e697377617056323a20455850495245440000000000000000000000000000600082015250565b6000613757601283612c74565b915061376282613721565b602082019050919050565b600060208201905081810360008301526137868161374a565b9050919050565b600061379882612ae8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137ca576137c961338b565b5b600182019050919050565b600060c0820190506137ea6000830189612ec1565b6137f76020830188612e10565b6138046040830187612e10565b6138116060830186612e3a565b61381e6080830185612e3a565b61382b60a0830184612e3a565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613877600283613836565b915061388282613841565b600282019050919050565b6000819050919050565b6138a86138a382612eb7565b61388d565b82525050565b60006138b98261386a565b91506138c58285613897565b6020820191506138d58284613897565b6020820191508190509392505050565b60006080820190506138fa6000830187612ec1565b6139076020830186612ef8565b6139146040830185612ec1565b6139216060830184612ec1565b95945050505050565b7f556e697377617056323a20494e56414c49445f5349474e415455524500000000600082015250565b6000613960601c83612c74565b915061396b8261392a565b602082019050919050565b6000602082019050818103600083015261398f81613953565b9050919050565b60006040820190506139ab6000830185612e10565b6139b86020830184612e3a565b9392505050565b600081519050919050565b600081905092915050565b60006139e0826139bf565b6139ea81856139ca565b93506139fa818560208601612c85565b80840191505092915050565b6000613a1282846139d5565b915081905092915050565b613a2681612dda565b8114613a3157600080fd5b50565b600081519050613a4381613a1d565b92915050565b600060208284031215613a5f57613a5e612ade565b5b6000613a6d84828501613a34565b91505092915050565b7f556e697377617056323a205452414e534645525f4641494c4544000000000000600082015250565b6000613aac601a83612c74565b9150613ab782613a76565b602082019050919050565b60006020820190508181036000830152613adb81613a9f565b9050919050565b6000613aed82612ae8565b9150613af883612ae8565b9250828202613b0681612ae8565b91508282048414831517613b1d57613b1c61338b565b5b5092915050565b7f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000600082015250565b6000613b5a601483612c74565b9150613b6582613b24565b602082019050919050565b60006020820190508181036000830152613b8981613b4d565b9050919050565b7f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000600082015250565b6000613bc6601583612c74565b9150613bd182613b90565b602082019050919050565b60006020820190508181036000830152613bf581613bb9565b9050919050565b7f556e697377617056323a204f564552464c4f5700000000000000000000000000600082015250565b6000613c32601383612c74565b9150613c3d82613bfc565b602082019050919050565b60006020820190508181036000830152613c6181613c25565b9050919050565b6000613c7382612ae8565b9150613c7e83612ae8565b925082613c8e57613c8d61359d565b5b828206905092915050565b6000613ca482612d44565b9150613caf83612d44565b9250828203905063ffffffff811115613ccb57613cca61338b565b5b92915050565b6000613cdc82612ae8565b9150613ce783612ae8565b9250828201905080821115613cff57613cfe61338b565b5b92915050565b6000604082019050613d1a6000830185612d35565b613d276020830184612d35565b9392505050565b600081519050613d3d81612b50565b92915050565b600060208284031215613d5957613d58612ade565b5b6000613d6784828501613d2e565b91505092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613da382613d70565b9150613dae83613d70565b9250828202613dbc81613d70565b91508282048414831517613dd357613dd261338b565b5b5092915050565b6000613de582613d70565b9150613df083613d70565b925082613e0057613dff61359d565b5b828204905092915050565b7f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000600082015250565b6000613e41601483612c74565b9150613e4c82613e0b565b602082019050919050565b60006020820190508181036000830152613e7081613e34565b905091905056fea26469706673582212203bba237a6497e7e893a7fed951d6a8e06ca867d458a29ba17bbf81f2f1eb283b64736f6c63430008120033
Deployed Bytecode Sourcemap
11005:10517:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18332:2384;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5102:55;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12078:331;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;7068:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11343:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5270:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7413:318;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5597:126;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5219:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5445:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12891:219;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11691:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11739;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15285:1316;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5309:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11787:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5730:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16717:1499;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5164:48;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7257:148;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11135:57;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20765:459;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11305:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11380:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7739:1003;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5366:70;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21273:246;;;:::i;:::-;;18332:2384;11981:1;11969:8;;:13;11961:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;12026:1;12015:8;:12;;;;18525:1:::1;18512:10;:14;:32;;;;18543:1;18530:10;:14;18512:32;18490:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;18621:17;18640::::0;18663:13:::1;:11;:13::i;:::-;18620:56;;;;;18737:9;18724:22;;:10;:22;:48;;;;;18763:9;18750:22;;:10;:22;18724:48;18702:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;18846:13;18870::::0;18977:15:::1;18995:6;;;;;;;;;;;18977:24;;19016:15;19034:6;;;;;;;;;;;19016:24;;19069:7;19063:13;;:2;:13;;;;:30;;;;;19086:7;19080:13;;:2;:13;;;;19063:30;19055:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19151:1;19138:10;:14;19134:58;;;19154:38;19168:7;19177:2;19181:10;19154:13;:38::i;:::-;19134:58;19258:1;19245:10;:14;19241:58;;;19261:38;19275:7;19284:2;19288:10;19261:13;:38::i;:::-;19241:58;19366:1;19352:4;;:11;;:15;19348:217;;;19403:2;19386:34;;;19443:10;19476;19509;19542:4;;19386:179;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19348:217;19606:7;19591:33;;;19633:4;19591:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19580:59;;19680:7;19665:33;;;19707:4;19665:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19654:59;;18894:831;;19735:14;19775:10;19763:9;:22;;;;;;:::i;:::-;19752:8;:33;:101;;19852:1;19752:101;;;19825:10;19813:9;:22;;;;;;:::i;:::-;19801:8;:35;;;;:::i;:::-;19752:101;19735:118;;19864:14;19904:10;19892:9;:22;;;;;;:::i;:::-;19881:8;:33;:101;;19981:1;19881:101;;;19954:10;19942:9;:22;;;;;;:::i;:::-;19930:8;:35;;;;:::i;:::-;19881:101;19864:118;;20027:1;20015:9;:13;:30;;;;20044:1;20032:9;:13;20015:30;19993:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;20213:21;20237:40;20260:16;20274:1;20260:9;:13;;:16;;;;:::i;:::-;20237:18;20250:4;20237:8;:12;;:18;;;;:::i;:::-;:22;;:40;;;;:::i;:::-;20213:64;;20292:21;20316:40;20339:16;20353:1;20339:9;:13;;:16;;;;:::i;:::-;20316:18;20329:4;20316:8;:12;;:18;;;;:::i;:::-;:22;;:40;;;;:::i;:::-;20292:64;;20460:45;20495:9;20460:30;20480:9;20460:30;;20465:9;20460:15;;:19;;:30;;;;:::i;:::-;:34;;:45;;;;:::i;:::-;20397:38;20418:16;20397;:20;;:38;;;;:::i;:::-;:108;;20371:182;;;;;;;;;;;;:::i;:::-;;;;;;;;;20121:444;;20577:49;20585:8;20595;20605:9;20616;20577:7;:49::i;:::-;20705:2;20642:66;;20647:10;20642:66;;;20659:9;20670;20681:10;20693;20642:66;;;;;;;;;:::i;:::-;;;;;;;;18479:2237;;;;;;12061:1:::0;12050:8;:12;;;;18332:2384;;;;;:::o;5102:55::-;;;;;;;;;;;;;;;;;;;:::o;12078:331::-;12181:17;12213;12245:26;12311:8;;;;;;;;;;;12299:20;;12342:8;;;;;;;;;;;12330:20;;12383:18;;;;;;;;;;;12361:40;;12078:331;;;:::o;7068:181::-;7166:4;7183:36;7192:10;7204:7;7213:5;7183:8;:36::i;:::-;7237:4;7230:11;;7068:181;;;;:::o;11343:30::-;;;;;;;;;;;;;:::o;5270:32::-;;;;:::o;7413:318::-;7534:4;7586:14;7555:9;:15;7565:4;7555:15;;;;;;;;;;;;;;;:27;7571:10;7555:27;;;;;;;;;;;;;;;;:45;7551:114;;7648:5;7617:9;:15;7627:4;7617:15;;;;;;;;;;;;;;;:27;7633:10;7617:27;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;7551:114;7675:26;7685:4;7691:2;7695:5;7675:9;:26::i;:::-;7719:4;7712:11;;7413:318;;;;;:::o;5597:126::-;5657:66;5597:126;;;:::o;5219:44::-;5261:2;5219:44;:::o;5445:40::-;;;;:::o;12891:219::-;12996:7;;;;;;;;;;;12982:21;;:10;:21;;;12974:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;13068:7;13059:6;;:16;;;;;;;;;;;;;;;;;;13095:7;13086:6;;:16;;;;;;;;;;;;;;;;;;12891:219;;:::o;11691:41::-;;;;:::o;11739:::-;;;;:::o;15285:1316::-;15343:14;11981:1;11969:8;;:13;11961:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;12026:1;12015:8;:12;;;;15371:17:::1;15390::::0;15413:13:::1;:11;:13::i;:::-;15370:56;;;;;15452:13;15483:6;;;;;;;;;;;15468:32;;;15509:4;15468:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15452:63;;15526:13;15557:6;;;;;;;;;;;15542:32;;;15583:4;15542:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15526:63;;15600:12;15615:23;15628:9;15615:23;;:8;:12;;:23;;;;:::i;:::-;15600:38;;15649:12;15664:23;15677:9;15664:23;;:8;:12;;:23;;;;:::i;:::-;15649:38;;15700:10;15713:30;15722:9;15733;15713:8;:30::i;:::-;15700:43;;15754:17;15774:11:::0;::::1;15754:31;;15894:1;15878:12;:17:::0;15874:402:::1;;15924:54;11185:7;15924:31;15934:20;15946:7;15934;:11;;:20;;;;:::i;:::-;15924:9;:31::i;:::-;:35;;:54;;;;:::i;:::-;15912:66;;15993:36;16007:1;11185:7;15993:5;:36::i;:::-;15874:402;;;16129:135;16184:9;16156:37;;:25;16168:12;16156:7;:11;;:25;;;;:::i;:::-;:37;;;;:::i;:::-;16240:9;16212:37;;:25;16224:12;16212:7;:11;;:25;;;;:::i;:::-;:37;;;;:::i;:::-;16129:8;:135::i;:::-;16117:147;;15874:402;16306:1;16294:9;:13;16286:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;16363:20;16369:2;16373:9;16363:5;:20::i;:::-;16396:49;16404:8;16414;16424:9;16435;16396:7;:49::i;:::-;16460:5;16456:47;;;16475:28;16494:8;;;;;;;;;;;16475:28;;16480:8;;;;;;;;;;;16475:14;;:18;;:28;;;;:::i;:::-;16467:5;:36;;;;16456:47;16564:10;16559:34;;;16576:7;16585;16559:34;;;;;;;:::i;:::-;;;;;;;;15359:1242;;;;;;;;12061:1:::0;12050:8;:12;;;;15285:1316;;;:::o;5309:50::-;;;;;;;;;;;;;;;;;:::o;11787:26::-;;;;:::o;5730:47::-;;;;;;;;;;;;;;;;;:::o;16717:1499::-;16791:12;16805;11981:1;11969:8;;:13;11961:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;12026:1;12015:8;:12;;;;16831:17:::1;16850::::0;16873:13:::1;:11;:13::i;:::-;16830:56;;;;;16912:15;16930:6;;;;;;;;;;;16912:24;;16962:15;16980:6;;;;;;;;;;;16962:24;;17012:13;17043:7;17028:33;;;17070:4;17028:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17012:64;;17087:13;17118:7;17103:33;;;17145:4;17103:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17087:64;;17162:14;17179:9;:24;17197:4;17179:24;;;;;;;;;;;;;;;;17162:41;;17216:10;17229:30;17238:9;17249;17229:8;:30::i;:::-;17216:43;;17270:17;17290:11:::0;::::1;17270:31;;17426:12;17400:23;17414:8;17400:9;:13;;:23;;;;:::i;:::-;:38;;;;:::i;:::-;17390:48;;17533:12;17507:23;17521:8;17507:9;:13;;:23;;;;:::i;:::-;:38;;;;:::i;:::-;17497:48;;17636:1;17626:7;:11;:26;;;;;17651:1;17641:7;:11;17626:26;17604:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;17731:31;17745:4;17752:9;17731:5;:31::i;:::-;17773:35;17787:7;17796:2;17800:7;17773:13;:35::i;:::-;17819;17833:7;17842:2;17846:7;17819:13;:35::i;:::-;17891:7;17876:33;;;17918:4;17876:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17865:59;;17961:7;17946:33;;;17988:4;17946:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17935:59;;18007:49;18015:8;18025;18035:9;18046;18007:7;:49::i;:::-;18071:5;18067:47;;;18086:28;18105:8;;;;;;;;;;;18086:28;;18091:8;;;;;;;;;;;18086:14;;:18;;:28;;;;:::i;:::-;18078:5;:36;;;;18067:47;18205:2;18170:38;;18175:10;18170:38;;;18187:7;18196;18170:38;;;;;;;:::i;:::-;;;;;;;;16819:1397;;;;;;;;;12061:1:::0;12050:8;:12;;;;16717:1499;;;:::o;5164:48::-;;;;;;;;;;;;;;;;;;;:::o;7257:148::-;7326:4;7343:32;7353:10;7365:2;7369:5;7343:9;:32::i;:::-;7393:4;7386:11;;7257:148;;;;:::o;11135:57::-;11185:7;11135:57;:::o;20765:459::-;11981:1;11969:8;;:13;11961:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;12026:1;12015:8;:12;;;;20825:15:::1;20843:6;;;;;;;;;;;20825:24;;20875:15;20893:6;;;;;;;;;;;20875:24;;20925:140;20953:7;20975:2;20992:62;21045:8;;;;;;;;;;;20992:62;;21007:7;20992:33;;;21034:4;20992:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;:62;;;;:::i;:::-;20925:13;:140::i;:::-;21076;21104:7;21126:2;21143:62;21196:8;;;;;;;;;;;21143:62;;21158:7;21143:33;;;21185:4;21143:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;:62;;;;:::i;:::-;21076:13;:140::i;:::-;20814:410;;12061:1:::0;12050:8;:12;;;;20765:459;:::o;11305:31::-;;;;;;;;;;;;;:::o;11380:30::-;;;;;;;;;;;;;:::o;7739:1003::-;7964:15;7952:8;:27;;7944:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;8013:14;8118:16;;5657:66;8222:15;;8264:5;8296:7;8330:5;8362:6;:13;8369:5;8362:13;;;;;;;;;;;;;;;;:15;;;;;;;;;:::i;:::-;;;;;8404:8;8185:250;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8153:301;;;;;;8054:415;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8030:450;;;;;;8013:467;;8491:24;8518:26;8528:6;8536:1;8539;8542;8518:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8491:53;;8605:1;8577:30;;:16;:30;;;;:59;;;;;8631:5;8611:25;;:16;:25;;;8577:59;8555:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;8703:31;8712:5;8719:7;8728:5;8703:8;:31::i;:::-;7933:809;;7739:1003;;;;;;;:::o;5366:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21273:246::-;11981:1;11969:8;;:13;11961:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;12026:1;12015:8;:12;;;;21323:188:::1;21360:6;;;;;;;;;;;21345:32;;;21386:4;21345:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21422:6;;;;;;;;;;;21407:32;;;21448:4;21407:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21469:8;;;;;;;;;;;21492;;;;;;;;;;;21323:7;:188::i;:::-;12061:1:::0;12050:8;:12;;;;21273:246::o;12417:348::-;12499:12;12513:17;12534:5;:10;;11260:34;;;;;;;;;;;;;;;;;11250:45;;;;;;12592:2;12596:5;12559:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12534:79;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12498:115;;;;12646:7;:57;;;;;12673:1;12658:4;:11;:16;:44;;;;12689:4;12678:24;;;;;;;;;;;;:::i;:::-;12658:44;12646:57;12624:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;12487:278;;12417:348;;;:::o;492:142::-;544:6;576:1;571;:6;:30;;;;600:1;595;590;586;:5;;;;:::i;:::-;582:9;;;581:15;;;;:::i;:::-;:20;571:30;563:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;492:142;;;;:::o;355:129::-;407:6;449:1;443;439;:5;;;;:::i;:::-;435:9;;;434:16;;426:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;355:129;;;;:::o;13195:1022::-;13376:17;13364:29;;:8;:29;;:62;;;;;13409:17;13397:29;;:8;:29;;13364:62;13342:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;13484:21;13533:7;13515:15;:25;;;;:::i;:::-;13484:57;;13552:18;13590;;;;;;;;;;;13573:14;:35;;;;:::i;:::-;13552:56;;13660:1;13646:11;:15;;;:33;;;;;13678:1;13665:9;:14;;;;13646:33;:51;;;;;13696:1;13683:9;:14;;;;13646:51;13642:404;;;13886:11;13816:81;;13821:44;13855:9;13821:27;13838:9;13821:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;13816:50;;:81;;;;:::i;:::-;13775:20;;:122;;;;;;;:::i;:::-;;;;;;;;14023:11;13953:81;;13958:44;13992:9;13958:27;13975:9;13958:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;13953:50;;:81;;;;:::i;:::-;13912:20;;:122;;;;;;;:::i;:::-;;;;;;;;13642:404;14075:8;14056;;:28;;;;;;;;;;;;;;;;;;14114:8;14095;;:28;;;;;;;;;;;;;;;;;;14155:14;14134:18;;:35;;;;;;;;;;;;;;;;;;14185:24;14190:8;;;;;;;;;;;14200;;;;;;;;;;;14185:24;;;;;;;:::i;:::-;;;;;;;;13331:886;;13195:1022;;;;:::o;6701:169::-;6810:5;6782:9;:16;6792:5;6782:16;;;;;;;;;;;;;;;:25;6799:7;6782:25;;;;;;;;;;;;;;;:33;;;;6847:7;6831:31;;6840:5;6831:31;;;6856:5;6831:31;;;;;;:::i;:::-;;;;;;;;6701:169;;;:::o;6878:182::-;6973:5;6954:9;:15;6964:4;6954:15;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;7006:5;6989:9;:13;6999:2;6989:13;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;7042:2;7027:25;;7036:4;7027:25;;;7046:5;7027:25;;;;;;:::i;:::-;;;;;;;;6878:182;;;:::o;14307:862::-;14405:10;14428:13;14462:7;;;;;;;;;;;14444:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14428:50;;14514:1;14497:19;;:5;:19;;;;14489:27;;14527:11;14541:5;;14527:19;;14576:5;14572:590;;;14612:1;14602:6;:11;14598:494;;14634:10;14647:41;14657:30;14677:9;14657:30;;14662:9;14657:15;;:19;;:30;;;;:::i;:::-;14647:9;:41::i;:::-;14634:54;;14707:14;14724:17;14734:6;14724:9;:17::i;:::-;14707:34;;14772:9;14764:5;:17;14760:317;;;14806:14;14823:37;14839:20;14849:9;14839:5;:9;;:20;;;;:::i;:::-;14823:11;;:15;;:37;;;;:::i;:::-;14806:54;;14883:16;14902:27;14919:9;14902:12;14912:1;14902:5;:9;;:12;;;;:::i;:::-;:16;;:27;;;;:::i;:::-;14883:46;;14952:14;14981:11;14969:9;:23;;;;:::i;:::-;14952:40;;15031:1;15019:9;:13;15015:42;;;15034:23;15040:5;15047:9;15034:5;:23::i;:::-;15015:42;14783:294;;;14760:317;14615:477;;14598:494;14572:590;;;15123:1;15113:6;:11;15109:53;;15149:1;15141:5;:9;;;;15109:53;14572:590;14417:752;;14307:862;;;;:::o;4473:303::-;4518:6;4545:1;4541;:5;4537:232;;;4567:1;4563:5;;4583:6;4600:1;4596;4592;:5;;;;:::i;:::-;:9;;;;:::i;:::-;4583:18;;4616:92;4627:1;4623;:5;4616:92;;;4653:1;4649:5;;4691:1;4686;4682;4678;:5;;;;:::i;:::-;:9;;;;:::i;:::-;4677:15;;;;:::i;:::-;4673:19;;4616:92;;;4548:171;4537:232;;;4734:1;4729;:6;4725:44;;4756:1;4752:5;;4725:44;4537:232;4473:303;;;:::o;6345:167::-;6419:5;6404:11;;:20;;;;;;;:::i;:::-;;;;;;;;6452:5;6435:9;:13;6445:2;6435:13;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;6494:2;6473:31;;6490:1;6473:31;;;6498:5;6473:31;;;;;;:::i;:::-;;;;;;;;6345:167;;:::o;4259:96::-;4311:6;4338:1;4334;:5;:13;;4346:1;4334:13;;;4342:1;4334:13;4330:17;;4259:96;;;;:::o;6520:173::-;6600:5;6581:9;:15;6591:4;6581:15;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;6631:5;6616:11;;:20;;;;;;;:::i;:::-;;;;;;;;6675:1;6652:33;;6661:4;6652:33;;;6679:5;6652:33;;;;;;:::i;:::-;;;;;;;;6520:173;;:::o;3793:120::-;3843:9;3736:8;3877:1;3869:10;;:17;;;;:::i;:::-;3865:21;;3793:120;;;:::o;3984:108::-;4044:9;4082:1;4074:10;;4070:1;:14;;;;:::i;:::-;4066:18;;3984:108;;;;:::o;219:128::-;271:6;313:1;307;303;:5;;;;:::i;:::-;299:9;;;298:16;;290:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;219:128;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:117;1552:1;1549;1542:12;1579:552;1636:8;1646:6;1696:3;1689:4;1681:6;1677:17;1673:27;1663:122;;1704:79;;:::i;:::-;1663:122;1817:6;1804:20;1794:30;;1847:18;1839:6;1836:30;1833:117;;;1869:79;;:::i;:::-;1833:117;1983:4;1975:6;1971:17;1959:29;;2037:3;2029:4;2021:6;2017:17;2007:8;2003:32;2000:41;1997:128;;;2044:79;;:::i;:::-;1997:128;1579:552;;;;;:::o;2137:963::-;2234:6;2242;2250;2258;2266;2315:3;2303:9;2294:7;2290:23;2286:33;2283:120;;;2322:79;;:::i;:::-;2283:120;2442:1;2467:53;2512:7;2503:6;2492:9;2488:22;2467:53;:::i;:::-;2457:63;;2413:117;2569:2;2595:53;2640:7;2631:6;2620:9;2616:22;2595:53;:::i;:::-;2585:63;;2540:118;2697:2;2723:53;2768:7;2759:6;2748:9;2744:22;2723:53;:::i;:::-;2713:63;;2668:118;2853:2;2842:9;2838:18;2825:32;2884:18;2876:6;2873:30;2870:117;;;2906:79;;:::i;:::-;2870:117;3019:64;3075:7;3066:6;3055:9;3051:22;3019:64;:::i;:::-;3001:82;;;;2796:297;2137:963;;;;;;;;:::o;3106:99::-;3158:6;3192:5;3186:12;3176:22;;3106:99;;;:::o;3211:169::-;3295:11;3329:6;3324:3;3317:19;3369:4;3364:3;3360:14;3345:29;;3211:169;;;;:::o;3386:246::-;3467:1;3477:113;3491:6;3488:1;3485:13;3477:113;;;3576:1;3571:3;3567:11;3561:18;3557:1;3552:3;3548:11;3541:39;3513:2;3510:1;3506:10;3501:15;;3477:113;;;3624:1;3615:6;3610:3;3606:16;3599:27;3448:184;3386:246;;;:::o;3638:102::-;3679:6;3730:2;3726:7;3721:2;3714:5;3710:14;3706:28;3696:38;;3638:102;;;:::o;3746:377::-;3834:3;3862:39;3895:5;3862:39;:::i;:::-;3917:71;3981:6;3976:3;3917:71;:::i;:::-;3910:78;;3997:65;4055:6;4050:3;4043:4;4036:5;4032:16;3997:65;:::i;:::-;4087:29;4109:6;4087:29;:::i;:::-;4082:3;4078:39;4071:46;;3838:285;3746:377;;;;:::o;4129:313::-;4242:4;4280:2;4269:9;4265:18;4257:26;;4329:9;4323:4;4319:20;4315:1;4304:9;4300:17;4293:47;4357:78;4430:4;4421:6;4357:78;:::i;:::-;4349:86;;4129:313;;;;:::o;4448:114::-;4485:7;4525:30;4518:5;4514:42;4503:53;;4448:114;;;:::o;4568:118::-;4655:24;4673:5;4655:24;:::i;:::-;4650:3;4643:37;4568:118;;:::o;4692:93::-;4728:7;4768:10;4761:5;4757:22;4746:33;;4692:93;;;:::o;4791:115::-;4876:23;4893:5;4876:23;:::i;:::-;4871:3;4864:36;4791:115;;:::o;4912:438::-;5059:4;5097:2;5086:9;5082:18;5074:26;;5110:71;5178:1;5167:9;5163:17;5154:6;5110:71;:::i;:::-;5191:72;5259:2;5248:9;5244:18;5235:6;5191:72;:::i;:::-;5273:70;5339:2;5328:9;5324:18;5315:6;5273:70;:::i;:::-;4912:438;;;;;;:::o;5356:474::-;5424:6;5432;5481:2;5469:9;5460:7;5456:23;5452:32;5449:119;;;5487:79;;:::i;:::-;5449:119;5607:1;5632:53;5677:7;5668:6;5657:9;5653:22;5632:53;:::i;:::-;5622:63;;5578:117;5734:2;5760:53;5805:7;5796:6;5785:9;5781:22;5760:53;:::i;:::-;5750:63;;5705:118;5356:474;;;;;:::o;5836:90::-;5870:7;5913:5;5906:13;5899:21;5888:32;;5836:90;;;:::o;5932:109::-;6013:21;6028:5;6013:21;:::i;:::-;6008:3;6001:34;5932:109;;:::o;6047:210::-;6134:4;6172:2;6161:9;6157:18;6149:26;;6185:65;6247:1;6236:9;6232:17;6223:6;6185:65;:::i;:::-;6047:210;;;;:::o;6263:118::-;6350:24;6368:5;6350:24;:::i;:::-;6345:3;6338:37;6263:118;;:::o;6387:222::-;6480:4;6518:2;6507:9;6503:18;6495:26;;6531:71;6599:1;6588:9;6584:17;6575:6;6531:71;:::i;:::-;6387:222;;;;:::o;6615:118::-;6702:24;6720:5;6702:24;:::i;:::-;6697:3;6690:37;6615:118;;:::o;6739:222::-;6832:4;6870:2;6859:9;6855:18;6847:26;;6883:71;6951:1;6940:9;6936:17;6927:6;6883:71;:::i;:::-;6739:222;;;;:::o;6967:619::-;7044:6;7052;7060;7109:2;7097:9;7088:7;7084:23;7080:32;7077:119;;;7115:79;;:::i;:::-;7077:119;7235:1;7260:53;7305:7;7296:6;7285:9;7281:22;7260:53;:::i;:::-;7250:63;;7206:117;7362:2;7388:53;7433:7;7424:6;7413:9;7409:22;7388:53;:::i;:::-;7378:63;;7333:118;7490:2;7516:53;7561:7;7552:6;7541:9;7537:22;7516:53;:::i;:::-;7506:63;;7461:118;6967:619;;;;;:::o;7592:77::-;7629:7;7658:5;7647:16;;7592:77;;;:::o;7675:118::-;7762:24;7780:5;7762:24;:::i;:::-;7757:3;7750:37;7675:118;;:::o;7799:222::-;7892:4;7930:2;7919:9;7915:18;7907:26;;7943:71;8011:1;8000:9;7996:17;7987:6;7943:71;:::i;:::-;7799:222;;;;:::o;8027:86::-;8062:7;8102:4;8095:5;8091:16;8080:27;;8027:86;;;:::o;8119:112::-;8202:22;8218:5;8202:22;:::i;:::-;8197:3;8190:35;8119:112;;:::o;8237:214::-;8326:4;8364:2;8353:9;8349:18;8341:26;;8377:67;8441:1;8430:9;8426:17;8417:6;8377:67;:::i;:::-;8237:214;;;;:::o;8457:474::-;8525:6;8533;8582:2;8570:9;8561:7;8557:23;8553:32;8550:119;;;8588:79;;:::i;:::-;8550:119;8708:1;8733:53;8778:7;8769:6;8758:9;8754:22;8733:53;:::i;:::-;8723:63;;8679:117;8835:2;8861:53;8906:7;8897:6;8886:9;8882:22;8861:53;:::i;:::-;8851:63;;8806:118;8457:474;;;;;:::o;8937:329::-;8996:6;9045:2;9033:9;9024:7;9020:23;9016:32;9013:119;;;9051:79;;:::i;:::-;9013:119;9171:1;9196:53;9241:7;9232:6;9221:9;9217:22;9196:53;:::i;:::-;9186:63;;9142:117;8937:329;;;;:::o;9272:332::-;9393:4;9431:2;9420:9;9416:18;9408:26;;9444:71;9512:1;9501:9;9497:17;9488:6;9444:71;:::i;:::-;9525:72;9593:2;9582:9;9578:18;9569:6;9525:72;:::i;:::-;9272:332;;;;;:::o;9610:118::-;9681:22;9697:5;9681:22;:::i;:::-;9674:5;9671:33;9661:61;;9718:1;9715;9708:12;9661:61;9610:118;:::o;9734:135::-;9778:5;9816:6;9803:20;9794:29;;9832:31;9857:5;9832:31;:::i;:::-;9734:135;;;;:::o;9875:122::-;9948:24;9966:5;9948:24;:::i;:::-;9941:5;9938:35;9928:63;;9987:1;9984;9977:12;9928:63;9875:122;:::o;10003:139::-;10049:5;10087:6;10074:20;10065:29;;10103:33;10130:5;10103:33;:::i;:::-;10003:139;;;;:::o;10148:1199::-;10259:6;10267;10275;10283;10291;10299;10307;10356:3;10344:9;10335:7;10331:23;10327:33;10324:120;;;10363:79;;:::i;:::-;10324:120;10483:1;10508:53;10553:7;10544:6;10533:9;10529:22;10508:53;:::i;:::-;10498:63;;10454:117;10610:2;10636:53;10681:7;10672:6;10661:9;10657:22;10636:53;:::i;:::-;10626:63;;10581:118;10738:2;10764:53;10809:7;10800:6;10789:9;10785:22;10764:53;:::i;:::-;10754:63;;10709:118;10866:2;10892:53;10937:7;10928:6;10917:9;10913:22;10892:53;:::i;:::-;10882:63;;10837:118;10994:3;11021:51;11064:7;11055:6;11044:9;11040:22;11021:51;:::i;:::-;11011:61;;10965:117;11121:3;11148:53;11193:7;11184:6;11173:9;11169:22;11148:53;:::i;:::-;11138:63;;11092:119;11250:3;11277:53;11322:7;11313:6;11302:9;11298:22;11277:53;:::i;:::-;11267:63;;11221:119;10148:1199;;;;;;;;;;:::o;11353:167::-;11493:19;11489:1;11481:6;11477:14;11470:43;11353:167;:::o;11526:366::-;11668:3;11689:67;11753:2;11748:3;11689:67;:::i;:::-;11682:74;;11765:93;11854:3;11765:93;:::i;:::-;11883:2;11878:3;11874:12;11867:19;;11526:366;;;:::o;11898:419::-;12064:4;12102:2;12091:9;12087:18;12079:26;;12151:9;12145:4;12141:20;12137:1;12126:9;12122:17;12115:47;12179:131;12305:4;12179:131;:::i;:::-;12171:139;;11898:419;;;:::o;12323:224::-;12463:34;12459:1;12451:6;12447:14;12440:58;12532:7;12527:2;12519:6;12515:15;12508:32;12323:224;:::o;12553:366::-;12695:3;12716:67;12780:2;12775:3;12716:67;:::i;:::-;12709:74;;12792:93;12881:3;12792:93;:::i;:::-;12910:2;12905:3;12901:12;12894:19;;12553:366;;;:::o;12925:419::-;13091:4;13129:2;13118:9;13114:18;13106:26;;13178:9;13172:4;13168:20;13164:1;13153:9;13149:17;13142:47;13206:131;13332:4;13206:131;:::i;:::-;13198:139;;12925:419;;;:::o;13350:220::-;13490:34;13486:1;13478:6;13474:14;13467:58;13559:3;13554:2;13546:6;13542:15;13535:28;13350:220;:::o;13576:366::-;13718:3;13739:67;13803:2;13798:3;13739:67;:::i;:::-;13732:74;;13815:93;13904:3;13815:93;:::i;:::-;13933:2;13928:3;13924:12;13917:19;;13576:366;;;:::o;13948:419::-;14114:4;14152:2;14141:9;14137:18;14129:26;;14201:9;14195:4;14191:20;14187:1;14176:9;14172:17;14165:47;14229:131;14355:4;14229:131;:::i;:::-;14221:139;;13948:419;;;:::o;14373:171::-;14513:23;14509:1;14501:6;14497:14;14490:47;14373:171;:::o;14550:366::-;14692:3;14713:67;14777:2;14772:3;14713:67;:::i;:::-;14706:74;;14789:93;14878:3;14789:93;:::i;:::-;14907:2;14902:3;14898:12;14891:19;;14550:366;;;:::o;14922:419::-;15088:4;15126:2;15115:9;15111:18;15103:26;;15175:9;15169:4;15165:20;15161:1;15150:9;15146:17;15139:47;15203:131;15329:4;15203:131;:::i;:::-;15195:139;;14922:419;;;:::o;15347:168::-;15430:11;15464:6;15459:3;15452:19;15504:4;15499:3;15495:14;15480:29;;15347:168;;;;:::o;15521:146::-;15618:6;15613:3;15608;15595:30;15659:1;15650:6;15645:3;15641:16;15634:27;15521:146;;;:::o;15695:314::-;15791:3;15812:70;15875:6;15870:3;15812:70;:::i;:::-;15805:77;;15892:56;15941:6;15936:3;15929:5;15892:56;:::i;:::-;15973:29;15995:6;15973:29;:::i;:::-;15968:3;15964:39;15957:46;;15695:314;;;;;:::o;16015:660::-;16220:4;16258:3;16247:9;16243:19;16235:27;;16272:71;16340:1;16329:9;16325:17;16316:6;16272:71;:::i;:::-;16353:72;16421:2;16410:9;16406:18;16397:6;16353:72;:::i;:::-;16435;16503:2;16492:9;16488:18;16479:6;16435:72;:::i;:::-;16554:9;16548:4;16544:20;16539:2;16528:9;16524:18;16517:48;16582:86;16663:4;16654:6;16646;16582:86;:::i;:::-;16574:94;;16015:660;;;;;;;;:::o;16681:143::-;16738:5;16769:6;16763:13;16754:22;;16785:33;16812:5;16785:33;:::i;:::-;16681:143;;;;:::o;16830:351::-;16900:6;16949:2;16937:9;16928:7;16924:23;16920:32;16917:119;;;16955:79;;:::i;:::-;16917:119;17075:1;17100:64;17156:7;17147:6;17136:9;17132:22;17100:64;:::i;:::-;17090:74;;17046:128;16830:351;;;;:::o;17187:180::-;17235:77;17232:1;17225:88;17332:4;17329:1;17322:15;17356:4;17353:1;17346:15;17373:194;17413:4;17433:20;17451:1;17433:20;:::i;:::-;17428:25;;17467:20;17485:1;17467:20;:::i;:::-;17462:25;;17511:1;17508;17504:9;17496:17;;17535:1;17529:4;17526:11;17523:37;;;17540:18;;:::i;:::-;17523:37;17373:194;;;;:::o;17573:224::-;17713:34;17709:1;17701:6;17697:14;17690:58;17782:7;17777:2;17769:6;17765:15;17758:32;17573:224;:::o;17803:366::-;17945:3;17966:67;18030:2;18025:3;17966:67;:::i;:::-;17959:74;;18042:93;18131:3;18042:93;:::i;:::-;18160:2;18155:3;18151:12;18144:19;;17803:366;;;:::o;18175:419::-;18341:4;18379:2;18368:9;18364:18;18356:26;;18428:9;18422:4;18418:20;18414:1;18403:9;18399:17;18392:47;18456:131;18582:4;18456:131;:::i;:::-;18448:139;;18175:419;;;:::o;18600:162::-;18740:14;18736:1;18728:6;18724:14;18717:38;18600:162;:::o;18768:366::-;18910:3;18931:67;18995:2;18990:3;18931:67;:::i;:::-;18924:74;;19007:93;19096:3;19007:93;:::i;:::-;19125:2;19120:3;19116:12;19109:19;;18768:366;;;:::o;19140:419::-;19306:4;19344:2;19333:9;19329:18;19321:26;;19393:9;19387:4;19383:20;19379:1;19368:9;19364:17;19357:47;19421:131;19547:4;19421:131;:::i;:::-;19413:139;;19140:419;;;:::o;19565:553::-;19742:4;19780:3;19769:9;19765:19;19757:27;;19794:71;19862:1;19851:9;19847:17;19838:6;19794:71;:::i;:::-;19875:72;19943:2;19932:9;19928:18;19919:6;19875:72;:::i;:::-;19957;20025:2;20014:9;20010:18;20001:6;19957:72;:::i;:::-;20039;20107:2;20096:9;20092:18;20083:6;20039:72;:::i;:::-;19565:553;;;;;;;:::o;20124:170::-;20264:22;20260:1;20252:6;20248:14;20241:46;20124:170;:::o;20300:366::-;20442:3;20463:67;20527:2;20522:3;20463:67;:::i;:::-;20456:74;;20539:93;20628:3;20539:93;:::i;:::-;20657:2;20652:3;20648:12;20641:19;;20300:366;;;:::o;20672:419::-;20838:4;20876:2;20865:9;20861:18;20853:26;;20925:9;20919:4;20915:20;20911:1;20900:9;20896:17;20889:47;20953:131;21079:4;20953:131;:::i;:::-;20945:139;;20672:419;;;:::o;21097:180::-;21145:77;21142:1;21135:88;21242:4;21239:1;21232:15;21266:4;21263:1;21256:15;21283:185;21323:1;21340:20;21358:1;21340:20;:::i;:::-;21335:25;;21374:20;21392:1;21374:20;:::i;:::-;21369:25;;21413:1;21403:35;;21418:18;;:::i;:::-;21403:35;21460:1;21457;21453:9;21448:14;;21283:185;;;;:::o;21474:227::-;21614:34;21610:1;21602:6;21598:14;21591:58;21683:10;21678:2;21670:6;21666:15;21659:35;21474:227;:::o;21707:366::-;21849:3;21870:67;21934:2;21929:3;21870:67;:::i;:::-;21863:74;;21946:93;22035:3;21946:93;:::i;:::-;22064:2;22059:3;22055:12;22048:19;;21707:366;;;:::o;22079:419::-;22245:4;22283:2;22272:9;22268:18;22260:26;;22332:9;22326:4;22322:20;22318:1;22307:9;22303:17;22296:47;22360:131;22486:4;22360:131;:::i;:::-;22352:139;;22079:419;;;:::o;22504:227::-;22644:34;22640:1;22632:6;22628:14;22621:58;22713:10;22708:2;22700:6;22696:15;22689:35;22504:227;:::o;22737:366::-;22879:3;22900:67;22964:2;22959:3;22900:67;:::i;:::-;22893:74;;22976:93;23065:3;22976:93;:::i;:::-;23094:2;23089:3;23085:12;23078:19;;22737:366;;;:::o;23109:419::-;23275:4;23313:2;23302:9;23298:18;23290:26;;23362:9;23356:4;23352:20;23348:1;23337:9;23333:17;23326:47;23390:131;23516:4;23390:131;:::i;:::-;23382:139;;23109:419;;;:::o;23534:168::-;23674:20;23670:1;23662:6;23658:14;23651:44;23534:168;:::o;23708:366::-;23850:3;23871:67;23935:2;23930:3;23871:67;:::i;:::-;23864:74;;23947:93;24036:3;23947:93;:::i;:::-;24065:2;24060:3;24056:12;24049:19;;23708:366;;;:::o;24080:419::-;24246:4;24284:2;24273:9;24269:18;24261:26;;24333:9;24327:4;24323:20;24319:1;24308:9;24304:17;24297:47;24361:131;24487:4;24361:131;:::i;:::-;24353:139;;24080:419;;;:::o;24505:233::-;24544:3;24567:24;24585:5;24567:24;:::i;:::-;24558:33;;24613:66;24606:5;24603:77;24600:103;;24683:18;;:::i;:::-;24600:103;24730:1;24723:5;24719:13;24712:20;;24505:233;;;:::o;24744:775::-;24977:4;25015:3;25004:9;25000:19;24992:27;;25029:71;25097:1;25086:9;25082:17;25073:6;25029:71;:::i;:::-;25110:72;25178:2;25167:9;25163:18;25154:6;25110:72;:::i;:::-;25192;25260:2;25249:9;25245:18;25236:6;25192:72;:::i;:::-;25274;25342:2;25331:9;25327:18;25318:6;25274:72;:::i;:::-;25356:73;25424:3;25413:9;25409:19;25400:6;25356:73;:::i;:::-;25439;25507:3;25496:9;25492:19;25483:6;25439:73;:::i;:::-;24744:775;;;;;;;;;:::o;25525:148::-;25627:11;25664:3;25649:18;;25525:148;;;;:::o;25679:214::-;25819:66;25815:1;25807:6;25803:14;25796:90;25679:214;:::o;25899:400::-;26059:3;26080:84;26162:1;26157:3;26080:84;:::i;:::-;26073:91;;26173:93;26262:3;26173:93;:::i;:::-;26291:1;26286:3;26282:11;26275:18;;25899:400;;;:::o;26305:79::-;26344:7;26373:5;26362:16;;26305:79;;;:::o;26390:157::-;26495:45;26515:24;26533:5;26515:24;:::i;:::-;26495:45;:::i;:::-;26490:3;26483:58;26390:157;;:::o;26553:663::-;26794:3;26816:148;26960:3;26816:148;:::i;:::-;26809:155;;26974:75;27045:3;27036:6;26974:75;:::i;:::-;27074:2;27069:3;27065:12;27058:19;;27087:75;27158:3;27149:6;27087:75;:::i;:::-;27187:2;27182:3;27178:12;27171:19;;27207:3;27200:10;;26553:663;;;;;:::o;27222:545::-;27395:4;27433:3;27422:9;27418:19;27410:27;;27447:71;27515:1;27504:9;27500:17;27491:6;27447:71;:::i;:::-;27528:68;27592:2;27581:9;27577:18;27568:6;27528:68;:::i;:::-;27606:72;27674:2;27663:9;27659:18;27650:6;27606:72;:::i;:::-;27688;27756:2;27745:9;27741:18;27732:6;27688:72;:::i;:::-;27222:545;;;;;;;:::o;27773:178::-;27913:30;27909:1;27901:6;27897:14;27890:54;27773:178;:::o;27957:366::-;28099:3;28120:67;28184:2;28179:3;28120:67;:::i;:::-;28113:74;;28196:93;28285:3;28196:93;:::i;:::-;28314:2;28309:3;28305:12;28298:19;;27957:366;;;:::o;28329:419::-;28495:4;28533:2;28522:9;28518:18;28510:26;;28582:9;28576:4;28572:20;28568:1;28557:9;28553:17;28546:47;28610:131;28736:4;28610:131;:::i;:::-;28602:139;;28329:419;;;:::o;28754:332::-;28875:4;28913:2;28902:9;28898:18;28890:26;;28926:71;28994:1;28983:9;28979:17;28970:6;28926:71;:::i;:::-;29007:72;29075:2;29064:9;29060:18;29051:6;29007:72;:::i;:::-;28754:332;;;;;:::o;29092:98::-;29143:6;29177:5;29171:12;29161:22;;29092:98;;;:::o;29196:147::-;29297:11;29334:3;29319:18;;29196:147;;;;:::o;29349:386::-;29453:3;29481:38;29513:5;29481:38;:::i;:::-;29535:88;29616:6;29611:3;29535:88;:::i;:::-;29528:95;;29632:65;29690:6;29685:3;29678:4;29671:5;29667:16;29632:65;:::i;:::-;29722:6;29717:3;29713:16;29706:23;;29457:278;29349:386;;;;:::o;29741:271::-;29871:3;29893:93;29982:3;29973:6;29893:93;:::i;:::-;29886:100;;30003:3;29996:10;;29741:271;;;;:::o;30018:116::-;30088:21;30103:5;30088:21;:::i;:::-;30081:5;30078:32;30068:60;;30124:1;30121;30114:12;30068:60;30018:116;:::o;30140:137::-;30194:5;30225:6;30219:13;30210:22;;30241:30;30265:5;30241:30;:::i;:::-;30140:137;;;;:::o;30283:345::-;30350:6;30399:2;30387:9;30378:7;30374:23;30370:32;30367:119;;;30405:79;;:::i;:::-;30367:119;30525:1;30550:61;30603:7;30594:6;30583:9;30579:22;30550:61;:::i;:::-;30540:71;;30496:125;30283:345;;;;:::o;30634:176::-;30774:28;30770:1;30762:6;30758:14;30751:52;30634:176;:::o;30816:366::-;30958:3;30979:67;31043:2;31038:3;30979:67;:::i;:::-;30972:74;;31055:93;31144:3;31055:93;:::i;:::-;31173:2;31168:3;31164:12;31157:19;;30816:366;;;:::o;31188:419::-;31354:4;31392:2;31381:9;31377:18;31369:26;;31441:9;31435:4;31431:20;31427:1;31416:9;31412:17;31405:47;31469:131;31595:4;31469:131;:::i;:::-;31461:139;;31188:419;;;:::o;31613:410::-;31653:7;31676:20;31694:1;31676:20;:::i;:::-;31671:25;;31710:20;31728:1;31710:20;:::i;:::-;31705:25;;31765:1;31762;31758:9;31787:30;31805:11;31787:30;:::i;:::-;31776:41;;31966:1;31957:7;31953:15;31950:1;31947:22;31927:1;31920:9;31900:83;31877:139;;31996:18;;:::i;:::-;31877:139;31661:362;31613:410;;;;:::o;32029:170::-;32169:22;32165:1;32157:6;32153:14;32146:46;32029:170;:::o;32205:366::-;32347:3;32368:67;32432:2;32427:3;32368:67;:::i;:::-;32361:74;;32444:93;32533:3;32444:93;:::i;:::-;32562:2;32557:3;32553:12;32546:19;;32205:366;;;:::o;32577:419::-;32743:4;32781:2;32770:9;32766:18;32758:26;;32830:9;32824:4;32820:20;32816:1;32805:9;32801:17;32794:47;32858:131;32984:4;32858:131;:::i;:::-;32850:139;;32577:419;;;:::o;33002:171::-;33142:23;33138:1;33130:6;33126:14;33119:47;33002:171;:::o;33179:366::-;33321:3;33342:67;33406:2;33401:3;33342:67;:::i;:::-;33335:74;;33418:93;33507:3;33418:93;:::i;:::-;33536:2;33531:3;33527:12;33520:19;;33179:366;;;:::o;33551:419::-;33717:4;33755:2;33744:9;33740:18;33732:26;;33804:9;33798:4;33794:20;33790:1;33779:9;33775:17;33768:47;33832:131;33958:4;33832:131;:::i;:::-;33824:139;;33551:419;;;:::o;33976:169::-;34116:21;34112:1;34104:6;34100:14;34093:45;33976:169;:::o;34151:366::-;34293:3;34314:67;34378:2;34373:3;34314:67;:::i;:::-;34307:74;;34390:93;34479:3;34390:93;:::i;:::-;34508:2;34503:3;34499:12;34492:19;;34151:366;;;:::o;34523:419::-;34689:4;34727:2;34716:9;34712:18;34704:26;;34776:9;34770:4;34766:20;34762:1;34751:9;34747:17;34740:47;34804:131;34930:4;34804:131;:::i;:::-;34796:139;;34523:419;;;:::o;34948:176::-;34980:1;34997:20;35015:1;34997:20;:::i;:::-;34992:25;;35031:20;35049:1;35031:20;:::i;:::-;35026:25;;35070:1;35060:35;;35075:18;;:::i;:::-;35060:35;35116:1;35113;35109:9;35104:14;;34948:176;;;;:::o;35130:200::-;35169:4;35189:19;35206:1;35189:19;:::i;:::-;35184:24;;35222:19;35239:1;35222:19;:::i;:::-;35217:24;;35265:1;35262;35258:9;35250:17;;35289:10;35283:4;35280:20;35277:46;;;35303:18;;:::i;:::-;35277:46;35130:200;;;;:::o;35336:191::-;35376:3;35395:20;35413:1;35395:20;:::i;:::-;35390:25;;35429:20;35447:1;35429:20;:::i;:::-;35424:25;;35472:1;35469;35465:9;35458:16;;35493:3;35490:1;35487:10;35484:36;;;35500:18;;:::i;:::-;35484:36;35336:191;;;;:::o;35533:332::-;35654:4;35692:2;35681:9;35677:18;35669:26;;35705:71;35773:1;35762:9;35758:17;35749:6;35705:71;:::i;:::-;35786:72;35854:2;35843:9;35839:18;35830:6;35786:72;:::i;:::-;35533:332;;;;;:::o;35871:143::-;35928:5;35959:6;35953:13;35944:22;;35975:33;36002:5;35975:33;:::i;:::-;35871:143;;;;:::o;36020:351::-;36090:6;36139:2;36127:9;36118:7;36114:23;36110:32;36107:119;;;36145:79;;:::i;:::-;36107:119;36265:1;36290:64;36346:7;36337:6;36326:9;36322:22;36290:64;:::i;:::-;36280:74;;36236:128;36020:351;;;;:::o;36377:142::-;36414:7;36454:58;36447:5;36443:70;36432:81;;36377:142;;;:::o;36525:410::-;36565:7;36588:20;36606:1;36588:20;:::i;:::-;36583:25;;36622:20;36640:1;36622:20;:::i;:::-;36617:25;;36677:1;36674;36670:9;36699:30;36717:11;36699:30;:::i;:::-;36688:41;;36878:1;36869:7;36865:15;36862:1;36859:22;36839:1;36832:9;36812:83;36789:139;;36908:18;;:::i;:::-;36789:139;36573:362;36525:410;;;;:::o;36941:185::-;36981:1;36998:20;37016:1;36998:20;:::i;:::-;36993:25;;37032:20;37050:1;37032:20;:::i;:::-;37027:25;;37071:1;37061:35;;37076:18;;:::i;:::-;37061:35;37118:1;37115;37111:9;37106:14;;36941:185;;;;:::o;37132:170::-;37272:22;37268:1;37260:6;37256:14;37249:46;37132:170;:::o;37308:366::-;37450:3;37471:67;37535:2;37530:3;37471:67;:::i;:::-;37464:74;;37547:93;37636:3;37547:93;:::i;:::-;37665:2;37660:3;37656:12;37649:19;;37308:366;;;:::o;37680:419::-;37846:4;37884:2;37873:9;37869:18;37861:26;;37933:9;37927:4;37923:20;37919:1;37908:9;37904:17;37897:47;37961:131;38087:4;37961:131;:::i;:::-;37953:139;;37680:419;;;:::o
Swarm Source
ipfs://3bba237a6497e7e893a7fed951d6a8e06ca867d458a29ba17bbf81f2f1eb283b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.