Token EXZENSVERS
Overview ERC-20
Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
5,000,000,000 EXSV
Holders:
276 addresses
Transfers:
-
Contract:
Decimals:
18
Official Site:
[ Download CSV Export ]
[ Download CSV Export ]
OVERVIEW
ExzensVers, gameFi virtual giants football field, offices residences by integrating meta. It was prepared on the basis of Play-to-Earn.Update? Click here to update the token ICO / general information
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x1e1aa510428da6d7eb56d9112b396f32c85e04b4
Contract Name:
LERC20
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-11 */ //SPDX-License-Identifier: Unlicense pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface ILssController { function beforeTransfer(address sender, address recipient, uint256 amount) external; function beforeTransferFrom(address msgSender, address sender, address recipient, uint256 amount) external; function beforeApprove(address sender, address spender, uint256 amount) external; function beforeIncreaseAllowance(address msgSender, address spender, uint256 addedValue) external; function beforeDecreaseAllowance(address msgSender, address spender, uint256 subtractedValue) external; } contract LERC20 is Context { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; address public recoveryAdmin; address private recoveryAdminCandidate; bytes32 private recoveryAdminKeyHash; address public admin; uint256 public timelockPeriod; uint256 public losslessTurnOffTimestamp; bool public isLosslessOn = true; ILssController public lossless; constructor(uint256 totalSupply_, string memory name_, string memory symbol_, address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_) { _mint(_msgSender(), totalSupply_); _name = name_; _symbol = symbol_; admin = admin_; recoveryAdmin = recoveryAdmin_; recoveryAdminCandidate = address(0); recoveryAdminKeyHash = ""; timelockPeriod = timelockPeriod_; losslessTurnOffTimestamp = 0; lossless = ILssController(lossless_); } event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); event NewAdmin(address indexed _newAdmin); event NewRecoveryAdminProposal(address indexed _candidate); event NewRecoveryAdmin(address indexed _newAdmin); event LosslessTurnOffProposal(uint256 _turnOffDate); event LosslessOff(); event LosslessOn(); // --- LOSSLESS modifiers --- modifier lssAprove(address spender, uint256 amount) { if (isLosslessOn) { lossless.beforeApprove(_msgSender(), spender, amount); } _; } modifier lssTransfer(address recipient, uint256 amount) { if (isLosslessOn) { lossless.beforeTransfer(_msgSender(), recipient, amount); } _; } modifier lssTransferFrom(address sender, address recipient, uint256 amount) { if (isLosslessOn) { lossless.beforeTransferFrom(_msgSender(),sender, recipient, amount); } _; } modifier lssIncreaseAllowance(address spender, uint256 addedValue) { if (isLosslessOn) { lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue); } _; } modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) { if (isLosslessOn) { lossless.beforeDecreaseAllowance(_msgSender(), spender, subtractedValue); } _; } modifier onlyRecoveryAdmin() { require(_msgSender() == recoveryAdmin, "LERC20: Must be recovery admin"); _; } // --- LOSSLESS management --- function transferOutBlacklistedFunds(address[] calldata from) external { require(_msgSender() == address(lossless), "LERC20: Only lossless contract"); uint256 fromLength = from.length; uint256 totalAmount = 0; for (uint256 i = 0; i < fromLength; i++) { address fromAddress = from[i]; uint256 fromBalance = _balances[fromAddress]; _balances[fromAddress] = 0; totalAmount += fromBalance; emit Transfer(fromAddress, address(lossless), fromBalance); } _balances[address(lossless)] += totalAmount; } function setLosslessAdmin(address newAdmin) external onlyRecoveryAdmin { require(newAdmin != admin, "LERC20: Cannot set same address"); emit NewAdmin(newAdmin); admin = newAdmin; } function transferRecoveryAdminOwnership(address candidate, bytes32 keyHash) external onlyRecoveryAdmin { recoveryAdminCandidate = candidate; recoveryAdminKeyHash = keyHash; emit NewRecoveryAdminProposal(candidate); } function acceptRecoveryAdminOwnership(bytes memory key) external { require(_msgSender() == recoveryAdminCandidate, "LERC20: Must be canditate"); require(keccak256(key) == recoveryAdminKeyHash, "LERC20: Invalid key"); emit NewRecoveryAdmin(recoveryAdminCandidate); recoveryAdmin = recoveryAdminCandidate; recoveryAdminCandidate = address(0); } function proposeLosslessTurnOff() external onlyRecoveryAdmin { require(losslessTurnOffTimestamp == 0, "LERC20: TurnOff already proposed"); require(isLosslessOn, "LERC20: Lossless already off"); losslessTurnOffTimestamp = block.timestamp + timelockPeriod; emit LosslessTurnOffProposal(losslessTurnOffTimestamp); } function executeLosslessTurnOff() external onlyRecoveryAdmin { require(losslessTurnOffTimestamp != 0, "LERC20: TurnOff not proposed"); require(losslessTurnOffTimestamp <= block.timestamp, "LERC20: Time lock in progress"); isLosslessOn = false; losslessTurnOffTimestamp = 0; emit LosslessOff(); } function executeLosslessTurnOn() external onlyRecoveryAdmin { require(!isLosslessOn, "LERC20: Lossless already on"); losslessTurnOffTimestamp = 0; isLosslessOn = true; emit LosslessOn(); } function getAdmin() public view virtual returns (address) { return admin; } // --- ERC20 methods --- function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return 18; } function totalSupply() public view virtual returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual lssTransfer(recipient, amount) returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual lssAprove(spender, amount) returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual lssTransferFrom(sender, recipient, amount) returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "LERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual lssIncreaseAllowance(spender, addedValue) returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual lssDecreaseAllowance(spender, subtractedValue) returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "LERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "LERC20: transfer from the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "LERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "LERC20: mint to the zero address"); _totalSupply += amount; // Cannot overflow because the sum of all user // balances can't exceed the max uint256 value. unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","type":"address"}],"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":[],"name":"LosslessOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"NewRecoveryAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_candidate","type":"address"}],"name":"NewRecoveryAdminProposal","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":[{"internalType":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","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":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lossless","outputs":[{"internalType":"contract ILssController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockPeriod","outputs":[{"internalType":"uint256","name":"","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":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600b805460ff191660011790553480156200001e57600080fd5b50604051620018ec380380620018ec833981016040819052620000419162000325565b6200004d3388620000e9565b855162000062906003906020890190620001af565b50845162000078906004906020880190620001af565b50600880546001600160a01b039586166001600160a01b03199182161790915560058054948616948216949094179093556006805490931690925560006007819055600991909155600a55600b80549190921661010002610100600160a81b03199091161790555062000450915050565b6001600160a01b038216620001445760405162461bcd60e51b815260206004820181905260248201527f4c45524332303a206d696e7420746f20746865207a65726f2061646472657373604482015260640160405180910390fd5b8060026000828254620001589190620003d8565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b828054620001bd90620003fd565b90600052602060002090601f016020900481019282620001e157600085556200022c565b82601f10620001fc57805160ff19168380011785556200022c565b828001600101855582156200022c579182015b828111156200022c5782518255916020019190600101906200020f565b506200023a9291506200023e565b5090565b5b808211156200023a57600081556001016200023f565b80516001600160a01b03811681146200026d57600080fd5b919050565b600082601f83011262000283578081fd5b81516001600160401b0380821115620002a057620002a06200043a565b604051601f8301601f19908116603f01168101908282118183101715620002cb57620002cb6200043a565b81604052838152602092508683858801011115620002e7578485fd5b8491505b838210156200030a5785820183015181830184015290820190620002eb565b838211156200031b57848385830101525b9695505050505050565b600080600080600080600060e0888a03121562000340578283fd5b875160208901519097506001600160401b03808211156200035f578485fd5b6200036d8b838c0162000272565b975060408a015191508082111562000383578485fd5b50620003928a828b0162000272565b955050620003a36060890162000255565b9350620003b36080890162000255565b925060a08801519150620003ca60c0890162000255565b905092959891949750929550565b60008219821115620003f857634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806200041257607f821691505b602082108114156200043457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61148c80620004606000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636e9960c3116100de578063a9059cbb11610097578063ccfa214f11610071578063ccfa214f1461031b578063d6e242b814610328578063dd62ed3e14610330578063f851a4401461036957600080fd5b8063a9059cbb146102ed578063b38fe95714610300578063b5c228771461030857600080fd5b80636e9960c31461027257806370a082311461028357806393310ffe146102ac578063936af911146102bf57806395d89b41146102d2578063a457c2d7146102da57600080fd5b8063313ce56711610130578063313ce567146101fc57806334f6ebf51461020b578063395093511461023b5780635b8a194a1461024e5780635f6529a31461025657806361086b001461026957600080fd5b806306fdde0314610178578063095ea7b31461019657806318160ddd146101b957806323b872dd146101cb5780632baa3c9e146101de5780632ecaf675146101f3575b600080fd5b61018061037c565b60405161018d919061131b565b60405180910390f35b6101a96101a43660046111b4565b61040e565b604051901515815260200161018d565b6002545b60405190815260200161018d565b6101a96101d9366004611179565b6104a0565b6101f16101ec366004611126565b6105f4565b005b6101bd60095481565b6040516012815260200161018d565b600b546102239061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161018d565b6101a96102493660046111b4565b6106db565b6101f161078d565b600554610223906001600160a01b031681565b6101bd600a5481565b6008546001600160a01b0316610223565b6101bd610291366004611126565b6001600160a01b031660009081526020819052604090205490565b6101f16102ba3660046111b4565b610850565b6101f16102cd3660046111dd565b6108d3565b610180610a47565b6101a96102e83660046111b4565b610a56565b6101a96102fb3660046111b4565b610b70565b6101f1610bf7565b6101f161031636600461124d565b610d05565b600b546101a99060ff1681565b6101f1610e15565b6101bd61033e366004611147565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600854610223906001600160a01b031681565b60606003805461038b906113d4565b80601f01602080910402602001604051908101604052809291908181526020018280546103b7906113d4565b80156104045780601f106103d957610100808354040283529160200191610404565b820191906000526020600020905b8154815290600101906020018083116103e757829003601f168201915b5050505050905090565b600b546000908390839060ff161561048a57600b5461010090046001600160a01b03166347abf3be3384846040518463ffffffff1660e01b8152600401610457939291906112f7565b600060405180830381600087803b15801561047157600080fd5b505af1158015610485573d6000803e3d6000fd5b505050505b610495338686610f31565b506001949350505050565b600b5460009084908490849060ff161561053c57600b5461010090046001600160a01b031663379f5c69336040516001600160e01b031960e084901b1681526001600160a01b0391821660048201528187166024820152908516604482015260648101849052608401600060405180830381600087803b15801561052357600080fd5b505af1158015610537573d6000803e3d6000fd5b505050505b6001600160a01b0387166000908152600160209081526040808320338452909152902054858110156105c75760405162461bcd60e51b815260206004820152602960248201527f4c45524332303a207472616e7366657220616d6f756e74206578636565647320604482015268616c6c6f77616e636560b81b60648201526084015b60405180910390fd5b6105d2888888610f92565b6105e688336105e189856113bd565b610f31565b506001979650505050505050565b6005546001600160a01b0316336001600160a01b0316146106275760405162461bcd60e51b81526004016105be9061136e565b6008546001600160a01b03828116911614156106855760405162461bcd60e51b815260206004820152601f60248201527f4c45524332303a2043616e6e6f74207365742073616d6520616464726573730060448201526064016105be565b6040516001600160a01b038216907f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c90600090a2600880546001600160a01b0319166001600160a01b0392909216919091179055565b600b546000908390839060ff161561075757600b5461010090046001600160a01b031663cf5961bb3384846040518463ffffffff1660e01b8152600401610724939291906112f7565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b3360008181526001602090815260408083206001600160a01b038a168452909152902054610495919087906105e19088906113a5565b6005546001600160a01b0316336001600160a01b0316146107c05760405162461bcd60e51b81526004016105be9061136e565b600b5460ff16156108135760405162461bcd60e51b815260206004820152601b60248201527f4c45524332303a204c6f73736c65737320616c7265616479206f6e000000000060448201526064016105be565b6000600a819055600b805460ff191660011790556040517f1ba3b66404043da8297d0b876fa6464f2cb127edfc6626308046d4503028322b9190a1565b6005546001600160a01b0316336001600160a01b0316146108835760405162461bcd60e51b81526004016105be9061136e565b600680546001600160a01b0319166001600160a01b03841690811790915560078290556040517f6c591da8da2f6e69746d7d9ae61c27ee29fbe303798141b4942ae2aef54274b190600090a25050565b600b5461010090046001600160a01b0316336001600160a01b03161461093b5760405162461bcd60e51b815260206004820152601e60248201527f4c45524332303a204f6e6c79206c6f73736c65737320636f6e7472616374000060448201526064016105be565b806000805b82811015610a0c57600085858381811061096a57634e487b7160e01b600052603260045260246000fd5b905060200201602081019061097f9190611126565b6001600160a01b038116600090815260208190526040812080549190559091506109a981856113a5565b600b546040518381529195506001600160a01b03610100909104811691908416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350508080610a049061140f565b915050610940565b50600b5461010090046001600160a01b031660009081526020819052604081208054839290610a3c9084906113a5565b909155505050505050565b60606004805461038b906113d4565b600b546000908390839060ff1615610ad257600b5461010090046001600160a01b031663568c75a93384846040518463ffffffff1660e01b8152600401610a9f939291906112f7565b600060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b505050505b3360009081526001602090815260408083206001600160a01b038916845290915290205484811015610b555760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60448201526577207a65726f60d01b60648201526084016105be565b610b6433876105e188856113bd565b50600195945050505050565b600b546000908390839060ff1615610bec57600b5461010090046001600160a01b0316631ffb811f3384846040518463ffffffff1660e01b8152600401610bb9939291906112f7565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b505050505b610495338686610f92565b6005546001600160a01b0316336001600160a01b031614610c2a5760405162461bcd60e51b81526004016105be9061136e565b600a54610c795760405162461bcd60e51b815260206004820152601c60248201527f4c45524332303a205475726e4f6666206e6f742070726f706f7365640000000060448201526064016105be565b42600a541115610ccb5760405162461bcd60e51b815260206004820152601d60248201527f4c45524332303a2054696d65206c6f636b20696e2070726f677265737300000060448201526064016105be565b600b805460ff191690556000600a8190556040517f3eb72350c9c7928d31e9ab450bfff2c159434aa4b82658a7d8eae7f109cb4e7b9190a1565b6006546001600160a01b0316336001600160a01b031614610d685760405162461bcd60e51b815260206004820152601960248201527f4c45524332303a204d7573742062652063616e6469746174650000000000000060448201526064016105be565b6007548151602083012014610db55760405162461bcd60e51b81526020600482015260136024820152724c45524332303a20496e76616c6964206b657960681b60448201526064016105be565b6006546040516001600160a01b03909116907fb94bba6936ec7f75ee931dadf6e1a4d66b43d09b6fa0178fb13df9b77fb5841f90600090a25060068054600580546001600160a01b03199081166001600160a01b03841617909155169055565b6005546001600160a01b0316336001600160a01b031614610e485760405162461bcd60e51b81526004016105be9061136e565b600a5415610e985760405162461bcd60e51b815260206004820181905260248201527f4c45524332303a205475726e4f666620616c72656164792070726f706f73656460448201526064016105be565b600b5460ff16610eea5760405162461bcd60e51b815260206004820152601c60248201527f4c45524332303a204c6f73736c65737320616c7265616479206f66660000000060448201526064016105be565b600954610ef790426113a5565b600a8190556040519081527f6ca688e6e3ddd707280140b2bf0106afe883689b6c74e68cbd517576dd9c245a9060200160405180910390a1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ff75760405162461bcd60e51b815260206004820152602660248201527f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160448201526564647265737360d01b60648201526084016105be565b6001600160a01b038316600090815260208190526040902054818110156110705760405162461bcd60e51b815260206004820152602760248201527f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060448201526662616c616e636560c81b60648201526084016105be565b61107a82826113bd565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906110b09084906113a5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110fc91815260200190565b60405180910390a350505050565b80356001600160a01b038116811461112157600080fd5b919050565b600060208284031215611137578081fd5b6111408261110a565b9392505050565b60008060408385031215611159578081fd5b6111628361110a565b91506111706020840161110a565b90509250929050565b60008060006060848603121561118d578081fd5b6111968461110a565b92506111a46020850161110a565b9150604084013590509250925092565b600080604083850312156111c6578182fd5b6111cf8361110a565b946020939093013593505050565b600080602083850312156111ef578182fd5b823567ffffffffffffffff80821115611206578384fd5b818501915085601f830112611219578384fd5b813581811115611227578485fd5b8660208260051b850101111561123b578485fd5b60209290920196919550909350505050565b60006020828403121561125e578081fd5b813567ffffffffffffffff80821115611275578283fd5b818401915084601f830112611288578283fd5b81358181111561129a5761129a611440565b604051601f8201601f19908116603f011681019083821181831017156112c2576112c2611440565b816040528281528760208487010111156112da578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000602080835283518082850152825b818110156113475785810183015185820160400152820161132b565b818111156113585783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601e908201527f4c45524332303a204d757374206265207265636f766572792061646d696e0000604082015260600190565b600082198211156113b8576113b861142a565b500190565b6000828210156113cf576113cf61142a565b500390565b600181811c908216806113e857607f821691505b6020821081141561140957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156114235761142361142a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220d7b29f794c6bd31102907514abadfd253d60fdd9880d3d41df27166e3d6f466264736f6c6343000804003300000000000000000000000000000000000000000052b7d2dcc80cd2e400000000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000013dd8b8f54c3b54860f8d41a6fbff7ffc6bf01ef00000000000000000000000013dd8b8f54c3b54860f8d41a6fbff7ffc6bf01ef000000000000000000000000000000000000000000000000000000000001518000000000000000000000000066622e2c1b991983e88132da19b2c31f710090350000000000000000000000000000000000000000000000000000000000000009646967697765617665000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034447570000000000000000000000000000000000000000000000000000000000
Deployed ByteCode Sourcemap
990:9257:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6421:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7303:187;;;;;;:::i;:::-;;:::i;:::-;;;4404:14:1;;4397:22;4379:41;;4367:2;4352:18;7303:187:0;4334:92:1;6715:99:0;6794:12;;6715:99;;;10615:25:1;;;10603:2;10588:18;6715:99:0;10570:76:1;7498:465:0;;;;;;:::i;:::-;;:::i;4464:212::-;;;;;;:::i;:::-;;:::i;:::-;;1396:29;;;;;;6623:84;;;6697:2;10793:36:1;;10781:2;10766:18;6623:84:0;10748:87:1;1516:30:0;;;;;;;;-1:-1:-1;;;;;1516:30:0;;;;;;-1:-1:-1;;;;;3354:32:1;;;3336:51;;3324:2;3309:18;1516:30:0;3291:102:1;7971:257:0;;;;;;:::i;:::-;;:::i;6055:229::-;;;:::i;1246:28::-;;;;;-1:-1:-1;;;;;1246:28:0;;;1432:39;;;;;;6292:89;6368:5;;-1:-1:-1;;;;;6368:5:0;6292:89;;6822:118;;;;;;:::i;:::-;-1:-1:-1;;;;;6914:18:0;6887:7;6914:18;;;;;;;;;;;;6822:118;4684:249;;;;;;:::i;:::-;;:::i;3824:632::-;;;;;;:::i;:::-;;:::i;6520:95::-;;;:::i;8236:425::-;;;;;;:::i;:::-;;:::i;6948:197::-;;;;;;:::i;:::-;;:::i;5702:345::-;;;:::i;4941:392::-;;;;;;:::i;:::-;;:::i;1478:31::-;;;;;;;;;5341:353;;;:::i;7153:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;7260:18:0;;;7233:7;7260:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7153:142;1369:20;;;;;-1:-1:-1;;;;;1369:20:0;;;6421:91;6466:13;6499:5;6492:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6421:91;:::o;7303:187::-;2660:12;;7404:4;;7378:7;;7387:6;;2660:12;;2656:98;;;2689:8;;;;;-1:-1:-1;;;;;2689:8:0;:22;178:10;2726:7;2735:6;2689:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2656:98;7421:39:::1;178:10:::0;7444:7:::1;7453:6;7421:8;:39::i;:::-;-1:-1:-1::0;7478:4:0::1;::::0;7303:187;-1:-1:-1;;;;7303:187:0:o;7498:465::-;3069:12;;7638:4;;7602:6;;7610:9;;7621:6;;3069:12;;3065:112;;;3098:8;;;;;-1:-1:-1;;;;;3098:8:0;:27;178:10;3098:67;;-1:-1:-1;;;;;;3098:67:0;;;;;;;-1:-1:-1;;;;;3685:15:1;;;3098:67:0;;;3667:34:1;3737:15;;;3717:18;;;3710:43;3789:15;;;3769:18;;;3762:43;3821:18;;;3814:34;;;3601:19;;3098:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:112;-1:-1:-1;;;;;7682:19:0;::::1;7655:24;7682:19:::0;;;:11:::1;:19;::::0;;;;;;;178:10;7682:33;;;;;;;;7734:26;;::::1;;7726:80;;;::::0;-1:-1:-1;;;7726:80:0;;6596:2:1;7726:80:0::1;::::0;::::1;6578:21:1::0;6635:2;6615:18;;;6608:30;6674:34;6654:18;;;6647:62;-1:-1:-1;;;6725:18:1;;;6718:39;6774:19;;7726:80:0::1;;;;;;;;;7817:36;7827:6;7835:9;7846:6;7817:9;:36::i;:::-;7874:57;7883:6:::0;178:10;7905:25:::1;7924:6:::0;7905:16;:25:::1;:::i;:::-;7874:8;:57::i;:::-;-1:-1:-1::0;7951:4:0::1;::::0;7498:465;-1:-1:-1;;;;;;;7498:465:0:o;4464:212::-;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;4566:5:::1;::::0;-1:-1:-1;;;;;4554:17:0;;::::1;4566:5:::0;::::1;4554:17;;4546:61;;;::::0;-1:-1:-1;;;4546:61:0;;5470:2:1;4546:61:0::1;::::0;::::1;5452:21:1::0;5509:2;5489:18;;;5482:30;5548:33;5528:18;;;5521:61;5599:18;;4546:61:0::1;5442:181:1::0;4546:61:0::1;4623:18;::::0;-1:-1:-1;;;;;4623:18:0;::::1;::::0;::::1;::::0;;;::::1;4652:5;:16:::0;;-1:-1:-1;;;;;;4652:16:0::1;-1:-1:-1::0;;;;;4652:16:0;;;::::1;::::0;;;::::1;::::0;;4464:212::o;7971:257::-;3286:12;;8101:4;;8071:7;;8080:10;;3286:12;;3282:112;;;3315:8;;;;;-1:-1:-1;;;;;3315:8:0;:32;178:10;3362:7;3371:10;3315:67;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3282:112;178:10;8150:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8150:34:0;::::1;::::0;;;;;;;;8118:80:::1;::::0;178:10;8141:7;;8150:47:::1;::::0;8187:10;;8150:47:::1;:::i;6055:229::-:0;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;6135:12:::1;::::0;::::1;;6134:13;6126:53;;;::::0;-1:-1:-1;;;6126:53:0;;9192:2:1;6126:53:0::1;::::0;::::1;9174:21:1::0;9231:2;9211:18;;;9204:30;9270:29;9250:18;;;9243:57;9317:18;;6126:53:0::1;9164:177:1::0;6126:53:0::1;6217:1;6190:24;:28:::0;;;6229:12:::1;:19:::0;;-1:-1:-1;;6229:19:0::1;6244:4;6229:19;::::0;;6264:12:::1;::::0;::::1;::::0;6217:1;6264:12:::1;6055:229::o:0;4684:249::-;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;4799:22:::1;:34:::0;;-1:-1:-1;;;;;;4799:34:0::1;-1:-1:-1::0;;;;;4799:34:0;::::1;::::0;;::::1;::::0;;;4844:20:::1;:30:::0;;;4890:35:::1;::::0;::::1;::::0;-1:-1:-1;;4890:35:0::1;4684:249:::0;;:::o;3824:632::-;3938:8;;;;;-1:-1:-1;;;;;3938:8:0;178:10;-1:-1:-1;;;;;3914:33:0;;3906:76;;;;-1:-1:-1;;;3906:76:0;;9905:2:1;3906:76:0;;;9887:21:1;9944:2;9924:18;;;9917:30;9983:32;9963:18;;;9956:60;10033:18;;3906:76:0;9877:180:1;3906:76:0;4016:4;3995:18;;4082:311;4106:10;4102:1;:14;4082:311;;;4138:19;4160:4;;4165:1;4160:7;;;;;-1:-1:-1;;;4160:7:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4204:22:0;;4182:19;4204:22;;;;;;;;;;;;4241:26;;;4138:29;;-1:-1:-1;4282:26:0;4204:22;4282:26;;:::i;:::-;4358:8;;4328:53;;10615:25:1;;;4282:26:0;;-1:-1:-1;;;;;;4358:8:0;;;;;;;4328:53;;;;;;10603:2:1;10588:18;4328:53:0;;;;;;;4082:311;;4118:3;;;;;:::i;:::-;;;;4082:311;;;-1:-1:-1;4423:8:0;;;;;-1:-1:-1;;;;;4423:8:0;4405:9;:28;;;;;;;;;;:43;;4437:11;;4405:9;:43;;4437:11;;4405:43;:::i;:::-;;;;-1:-1:-1;;;;;;3824:632:0:o;6520:95::-;6567:13;6600:7;6593:14;;;;;:::i;8236:425::-;3508:12;;8376:4;;8341:7;;8350:15;;3508:12;;3504:117;;;3537:8;;;;;-1:-1:-1;;;;;3537:8:0;:32;178:10;3584:7;3593:15;3537:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3504:117;178:10;8393:24:::1;8420:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8420:34:0;::::1;::::0;;;;;;;;8473:35;;::::1;;8465:86;;;::::0;-1:-1:-1;;;8465:86:0;;10264:2:1;8465:86:0::1;::::0;::::1;10246:21:1::0;10303:2;10283:18;;;10276:30;10342:34;10322:18;;;10315:62;-1:-1:-1;;;10393:18:1;;;10386:36;10439:19;;8465:86:0::1;10236:228:1::0;8465:86:0::1;8562:67;178:10:::0;8585:7;8594:34:::1;8613:15:::0;8594:16;:34:::1;:::i;8562:67::-;-1:-1:-1::0;8649:4:0::1;::::0;8236:425;-1:-1:-1;;;;;8236:425:0:o;6948:197::-;2853:12;;7056:4;;7028:9;;7039:6;;2853:12;;2849:101;;;2882:8;;;;;-1:-1:-1;;;;;2882:8:0;:23;178:10;2920:9;2931:6;2882:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2849:101;7073:42:::1;178:10:::0;7097:9:::1;7108:6;7073:9;:42::i;5702:345::-:0;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;5782:24:::1;::::0;5774:70:::1;;;::::0;-1:-1:-1;;;5774:70:0;;7354:2:1;5774:70:0::1;::::0;::::1;7336:21:1::0;7393:2;7373:18;;;7366:30;7432;7412:18;;;7405:58;7480:18;;5774:70:0::1;7326:178:1::0;5774:70:0::1;5891:15;5863:24;;:43;;5855:85;;;::::0;-1:-1:-1;;;5855:85:0;;5830:2:1;5855:85:0::1;::::0;::::1;5812:21:1::0;5869:2;5849:18;;;5842:30;5908:31;5888:18;;;5881:59;5957:18;;5855:85:0::1;5802:179:1::0;5855:85:0::1;5951:12;:20:::0;;-1:-1:-1;;5951:20:0::1;::::0;;5966:5:::1;5982:24;:28:::0;;;6026:13:::1;::::0;::::1;::::0;5966:5;6026:13:::1;5702:345::o:0;4941:392::-;5041:22;;-1:-1:-1;;;;;5041:22:0;178:10;-1:-1:-1;;;;;5025:38:0;;5017:76;;;;-1:-1:-1;;;5017:76:0;;8118:2:1;5017:76:0;;;8100:21:1;8157:2;8137:18;;;8130:30;8196:27;8176:18;;;8169:55;8241:18;;5017:76:0;8090:175:1;5017:76:0;5130:20;;5112:14;;;;;;:38;5104:70;;;;-1:-1:-1;;;5104:70:0;;7006:2:1;5104:70:0;;;6988:21:1;7045:2;7025:18;;;7018:30;-1:-1:-1;;;7064:18:1;;;7057:49;7123:18;;5104:70:0;6978:169:1;5104:70:0;5207:22;;5190:40;;-1:-1:-1;;;;;5207:22:0;;;;5190:40;;5207:22;;5190:40;-1:-1:-1;5257:22:0;;;5241:13;:38;;-1:-1:-1;;;;;;5241:38:0;;;-1:-1:-1;;;;;5257:22:0;;5241:38;;;;5290:35;;;4941:392::o;5341:353::-;3712:13;;-1:-1:-1;;;;;3712:13:0;178:10;-1:-1:-1;;;;;3696:29:0;;3688:72;;;;-1:-1:-1;;;3688:72:0;;;;;;;:::i;:::-;5421:24:::1;::::0;:29;5413:74:::1;;;::::0;-1:-1:-1;;;5413:74:0;;8472:2:1;5413:74:0::1;::::0;::::1;8454:21:1::0;;;8491:18;;;8484:30;8550:34;8530:18;;;8523:62;8602:18;;5413:74:0::1;8444:182:1::0;5413:74:0::1;5506:12;::::0;::::1;;5498:53;;;::::0;-1:-1:-1;;;5498:53:0;;9548:2:1;5498:53:0::1;::::0;::::1;9530:21:1::0;9587:2;9567:18;;;9560:30;9626;9606:18;;;9599:58;9674:18;;5498:53:0::1;9520:178:1::0;5498:53:0::1;5607:14;::::0;5589:32:::1;::::0;:15:::1;:32;:::i;:::-;5562:24;:59:::0;;;5637:49:::1;::::0;10615:25:1;;;5637:49:0::1;::::0;10603:2:1;10588:18;5637:49:0::1;;;;;;;5341:353::o:0;10058:186::-;-1:-1:-1;;;;;10152:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10204:32;;10615:25:1;;;10204:32:0;;10588:18:1;10204:32:0;;;;;;;10058:186;;;:::o;8669:464::-;-1:-1:-1;;;;;8775:20:0;;8767:71;;;;-1:-1:-1;;;8767:71:0;;7711:2:1;8767:71:0;;;7693:21:1;7750:2;7730:18;;;7723:30;7789:34;7769:18;;;7762:62;-1:-1:-1;;;7840:18:1;;;7833:36;7886:19;;8767:71:0;7683:228:1;8767:71:0;-1:-1:-1;;;;;8875:17:0;;8851:21;8875:17;;;;;;;;;;;8911:23;;;;8903:75;;;;-1:-1:-1;;;8903:75:0;;6188:2:1;8903:75:0;;;6170:21:1;6227:2;6207:18;;;6200:30;6266:34;6246:18;;;6239:62;-1:-1:-1;;;6317:18:1;;;6310:37;6364:19;;8903:75:0;6160:229:1;8903:75:0;9009:22;9025:6;9009:13;:22;:::i;:::-;-1:-1:-1;;;;;8989:17:0;;;:9;:17;;;;;;;;;;;:42;;;;9042:20;;;;;;;;:30;;9066:6;;8989:9;9042:30;;9066:6;;9042:30;:::i;:::-;;;;;;;;9107:9;-1:-1:-1;;;;;9090:35:0;9099:6;-1:-1:-1;;;;;9090:35:0;;9118:6;9090:35;;;;10615:25:1;;10603:2;10588:18;;10570:76;9090:35:0;;;;;;;;8669:464;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:1:o;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;1079:6;1087;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:1:o;1549:665::-;1635:6;1643;1696:2;1684:9;1675:7;1671:23;1667:32;1664:2;;;1717:6;1709;1702:22;1664:2;1762:9;1749:23;1791:18;1832:2;1824:6;1821:14;1818:2;;;1853:6;1845;1838:22;1818:2;1896:6;1885:9;1881:22;1871:32;;1941:7;1934:4;1930:2;1926:13;1922:27;1912:2;;1968:6;1960;1953:22;1912:2;2013;2000:16;2039:2;2031:6;2028:14;2025:2;;;2060:6;2052;2045:22;2025:2;2118:7;2113:2;2103:6;2100:1;2096:14;2092:2;2088:23;2084:32;2081:45;2078:2;;;2144:6;2136;2129:22;2078:2;2180;2172:11;;;;;2202:6;;-1:-1:-1;1654:560:1;;-1:-1:-1;;;;1654:560:1:o;2219:966::-;2287:6;2340:2;2328:9;2319:7;2315:23;2311:32;2308:2;;;2361:6;2353;2346:22;2308:2;2406:9;2393:23;2435:18;2476:2;2468:6;2465:14;2462:2;;;2497:6;2489;2482:22;2462:2;2540:6;2529:9;2525:22;2515:32;;2585:7;2578:4;2574:2;2570:13;2566:27;2556:2;;2612:6;2604;2597:22;2556:2;2653;2640:16;2675:2;2671;2668:10;2665:2;;;2681:18;;:::i;:::-;2756:2;2750:9;2724:2;2810:13;;-1:-1:-1;;2806:22:1;;;2830:2;2802:31;2798:40;2786:53;;;2854:18;;;2874:22;;;2851:46;2848:2;;;2900:18;;:::i;:::-;2940:10;2936:2;2929:22;2975:2;2967:6;2960:18;3015:7;3010:2;3005;3001;2997:11;2993:20;2990:33;2987:2;;;3041:6;3033;3026:22;2987:2;3102;3097;3093;3089:11;3084:2;3076:6;3072:15;3059:46;3125:15;;;3142:2;3121:24;3114:40;;;;3129:6;2298:887;-1:-1:-1;;;;;2298:887:1:o;3859:375::-;-1:-1:-1;;;;;4117:15:1;;;4099:34;;4169:15;;;;4164:2;4149:18;;4142:43;4216:2;4201:18;;4194:34;;;;4049:2;4034:18;;4016:218::o;4660:603::-;4772:4;4801:2;4830;4819:9;4812:21;4862:6;4856:13;4905:6;4900:2;4889:9;4885:18;4878:34;4930:4;4943:140;4957:6;4954:1;4951:13;4943:140;;;5052:14;;;5048:23;;5042:30;5018:17;;;5037:2;5014:26;5007:66;4972:10;;4943:140;;;5101:6;5098:1;5095:13;5092:2;;;5171:4;5166:2;5157:6;5146:9;5142:22;5138:31;5131:45;5092:2;-1:-1:-1;5247:2:1;5226:15;-1:-1:-1;;5222:29:1;5207:45;;;;5254:2;5203:54;;4781:482;-1:-1:-1;;;4781:482:1:o;8631:354::-;8833:2;8815:21;;;8872:2;8852:18;;;8845:30;8911:32;8906:2;8891:18;;8884:60;8976:2;8961:18;;8805:180::o;10840:128::-;10880:3;10911:1;10907:6;10904:1;10901:13;10898:2;;;10917:18;;:::i;:::-;-1:-1:-1;10953:9:1;;10888:80::o;10973:125::-;11013:4;11041:1;11038;11035:8;11032:2;;;11046:18;;:::i;:::-;-1:-1:-1;11083:9:1;;11022:76::o;11103:380::-;11182:1;11178:12;;;;11225;;;11246:2;;11300:4;11292:6;11288:17;11278:27;;11246:2;11353;11345:6;11342:14;11322:18;11319:38;11316:2;;;11399:10;11394:3;11390:20;11387:1;11380:31;11434:4;11431:1;11424:15;11462:4;11459:1;11452:15;11316:2;;11158:325;;;:::o;11488:135::-;11527:3;-1:-1:-1;;11548:17:1;;11545:2;;;11568:18;;:::i;:::-;-1:-1:-1;11615:1:1;11604:13;;11535:88::o;11628:127::-;11689:10;11684:3;11680:20;11677:1;11670:31;11720:4;11717:1;11710:15;11744:4;11741:1;11734:15;11760:127;11821:10;11816:3;11812:20;11809:1;11802:31;11852:4;11849:1;11842:15;11876:4;11873:1;11866:15
Swarm Source
ipfs://d7b29f794c6bd31102907514abadfd253d60fdd9880d3d41df27166e3d6f4662