Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 274 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Complete Order | 13915800 | 1106 days ago | IN | 0 ETH | 0.00308674 | ||||
Exchange | 13885969 | 1111 days ago | IN | 0 ETH | 0.01181866 | ||||
Complete Order | 13732274 | 1135 days ago | IN | 0 ETH | 0.00312485 | ||||
Exchange | 13732254 | 1135 days ago | IN | 0 ETH | 0.01930652 | ||||
Complete Order | 13372887 | 1191 days ago | IN | 0 ETH | 0.00422998 | ||||
Exchange | 13372421 | 1192 days ago | IN | 0 ETH | 0.02511923 | ||||
Complete Order | 13280347 | 1206 days ago | IN | 0 ETH | 0.00224837 | ||||
Exchange | 13274680 | 1207 days ago | IN | 0 ETH | 0.00768108 | ||||
Complete Order | 13247797 | 1211 days ago | IN | 0 ETH | 0.0019435 | ||||
Exchange | 13247772 | 1211 days ago | IN | 0 ETH | 0.01359645 | ||||
Complete Order | 13246633 | 1211 days ago | IN | 0 ETH | 0.0019054 | ||||
Exchange | 13246610 | 1211 days ago | IN | 0 ETH | 0.0113003 | ||||
Complete Order | 13221270 | 1215 days ago | IN | 0 ETH | 0.00163864 | ||||
Exchange | 13221248 | 1215 days ago | IN | 0 ETH | 0.00747306 | ||||
Complete Order | 13197605 | 1219 days ago | IN | 0 ETH | 0.0033535 | ||||
Complete Order | 13197605 | 1219 days ago | IN | 0 ETH | 0.00201972 | ||||
Exchange | 13192006 | 1220 days ago | IN | 0 ETH | 0.03731421 | ||||
Exchange | 13191250 | 1220 days ago | IN | 0 ETH | 0.01764472 | ||||
Complete Order | 13181659 | 1221 days ago | IN | 0 ETH | 0.00331539 | ||||
Exchange | 13075918 | 1237 days ago | IN | 0 ETH | 0.01390899 | ||||
Complete Order | 12870571 | 1269 days ago | IN | 0 ETH | 0.00114324 | ||||
Complete Order | 12870385 | 1270 days ago | IN | 0 ETH | 0.00080026 | ||||
Exchange | 12870365 | 1270 days ago | IN | 0 ETH | 0.00462707 | ||||
Exchange | 12868746 | 1270 days ago | IN | 0 ETH | 0.00335574 | ||||
Complete Order | 12643590 | 1305 days ago | IN | 0 ETH | 0.00041918 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
YouBridge
Compiler Version
v0.5.16+commit.9c3226ce
Contract Source Code (Solidity Multiple files format)
pragma solidity = 0.5.16; import "./SafeMath.sol"; import "./Pausable.sol"; contract Management is Pausable { mapping(address => uint8) private _managers; constructor() internal { _managers[0x90aB684F940F2eda414e79A853901d4018c34420] = 1; } modifier isManager{ require(_managers[msg.sender] == 1, "CALLER_IS_NOT_A_MANAGER"); _; } function addManager(address manager) external onlyOwner { _managers[manager] = 1; } function removeManager(address manager) external onlyOwner { _managers[manager] = 0; } function manager(address account) external view returns (bool) { return _managers[account] == 1; } } contract YouBridge is Management { using SafeMath for uint256; struct Order { uint8 toChain;// 1:ETH 2:HECO 3:BSC 4:TRX address sender; address recipient; uint256 amount; uint256 fee; uint8 state;// 1:WAITING 2:TRANSFERRED 101:CANCELED } struct Ledger { uint8 fromChain;//1:ETH 2:HECO 3:BSC 4:TRX address recipient; uint256 amount; uint8 state;// 2:TRANSFERRED string proof; } event OrderConsumed( uint256 orderId, uint8 fromChain, //1:ETH 2:HECO 3:BSC 4:TRX address recipient, uint256 amount, string proof ); mapping(uint256 => Order) public orders; mapping(uint256 => Ledger) public ledgers; address public feeTo; uint256 public feeRate = 30;// 30/10000 uint256 _nonce = 0; uint256 private constant oneDay = 1 days; uint256 private _dayBegin; uint256 private _limitOfOneDay = 10 ** 12; uint256 private _remainingOfDay; address public constant youToken = 0x1d32916CFA6534D261AD53E2498AB95505bd2510; event Transfer( uint256 orderId, uint8 chainId, address indexed sender, address indexed recipient, uint256 amount ); event Transferred( uint256 orderId, uint8 chainId, address indexed sender, address indexed recipient, uint256 amount ); event OrderCanceled( uint256 orderId, uint8 chainId, address indexed recipient, uint256 amount ); uint private unlocked = 1; modifier lock() { require(unlocked == 1, 'YouSwap: LOCKED'); unlocked = 0; _; unlocked = 1; } constructor() public { feeTo = 0x19B571eB4FbaD642b08E932055ca0e4dbc32fF69; _remainingOfDay = _limitOfOneDay; _dayBegin = 1617984000; } function limitOfOneDay() external view returns (uint256) { return _limitOfOneDay; } function remainingOfDay() external view returns (uint256) { if (now.sub(_dayBegin) > oneDay) { return _limitOfOneDay; } return _remainingOfDay; } function setLimitOfOneDay(uint256 newVal) onlyOwner external { require(newVal >= 10 ** 9, 'YouSwap:1000YOU_AT_LEAST'); require(newVal >= _limitOfOneDay.sub(_remainingOfDay), 'YouSwap:NOT_ALLOWED'); if(newVal > _limitOfOneDay){ _remainingOfDay = _remainingOfDay.add(newVal.sub(_limitOfOneDay)); } else{ _remainingOfDay = newVal.sub(_limitOfOneDay.sub(_remainingOfDay)); } _limitOfOneDay = newVal; } function setFeeTo(address account) onlyOwner external { feeTo = account; } function setFeeRate(uint256 rate) onlyOwner external { require(rate < 10000, 'YouSwap: NOT_ALLOWED'); feeRate = rate; } function exchange(uint8 chainId, address recipient, uint256 amount) external lock whenNotPaused returns (bool) { require(amount >= 10 ** 9, 'YouSwap:1000YOU_AT_LEAST'); if (now.sub(_dayBegin) > oneDay) { _remainingOfDay = _limitOfOneDay; uint256 deltaDays = now.sub(_dayBegin).div(oneDay); _dayBegin = _dayBegin.add(oneDay.mul(deltaDays)); } _remainingOfDay = _remainingOfDay.sub(amount); require(_remainingOfDay >= 0, 'YouSwap:EXCEEDS_THE_LIMIT_OF_ONE_DAY'); uint256 orderId = ++_nonce; Order storage order = orders[orderId]; require(order.state == 0, 'YouSwap:FORBIDDEN'); order.toChain = chainId; order.state = 1; order.sender = msg.sender; order.recipient = recipient; order.fee = amount.mul(feeRate).div(10000); order.amount = amount.sub(order.fee); _burnFrom(msg.sender, order.amount); _transferFrom(msg.sender, feeTo, order.fee); emit Transfer(orderId, chainId, order.sender, order.recipient, order.amount); return true; } function cancelOrder(uint256 orderId) public onlyOwner whenPaused returns (bool) { Order storage order = orders[orderId]; require(order.state == 1, 'YouSwap:FORBIDDEN'); order.state = 101; _mint(order.sender, order.amount); emit OrderCanceled(orderId, order.toChain, order.recipient, order.amount); return true; } function completeOrder(uint256 orderId) isManager public returns (bool) { Order storage order = orders[orderId]; require(order.state == 1, 'YouSwap:NOT_AVAILABLE'); order.state = 2; emit Transferred(orderId, order.toChain, order.sender, order.recipient, order.amount); return true; } function completeOrders(uint256[] calldata orderIds) external returns (bool) { require(orderIds.length < 256, 'YouSwap:NOT_ALLOWED'); for (uint8 i = 0; i < orderIds.length; i++) { completeOrder(orderIds[i]); } return true; } function consumeOrder(uint256 orderId, uint8 fromChain, address recipient, uint256 amount, string calldata proof, bytes32 orderHash) isManager external lock whenNotPaused { require(orderHash == keccak256((abi.encodePacked(orderId, fromChain, recipient, amount, proof))), "YouSwap:WRONG_ORDER_HASH"); require(amount < _limitOfOneDay, 'YouSwap:FORBIDDEN');//IGNORE FEE Ledger storage ledger = ledgers[orderId]; require(ledger.state != 2, 'YouSwap:CONSUMED_ALREADY'); ledger.fromChain = fromChain; ledger.recipient = recipient; ledger.amount = amount; ledger.state = 2; ledger.proof = proof; _mint(recipient, amount); emit OrderConsumed(orderId, fromChain, recipient, amount, proof); } function _mint(address recipient, uint256 amount) private { bytes4 methodId = bytes4(keccak256(bytes('mint(address,uint256)'))); (bool success, bytes memory data) = youToken.call(abi.encodeWithSelector(methodId, recipient, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'YouSwap: MINT_FAILED'); } function _burnFrom(address account, uint256 amount) private { bytes4 methodId = bytes4(keccak256(bytes('burnFrom(address,uint256)'))); (bool success, bytes memory data) = youToken.call(abi.encodeWithSelector(methodId, account, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'YouSwap: BURN_FROM_FAILED'); } function _transferFrom(address sender, address recipient, uint256 amount) private { bytes4 methodId = bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = youToken.call(abi.encodeWithSelector(methodId, sender, recipient, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'YouSwap: TRANSFER_FROM_FAILED'); } function _transfer(address recipient, uint amount) private { bytes4 methodId = bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = youToken.call(abi.encodeWithSelector(methodId, recipient, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), 'YouSwap: TRANSFER_FAILED'); } }
pragma solidity = 0.5.16; contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == msg.sender, "YouSwap: CALLER_IS_NOT_THE_OWNER"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "YouSwap: NEW_OWNER_IS_THE_ZERO_ADDRESS"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
pragma solidity = 0.5.16; import "./Ownable.sol"; contract Pausable is Ownable { event Paused(address account); event Unpaused(address account); bool private _paused; constructor () internal { _paused = false; } function paused() public view returns (bool) { return _paused; } modifier whenNotPaused() { require(!_paused, "YouSwap:PAUSED"); _; } modifier whenPaused() { require(_paused, "YouSwap:NOT_PAUSED"); _; } function pause() external onlyOwner whenNotPaused { _paused = true; emit Paused(msg.sender); } function unpause() external onlyOwner whenPaused { _paused = false; emit Unpaused(msg.sender); } }
pragma solidity = 0.5.16; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // 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 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"chainId","type":"uint8"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OrderCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"fromChain","type":"uint8"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"proof","type":"string"}],"name":"OrderConsumed","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"chainId","type":"uint8"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"orderId","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"chainId","type":"uint8"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"}],"name":"addManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"cancelOrder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"completeOrder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[]","name":"orderIds","type":"uint256[]"}],"name":"completeOrders","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint8","name":"fromChain","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"string","name":"proof","type":"string"},{"internalType":"bytes32","name":"orderHash","type":"bytes32"}],"name":"consumeOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"chainId","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"exchange","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ledgers","outputs":[{"internalType":"uint8","name":"fromChain","type":"uint8"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint8","name":"state","type":"uint8"},{"internalType":"string","name":"proof","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"limitOfOneDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"manager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"orders","outputs":[{"internalType":"uint8","name":"toChain","type":"uint8"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint8","name":"state","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"remainingOfDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"manager","type":"address"}],"name":"removeManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setFeeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"setLimitOfOneDay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"youToken","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052601e600555600060065564e8d4a510006008556001600a5534801561002857600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060146101000a81548160ff02191690831515021790555060018060007390ab684f940f2eda414e79a853901d4018c3442073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055507319b571eb4fbad642b08e932055ca0e4dbc32ff69600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008546009819055506360707a006007819055506135d0806101c26000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063942301f0116100c3578063b6adaaff1161007c578063b6adaaff1461061d578063bdf109b314610663578063d4d2e7f2146106d6578063e978919014610732578063f2fde38b1461082d578063f46901ed1461087157610158565b8063942301f01461036f5780639733e5cf14610433578063978bbdb9146104c4578063a85c38ef146104e2578063ac18de43146105ab578063af7b2a6e146105ef57610158565b8063514fcac711610115578063514fcac71461025f5780635c975abb146102a55780636b11ea20146102c7578063715018a6146103115780638456cb591461031b5780638da5cb5b1461032557610158565b8063017e7e581461015d5780631c12aca8146101a7578063248a9a20146101c55780632d06177a146101e35780633f4ba83a1461022757806345596e2e14610231575b600080fd5b6101656108b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101af6108db565b6040518082815260200191505060405180910390f35b6101cd61090f565b6040518082815260200191505060405180910390f35b610225600480360360208110156101f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b005b61022f610a36565b005b61025d6004803603602081101561024757600080fd5b8101908080359060200190929190505050610bf9565b005b61028b6004803603602081101561027557600080fd5b8101908080359060200190929190505050610d3c565b604051808215151515815260200191505060405180910390f35b6102ad61101a565b604051808215151515815260200191505060405180910390f35b6102cf611030565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610319611048565b005b6103236111c9565b005b61032d61138e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610431600480360360c081101561038557600080fd5b8101908080359060200190929190803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156103e357600080fd5b8201836020820111156103f557600080fd5b8035906020019184600183028401116401000000008311171561041757600080fd5b9091929391929390803590602001909291905050506113b7565b005b6104aa6004803603602081101561044957600080fd5b810190808035906020019064010000000081111561046657600080fd5b82018360208201111561047857600080fd5b8035906020019184602083028401116401000000008311171561049a57600080fd5b90919293919293905050506118ff565b604051808215151515815260200191505060405180910390f35b6104cc6119c6565b6040518082815260200191505060405180910390f35b61050e600480360360208110156104f857600080fd5b81019080803590602001909291905050506119cc565b604051808760ff1660ff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018260ff1660ff168152602001965050505050505060405180910390f35b6105ed600480360360208110156105c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a62565b005b61061b6004803603602081101561060557600080fd5b8101908080359060200190929190505050611b80565b005b6106496004803603602081101561063357600080fd5b8101908080359060200190929190505050611dc0565b604051808215151515815260200191505060405180910390f35b6106bc6004803603606081101561067957600080fd5b81019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612027565b604051808215151515815260200191505060405180910390f35b610718600480360360208110156106ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612585565b604051808215151515815260200191505060405180910390f35b61075e6004803603602081101561074857600080fd5b81019080803590602001909291905050506125e0565b604051808660ff1660ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018360ff1660ff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107ee5780820151818401526020810190506107d3565b50505050905090810190601f16801561081b5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61086f6004803603602081101561084357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126e8565b005b6108b36004803603602081101561088757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ee565b005b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000620151806108f6600754426129f490919063ffffffff16565b111561090657600854905061090c565b60095490505b90565b6000600854905090565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600060149054906101000a900460ff16610b7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75537761703a4e4f545f504155534544000000000000000000000000000081525060200191505060405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b6127108110610d32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f596f75537761703a204e4f545f414c4c4f57454400000000000000000000000081525060200191505060405180910390fd5b8060058190555050565b60003373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600060149054906101000a900460ff16610e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75537761703a4e4f545f504155534544000000000000000000000000000081525060200191505060405180910390fd5b600060026000848152602001908152602001600020905060018160040160009054906101000a900460ff1660ff1614610f23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f596f75537761703a464f5242494444454e00000000000000000000000000000081525060200191505060405180910390fd5b60658160040160006101000a81548160ff021916908360ff160217905550610f738160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260020154612a3e565b8060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe80032aa342fca89e793b118de6282fa9ce532d9ca0aaf8aad1aba02a27c0454848360000160009054906101000a900460ff168460020154604051808481526020018360ff1660ff168152602001828152602001935050505060405180910390a26001915050919050565b60008060149054906101000a900460ff16905090565b731d32916cfa6534d261ad53e2498ab95505bd251081565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600060149054906101000a900460ff161561130e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75537761703a50415553454400000000000000000000000000000000000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161461147b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43414c4c45525f49535f4e4f545f415f4d414e4147455200000000000000000081525060200191505060405180910390fd5b6001600a54146114f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f596f75537761703a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600a81905550600060149054906101000a900460ff161561157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75537761703a50415553454400000000000000000000000000000000000081525060200191505060405180910390fd5b868686868686604051602001808781526020018660ff1660ff1660f81b81526001018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140184815260200183838082843780830192505050965050505050505060405160208183030381529060405280519060200120811461167a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75537761703a57524f4e475f4f524445525f48415348000000000000000081525060200191505060405180910390fd5b60085484106116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f596f75537761703a464f5242494444454e00000000000000000000000000000081525060200191505060405180910390fd5b600060036000898152602001908152602001600020905060028160020160009054906101000a900460ff1660ff161415611793576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75537761703a434f4e53554d45445f414c5245414459000000000000000081525060200191505060405180910390fd5b868160000160006101000a81548160ff021916908360ff160217905550858160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084816001018190555060028160020160006101000a81548160ff021916908360ff160217905550838382600301919061182d929190613466565b506118388686612a3e565b7fa039486e3c492cf79efc221eee763d755f469f2dbc949e3566a6ac83be359132888888888888604051808781526020018660ff1660ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060405180910390a1506001600a8190555050505050505050565b6000610100838390501061197b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f596f75537761703a4e4f545f414c4c4f5745440000000000000000000000000081525060200191505060405180910390fd5b60008090505b838390508160ff1610156119bb576119ad84848360ff168181106119a157fe5b90506020020135611dc0565b508080600101915050611981565b506001905092915050565b60055481565b60026020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040160009054906101000a900460ff16905086565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b633b9aca00811015611cbc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75537761703a31303030594f555f41545f4c45415354000000000000000081525060200191505060405180910390fd5b611cd36009546008546129f490919063ffffffff16565b811015611d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f596f75537761703a4e4f545f414c4c4f5745440000000000000000000000000081525060200191505060405180910390fd5b600854811115611d8657611d7b611d6a600854836129f490919063ffffffff16565b600954612ca490919063ffffffff16565b600981905550611db6565b611daf611da06009546008546129f490919063ffffffff16565b826129f490919063ffffffff16565b6009819055505b8060088190555050565b600060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611e86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43414c4c45525f49535f4e4f545f415f4d414e4147455200000000000000000081525060200191505060405180910390fd5b600060026000848152602001908152602001600020905060018160040160009054906101000a900460ff1660ff1614611f27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f75537761703a4e4f545f415641494c41424c45000000000000000000000081525060200191505060405180910390fd5b60028160040160006101000a81548160ff021916908360ff1602179055508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f07d3d03b7c9aa3c2948f49bb16ff9942e614a908c1d105a2fd002411b0bc4f96858460000160009054906101000a900460ff168560020154604051808481526020018360ff1660ff168152602001828152602001935050505060405180910390a36001915050919050565b60006001600a54146120a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f596f75537761703a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600a81905550600060149054906101000a900460ff161561212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75537761703a50415553454400000000000000000000000000000000000081525060200191505060405180910390fd5b633b9aca008210156121a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75537761703a31303030594f555f41545f4c45415354000000000000000081525060200191505060405180910390fd5b620151806121bf600754426129f490919063ffffffff16565b111561222e5760085460098190555060006121fa620151806121ec600754426129f490919063ffffffff16565b612d2c90919063ffffffff16565b90506122266122158262015180612d7690919063ffffffff16565b600754612ca490919063ffffffff16565b600781905550505b612243826009546129f490919063ffffffff16565b600981905550600060095410156122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061350c6024913960400191505060405180910390fd5b60006006600081546001019190508190559050600060026000838152602001908152602001600020905060008160040160009054906101000a900460ff1660ff1614612359576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f596f75537761703a464f5242494444454e00000000000000000000000000000081525060200191505060405180910390fd5b858160000160006101000a81548160ff021916908360ff16021790555060018160040160006101000a81548160ff021916908360ff160217905550338160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061244361271061243560055487612d7690919063ffffffff16565b612d2c90919063ffffffff16565b81600301819055506124628160030154856129f490919063ffffffff16565b8160020181905550612478338260020154612dfc565b6124a933600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360030154613062565b8060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f13f2f0d38c63b6308d54d1afccc009dcc157b09334feafa719b4e7be5cdcf18a84898560020154604051808481526020018360ff1660ff168152602001828152602001935050505060405180910390a36001925050506001600a819055509392505050565b600060018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16149050919050565b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff1690806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126de5780601f106126b3576101008083540402835291602001916126de565b820191906000526020600020905b8154815290600101906020018083116126c157829003601f168201915b5050505050905085565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612830576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806135556026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000612a3683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132e0565b905092915050565b60006040518060400160405280601581526020017f6d696e7428616464726573732c75696e7432353629000000000000000000000081525080519060200120905060006060731d32916cfa6534d261ad53e2498ab95505bd251073ffffffffffffffffffffffffffffffffffffffff16838686604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612b845780518252602082019150602081019050602083039250612b61565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612be6576040519150601f19603f3d011682016040523d82523d6000602084013e612beb565b606091505b5091509150818015612c2b5750600081511480612c2a5750808060200190516020811015612c1857600080fd5b81019080805190602001909291905050505b5b612c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f596f75537761703a204d494e545f4641494c454400000000000000000000000081525060200191505060405180910390fd5b5050505050565b600080828401905083811015612d22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612d6e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133a0565b905092915050565b600080831415612d895760009050612df6565b6000828402905082848281612d9a57fe5b0414612df1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061357b6021913960400191505060405180910390fd5b809150505b92915050565b60006040518060400160405280601981526020017f6275726e46726f6d28616464726573732c75696e74323536290000000000000081525080519060200120905060006060731d32916cfa6534d261ad53e2498ab95505bd251073ffffffffffffffffffffffffffffffffffffffff16838686604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612f425780518252602082019150602081019050602083039250612f1f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612fa4576040519150601f19603f3d011682016040523d82523d6000602084013e612fa9565b606091505b5091509150818015612fe95750600081511480612fe85750808060200190516020811015612fd657600080fd5b81019080805190602001909291905050505b5b61305b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f596f75537761703a204255524e5f46524f4d5f4641494c45440000000000000081525060200191505060405180910390fd5b5050505050565b60006040518060600160405280602581526020016135306025913980519060200120905060006060731d32916cfa6534d261ad53e2498ab95505bd251073ffffffffffffffffffffffffffffffffffffffff1683878787604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106131bf578051825260208201915060208101905060208303925061319c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613221576040519150601f19603f3d011682016040523d82523d6000602084013e613226565b606091505b50915091508180156132665750600081511480613265575080806020019051602081101561325357600080fd5b81019080805190602001909291905050505b5b6132d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75537761703a205452414e534645525f46524f4d5f4641494c454400000081525060200191505060405180910390fd5b505050505050565b600083831115829061338d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613352578082015181840152602081019050613337565b50505050905090810190601f16801561337f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061344c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134115780820151818401526020810190506133f6565b50505050905090810190601f16801561343e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161345857fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106134a757803560ff19168380011785556134d5565b828001600101855582156134d5579182015b828111156134d45782358255916020019190600101906134b9565b5b5090506134e291906134e6565b5090565b61350891905b808211156135045760008160009055506001016134ec565b5090565b9056fe596f75537761703a455843454544535f5448455f4c494d49545f4f465f4f4e455f4441597472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629596f75537761703a204e45575f4f574e45525f49535f5448455f5a45524f5f41444452455353536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158205018348477633edcedfe5b452bfee3c7ba554448173c49a559503fc231aef31f64736f6c63430005100032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c8063942301f0116100c3578063b6adaaff1161007c578063b6adaaff1461061d578063bdf109b314610663578063d4d2e7f2146106d6578063e978919014610732578063f2fde38b1461082d578063f46901ed1461087157610158565b8063942301f01461036f5780639733e5cf14610433578063978bbdb9146104c4578063a85c38ef146104e2578063ac18de43146105ab578063af7b2a6e146105ef57610158565b8063514fcac711610115578063514fcac71461025f5780635c975abb146102a55780636b11ea20146102c7578063715018a6146103115780638456cb591461031b5780638da5cb5b1461032557610158565b8063017e7e581461015d5780631c12aca8146101a7578063248a9a20146101c55780632d06177a146101e35780633f4ba83a1461022757806345596e2e14610231575b600080fd5b6101656108b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101af6108db565b6040518082815260200191505060405180910390f35b6101cd61090f565b6040518082815260200191505060405180910390f35b610225600480360360208110156101f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610919565b005b61022f610a36565b005b61025d6004803603602081101561024757600080fd5b8101908080359060200190929190505050610bf9565b005b61028b6004803603602081101561027557600080fd5b8101908080359060200190929190505050610d3c565b604051808215151515815260200191505060405180910390f35b6102ad61101a565b604051808215151515815260200191505060405180910390f35b6102cf611030565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610319611048565b005b6103236111c9565b005b61032d61138e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610431600480360360c081101561038557600080fd5b8101908080359060200190929190803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156103e357600080fd5b8201836020820111156103f557600080fd5b8035906020019184600183028401116401000000008311171561041757600080fd5b9091929391929390803590602001909291905050506113b7565b005b6104aa6004803603602081101561044957600080fd5b810190808035906020019064010000000081111561046657600080fd5b82018360208201111561047857600080fd5b8035906020019184602083028401116401000000008311171561049a57600080fd5b90919293919293905050506118ff565b604051808215151515815260200191505060405180910390f35b6104cc6119c6565b6040518082815260200191505060405180910390f35b61050e600480360360208110156104f857600080fd5b81019080803590602001909291905050506119cc565b604051808760ff1660ff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018260ff1660ff168152602001965050505050505060405180910390f35b6105ed600480360360208110156105c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a62565b005b61061b6004803603602081101561060557600080fd5b8101908080359060200190929190505050611b80565b005b6106496004803603602081101561063357600080fd5b8101908080359060200190929190505050611dc0565b604051808215151515815260200191505060405180910390f35b6106bc6004803603606081101561067957600080fd5b81019080803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612027565b604051808215151515815260200191505060405180910390f35b610718600480360360208110156106ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612585565b604051808215151515815260200191505060405180910390f35b61075e6004803603602081101561074857600080fd5b81019080803590602001909291905050506125e0565b604051808660ff1660ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018360ff1660ff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156107ee5780820151818401526020810190506107d3565b50505050905090810190601f16801561081b5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b61086f6004803603602081101561084357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126e8565b005b6108b36004803603602081101561088757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506128ee565b005b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000620151806108f6600754426129f490919063ffffffff16565b111561090657600854905061090c565b60095490505b90565b6000600854905090565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600060149054906101000a900460ff16610b7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75537761703a4e4f545f504155534544000000000000000000000000000081525060200191505060405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b6127108110610d32576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f596f75537761703a204e4f545f414c4c4f57454400000000000000000000000081525060200191505060405180910390fd5b8060058190555050565b60003373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600060149054906101000a900460ff16610e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f596f75537761703a4e4f545f504155534544000000000000000000000000000081525060200191505060405180910390fd5b600060026000848152602001908152602001600020905060018160040160009054906101000a900460ff1660ff1614610f23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f596f75537761703a464f5242494444454e00000000000000000000000000000081525060200191505060405180910390fd5b60658160040160006101000a81548160ff021916908360ff160217905550610f738160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260020154612a3e565b8060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe80032aa342fca89e793b118de6282fa9ce532d9ca0aaf8aad1aba02a27c0454848360000160009054906101000a900460ff168460020154604051808481526020018360ff1660ff168152602001828152602001935050505060405180910390a26001915050919050565b60008060149054906101000a900460ff16905090565b731d32916cfa6534d261ad53e2498ab95505bd251081565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461110a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600060149054906101000a900460ff161561130e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75537761703a50415553454400000000000000000000000000000000000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161461147b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43414c4c45525f49535f4e4f545f415f4d414e4147455200000000000000000081525060200191505060405180910390fd5b6001600a54146114f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f596f75537761703a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600a81905550600060149054906101000a900460ff161561157e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75537761703a50415553454400000000000000000000000000000000000081525060200191505060405180910390fd5b868686868686604051602001808781526020018660ff1660ff1660f81b81526001018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140184815260200183838082843780830192505050965050505050505060405160208183030381529060405280519060200120811461167a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75537761703a57524f4e475f4f524445525f48415348000000000000000081525060200191505060405180910390fd5b60085484106116f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f596f75537761703a464f5242494444454e00000000000000000000000000000081525060200191505060405180910390fd5b600060036000898152602001908152602001600020905060028160020160009054906101000a900460ff1660ff161415611793576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75537761703a434f4e53554d45445f414c5245414459000000000000000081525060200191505060405180910390fd5b868160000160006101000a81548160ff021916908360ff160217905550858160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084816001018190555060028160020160006101000a81548160ff021916908360ff160217905550838382600301919061182d929190613466565b506118388686612a3e565b7fa039486e3c492cf79efc221eee763d755f469f2dbc949e3566a6ac83be359132888888888888604051808781526020018660ff1660ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505097505050505050505060405180910390a1506001600a8190555050505050505050565b6000610100838390501061197b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f596f75537761703a4e4f545f414c4c4f5745440000000000000000000000000081525060200191505060405180910390fd5b60008090505b838390508160ff1610156119bb576119ad84848360ff168181106119a157fe5b90506020020135611dc0565b508080600101915050611981565b506001905092915050565b60055481565b60026020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040160009054906101000a900460ff16905086565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b633b9aca00811015611cbc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75537761703a31303030594f555f41545f4c45415354000000000000000081525060200191505060405180910390fd5b611cd36009546008546129f490919063ffffffff16565b811015611d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f596f75537761703a4e4f545f414c4c4f5745440000000000000000000000000081525060200191505060405180910390fd5b600854811115611d8657611d7b611d6a600854836129f490919063ffffffff16565b600954612ca490919063ffffffff16565b600981905550611db6565b611daf611da06009546008546129f490919063ffffffff16565b826129f490919063ffffffff16565b6009819055505b8060088190555050565b600060018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1614611e86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43414c4c45525f49535f4e4f545f415f4d414e4147455200000000000000000081525060200191505060405180910390fd5b600060026000848152602001908152602001600020905060018160040160009054906101000a900460ff1660ff1614611f27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f75537761703a4e4f545f415641494c41424c45000000000000000000000081525060200191505060405180910390fd5b60028160040160006101000a81548160ff021916908360ff1602179055508060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f07d3d03b7c9aa3c2948f49bb16ff9942e614a908c1d105a2fd002411b0bc4f96858460000160009054906101000a900460ff168560020154604051808481526020018360ff1660ff168152602001828152602001935050505060405180910390a36001915050919050565b60006001600a54146120a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f596f75537761703a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600a81905550600060149054906101000a900460ff161561212c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f596f75537761703a50415553454400000000000000000000000000000000000081525060200191505060405180910390fd5b633b9aca008210156121a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f596f75537761703a31303030594f555f41545f4c45415354000000000000000081525060200191505060405180910390fd5b620151806121bf600754426129f490919063ffffffff16565b111561222e5760085460098190555060006121fa620151806121ec600754426129f490919063ffffffff16565b612d2c90919063ffffffff16565b90506122266122158262015180612d7690919063ffffffff16565b600754612ca490919063ffffffff16565b600781905550505b612243826009546129f490919063ffffffff16565b600981905550600060095410156122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061350c6024913960400191505060405180910390fd5b60006006600081546001019190508190559050600060026000838152602001908152602001600020905060008160040160009054906101000a900460ff1660ff1614612359576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f596f75537761703a464f5242494444454e00000000000000000000000000000081525060200191505060405180910390fd5b858160000160006101000a81548160ff021916908360ff16021790555060018160040160006101000a81548160ff021916908360ff160217905550338160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550848160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061244361271061243560055487612d7690919063ffffffff16565b612d2c90919063ffffffff16565b81600301819055506124628160030154856129f490919063ffffffff16565b8160020181905550612478338260020154612dfc565b6124a933600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360030154613062565b8060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f13f2f0d38c63b6308d54d1afccc009dcc157b09334feafa719b4e7be5cdcf18a84898560020154604051808481526020018360ff1660ff168152602001828152602001935050505060405180910390a36001925050506001600a819055509392505050565b600060018060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16149050919050565b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020160009054906101000a900460ff1690806003018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126de5780601f106126b3576101008083540402835291602001916126de565b820191906000526020600020905b8154815290600101906020018083116126c157829003601f168201915b5050505050905085565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612830576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806135556026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f596f75537761703a2043414c4c45525f49535f4e4f545f5448455f4f574e455281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000612a3683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132e0565b905092915050565b60006040518060400160405280601581526020017f6d696e7428616464726573732c75696e7432353629000000000000000000000081525080519060200120905060006060731d32916cfa6534d261ad53e2498ab95505bd251073ffffffffffffffffffffffffffffffffffffffff16838686604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612b845780518252602082019150602081019050602083039250612b61565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612be6576040519150601f19603f3d011682016040523d82523d6000602084013e612beb565b606091505b5091509150818015612c2b5750600081511480612c2a5750808060200190516020811015612c1857600080fd5b81019080805190602001909291905050505b5b612c9d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f596f75537761703a204d494e545f4641494c454400000000000000000000000081525060200191505060405180910390fd5b5050505050565b600080828401905083811015612d22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000612d6e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133a0565b905092915050565b600080831415612d895760009050612df6565b6000828402905082848281612d9a57fe5b0414612df1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061357b6021913960400191505060405180910390fd5b809150505b92915050565b60006040518060400160405280601981526020017f6275726e46726f6d28616464726573732c75696e74323536290000000000000081525080519060200120905060006060731d32916cfa6534d261ad53e2498ab95505bd251073ffffffffffffffffffffffffffffffffffffffff16838686604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612f425780518252602082019150602081019050602083039250612f1f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612fa4576040519150601f19603f3d011682016040523d82523d6000602084013e612fa9565b606091505b5091509150818015612fe95750600081511480612fe85750808060200190516020811015612fd657600080fd5b81019080805190602001909291905050505b5b61305b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f596f75537761703a204255524e5f46524f4d5f4641494c45440000000000000081525060200191505060405180910390fd5b5050505050565b60006040518060600160405280602581526020016135306025913980519060200120905060006060731d32916cfa6534d261ad53e2498ab95505bd251073ffffffffffffffffffffffffffffffffffffffff1683878787604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106131bf578051825260208201915060208101905060208303925061319c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613221576040519150601f19603f3d011682016040523d82523d6000602084013e613226565b606091505b50915091508180156132665750600081511480613265575080806020019051602081101561325357600080fd5b81019080805190602001909291905050505b5b6132d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f596f75537761703a205452414e534645525f46524f4d5f4641494c454400000081525060200191505060405180910390fd5b505050505050565b600083831115829061338d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613352578082015181840152602081019050613337565b50505050905090810190601f16801561337f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808311829061344c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134115780820151818401526020810190506133f6565b50505050905090810190601f16801561343e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161345857fe5b049050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106134a757803560ff19168380011785556134d5565b828001600101855582156134d5579182015b828111156134d45782358255916020019190600101906134b9565b5b5090506134e291906134e6565b5090565b61350891905b808211156135045760008160009055506001016134ec565b5090565b9056fe596f75537761703a455843454544535f5448455f4c494d49545f4f465f4f4e455f4441597472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629596f75537761703a204e45575f4f574e45525f49535f5448455f5a45524f5f41444452455353536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158205018348477633edcedfe5b452bfee3c7ba554448173c49a559503fc231aef31f64736f6c63430005100032
Deployed Bytecode Sourcemap
708:7341:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;708:7341:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1474:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2724:185;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2623:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;389;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;389:95:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;638:116:1;;;:::i;:::-;;3494:139:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3494:139:3;;;;;;;;;;;;;;;;;:::i;:::-;;4765:368;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4765:368:3;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;248:76:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1731:77:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1082:137:0;;;:::i;:::-;;518:114:1;;;:::i;:::-;;461:77:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5753:775:3;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;5753:775:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5753:775:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5753:775:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5753:775:3;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5474:273;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5474:273:3;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5474:273:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5474:273:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5474:273:3;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1500:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1382:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1382:39:3;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;490:98;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;490:98:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;2915:481;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2915:481:3;;;;;;;;;;;;;;;;;:::i;:::-;;5139:329;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5139:329:3;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3639:1120;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3639:1120:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;594:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;594:110:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1427:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1427:41:3;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1427:41:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:232:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1368:232:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3402:86:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3402:86:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;1474:20;;;;;;;;;;;;;:::o;2724:185::-;2773:7;1603:6;2796:18;2804:9;;2796:3;:7;;:18;;;;:::i;:::-;:27;2792:79;;;2846:14;;2839:21;;;;2792:79;2887:15;;2880:22;;2724:185;;:::o;2623:95::-;2671:7;2697:14;;2690:21;;2623:95;:::o;389:::-;675:10:0;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;476:1:3;455:9;:18;465:7;455:18;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;389:95;:::o;638:116:1:-;675:10:0;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;464:7:1;;;;;;;;;;;456:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;707:5;697:7;;:15;;;;;;;;;;;;;;;;;;727:20;736:10;727:20;;;;;;;;;;;;;;;;;;;;;;638:116::o;3494:139:3:-;675:10:0;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3572:5:3;3565:4;:12;3557:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3622:4;3612:7;:14;;;;3494:139;:::o;4765:368::-;4840:4;675:10:0;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;464:7:1;;;;;;;;;;;456:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4857:19:3;4879:6;:15;4886:7;4879:15;;;;;;;;;;;4857:37;;4927:1;4912:5;:11;;;;;;;;;;;;:16;;;4904:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4974:3;4960:5;:11;;;:17;;;;;;;;;;;;;;;;;;4988:33;4994:5;:12;;;;;;;;;;;;5008:5;:12;;;4988:5;:33::i;:::-;5074:5;:15;;;;;;;;;;;;5036:68;;;5050:7;5059:5;:13;;;;;;;;;;;;5091:5;:12;;;5036:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5122:4;5115:11;;;4765:368;;;:::o;248:76:1:-;287:4;310:7;;;;;;;;;;;303:14;;248:76;:::o;1731:77:3:-;1766:42;1731:77;:::o;1082:137:0:-;675:10;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1180:1;1143:40;;1164:6;;;;;;;;;;;1143:40;;;;;;;;;;;;1210:1;1193:6;;:19;;;;;;;;;;;;;;;;;;1082:137::o;518:114:1:-;675:10:0;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;374:7:1;;;;;;;;;;;373:8;365:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;588:4;578:7;;:14;;;;;;;;;;;;;;;;;;607:18;614:10;607:18;;;;;;;;;;;;;;;;;;;;;;518:114::o;461:77:0:-;499:7;525:6;;;;;;;;;;;518:13;;461:77;:::o;5753:775:3:-;336:1;311:9;:21;321:10;311:21;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;303:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2366:1;2354:8;;:13;2346:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2408:1;2397:8;:12;;;;374:7:1;;;;;;;;;;;373:8;365:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5983:7:3;5992:9;6003;6014:6;6022:5;;5966:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;5966:62:3;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5966:62:3;;;5955:75;;;;;;5942:9;:88;5934:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6086:14;;6077:6;:23;6069:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6144:21;6168:7;:16;6176:7;6168:16;;;;;;;;;;;6144:40;;6218:1;6202:6;:12;;;;;;;;;;;;:17;;;;6194:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6277:9;6258:6;:16;;;:28;;;;;;;;;;;;;;;;;;6315:9;6296:6;:16;;;:28;;;;;;;;;;;;;;;;;;6350:6;6334;:13;;:22;;;;6381:1;6366:6;:12;;;:16;;;;;;;;;;;;;;;;;;6407:5;;6392:6;:12;;:20;;;;;;;:::i;:::-;;6423:24;6429:9;6440:6;6423:5;:24::i;:::-;6462:59;6476:7;6485:9;6496;6507:6;6515:5;;6462:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6462:59:3;;;;;;;;;;;;;;;;;;410:1:1;2441::3;2430:8;:12;;;;5753:775;;;;;;;:::o;5474:273::-;5545:4;5588:3;5570:8;;:15;;:21;5562:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5630:7;5640:1;5630:11;;5625:95;5647:8;;:15;;5643:1;:19;;;5625:95;;;5683:26;5697:8;;5706:1;5697:11;;;;;;;;;;;;;;;5683:13;:26::i;:::-;;5664:3;;;;;;;5625:95;;;;5736:4;5729:11;;5474:273;;;;:::o;1500:27::-;;;;:::o;1382:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;490:98::-;675:10:0;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;580:1:3;559:9;:18;569:7;559:18;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;490:98;:::o;2915:481::-;675:10:0;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3004:7:3;2994:6;:17;;2986:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3068:35;3087:15;;3068:14;;:18;;:35;;;;:::i;:::-;3058:6;:45;;3050:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3149:14;;3140:6;:23;3137:220;;;3196:47;3216:26;3227:14;;3216:6;:10;;:26;;;;:::i;:::-;3196:15;;:19;;:47;;;;:::i;:::-;3178:15;:65;;;;3137:220;;;3299:47;3310:35;3329:15;;3310:14;;:18;;:35;;;;:::i;:::-;3299:6;:10;;:47;;;;:::i;:::-;3281:15;:65;;;;3137:220;3383:6;3366:14;:23;;;;2915:481;:::o;5139:329::-;5205:4;336:1;311:9;:21;321:10;311:21;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;303:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5222:19;5244:6;:15;5251:7;5244:15;;;;;;;;;;;5222:37;;5292:1;5277:5;:11;;;;;;;;;;;;:16;;;5269:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5343:1;5329:5;:11;;;:15;;;;;;;;;;;;;;;;;;5409:5;:15;;;;;;;;;;;;5359:80;;5395:5;:12;;;;;;;;;;;;5359:80;;;5371:7;5380:5;:13;;;;;;;;;;;;5426:5;:12;;;5359:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5457:4;5450:11;;;5139:329;;;:::o;3639:1120::-;3744:4;2366:1;2354:8;;:13;2346:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2408:1;2397:8;:12;;;;374:7:1;;;;;;;;;;;373:8;365:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3779:7:3;3769:6;:17;;3761:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1603:6;3829:18;3837:9;;3829:3;:7;;:18;;;;:::i;:::-;:27;3825:216;;;3890:14;;3872:15;:32;;;;3918:17;3938:30;1603:6;3938:18;3946:9;;3938:3;:7;;:18;;;;:::i;:::-;:22;;:30;;;;:::i;:::-;3918:50;;3994:36;4008:21;4019:9;1603:6;4008:10;;:21;;;;:::i;:::-;3994:9;;:13;;:36;;;;:::i;:::-;3982:9;:48;;;;3825:216;;4069:27;4089:6;4069:15;;:19;;:27;;;;:::i;:::-;4051:15;:45;;;;4133:1;4114:15;;:20;;4106:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4186:15;4206:6;;4204:8;;;;;;;;;;4186:26;;4222:19;4244:6;:15;4251:7;4244:15;;;;;;;;;;;4222:37;;4292:1;4277:5;:11;;;;;;;;;;;;:16;;;4269:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4342:7;4326:5;:13;;;:23;;;;;;;;;;;;;;;;;;4373:1;4359:5;:11;;;:15;;;;;;;;;;;;;;;;;;4399:10;4384:5;:12;;;:25;;;;;;;;;;;;;;;;;;4437:9;4419:5;:15;;;:27;;;;;;;;;;;;;;;;;;4468:30;4492:5;4468:19;4479:7;;4468:6;:10;;:19;;;;:::i;:::-;:23;;:30;;;;:::i;:::-;4456:5;:9;;:42;;;;4523:21;4534:5;:9;;;4523:6;:10;;:21;;;;:::i;:::-;4508:5;:12;;:36;;;;4555:35;4565:10;4577:5;:12;;;4555:9;:35::i;:::-;4600:43;4614:10;4626:5;;;;;;;;;;;4633;:9;;;4600:13;:43::i;:::-;4700:5;:15;;;;;;;;;;;;4659:71;;4686:5;:12;;;;;;;;;;;;4659:71;;;4668:7;4677;4717:5;:12;;;4659:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4748:4;4741:11;;;;2441:1;2430:8;:12;;;;3639:1120;;;;;:::o;594:110::-;651:4;696:1;674:9;:18;684:7;674:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;667:30;;594:110;;;:::o;1427:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1368:232:0:-;675:10;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1468:1;1448:22;;:8;:22;;;;1440:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1557:8;1528:38;;1549:6;;;;;;;;;;;1528:38;;;;;;;;;;;;1585:8;1576:6;;:17;;;;;;;;;;;;;;;;;;1368:232;:::o;3402:86:3:-;675:10:0;665:20;;:6;;;;;;;;;;;:20;;;657:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3474:7:3;3466:5;;:15;;;;;;;;;;;;;;;;;;3402:86;:::o;726:134:2:-;784:7;810:43;814:1;817;810:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;803:50;;726:134;;;;:::o;6534:355:3:-;6602:15;6637:30;;;;;;;;;;;;;;;;;6627:41;;;;;;6602:67;;6681:12;6695:17;1766:42;6716:13;;6753:8;6763:9;6774:6;6730:51;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6730:51:3;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;6730:51:3;6716:66;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6716:66:3;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;6680:102:3;;;;6800:7;:57;;;;;6827:1;6812:4;:11;:16;:44;;;;6843:4;6832:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6832:24:3;;;;;;;;;;;;;;;;6812:44;6800:57;6792:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6534:355;;;;;:::o;279:176:2:-;337:7;356:9;372:1;368;:5;356:17;;396:1;391;:6;;383:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;447:1;440:8;;;279:176;;;;:::o;2506:130::-;2564:7;2590:39;2594:1;2597;2590:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2583:46;;2506:130;;;;:::o;1585:459::-;1643:7;1889:1;1884;:6;1880:45;;;1913:1;1906:8;;;;1880:45;1935:9;1951:1;1947;:5;1935:17;;1979:1;1974;1970;:5;;;;;;:10;1962:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2036:1;2029:8;;;1585:459;;;;;:::o;6895:364:3:-;6965:15;7000:34;;;;;;;;;;;;;;;;;6990:45;;;;;;6965:71;;7048:12;7062:17;1766:42;7083:13;;7120:8;7130:7;7139:6;7097:49;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7097::3;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;7097:49:3;7083:64;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7083:64:3;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;7047:100:3;;;;7165:7;:57;;;;;7192:1;7177:4;:11;:16;:44;;;;7208:4;7197:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7197:24:3;;;;;;;;;;;;;;;;7177:44;7165:57;7157:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6895:364;;;;;:::o;7265:412::-;7357:15;7392:46;;;;;;;;;;;;;;;;;7382:57;;;;;;7357:83;;7452:12;7466:17;1766:42;7487:13;;7524:8;7534:6;7542:9;7553:6;7501:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7501:59:3;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;7501:59:3;7487:74;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7487:74:3;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;7451:110:3;;;;7579:7;:57;;;;;7606:1;7591:4;:11;:16;:44;;;;7622:4;7611:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7611:24:3;;;;;;;;;;;;;;;;7591:44;7579:57;7571:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7265:412;;;;;;:::o;1151:187:2:-;1237:7;1269:1;1264;:6;;1272:12;1256:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1256:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1295:9;1311:1;1307;:5;1295:17;;1330:1;1323:8;;;1151:187;;;;;:::o;3118:272::-;3204:7;3235:1;3231;:5;3238:12;3223:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3223:28:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3261:9;3277:1;3273;:5;;;;;;3261:17;;3382:1;3375:8;;;3118:272;;;;;:::o;708:7341:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://5018348477633edcedfe5b452bfee3c7ba554448173c49a559503fc231aef31f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.