ERC-20
Overview
Max Total Supply
100,000,000,000 SOW
Holders
21
Market
Price
$0.00 @ 0.000000 MATIC
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
SpoilsOfWar
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-09-07 */ // SPDX-License-Identifier: MIT License pragma solidity 0.8.9; interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract SpoilsOfWar is Context, Ownable, IBEP20 { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; uint8 private _decimals; string private _symbol; string private _name; address payable public dev; uint16 constant PERCENT_DIVIDER = 10000; uint16[5] private ref_bonuses = [2500, 500, 300, 200, 100]; uint256 public buys_bnb; uint256 public buys_token; uint256 public sells_bnb; uint256 public sells_token; uint256 public invest_bnb; uint256 public invest_token; uint256 public withdrawn; uint256 public ref_bonus; struct Tarif { uint256 life_days; uint256 percent; } struct Deposit { uint256 tarif; uint256 amount; uint40 time; } struct Battle { uint256 rewards; uint40 timeStart; uint40 timeEnd; uint8 result; uint8 status; } struct Player { address upline; uint8 fleet; uint256 dividends; uint256 total_buy_bnb; uint256 total_buy_token; uint256 total_sell_bnb; uint256 total_sell_token; uint256 total_invest_token; uint256 total_refbonus; uint256 total_battle_score; uint40 lastWithdrawn; uint40 lastSwitched; Deposit[] deposits; Battle[] battles; uint256[5] structure; uint256[3] investments; } mapping(address => Player) public players; mapping(uint256 => Tarif) public tarifs; uint256 public nextMemberNo; uint256 private constant DAY = 24 hours; uint256[2] public fleet_crews = [5000, 5000]; uint256[2] public fleet_battles = [0, 0]; uint256[2] public fleet_ships = [0, 0]; uint256[2] public fleet_aircrafts = [0, 0]; uint256[2] public battles_rewards = [0, 0]; uint256[2] public fleet_shipdeduct = [0, 0]; uint256[2] public fleet_ratededuct = [0, 0]; uint256[2] public fleet_sellRates = [10000, 10000]; uint256 public BUYRATE = 1000; uint256 constant SELLRATE = 10000; constructor() { _name = "SpoilsOfWar - Battleships"; _symbol = "SOW"; _decimals = 18; _totalSupply = 100000000000 * 10**uint(_decimals); // 100B _balances[address(this)] = 50000000000 * 10**uint(_decimals); emit Transfer(address(0), address(this), _balances[address(this)]); _balances[msg.sender] = 50000000000 * 10**uint(_decimals); emit Transfer(address(0), msg.sender, _balances[msg.sender]); tarifs[100] = Tarif(100, 2500); //25.00% daily for 100 days => 2500% ROI tarifs[60] = Tarif(60, 1800); //30.00% daily for 60 days => 1800% ROI tarifs[40] = Tarif(40, 1600); //40.00% daily for 40 days => 1600% ROI dev = payable(msg.sender); } function buyToken() public payable { require(msg.value >= 3 ether, "Minimum amount to sail is 3 MATIC!"); uint256 tokens = msg.value.mul(BUYRATE); transferTokens(address(this), msg.sender, tokens); devSupport(msg.value,20); Player storage player = players[msg.sender]; if(player.fleet > 0) { player.total_buy_bnb += msg.value; player.total_buy_token += tokens; fleet_ships[player.fleet-1] += SafeMath.div(msg.value, 3 ether); fleet_ratededuct[player.fleet-1] += SafeMath.div(msg.value, 50 ether); commissionPayouts(msg.sender, msg.value); } buys_token += tokens; buys_bnb += msg.value; } function sellToken(uint256 amount) external { transferTokens(msg.sender, address(this), amount); Player storage player = players[msg.sender]; uint256 bnb; if(player.fleet > 0) { bnb = amount.div(fleet_sellRates[player.fleet-1] - fleet_ratededuct[player.fleet-1]); player.total_sell_bnb += bnb; player.total_sell_token += amount; fleet_shipdeduct[player.fleet-1] += SafeMath.div(bnb, 3 ether); fleet_sellRates[player.fleet-1] += SafeMath.div(bnb, 25 ether); }else{ bnb = amount.div(SELLRATE); } payable(msg.sender).transfer(bnb); sells_token += amount; sells_bnb += bnb; withdrawn += bnb; } function signUp(address referral, uint8 fleet, uint8 quick) public payable { require(msg.value >= 3 ether, "Minimum amount to sail is 3 MATIC!"); Player storage player = players[msg.sender]; require(player.fleet == 0, "Already a navy!"); player.fleet = fleet; setUpline(msg.sender, referral, fleet); uint256 tokens = msg.value.mul(BUYRATE); if(quick > 0) { investToken(msg.sender, msg.value, tokens,100); }else{ // hold the tokens transferTokens(address(this), msg.sender, tokens); } fleet_ships[fleet-1] += SafeMath.div(msg.value, 3 ether); fleet_ratededuct[fleet-1] += SafeMath.div(msg.value, 50 ether); devSupport(msg.value,10); player.total_buy_bnb += msg.value; player.total_buy_token += tokens; buys_token += tokens; buys_bnb += msg.value; commissionPayouts(msg.sender, msg.value); } function quickInvest() public payable { require(msg.value >= 3 ether, "Minimum amount to sail is 3 MATIC!"); Player storage player = players[msg.sender]; uint256 tokens = msg.value.mul(BUYRATE); investToken(msg.sender, msg.value, tokens,100); fleet_ships[player.fleet-1] += SafeMath.div(msg.value, 3 ether); fleet_ratededuct[player.fleet-1] += SafeMath.div(msg.value, 50 ether); devSupport(msg.value,10); player.total_buy_bnb += msg.value; player.total_buy_token += tokens; buys_token += tokens; buys_bnb += msg.value; commissionPayouts(msg.sender, msg.value); } function upgradeFleet(uint8 sector, uint256 tokens) external { require(tokens >= 100 ether,"Too small to invest!"); Player storage player = players[msg.sender]; transferTokens(msg.sender, address(this), tokens); uint256 bnb = tokens.div(BUYRATE); uint256 tarif = 100; if(sector==3) { //more aircrafts tarif = 40; fleet_aircrafts[player.fleet-1] += SafeMath.div(bnb, 1 ether); }else if(sector==2) { //upgrade armament tarif = 60; fleet_ships[player.fleet-1] += SafeMath.div(bnb, 2 ether); }else{ fleet_ships[player.fleet-1] += SafeMath.div(bnb, 3 ether); } investToken(msg.sender, bnb, tokens, tarif); fleet_ratededuct[player.fleet-1] += SafeMath.div(bnb, 25 ether); } function collectDividends() external { Player storage player = players[msg.sender]; if(this.whosWinning() != player.fleet){ return; } uint256 payout = this.computePayout(msg.sender); if(payout > 0) { players[msg.sender].lastWithdrawn = uint40(block.timestamp); players[msg.sender].dividends += payout; } require(player.dividends > 0, "No Dividends Yet!"); transferTokens(address(this), msg.sender, player.dividends); player.dividends = 0; } function switchAllegiance(uint8 fleet) public payable { require(msg.value >= 5 ether, "Minimum cost to switch fleet is 5 MATIC!"); Player storage player = players[msg.sender]; require (block.timestamp >= (player.lastSwitched + DAY), "Can only switch fleet after 24 hrs since your last!"); uint256 tokens = msg.value.mul(BUYRATE); transferTokens(address(this), msg.sender, tokens); if(fleet_crews[player.fleet-1] >=1){ fleet_crews[player.fleet-1]--; } uint256 econ = SafeMath.div(SafeMath.mul(player.total_buy_bnb, 50), 100); fleet_shipdeduct[player.fleet-1] += SafeMath.div(econ, 3 ether); player.fleet = fleet; fleet_crews[player.fleet-1]++; fleet_ships[fleet-1] += (SafeMath.div(msg.value, 3 ether) + SafeMath.div(econ, 3 ether)); devSupport(msg.value,10); player.total_buy_bnb += msg.value; player.total_buy_token += tokens; buys_token += tokens; buys_bnb += msg.value; commissionPayouts(msg.sender, msg.value); player.lastSwitched = uint40(block.timestamp); } function startGame() external { Player storage player = players[msg.sender]; transferTokens(msg.sender, address(this), 30 ether); player.battles.push(Battle({ timeStart: uint40(block.timestamp), timeEnd: 0, rewards: 0, result: uint8(rand(100)), status: 0 })); } function endGame(uint256 report, uint256 score) external { Player storage player = players[msg.sender]; if(player.battles.length >= 1) { uint256 len = player.battles.length-1; if(player.battles[len].status==0 && score < 3000 ether) { require (block.timestamp >= (player.battles[len].timeStart + DAY.div(24).div(12))); player.battles[len].timeEnd = uint40(block.timestamp); player.battles[len].status = 1; if(player.battles[len].result > 55 && report>0){ player.battles[len].rewards = score; battles_rewards[player.fleet-1] += score; player.total_battle_score += score; transferTokens(address(this), msg.sender, score); } fleet_battles[player.fleet-1]++; } } } function investToken(address _addr, uint256 bnb, uint256 tokens, uint256 _tarif) private { Player storage player = players[_addr]; player.deposits.push(Deposit({ tarif: _tarif, amount: tokens, time: uint40(block.timestamp) })); player.total_invest_token += tokens; if(_tarif==100){ player.investments[0] += bnb; }else if(_tarif==60){ player.investments[1] += bnb; }else if(_tarif==40){ player.investments[2] += bnb; } invest_token += tokens; invest_bnb += bnb; } function devSupport(uint256 amount, uint256 perc) private { uint256 support = SafeMath.div(SafeMath.mul(amount, perc), 100); payable(dev).transfer(support); withdrawn += support; } function setUpline(address _addr, address _upline, uint8 fleet) private { if(players[_addr].upline == address(0) && _addr != owner()) { nextMemberNo++; fleet_crews[fleet-1]++; if(_balances[_upline] <= 0) { _upline = owner(); } players[_addr].upline = _upline; for(uint8 i = 0; i < ref_bonuses.length; i++) { players[_upline].structure[i]++; _upline = players[_upline].upline; if(_upline == address(0)) break; } } } function commissionPayouts(address _addr, uint256 _amount) private { address up = players[_addr].upline; for(uint8 i = 0; i < ref_bonuses.length; i++) { if(up == address(0)) break; uint256 bonus = _amount * ref_bonuses[i] / PERCENT_DIVIDER; payable(up).transfer(bonus); players[up].total_refbonus += bonus; ref_bonus += bonus; withdrawn += bonus; up = players[up].upline; } } function computePayout(address _addr) view external returns(uint256 value) { Player storage player = players[_addr]; for(uint256 i = 0; i < player.deposits.length; i++) { Deposit storage dep = player.deposits[i]; Tarif storage tarif = tarifs[dep.tarif]; uint256 time_end = dep.time + tarif.life_days * 86400; uint40 from; if(player.lastWithdrawn > player.lastSwitched){ from = player.lastWithdrawn > dep.time ? player.lastWithdrawn : dep.time; }else{ from = player.lastSwitched > dep.time ? player.lastSwitched : dep.time; } uint256 to = block.timestamp > time_end ? time_end : block.timestamp; if(from < to) { value += dep.amount * (to - from) * tarif.percent / tarif.life_days / 8640000; } } return value; } function memberInfo(address _addr) view external returns(uint256 for_withdraw, uint256 numDeposits, uint256 numGames, uint8 gameStatus, uint256 score, uint256[3] memory investments, uint256[5] memory structure) { Player storage player = players[_addr]; uint256 payout = this.computePayout(_addr); for(uint8 i = 0; i < ref_bonuses.length; i++) { structure[i] = player.structure[i]; } for(uint8 i = 0; i < 3; i++) { investments[i] = player.investments[i]; } uint8 status = 100; if(player.battles.length >= 1) { status = player.battles[player.battles.length-1].result; } return (payout + player.dividends, player.deposits.length, player.battles.length, status, player.total_battle_score, investments, structure); } function memberDeposit(address _addr, uint256 index) view external returns(uint40 time, uint256 amount, uint256 lifedays, uint256 percent) { Player storage player = players[_addr]; Deposit storage dep = player.deposits[index]; Tarif storage tarif = tarifs[dep.tarif]; return(dep.time, dep.amount, tarif.life_days, tarif.percent); } function memberGame(address _addr, uint256 index)view external returns(uint40 timeStart, uint40 timeEnd, uint256 rewards, uint256 result, uint8 status) { Player storage player = players[_addr]; Battle storage bat = player.battles[index]; return(bat.timeStart, bat.timeEnd, bat.rewards, bat.result, bat.status); } function transferTokens(address _from, address _to, uint256 amount) private { require(_balances[_from].sub(amount) >= 0,"Not enough tokens!"); _balances[_to] = _balances[_to].add(amount); _balances[_from] = _balances[_from].sub(amount); emit Transfer(_from, _to, amount); } function whosWinning() view external returns(uint8 winner) { uint256[2] memory percentages; uint256 mx2 = getHighest(addDeductions(fleet_ships[0], fleet_shipdeduct[0]), addDeductions(fleet_ships[1], fleet_shipdeduct[1])); percentages[0] += getPercentile(addDeductions(fleet_ships[0], fleet_shipdeduct[0]),mx2, 35); percentages[1] += getPercentile(addDeductions(fleet_ships[1], fleet_shipdeduct[1]),mx2, 35); uint256 mx4 = getHighest(fleet_aircrafts[0],fleet_aircrafts[1]); percentages[0] += getPercentile(fleet_aircrafts[0],mx4, 25); percentages[1] += getPercentile(fleet_aircrafts[1],mx4, 25); uint256 mx3 = getHighest(fleet_battles[0],fleet_battles[1]); percentages[0] += getPercentile(fleet_battles[0],mx3, 40); percentages[1] += getPercentile(fleet_battles[1],mx3, 40); if(percentages[0] >= percentages[1]){ return 1; }else { return 2; } } function getHighest(uint256 a, uint256 b) pure private returns(uint256 value) { if(a >= b){ return a; }else{ return b; } } function getPercentile(uint256 a, uint256 h, uint256 p) pure private returns(uint256 value) { if(a == 0 || h == 0) { return 0; } return ((a / h * 100) * p) / 100; } function addDeductions(uint256 a, uint256 b) pure private returns(uint256 value) { if(a - b >= 0){ return(a-b); } return 0; } function rand(uint256 max) public view returns(uint256) { uint256 seed = uint256(keccak256(abi.encodePacked( block.timestamp + block.difficulty + ((uint256(keccak256(abi.encodePacked(block.coinbase)))) / (block.timestamp)) + block.gaslimit + ((uint256(keccak256(abi.encodePacked(msg.sender)))) / (block.timestamp)) + block.number ))); return (seed - ((seed / max) * max)); } function getBalance() public view returns(uint256) { return address(this).balance; } function setDev(address newval) public onlyOwner returns (bool success) { dev = payable(newval); return true; } function min(uint256 a, uint256 b) private pure returns (uint256) { return a < b ? a : b; } function getOwner() external view returns (address) { return owner(); } function decimals() external view returns (uint8) { return _decimals; } function symbol() external view returns (string memory) { return _symbol; } function name() external view returns (string memory) { return _name; } function totalSupply() external view returns (uint256) { return _totalSupply; } function balanceOf(address account) external view returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) external returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) external view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "BEP20: decreased allowance below zero")); return true; } function burn(uint256 amount) public returns (bool) { _burn(_msgSender(), amount); return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "BEP20: transfer from the zero address"); require(recipient != address(0), "BEP20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _burn(address account, uint256 amount) internal { require(account != address(0), "BEP20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "BEP20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "BEP20: approve from the zero address"); require(spender != address(0), "BEP20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "BEP20: burn amount exceeds allowance")); } } library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
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":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":"BUYRATE","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"battles_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"buys_bnb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buys_token","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"computePayout","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"report","type":"uint256"},{"internalType":"uint256","name":"score","type":"uint256"}],"name":"endGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fleet_aircrafts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fleet_battles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fleet_crews","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fleet_ratededuct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fleet_sellRates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fleet_shipdeduct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fleet_ships","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"invest_bnb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"invest_token","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"memberDeposit","outputs":[{"internalType":"uint40","name":"time","type":"uint40"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lifedays","type":"uint256"},{"internalType":"uint256","name":"percent","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"memberGame","outputs":[{"internalType":"uint40","name":"timeStart","type":"uint40"},{"internalType":"uint40","name":"timeEnd","type":"uint40"},{"internalType":"uint256","name":"rewards","type":"uint256"},{"internalType":"uint256","name":"result","type":"uint256"},{"internalType":"uint8","name":"status","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"memberInfo","outputs":[{"internalType":"uint256","name":"for_withdraw","type":"uint256"},{"internalType":"uint256","name":"numDeposits","type":"uint256"},{"internalType":"uint256","name":"numGames","type":"uint256"},{"internalType":"uint8","name":"gameStatus","type":"uint8"},{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256[3]","name":"investments","type":"uint256[3]"},{"internalType":"uint256[5]","name":"structure","type":"uint256[5]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMemberNo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"players","outputs":[{"internalType":"address","name":"upline","type":"address"},{"internalType":"uint8","name":"fleet","type":"uint8"},{"internalType":"uint256","name":"dividends","type":"uint256"},{"internalType":"uint256","name":"total_buy_bnb","type":"uint256"},{"internalType":"uint256","name":"total_buy_token","type":"uint256"},{"internalType":"uint256","name":"total_sell_bnb","type":"uint256"},{"internalType":"uint256","name":"total_sell_token","type":"uint256"},{"internalType":"uint256","name":"total_invest_token","type":"uint256"},{"internalType":"uint256","name":"total_refbonus","type":"uint256"},{"internalType":"uint256","name":"total_battle_score","type":"uint256"},{"internalType":"uint40","name":"lastWithdrawn","type":"uint40"},{"internalType":"uint40","name":"lastSwitched","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quickInvest","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"rand","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ref_bonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sellToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sells_bnb","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sells_token","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newval","type":"address"}],"name":"setDev","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referral","type":"address"},{"internalType":"uint8","name":"fleet","type":"uint8"},{"internalType":"uint8","name":"quick","type":"uint8"}],"name":"signUp","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"startGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"fleet","type":"uint8"}],"name":"switchAllegiance","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tarifs","outputs":[{"internalType":"uint256","name":"life_days","type":"uint256"},{"internalType":"uint256","name":"percent","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"sector","type":"uint8"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"upgradeFleet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whosWinning","outputs":[{"internalType":"uint8","name":"winner","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526040518060a001604052806109c461ffff1681526020016101f461ffff16815260200161012c61ffff16815260200160c861ffff168152602001606461ffff16815250600890600562000059929190620006e9565b50604051806040016040528061138861ffff16815260200161138861ffff1681525060149060026200008d9291906200078d565b506040518060400160405280600060ff168152602001600060ff168152506016906002620000bd929190620007d8565b506040518060400160405280600060ff168152602001600060ff168152506018906002620000ed929190620007d8565b506040518060400160405280600060ff168152602001600060ff16815250601a9060026200011d929190620007d8565b506040518060400160405280600060ff168152602001600060ff16815250601c9060026200014d929190620007d8565b506040518060400160405280600060ff168152602001600060ff16815250601e9060026200017d929190620007d8565b506040518060400160405280600060ff168152602001600060ff168152506020906002620001ad929190620007d8565b50604051806040016040528061271061ffff16815260200161271061ffff168152506022906002620001e19291906200078d565b506103e8602455348015620001f557600080fd5b50600062000208620006e160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280601981526020017f53706f696c734f66576172202d20426174746c6573686970730000000000000081525060069080519060200190620002f392919062000822565b506040518060400160405280600381526020017f534f570000000000000000000000000000000000000000000000000000000000815250600590805190602001906200034192919062000822565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a6200037f919062000a5f565b64174876e80062000391919062000ab0565b600381905550600460009054906101000a900460ff1660ff16600a620003b8919062000a5f565b640ba43b7400620003ca919062000ab0565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620004ac919062000b22565b60405180910390a3600460009054906101000a900460ff1660ff16600a620004d5919062000a5f565b640ba43b7400620004e7919062000ab0565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620005c9919062000b22565b60405180910390a36040518060400160405280606481526020016109c4815250601260006064815260200190815260200160002060008201518160000155602082015181600101559050506040518060400160405280603c815260200161070881525060126000603c815260200190815260200160002060008201518160000155602082015181600101559050506040518060400160405280602881526020016106408152506012600060288152602001908152602001600020600082015181600001556020820151816001015590505033600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000ba4565b600033905090565b826005600f016010900481019282156200077a5791602002820160005b838211156200074857835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030262000706565b8015620007785782816101000a81549061ffff021916905560020160208160010104928301926001030262000748565b505b509050620007899190620008b3565b5090565b8260028101928215620007c5579160200282015b82811115620007c4578251829061ffff16905591602001919060010190620007a1565b5b509050620007d49190620008b3565b5090565b82600281019282156200080f579160200282015b828111156200080e578251829060ff16905591602001919060010190620007ec565b5b5090506200081e9190620008b3565b5090565b828054620008309062000b6e565b90600052602060002090601f016020900481019282620008545760008555620008a0565b82601f106200086f57805160ff1916838001178555620008a0565b82800160010185558215620008a0579182015b828111156200089f57825182559160200191906001019062000882565b5b509050620008af9190620008b3565b5090565b5b80821115620008ce576000816000905550600101620008b4565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200096057808604811115620009385762000937620008d2565b5b6001851615620009485780820291505b8081029050620009588562000901565b945062000918565b94509492505050565b6000826200097b576001905062000a4e565b816200098b576000905062000a4e565b8160018114620009a45760028114620009af57620009e5565b600191505062000a4e565b60ff841115620009c457620009c3620008d2565b5b8360020a915084821115620009de57620009dd620008d2565b5b5062000a4e565b5060208310610133831016604e8410600b841016171562000a1f5782820a90508381111562000a195762000a18620008d2565b5b62000a4e565b62000a2e84848460016200090e565b9250905081840481111562000a485762000a47620008d2565b5b81810290505b9392505050565b6000819050919050565b600062000a6c8262000a55565b915062000a798362000a55565b925062000aa87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000969565b905092915050565b600062000abd8262000a55565b915062000aca8362000a55565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b065762000b05620008d2565b5b828202905092915050565b62000b1c8162000a55565b82525050565b600060208201905062000b39600083018462000b11565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b8757607f821691505b6020821081141562000b9e5762000b9d62000b3f565b5b50919050565b615f878062000bb46000396000f3fe6080604052600436106103345760003560e01c80638e098215116101ab578063c28f9c19116100f7578063e2eb41ff11610095578063e4d65d561161006f578063e4d65d5614610cb4578063ed63b73614610cdf578063f2cd741514610d1c578063f2fde38b14610d4757610334565b8063e2eb41ff14610bf2578063e421e38d14610c3a578063e4318cdd14610c7757610334565b8063d477f05f116100d1578063d477f05f14610b36578063d65ab5f214610b73578063dc50240d14610b8a578063dd62ed3e14610bb557610334565b8063c28f9c1914610aa0578063c7bc2a6314610acb578063c80ec52214610b0b57610334565b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb14610a03578063b271eb4a14610a40578063b31e7dca14610a4a578063b660dde614610a7557610334565b8063a457c2d71461097f578063a4821719146109bc578063a824eff3146109c657610334565b80638e0982151461085457806391cca3db1461089257806395d89b41146108bd5780639f98985d146108e8578063a313c37114610911578063a33ddac91461095457610334565b8063458bdf201161028557806370a082311161022357806384106401116101fd57806384106401146107a55780638681801a146107e2578063893d20e8146107fe5780638da5cb5b1461082957610334565b806370a0823114610726578063715018a614610763578063748f48181461077a57610334565b80635d6d808f1161025f5780635d6d808f14610665578063626bd762146106a25780636391def5146106be5780636aee0d8b146106e957610334565b8063458bdf20146105fa57806353b343c9146106115780635ccf1ff91461063a57610334565b80632397e4d7116102f25780632c205dc5116102cc5780632c205dc514610518578063313ce56714610555578063395093511461058057806342966c68146105bd57610334565b80632397e4d71461047557806323b872dd1461049e5780632530c905146104db57610334565b8062c8b63d1461033957806306fdde0314610376578063095ea7b3146103a15780630f590507146103de57806312065fe01461041f57806318160ddd1461044a575b600080fd5b34801561034557600080fd5b50610360600480360381019061035b9190614b99565b610d70565b60405161036d9190614bd5565b60405180910390f35b34801561038257600080fd5b5061038b610d8b565b6040516103989190614c89565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190614d09565b610e1d565b6040516103d59190614d64565b60405180910390f35b3480156103ea57600080fd5b5061040560048036038101906104009190614d09565b610e3b565b604051610416959493929190614dbb565b60405180910390f35b34801561042b57600080fd5b50610434610f1e565b6040516104419190614bd5565b60405180910390f35b34801561045657600080fd5b5061045f610f26565b60405161046c9190614bd5565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190614b99565b610f30565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190614e0e565b6111cb565b6040516104d29190614d64565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190614b99565b6112a4565b60405161050f9190614bd5565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a9190614b99565b61139c565b60405161054c9190614bd5565b60405180910390f35b34801561056157600080fd5b5061056a6113b7565b6040516105779190614e61565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a29190614d09565b6113ce565b6040516105b49190614d64565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190614b99565b611481565b6040516105f19190614d64565b60405180910390f35b34801561060657600080fd5b5061060f61149d565b005b34801561061d57600080fd5b5061063860048036038101906106339190614ea8565b611739565b005b34801561064657600080fd5b5061064f6119a6565b60405161065c9190614bd5565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190614ee8565b6119ac565b6040516106999190614bd5565b60405180910390f35b6106bc60048036038101906106b79190614f15565b611c4e565b005b3480156106ca57600080fd5b506106d3611ebb565b6040516106e09190614bd5565b60405180910390f35b3480156106f557600080fd5b50610710600480360381019061070b9190614b99565b611ec1565b60405161071d9190614bd5565b60405180910390f35b34801561073257600080fd5b5061074d60048036038101906107489190614ee8565b611edc565b60405161075a9190614bd5565b60405180910390f35b34801561076f57600080fd5b50610778611f25565b005b34801561078657600080fd5b5061078f612078565b60405161079c9190614bd5565b60405180910390f35b3480156107b157600080fd5b506107cc60048036038101906107c79190614b99565b61207e565b6040516107d99190614bd5565b60405180910390f35b6107fc60048036038101906107f79190614f68565b612099565b005b34801561080a57600080fd5b50610813612433565b6040516108209190614fa4565b60405180910390f35b34801561083557600080fd5b5061083e612442565b60405161084b9190614fa4565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190614b99565b61246b565b604051610889929190614fbf565b60405180910390f35b34801561089e57600080fd5b506108a761248f565b6040516108b49190615009565b60405180910390f35b3480156108c957600080fd5b506108d26124b5565b6040516108df9190614c89565b60405180910390f35b3480156108f457600080fd5b5061090f600480360381019061090a9190615024565b612547565b005b34801561091d57600080fd5b5061093860048036038101906109339190614ee8565b61284c565b60405161094b9796959493929190615193565b60405180910390f35b34801561096057600080fd5b50610969612a8c565b6040516109769190614bd5565b60405180910390f35b34801561098b57600080fd5b506109a660048036038101906109a19190614d09565b612a92565b6040516109b39190614d64565b60405180910390f35b6109c4612b5f565b005b3480156109d257600080fd5b506109ed60048036038101906109e89190614b99565b612d6b565b6040516109fa9190614bd5565b60405180910390f35b348015610a0f57600080fd5b50610a2a6004803603810190610a259190614d09565b612d86565b604051610a379190614d64565b60405180910390f35b610a48612da4565b005b348015610a5657600080fd5b50610a5f612f94565b604051610a6c9190614bd5565b60405180910390f35b348015610a8157600080fd5b50610a8a612f9a565b604051610a979190614bd5565b60405180910390f35b348015610aac57600080fd5b50610ab5612fa0565b604051610ac29190614bd5565b60405180910390f35b348015610ad757600080fd5b50610af26004803603810190610aed9190614d09565b612fa6565b604051610b029493929190615204565b60405180910390f35b348015610b1757600080fd5b50610b2061306b565b604051610b2d9190614bd5565b60405180910390f35b348015610b4257600080fd5b50610b5d6004803603810190610b589190614ee8565b613071565b604051610b6a9190614d64565b60405180910390f35b348015610b7f57600080fd5b50610b88613152565b005b348015610b9657600080fd5b50610b9f6132c0565b604051610bac9190614e61565b60405180910390f35b348015610bc157600080fd5b50610bdc6004803603810190610bd79190615249565b613618565b604051610be99190614bd5565b60405180910390f35b348015610bfe57600080fd5b50610c196004803603810190610c149190614ee8565b61369f565b604051610c319c9b9a99989796959493929190615289565b60405180910390f35b348015610c4657600080fd5b50610c616004803603810190610c5c9190614b99565b61374e565b604051610c6e9190614bd5565b60405180910390f35b348015610c8357600080fd5b50610c9e6004803603810190610c999190614b99565b613769565b604051610cab9190614bd5565b60405180910390f35b348015610cc057600080fd5b50610cc9613784565b604051610cd69190614bd5565b60405180910390f35b348015610ceb57600080fd5b50610d066004803603810190610d019190614b99565b61378a565b604051610d139190614bd5565b60405180910390f35b348015610d2857600080fd5b50610d316137a5565b604051610d3e9190614bd5565b60405180910390f35b348015610d5357600080fd5b50610d6e6004803603810190610d699190614ee8565b6137ab565b005b601c8160028110610d8057600080fd5b016000915090505481565b606060068054610d9a90615372565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc690615372565b8015610e135780601f10610de857610100808354040283529160200191610e13565b820191906000526020600020905b815481529060010190602001808311610df657829003601f168201915b5050505050905090565b6000610e31610e2a61384c565b8484613854565b6001905092915050565b600080600080600080601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600b018881548110610e9d57610e9c6153a4565b5b906000526020600020906002020190508060010160009054906101000a900464ffffffffff168160010160059054906101000a900464ffffffffff16826000015483600101600a9054906101000a900460ff1684600101600b9054906101000a900460ff168160ff1691509650965096509650965050509295509295909350565b600047905090565b6000600354905090565b610f3b333083613a1f565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000808260000160149054906101000a900460ff1660ff16111561111c57611024602060018460000160149054906101000a900460ff16610fbf9190615402565b60ff1660028110610fd357610fd26153a4565b5b0154602260018560000160149054906101000a900460ff16610ff59190615402565b60ff1660028110611009576110086153a4565b5b01546110159190615436565b84613c4890919063ffffffff16565b90508082600401600082825461103a919061546a565b9250508190555082826005016000828254611055919061546a565b9250508190555061106e816729a2241af62c0000613c48565b601e60018460000160149054906101000a900460ff1661108e9190615402565b60ff16600281106110a2576110a16153a4565b5b0160008282546110b2919061546a565b925050819055506110cc8168015af1d78b58c40000613c48565b602260018460000160149054906101000a900460ff166110ec9190615402565b60ff1660028110611100576110ff6153a4565b5b016000828254611110919061546a565b92505081905550611134565b61113161271084613c4890919063ffffffff16565b90505b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561117a573d6000803e3d6000fd5b5082600c600082825461118d919061546a565b9250508190555080600b60008282546111a6919061546a565b9250508190555080600f60008282546111bf919061546a565b92505081905550505050565b60006111d8848484613c5e565b611299846111e461384c565b61129485604051806060016040528060288152602001615ebd60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061124a61384c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec9092919063ffffffff16565b613854565b600190509392505050565b6000804342336040516020016112ba9190615508565b6040516020818303038152906040528051906020012060001c6112dd9190615552565b4542416040516020016112f091906155ac565b6040516020818303038152906040528051906020012060001c6113139190615552565b444261131f919061546a565b611329919061546a565b611333919061546a565b61133d919061546a565b611347919061546a565b60405160200161135791906155e8565b6040516020818303038152906040528051906020012060001c905082838261137f9190615552565b6113899190615603565b816113949190615436565b915050919050565b602281600281106113ac57600080fd5b016000915090505481565b6000600460009054906101000a900460ff16905090565b60006114776113db61384c565b8461147285600260006113ec61384c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f4190919063ffffffff16565b613854565b6001905092915050565b600061149461148e61384c565b83613f57565b60019050919050565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160149054906101000a900460ff1660ff163073ffffffffffffffffffffffffffffffffffffffff1663dc50240d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190615672565b60ff16146115815750611737565b60003073ffffffffffffffffffffffffffffffffffffffff16635d6d808f336040518263ffffffff1660e01b81526004016115bc9190614fa4565b60206040518083038186803b1580156115d457600080fd5b505afa1580156115e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160c91906156b4565b905060008111156116d45742601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060090160006101000a81548164ffffffffff021916908364ffffffffff16021790555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546116cc919061546a565b925050819055505b600082600101541161171b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117129061572d565b60405180910390fd5b61172a30338460010154613a1f565b6000826001018190555050505b565b68056bc75e2d63100000811015611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90615799565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506117d3333084613a1f565b60006117ea60245484613c4890919063ffffffff16565b905060006064905060038560ff161415611864576028905061181482670de0b6b3a7640000613c48565b601a60018560000160149054906101000a900460ff166118349190615402565b60ff1660028110611848576118476153a4565b5b016000828254611858919061546a565b92505081905550611935565b60028560ff1614156118d657603c905061188682671bc16d674ec80000613c48565b601860018560000160149054906101000a900460ff166118a69190615402565b60ff16600281106118ba576118b96153a4565b5b0160008282546118ca919061546a565b92505081905550611934565b6118e8826729a2241af62c0000613c48565b601860018560000160149054906101000a900460ff166119089190615402565b60ff166002811061191c5761191b6153a4565b5b01600082825461192c919061546a565b925050819055505b5b611941338386846140fb565b6119548268015af1d78b58c40000613c48565b602060018560000160149054906101000a900460ff166119749190615402565b60ff1660028110611988576119876153a4565b5b016000828254611998919061546a565b925050819055505050505050565b60095481565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060005b81600a0180549050811015611c4757600082600a018281548110611a1a57611a196153a4565b5b906000526020600020906003020190506000601260008360000154815260200190815260200160002090506000620151808260000154611a5a9190615603565b8360020160009054906101000a900464ffffffffff1664ffffffffff16611a81919061546a565b905060008560090160059054906101000a900464ffffffffff1664ffffffffff168660090160009054906101000a900464ffffffffff1664ffffffffff161115611b3d578360020160009054906101000a900464ffffffffff1664ffffffffff168660090160009054906101000a900464ffffffffff1664ffffffffff1611611b1f578360020160009054906101000a900464ffffffffff16611b36565b8560090160009054906101000a900464ffffffffff165b9050611bb1565b8360020160009054906101000a900464ffffffffff1664ffffffffff168660090160059054906101000a900464ffffffffff1664ffffffffff1611611b97578360020160009054906101000a900464ffffffffff16611bae565b8560090160059054906101000a900464ffffffffff165b90505b6000824211611bc05742611bc2565b825b9050808264ffffffffff161015611c2f576283d600846000015485600101548464ffffffffff1684611bf49190615436565b8860010154611c039190615603565b611c0d9190615603565b611c179190615552565b611c219190615552565b88611c2c919061546a565b97505b50505050508080611c3f906157b9565b9150506119f3565b5050919050565b6729a2241af62c0000341015611c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9090615874565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000160149054906101000a900460ff1660ff1614611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a906158e0565b60405180910390fd5b828160000160146101000a81548160ff021916908360ff160217905550611d5b3385856142d5565b6000611d726024543461460690919063ffffffff16565b905060008360ff161115611d9257611d8d33348360646140fb565b611d9e565b611d9d303383613a1f565b5b611db0346729a2241af62c0000613c48565b6018600186611dbf9190615402565b60ff1660028110611dd357611dd26153a4565b5b016000828254611de3919061546a565b92505081905550611dfd346802b5e3af16b1880000613c48565b6020600186611e0c9190615402565b60ff1660028110611e2057611e1f6153a4565b5b016000828254611e30919061546a565b92505081905550611e4234600a61461c565b34826002016000828254611e56919061546a565b9250508190555080826003016000828254611e71919061546a565b9250508190555080600a6000828254611e8a919061546a565b925050819055503460096000828254611ea3919061546a565b92505081905550611eb433346146bb565b5050505050565b60135481565b601a8160028110611ed157600080fd5b016000915090505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611f2d61384c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb19061594c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b6018816002811061208e57600080fd5b016000915090505481565b674563918244f400003410156120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120db906159de565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050620151808160090160059054906101000a900464ffffffffff1664ffffffffff16612152919061546a565b421015612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b90615a70565b60405180910390fd5b60006121ab6024543461460690919063ffffffff16565b90506121b8303383613a1f565b6001601460018460000160149054906101000a900460ff166121da9190615402565b60ff16600281106121ee576121ed6153a4565b5b01541061224157601460018360000160149054906101000a900460ff166122159190615402565b60ff1660028110612229576122286153a4565b5b01600081548092919061223b90615a90565b91905055505b600061225c61225584600201546032614606565b6064613c48565b9050612270816729a2241af62c0000613c48565b601e60018560000160149054906101000a900460ff166122909190615402565b60ff16600281106122a4576122a36153a4565b5b0160008282546122b4919061546a565b92505081905550838360000160146101000a81548160ff021916908360ff160217905550601460018460000160149054906101000a900460ff166122f89190615402565b60ff166002811061230c5761230b6153a4565b5b01600081548092919061231e906157b9565b9190505550612335816729a2241af62c0000613c48565b612347346729a2241af62c0000613c48565b612351919061546a565b60186001866123609190615402565b60ff1660028110612374576123736153a4565b5b016000828254612384919061546a565b9250508190555061239634600a61461c565b348360020160008282546123aa919061546a565b92505081905550818360030160008282546123c5919061546a565b9250508190555081600a60008282546123de919061546a565b9250508190555034600960008282546123f7919061546a565b9250508190555061240833346146bb565b428360090160056101000a81548164ffffffffff021916908364ffffffffff16021790555050505050565b600061243d612442565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60126020528060005260406000206000915090508060000154908060010154905082565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600580546124c490615372565b80601f01602080910402602001604051908101604052809291908181526020018280546124f090615372565b801561253d5780601f106125125761010080835404028352916020019161253d565b820191906000526020600020905b81548152906001019060200180831161252057829003601f168201915b5050505050905090565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600181600b018054905010612847576000600182600b01805490506125af9190615436565b9050600082600b0182815481106125c9576125c86153a4565b5b9060005260206000209060020201600101600b9054906101000a900460ff1660ff16148015612600575068a2a15d09519be0000083105b156128455761262f600c612621601862015180613c4890919063ffffffff16565b613c4890919063ffffffff16565b82600b018281548110612645576126446153a4565b5b906000526020600020906002020160010160009054906101000a900464ffffffffff1664ffffffffff16612679919061546a565b42101561268557600080fd5b4282600b01828154811061269c5761269b6153a4565b5b906000526020600020906002020160010160056101000a81548164ffffffffff021916908364ffffffffff160217905550600182600b0182815481106126e5576126e46153a4565b5b9060005260206000209060020201600101600b6101000a81548160ff021916908360ff160217905550603782600b018281548110612726576127256153a4565b5b9060005260206000209060020201600101600a9054906101000a900460ff1660ff161180156127555750600084115b156127f9578282600b018281548110612771576127706153a4565b5b90600052602060002090600202016000018190555082601c60018460000160149054906101000a900460ff166127a79190615402565b60ff16600281106127bb576127ba6153a4565b5b0160008282546127cb919061546a565b92505081905550828260080160008282546127e6919061546a565b925050819055506127f8303385613a1f565b5b601660018360000160149054906101000a900460ff166128199190615402565b60ff166002811061282d5761282c6153a4565b5b01600081548092919061283f906157b9565b91905055505b505b505050565b600080600080600061285c614af8565b612864614b1a565b6000601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060003073ffffffffffffffffffffffffffffffffffffffff16635d6d808f8b6040518263ffffffff1660e01b81526004016128e29190614fa4565b60206040518083038186803b1580156128fa57600080fd5b505afa15801561290e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293291906156b4565b905060005b60058160ff1610156129905782600c018160ff166005811061295c5761295b6153a4565b5b0154848260ff1660058110612974576129736153a4565b5b602002018181525050808061298890615aba565b915050612937565b5060005b60038160ff1610156129ed57826011018160ff16600381106129b9576129b86153a4565b5b0154858260ff16600381106129d1576129d06153a4565b5b60200201818152505080806129e590615aba565b915050612994565b50600060649050600183600b018054905010612a4e5782600b01600184600b0180549050612a1b9190615436565b81548110612a2c57612a2b6153a4565b5b9060005260206000209060020201600101600a9054906101000a900460ff1690505b826001015482612a5e919061546a565b83600a018054905084600b018054905083866008015499509950995099509950505050919395979092949650565b600b5481565b6000612b55612a9f61384c565b84612b5085604051806060016040528060258152602001615f0b6025913960026000612ac961384c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec9092919063ffffffff16565b613854565b6001905092915050565b6729a2241af62c0000341015612baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba190615874565b60405180910390fd5b6000612bc16024543461460690919063ffffffff16565b9050612bce303383613a1f565b612bd934601461461c565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000160149054906101000a900460ff1660ff161115612d355734816002016000828254612c4d919061546a565b9250508190555081816003016000828254612c68919061546a565b92505081905550612c81346729a2241af62c0000613c48565b601860018360000160149054906101000a900460ff16612ca19190615402565b60ff1660028110612cb557612cb46153a4565b5b016000828254612cc5919061546a565b92505081905550612cdf346802b5e3af16b1880000613c48565b602060018360000160149054906101000a900460ff16612cff9190615402565b60ff1660028110612d1357612d126153a4565b5b016000828254612d23919061546a565b92505081905550612d3433346146bb565b5b81600a6000828254612d47919061546a565b925050819055503460096000828254612d60919061546a565b925050819055505050565b60168160028110612d7b57600080fd5b016000915090505481565b6000612d9a612d9361384c565b8484613c5e565b6001905092915050565b6729a2241af62c0000341015612def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de690615874565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000612e496024543461460690919063ffffffff16565b9050612e5833348360646140fb565b612e6a346729a2241af62c0000613c48565b601860018460000160149054906101000a900460ff16612e8a9190615402565b60ff1660028110612e9e57612e9d6153a4565b5b016000828254612eae919061546a565b92505081905550612ec8346802b5e3af16b1880000613c48565b602060018460000160149054906101000a900460ff16612ee89190615402565b60ff1660028110612efc57612efb6153a4565b5b016000828254612f0c919061546a565b92505081905550612f1e34600a61461c565b34826002016000828254612f32919061546a565b9250508190555080826003016000828254612f4d919061546a565b9250508190555080600a6000828254612f66919061546a565b925050819055503460096000828254612f7f919061546a565b92505081905550612f9033346146bb565b5050565b600d5481565b600a5481565b60105481565b6000806000806000601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600a018781548110613007576130066153a4565b5b906000526020600020906003020190506000601260008360000154815260200190815260200160002090508160020160009054906101000a900464ffffffffff16826001015482600001548360010154965096509650965050505092959194509250565b600f5481565b600061307b61384c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ff9061594c565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506131a933306801a055690d9db80000613a1f565b80600b016040518060a00160405280600081526020014264ffffffffff168152602001600064ffffffffff1681526020016131e460646112a4565b60ff168152602001600060ff1681525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a81548164ffffffffff021916908364ffffffffff16021790555060408201518160010160056101000a81548164ffffffffff021916908364ffffffffff160217905550606082015181600101600a6101000a81548160ff021916908360ff160217905550608082015181600101600b6101000a81548160ff021916908360ff160217905550505050565b60006132ca614b3c565b600061334061330560186000600281106132e7576132e66153a4565b5b0154601e6000600281106132fe576132fd6153a4565b5b0154614911565b61333b601860016002811061331d5761331c6153a4565b5b0154601e600160028110613334576133336153a4565b5b0154614911565b614943565b905061338361337b601860006002811061335d5761335c6153a4565b5b0154601e600060028110613374576133736153a4565b5b0154614911565b82602361495e565b82600060028110613397576133966153a4565b5b602002018181516133a8919061546a565b915081815250506133f06133e860186001600281106133ca576133c96153a4565b5b0154601e6001600281106133e1576133e06153a4565b5b0154614911565b82602361495e565b82600160028110613404576134036153a4565b5b60200201818151613415919061546a565b915081815250506000613454601a600060028110613436576134356153a4565b5b0154601a60016002811061344d5761344c6153a4565b5b0154614943565b9050613478601a60006002811061346e5761346d6153a4565b5b015482601961495e565b8360006002811061348c5761348b6153a4565b5b6020020181815161349d919061546a565b915081815250506134c6601a6001600281106134bc576134bb6153a4565b5b015482601961495e565b836001600281106134da576134d96153a4565b5b602002018181516134eb919061546a565b91508181525050600061352a601660006002811061350c5761350b6153a4565b5b01546016600160028110613523576135226153a4565b5b0154614943565b905061354e6016600060028110613544576135436153a4565b5b015482602861495e565b84600060028110613562576135616153a4565b5b60200201818151613573919061546a565b9150818152505061359c6016600160028110613592576135916153a4565b5b015482602861495e565b846001600281106135b0576135af6153a4565b5b602002018181516135c1919061546a565b91508181525050836001600281106135dc576135db6153a4565b5b6020020151846000600281106135f5576135f46153a4565b5b60200201511061360c576001945050505050613615565b60029450505050505b90565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60116020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060080154908060090160009054906101000a900464ffffffffff16908060090160059054906101000a900464ffffffffff1690508c565b601e816002811061375e57600080fd5b016000915090505481565b6020816002811061377957600080fd5b016000915090505481565b60245481565b6014816002811061379a57600080fd5b016000915090505481565b600e5481565b6137b361384c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138379061594c565b60405180910390fd5b613849816149b5565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156138c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138bb90615b56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161392b90615be8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613a129190614bd5565b60405180910390a3505050565b6000613a7382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ae290919063ffffffff16565b1015613ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aab90615c54565b60405180910390fd5b613b0681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f4190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b9b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ae290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c3b9190614bd5565b60405180910390a3505050565b60008183613c569190615552565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cc590615ce6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d3590615d78565b60405180910390fd5b613daa81604051806060016040528060268152602001615ee560269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e3f81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f4190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613edf9190614bd5565b60405180910390a3505050565b6000838311158290613f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f2b9190614c89565b60405180910390fd5b5082840390509392505050565b60008183613f4f919061546a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fbe90615e0a565b60405180910390fd5b61403381604051806060016040528060228152602001615f3060229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061408b81600354614ae290919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140ef9190614bd5565b60405180910390a35050565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600a0160405180606001604052808481526020018581526020014264ffffffffff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548164ffffffffff021916908364ffffffffff1602179055505050828160060160008282546141e0919061546a565b925050819055506064821415614224578381601101600060038110614208576142076153a4565b5b016000828254614218919061546a565b9250508190555061429c565b603c821415614261578381601101600160038110614245576142446153a4565b5b016000828254614255919061546a565b9250508190555061429b565b602882141561429a578381601101600260038110614282576142816153a4565b5b016000828254614292919061546a565b925050819055505b5b5b82600e60008282546142ae919061546a565b9250508190555083600d60008282546142c7919061546a565b925050819055505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156143a65750614376612442565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561460157601360008154809291906143be906157b9565b919050555060146001826143d29190615402565b60ff16600281106143e6576143e56153a4565b5b0160008154809291906143f8906157b9565b91905055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161444f5761444c612442565b91505b81601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b60058160ff1610156145ff57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c018160ff1660058110614536576145356153a4565b5b016000815480929190614548906157b9565b9190505550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156145ec576145ff565b80806145f790615aba565b9150506144d3565b505b505050565b600081836146149190615603565b905092915050565b600061463261462b8484614606565b6064613c48565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561469c573d6000803e3d6000fd5b5080600f60008282546146af919061546a565b92505081905550505050565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b60058160ff16101561490b57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561476b5761490b565b600061271061ffff1660088360ff166005811061478b5761478a6153a4565b5b601091828204019190066002029054906101000a900461ffff1661ffff16856147b49190615603565b6147be9190615552565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614806573d6000803e3d6000fd5b5080601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007016000828254614859919061546a565b925050819055508060106000828254614872919061546a565b9250508190555080600f600082825461488b919061546a565b92505081905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050808061490390615aba565b915050614725565b50505050565b60008082846149209190615436565b106149385781836149319190615436565b905061493d565b600090505b92915050565b600081831061495457829050614958565b8190505b92915050565b60008084148061496e5750600083145b1561497c57600090506149ae565b6064826064858761498d9190615552565b6149979190615603565b6149a19190615603565b6149ab9190615552565b90505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614a1c90615e9c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008183614af09190615436565b905092915050565b6040518060600160405280600390602082028036833780820191505090505090565b6040518060a00160405280600590602082028036833780820191505090505090565b6040518060400160405280600290602082028036833780820191505090505090565b600080fd5b6000819050919050565b614b7681614b63565b8114614b8157600080fd5b50565b600081359050614b9381614b6d565b92915050565b600060208284031215614baf57614bae614b5e565b5b6000614bbd84828501614b84565b91505092915050565b614bcf81614b63565b82525050565b6000602082019050614bea6000830184614bc6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614c2a578082015181840152602081019050614c0f565b83811115614c39576000848401525b50505050565b6000601f19601f8301169050919050565b6000614c5b82614bf0565b614c658185614bfb565b9350614c75818560208601614c0c565b614c7e81614c3f565b840191505092915050565b60006020820190508181036000830152614ca38184614c50565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614cd682614cab565b9050919050565b614ce681614ccb565b8114614cf157600080fd5b50565b600081359050614d0381614cdd565b92915050565b60008060408385031215614d2057614d1f614b5e565b5b6000614d2e85828601614cf4565b9250506020614d3f85828601614b84565b9150509250929050565b60008115159050919050565b614d5e81614d49565b82525050565b6000602082019050614d796000830184614d55565b92915050565b600064ffffffffff82169050919050565b614d9981614d7f565b82525050565b600060ff82169050919050565b614db581614d9f565b82525050565b600060a082019050614dd06000830188614d90565b614ddd6020830187614d90565b614dea6040830186614bc6565b614df76060830185614bc6565b614e046080830184614dac565b9695505050505050565b600080600060608486031215614e2757614e26614b5e565b5b6000614e3586828701614cf4565b9350506020614e4686828701614cf4565b9250506040614e5786828701614b84565b9150509250925092565b6000602082019050614e766000830184614dac565b92915050565b614e8581614d9f565b8114614e9057600080fd5b50565b600081359050614ea281614e7c565b92915050565b60008060408385031215614ebf57614ebe614b5e565b5b6000614ecd85828601614e93565b9250506020614ede85828601614b84565b9150509250929050565b600060208284031215614efe57614efd614b5e565b5b6000614f0c84828501614cf4565b91505092915050565b600080600060608486031215614f2e57614f2d614b5e565b5b6000614f3c86828701614cf4565b9350506020614f4d86828701614e93565b9250506040614f5e86828701614e93565b9150509250925092565b600060208284031215614f7e57614f7d614b5e565b5b6000614f8c84828501614e93565b91505092915050565b614f9e81614ccb565b82525050565b6000602082019050614fb96000830184614f95565b92915050565b6000604082019050614fd46000830185614bc6565b614fe16020830184614bc6565b9392505050565b6000614ff382614cab565b9050919050565b61500381614fe8565b82525050565b600060208201905061501e6000830184614ffa565b92915050565b6000806040838503121561503b5761503a614b5e565b5b600061504985828601614b84565b925050602061505a85828601614b84565b9150509250929050565b600060039050919050565b600081905092915050565b6000819050919050565b61508d81614b63565b82525050565b600061509f8383615084565b60208301905092915050565b6000602082019050919050565b6150c181615064565b6150cb818461506f565b92506150d68261507a565b8060005b838110156151075781516150ee8782615093565b96506150f9836150ab565b9250506001810190506150da565b505050505050565b600060059050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6151458161510f565b61514f818461511a565b925061515a82615125565b8060005b8381101561518b5781516151728782615093565b965061517d8361512f565b92505060018101905061515e565b505050505050565b60006101a0820190506151a9600083018a614bc6565b6151b66020830189614bc6565b6151c36040830188614bc6565b6151d06060830187614dac565b6151dd6080830186614bc6565b6151ea60a08301856150b8565b6151f861010083018461513c565b98975050505050505050565b60006080820190506152196000830187614d90565b6152266020830186614bc6565b6152336040830185614bc6565b6152406060830184614bc6565b95945050505050565b600080604083850312156152605761525f614b5e565b5b600061526e85828601614cf4565b925050602061527f85828601614cf4565b9150509250929050565b60006101808201905061529f600083018f614f95565b6152ac602083018e614dac565b6152b9604083018d614bc6565b6152c6606083018c614bc6565b6152d3608083018b614bc6565b6152e060a083018a614bc6565b6152ed60c0830189614bc6565b6152fa60e0830188614bc6565b615308610100830187614bc6565b615316610120830186614bc6565b615324610140830185614d90565b615332610160830184614d90565b9d9c50505050505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061538a57607f821691505b6020821081141561539e5761539d615343565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061540d82614d9f565b915061541883614d9f565b92508282101561542b5761542a6153d3565b5b828203905092915050565b600061544182614b63565b915061544c83614b63565b92508282101561545f5761545e6153d3565b5b828203905092915050565b600061547582614b63565b915061548083614b63565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156154b5576154b46153d3565b5b828201905092915050565b60008160601b9050919050565b60006154d8826154c0565b9050919050565b60006154ea826154cd565b9050919050565b6155026154fd82614ccb565b6154df565b82525050565b600061551482846154f1565b60148201915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061555d82614b63565b915061556883614b63565b92508261557857615577615523565b5b828204905092915050565b600061558e826154cd565b9050919050565b6155a66155a182614fe8565b615583565b82525050565b60006155b88284615595565b60148201915081905092915050565b6000819050919050565b6155e26155dd82614b63565b6155c7565b82525050565b60006155f482846155d1565b60208201915081905092915050565b600061560e82614b63565b915061561983614b63565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615652576156516153d3565b5b828202905092915050565b60008151905061566c81614e7c565b92915050565b60006020828403121561568857615687614b5e565b5b60006156968482850161565d565b91505092915050565b6000815190506156ae81614b6d565b92915050565b6000602082840312156156ca576156c9614b5e565b5b60006156d88482850161569f565b91505092915050565b7f4e6f204469766964656e64732059657421000000000000000000000000000000600082015250565b6000615717601183614bfb565b9150615722826156e1565b602082019050919050565b600060208201905081810360008301526157468161570a565b9050919050565b7f546f6f20736d616c6c20746f20696e7665737421000000000000000000000000600082015250565b6000615783601483614bfb565b915061578e8261574d565b602082019050919050565b600060208201905081810360008301526157b281615776565b9050919050565b60006157c482614b63565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157f7576157f66153d3565b5b600182019050919050565b7f4d696e696d756d20616d6f756e7420746f207361696c2069732033204d41544960008201527f4321000000000000000000000000000000000000000000000000000000000000602082015250565b600061585e602283614bfb565b915061586982615802565b604082019050919050565b6000602082019050818103600083015261588d81615851565b9050919050565b7f416c72656164792061206e617679210000000000000000000000000000000000600082015250565b60006158ca600f83614bfb565b91506158d582615894565b602082019050919050565b600060208201905081810360008301526158f9816158bd565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000615936602083614bfb565b915061594182615900565b602082019050919050565b6000602082019050818103600083015261596581615929565b9050919050565b7f4d696e696d756d20636f737420746f2073776974636820666c6565742069732060008201527f35204d4154494321000000000000000000000000000000000000000000000000602082015250565b60006159c8602883614bfb565b91506159d38261596c565b604082019050919050565b600060208201905081810360008301526159f7816159bb565b9050919050565b7f43616e206f6e6c792073776974636820666c656574206166746572203234206860008201527f72732073696e636520796f7572206c6173742100000000000000000000000000602082015250565b6000615a5a603383614bfb565b9150615a65826159fe565b604082019050919050565b60006020820190508181036000830152615a8981615a4d565b9050919050565b6000615a9b82614b63565b91506000821415615aaf57615aae6153d3565b5b600182039050919050565b6000615ac582614d9f565b915060ff821415615ad957615ad86153d3565b5b600182019050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615b40602483614bfb565b9150615b4b82615ae4565b604082019050919050565b60006020820190508181036000830152615b6f81615b33565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000615bd2602283614bfb565b9150615bdd82615b76565b604082019050919050565b60006020820190508181036000830152615c0181615bc5565b9050919050565b7f4e6f7420656e6f75676820746f6b656e73210000000000000000000000000000600082015250565b6000615c3e601283614bfb565b9150615c4982615c08565b602082019050919050565b60006020820190508181036000830152615c6d81615c31565b9050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000615cd0602583614bfb565b9150615cdb82615c74565b604082019050919050565b60006020820190508181036000830152615cff81615cc3565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000615d62602383614bfb565b9150615d6d82615d06565b604082019050919050565b60006020820190508181036000830152615d9181615d55565b9050919050565b7f42455032303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000615df4602183614bfb565b9150615dff82615d98565b604082019050919050565b60006020820190508181036000830152615e2381615de7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615e86602683614bfb565b9150615e9182615e2a565b604082019050919050565b60006020820190508181036000830152615eb581615e79565b905091905056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e20616d6f756e7420657863656564732062616c616e6365a26469706673582212207bcf342bdba4d5f101687e078d6ca6064e90c8f50741a93d593b073bf811ec6f64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106103345760003560e01c80638e098215116101ab578063c28f9c19116100f7578063e2eb41ff11610095578063e4d65d561161006f578063e4d65d5614610cb4578063ed63b73614610cdf578063f2cd741514610d1c578063f2fde38b14610d4757610334565b8063e2eb41ff14610bf2578063e421e38d14610c3a578063e4318cdd14610c7757610334565b8063d477f05f116100d1578063d477f05f14610b36578063d65ab5f214610b73578063dc50240d14610b8a578063dd62ed3e14610bb557610334565b8063c28f9c1914610aa0578063c7bc2a6314610acb578063c80ec52214610b0b57610334565b8063a457c2d711610164578063a9059cbb1161013e578063a9059cbb14610a03578063b271eb4a14610a40578063b31e7dca14610a4a578063b660dde614610a7557610334565b8063a457c2d71461097f578063a4821719146109bc578063a824eff3146109c657610334565b80638e0982151461085457806391cca3db1461089257806395d89b41146108bd5780639f98985d146108e8578063a313c37114610911578063a33ddac91461095457610334565b8063458bdf201161028557806370a082311161022357806384106401116101fd57806384106401146107a55780638681801a146107e2578063893d20e8146107fe5780638da5cb5b1461082957610334565b806370a0823114610726578063715018a614610763578063748f48181461077a57610334565b80635d6d808f1161025f5780635d6d808f14610665578063626bd762146106a25780636391def5146106be5780636aee0d8b146106e957610334565b8063458bdf20146105fa57806353b343c9146106115780635ccf1ff91461063a57610334565b80632397e4d7116102f25780632c205dc5116102cc5780632c205dc514610518578063313ce56714610555578063395093511461058057806342966c68146105bd57610334565b80632397e4d71461047557806323b872dd1461049e5780632530c905146104db57610334565b8062c8b63d1461033957806306fdde0314610376578063095ea7b3146103a15780630f590507146103de57806312065fe01461041f57806318160ddd1461044a575b600080fd5b34801561034557600080fd5b50610360600480360381019061035b9190614b99565b610d70565b60405161036d9190614bd5565b60405180910390f35b34801561038257600080fd5b5061038b610d8b565b6040516103989190614c89565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190614d09565b610e1d565b6040516103d59190614d64565b60405180910390f35b3480156103ea57600080fd5b5061040560048036038101906104009190614d09565b610e3b565b604051610416959493929190614dbb565b60405180910390f35b34801561042b57600080fd5b50610434610f1e565b6040516104419190614bd5565b60405180910390f35b34801561045657600080fd5b5061045f610f26565b60405161046c9190614bd5565b60405180910390f35b34801561048157600080fd5b5061049c60048036038101906104979190614b99565b610f30565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190614e0e565b6111cb565b6040516104d29190614d64565b60405180910390f35b3480156104e757600080fd5b5061050260048036038101906104fd9190614b99565b6112a4565b60405161050f9190614bd5565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a9190614b99565b61139c565b60405161054c9190614bd5565b60405180910390f35b34801561056157600080fd5b5061056a6113b7565b6040516105779190614e61565b60405180910390f35b34801561058c57600080fd5b506105a760048036038101906105a29190614d09565b6113ce565b6040516105b49190614d64565b60405180910390f35b3480156105c957600080fd5b506105e460048036038101906105df9190614b99565b611481565b6040516105f19190614d64565b60405180910390f35b34801561060657600080fd5b5061060f61149d565b005b34801561061d57600080fd5b5061063860048036038101906106339190614ea8565b611739565b005b34801561064657600080fd5b5061064f6119a6565b60405161065c9190614bd5565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190614ee8565b6119ac565b6040516106999190614bd5565b60405180910390f35b6106bc60048036038101906106b79190614f15565b611c4e565b005b3480156106ca57600080fd5b506106d3611ebb565b6040516106e09190614bd5565b60405180910390f35b3480156106f557600080fd5b50610710600480360381019061070b9190614b99565b611ec1565b60405161071d9190614bd5565b60405180910390f35b34801561073257600080fd5b5061074d60048036038101906107489190614ee8565b611edc565b60405161075a9190614bd5565b60405180910390f35b34801561076f57600080fd5b50610778611f25565b005b34801561078657600080fd5b5061078f612078565b60405161079c9190614bd5565b60405180910390f35b3480156107b157600080fd5b506107cc60048036038101906107c79190614b99565b61207e565b6040516107d99190614bd5565b60405180910390f35b6107fc60048036038101906107f79190614f68565b612099565b005b34801561080a57600080fd5b50610813612433565b6040516108209190614fa4565b60405180910390f35b34801561083557600080fd5b5061083e612442565b60405161084b9190614fa4565b60405180910390f35b34801561086057600080fd5b5061087b60048036038101906108769190614b99565b61246b565b604051610889929190614fbf565b60405180910390f35b34801561089e57600080fd5b506108a761248f565b6040516108b49190615009565b60405180910390f35b3480156108c957600080fd5b506108d26124b5565b6040516108df9190614c89565b60405180910390f35b3480156108f457600080fd5b5061090f600480360381019061090a9190615024565b612547565b005b34801561091d57600080fd5b5061093860048036038101906109339190614ee8565b61284c565b60405161094b9796959493929190615193565b60405180910390f35b34801561096057600080fd5b50610969612a8c565b6040516109769190614bd5565b60405180910390f35b34801561098b57600080fd5b506109a660048036038101906109a19190614d09565b612a92565b6040516109b39190614d64565b60405180910390f35b6109c4612b5f565b005b3480156109d257600080fd5b506109ed60048036038101906109e89190614b99565b612d6b565b6040516109fa9190614bd5565b60405180910390f35b348015610a0f57600080fd5b50610a2a6004803603810190610a259190614d09565b612d86565b604051610a379190614d64565b60405180910390f35b610a48612da4565b005b348015610a5657600080fd5b50610a5f612f94565b604051610a6c9190614bd5565b60405180910390f35b348015610a8157600080fd5b50610a8a612f9a565b604051610a979190614bd5565b60405180910390f35b348015610aac57600080fd5b50610ab5612fa0565b604051610ac29190614bd5565b60405180910390f35b348015610ad757600080fd5b50610af26004803603810190610aed9190614d09565b612fa6565b604051610b029493929190615204565b60405180910390f35b348015610b1757600080fd5b50610b2061306b565b604051610b2d9190614bd5565b60405180910390f35b348015610b4257600080fd5b50610b5d6004803603810190610b589190614ee8565b613071565b604051610b6a9190614d64565b60405180910390f35b348015610b7f57600080fd5b50610b88613152565b005b348015610b9657600080fd5b50610b9f6132c0565b604051610bac9190614e61565b60405180910390f35b348015610bc157600080fd5b50610bdc6004803603810190610bd79190615249565b613618565b604051610be99190614bd5565b60405180910390f35b348015610bfe57600080fd5b50610c196004803603810190610c149190614ee8565b61369f565b604051610c319c9b9a99989796959493929190615289565b60405180910390f35b348015610c4657600080fd5b50610c616004803603810190610c5c9190614b99565b61374e565b604051610c6e9190614bd5565b60405180910390f35b348015610c8357600080fd5b50610c9e6004803603810190610c999190614b99565b613769565b604051610cab9190614bd5565b60405180910390f35b348015610cc057600080fd5b50610cc9613784565b604051610cd69190614bd5565b60405180910390f35b348015610ceb57600080fd5b50610d066004803603810190610d019190614b99565b61378a565b604051610d139190614bd5565b60405180910390f35b348015610d2857600080fd5b50610d316137a5565b604051610d3e9190614bd5565b60405180910390f35b348015610d5357600080fd5b50610d6e6004803603810190610d699190614ee8565b6137ab565b005b601c8160028110610d8057600080fd5b016000915090505481565b606060068054610d9a90615372565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc690615372565b8015610e135780601f10610de857610100808354040283529160200191610e13565b820191906000526020600020905b815481529060010190602001808311610df657829003601f168201915b5050505050905090565b6000610e31610e2a61384c565b8484613854565b6001905092915050565b600080600080600080601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600b018881548110610e9d57610e9c6153a4565b5b906000526020600020906002020190508060010160009054906101000a900464ffffffffff168160010160059054906101000a900464ffffffffff16826000015483600101600a9054906101000a900460ff1684600101600b9054906101000a900460ff168160ff1691509650965096509650965050509295509295909350565b600047905090565b6000600354905090565b610f3b333083613a1f565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000808260000160149054906101000a900460ff1660ff16111561111c57611024602060018460000160149054906101000a900460ff16610fbf9190615402565b60ff1660028110610fd357610fd26153a4565b5b0154602260018560000160149054906101000a900460ff16610ff59190615402565b60ff1660028110611009576110086153a4565b5b01546110159190615436565b84613c4890919063ffffffff16565b90508082600401600082825461103a919061546a565b9250508190555082826005016000828254611055919061546a565b9250508190555061106e816729a2241af62c0000613c48565b601e60018460000160149054906101000a900460ff1661108e9190615402565b60ff16600281106110a2576110a16153a4565b5b0160008282546110b2919061546a565b925050819055506110cc8168015af1d78b58c40000613c48565b602260018460000160149054906101000a900460ff166110ec9190615402565b60ff1660028110611100576110ff6153a4565b5b016000828254611110919061546a565b92505081905550611134565b61113161271084613c4890919063ffffffff16565b90505b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561117a573d6000803e3d6000fd5b5082600c600082825461118d919061546a565b9250508190555080600b60008282546111a6919061546a565b9250508190555080600f60008282546111bf919061546a565b92505081905550505050565b60006111d8848484613c5e565b611299846111e461384c565b61129485604051806060016040528060288152602001615ebd60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061124a61384c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec9092919063ffffffff16565b613854565b600190509392505050565b6000804342336040516020016112ba9190615508565b6040516020818303038152906040528051906020012060001c6112dd9190615552565b4542416040516020016112f091906155ac565b6040516020818303038152906040528051906020012060001c6113139190615552565b444261131f919061546a565b611329919061546a565b611333919061546a565b61133d919061546a565b611347919061546a565b60405160200161135791906155e8565b6040516020818303038152906040528051906020012060001c905082838261137f9190615552565b6113899190615603565b816113949190615436565b915050919050565b602281600281106113ac57600080fd5b016000915090505481565b6000600460009054906101000a900460ff16905090565b60006114776113db61384c565b8461147285600260006113ec61384c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f4190919063ffffffff16565b613854565b6001905092915050565b600061149461148e61384c565b83613f57565b60019050919050565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160149054906101000a900460ff1660ff163073ffffffffffffffffffffffffffffffffffffffff1663dc50240d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190615672565b60ff16146115815750611737565b60003073ffffffffffffffffffffffffffffffffffffffff16635d6d808f336040518263ffffffff1660e01b81526004016115bc9190614fa4565b60206040518083038186803b1580156115d457600080fd5b505afa1580156115e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160c91906156b4565b905060008111156116d45742601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060090160006101000a81548164ffffffffff021916908364ffffffffff16021790555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282546116cc919061546a565b925050819055505b600082600101541161171b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117129061572d565b60405180910390fd5b61172a30338460010154613a1f565b6000826001018190555050505b565b68056bc75e2d63100000811015611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90615799565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506117d3333084613a1f565b60006117ea60245484613c4890919063ffffffff16565b905060006064905060038560ff161415611864576028905061181482670de0b6b3a7640000613c48565b601a60018560000160149054906101000a900460ff166118349190615402565b60ff1660028110611848576118476153a4565b5b016000828254611858919061546a565b92505081905550611935565b60028560ff1614156118d657603c905061188682671bc16d674ec80000613c48565b601860018560000160149054906101000a900460ff166118a69190615402565b60ff16600281106118ba576118b96153a4565b5b0160008282546118ca919061546a565b92505081905550611934565b6118e8826729a2241af62c0000613c48565b601860018560000160149054906101000a900460ff166119089190615402565b60ff166002811061191c5761191b6153a4565b5b01600082825461192c919061546a565b925050819055505b5b611941338386846140fb565b6119548268015af1d78b58c40000613c48565b602060018560000160149054906101000a900460ff166119749190615402565b60ff1660028110611988576119876153a4565b5b016000828254611998919061546a565b925050819055505050505050565b60095481565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060005b81600a0180549050811015611c4757600082600a018281548110611a1a57611a196153a4565b5b906000526020600020906003020190506000601260008360000154815260200190815260200160002090506000620151808260000154611a5a9190615603565b8360020160009054906101000a900464ffffffffff1664ffffffffff16611a81919061546a565b905060008560090160059054906101000a900464ffffffffff1664ffffffffff168660090160009054906101000a900464ffffffffff1664ffffffffff161115611b3d578360020160009054906101000a900464ffffffffff1664ffffffffff168660090160009054906101000a900464ffffffffff1664ffffffffff1611611b1f578360020160009054906101000a900464ffffffffff16611b36565b8560090160009054906101000a900464ffffffffff165b9050611bb1565b8360020160009054906101000a900464ffffffffff1664ffffffffff168660090160059054906101000a900464ffffffffff1664ffffffffff1611611b97578360020160009054906101000a900464ffffffffff16611bae565b8560090160059054906101000a900464ffffffffff165b90505b6000824211611bc05742611bc2565b825b9050808264ffffffffff161015611c2f576283d600846000015485600101548464ffffffffff1684611bf49190615436565b8860010154611c039190615603565b611c0d9190615603565b611c179190615552565b611c219190615552565b88611c2c919061546a565b97505b50505050508080611c3f906157b9565b9150506119f3565b5050919050565b6729a2241af62c0000341015611c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9090615874565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000160149054906101000a900460ff1660ff1614611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a906158e0565b60405180910390fd5b828160000160146101000a81548160ff021916908360ff160217905550611d5b3385856142d5565b6000611d726024543461460690919063ffffffff16565b905060008360ff161115611d9257611d8d33348360646140fb565b611d9e565b611d9d303383613a1f565b5b611db0346729a2241af62c0000613c48565b6018600186611dbf9190615402565b60ff1660028110611dd357611dd26153a4565b5b016000828254611de3919061546a565b92505081905550611dfd346802b5e3af16b1880000613c48565b6020600186611e0c9190615402565b60ff1660028110611e2057611e1f6153a4565b5b016000828254611e30919061546a565b92505081905550611e4234600a61461c565b34826002016000828254611e56919061546a565b9250508190555080826003016000828254611e71919061546a565b9250508190555080600a6000828254611e8a919061546a565b925050819055503460096000828254611ea3919061546a565b92505081905550611eb433346146bb565b5050505050565b60135481565b601a8160028110611ed157600080fd5b016000915090505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611f2d61384c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb19061594c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b6018816002811061208e57600080fd5b016000915090505481565b674563918244f400003410156120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120db906159de565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050620151808160090160059054906101000a900464ffffffffff1664ffffffffff16612152919061546a565b421015612194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218b90615a70565b60405180910390fd5b60006121ab6024543461460690919063ffffffff16565b90506121b8303383613a1f565b6001601460018460000160149054906101000a900460ff166121da9190615402565b60ff16600281106121ee576121ed6153a4565b5b01541061224157601460018360000160149054906101000a900460ff166122159190615402565b60ff1660028110612229576122286153a4565b5b01600081548092919061223b90615a90565b91905055505b600061225c61225584600201546032614606565b6064613c48565b9050612270816729a2241af62c0000613c48565b601e60018560000160149054906101000a900460ff166122909190615402565b60ff16600281106122a4576122a36153a4565b5b0160008282546122b4919061546a565b92505081905550838360000160146101000a81548160ff021916908360ff160217905550601460018460000160149054906101000a900460ff166122f89190615402565b60ff166002811061230c5761230b6153a4565b5b01600081548092919061231e906157b9565b9190505550612335816729a2241af62c0000613c48565b612347346729a2241af62c0000613c48565b612351919061546a565b60186001866123609190615402565b60ff1660028110612374576123736153a4565b5b016000828254612384919061546a565b9250508190555061239634600a61461c565b348360020160008282546123aa919061546a565b92505081905550818360030160008282546123c5919061546a565b9250508190555081600a60008282546123de919061546a565b9250508190555034600960008282546123f7919061546a565b9250508190555061240833346146bb565b428360090160056101000a81548164ffffffffff021916908364ffffffffff16021790555050505050565b600061243d612442565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60126020528060005260406000206000915090508060000154908060010154905082565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600580546124c490615372565b80601f01602080910402602001604051908101604052809291908181526020018280546124f090615372565b801561253d5780601f106125125761010080835404028352916020019161253d565b820191906000526020600020905b81548152906001019060200180831161252057829003601f168201915b5050505050905090565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600181600b018054905010612847576000600182600b01805490506125af9190615436565b9050600082600b0182815481106125c9576125c86153a4565b5b9060005260206000209060020201600101600b9054906101000a900460ff1660ff16148015612600575068a2a15d09519be0000083105b156128455761262f600c612621601862015180613c4890919063ffffffff16565b613c4890919063ffffffff16565b82600b018281548110612645576126446153a4565b5b906000526020600020906002020160010160009054906101000a900464ffffffffff1664ffffffffff16612679919061546a565b42101561268557600080fd5b4282600b01828154811061269c5761269b6153a4565b5b906000526020600020906002020160010160056101000a81548164ffffffffff021916908364ffffffffff160217905550600182600b0182815481106126e5576126e46153a4565b5b9060005260206000209060020201600101600b6101000a81548160ff021916908360ff160217905550603782600b018281548110612726576127256153a4565b5b9060005260206000209060020201600101600a9054906101000a900460ff1660ff161180156127555750600084115b156127f9578282600b018281548110612771576127706153a4565b5b90600052602060002090600202016000018190555082601c60018460000160149054906101000a900460ff166127a79190615402565b60ff16600281106127bb576127ba6153a4565b5b0160008282546127cb919061546a565b92505081905550828260080160008282546127e6919061546a565b925050819055506127f8303385613a1f565b5b601660018360000160149054906101000a900460ff166128199190615402565b60ff166002811061282d5761282c6153a4565b5b01600081548092919061283f906157b9565b91905055505b505b505050565b600080600080600061285c614af8565b612864614b1a565b6000601160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060003073ffffffffffffffffffffffffffffffffffffffff16635d6d808f8b6040518263ffffffff1660e01b81526004016128e29190614fa4565b60206040518083038186803b1580156128fa57600080fd5b505afa15801561290e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293291906156b4565b905060005b60058160ff1610156129905782600c018160ff166005811061295c5761295b6153a4565b5b0154848260ff1660058110612974576129736153a4565b5b602002018181525050808061298890615aba565b915050612937565b5060005b60038160ff1610156129ed57826011018160ff16600381106129b9576129b86153a4565b5b0154858260ff16600381106129d1576129d06153a4565b5b60200201818152505080806129e590615aba565b915050612994565b50600060649050600183600b018054905010612a4e5782600b01600184600b0180549050612a1b9190615436565b81548110612a2c57612a2b6153a4565b5b9060005260206000209060020201600101600a9054906101000a900460ff1690505b826001015482612a5e919061546a565b83600a018054905084600b018054905083866008015499509950995099509950505050919395979092949650565b600b5481565b6000612b55612a9f61384c565b84612b5085604051806060016040528060258152602001615f0b6025913960026000612ac961384c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec9092919063ffffffff16565b613854565b6001905092915050565b6729a2241af62c0000341015612baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba190615874565b60405180910390fd5b6000612bc16024543461460690919063ffffffff16565b9050612bce303383613a1f565b612bd934601461461c565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160000160149054906101000a900460ff1660ff161115612d355734816002016000828254612c4d919061546a565b9250508190555081816003016000828254612c68919061546a565b92505081905550612c81346729a2241af62c0000613c48565b601860018360000160149054906101000a900460ff16612ca19190615402565b60ff1660028110612cb557612cb46153a4565b5b016000828254612cc5919061546a565b92505081905550612cdf346802b5e3af16b1880000613c48565b602060018360000160149054906101000a900460ff16612cff9190615402565b60ff1660028110612d1357612d126153a4565b5b016000828254612d23919061546a565b92505081905550612d3433346146bb565b5b81600a6000828254612d47919061546a565b925050819055503460096000828254612d60919061546a565b925050819055505050565b60168160028110612d7b57600080fd5b016000915090505481565b6000612d9a612d9361384c565b8484613c5e565b6001905092915050565b6729a2241af62c0000341015612def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612de690615874565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000612e496024543461460690919063ffffffff16565b9050612e5833348360646140fb565b612e6a346729a2241af62c0000613c48565b601860018460000160149054906101000a900460ff16612e8a9190615402565b60ff1660028110612e9e57612e9d6153a4565b5b016000828254612eae919061546a565b92505081905550612ec8346802b5e3af16b1880000613c48565b602060018460000160149054906101000a900460ff16612ee89190615402565b60ff1660028110612efc57612efb6153a4565b5b016000828254612f0c919061546a565b92505081905550612f1e34600a61461c565b34826002016000828254612f32919061546a565b9250508190555080826003016000828254612f4d919061546a565b9250508190555080600a6000828254612f66919061546a565b925050819055503460096000828254612f7f919061546a565b92505081905550612f9033346146bb565b5050565b600d5481565b600a5481565b60105481565b6000806000806000601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600a018781548110613007576130066153a4565b5b906000526020600020906003020190506000601260008360000154815260200190815260200160002090508160020160009054906101000a900464ffffffffff16826001015482600001548360010154965096509650965050505092959194509250565b600f5481565b600061307b61384c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ff9061594c565b60405180910390fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506131a933306801a055690d9db80000613a1f565b80600b016040518060a00160405280600081526020014264ffffffffff168152602001600064ffffffffff1681526020016131e460646112a4565b60ff168152602001600060ff1681525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a81548164ffffffffff021916908364ffffffffff16021790555060408201518160010160056101000a81548164ffffffffff021916908364ffffffffff160217905550606082015181600101600a6101000a81548160ff021916908360ff160217905550608082015181600101600b6101000a81548160ff021916908360ff160217905550505050565b60006132ca614b3c565b600061334061330560186000600281106132e7576132e66153a4565b5b0154601e6000600281106132fe576132fd6153a4565b5b0154614911565b61333b601860016002811061331d5761331c6153a4565b5b0154601e600160028110613334576133336153a4565b5b0154614911565b614943565b905061338361337b601860006002811061335d5761335c6153a4565b5b0154601e600060028110613374576133736153a4565b5b0154614911565b82602361495e565b82600060028110613397576133966153a4565b5b602002018181516133a8919061546a565b915081815250506133f06133e860186001600281106133ca576133c96153a4565b5b0154601e6001600281106133e1576133e06153a4565b5b0154614911565b82602361495e565b82600160028110613404576134036153a4565b5b60200201818151613415919061546a565b915081815250506000613454601a600060028110613436576134356153a4565b5b0154601a60016002811061344d5761344c6153a4565b5b0154614943565b9050613478601a60006002811061346e5761346d6153a4565b5b015482601961495e565b8360006002811061348c5761348b6153a4565b5b6020020181815161349d919061546a565b915081815250506134c6601a6001600281106134bc576134bb6153a4565b5b015482601961495e565b836001600281106134da576134d96153a4565b5b602002018181516134eb919061546a565b91508181525050600061352a601660006002811061350c5761350b6153a4565b5b01546016600160028110613523576135226153a4565b5b0154614943565b905061354e6016600060028110613544576135436153a4565b5b015482602861495e565b84600060028110613562576135616153a4565b5b60200201818151613573919061546a565b9150818152505061359c6016600160028110613592576135916153a4565b5b015482602861495e565b846001600281106135b0576135af6153a4565b5b602002018181516135c1919061546a565b91508181525050836001600281106135dc576135db6153a4565b5b6020020151846000600281106135f5576135f46153a4565b5b60200201511061360c576001945050505050613615565b60029450505050505b90565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60116020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060080154908060090160009054906101000a900464ffffffffff16908060090160059054906101000a900464ffffffffff1690508c565b601e816002811061375e57600080fd5b016000915090505481565b6020816002811061377957600080fd5b016000915090505481565b60245481565b6014816002811061379a57600080fd5b016000915090505481565b600e5481565b6137b361384c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138379061594c565b60405180910390fd5b613849816149b5565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156138c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138bb90615b56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161392b90615be8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051613a129190614bd5565b60405180910390a3505050565b6000613a7382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ae290919063ffffffff16565b1015613ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613aab90615c54565b60405180910390fd5b613b0681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f4190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b9b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ae290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613c3b9190614bd5565b60405180910390a3505050565b60008183613c569190615552565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613cc590615ce6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d3590615d78565b60405180910390fd5b613daa81604051806060016040528060268152602001615ee560269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e3f81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f4190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613edf9190614bd5565b60405180910390a3505050565b6000838311158290613f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613f2b9190614c89565b60405180910390fd5b5082840390509392505050565b60008183613f4f919061546a565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fbe90615e0a565b60405180910390fd5b61403381604051806060016040528060228152602001615f3060229139600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613eec9092919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061408b81600354614ae290919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516140ef9190614bd5565b60405180910390a35050565b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600a0160405180606001604052808481526020018581526020014264ffffffffff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548164ffffffffff021916908364ffffffffff1602179055505050828160060160008282546141e0919061546a565b925050819055506064821415614224578381601101600060038110614208576142076153a4565b5b016000828254614218919061546a565b9250508190555061429c565b603c821415614261578381601101600160038110614245576142446153a4565b5b016000828254614255919061546a565b9250508190555061429b565b602882141561429a578381601101600260038110614282576142816153a4565b5b016000828254614292919061546a565b925050819055505b5b5b82600e60008282546142ae919061546a565b9250508190555083600d60008282546142c7919061546a565b925050819055505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156143a65750614376612442565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561460157601360008154809291906143be906157b9565b919050555060146001826143d29190615402565b60ff16600281106143e6576143e56153a4565b5b0160008154809291906143f8906157b9565b91905055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161444f5761444c612442565b91505b81601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b60058160ff1610156145ff57601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c018160ff1660058110614536576145356153a4565b5b016000815480929190614548906157b9565b9190505550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156145ec576145ff565b80806145f790615aba565b9150506144d3565b505b505050565b600081836146149190615603565b905092915050565b600061463261462b8484614606565b6064613c48565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561469c573d6000803e3d6000fd5b5080600f60008282546146af919061546a565b92505081905550505050565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b60058160ff16101561490b57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561476b5761490b565b600061271061ffff1660088360ff166005811061478b5761478a6153a4565b5b601091828204019190066002029054906101000a900461ffff1661ffff16856147b49190615603565b6147be9190615552565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015614806573d6000803e3d6000fd5b5080601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007016000828254614859919061546a565b925050819055508060106000828254614872919061546a565b9250508190555080600f600082825461488b919061546a565b92505081905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050808061490390615aba565b915050614725565b50505050565b60008082846149209190615436565b106149385781836149319190615436565b905061493d565b600090505b92915050565b600081831061495457829050614958565b8190505b92915050565b60008084148061496e5750600083145b1561497c57600090506149ae565b6064826064858761498d9190615552565b6149979190615603565b6149a19190615603565b6149ab9190615552565b90505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401614a1c90615e9c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008183614af09190615436565b905092915050565b6040518060600160405280600390602082028036833780820191505090505090565b6040518060a00160405280600590602082028036833780820191505090505090565b6040518060400160405280600290602082028036833780820191505090505090565b600080fd5b6000819050919050565b614b7681614b63565b8114614b8157600080fd5b50565b600081359050614b9381614b6d565b92915050565b600060208284031215614baf57614bae614b5e565b5b6000614bbd84828501614b84565b91505092915050565b614bcf81614b63565b82525050565b6000602082019050614bea6000830184614bc6565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614c2a578082015181840152602081019050614c0f565b83811115614c39576000848401525b50505050565b6000601f19601f8301169050919050565b6000614c5b82614bf0565b614c658185614bfb565b9350614c75818560208601614c0c565b614c7e81614c3f565b840191505092915050565b60006020820190508181036000830152614ca38184614c50565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614cd682614cab565b9050919050565b614ce681614ccb565b8114614cf157600080fd5b50565b600081359050614d0381614cdd565b92915050565b60008060408385031215614d2057614d1f614b5e565b5b6000614d2e85828601614cf4565b9250506020614d3f85828601614b84565b9150509250929050565b60008115159050919050565b614d5e81614d49565b82525050565b6000602082019050614d796000830184614d55565b92915050565b600064ffffffffff82169050919050565b614d9981614d7f565b82525050565b600060ff82169050919050565b614db581614d9f565b82525050565b600060a082019050614dd06000830188614d90565b614ddd6020830187614d90565b614dea6040830186614bc6565b614df76060830185614bc6565b614e046080830184614dac565b9695505050505050565b600080600060608486031215614e2757614e26614b5e565b5b6000614e3586828701614cf4565b9350506020614e4686828701614cf4565b9250506040614e5786828701614b84565b9150509250925092565b6000602082019050614e766000830184614dac565b92915050565b614e8581614d9f565b8114614e9057600080fd5b50565b600081359050614ea281614e7c565b92915050565b60008060408385031215614ebf57614ebe614b5e565b5b6000614ecd85828601614e93565b9250506020614ede85828601614b84565b9150509250929050565b600060208284031215614efe57614efd614b5e565b5b6000614f0c84828501614cf4565b91505092915050565b600080600060608486031215614f2e57614f2d614b5e565b5b6000614f3c86828701614cf4565b9350506020614f4d86828701614e93565b9250506040614f5e86828701614e93565b9150509250925092565b600060208284031215614f7e57614f7d614b5e565b5b6000614f8c84828501614e93565b91505092915050565b614f9e81614ccb565b82525050565b6000602082019050614fb96000830184614f95565b92915050565b6000604082019050614fd46000830185614bc6565b614fe16020830184614bc6565b9392505050565b6000614ff382614cab565b9050919050565b61500381614fe8565b82525050565b600060208201905061501e6000830184614ffa565b92915050565b6000806040838503121561503b5761503a614b5e565b5b600061504985828601614b84565b925050602061505a85828601614b84565b9150509250929050565b600060039050919050565b600081905092915050565b6000819050919050565b61508d81614b63565b82525050565b600061509f8383615084565b60208301905092915050565b6000602082019050919050565b6150c181615064565b6150cb818461506f565b92506150d68261507a565b8060005b838110156151075781516150ee8782615093565b96506150f9836150ab565b9250506001810190506150da565b505050505050565b600060059050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6151458161510f565b61514f818461511a565b925061515a82615125565b8060005b8381101561518b5781516151728782615093565b965061517d8361512f565b92505060018101905061515e565b505050505050565b60006101a0820190506151a9600083018a614bc6565b6151b66020830189614bc6565b6151c36040830188614bc6565b6151d06060830187614dac565b6151dd6080830186614bc6565b6151ea60a08301856150b8565b6151f861010083018461513c565b98975050505050505050565b60006080820190506152196000830187614d90565b6152266020830186614bc6565b6152336040830185614bc6565b6152406060830184614bc6565b95945050505050565b600080604083850312156152605761525f614b5e565b5b600061526e85828601614cf4565b925050602061527f85828601614cf4565b9150509250929050565b60006101808201905061529f600083018f614f95565b6152ac602083018e614dac565b6152b9604083018d614bc6565b6152c6606083018c614bc6565b6152d3608083018b614bc6565b6152e060a083018a614bc6565b6152ed60c0830189614bc6565b6152fa60e0830188614bc6565b615308610100830187614bc6565b615316610120830186614bc6565b615324610140830185614d90565b615332610160830184614d90565b9d9c50505050505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061538a57607f821691505b6020821081141561539e5761539d615343565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061540d82614d9f565b915061541883614d9f565b92508282101561542b5761542a6153d3565b5b828203905092915050565b600061544182614b63565b915061544c83614b63565b92508282101561545f5761545e6153d3565b5b828203905092915050565b600061547582614b63565b915061548083614b63565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156154b5576154b46153d3565b5b828201905092915050565b60008160601b9050919050565b60006154d8826154c0565b9050919050565b60006154ea826154cd565b9050919050565b6155026154fd82614ccb565b6154df565b82525050565b600061551482846154f1565b60148201915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061555d82614b63565b915061556883614b63565b92508261557857615577615523565b5b828204905092915050565b600061558e826154cd565b9050919050565b6155a66155a182614fe8565b615583565b82525050565b60006155b88284615595565b60148201915081905092915050565b6000819050919050565b6155e26155dd82614b63565b6155c7565b82525050565b60006155f482846155d1565b60208201915081905092915050565b600061560e82614b63565b915061561983614b63565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615615652576156516153d3565b5b828202905092915050565b60008151905061566c81614e7c565b92915050565b60006020828403121561568857615687614b5e565b5b60006156968482850161565d565b91505092915050565b6000815190506156ae81614b6d565b92915050565b6000602082840312156156ca576156c9614b5e565b5b60006156d88482850161569f565b91505092915050565b7f4e6f204469766964656e64732059657421000000000000000000000000000000600082015250565b6000615717601183614bfb565b9150615722826156e1565b602082019050919050565b600060208201905081810360008301526157468161570a565b9050919050565b7f546f6f20736d616c6c20746f20696e7665737421000000000000000000000000600082015250565b6000615783601483614bfb565b915061578e8261574d565b602082019050919050565b600060208201905081810360008301526157b281615776565b9050919050565b60006157c482614b63565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156157f7576157f66153d3565b5b600182019050919050565b7f4d696e696d756d20616d6f756e7420746f207361696c2069732033204d41544960008201527f4321000000000000000000000000000000000000000000000000000000000000602082015250565b600061585e602283614bfb565b915061586982615802565b604082019050919050565b6000602082019050818103600083015261588d81615851565b9050919050565b7f416c72656164792061206e617679210000000000000000000000000000000000600082015250565b60006158ca600f83614bfb565b91506158d582615894565b602082019050919050565b600060208201905081810360008301526158f9816158bd565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000615936602083614bfb565b915061594182615900565b602082019050919050565b6000602082019050818103600083015261596581615929565b9050919050565b7f4d696e696d756d20636f737420746f2073776974636820666c6565742069732060008201527f35204d4154494321000000000000000000000000000000000000000000000000602082015250565b60006159c8602883614bfb565b91506159d38261596c565b604082019050919050565b600060208201905081810360008301526159f7816159bb565b9050919050565b7f43616e206f6e6c792073776974636820666c656574206166746572203234206860008201527f72732073696e636520796f7572206c6173742100000000000000000000000000602082015250565b6000615a5a603383614bfb565b9150615a65826159fe565b604082019050919050565b60006020820190508181036000830152615a8981615a4d565b9050919050565b6000615a9b82614b63565b91506000821415615aaf57615aae6153d3565b5b600182039050919050565b6000615ac582614d9f565b915060ff821415615ad957615ad86153d3565b5b600182019050919050565b7f42455032303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615b40602483614bfb565b9150615b4b82615ae4565b604082019050919050565b60006020820190508181036000830152615b6f81615b33565b9050919050565b7f42455032303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000615bd2602283614bfb565b9150615bdd82615b76565b604082019050919050565b60006020820190508181036000830152615c0181615bc5565b9050919050565b7f4e6f7420656e6f75676820746f6b656e73210000000000000000000000000000600082015250565b6000615c3e601283614bfb565b9150615c4982615c08565b602082019050919050565b60006020820190508181036000830152615c6d81615c31565b9050919050565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000615cd0602583614bfb565b9150615cdb82615c74565b604082019050919050565b60006020820190508181036000830152615cff81615cc3565b9050919050565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000615d62602383614bfb565b9150615d6d82615d06565b604082019050919050565b60006020820190508181036000830152615d9181615d55565b9050919050565b7f42455032303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000615df4602183614bfb565b9150615dff82615d98565b604082019050919050565b60006020820190508181036000830152615e2381615de7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615e86602683614bfb565b9150615e9182615e2a565b604082019050919050565b60006020820190508181036000830152615eb581615e79565b905091905056fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206275726e20616d6f756e7420657863656564732062616c616e6365a26469706673582212207bcf342bdba4d5f101687e078d6ca6064e90c8f50741a93d593b073bf811ec6f64736f6c63430008090033
Deployed Bytecode Sourcemap
2217:21474:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4307:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20556:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21182:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17092:349;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;19909:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20649:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6213:807;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21344:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19424:477;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4463:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20366:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21658:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22145:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9784:586;;;;;;;;;;;;;:::i;:::-;;8853:918;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2719:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14898:949;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7042:1060;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4009:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4253:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20750:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1728:136;;;;;;;;;;;;;:::i;:::-;;2814:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4205:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10380:1241;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20273:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1516:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3956:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2561:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20459:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11961:808;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15857:827;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;2783:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21876:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5403:799;;;:::i;:::-;;4156:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20870:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8110:733;;;:::i;:::-;;2857:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2749;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2960:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16703:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;2929:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20015:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11626:329;;;;;;;;;;;;;:::i;:::-;;17781:1051;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21038:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3908:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4357:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4408;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4529:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4097:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1872:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4307:43;;;;;;;;;;;;;;;;;;;;:::o;20556:85::-;20595:13;20628:5;20621:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20556:85;:::o;21182:154::-;21250:4;21267:39;21276:12;:10;:12::i;:::-;21290:7;21299:6;21267:8;:39::i;:::-;21324:4;21317:11;;21182:154;;;;:::o;17092:349::-;17163:16;17181:14;17197:15;17214:14;17230:12;17260:21;17284:7;:14;17292:5;17284:14;;;;;;;;;;;;;;;17260:38;;17309:18;17330:6;:14;;17345:5;17330:21;;;;;;;;:::i;:::-;;;;;;;;;;;;17309:42;;17369:3;:13;;;;;;;;;;;;17384:3;:11;;;;;;;;;;;;17397:3;:11;;;17410:3;:10;;;;;;;;;;;;17422:3;:10;;;;;;;;;;;;17362:71;;;;;;;;;;;;;;;;;17092:349;;;;;;;;:::o;19909:98::-;19951:7;19978:21;19971:28;;19909:98;:::o;20649:93::-;20695:7;20722:12;;20715:19;;20649:93;:::o;6213:807::-;6271:49;6286:10;6306:4;6313:6;6271:14;:49::i;:::-;6331:21;6355:7;:19;6363:10;6355:19;;;;;;;;;;;;;;;6331:43;;6389:11;6429:1;6414:6;:12;;;;;;;;;;;;:16;;;6411:445;;;6462:78;6507:16;6537:1;6524:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;6507:32;;;;;;;;;:::i;:::-;;;;6473:15;6502:1;6489:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;6473:31;;;;;;;;;:::i;:::-;;;;:66;;;;:::i;:::-;6462:6;:10;;:78;;;;:::i;:::-;6456:84;;6572:3;6547:6;:21;;;:28;;;;;;;:::i;:::-;;;;;;;;6617:6;6590;:23;;;:33;;;;;;;:::i;:::-;;;;;;;;6682:26;6695:3;6700:7;6682:12;:26::i;:::-;6646:16;6676:1;6663:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;6646:32;;;;;;;;;:::i;:::-;;;;:62;;;;;;;:::i;:::-;;;;;;;;6758:27;6771:3;6776:8;6758:12;:27::i;:::-;6723:15;6752:1;6739:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;6723:31;;;;;;;;;:::i;:::-;;;;:62;;;;;;;:::i;:::-;;;;;;;;6411:445;;;6823:20;4595:5;6823:6;:10;;:20;;;;:::i;:::-;6817:26;;6411:445;6878:10;6870:28;;:33;6899:3;6870:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6945:6;6930:11;;:21;;;;;;;:::i;:::-;;;;;;;;6975:3;6962:9;;:16;;;;;;;:::i;:::-;;;;;;;;7002:3;6989:9;;:16;;;;;;;:::i;:::-;;;;;;;;6257:763;;6213:807;:::o;21344:306::-;21435:4;21452:36;21462:6;21470:9;21481:6;21452:9;:36::i;:::-;21499:121;21508:6;21516:12;:10;:12::i;:::-;21530:89;21568:6;21530:89;;;;;;;;;;;;;;;;;:11;:19;21542:6;21530:19;;;;;;;;;;;;;;;:33;21550:12;:10;:12::i;:::-;21530:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21499:8;:121::i;:::-;21638:4;21631:11;;21344:306;;;;;:::o;19424:477::-;19471:7;19496:12;19821;19788:15;19770:10;19753:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;19743:39;;;;;;19735:48;;19734:70;;;;:::i;:::-;19702:14;19669:15;19647:14;19630:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;19620:43;;;;;;19612:52;;19611:74;;;;:::i;:::-;19578:16;19560:15;:34;;;;:::i;:::-;:126;;;;:::i;:::-;:156;;;;:::i;:::-;:245;;;;:::i;:::-;:273;;;;:::i;:::-;19529:315;;;;;;;;:::i;:::-;;;;;;;;;;;;;19519:326;;;;;;19511:335;;19496:350;;19888:3;19881;19874:4;:10;;;;:::i;:::-;19873:18;;;;:::i;:::-;19865:4;:27;;;;:::i;:::-;19857:36;;;19424:477;;;:::o;4463:52::-;;;;;;;;;;;;;;;;;;;;:::o;20366:85::-;20409:5;20434:9;;;;;;;;;;;20427:16;;20366:85;:::o;21658:210::-;21738:4;21755:83;21764:12;:10;:12::i;:::-;21778:7;21787:50;21826:10;21787:11;:25;21799:12;:10;:12::i;:::-;21787:25;;;;;;;;;;;;;;;:34;21813:7;21787:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;21755:8;:83::i;:::-;21856:4;21849:11;;21658:210;;;;:::o;22145:120::-;22191:4;22208:27;22214:12;:10;:12::i;:::-;22228:6;22208:5;:27::i;:::-;22253:4;22246:11;;22145:120;;;:::o;9784:586::-;9832:21;9856:7;:19;9864:10;9856:19;;;;;;;;;;;;;;;9832:43;;9911:6;:12;;;;;;;;;;;;9889:34;;:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;;9886:79;;9939:7;;;9886:79;9985:14;10002:4;:18;;;10021:10;10002:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9985:47;;10055:1;10046:6;:10;10043:156;;;10117:15;10074:7;:19;10082:10;10074:19;;;;;;;;;;;;;;;:33;;;:59;;;;;;;;;;;;;;;;;;10181:6;10148:7;:19;10156:10;10148:19;;;;;;;;;;;;;;;:29;;;:39;;;;;;;:::i;:::-;;;;;;;;10043:156;10238:1;10219:6;:16;;;:20;10211:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;10272:59;10295:4;10302:10;10314:6;:16;;;10272:14;:59::i;:::-;10361:1;10342:6;:16;;:20;;;;9821:549;;9784:586;:::o;8853:918::-;8943:9;8933:6;:19;;8925:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;9006:21;9030:7;:19;9038:10;9030:19;;;;;;;;;;;;;;;9006:43;;9064:49;9079:10;9099:4;9106:6;9064:14;:49::i;:::-;9134:11;9148:19;9159:7;;9148:6;:10;;:19;;;;:::i;:::-;9134:33;;9179:13;9195:3;9179:19;;9221:1;9213:6;:9;;;9210:426;;;9289:2;9281:10;;9341:26;9354:3;9359:7;9341:12;:26::i;:::-;9306:15;9335:1;9322:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;9306:31;;;;;;;;;:::i;:::-;;;;:61;;;;;;;:::i;:::-;;;;;;;;9210:426;;;9399:1;9391:6;:9;;;9388:248;;;9457:2;9449:10;;9508:26;9521:3;9526:7;9508:12;:26::i;:::-;9477:11;9502:1;9489:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;9477:27;;;;;;;;;:::i;:::-;;;;:57;;;;;;;:::i;:::-;;;;;;;;9388:248;;;9598:26;9611:3;9616:7;9598:12;:26::i;:::-;9567:11;9592:1;9579:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;9567:27;;;;;;;;;:::i;:::-;;;;:57;;;;;;;:::i;:::-;;;;;;;;9388:248;9210:426;9643:43;9655:10;9667:3;9672:6;9680:5;9643:11;:43::i;:::-;9733:27;9746:3;9751:8;9733:12;:27::i;:::-;9697:16;9727:1;9714:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;9697:32;;;;;;;;;:::i;:::-;;;;:63;;;;;;;:::i;:::-;;;;;;;;8914:857;;;8853:918;;:::o;2719:23::-;;;;:::o;14898:949::-;14958:13;14984:21;15008:7;:14;15016:5;15008:14;;;;;;;;;;;;;;;14984:38;;15037:9;15033:784;15056:6;:15;;:22;;;;15052:1;:26;15033:784;;;15100:19;15122:6;:15;;15138:1;15122:18;;;;;;;;:::i;:::-;;;;;;;;;;;;15100:40;;15155:19;15177:6;:17;15184:3;:9;;;15177:17;;;;;;;;;;;15155:39;;15211:16;15259:5;15241;:15;;;:23;;;;:::i;:::-;15230:3;:8;;;;;;;;;;;;:34;;;;;;:::i;:::-;15211:53;;15279:11;15345:6;:19;;;;;;;;;;;;15322:42;;:6;:20;;;;;;;;;;;;:42;;;15319:262;;;15414:3;:8;;;;;;;;;;;;15391:31;;:6;:20;;;;;;;;;;;;:31;;;:65;;15448:3;:8;;;;;;;;;;;;15391:65;;;15425:6;:20;;;;;;;;;;;;15391:65;15384:72;;15319:262;;;15524:3;:8;;;;;;;;;;;;15502:30;;:6;:19;;;;;;;;;;;;:30;;;:63;;15557:3;:8;;;;;;;;;;;;15502:63;;;15535:6;:19;;;;;;;;;;;;15502:63;15495:70;;15319:262;15595:10;15626:8;15608:15;:26;:55;;15648:15;15608:55;;;15637:8;15608:55;15595:68;;15690:2;15683:4;:9;;;15680:126;;;15783:7;15765:5;:15;;;15749:5;:13;;;15741:4;15736:9;;:2;:9;;;;:::i;:::-;15722:3;:10;;;:24;;;;:::i;:::-;:40;;;;:::i;:::-;:58;;;;:::i;:::-;:68;;;;:::i;:::-;15713:77;;;;;:::i;:::-;;;15680:126;15085:732;;;;;15080:3;;;;;:::i;:::-;;;;15033:784;;;;15827:12;14898:949;;;:::o;7042:1060::-;7149:7;7136:9;:20;;7128:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7208:21;7232:7;:19;7240:10;7232:19;;;;;;;;;;;;;;;7208:43;;7286:1;7270:6;:12;;;;;;;;;;;;:17;;;7262:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;7335:5;7320:6;:12;;;:20;;;;;;;;;;;;;;;;;;7351:38;7361:10;7373:8;7383:5;7351:9;:38::i;:::-;7402:14;7419:22;7433:7;;7419:9;:13;;:22;;;;:::i;:::-;7402:39;;7471:1;7463:5;:9;;;7460:199;;;7489:46;7501:10;7513:9;7524:6;7531:3;7489:11;:46::i;:::-;7460:199;;;7598:49;7621:4;7628:10;7640:6;7598:14;:49::i;:::-;7460:199;7707:32;7720:9;7731:7;7707:12;:32::i;:::-;7683:11;7701:1;7695:5;:7;;;;:::i;:::-;7683:20;;;;;;;;;:::i;:::-;;;;:56;;;;;;;:::i;:::-;;;;;;;;7779:33;7792:9;7803:8;7779:12;:33::i;:::-;7750:16;7773:1;7767:5;:7;;;;:::i;:::-;7750:25;;;;;;;;;:::i;:::-;;;;:62;;;;;;;:::i;:::-;;;;;;;;7828:24;7839:9;7849:2;7828:10;:24::i;:::-;7894:9;7870:6;:20;;;:33;;;;;;;:::i;:::-;;;;;;;;7947:6;7921;:22;;;:32;;;;;;;:::i;:::-;;;;;;;;8003:6;7989:10;;:20;;;;;;;:::i;:::-;;;;;;;;8032:9;8020:8;;:21;;;;;;;:::i;:::-;;;;;;;;8054:40;8072:10;8084:9;8054:17;:40::i;:::-;7117:985;;7042:1060;;;:::o;4009:27::-;;;;:::o;4253:43::-;;;;;;;;;;;;;;;;;;;;:::o;20750:112::-;20809:7;20836:9;:18;20846:7;20836:18;;;;;;;;;;;;;;;;20829:25;;20750:112;;;:::o;1728:136::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1825:1:::1;1788:40;;1809:6;::::0;::::1;;;;;;;;1788:40;;;;;;;;;;;;1854:1;1837:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1728:136::o:0;2814:26::-;;;;:::o;4205:40::-;;;;;;;;;;;;;;;;;;;;:::o;10380:1241::-;10466:7;10453:9;:20;;10445:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10539:21;10563:7;:19;10571:10;10563:19;;;;;;;;;;;;;;;10539:43;;4076:8;10622:6;:19;;;;;;;;;;;;:25;;;;;;:::i;:::-;10602:15;:46;;10593:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;10725:14;10742:22;10756:7;;10742:9;:13;;:22;;;;:::i;:::-;10725:39;;10775:49;10798:4;10805:10;10817:6;10775:14;:49::i;:::-;10878:1;10848:11;10873:1;10860:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;10848:27;;;;;;;;;:::i;:::-;;;;:31;10845:91;;10895:11;10920:1;10907:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;10895:27;;;;;;;;;:::i;:::-;;;;:29;;;;;;;;;:::i;:::-;;;;;;10845:91;10948:12;10963:57;10976:38;10989:6;:20;;;11011:2;10976:12;:38::i;:::-;11016:3;10963:12;:57::i;:::-;10948:72;;11067:27;11080:4;11086:7;11067:12;:27::i;:::-;11031:16;11061:1;11048:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;11031:32;;;;;;;;;:::i;:::-;;;;:63;;;;;;;:::i;:::-;;;;;;;;11130:5;11115:6;:12;;;:20;;;;;;;;;;;;;;;;;;11140:11;11165:1;11152:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;11140:27;;;;;;;;;:::i;:::-;;;;:29;;;;;;;;;:::i;:::-;;;;;;11248:27;11261:4;11267:7;11248:12;:27::i;:::-;11213:32;11226:9;11237:7;11213:12;:32::i;:::-;:62;;;;:::i;:::-;11188:11;11206:1;11200:5;:7;;;;:::i;:::-;11188:20;;;;;;;;;:::i;:::-;;;;:88;;;;;;;:::i;:::-;;;;;;;;11289:24;11300:9;11310:2;11289:10;:24::i;:::-;11355:9;11331:6;:20;;;:33;;;;;;;:::i;:::-;;;;;;;;11408:6;11382;:22;;;:32;;;;;;;:::i;:::-;;;;;;;;11464:6;11450:10;;:20;;;;;;;:::i;:::-;;;;;;;;11493:9;11481:8;;:21;;;;;;;:::i;:::-;;;;;;;;11515:40;11533:10;11545:9;11515:17;:40::i;:::-;11597:15;11568:6;:19;;;:45;;;;;;;;;;;;;;;;;;10434:1187;;;10380:1241;:::o;20273:85::-;20316:7;20343;:5;:7::i;:::-;20336:14;;20273:85;:::o;1516:77::-;1554:7;1579:6;;;;;;;;;;;1572:13;;1516:77;:::o;3956:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2561:26::-;;;;;;;;;;;;;:::o;20459:89::-;20500:13;20533:7;20526:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20459:89;:::o;11961:808::-;12023:21;12047:7;:19;12055:10;12047:19;;;;;;;;;;;;;;;12023:43;;12103:1;12078:6;:14;;:21;;;;:26;12075:680;;12112:11;12148:1;12126:6;:14;;:21;;;;:23;;;;:::i;:::-;12112:37;;12186:1;12158:6;:14;;12173:3;12158:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:26;;;;;;;;;;;;:29;;;:51;;;;;12199:10;12191:5;:18;12158:51;12155:595;;;12298:19;12314:2;12298:11;12306:2;4076:8;12298:7;;:11;;;;:::i;:::-;:15;;:19;;;;:::i;:::-;12266:6;:14;;12281:3;12266:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:29;;;;;;;;;;;;:51;;;;;;:::i;:::-;12246:15;:72;;12237:82;;;;;;12363:15;12326:6;:14;;12341:3;12326:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:27;;;:53;;;;;;;;;;;;;;;;;;12415:1;12386:6;:14;;12401:3;12386:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:26;;;:30;;;;;;;;;;;;;;;;;;12459:2;12430:6;:14;;12445:3;12430:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:26;;;;;;;;;;;;:31;;;:43;;;;;12472:1;12465:6;:8;12430:43;12427:275;;;12512:5;12482:6;:14;;12497:3;12482:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:27;;:35;;;;12575:5;12540:15;12569:1;12556:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;12540:31;;;;;;;;;:::i;:::-;;;;:40;;;;;;;:::i;:::-;;;;;;;;12633:5;12604:6;:25;;;:34;;;;;;;:::i;:::-;;;;;;;;12646:48;12669:4;12676:10;12688:5;12646:14;:48::i;:::-;12427:275;12708:13;12735:1;12722:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;12708:29;;;;;;;;;:::i;:::-;;;;:31;;;;;;;;;:::i;:::-;;;;;;12155:595;12106:649;12075:680;12018:751;11961:808;;:::o;15857:827::-;15914:20;15936:19;15957:16;15975;15993:13;16008:29;;:::i;:::-;16039:27;;:::i;:::-;16086:21;16110:7;:14;16118:5;16110:14;;;;;;;;;;;;;;;16086:38;;16135:14;16152:4;:18;;;16171:5;16152:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16135:42;;16192:7;16188:107;16209:18;16205:1;:22;;;16188:107;;;16264:6;:16;;16281:1;16264:19;;;;;;;;;:::i;:::-;;;;16249:9;16259:1;16249:12;;;;;;;;;:::i;:::-;;;;;:34;;;;;16229:3;;;;;:::i;:::-;;;;16188:107;;;;16309:7;16305:94;16326:1;16322;:5;;;16305:94;;;16366:6;:18;;16385:1;16366:21;;;;;;;;;:::i;:::-;;;;16349:11;16361:1;16349:14;;;;;;;;;:::i;:::-;;;;;:38;;;;;16329:3;;;;;:::i;:::-;;;;16305:94;;;;16403:12;16418:3;16403:18;;16454:1;16429:6;:14;;:21;;;;:26;16426:100;;16472:6;:14;;16509:1;16487:6;:14;;:21;;;;:23;;;;:::i;:::-;16472:39;;;;;;;;:::i;:::-;;;;;;;;;;;;:46;;;;;;;;;;;;16463:55;;16426:100;16553:6;:16;;;16544:6;:25;;;;:::i;:::-;16571:6;:15;;:22;;;;16595:6;:14;;:21;;;;16618:6;16626;:25;;;16536:140;;;;;;;;;;;;;15857:827;;;;;;;;;:::o;2783:24::-;;;;:::o;21876:261::-;21961:4;21978:129;21987:12;:10;:12::i;:::-;22001:7;22010:96;22049:15;22010:96;;;;;;;;;;;;;;;;;:11;:25;22022:12;:10;:12::i;:::-;22010:25;;;;;;;;;;;;;;;:34;22036:7;22010:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;21978:8;:129::i;:::-;22125:4;22118:11;;21876:261;;;;:::o;5403:799::-;5470:7;5457:9;:20;;5449:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5527:14;5544:22;5558:7;;5544:9;:13;;:22;;;;:::i;:::-;5527:39;;5577:49;5600:4;5607:10;5619:6;5577:14;:49::i;:::-;5639:24;5650:9;5660:2;5639:10;:24::i;:::-;5688:21;5712:7;:19;5720:10;5712:19;;;;;;;;;;;;;;;5688:43;;5768:1;5753:6;:12;;;;;;;;;;;;:16;;;5750:382;;;5819:9;5795:6;:20;;;:33;;;;;;;:::i;:::-;;;;;;;;5876:6;5850;:22;;;:32;;;;;;;:::i;:::-;;;;;;;;5946;5959:9;5970:7;5946:12;:32::i;:::-;5915:11;5940:1;5927:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;5915:27;;;;;;;;;:::i;:::-;;;;:63;;;;;;;:::i;:::-;;;;;;;;6029:33;6042:9;6053:8;6029:12;:33::i;:::-;5993:16;6023:1;6010:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;5993:32;;;;;;;;;:::i;:::-;;;;:69;;;;;;;:::i;:::-;;;;;;;;6080:40;6098:10;6110:9;6080:17;:40::i;:::-;5750:382;6156:6;6142:10;;:20;;;;;;;:::i;:::-;;;;;;;;6185:9;6173:8;;:21;;;;;;;:::i;:::-;;;;;;;;5438:764;;5403:799::o;4156:41::-;;;;;;;;;;;;;;;;;;;;:::o;20870:160::-;20941:4;20958:42;20968:12;:10;:12::i;:::-;20982:9;20993:6;20958:9;:42::i;:::-;21018:4;21011:11;;20870:160;;;;:::o;8110:733::-;8180:7;8167:9;:20;;8159:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8239:21;8263:7;:19;8271:10;8263:19;;;;;;;;;;;;;;;8239:43;;8302:14;8319:22;8333:7;;8319:9;:13;;:22;;;;:::i;:::-;8302:39;;8346:46;8358:10;8370:9;8381:6;8388:3;8346:11;:46::i;:::-;8448:32;8461:9;8472:7;8448:12;:32::i;:::-;8417:11;8442:1;8429:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;8417:27;;;;;;;;;:::i;:::-;;;;:63;;;;;;;:::i;:::-;;;;;;;;8527:33;8540:9;8551:8;8527:12;:33::i;:::-;8491:16;8521:1;8508:6;:12;;;;;;;;;;;;:14;;;;:::i;:::-;8491:32;;;;;;;;;:::i;:::-;;;;:69;;;;;;;:::i;:::-;;;;;;;;8576:24;8587:9;8597:2;8576:10;:24::i;:::-;8637:9;8613:6;:20;;;:33;;;;;;;:::i;:::-;;;;;;;;8690:6;8664;:22;;;:32;;;;;;;:::i;:::-;;;;;;;;8746:6;8732:10;;:20;;;;;;;:::i;:::-;;;;;;;;8775:9;8763:8;;:21;;;;;;;:::i;:::-;;;;;;;;8795:40;8813:10;8825:9;8795:17;:40::i;:::-;8148:695;;8110:733::o;2857:25::-;;;;:::o;2749:::-;;;;:::o;2960:24::-;;;;:::o;16703:377::-;16778:11;16791:14;16807:16;16825:15;16858:21;16882:7;:14;16890:5;16882:14;;;;;;;;;;;;;;;16858:38;;16907:19;16929:6;:15;;16945:5;16929:22;;;;;;;;:::i;:::-;;;;;;;;;;;;16907:44;;16962:19;16984:6;:17;16991:3;:9;;;16984:17;;;;;;;;;;;16962:39;;17019:3;:8;;;;;;;;;;;;17029:3;:10;;;17041:5;:15;;;17058:5;:13;;;17012:60;;;;;;;;;;;16703:377;;;;;;;:::o;2929:24::-;;;;:::o;20015:134::-;20073:12;1653;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20112:6:::1;20098:3;;:21;;;;;;;;;;;;;;;;;;20137:4;20130:11;;20015:134:::0;;;:::o;11626:329::-;11667:21;11691:7;:19;11699:10;11691:19;;;;;;;;;;;;;;;11667:43;;11717:51;11732:10;11752:4;11759:8;11717:14;:51::i;:::-;11775:6;:14;;11795:148;;;;;;;;11891:1;11795:148;;;;11835:15;11795:148;;;;;;11875:1;11795:148;;;;;;11912:9;11917:3;11912:4;:9::i;:::-;11795:148;;;;;;11936:1;11795:148;;;;;11775:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11656:299;11626:329::o;17781:1051::-;17826:12;17851:29;;:::i;:::-;17901:11;17915:114;17926:50;17940:11;17952:1;17940:14;;;;;;;:::i;:::-;;;;17956:16;17973:1;17956:19;;;;;;;:::i;:::-;;;;17926:13;:50::i;:::-;17978;17992:11;18004:1;17992:14;;;;;;;:::i;:::-;;;;18008:16;18025:1;18008:19;;;;;;;:::i;:::-;;;;17978:13;:50::i;:::-;17915:10;:114::i;:::-;17901:128;;18066:73;18080:50;18094:11;18106:1;18094:14;;;;;;;:::i;:::-;;;;18110:16;18127:1;18110:19;;;;;;;:::i;:::-;;;;18080:13;:50::i;:::-;18131:3;18136:2;18066:13;:73::i;:::-;18048:11;18060:1;18048:14;;;;;;;:::i;:::-;;;;;:91;;;;;;;:::i;:::-;;;;;;;;18169:73;18183:50;18197:11;18209:1;18197:14;;;;;;;:::i;:::-;;;;18213:16;18230:1;18213:19;;;;;;;:::i;:::-;;;;18183:13;:50::i;:::-;18234:3;18239:2;18169:13;:73::i;:::-;18151:11;18163:1;18151:14;;;;;;;:::i;:::-;;;;;:91;;;;;;;:::i;:::-;;;;;;;;18264:11;18278:49;18289:15;18305:1;18289:18;;;;;;;:::i;:::-;;;;18308:15;18324:1;18308:18;;;;;;;:::i;:::-;;;;18278:10;:49::i;:::-;18264:63;;18356:41;18370:15;18386:1;18370:18;;;;;;;:::i;:::-;;;;18389:3;18394:2;18356:13;:41::i;:::-;18338:11;18350:1;18338:14;;;;;;;:::i;:::-;;;;;:59;;;;;;;:::i;:::-;;;;;;;;18427:41;18441:15;18457:1;18441:18;;;;;;;:::i;:::-;;;;18460:3;18465:2;18427:13;:41::i;:::-;18409:11;18421:1;18409:14;;;;;;;:::i;:::-;;;;;:59;;;;;;;:::i;:::-;;;;;;;;18490:11;18504:45;18515:13;18529:1;18515:16;;;;;;;:::i;:::-;;;;18532:13;18546:1;18532:16;;;;;;;:::i;:::-;;;;18504:10;:45::i;:::-;18490:59;;18578:39;18592:13;18606:1;18592:16;;;;;;;:::i;:::-;;;;18609:3;18614:2;18578:13;:39::i;:::-;18560:11;18572:1;18560:14;;;;;;;:::i;:::-;;;;;:57;;;;;;;:::i;:::-;;;;;;;;18647:39;18661:13;18675:1;18661:16;;;;;;;:::i;:::-;;;;18678:3;18683:2;18647:13;:39::i;:::-;18629:11;18641:1;18629:14;;;;;;;:::i;:::-;;;;;:57;;;;;;;:::i;:::-;;;;;;;;18736:11;18748:1;18736:14;;;;;;;:::i;:::-;;;;;;18718:11;18730:1;18718:14;;;;;;;:::i;:::-;;;;;;:32;18715:102;;18773:1;18766:8;;;;;;;;18715:102;18804:1;18797:8;;;;;;17781:1051;;:::o;21038:136::-;21112:7;21139:11;:18;21151:5;21139:18;;;;;;;;;;;;;;;:27;21158:7;21139:27;;;;;;;;;;;;;;;;21132:34;;21038:136;;;;:::o;3908:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4357:44::-;;;;;;;;;;;;;;;;;;;;:::o;4408:::-;;;;;;;;;;;;;;;;;;;;:::o;4529:31::-;;;;:::o;4097:49::-;;;;;;;;;;;;;;;;;;;;:::o;2889:27::-;;;;:::o;1872:107::-;1653:12;:10;:12::i;:::-;1643:22;;:6;;;;;;;;;;:22;;;1635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1943:28:::1;1962:8;1943:18;:28::i;:::-;1872:107:::0;:::o;990:98::-;1043:7;1070:10;1063:17;;990:98;:::o;23108:338::-;23219:1;23202:19;;:5;:19;;;;23194:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23300:1;23281:21;;:7;:21;;;;23273:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23384:6;23354:11;:18;23366:5;23354:18;;;;;;;;;;;;;;;:27;23373:7;23354:27;;;;;;;;;;;;;;;:36;;;;23422:7;23406:32;;23415:5;23406:32;;;23431:6;23406:32;;;;;;:::i;:::-;;;;;;;;23108:338;;;:::o;17449:322::-;17576:1;17544:28;17565:6;17544:9;:16;17554:5;17544:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;:33;;17536:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;17635:26;17654:6;17635:9;:14;17645:3;17635:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;17618:9;:14;17628:3;17618:14;;;;;;;;;;;;;;;:43;;;;17691:28;17712:6;17691:9;:16;17701:5;17691:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;17672:9;:16;17682:5;17672:16;;;;;;;;;;;;;;;:47;;;;17751:3;17735:28;;17744:5;17735:28;;;17756:6;17735:28;;;;;;:::i;:::-;;;;;;;;17449:322;;;:::o;25388:98::-;25446:7;25477:1;25473;:5;;;;:::i;:::-;25466:12;;25388:98;;;;:::o;22273:471::-;22389:1;22371:20;;:6;:20;;;;22363:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22473:1;22452:23;;:9;:23;;;;22444:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22548;22570:6;22548:71;;;;;;;;;;;;;;;;;:9;:17;22558:6;22548:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22528:9;:17;22538:6;22528:17;;;;;;;;;;;;;;;:91;;;;22653:32;22678:6;22653:9;:20;22663:9;22653:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22630:9;:20;22640:9;22630:20;;;;;;;;;;;;;;;:55;;;;22718:9;22701:35;;22710:6;22701:35;;;22729:6;22701:35;;;;;;:::i;:::-;;;;;;;;22273:471;;;:::o;25600:240::-;25720:7;25778:1;25773;:6;;25781:12;25765:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;25820:1;25816;:5;25809:12;;25600:240;;;;;:::o;25070:98::-;25128:7;25159:1;25155;:5;;;;:::i;:::-;25148:12;;25070:98;;;;:::o;22752:348::-;22847:1;22828:21;;:7;:21;;;;22820:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22921:68;22944:6;22921:68;;;;;;;;;;;;;;;;;:9;:18;22931:7;22921:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;22900:9;:18;22910:7;22900:18;;;;;;;;;;;;;;;:89;;;;23015:24;23032:6;23015:12;;:16;;:24;;;;:::i;:::-;23000:12;:39;;;;23081:1;23055:37;;23064:7;23055:37;;;23085:6;23055:37;;;;;;:::i;:::-;;;;;;;;22752:348;;:::o;12779:660::-;12879:21;12903:7;:14;12911:5;12903:14;;;;;;;;;;;;;;;12879:38;;12928:6;:15;;12949:121;;;;;;;;12979:6;12949:121;;;;13008:6;12949:121;;;;13042:15;12949:121;;;;;12928:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13123:6;13094;:25;;;:35;;;;;;;:::i;:::-;;;;;;;;13161:3;13153:6;:11;13150:217;;;13204:3;13179:6;:18;;13198:1;13179:21;;;;;;;:::i;:::-;;;;:28;;;;;;;:::i;:::-;;;;;;;;13150:217;;;13235:2;13227:6;:10;13224:143;;;13278:3;13253:6;:18;;13272:1;13253:21;;;;;;;:::i;:::-;;;;:28;;;;;;;:::i;:::-;;;;;;;;13224:143;;;13309:2;13301:6;:10;13298:69;;;13352:3;13327:6;:18;;13346:1;13327:21;;;;;;;:::i;:::-;;;;:28;;;;;;;:::i;:::-;;;;;;;;13298:69;13224:143;13150:217;13397:6;13381:12;;:22;;;;;;;:::i;:::-;;;;;;;;13428:3;13414:10;;:17;;;;;;;:::i;:::-;;;;;;;;12868:571;12779:660;;;;:::o;13682:642::-;13801:1;13768:35;;:7;:14;13776:5;13768:14;;;;;;;;;;;;;;;:21;;;;;;;;;;;;:35;;;:55;;;;;13816:7;:5;:7::i;:::-;13807:16;;:5;:16;;;;13768:55;13765:552;;;13840:12;;:14;;;;;;;;;:::i;:::-;;;;;;13869:11;13887:1;13881:5;:7;;;;:::i;:::-;13869:20;;;;;;;;;:::i;:::-;;;;:22;;;;;;;;;:::i;:::-;;;;;;13941:1;13919:9;:18;13929:7;13919:18;;;;;;;;;;;;;;;;:23;13916:80;;13973:7;:5;:7::i;:::-;13963:17;;13916:80;14047:7;14023;:14;14031:5;14023:14;;;;;;;;;;;;;;;:21;;;:31;;;;;;;;;;;;;;;;;;14086:7;14082:214;14103:18;14099:1;:22;;;14082:214;;;14147:7;:16;14155:7;14147:16;;;;;;;;;;;;;;;:26;;14174:1;14147:29;;;;;;;;;:::i;:::-;;;;:31;;;;;;;;;:::i;:::-;;;;;;14207:7;:16;14215:7;14207:16;;;;;;;;;;;;;;;:23;;;;;;;;;;;;14197:33;;14271:1;14252:21;;:7;:21;;;14249:31;;;14275:5;;14249:31;14123:3;;;;;:::i;:::-;;;;14082:214;;;;13765:552;13682:642;;;:::o;25282:98::-;25340:7;25371:1;25367;:5;;;;:::i;:::-;25360:12;;25282:98;;;;:::o;13449:223::-;13518:15;13536:45;13549:26;13562:6;13570:4;13549:12;:26::i;:::-;13577:3;13536:12;:45::i;:::-;13518:63;;13600:3;;;;;;;;;;;13592:21;;:30;13614:7;13592:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13647:7;13634:9;;:20;;;;;;;:::i;:::-;;;;;;;;13507:165;13449:223;;:::o;14352:527::-;14430:10;14443:7;:14;14451:5;14443:14;;;;;;;;;;;;;;;:21;;;;;;;;;;;;14430:34;;14481:7;14477:395;14498:18;14494:1;:22;;;14477:395;;;14555:1;14541:16;;:2;:16;;;14538:26;;;14559:5;;14538:26;14593:13;2638:5;14609:42;;14619:11;14631:1;14619:14;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;14609:24;;:7;:24;;;;:::i;:::-;:42;;;;:::i;:::-;14593:58;;14674:2;14666:20;;:27;14687:5;14666:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14739:5;14709:7;:11;14717:2;14709:11;;;;;;;;;;;;;;;:26;;;:35;;;;;;;:::i;:::-;;;;;;;;14774:5;14761:9;;:18;;;;;;;:::i;:::-;;;;;;;;14807:5;14794:9;;:18;;;;;;;:::i;:::-;;;;;;;;14842:7;:11;14850:2;14842:11;;;;;;;;;;;;;;;:18;;;;;;;;;;;;14837:23;;14523:349;14518:3;;;;;:::i;:::-;;;;14477:395;;;;14419:460;14352:527;;:::o;19246:170::-;19312:13;19350:1;19345;19341;:5;;;;:::i;:::-;:10;19338:52;;19376:1;19374;:3;;;;:::i;:::-;19367:11;;;;19338:52;19407:1;19400:8;;19246:170;;;;;:::o;18840:200::-;18903:13;18945:1;18940;:6;18937:88;;18969:1;18962:8;;;;18937:88;19008:1;19001:8;;18840:200;;;;;:::o;19048:187::-;19125:13;19159:1;19154;:6;:16;;;;19169:1;19164;:6;19154:16;19151:34;;;19181:1;19174:8;;;;19151:34;19224:3;19219:1;19212:3;19208:1;19204;:5;;;;:::i;:::-;:11;;;;:::i;:::-;19203:17;;;;:::i;:::-;19202:25;;;;:::i;:::-;19195:32;;19048:187;;;;;;:::o;1987:223::-;2079:1;2059:22;;:8;:22;;;;2051:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2167:8;2138:38;;2159:6;;;;;;;;;;2138:38;;;;;;;;;;;;2194:8;2185:6;;:17;;;;;;;;;;;;;;;;;;1987:223;:::o;25176:98::-;25234:7;25265:1;25261;:5;;;;:::i;:::-;25254:12;;25176:98;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:307::-;1725:1;1735:113;1749:6;1746:1;1743:13;1735:113;;;1834:1;1829:3;1825:11;1819:18;1815:1;1810:3;1806:11;1799:39;1771:2;1768:1;1764:10;1759:15;;1735:113;;;1866:6;1863:1;1860:13;1857:101;;;1946:1;1937:6;1932:3;1928:16;1921:27;1857:101;1706:258;1657:307;;;:::o;1970:102::-;2011:6;2062:2;2058:7;2053:2;2046:5;2042:14;2038:28;2028:38;;1970:102;;;:::o;2078:364::-;2166:3;2194:39;2227:5;2194:39;:::i;:::-;2249:71;2313:6;2308:3;2249:71;:::i;:::-;2242:78;;2329:52;2374:6;2369:3;2362:4;2355:5;2351:16;2329:52;:::i;:::-;2406:29;2428:6;2406:29;:::i;:::-;2401:3;2397:39;2390:46;;2170:272;2078:364;;;;:::o;2448:313::-;2561:4;2599:2;2588:9;2584:18;2576:26;;2648:9;2642:4;2638:20;2634:1;2623:9;2619:17;2612:47;2676:78;2749:4;2740:6;2676:78;:::i;:::-;2668:86;;2448:313;;;;:::o;2767:126::-;2804:7;2844:42;2837:5;2833:54;2822:65;;2767:126;;;:::o;2899:96::-;2936:7;2965:24;2983:5;2965:24;:::i;:::-;2954:35;;2899:96;;;:::o;3001:122::-;3074:24;3092:5;3074:24;:::i;:::-;3067:5;3064:35;3054:63;;3113:1;3110;3103:12;3054:63;3001:122;:::o;3129:139::-;3175:5;3213:6;3200:20;3191:29;;3229:33;3256:5;3229:33;:::i;:::-;3129:139;;;;:::o;3274:474::-;3342:6;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3525:1;3550:53;3595:7;3586:6;3575:9;3571:22;3550:53;:::i;:::-;3540:63;;3496:117;3652:2;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3623:118;3274:474;;;;;:::o;3754:90::-;3788:7;3831:5;3824:13;3817:21;3806:32;;3754:90;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:95::-;4217:7;4257:12;4250:5;4246:24;4235:35;;4181:95;;;:::o;4282:115::-;4367:23;4384:5;4367:23;:::i;:::-;4362:3;4355:36;4282:115;;:::o;4403:86::-;4438:7;4478:4;4471:5;4467:16;4456:27;;4403:86;;;:::o;4495:112::-;4578:22;4594:5;4578:22;:::i;:::-;4573:3;4566:35;4495:112;;:::o;4613:648::-;4810:4;4848:3;4837:9;4833:19;4825:27;;4862:69;4928:1;4917:9;4913:17;4904:6;4862:69;:::i;:::-;4941:70;5007:2;4996:9;4992:18;4983:6;4941:70;:::i;:::-;5021:72;5089:2;5078:9;5074:18;5065:6;5021:72;:::i;:::-;5103;5171:2;5160:9;5156:18;5147:6;5103:72;:::i;:::-;5185:69;5249:3;5238:9;5234:19;5225:6;5185:69;:::i;:::-;4613:648;;;;;;;;:::o;5267:619::-;5344:6;5352;5360;5409:2;5397:9;5388:7;5384:23;5380:32;5377:119;;;5415:79;;:::i;:::-;5377:119;5535:1;5560:53;5605:7;5596:6;5585:9;5581:22;5560:53;:::i;:::-;5550:63;;5506:117;5662:2;5688:53;5733:7;5724:6;5713:9;5709:22;5688:53;:::i;:::-;5678:63;;5633:118;5790:2;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5761:118;5267:619;;;;;:::o;5892:214::-;5981:4;6019:2;6008:9;6004:18;5996:26;;6032:67;6096:1;6085:9;6081:17;6072:6;6032:67;:::i;:::-;5892:214;;;;:::o;6112:118::-;6183:22;6199:5;6183:22;:::i;:::-;6176:5;6173:33;6163:61;;6220:1;6217;6210:12;6163:61;6112:118;:::o;6236:135::-;6280:5;6318:6;6305:20;6296:29;;6334:31;6359:5;6334:31;:::i;:::-;6236:135;;;;:::o;6377:470::-;6443:6;6451;6500:2;6488:9;6479:7;6475:23;6471:32;6468:119;;;6506:79;;:::i;:::-;6468:119;6626:1;6651:51;6694:7;6685:6;6674:9;6670:22;6651:51;:::i;:::-;6641:61;;6597:115;6751:2;6777:53;6822:7;6813:6;6802:9;6798:22;6777:53;:::i;:::-;6767:63;;6722:118;6377:470;;;;;:::o;6853:329::-;6912:6;6961:2;6949:9;6940:7;6936:23;6932:32;6929:119;;;6967:79;;:::i;:::-;6929:119;7087:1;7112:53;7157:7;7148:6;7137:9;7133:22;7112:53;:::i;:::-;7102:63;;7058:117;6853:329;;;;:::o;7188:611::-;7261:6;7269;7277;7326:2;7314:9;7305:7;7301:23;7297:32;7294:119;;;7332:79;;:::i;:::-;7294:119;7452:1;7477:53;7522:7;7513:6;7502:9;7498:22;7477:53;:::i;:::-;7467:63;;7423:117;7579:2;7605:51;7648:7;7639:6;7628:9;7624:22;7605:51;:::i;:::-;7595:61;;7550:116;7705:2;7731:51;7774:7;7765:6;7754:9;7750:22;7731:51;:::i;:::-;7721:61;;7676:116;7188:611;;;;;:::o;7805:325::-;7862:6;7911:2;7899:9;7890:7;7886:23;7882:32;7879:119;;;7917:79;;:::i;:::-;7879:119;8037:1;8062:51;8105:7;8096:6;8085:9;8081:22;8062:51;:::i;:::-;8052:61;;8008:115;7805:325;;;;:::o;8136:118::-;8223:24;8241:5;8223:24;:::i;:::-;8218:3;8211:37;8136:118;;:::o;8260:222::-;8353:4;8391:2;8380:9;8376:18;8368:26;;8404:71;8472:1;8461:9;8457:17;8448:6;8404:71;:::i;:::-;8260:222;;;;:::o;8488:332::-;8609:4;8647:2;8636:9;8632:18;8624:26;;8660:71;8728:1;8717:9;8713:17;8704:6;8660:71;:::i;:::-;8741:72;8809:2;8798:9;8794:18;8785:6;8741:72;:::i;:::-;8488:332;;;;;:::o;8826:104::-;8871:7;8900:24;8918:5;8900:24;:::i;:::-;8889:35;;8826:104;;;:::o;8936:142::-;9039:32;9065:5;9039:32;:::i;:::-;9034:3;9027:45;8936:142;;:::o;9084:254::-;9193:4;9231:2;9220:9;9216:18;9208:26;;9244:87;9328:1;9317:9;9313:17;9304:6;9244:87;:::i;:::-;9084:254;;;;:::o;9344:474::-;9412:6;9420;9469:2;9457:9;9448:7;9444:23;9440:32;9437:119;;;9475:79;;:::i;:::-;9437:119;9595:1;9620:53;9665:7;9656:6;9645:9;9641:22;9620:53;:::i;:::-;9610:63;;9566:117;9722:2;9748:53;9793:7;9784:6;9773:9;9769:22;9748:53;:::i;:::-;9738:63;;9693:118;9344:474;;;;;:::o;9824:104::-;9889:6;9917:4;9907:14;;9824:104;;;:::o;9934:143::-;10031:11;10068:3;10053:18;;9934:143;;;;:::o;10083:98::-;10148:4;10171:3;10163:11;;10083:98;;;:::o;10187:108::-;10264:24;10282:5;10264:24;:::i;:::-;10259:3;10252:37;10187:108;;:::o;10301:179::-;10370:10;10391:46;10433:3;10425:6;10391:46;:::i;:::-;10469:4;10464:3;10460:14;10446:28;;10301:179;;;;:::o;10486:111::-;10554:4;10586;10581:3;10577:14;10569:22;;10486:111;;;:::o;10635:694::-;10771:52;10817:5;10771:52;:::i;:::-;10839:84;10916:6;10911:3;10839:84;:::i;:::-;10832:91;;10947:54;10995:5;10947:54;:::i;:::-;11024:7;11055:1;11040:282;11065:6;11062:1;11059:13;11040:282;;;11141:6;11135:13;11168:63;11227:3;11212:13;11168:63;:::i;:::-;11161:70;;11254:58;11305:6;11254:58;:::i;:::-;11244:68;;11100:222;11087:1;11084;11080:9;11075:14;;11040:282;;;11044:14;10747:582;;;10635:694;;:::o;11335:104::-;11400:6;11428:4;11418:14;;11335:104;;;:::o;11445:143::-;11542:11;11579:3;11564:18;;11445:143;;;;:::o;11594:98::-;11659:4;11682:3;11674:11;;11594:98;;;:::o;11698:111::-;11766:4;11798;11793:3;11789:14;11781:22;;11698:111;;;:::o;11847:694::-;11983:52;12029:5;11983:52;:::i;:::-;12051:84;12128:6;12123:3;12051:84;:::i;:::-;12044:91;;12159:54;12207:5;12159:54;:::i;:::-;12236:7;12267:1;12252:282;12277:6;12274:1;12271:13;12252:282;;;12353:6;12347:13;12380:63;12439:3;12424:13;12380:63;:::i;:::-;12373:70;;12466:58;12517:6;12466:58;:::i;:::-;12456:68;;12312:222;12299:1;12296;12292:9;12287:14;;12252:282;;;12256:14;11959:582;;;11847:694;;:::o;12547:1062::-;12896:4;12934:3;12923:9;12919:19;12911:27;;12948:71;13016:1;13005:9;13001:17;12992:6;12948:71;:::i;:::-;13029:72;13097:2;13086:9;13082:18;13073:6;13029:72;:::i;:::-;13111;13179:2;13168:9;13164:18;13155:6;13111:72;:::i;:::-;13193:68;13257:2;13246:9;13242:18;13233:6;13193:68;:::i;:::-;13271:73;13339:3;13328:9;13324:19;13315:6;13271:73;:::i;:::-;13354:119;13468:3;13457:9;13453:19;13444:6;13354:119;:::i;:::-;13483;13597:3;13586:9;13582:19;13573:6;13483:119;:::i;:::-;12547:1062;;;;;;;;;;:::o;13615:549::-;13790:4;13828:3;13817:9;13813:19;13805:27;;13842:69;13908:1;13897:9;13893:17;13884:6;13842:69;:::i;:::-;13921:72;13989:2;13978:9;13974:18;13965:6;13921:72;:::i;:::-;14003;14071:2;14060:9;14056:18;14047:6;14003:72;:::i;:::-;14085;14153:2;14142:9;14138:18;14129:6;14085:72;:::i;:::-;13615:549;;;;;;;:::o;14170:474::-;14238:6;14246;14295:2;14283:9;14274:7;14270:23;14266:32;14263:119;;;14301:79;;:::i;:::-;14263:119;14421:1;14446:53;14491:7;14482:6;14471:9;14467:22;14446:53;:::i;:::-;14436:63;;14392:117;14548:2;14574:53;14619:7;14610:6;14599:9;14595:22;14574:53;:::i;:::-;14564:63;;14519:118;14170:474;;;;;:::o;14650:1429::-;15045:4;15083:3;15072:9;15068:19;15060:27;;15097:71;15165:1;15154:9;15150:17;15141:6;15097:71;:::i;:::-;15178:68;15242:2;15231:9;15227:18;15218:6;15178:68;:::i;:::-;15256:72;15324:2;15313:9;15309:18;15300:6;15256:72;:::i;:::-;15338;15406:2;15395:9;15391:18;15382:6;15338:72;:::i;:::-;15420:73;15488:3;15477:9;15473:19;15464:6;15420:73;:::i;:::-;15503;15571:3;15560:9;15556:19;15547:6;15503:73;:::i;:::-;15586;15654:3;15643:9;15639:19;15630:6;15586:73;:::i;:::-;15669;15737:3;15726:9;15722:19;15713:6;15669:73;:::i;:::-;15752;15820:3;15809:9;15805:19;15796:6;15752:73;:::i;:::-;15835;15903:3;15892:9;15888:19;15879:6;15835:73;:::i;:::-;15918:72;15985:3;15974:9;15970:19;15960:7;15918:72;:::i;:::-;16000;16067:3;16056:9;16052:19;16042:7;16000:72;:::i;:::-;14650:1429;;;;;;;;;;;;;;;:::o;16085:180::-;16133:77;16130:1;16123:88;16230:4;16227:1;16220:15;16254:4;16251:1;16244:15;16271:320;16315:6;16352:1;16346:4;16342:12;16332:22;;16399:1;16393:4;16389:12;16420:18;16410:81;;16476:4;16468:6;16464:17;16454:27;;16410:81;16538:2;16530:6;16527:14;16507:18;16504:38;16501:84;;;16557:18;;:::i;:::-;16501:84;16322:269;16271:320;;;:::o;16597:180::-;16645:77;16642:1;16635:88;16742:4;16739:1;16732:15;16766:4;16763:1;16756:15;16783:180;16831:77;16828:1;16821:88;16928:4;16925:1;16918:15;16952:4;16949:1;16942:15;16969:185;17007:4;17027:18;17043:1;17027:18;:::i;:::-;17022:23;;17059:18;17075:1;17059:18;:::i;:::-;17054:23;;17096:1;17093;17090:8;17087:34;;;17101:18;;:::i;:::-;17087:34;17146:1;17143;17139:9;17131:17;;16969:185;;;;:::o;17160:191::-;17200:4;17220:20;17238:1;17220:20;:::i;:::-;17215:25;;17254:20;17272:1;17254:20;:::i;:::-;17249:25;;17293:1;17290;17287:8;17284:34;;;17298:18;;:::i;:::-;17284:34;17343:1;17340;17336:9;17328:17;;17160:191;;;;:::o;17357:305::-;17397:3;17416:20;17434:1;17416:20;:::i;:::-;17411:25;;17450:20;17468:1;17450:20;:::i;:::-;17445:25;;17604:1;17536:66;17532:74;17529:1;17526:81;17523:107;;;17610:18;;:::i;:::-;17523:107;17654:1;17651;17647:9;17640:16;;17357:305;;;;:::o;17668:94::-;17701:8;17749:5;17745:2;17741:14;17720:35;;17668:94;;;:::o;17768:::-;17807:7;17836:20;17850:5;17836:20;:::i;:::-;17825:31;;17768:94;;;:::o;17868:100::-;17907:7;17936:26;17956:5;17936:26;:::i;:::-;17925:37;;17868:100;;;:::o;17974:157::-;18079:45;18099:24;18117:5;18099:24;:::i;:::-;18079:45;:::i;:::-;18074:3;18067:58;17974:157;;:::o;18137:256::-;18249:3;18264:75;18335:3;18326:6;18264:75;:::i;:::-;18364:2;18359:3;18355:12;18348:19;;18384:3;18377:10;;18137:256;;;;:::o;18399:180::-;18447:77;18444:1;18437:88;18544:4;18541:1;18534:15;18568:4;18565:1;18558:15;18585:185;18625:1;18642:20;18660:1;18642:20;:::i;:::-;18637:25;;18676:20;18694:1;18676:20;:::i;:::-;18671:25;;18715:1;18705:35;;18720:18;;:::i;:::-;18705:35;18762:1;18759;18755:9;18750:14;;18585:185;;;;:::o;18776:108::-;18823:7;18852:26;18872:5;18852:26;:::i;:::-;18841:37;;18776:108;;;:::o;18890:189::-;19011:61;19039:32;19065:5;19039:32;:::i;:::-;19011:61;:::i;:::-;19006:3;18999:74;18890:189;;:::o;19085:288::-;19213:3;19228:91;19315:3;19306:6;19228:91;:::i;:::-;19344:2;19339:3;19335:12;19328:19;;19364:3;19357:10;;19085:288;;;;:::o;19379:79::-;19418:7;19447:5;19436:16;;19379:79;;;:::o;19464:157::-;19569:45;19589:24;19607:5;19589:24;:::i;:::-;19569:45;:::i;:::-;19564:3;19557:58;19464:157;;:::o;19627:256::-;19739:3;19754:75;19825:3;19816:6;19754:75;:::i;:::-;19854:2;19849:3;19845:12;19838:19;;19874:3;19867:10;;19627:256;;;;:::o;19889:348::-;19929:7;19952:20;19970:1;19952:20;:::i;:::-;19947:25;;19986:20;20004:1;19986:20;:::i;:::-;19981:25;;20174:1;20106:66;20102:74;20099:1;20096:81;20091:1;20084:9;20077:17;20073:105;20070:131;;;20181:18;;:::i;:::-;20070:131;20229:1;20226;20222:9;20211:20;;19889:348;;;;:::o;20243:139::-;20298:5;20329:6;20323:13;20314:22;;20345:31;20370:5;20345:31;:::i;:::-;20243:139;;;;:::o;20388:347::-;20456:6;20505:2;20493:9;20484:7;20480:23;20476:32;20473:119;;;20511:79;;:::i;:::-;20473:119;20631:1;20656:62;20710:7;20701:6;20690:9;20686:22;20656:62;:::i;:::-;20646:72;;20602:126;20388:347;;;;:::o;20741:143::-;20798:5;20829:6;20823:13;20814:22;;20845:33;20872:5;20845:33;:::i;:::-;20741:143;;;;:::o;20890:351::-;20960:6;21009:2;20997:9;20988:7;20984:23;20980:32;20977:119;;;21015:79;;:::i;:::-;20977:119;21135:1;21160:64;21216:7;21207:6;21196:9;21192:22;21160:64;:::i;:::-;21150:74;;21106:128;20890:351;;;;:::o;21247:167::-;21387:19;21383:1;21375:6;21371:14;21364:43;21247:167;:::o;21420:366::-;21562:3;21583:67;21647:2;21642:3;21583:67;:::i;:::-;21576:74;;21659:93;21748:3;21659:93;:::i;:::-;21777:2;21772:3;21768:12;21761:19;;21420:366;;;:::o;21792:419::-;21958:4;21996:2;21985:9;21981:18;21973:26;;22045:9;22039:4;22035:20;22031:1;22020:9;22016:17;22009:47;22073:131;22199:4;22073:131;:::i;:::-;22065:139;;21792:419;;;:::o;22217:170::-;22357:22;22353:1;22345:6;22341:14;22334:46;22217:170;:::o;22393:366::-;22535:3;22556:67;22620:2;22615:3;22556:67;:::i;:::-;22549:74;;22632:93;22721:3;22632:93;:::i;:::-;22750:2;22745:3;22741:12;22734:19;;22393:366;;;:::o;22765:419::-;22931:4;22969:2;22958:9;22954:18;22946:26;;23018:9;23012:4;23008:20;23004:1;22993:9;22989:17;22982:47;23046:131;23172:4;23046:131;:::i;:::-;23038:139;;22765:419;;;:::o;23190:233::-;23229:3;23252:24;23270:5;23252:24;:::i;:::-;23243:33;;23298:66;23291:5;23288:77;23285:103;;;23368:18;;:::i;:::-;23285:103;23415:1;23408:5;23404:13;23397:20;;23190:233;;;:::o;23429:221::-;23569:34;23565:1;23557:6;23553:14;23546:58;23638:4;23633:2;23625:6;23621:15;23614:29;23429:221;:::o;23656:366::-;23798:3;23819:67;23883:2;23878:3;23819:67;:::i;:::-;23812:74;;23895:93;23984:3;23895:93;:::i;:::-;24013:2;24008:3;24004:12;23997:19;;23656:366;;;:::o;24028:419::-;24194:4;24232:2;24221:9;24217:18;24209:26;;24281:9;24275:4;24271:20;24267:1;24256:9;24252:17;24245:47;24309:131;24435:4;24309:131;:::i;:::-;24301:139;;24028:419;;;:::o;24453:165::-;24593:17;24589:1;24581:6;24577:14;24570:41;24453:165;:::o;24624:366::-;24766:3;24787:67;24851:2;24846:3;24787:67;:::i;:::-;24780:74;;24863:93;24952:3;24863:93;:::i;:::-;24981:2;24976:3;24972:12;24965:19;;24624:366;;;:::o;24996:419::-;25162:4;25200:2;25189:9;25185:18;25177:26;;25249:9;25243:4;25239:20;25235:1;25224:9;25220:17;25213:47;25277:131;25403:4;25277:131;:::i;:::-;25269:139;;24996:419;;;:::o;25421:182::-;25561:34;25557:1;25549:6;25545:14;25538:58;25421:182;:::o;25609:366::-;25751:3;25772:67;25836:2;25831:3;25772:67;:::i;:::-;25765:74;;25848:93;25937:3;25848:93;:::i;:::-;25966:2;25961:3;25957:12;25950:19;;25609:366;;;:::o;25981:419::-;26147:4;26185:2;26174:9;26170:18;26162:26;;26234:9;26228:4;26224:20;26220:1;26209:9;26205:17;26198:47;26262:131;26388:4;26262:131;:::i;:::-;26254:139;;25981:419;;;:::o;26406:227::-;26546:34;26542:1;26534:6;26530:14;26523:58;26615:10;26610:2;26602:6;26598:15;26591:35;26406:227;:::o;26639:366::-;26781:3;26802:67;26866:2;26861:3;26802:67;:::i;:::-;26795:74;;26878:93;26967:3;26878:93;:::i;:::-;26996:2;26991:3;26987:12;26980:19;;26639:366;;;:::o;27011:419::-;27177:4;27215:2;27204:9;27200:18;27192:26;;27264:9;27258:4;27254:20;27250:1;27239:9;27235:17;27228:47;27292:131;27418:4;27292:131;:::i;:::-;27284:139;;27011:419;;;:::o;27436:238::-;27576:34;27572:1;27564:6;27560:14;27553:58;27645:21;27640:2;27632:6;27628:15;27621:46;27436:238;:::o;27680:366::-;27822:3;27843:67;27907:2;27902:3;27843:67;:::i;:::-;27836:74;;27919:93;28008:3;27919:93;:::i;:::-;28037:2;28032:3;28028:12;28021:19;;27680:366;;;:::o;28052:419::-;28218:4;28256:2;28245:9;28241:18;28233:26;;28305:9;28299:4;28295:20;28291:1;28280:9;28276:17;28269:47;28333:131;28459:4;28333:131;:::i;:::-;28325:139;;28052:419;;;:::o;28477:171::-;28516:3;28539:24;28557:5;28539:24;:::i;:::-;28530:33;;28585:4;28578:5;28575:15;28572:41;;;28593:18;;:::i;:::-;28572:41;28640:1;28633:5;28629:13;28622:20;;28477:171;;;:::o;28654:167::-;28691:3;28714:22;28730:5;28714:22;:::i;:::-;28705:31;;28758:4;28751:5;28748:15;28745:41;;;28766:18;;:::i;:::-;28745:41;28813:1;28806:5;28802:13;28795:20;;28654:167;;;:::o;28827:223::-;28967:34;28963:1;28955:6;28951:14;28944:58;29036:6;29031:2;29023:6;29019:15;29012:31;28827:223;:::o;29056:366::-;29198:3;29219:67;29283:2;29278:3;29219:67;:::i;:::-;29212:74;;29295:93;29384:3;29295:93;:::i;:::-;29413:2;29408:3;29404:12;29397:19;;29056:366;;;:::o;29428:419::-;29594:4;29632:2;29621:9;29617:18;29609:26;;29681:9;29675:4;29671:20;29667:1;29656:9;29652:17;29645:47;29709:131;29835:4;29709:131;:::i;:::-;29701:139;;29428:419;;;:::o;29853:221::-;29993:34;29989:1;29981:6;29977:14;29970:58;30062:4;30057:2;30049:6;30045:15;30038:29;29853:221;:::o;30080:366::-;30222:3;30243:67;30307:2;30302:3;30243:67;:::i;:::-;30236:74;;30319:93;30408:3;30319:93;:::i;:::-;30437:2;30432:3;30428:12;30421:19;;30080:366;;;:::o;30452:419::-;30618:4;30656:2;30645:9;30641:18;30633:26;;30705:9;30699:4;30695:20;30691:1;30680:9;30676:17;30669:47;30733:131;30859:4;30733:131;:::i;:::-;30725:139;;30452:419;;;:::o;30877:168::-;31017:20;31013:1;31005:6;31001:14;30994:44;30877:168;:::o;31051:366::-;31193:3;31214:67;31278:2;31273:3;31214:67;:::i;:::-;31207:74;;31290:93;31379:3;31290:93;:::i;:::-;31408:2;31403:3;31399:12;31392:19;;31051:366;;;:::o;31423:419::-;31589:4;31627:2;31616:9;31612:18;31604:26;;31676:9;31670:4;31666:20;31662:1;31651:9;31647:17;31640:47;31704:131;31830:4;31704:131;:::i;:::-;31696:139;;31423:419;;;:::o;31848:224::-;31988:34;31984:1;31976:6;31972:14;31965:58;32057:7;32052:2;32044:6;32040:15;32033:32;31848:224;:::o;32078:366::-;32220:3;32241:67;32305:2;32300:3;32241:67;:::i;:::-;32234:74;;32317:93;32406:3;32317:93;:::i;:::-;32435:2;32430:3;32426:12;32419:19;;32078:366;;;:::o;32450:419::-;32616:4;32654:2;32643:9;32639:18;32631:26;;32703:9;32697:4;32693:20;32689:1;32678:9;32674:17;32667:47;32731:131;32857:4;32731:131;:::i;:::-;32723:139;;32450:419;;;:::o;32875:222::-;33015:34;33011:1;33003:6;32999:14;32992:58;33084:5;33079:2;33071:6;33067:15;33060:30;32875:222;:::o;33103:366::-;33245:3;33266:67;33330:2;33325:3;33266:67;:::i;:::-;33259:74;;33342:93;33431:3;33342:93;:::i;:::-;33460:2;33455:3;33451:12;33444:19;;33103:366;;;:::o;33475:419::-;33641:4;33679:2;33668:9;33664:18;33656:26;;33728:9;33722:4;33718:20;33714:1;33703:9;33699:17;33692:47;33756:131;33882:4;33756:131;:::i;:::-;33748:139;;33475:419;;;:::o;33900:220::-;34040:34;34036:1;34028:6;34024:14;34017:58;34109:3;34104:2;34096:6;34092:15;34085:28;33900:220;:::o;34126:366::-;34268:3;34289:67;34353:2;34348:3;34289:67;:::i;:::-;34282:74;;34365:93;34454:3;34365:93;:::i;:::-;34483:2;34478:3;34474:12;34467:19;;34126:366;;;:::o;34498:419::-;34664:4;34702:2;34691:9;34687:18;34679:26;;34751:9;34745:4;34741:20;34737:1;34726:9;34722:17;34715:47;34779:131;34905:4;34779:131;:::i;:::-;34771:139;;34498:419;;;:::o;34923:225::-;35063:34;35059:1;35051:6;35047:14;35040:58;35132:8;35127:2;35119:6;35115:15;35108:33;34923:225;:::o;35154:366::-;35296:3;35317:67;35381:2;35376:3;35317:67;:::i;:::-;35310:74;;35393:93;35482:3;35393:93;:::i;:::-;35511:2;35506:3;35502:12;35495:19;;35154:366;;;:::o;35526:419::-;35692:4;35730:2;35719:9;35715:18;35707:26;;35779:9;35773:4;35769:20;35765:1;35754:9;35750:17;35743:47;35807:131;35933:4;35807:131;:::i;:::-;35799:139;;35526:419;;;:::o
Swarm Source
ipfs://7bcf342bdba4d5f101687e078d6ca6064e90c8f50741a93d593b073bf811ec6f
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.