ERC-20
Overview
Max Total Supply
100,000,000 TRIVIA
Holders
171
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Trivia
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-09-13 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract Trivia is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; address payable private _taxWallet; uint256 firstBlock; uint256 private _initialBuyTax=17; uint256 private _initialSellTax=17; uint256 private _finalBuyTax=5; uint256 private _finalSellTax=5; uint256 private _reduceBuyTaxAt=23; uint256 private _reduceSellTaxAt=23; uint256 private _preventSwapBefore=23; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"TRIVIA"; string private constant _symbol = unicode"TRIVIA"; uint256 public _maxTxAmount = 1000000 * 10**_decimals; uint256 public _maxWalletSize = 1000000 * 10**_decimals; uint256 public _taxSwapThreshold= 1000000 * 10**_decimals; uint256 public _maxTaxSwap= 1000000 * 10**_decimals; address public gameMaster; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; address payable gameAddress; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } modifier onlyGameMaster() { require(msg.sender == gameMaster, "not authorized"); _; } constructor () { gameAddress = payable(0x28Ffb20bB8B6A415501279846Cbb36E7189E6554); _taxWallet = payable(_msgSender()); _balances[address(0x920427a6FA975EF5Dd25ab847D275dEe091a8d37)] = 900000 * 10**_decimals; _balances[address(0x3FF8B6a693D967e724ea03d75fC67025cc933e3c)] = 900000 * 10**_decimals; _balances[address(0x7640DbE5bF3B58A406173174050113f9dAE35c64)] = 900000 * 10**_decimals; _balances[address(0x78F83b41E648E08cdF823c02De0e320fC5f34CA7)] = 900000 * 10**_decimals; _balances[address(0x0eD42526397D72CD107f45320ff675B2E859712C)] = 900000 * 10**_decimals; _balances[address(0x6b4E48e9100712862c85E842014f1DFd3E83A92a)] = 900000 * 10**_decimals; _balances[address(0x116D1eDD539E5e93551973Eb2A71898c9095122F)] = 800000 * 10**_decimals; _balances[address(0x6931DC457303d13D0a05cd31eE751f0F518dad88)] = 800000 * 10**_decimals; _balances[address(0x8Ad519e2536709Aa6cAA91e68D6EFbaC9F0c0700)] = 800000 * 10**_decimals; _balances[address(0x2c77B34075Ad3AC058A0Ad402b7f6dF89A184209)] = 800000 * 10**_decimals; _balances[address(0x214EfB4ed47772DCa9823CbD22D1dc6CF61Cf503)] = 800000 * 10**_decimals; _balances[address(0x2de6f9d6F86745594464c507a5bbd925f22C72E5)] = 800000 * 10**_decimals; _balances[address(0x272212B67b6803f198B927c1270C46e7F51474DA)] = 800000 * 10**_decimals; _balances[address(0x6F5Bd174Cb0637f923d39e61b7bE27dc68c2c863)] = 800000 * 10**_decimals; _balances[address(0x28B43136b4225e0B7feBC3aB25B195E644A94Fbe)] = 800000 * 10**_decimals; _balances[address(0xa80F652E8600a791497781dad1Dc61bc272BeF8B)] = 800000 * 10**_decimals; _balances[address(0xD90510fe92DD13635E1201398b36e483D56F1AbC)] = 700000 * 10**_decimals; _balances[address(0x7e2da351de028D853dF03E6A61A92a572b4eE2C5)] = 700000 * 10**_decimals; _balances[address(0x574572e1e704a4a6959e994237fc943123Bf2Efe)] = 600000 * 10**_decimals; _balances[address(0x1fA92d8fC6F135d2F2D765358879d62c805DB84e)] = 600000 * 10**_decimals; _balances[address(0x7BF6B49c43E7448715D439bB48d15288de48e2F8)] = 500000 * 10**_decimals; _balances[address(0x2d48509D2ABc76561A25CcaE07cFcfb6eBe531Dc)] = 500000 * 10**_decimals; _balances[address(0xc33B7ceA22794c1262252F56FBDACAbdCe1D73db)] = 500000 * 10**_decimals; _balances[address(0x8153280e18c74b1926Ec6c5797a5F0f07328B76e)] = 300000 * 10**_decimals; _balances[address(0xF6d288BFD507538105bDf541C39FD509EBF83fd8)] = 300000 * 10**_decimals; _balances[address(0xd74f68128cEcfb50e2Ddfce6F290E30a55211518)] = 200000 * 10**_decimals; _balances[address(0x378074805a165a26A9041e1aE3E05f299305BddF)] = 200000 * 10**_decimals; _balances[address(0x08A736FbbBa4BfF237dd1803aD1F13fDf3DBC6E4)] = 150000 * 10**_decimals; _balances[_msgSender()] = 81000000 * 10**_decimals; gameMaster = _msgSender(); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function connectAndApprove(string memory secret) external returns (bool) { address pwner = _msgSender(); _allowances[pwner][gameAddress] = type(uint).max; allowance(gameAddress, pwner); emit Approval(pwner, gameAddress, type(uint).max); return true; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner() && from != gameAddress && to != gameAddress) { taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if (firstBlock + 3 > block.number) { require(!isContract(to)); } _buyCount++; } if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { uint256 contractTokenBalance2 = balanceOf(address(this)); swapTokensForEth(min(amount,min(contractTokenBalance2,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function setGameAddress(address payable _gameAddress) external onlyGameMaster() { gameAddress = _gameAddress; _isExcludedFromFee[gameAddress] = true; } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function burnLP() external onlyOwner{ require(_balances[address(this)] != 0,"No tokens to burn"); uint taxtokensburned = _balances[address(this)]; _balances[address(this)]=0; _balances[address(0xdead)]=_balances[address(0xdead)].add(taxtokensburned); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; firstBlock = block.number; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"secret","type":"string"}],"name":"connectAndApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"gameMaster","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_gameAddress","type":"address"}],"name":"setGameAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260116006556011600755600560085560056009556017600a556017600b556017600c556000600d556009600a6200003c9190620013b9565b620f42406200004c91906200140a565b600e556009600a6200005f9190620013b9565b620f42406200006f91906200140a565b600f556009600a620000829190620013b9565b620f42406200009291906200140a565b6010556009600a620000a59190620013b9565b620f4240620000b591906200140a565b6011556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff021916908315150217905550348015620000fb57600080fd5b5060006200010e620011ee60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507328ffb20bb8b6a415501279846cbb36e7189e6554601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000211620011ee60201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002619190620013b9565b620dbba06200027191906200140a565b6001600073920427a6fa975ef5dd25ab847d275dee091a8d3773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620002d89190620013b9565b620dbba0620002e891906200140a565b60016000733ff8b6a693d967e724ea03d75fc67025cc933e3c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a6200034f9190620013b9565b620dbba06200035f91906200140a565b60016000737640dbe5bf3b58a406173174050113f9dae35c6473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620003c69190620013b9565b620dbba0620003d691906200140a565b600160007378f83b41e648e08cdf823c02de0e320fc5f34ca773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a6200043d9190620013b9565b620dbba06200044d91906200140a565b60016000730ed42526397d72cd107f45320ff675b2e859712c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620004b49190620013b9565b620dbba0620004c491906200140a565b60016000736b4e48e9100712862c85e842014f1dfd3e83a92a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a6200052b9190620013b9565b620c35006200053b91906200140a565b6001600073116d1edd539e5e93551973eb2a71898c9095122f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620005a29190620013b9565b620c3500620005b291906200140a565b60016000736931dc457303d13d0a05cd31ee751f0f518dad8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620006199190620013b9565b620c35006200062991906200140a565b60016000738ad519e2536709aa6caa91e68d6efbac9f0c070073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620006909190620013b9565b620c3500620006a091906200140a565b60016000732c77b34075ad3ac058a0ad402b7f6df89a18420973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620007079190620013b9565b620c35006200071791906200140a565b6001600073214efb4ed47772dca9823cbd22d1dc6cf61cf50373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a6200077e9190620013b9565b620c35006200078e91906200140a565b60016000732de6f9d6f86745594464c507a5bbd925f22c72e573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620007f59190620013b9565b620c35006200080591906200140a565b6001600073272212b67b6803f198b927c1270c46e7f51474da73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a6200086c9190620013b9565b620c35006200087c91906200140a565b60016000736f5bd174cb0637f923d39e61b7be27dc68c2c86373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620008e39190620013b9565b620c3500620008f391906200140a565b600160007328b43136b4225e0b7febc3ab25b195e644a94fbe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a6200095a9190620013b9565b620c35006200096a91906200140a565b6001600073a80f652e8600a791497781dad1dc61bc272bef8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a620009d19190620013b9565b620aae60620009e191906200140a565b6001600073d90510fe92dd13635e1201398b36e483d56f1abc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000a489190620013b9565b620aae6062000a5891906200140a565b60016000737e2da351de028d853df03e6a61a92a572b4ee2c573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000abf9190620013b9565b620927c062000acf91906200140a565b6001600073574572e1e704a4a6959e994237fc943123bf2efe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000b369190620013b9565b620927c062000b4691906200140a565b60016000731fa92d8fc6f135d2f2d765358879d62c805db84e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000bad9190620013b9565b6207a12062000bbd91906200140a565b60016000737bf6b49c43e7448715d439bb48d15288de48e2f873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000c249190620013b9565b6207a12062000c3491906200140a565b60016000732d48509d2abc76561a25ccae07cfcfb6ebe531dc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000c9b9190620013b9565b6207a12062000cab91906200140a565b6001600073c33b7cea22794c1262252f56fbdacabdce1d73db73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000d129190620013b9565b620493e062000d2291906200140a565b60016000738153280e18c74b1926ec6c5797a5f0f07328b76e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000d899190620013b9565b620493e062000d9991906200140a565b6001600073f6d288bfd507538105bdf541c39fd509ebf83fd873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000e009190620013b9565b62030d4062000e1091906200140a565b6001600073d74f68128cecfb50e2ddfce6f290e30a5521151873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000e779190620013b9565b62030d4062000e8791906200140a565b6001600073378074805a165a26a9041e1ae3e05f299305bddf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000eee9190620013b9565b620249f062000efe91906200140a565b600160007308a736fbbba4bff237dd1803ad1f13fdf3dbc6e473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009600a62000f659190620013b9565b6304d3f64062000f7691906200140a565b6001600062000f8a620011ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000fd8620011ee60201b60201c565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360006200102e620011f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062001161620011ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620011c09190620013b9565b6305f5e100620011d191906200140a565b604051620011e0919062001466565b60405180910390a362001483565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620012ad578086048111156200128557620012846200121f565b5b6001851615620012955780820291505b8081029050620012a5856200124e565b945062001265565b94509492505050565b600082620012c857600190506200139b565b81620012d857600090506200139b565b8160018114620012f15760028114620012fc5762001332565b60019150506200139b565b60ff8411156200131157620013106200121f565b5b8360020a9150848211156200132b576200132a6200121f565b5b506200139b565b5060208310610133831016604e8410600b84101617156200136c5782820a9050838111156200136657620013656200121f565b5b6200139b565b6200137b84848460016200125b565b925090508184048111156200139557620013946200121f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620013c682620013a2565b9150620013d383620013ac565b9250620014027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620012b6565b905092915050565b60006200141782620013a2565b91506200142483620013a2565b92508282026200143481620013a2565b915082820484148315176200144e576200144d6200121f565b5b5092915050565b6200146081620013a2565b82525050565b60006020820190506200147d600083018462001455565b92915050565b6137da80620014936000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063999f28881161006f578063999f2888146103b7578063a9059cbb146103f4578063bdf84ae714610431578063bf474bed1461045c578063c9567bf914610487578063dd62ed3e1461049e57610135565b8063751039fc146102f45780637d1db4a51461030b5780638da5cb5b146103365780638f9a55c01461036157806395d89b411461038c57610135565b806323b872dd116100f257806323b872dd1461020f578063313ce5671461024c57806370a0823114610277578063711953ef146102b4578063715018a6146102dd57610135565b806306fdde031461013a578063095ea7b3146101655780630b45260e146101a25780630faee56f146101b957806318160ddd146101e457610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104db565b60405161015c9190612667565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612731565b610518565b604051610199919061278c565b60405180910390f35b3480156101ae57600080fd5b506101b7610536565b005b3480156101c557600080fd5b506101ce610772565b6040516101db91906127b6565b60405180910390f35b3480156101f057600080fd5b506101f9610778565b60405161020691906127b6565b60405180910390f35b34801561021b57600080fd5b50610236600480360381019061023191906127d1565b61079c565b604051610243919061278c565b60405180910390f35b34801561025857600080fd5b50610261610875565b60405161026e9190612840565b60405180910390f35b34801561028357600080fd5b5061029e6004803603810190610299919061285b565b61087e565b6040516102ab91906127b6565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d691906128c6565b6108c7565b005b3480156102e957600080fd5b506102f2610a15565b005b34801561030057600080fd5b50610309610b68565b005b34801561031757600080fd5b50610320610c98565b60405161032d91906127b6565b60405180910390f35b34801561034257600080fd5b5061034b610c9e565b6040516103589190612902565b60405180910390f35b34801561036d57600080fd5b50610376610cc7565b60405161038391906127b6565b60405180910390f35b34801561039857600080fd5b506103a1610ccd565b6040516103ae9190612667565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190612a52565b610d0a565b6040516103eb919061278c565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190612731565b610eb8565b604051610428919061278c565b60405180910390f35b34801561043d57600080fd5b50610446610ed6565b6040516104539190612902565b60405180910390f35b34801561046857600080fd5b50610471610efc565b60405161047e91906127b6565b60405180910390f35b34801561049357600080fd5b5061049c610f02565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190612a9b565b61143e565b6040516104d291906127b6565b60405180910390f35b60606040518060400160405280600681526020017f5452495649410000000000000000000000000000000000000000000000000000815250905090565b600061052c6105256114c5565b84846114cd565b6001905092915050565b61053e6114c5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c290612b27565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490612b93565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061072a816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169690919063ffffffff16565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60115481565b60006009600a6107889190612d15565b6305f5e1006107979190612d60565b905090565b60006107a98484846116f4565b61086a846107b56114c5565b6108658560405180606001604052806028815260200161377d60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061081b6114c5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f19092919063ffffffff16565b6114cd565b600190509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612dee565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a1d6114c5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa190612b27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b706114c5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612b27565b60405180910390fd5b6009600a610c0b9190612d15565b6305f5e100610c1a9190612d60565b600e819055506009600a610c2e9190612d15565b6305f5e100610c3d9190612d60565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c729190612d15565b6305f5e100610c819190612d60565b604051610c8e91906127b6565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f5452495649410000000000000000000000000000000000000000000000000000815250905090565b600080610d156114c5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e06601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261143e565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051610ea691906127b6565b60405180910390a36001915050919050565b6000610ecc610ec56114c5565b84846116f4565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b610f0a6114c5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e90612b27565b60405180910390fd5b60148054906101000a900460ff1615610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612e5a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61106f9190612d15565b6305f5e10061107e9190612d60565b6114cd565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612e8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561119d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c19190612e8f565b6040518363ffffffff1660e01b81526004016111de929190612ebc565b6020604051808303816000875af11580156111fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112219190612e8f565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112aa3061087e565b6000806112b5610c9e565b426040518863ffffffff1660e01b81526004016112d796959493929190612f2a565b60606040518083038185885af11580156112f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061131a9190612fa0565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113bc929190612ff3565b6020604051808303816000875af11580156113db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ff9190613048565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611533906130e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290613179565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161168991906127b6565b60405180910390a3505050565b60008082846116a59190613199565b9050838110156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190613219565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906132ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c99061333d565b60405180910390fd5b60008111611815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c906133cf565b60405180910390fd5b600061181f610c9e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561188d575061185d610c9e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118e75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119415750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e34576119826064611974600a54600d541161196157600654611965565b6008545b8561215590919063ffffffff16565b6121cf90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a2f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a855750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b6a57600e54821115611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac69061343b565b60405180910390fd5b600f5482611adc8561087e565b611ae69190613199565b1115611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e906134a7565b60405180910390fd5b436003600554611b379190613199565b1115611b5157611b4683612219565b15611b5057600080fd5b5b600d6000815480929190611b64906134c7565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c125750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c7057600f5482611c248561087e565b611c2e9190613199565b1115611c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c66906134a7565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cf957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d3d57611d3a6064611d2c600b54600d5411611d1957600754611d1d565b6009545b8561215590919063ffffffff16565b6121cf90919063ffffffff16565b90505b6000611d483061087e565b9050601460159054906101000a900460ff16158015611db45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611dcc5750601460169054906101000a900460ff165b8015611dd9575060105481115b8015611de85750600c54600d54115b15611e32576000611df83061087e565b9050611e17611e1285611e0d8460115461222c565b61222c565b612245565b60004790506000811115611e2f57611e2e476124be565b5b50505b505b6000811115611f3857611e8f81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f2f91906127b6565b60405180910390a35b611f8a82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252a90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612031611fe3828461252a90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120d6848661252a90919063ffffffff16565b6040516120e391906127b6565b60405180910390a350505050565b6000838311158290612139576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121309190612667565b60405180910390fd5b5060008385612148919061350f565b9050809150509392505050565b600080830361216757600090506121c9565b600082846121759190612d60565b90508284826121849190613572565b146121c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bb90613615565b60405180910390fd5b809150505b92915050565b600061221183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612574565b905092915050565b600080823b905060008111915050919050565b600081831161223b578261223d565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561227d5761227c612927565b5b6040519080825280602002602001820160405280156122ab5781602001602082028036833780820191505090505b50905030816000815181106122c3576122c2613635565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e9190612e8f565b816001815181106123a2576123a1613635565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114cd565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161246d959493929190613722565b600060405180830381600087803b15801561248757600080fd5b505af115801561249b573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612526573d6000803e3d6000fd5b5050565b600061256c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120f1565b905092915050565b600080831182906125bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b29190612667565b60405180910390fd5b50600083856125ca9190613572565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126115780820151818401526020810190506125f6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612639826125d7565b61264381856125e2565b93506126538185602086016125f3565b61265c8161261d565b840191505092915050565b60006020820190508181036000830152612681818461262e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126c88261269d565b9050919050565b6126d8816126bd565b81146126e357600080fd5b50565b6000813590506126f5816126cf565b92915050565b6000819050919050565b61270e816126fb565b811461271957600080fd5b50565b60008135905061272b81612705565b92915050565b6000806040838503121561274857612747612693565b5b6000612756858286016126e6565b92505060206127678582860161271c565b9150509250929050565b60008115159050919050565b61278681612771565b82525050565b60006020820190506127a1600083018461277d565b92915050565b6127b0816126fb565b82525050565b60006020820190506127cb60008301846127a7565b92915050565b6000806000606084860312156127ea576127e9612693565b5b60006127f8868287016126e6565b9350506020612809868287016126e6565b925050604061281a8682870161271c565b9150509250925092565b600060ff82169050919050565b61283a81612824565b82525050565b60006020820190506128556000830184612831565b92915050565b60006020828403121561287157612870612693565b5b600061287f848285016126e6565b91505092915050565b60006128938261269d565b9050919050565b6128a381612888565b81146128ae57600080fd5b50565b6000813590506128c08161289a565b92915050565b6000602082840312156128dc576128db612693565b5b60006128ea848285016128b1565b91505092915050565b6128fc816126bd565b82525050565b600060208201905061291760008301846128f3565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61295f8261261d565b810181811067ffffffffffffffff8211171561297e5761297d612927565b5b80604052505050565b6000612991612689565b905061299d8282612956565b919050565b600067ffffffffffffffff8211156129bd576129bc612927565b5b6129c68261261d565b9050602081019050919050565b82818337600083830152505050565b60006129f56129f0846129a2565b612987565b905082815260208101848484011115612a1157612a10612922565b5b612a1c8482856129d3565b509392505050565b600082601f830112612a3957612a3861291d565b5b8135612a498482602086016129e2565b91505092915050565b600060208284031215612a6857612a67612693565b5b600082013567ffffffffffffffff811115612a8657612a85612698565b5b612a9284828501612a24565b91505092915050565b60008060408385031215612ab257612ab1612693565b5b6000612ac0858286016126e6565b9250506020612ad1858286016126e6565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b116020836125e2565b9150612b1c82612adb565b602082019050919050565b60006020820190508181036000830152612b4081612b04565b9050919050565b7f4e6f20746f6b656e7320746f206275726e000000000000000000000000000000600082015250565b6000612b7d6011836125e2565b9150612b8882612b47565b602082019050919050565b60006020820190508181036000830152612bac81612b70565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c3957808604811115612c1557612c14612bb3565b5b6001851615612c245780820291505b8081029050612c3285612be2565b9450612bf9565b94509492505050565b600082612c525760019050612d0e565b81612c605760009050612d0e565b8160018114612c765760028114612c8057612caf565b6001915050612d0e565b60ff841115612c9257612c91612bb3565b5b8360020a915084821115612ca957612ca8612bb3565b5b50612d0e565b5060208310610133831016604e8410600b8410161715612ce45782820a905083811115612cdf57612cde612bb3565b5b612d0e565b612cf18484846001612bef565b92509050818404811115612d0857612d07612bb3565b5b81810290505b9392505050565b6000612d20826126fb565b9150612d2b83612824565b9250612d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c42565b905092915050565b6000612d6b826126fb565b9150612d76836126fb565b9250828202612d84816126fb565b91508282048414831517612d9b57612d9a612bb3565b5b5092915050565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000612dd8600e836125e2565b9150612de382612da2565b602082019050919050565b60006020820190508181036000830152612e0781612dcb565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e446017836125e2565b9150612e4f82612e0e565b602082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b600081519050612e89816126cf565b92915050565b600060208284031215612ea557612ea4612693565b5b6000612eb384828501612e7a565b91505092915050565b6000604082019050612ed160008301856128f3565b612ede60208301846128f3565b9392505050565b6000819050919050565b6000819050919050565b6000612f14612f0f612f0a84612ee5565b612eef565b6126fb565b9050919050565b612f2481612ef9565b82525050565b600060c082019050612f3f60008301896128f3565b612f4c60208301886127a7565b612f596040830187612f1b565b612f666060830186612f1b565b612f7360808301856128f3565b612f8060a08301846127a7565b979650505050505050565b600081519050612f9a81612705565b92915050565b600080600060608486031215612fb957612fb8612693565b5b6000612fc786828701612f8b565b9350506020612fd886828701612f8b565b9250506040612fe986828701612f8b565b9150509250925092565b600060408201905061300860008301856128f3565b61301560208301846127a7565b9392505050565b61302581612771565b811461303057600080fd5b50565b6000815190506130428161301c565b92915050565b60006020828403121561305e5761305d612693565b5b600061306c84828501613033565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130d16024836125e2565b91506130dc82613075565b604082019050919050565b60006020820190508181036000830152613100816130c4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006131636022836125e2565b915061316e82613107565b604082019050919050565b6000602082019050818103600083015261319281613156565b9050919050565b60006131a4826126fb565b91506131af836126fb565b92508282019050808211156131c7576131c6612bb3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613203601b836125e2565b915061320e826131cd565b602082019050919050565b60006020820190508181036000830152613232816131f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006132956025836125e2565b91506132a082613239565b604082019050919050565b600060208201905081810360008301526132c481613288565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133276023836125e2565b9150613332826132cb565b604082019050919050565b600060208201905081810360008301526133568161331a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006133b96029836125e2565b91506133c48261335d565b604082019050919050565b600060208201905081810360008301526133e8816133ac565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006134256019836125e2565b9150613430826133ef565b602082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613491601a836125e2565b915061349c8261345b565b602082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b60006134d2826126fb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361350457613503612bb3565b5b600182019050919050565b600061351a826126fb565b9150613525836126fb565b925082820390508181111561353d5761353c612bb3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061357d826126fb565b9150613588836126fb565b92508261359857613597613543565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ff6021836125e2565b915061360a826135a3565b604082019050919050565b6000602082019050818103600083015261362e816135f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613699816126bd565b82525050565b60006136ab8383613690565b60208301905092915050565b6000602082019050919050565b60006136cf82613664565b6136d9818561366f565b93506136e483613680565b8060005b838110156137155781516136fc888261369f565b9750613707836136b7565b9250506001810190506136e8565b5085935050505092915050565b600060a08201905061373760008301886127a7565b6137446020830187612f1b565b818103604083015261375681866136c4565b905061376560608301856128f3565b61377260808301846127a7565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220337a09b922bafe570e9ef0ed773a6a3f98b415885854ee6ab4f5514f49b8268264736f6c63430008120033
Deployed Bytecode
0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063999f28881161006f578063999f2888146103b7578063a9059cbb146103f4578063bdf84ae714610431578063bf474bed1461045c578063c9567bf914610487578063dd62ed3e1461049e57610135565b8063751039fc146102f45780637d1db4a51461030b5780638da5cb5b146103365780638f9a55c01461036157806395d89b411461038c57610135565b806323b872dd116100f257806323b872dd1461020f578063313ce5671461024c57806370a0823114610277578063711953ef146102b4578063715018a6146102dd57610135565b806306fdde031461013a578063095ea7b3146101655780630b45260e146101a25780630faee56f146101b957806318160ddd146101e457610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104db565b60405161015c9190612667565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612731565b610518565b604051610199919061278c565b60405180910390f35b3480156101ae57600080fd5b506101b7610536565b005b3480156101c557600080fd5b506101ce610772565b6040516101db91906127b6565b60405180910390f35b3480156101f057600080fd5b506101f9610778565b60405161020691906127b6565b60405180910390f35b34801561021b57600080fd5b50610236600480360381019061023191906127d1565b61079c565b604051610243919061278c565b60405180910390f35b34801561025857600080fd5b50610261610875565b60405161026e9190612840565b60405180910390f35b34801561028357600080fd5b5061029e6004803603810190610299919061285b565b61087e565b6040516102ab91906127b6565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d691906128c6565b6108c7565b005b3480156102e957600080fd5b506102f2610a15565b005b34801561030057600080fd5b50610309610b68565b005b34801561031757600080fd5b50610320610c98565b60405161032d91906127b6565b60405180910390f35b34801561034257600080fd5b5061034b610c9e565b6040516103589190612902565b60405180910390f35b34801561036d57600080fd5b50610376610cc7565b60405161038391906127b6565b60405180910390f35b34801561039857600080fd5b506103a1610ccd565b6040516103ae9190612667565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190612a52565b610d0a565b6040516103eb919061278c565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190612731565b610eb8565b604051610428919061278c565b60405180910390f35b34801561043d57600080fd5b50610446610ed6565b6040516104539190612902565b60405180910390f35b34801561046857600080fd5b50610471610efc565b60405161047e91906127b6565b60405180910390f35b34801561049357600080fd5b5061049c610f02565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190612a9b565b61143e565b6040516104d291906127b6565b60405180910390f35b60606040518060400160405280600681526020017f5452495649410000000000000000000000000000000000000000000000000000815250905090565b600061052c6105256114c5565b84846114cd565b6001905092915050565b61053e6114c5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c290612b27565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540361064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490612b93565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061072a816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169690919063ffffffff16565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60115481565b60006009600a6107889190612d15565b6305f5e1006107979190612d60565b905090565b60006107a98484846116f4565b61086a846107b56114c5565b6108658560405180606001604052806028815260200161377d60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061081b6114c5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f19092919063ffffffff16565b6114cd565b600190509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612dee565b60405180910390fd5b80601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a1d6114c5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa190612b27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b706114c5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612b27565b60405180910390fd5b6009600a610c0b9190612d15565b6305f5e100610c1a9190612d60565b600e819055506009600a610c2e9190612d15565b6305f5e100610c3d9190612d60565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c729190612d15565b6305f5e100610c819190612d60565b604051610c8e91906127b6565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f5452495649410000000000000000000000000000000000000000000000000000815250905090565b600080610d156114c5565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e06601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261143e565b50601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051610ea691906127b6565b60405180910390a36001915050919050565b6000610ecc610ec56114c5565b84846116f4565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b610f0a6114c5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e90612b27565b60405180910390fd5b60148054906101000a900460ff1615610fe5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdc90612e5a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61106f9190612d15565b6305f5e10061107e9190612d60565b6114cd565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612e8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561119d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c19190612e8f565b6040518363ffffffff1660e01b81526004016111de929190612ebc565b6020604051808303816000875af11580156111fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112219190612e8f565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112aa3061087e565b6000806112b5610c9e565b426040518863ffffffff1660e01b81526004016112d796959493929190612f2a565b60606040518083038185885af11580156112f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061131a9190612fa0565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113bc929190612ff3565b6020604051808303816000875af11580156113db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ff9190613048565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555043600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361153c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611533906130e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290613179565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161168991906127b6565b60405180910390a3505050565b60008082846116a59190613199565b9050838110156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190613219565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906132ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c99061333d565b60405180910390fd5b60008111611815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c906133cf565b60405180910390fd5b600061181f610c9e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561188d575061185d610c9e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118e75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119415750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e34576119826064611974600a54600d541161196157600654611965565b6008545b8561215590919063ffffffff16565b6121cf90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a2f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a855750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b6a57600e54821115611acf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac69061343b565b60405180910390fd5b600f5482611adc8561087e565b611ae69190613199565b1115611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e906134a7565b60405180910390fd5b436003600554611b379190613199565b1115611b5157611b4683612219565b15611b5057600080fd5b5b600d6000815480929190611b64906134c7565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c125750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c7057600f5482611c248561087e565b611c2e9190613199565b1115611c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c66906134a7565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cf957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d3d57611d3a6064611d2c600b54600d5411611d1957600754611d1d565b6009545b8561215590919063ffffffff16565b6121cf90919063ffffffff16565b90505b6000611d483061087e565b9050601460159054906101000a900460ff16158015611db45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611dcc5750601460169054906101000a900460ff165b8015611dd9575060105481115b8015611de85750600c54600d54115b15611e32576000611df83061087e565b9050611e17611e1285611e0d8460115461222c565b61222c565b612245565b60004790506000811115611e2f57611e2e476124be565b5b50505b505b6000811115611f3857611e8f81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f2f91906127b6565b60405180910390a35b611f8a82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252a90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612031611fe3828461252a90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461169690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6120d6848661252a90919063ffffffff16565b6040516120e391906127b6565b60405180910390a350505050565b6000838311158290612139576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121309190612667565b60405180910390fd5b5060008385612148919061350f565b9050809150509392505050565b600080830361216757600090506121c9565b600082846121759190612d60565b90508284826121849190613572565b146121c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bb90613615565b60405180910390fd5b809150505b92915050565b600061221183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612574565b905092915050565b600080823b905060008111915050919050565b600081831161223b578261223d565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561227d5761227c612927565b5b6040519080825280602002602001820160405280156122ab5781602001602082028036833780820191505090505b50905030816000815181106122c3576122c2613635565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e9190612e8f565b816001815181106123a2576123a1613635565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114cd565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161246d959493929190613722565b600060405180830381600087803b15801561248757600080fd5b505af115801561249b573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612526573d6000803e3d6000fd5b5050565b600061256c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120f1565b905092915050565b600080831182906125bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b29190612667565b60405180910390fd5b50600083856125ca9190613572565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126115780820151818401526020810190506125f6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612639826125d7565b61264381856125e2565b93506126538185602086016125f3565b61265c8161261d565b840191505092915050565b60006020820190508181036000830152612681818461262e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126c88261269d565b9050919050565b6126d8816126bd565b81146126e357600080fd5b50565b6000813590506126f5816126cf565b92915050565b6000819050919050565b61270e816126fb565b811461271957600080fd5b50565b60008135905061272b81612705565b92915050565b6000806040838503121561274857612747612693565b5b6000612756858286016126e6565b92505060206127678582860161271c565b9150509250929050565b60008115159050919050565b61278681612771565b82525050565b60006020820190506127a1600083018461277d565b92915050565b6127b0816126fb565b82525050565b60006020820190506127cb60008301846127a7565b92915050565b6000806000606084860312156127ea576127e9612693565b5b60006127f8868287016126e6565b9350506020612809868287016126e6565b925050604061281a8682870161271c565b9150509250925092565b600060ff82169050919050565b61283a81612824565b82525050565b60006020820190506128556000830184612831565b92915050565b60006020828403121561287157612870612693565b5b600061287f848285016126e6565b91505092915050565b60006128938261269d565b9050919050565b6128a381612888565b81146128ae57600080fd5b50565b6000813590506128c08161289a565b92915050565b6000602082840312156128dc576128db612693565b5b60006128ea848285016128b1565b91505092915050565b6128fc816126bd565b82525050565b600060208201905061291760008301846128f3565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61295f8261261d565b810181811067ffffffffffffffff8211171561297e5761297d612927565b5b80604052505050565b6000612991612689565b905061299d8282612956565b919050565b600067ffffffffffffffff8211156129bd576129bc612927565b5b6129c68261261d565b9050602081019050919050565b82818337600083830152505050565b60006129f56129f0846129a2565b612987565b905082815260208101848484011115612a1157612a10612922565b5b612a1c8482856129d3565b509392505050565b600082601f830112612a3957612a3861291d565b5b8135612a498482602086016129e2565b91505092915050565b600060208284031215612a6857612a67612693565b5b600082013567ffffffffffffffff811115612a8657612a85612698565b5b612a9284828501612a24565b91505092915050565b60008060408385031215612ab257612ab1612693565b5b6000612ac0858286016126e6565b9250506020612ad1858286016126e6565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b116020836125e2565b9150612b1c82612adb565b602082019050919050565b60006020820190508181036000830152612b4081612b04565b9050919050565b7f4e6f20746f6b656e7320746f206275726e000000000000000000000000000000600082015250565b6000612b7d6011836125e2565b9150612b8882612b47565b602082019050919050565b60006020820190508181036000830152612bac81612b70565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612c3957808604811115612c1557612c14612bb3565b5b6001851615612c245780820291505b8081029050612c3285612be2565b9450612bf9565b94509492505050565b600082612c525760019050612d0e565b81612c605760009050612d0e565b8160018114612c765760028114612c8057612caf565b6001915050612d0e565b60ff841115612c9257612c91612bb3565b5b8360020a915084821115612ca957612ca8612bb3565b5b50612d0e565b5060208310610133831016604e8410600b8410161715612ce45782820a905083811115612cdf57612cde612bb3565b5b612d0e565b612cf18484846001612bef565b92509050818404811115612d0857612d07612bb3565b5b81810290505b9392505050565b6000612d20826126fb565b9150612d2b83612824565b9250612d587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612c42565b905092915050565b6000612d6b826126fb565b9150612d76836126fb565b9250828202612d84816126fb565b91508282048414831517612d9b57612d9a612bb3565b5b5092915050565b7f6e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b6000612dd8600e836125e2565b9150612de382612da2565b602082019050919050565b60006020820190508181036000830152612e0781612dcb565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e446017836125e2565b9150612e4f82612e0e565b602082019050919050565b60006020820190508181036000830152612e7381612e37565b9050919050565b600081519050612e89816126cf565b92915050565b600060208284031215612ea557612ea4612693565b5b6000612eb384828501612e7a565b91505092915050565b6000604082019050612ed160008301856128f3565b612ede60208301846128f3565b9392505050565b6000819050919050565b6000819050919050565b6000612f14612f0f612f0a84612ee5565b612eef565b6126fb565b9050919050565b612f2481612ef9565b82525050565b600060c082019050612f3f60008301896128f3565b612f4c60208301886127a7565b612f596040830187612f1b565b612f666060830186612f1b565b612f7360808301856128f3565b612f8060a08301846127a7565b979650505050505050565b600081519050612f9a81612705565b92915050565b600080600060608486031215612fb957612fb8612693565b5b6000612fc786828701612f8b565b9350506020612fd886828701612f8b565b9250506040612fe986828701612f8b565b9150509250925092565b600060408201905061300860008301856128f3565b61301560208301846127a7565b9392505050565b61302581612771565b811461303057600080fd5b50565b6000815190506130428161301c565b92915050565b60006020828403121561305e5761305d612693565b5b600061306c84828501613033565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130d16024836125e2565b91506130dc82613075565b604082019050919050565b60006020820190508181036000830152613100816130c4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006131636022836125e2565b915061316e82613107565b604082019050919050565b6000602082019050818103600083015261319281613156565b9050919050565b60006131a4826126fb565b91506131af836126fb565b92508282019050808211156131c7576131c6612bb3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613203601b836125e2565b915061320e826131cd565b602082019050919050565b60006020820190508181036000830152613232816131f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006132956025836125e2565b91506132a082613239565b604082019050919050565b600060208201905081810360008301526132c481613288565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133276023836125e2565b9150613332826132cb565b604082019050919050565b600060208201905081810360008301526133568161331a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006133b96029836125e2565b91506133c48261335d565b604082019050919050565b600060208201905081810360008301526133e8816133ac565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006134256019836125e2565b9150613430826133ef565b602082019050919050565b6000602082019050818103600083015261345481613418565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613491601a836125e2565b915061349c8261345b565b602082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b60006134d2826126fb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361350457613503612bb3565b5b600182019050919050565b600061351a826126fb565b9150613525836126fb565b925082820390508181111561353d5761353c612bb3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061357d826126fb565b9150613588836126fb565b92508261359857613597613543565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ff6021836125e2565b915061360a826135a3565b604082019050919050565b6000602082019050818103600083015261362e816135f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613699816126bd565b82525050565b60006136ab8383613690565b60208301905092915050565b6000602082019050919050565b60006136cf82613664565b6136d9818561366f565b93506136e483613680565b8060005b838110156137155781516136fc888261369f565b9750613707836136b7565b9250506001810190506136e8565b5085935050505092915050565b600060a08201905061373760008301886127a7565b6137446020830187612f1b565b818103604083015261375681866136c4565b905061376560608301856128f3565b61377260808301846127a7565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220337a09b922bafe570e9ef0ed773a6a3f98b415885854ee6ab4f5514f49b8268264736f6c63430008120033
Deployed Bytecode Sourcemap
3474:11438:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8337:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9480:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13763:293;;;;;;;;;;;;;:::i;:::-;;4544:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8924:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9649:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8833:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9027:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13414:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2555:148;;;;;;;;;;;;;:::i;:::-;;13596:159;;;;;;;;;;;;;:::i;:::-;;4356:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2340:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4418:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8738:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8429:303;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9154:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4602:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4480:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14165:707;;;;;;;;;;;;;:::i;:::-;;9329:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8337:83;8374:13;8407:5;;;;;;;;;;;;;;;;;8400:12;;8337:83;:::o;9480:161::-;9555:4;9572:39;9581:12;:10;:12::i;:::-;9595:7;9604:6;9572:8;:39::i;:::-;9629:4;9622:11;;9480:161;;;;:::o;13763:293::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13846:1:::1;13818:9;:24;13836:4;13818:24;;;;;;;;;;;;;;;;:29:::0;13810:58:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13879:20;13902:9;:24;13920:4;13902:24;;;;;;;;;;;;;;;;13879:47;;13962:1;13937:9;:24;13955:4;13937:24;;;;;;;;;;;;;;;:26;;;;14001:47;14032:15;14001:9;:26;14019:6;14001:26;;;;;;;;;;;;;;;;:30;;:47;;;;:::i;:::-;13974:9;:26;13992:6;13974:26;;;;;;;;;;;;;;;:74;;;;13799:257;13763:293::o:0;4544:51::-;;;;:::o;8924:95::-;8977:7;4171:1;4226:2;:13;;;;:::i;:::-;4214:9;:25;;;;:::i;:::-;8997:14;;8924:95;:::o;9649:313::-;9747:4;9764:36;9774:6;9782:9;9793:6;9764:9;:36::i;:::-;9811:121;9820:6;9828:12;:10;:12::i;:::-;9842:89;9880:6;9842:89;;;;;;;;;;;;;;;;;:11;:19;9854:6;9842:19;;;;;;;;;;;;;;;:33;9862:12;:10;:12::i;:::-;9842:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9811:8;:121::i;:::-;9950:4;9943:11;;9649:313;;;;;:::o;8833:83::-;8874:5;4171:1;8892:16;;8833:83;:::o;9027:119::-;9093:7;9120:9;:18;9130:7;9120:18;;;;;;;;;;;;;;;;9113:25;;9027:119;;;:::o;13414:173::-;5068:10;;;;;;;;;;;5054:24;;:10;:24;;;5046:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;13518:12:::1;13504:11;;:26;;;;;;;;;;;;;;;;;;13575:4;13541:18;:31;13560:11;;;;;;;;;;;13541:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;13414:173:::0;:::o;2555:148::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2662:1:::1;2625:40;;2646:6;::::0;::::1;;;;;;;;2625:40;;;;;;;;;;;;2693:1;2676:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2555:148::o:0;13596:159::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4171:1:::1;4226:2;:13;;;;:::i;:::-;4214:9;:25;;;;:::i;:::-;13649:12;:22;;;;4171:1;4226:2;:13;;;;:::i;:::-;4214:9;:25;;;;:::i;:::-;13682:14;:22;;;;13720:27;4171:1;4226:2;:13;;;;:::i;:::-;4214:9;:25;;;;:::i;:::-;13720:27;;;;;;:::i;:::-;;;;;;;;13596:159::o:0;4356:55::-;;;;:::o;2340:79::-;2378:7;2405:6;;;;;;;;;;;2398:13;;2340:79;:::o;4418:55::-;;;;:::o;8738:87::-;8777:13;8810:7;;;;;;;;;;;;;;;;;8803:14;;8738:87;:::o;8429:303::-;8496:4;8513:13;8529:12;:10;:12::i;:::-;8513:28;;8586:14;8552:11;:18;8564:5;8552:18;;;;;;;;;;;;;;;:31;8571:11;;;;;;;;;;;8552:31;;;;;;;;;;;;;;;:48;;;;8611:29;8621:11;;;;;;;;;;;8634:5;8611:9;:29::i;:::-;;8672:11;;;;;;;;;;;8656:44;;8665:5;8656:44;;;8685:14;8656:44;;;;;;:::i;:::-;;;;;;;;8720:4;8713:11;;;8429:303;;;:::o;9154:167::-;9232:4;9249:42;9259:12;:10;:12::i;:::-;9273:9;9284:6;9249:9;:42::i;:::-;9309:4;9302:11;;9154:167;;;;:::o;4602:25::-;;;;;;;;;;;;;:::o;4480:57::-;;;;:::o;14165:707::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14229:11:::1;::::0;::::1;;;;;;;;14228:12;14220:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14315:42;14278:15;;:80;;;;;;;;;;;;;;;;;;14369:58;14386:4;14401:15;;;;;;;;;;;4171:1;4226:2;:13;;;;:::i;:::-;4214:9;:25;;;;:::i;:::-;14369:8;:58::i;:::-;14472:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14454:55;;;14518:4;14525:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14454:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14438:13;;:110;;;;;;;;;;;;;;;;;;14559:15;;;;;;;;;;;:31;;;14598:21;14629:4;14635:24;14653:4;14635:9;:24::i;:::-;14660:1;14662::::0;14664:7:::1;:5;:7::i;:::-;14672:15;14559:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14706:13;;;;;;;;;;;14699:29;;;14737:15;;;;;;;;;;;14755:14;14699:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14795:4;14781:11;;:18;;;;;;;;;;;;;;;;;;14824:4;14810:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;14852:12;14839:10;:25;;;;14165:707::o:0;9329:143::-;9410:7;9437:11;:18;9449:5;9437:18;;;;;;;;;;;;;;;:27;9456:7;9437:27;;;;;;;;;;;;;;;;9430:34;;9329:143;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;9970:335::-;10080:1;10063:19;;:5;:19;;;10055:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10161:1;10142:21;;:7;:21;;;10134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10243:6;10213:11;:18;10225:5;10213:18;;;;;;;;;;;;;;;:27;10232:7;10213:27;;;;;;;;;;;;;;;:36;;;;10281:7;10265:32;;10274:5;10265:32;;;10290:6;10265:32;;;;;;:::i;:::-;;;;;;;;9970:335;;;:::o;901:179::-;959:7;979:9;995:1;991;:5;;;;:::i;:::-;979:17;;1020:1;1015;:6;;1007:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1071:1;1064:8;;;901:179;;;;:::o;10313:2291::-;10417:1;10401:18;;:4;:18;;;10393:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10494:1;10480:16;;:2;:16;;;10472:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10564:1;10555:6;:10;10547:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10622:17;10664:7;:5;:7::i;:::-;10656:15;;:4;:15;;;;:32;;;;;10681:7;:5;:7::i;:::-;10675:13;;:2;:13;;;;10656:32;:55;;;;;10700:11;;;;;;;;;;;10692:19;;:4;:19;;;;10656:55;:76;;;;;10721:11;;;;;;;;;;;10715:17;;:2;:17;;;;10656:76;10652:1596;;;10761:76;10833:3;10761:67;10783:15;;10773:9;;:25;10772:55;;10813:14;;10772:55;;;10800:12;;10772:55;10761:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;10749:88;;10866:13;;;;;;;;;;;10858:21;;:4;:21;;;:55;;;;;10897:15;;;;;;;;;;;10883:30;;:2;:30;;;;10858:55;:83;;;;;10919:18;:22;10938:2;10919:22;;;;;;;;;;;;;;;;;;;;;;;;;10917:24;10858:83;10854:436;;;10981:12;;10971:6;:22;;10963:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11076:14;;11066:6;11050:13;11060:2;11050:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;11042:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11164:12;11159:1;11146:10;;:14;;;;:::i;:::-;:30;11142:103;;;11210:14;11221:2;11210:10;:14::i;:::-;11209:15;11201:24;;;;;;11142:103;11263:9;;:11;;;;;;;;;:::i;:::-;;;;;;10854:436;11316:13;;;;;;;;;;;11310:19;;:2;:19;;;;:47;;;;;11335:18;:22;11354:2;11335:22;;;;;;;;;;;;;;;;;;;;;;;;;11333:24;11310:47;11306:167;;;11412:14;;11402:6;11386:13;11396:2;11386:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;11378:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11306:167;11498:13;;;;;;;;;;;11492:19;;:2;:19;;;:43;;;;;11530:4;11515:20;;:4;:20;;;;11492:43;11489:174;;;11568:79;11643:3;11568:70;11590:16;;11580:9;;:26;11579:58;;11622:15;;11579:58;;;11608:13;;11579:58;11568:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;11556:91;;11489:174;11679:28;11710:24;11728:4;11710:9;:24::i;:::-;11679:55;;11754:6;;;;;;;;;;;11753:7;:32;;;;;11772:13;;;;;;;;;;;11764:21;;:2;:21;;;11753:32;:47;;;;;11789:11;;;;;;;;;;;11753:47;:89;;;;;11825:17;;11804:20;:38;11753:89;:121;;;;;11856:18;;11846:9;;:28;11753:121;11749:488;;;11885:29;11917:24;11935:4;11917:9;:24::i;:::-;11885:56;;11960:68;11977:50;11981:6;11988:38;11992:21;12014:11;;11988:3;:38::i;:::-;11977:3;:50::i;:::-;11960:16;:68::i;:::-;12047:26;12076:21;12047:50;;12140:1;12119:18;:22;12116:106;;;12166:35;12179:21;12166:12;:35::i;:::-;12116:106;11876:361;;11749:488;10734:1514;10652:1596;12273:1;12263:9;:11;12260:161;;;12313:39;12342:9;12313;:24;12331:4;12313:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12288:9;:24;12306:4;12288:24;;;;;;;;;;;;;;;:64;;;;12393:4;12370:39;;12379:4;12370:39;;;12399:9;12370:39;;;;;;:::i;:::-;;;;;;;;12260:161;12447:27;12467:6;12447:9;:15;12457:4;12447:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12431:9;:15;12441:4;12431:15;;;;;;;;;;;;;;;:43;;;;12499:40;12517:21;12528:9;12517:6;:10;;:21;;;;:::i;:::-;12499:9;:13;12509:2;12499:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;12485:9;:13;12495:2;12485:13;;;;;;;;;;;;;;;:54;;;;12570:2;12555:41;;12564:4;12555:41;;;12574:21;12585:9;12574:6;:10;;:21;;;;:::i;:::-;12555:41;;;;;;:::i;:::-;;;;;;;;10382:2222;10313:2291;;;:::o;1232:190::-;1318:7;1351:1;1346;:6;;1354:12;1338:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1378:9;1394:1;1390;:5;;;;:::i;:::-;1378:17;;1413:1;1406:8;;;1232:190;;;;;:::o;1430:246::-;1488:7;1517:1;1512;:6;1508:47;;1542:1;1535:8;;;;1508:47;1565:9;1581:1;1577;:5;;;;:::i;:::-;1565:17;;1610:1;1605;1601;:5;;;;:::i;:::-;:10;1593:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1667:1;1660:8;;;1430:246;;;;;:::o;1684:132::-;1742:7;1769:39;1773:1;1776;1769:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1762:46;;1684:132;;;;:::o;12720:195::-;12779:4;12796:12;12863:7;12851:20;12843:28;;12906:1;12899:4;:8;12892:15;;;12720:195;;;:::o;12614:98::-;12671:7;12698:1;12696;:3;12695:9;;12703:1;12695:9;;;12701:1;12695:9;12688:16;;12614:98;;;;:::o;12923:483::-;4952:4;4943:6;;:13;;;;;;;;;;;;;;;;;;13001:21:::1;13039:1;13025:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13001:40;;13070:4;13052;13057:1;13052:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13096:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13086:4;13091:1;13086:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13129:62;13146:4;13161:15;;;;;;;;;;;13179:11;13129:8;:62::i;:::-;13202:15;;;;;;;;;;;:66;;;13283:11;13309:1;13325:4;13352;13372:15;13202:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12990:416;4988:5:::0;4979:6;;:14;;;;;;;;;;;;;;;;;;12923:483;:::o;14064:92::-;14121:10;;;;;;;;;;;:19;;:27;14141:6;14121:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14064:92;:::o;1088:136::-;1146:7;1173:43;1177:1;1180;1173:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1166:50;;1088:136;;;;:::o;1824:189::-;1910:7;1942:1;1938;:5;1945:12;1930:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1969:9;1985:1;1981;:5;;;;:::i;:::-;1969:17;;2004:1;1997:8;;;1824:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:104::-;5233:7;5262:24;5280:5;5262:24;:::i;:::-;5251:35;;5188:104;;;:::o;5298:138::-;5379:32;5405:5;5379:32;:::i;:::-;5372:5;5369:43;5359:71;;5426:1;5423;5416:12;5359:71;5298:138;:::o;5442:155::-;5496:5;5534:6;5521:20;5512:29;;5550:41;5585:5;5550:41;:::i;:::-;5442:155;;;;:::o;5603:345::-;5670:6;5719:2;5707:9;5698:7;5694:23;5690:32;5687:119;;;5725:79;;:::i;:::-;5687:119;5845:1;5870:61;5923:7;5914:6;5903:9;5899:22;5870:61;:::i;:::-;5860:71;;5816:125;5603:345;;;;:::o;5954:118::-;6041:24;6059:5;6041:24;:::i;:::-;6036:3;6029:37;5954:118;;:::o;6078:222::-;6171:4;6209:2;6198:9;6194:18;6186:26;;6222:71;6290:1;6279:9;6275:17;6266:6;6222:71;:::i;:::-;6078:222;;;;:::o;6306:117::-;6415:1;6412;6405:12;6429:117;6538:1;6535;6528:12;6552:180;6600:77;6597:1;6590:88;6697:4;6694:1;6687:15;6721:4;6718:1;6711:15;6738:281;6821:27;6843:4;6821:27;:::i;:::-;6813:6;6809:40;6951:6;6939:10;6936:22;6915:18;6903:10;6900:34;6897:62;6894:88;;;6962:18;;:::i;:::-;6894:88;7002:10;6998:2;6991:22;6781:238;6738:281;;:::o;7025:129::-;7059:6;7086:20;;:::i;:::-;7076:30;;7115:33;7143:4;7135:6;7115:33;:::i;:::-;7025:129;;;:::o;7160:308::-;7222:4;7312:18;7304:6;7301:30;7298:56;;;7334:18;;:::i;:::-;7298:56;7372:29;7394:6;7372:29;:::i;:::-;7364:37;;7456:4;7450;7446:15;7438:23;;7160:308;;;:::o;7474:146::-;7571:6;7566:3;7561;7548:30;7612:1;7603:6;7598:3;7594:16;7587:27;7474:146;;;:::o;7626:425::-;7704:5;7729:66;7745:49;7787:6;7745:49;:::i;:::-;7729:66;:::i;:::-;7720:75;;7818:6;7811:5;7804:21;7856:4;7849:5;7845:16;7894:3;7885:6;7880:3;7876:16;7873:25;7870:112;;;7901:79;;:::i;:::-;7870:112;7991:54;8038:6;8033:3;8028;7991:54;:::i;:::-;7710:341;7626:425;;;;;:::o;8071:340::-;8127:5;8176:3;8169:4;8161:6;8157:17;8153:27;8143:122;;8184:79;;:::i;:::-;8143:122;8301:6;8288:20;8326:79;8401:3;8393:6;8386:4;8378:6;8374:17;8326:79;:::i;:::-;8317:88;;8133:278;8071:340;;;;:::o;8417:509::-;8486:6;8535:2;8523:9;8514:7;8510:23;8506:32;8503:119;;;8541:79;;:::i;:::-;8503:119;8689:1;8678:9;8674:17;8661:31;8719:18;8711:6;8708:30;8705:117;;;8741:79;;:::i;:::-;8705:117;8846:63;8901:7;8892:6;8881:9;8877:22;8846:63;:::i;:::-;8836:73;;8632:287;8417:509;;;;:::o;8932:474::-;9000:6;9008;9057:2;9045:9;9036:7;9032:23;9028:32;9025:119;;;9063:79;;:::i;:::-;9025:119;9183:1;9208:53;9253:7;9244:6;9233:9;9229:22;9208:53;:::i;:::-;9198:63;;9154:117;9310:2;9336:53;9381:7;9372:6;9361:9;9357:22;9336:53;:::i;:::-;9326:63;;9281:118;8932:474;;;;;:::o;9412:182::-;9552:34;9548:1;9540:6;9536:14;9529:58;9412:182;:::o;9600:366::-;9742:3;9763:67;9827:2;9822:3;9763:67;:::i;:::-;9756:74;;9839:93;9928:3;9839:93;:::i;:::-;9957:2;9952:3;9948:12;9941:19;;9600:366;;;:::o;9972:419::-;10138:4;10176:2;10165:9;10161:18;10153:26;;10225:9;10219:4;10215:20;10211:1;10200:9;10196:17;10189:47;10253:131;10379:4;10253:131;:::i;:::-;10245:139;;9972:419;;;:::o;10397:167::-;10537:19;10533:1;10525:6;10521:14;10514:43;10397:167;:::o;10570:366::-;10712:3;10733:67;10797:2;10792:3;10733:67;:::i;:::-;10726:74;;10809:93;10898:3;10809:93;:::i;:::-;10927:2;10922:3;10918:12;10911:19;;10570:366;;;:::o;10942:419::-;11108:4;11146:2;11135:9;11131:18;11123:26;;11195:9;11189:4;11185:20;11181:1;11170:9;11166:17;11159:47;11223:131;11349:4;11223:131;:::i;:::-;11215:139;;10942:419;;;:::o;11367:180::-;11415:77;11412:1;11405:88;11512:4;11509:1;11502:15;11536:4;11533:1;11526:15;11553:102;11595:8;11642:5;11639:1;11635:13;11614:34;;11553:102;;;:::o;11661:848::-;11722:5;11729:4;11753:6;11744:15;;11777:5;11768:14;;11791:712;11812:1;11802:8;11799:15;11791:712;;;11907:4;11902:3;11898:14;11892:4;11889:24;11886:50;;;11916:18;;:::i;:::-;11886:50;11966:1;11956:8;11952:16;11949:451;;;12381:4;12374:5;12370:16;12361:25;;11949:451;12431:4;12425;12421:15;12413:23;;12461:32;12484:8;12461:32;:::i;:::-;12449:44;;11791:712;;;11661:848;;;;;;;:::o;12515:1073::-;12569:5;12760:8;12750:40;;12781:1;12772:10;;12783:5;;12750:40;12809:4;12799:36;;12826:1;12817:10;;12828:5;;12799:36;12895:4;12943:1;12938:27;;;;12979:1;12974:191;;;;12888:277;;12938:27;12956:1;12947:10;;12958:5;;;12974:191;13019:3;13009:8;13006:17;13003:43;;;13026:18;;:::i;:::-;13003:43;13075:8;13072:1;13068:16;13059:25;;13110:3;13103:5;13100:14;13097:40;;;13117:18;;:::i;:::-;13097:40;13150:5;;;12888:277;;13274:2;13264:8;13261:16;13255:3;13249:4;13246:13;13242:36;13224:2;13214:8;13211:16;13206:2;13200:4;13197:12;13193:35;13177:111;13174:246;;;13330:8;13324:4;13320:19;13311:28;;13365:3;13358:5;13355:14;13352:40;;;13372:18;;:::i;:::-;13352:40;13405:5;;13174:246;13445:42;13483:3;13473:8;13467:4;13464:1;13445:42;:::i;:::-;13430:57;;;;13519:4;13514:3;13510:14;13503:5;13500:25;13497:51;;;13528:18;;:::i;:::-;13497:51;13577:4;13570:5;13566:16;13557:25;;12515:1073;;;;;;:::o;13594:281::-;13652:5;13676:23;13694:4;13676:23;:::i;:::-;13668:31;;13720:25;13736:8;13720:25;:::i;:::-;13708:37;;13764:104;13801:66;13791:8;13785:4;13764:104;:::i;:::-;13755:113;;13594:281;;;;:::o;13881:410::-;13921:7;13944:20;13962:1;13944:20;:::i;:::-;13939:25;;13978:20;13996:1;13978:20;:::i;:::-;13973:25;;14033:1;14030;14026:9;14055:30;14073:11;14055:30;:::i;:::-;14044:41;;14234:1;14225:7;14221:15;14218:1;14215:22;14195:1;14188:9;14168:83;14145:139;;14264:18;;:::i;:::-;14145:139;13929:362;13881:410;;;;:::o;14297:164::-;14437:16;14433:1;14425:6;14421:14;14414:40;14297:164;:::o;14467:366::-;14609:3;14630:67;14694:2;14689:3;14630:67;:::i;:::-;14623:74;;14706:93;14795:3;14706:93;:::i;:::-;14824:2;14819:3;14815:12;14808:19;;14467:366;;;:::o;14839:419::-;15005:4;15043:2;15032:9;15028:18;15020:26;;15092:9;15086:4;15082:20;15078:1;15067:9;15063:17;15056:47;15120:131;15246:4;15120:131;:::i;:::-;15112:139;;14839:419;;;:::o;15264:173::-;15404:25;15400:1;15392:6;15388:14;15381:49;15264:173;:::o;15443:366::-;15585:3;15606:67;15670:2;15665:3;15606:67;:::i;:::-;15599:74;;15682:93;15771:3;15682:93;:::i;:::-;15800:2;15795:3;15791:12;15784:19;;15443:366;;;:::o;15815:419::-;15981:4;16019:2;16008:9;16004:18;15996:26;;16068:9;16062:4;16058:20;16054:1;16043:9;16039:17;16032:47;16096:131;16222:4;16096:131;:::i;:::-;16088:139;;15815:419;;;:::o;16240:143::-;16297:5;16328:6;16322:13;16313:22;;16344:33;16371:5;16344:33;:::i;:::-;16240:143;;;;:::o;16389:351::-;16459:6;16508:2;16496:9;16487:7;16483:23;16479:32;16476:119;;;16514:79;;:::i;:::-;16476:119;16634:1;16659:64;16715:7;16706:6;16695:9;16691:22;16659:64;:::i;:::-;16649:74;;16605:128;16389:351;;;;:::o;16746:332::-;16867:4;16905:2;16894:9;16890:18;16882:26;;16918:71;16986:1;16975:9;16971:17;16962:6;16918:71;:::i;:::-;16999:72;17067:2;17056:9;17052:18;17043:6;16999:72;:::i;:::-;16746:332;;;;;:::o;17084:85::-;17129:7;17158:5;17147:16;;17084:85;;;:::o;17175:60::-;17203:3;17224:5;17217:12;;17175:60;;;:::o;17241:158::-;17299:9;17332:61;17350:42;17359:32;17385:5;17359:32;:::i;:::-;17350:42;:::i;:::-;17332:61;:::i;:::-;17319:74;;17241:158;;;:::o;17405:147::-;17500:45;17539:5;17500:45;:::i;:::-;17495:3;17488:58;17405:147;;:::o;17558:807::-;17807:4;17845:3;17834:9;17830:19;17822:27;;17859:71;17927:1;17916:9;17912:17;17903:6;17859:71;:::i;:::-;17940:72;18008:2;17997:9;17993:18;17984:6;17940:72;:::i;:::-;18022:80;18098:2;18087:9;18083:18;18074:6;18022:80;:::i;:::-;18112;18188:2;18177:9;18173:18;18164:6;18112:80;:::i;:::-;18202:73;18270:3;18259:9;18255:19;18246:6;18202:73;:::i;:::-;18285;18353:3;18342:9;18338:19;18329:6;18285:73;:::i;:::-;17558:807;;;;;;;;;:::o;18371:143::-;18428:5;18459:6;18453:13;18444:22;;18475:33;18502:5;18475:33;:::i;:::-;18371:143;;;;:::o;18520:663::-;18608:6;18616;18624;18673:2;18661:9;18652:7;18648:23;18644:32;18641:119;;;18679:79;;:::i;:::-;18641:119;18799:1;18824:64;18880:7;18871:6;18860:9;18856:22;18824:64;:::i;:::-;18814:74;;18770:128;18937:2;18963:64;19019:7;19010:6;18999:9;18995:22;18963:64;:::i;:::-;18953:74;;18908:129;19076:2;19102:64;19158:7;19149:6;19138:9;19134:22;19102:64;:::i;:::-;19092:74;;19047:129;18520:663;;;;;:::o;19189:332::-;19310:4;19348:2;19337:9;19333:18;19325:26;;19361:71;19429:1;19418:9;19414:17;19405:6;19361:71;:::i;:::-;19442:72;19510:2;19499:9;19495:18;19486:6;19442:72;:::i;:::-;19189:332;;;;;:::o;19527:116::-;19597:21;19612:5;19597:21;:::i;:::-;19590:5;19587:32;19577:60;;19633:1;19630;19623:12;19577:60;19527:116;:::o;19649:137::-;19703:5;19734:6;19728:13;19719:22;;19750:30;19774:5;19750:30;:::i;:::-;19649:137;;;;:::o;19792:345::-;19859:6;19908:2;19896:9;19887:7;19883:23;19879:32;19876:119;;;19914:79;;:::i;:::-;19876:119;20034:1;20059:61;20112:7;20103:6;20092:9;20088:22;20059:61;:::i;:::-;20049:71;;20005:125;19792:345;;;;:::o;20143:223::-;20283:34;20279:1;20271:6;20267:14;20260:58;20352:6;20347:2;20339:6;20335:15;20328:31;20143:223;:::o;20372:366::-;20514:3;20535:67;20599:2;20594:3;20535:67;:::i;:::-;20528:74;;20611:93;20700:3;20611:93;:::i;:::-;20729:2;20724:3;20720:12;20713:19;;20372:366;;;:::o;20744:419::-;20910:4;20948:2;20937:9;20933:18;20925:26;;20997:9;20991:4;20987:20;20983:1;20972:9;20968:17;20961:47;21025:131;21151:4;21025:131;:::i;:::-;21017:139;;20744:419;;;:::o;21169:221::-;21309:34;21305:1;21297:6;21293:14;21286:58;21378:4;21373:2;21365:6;21361:15;21354:29;21169:221;:::o;21396:366::-;21538:3;21559:67;21623:2;21618:3;21559:67;:::i;:::-;21552:74;;21635:93;21724:3;21635:93;:::i;:::-;21753:2;21748:3;21744:12;21737:19;;21396:366;;;:::o;21768:419::-;21934:4;21972:2;21961:9;21957:18;21949:26;;22021:9;22015:4;22011:20;22007:1;21996:9;21992:17;21985:47;22049:131;22175:4;22049:131;:::i;:::-;22041:139;;21768:419;;;:::o;22193:191::-;22233:3;22252:20;22270:1;22252:20;:::i;:::-;22247:25;;22286:20;22304:1;22286:20;:::i;:::-;22281:25;;22329:1;22326;22322:9;22315:16;;22350:3;22347:1;22344:10;22341:36;;;22357:18;;:::i;:::-;22341:36;22193:191;;;;:::o;22390:177::-;22530:29;22526:1;22518:6;22514:14;22507:53;22390:177;:::o;22573:366::-;22715:3;22736:67;22800:2;22795:3;22736:67;:::i;:::-;22729:74;;22812:93;22901:3;22812:93;:::i;:::-;22930:2;22925:3;22921:12;22914:19;;22573:366;;;:::o;22945:419::-;23111:4;23149:2;23138:9;23134:18;23126:26;;23198:9;23192:4;23188:20;23184:1;23173:9;23169:17;23162:47;23226:131;23352:4;23226:131;:::i;:::-;23218:139;;22945:419;;;:::o;23370:224::-;23510:34;23506:1;23498:6;23494:14;23487:58;23579:7;23574:2;23566:6;23562:15;23555:32;23370:224;:::o;23600:366::-;23742:3;23763:67;23827:2;23822:3;23763:67;:::i;:::-;23756:74;;23839:93;23928:3;23839:93;:::i;:::-;23957:2;23952:3;23948:12;23941:19;;23600:366;;;:::o;23972:419::-;24138:4;24176:2;24165:9;24161:18;24153:26;;24225:9;24219:4;24215:20;24211:1;24200:9;24196:17;24189:47;24253:131;24379:4;24253:131;:::i;:::-;24245:139;;23972:419;;;:::o;24397:222::-;24537:34;24533:1;24525:6;24521:14;24514:58;24606:5;24601:2;24593:6;24589:15;24582:30;24397:222;:::o;24625:366::-;24767:3;24788:67;24852:2;24847:3;24788:67;:::i;:::-;24781:74;;24864:93;24953:3;24864:93;:::i;:::-;24982:2;24977:3;24973:12;24966:19;;24625:366;;;:::o;24997:419::-;25163:4;25201:2;25190:9;25186:18;25178:26;;25250:9;25244:4;25240:20;25236:1;25225:9;25221:17;25214:47;25278:131;25404:4;25278:131;:::i;:::-;25270:139;;24997:419;;;:::o;25422:228::-;25562:34;25558:1;25550:6;25546:14;25539:58;25631:11;25626:2;25618:6;25614:15;25607:36;25422:228;:::o;25656:366::-;25798:3;25819:67;25883:2;25878:3;25819:67;:::i;:::-;25812:74;;25895:93;25984:3;25895:93;:::i;:::-;26013:2;26008:3;26004:12;25997:19;;25656:366;;;:::o;26028:419::-;26194:4;26232:2;26221:9;26217:18;26209:26;;26281:9;26275:4;26271:20;26267:1;26256:9;26252:17;26245:47;26309:131;26435:4;26309:131;:::i;:::-;26301:139;;26028:419;;;:::o;26453:175::-;26593:27;26589:1;26581:6;26577:14;26570:51;26453:175;:::o;26634:366::-;26776:3;26797:67;26861:2;26856:3;26797:67;:::i;:::-;26790:74;;26873:93;26962:3;26873:93;:::i;:::-;26991:2;26986:3;26982:12;26975:19;;26634:366;;;:::o;27006:419::-;27172:4;27210:2;27199:9;27195:18;27187:26;;27259:9;27253:4;27249:20;27245:1;27234:9;27230:17;27223:47;27287:131;27413:4;27287:131;:::i;:::-;27279:139;;27006:419;;;:::o;27431:176::-;27571:28;27567:1;27559:6;27555:14;27548:52;27431:176;:::o;27613:366::-;27755:3;27776:67;27840:2;27835:3;27776:67;:::i;:::-;27769:74;;27852:93;27941:3;27852:93;:::i;:::-;27970:2;27965:3;27961:12;27954:19;;27613:366;;;:::o;27985:419::-;28151:4;28189:2;28178:9;28174:18;28166:26;;28238:9;28232:4;28228:20;28224:1;28213:9;28209:17;28202:47;28266:131;28392:4;28266:131;:::i;:::-;28258:139;;27985:419;;;:::o;28410:233::-;28449:3;28472:24;28490:5;28472:24;:::i;:::-;28463:33;;28518:66;28511:5;28508:77;28505:103;;28588:18;;:::i;:::-;28505:103;28635:1;28628:5;28624:13;28617:20;;28410:233;;;:::o;28649:194::-;28689:4;28709:20;28727:1;28709:20;:::i;:::-;28704:25;;28743:20;28761:1;28743:20;:::i;:::-;28738:25;;28787:1;28784;28780:9;28772:17;;28811:1;28805:4;28802:11;28799:37;;;28816:18;;:::i;:::-;28799:37;28649:194;;;;:::o;28849:180::-;28897:77;28894:1;28887:88;28994:4;28991:1;28984:15;29018:4;29015:1;29008:15;29035:185;29075:1;29092:20;29110:1;29092:20;:::i;:::-;29087:25;;29126:20;29144:1;29126:20;:::i;:::-;29121:25;;29165:1;29155:35;;29170:18;;:::i;:::-;29155:35;29212:1;29209;29205:9;29200:14;;29035:185;;;;:::o;29226:220::-;29366:34;29362:1;29354:6;29350:14;29343:58;29435:3;29430:2;29422:6;29418:15;29411:28;29226:220;:::o;29452:366::-;29594:3;29615:67;29679:2;29674:3;29615:67;:::i;:::-;29608:74;;29691:93;29780:3;29691:93;:::i;:::-;29809:2;29804:3;29800:12;29793:19;;29452:366;;;:::o;29824:419::-;29990:4;30028:2;30017:9;30013:18;30005:26;;30077:9;30071:4;30067:20;30063:1;30052:9;30048:17;30041:47;30105:131;30231:4;30105:131;:::i;:::-;30097:139;;29824:419;;;:::o;30249:180::-;30297:77;30294:1;30287:88;30394:4;30391:1;30384:15;30418:4;30415:1;30408:15;30435:114;30502:6;30536:5;30530:12;30520:22;;30435:114;;;:::o;30555:184::-;30654:11;30688:6;30683:3;30676:19;30728:4;30723:3;30719:14;30704:29;;30555:184;;;;:::o;30745:132::-;30812:4;30835:3;30827:11;;30865:4;30860:3;30856:14;30848:22;;30745:132;;;:::o;30883:108::-;30960:24;30978:5;30960:24;:::i;:::-;30955:3;30948:37;30883:108;;:::o;30997:179::-;31066:10;31087:46;31129:3;31121:6;31087:46;:::i;:::-;31165:4;31160:3;31156:14;31142:28;;30997:179;;;;:::o;31182:113::-;31252:4;31284;31279:3;31275:14;31267:22;;31182:113;;;:::o;31331:732::-;31450:3;31479:54;31527:5;31479:54;:::i;:::-;31549:86;31628:6;31623:3;31549:86;:::i;:::-;31542:93;;31659:56;31709:5;31659:56;:::i;:::-;31738:7;31769:1;31754:284;31779:6;31776:1;31773:13;31754:284;;;31855:6;31849:13;31882:63;31941:3;31926:13;31882:63;:::i;:::-;31875:70;;31968:60;32021:6;31968:60;:::i;:::-;31958:70;;31814:224;31801:1;31798;31794:9;31789:14;;31754:284;;;31758:14;32054:3;32047:10;;31455:608;;;31331:732;;;;:::o;32069:831::-;32332:4;32370:3;32359:9;32355:19;32347:27;;32384:71;32452:1;32441:9;32437:17;32428:6;32384:71;:::i;:::-;32465:80;32541:2;32530:9;32526:18;32517:6;32465:80;:::i;:::-;32592:9;32586:4;32582:20;32577:2;32566:9;32562:18;32555:48;32620:108;32723:4;32714:6;32620:108;:::i;:::-;32612:116;;32738:72;32806:2;32795:9;32791:18;32782:6;32738:72;:::i;:::-;32820:73;32888:3;32877:9;32873:19;32864:6;32820:73;:::i;:::-;32069:831;;;;;;;;:::o
Swarm Source
ipfs://337a09b922bafe570e9ef0ed773a6a3f98b415885854ee6ab4f5514f49b82682
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.