Contract 0xb6319cC6c8c27A8F5dAF0dD3DF91EA35C4720dd7 26

 

Contract Overview

Balance:
0 ETH

EtherValue:
$0.00

Token:
Txn Hash Method
Block
From
To
Value
0x9eecac3bdba67a5a3e180a61233e25b54409214928523532c431135b11b66fc9Retry Payload128662812024-04-07 20:31:498 days 8 hrs ago0x5ab7c212f244303133d7ae9120d96d128e5336e0 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70 ETH0.0000750918270.1933924
0x7dbe760cab26f8de23774ff15db83b33c4e3b686a5a057cac72d0ccd61c11588Retry Payload128658192024-04-07 20:16:258 days 8 hrs ago0x5ab7c212f244303133d7ae9120d96d128e5336e0 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70 ETH0.0000818895620.210928542
0xd17031816c50a9b06862a39ebc6541161e036782e0f79e5db0cebd4169026b0bSend128434612024-04-07 7:51:098 days 21 hrs ago0x4a58b29f6c59dfca0a216166bf1a0aba9dac56a5 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039525610.021303216
0x9415886dbc371c95b452725814e1a2e8b37b3a854045c27927b6e03366f7e702Send128434592024-04-07 7:51:058 days 21 hrs ago0xd3865445beb3ae80cf23c0e348034bc10c4b1947 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039450340.021262841
0x5f7b94d83a591903f759e3604f9ebb8bb393fce27e2acb78286d9e78988e204dSend128434582024-04-07 7:51:038 days 21 hrs ago0x41f4ef73fa2ab71f7b51a6698ded27852ed10e23 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000038929910.020977093
0xd7ebe7b7a216d98db5116f82d45a0633dfb2a6cd6eb5f1391a29de03ca54ae07Send128434572024-04-07 7:51:018 days 21 hrs ago0x5a7bcb396621abb7fbd0d93fc3c420b9329eeea4 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.000003898650.021007212
0x8f3887ea2490f7672a8b35e19eae55932e3d5a4028905269cd6bdf0de24bba00Send128434552024-04-07 7:50:578 days 21 hrs ago0x433a8498c5b243d964287c89578ce09fe07ab2b7 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039603810.021391298
0xf7231b748d72d2268040f816f82a2175932d610db0db96b6ab5818458c3556ecSend128434532024-04-07 7:50:538 days 21 hrs ago0xa348ff65406a7ccdc054492aa2b778433b2b09d9 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039603330.021390187
0x23aac2d1d2c1c76c47d4e1a9e119957cd5da9c21f105de83b12fcc0d7ede10abSend128434512024-04-07 7:50:498 days 21 hrs ago0x3e39aeeb7ddeca6a8cf93b45fa75e153b95a463e IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000038866440.020985587
0x748dd2ef7b6aece56234eb21a42270915e1c80f9c33da76018367f5a7a07eaf8Send128434492024-04-07 7:50:458 days 21 hrs ago0x3db55acdbfd87b436a8d6a991f17e656230d263d IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000038974090.021003271
0x9dde93d4369fe28f3999522873cf73f501302fe1b8cb07d982259801653dbbffSend128434482024-04-07 7:50:438 days 21 hrs ago0xfee54e3a6c0973bb28350c23ae470ce5e012b316 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000038988130.021010985
0xb7fae51165a89462ab0ee19308d4389c80416ca14ff4599aab4b7531c6a6739bSend128434472024-04-07 7:50:418 days 21 hrs ago0x8772c73787cf55966da02ce4fcde53d5b4800048 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039179980.021123336
0x715b39ec588138cd6bd8dce9af1cd556b619848d1757504878ebdbae4e5bbc2eSend128434462024-04-07 7:50:398 days 21 hrs ago0x5464eb5d76a8180d4c088a854e51573494e82767 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039191390.021122586
0x9d7d7b9b2ed4ce2d232782c2d7e943bbefe864931ed7b0cc27b60e7809275f56Send128434452024-04-07 7:50:378 days 21 hrs ago0xc503a95a3b43fd8279677ea504f518539b1de554 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039860850.021490159
0x59c60cd700f685533b882faa76c23006efe2d17982ef581e5152454985ed8bfdSend128434442024-04-07 7:50:358 days 21 hrs ago0x8aee1c3b1511d1d53db8b6001b018477f79cc662 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039567630.021337168
0xcd8c22e29327757a722002ada820b98c5e0d87c6cd42cc5ecf1096c333834bb4Send128434432024-04-07 7:50:338 days 21 hrs ago0xebe03ece14956ed003ffeb3cdd7c79186aeb2518 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039615780.021345852
0x8c71fd705d309f20eb8ca09a2e1eb5d3f6ea4a881f618ee771d4dc4f869c6418Send128434412024-04-07 7:50:298 days 21 hrs ago0xfcd8defd6c74b5bed72269badcde6fef5207a135 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000038987860.021001088
0x3950e131d1330ecd48583b6e5861490d0f53b74beb5d6d119421541e0194c0d4Send128434392024-04-07 7:50:258 days 21 hrs ago0xbb957ac2d26e73e08dd7cf6cb1a6caa06d620f67 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000038981910.020997821
0x4cba167a70a704ba74b8c1647dc50cb82bfec75c4c62a6c1745254f3736fe10eSend128434382024-04-07 7:50:238 days 21 hrs ago0xd33471ef6dc2af104da8e087071010afd2ec76e7 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039022820.021021251
0xdb53481d6ed70c5745ad14ab1e3a5f4582278f3c373c4eafe0382e0a6c2e2b38Send128434372024-04-07 7:50:218 days 21 hrs ago0xbcdaf3e248733f5b32e84b08c3eb5d0610c06291 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000038950210.020966564
0x115089ef52c2602d6e0b9d964b9d0c483ccae171152e57f50152432a37378958Send128434352024-04-07 7:50:178 days 21 hrs ago0x7e0af69c971cfc7691e11c0cc441d0a2bb423bbc IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039390460.021209291
0x52bc15f99c8c58d9bb2a6744ea1a0ff652a21288d1884ef2051914fc2d9524e9Send128434332024-04-07 7:50:138 days 21 hrs ago0x9c6812a08708000c736d22381bd3739f31c931aa IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039443230.021246875
0x8130253b56f92f58fe4f00dd27385c3eda8506573407458c7b52442c2c3933b6Send128434312024-04-07 7:50:098 days 21 hrs ago0x6b542f79ef1e8d0c135b201b34238b2a2d4064b5 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039295390.021152875
0x73c3c2a5a9c793f5ac7c5f0e2abda7dea4cef2b4342a2fa4caf1f457c5495d13Send128434302024-04-07 7:50:078 days 21 hrs ago0x42f87b84778b07332593bb147fb86af26f16dde0 IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000039580.021309143
0x2399ab659434337bb42d21d52ea87bd0418c21da021bfbc051d910d1e83beea3Send128434292024-04-07 7:50:058 days 21 hrs ago0xd820c1262affc6f82b8e8ade6e955bff14d74b7a IN  0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000010839286551 ETH0.0000040180450.021638828
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8740e5f89d4ba74a8bfd7a3205d064b15768bd206c436e42e6c560d62bc18796132275022024-04-16 5:12:317 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000019573587443843 ETH
0x8740e5f89d4ba74a8bfd7a3205d064b15768bd206c436e42e6c560d62bc18796132275022024-04-16 5:12:317 secs ago Stargate: Bridge 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000019573587443843 ETH
0x6f4f9f7b4a07e2fb50fdede5c1a17bcbf147cbefea6d091efbb8deb65e973d6b132275002024-04-16 5:12:2711 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000098508689943792 ETH
0x6f4f9f7b4a07e2fb50fdede5c1a17bcbf147cbefea6d091efbb8deb65e973d6b132275002024-04-16 5:12:2711 secs ago Stargate: Bridge 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000098508689943792 ETH
0xf7dc6065bf161351e27c71d870cdb098c720a2300a12e1ab1aec72364a58357e132274982024-04-16 5:12:2315 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000019573587443843 ETH
0xf7dc6065bf161351e27c71d870cdb098c720a2300a12e1ab1aec72364a58357e132274982024-04-16 5:12:2315 secs ago Stargate: Bridge 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000019573587443843 ETH
0x52f3e053a947f9065c0f76268fb86308c6bb3b5ae807531af338873c398258b1132274952024-04-16 5:12:1721 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000115373255879343 ETH
0x52f3e053a947f9065c0f76268fb86308c6bb3b5ae807531af338873c398258b1132274952024-04-16 5:12:1721 secs ago 0x29d24b2ac84e51f842fb8c1533cd972eb83c65ce 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000115373255879343 ETH
0x4d0ab8d0f125ccdff2a786296d21651735872dd83df5f8dc998a40412c585530132274942024-04-16 5:12:1523 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000115657440678879 ETH
0x4d0ab8d0f125ccdff2a786296d21651735872dd83df5f8dc998a40412c585530132274942024-04-16 5:12:1523 secs ago Stargate: Bridge 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000115657440678879 ETH
0xd7dac4063c1117842e0ddefeaf28caf1011da34080c8691edc11a1fbad066cc6132274922024-04-16 5:12:1127 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000115657440678879 ETH
0xd7dac4063c1117842e0ddefeaf28caf1011da34080c8691edc11a1fbad066cc6132274922024-04-16 5:12:1127 secs ago Stargate: Bridge 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000115657440678879 ETH
0xd0a8db419ab59fea35e6aef575d32db0b4d34a7be122ccdb5fdeb62621f5eb94132274902024-04-16 5:12:0731 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.00004324 ETH
0xd0a8db419ab59fea35e6aef575d32db0b4d34a7be122ccdb5fdeb62621f5eb94132274902024-04-16 5:12:0731 secs ago 0x64e0f6164ac110b67df9a4848707ffbcb86c87a9 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.00004324 ETH
0x3c20801b15cf9a6f815371c4b401f82c0bf905f4ccf118a5b1e29eaa088cb7d1132274892024-04-16 5:12:0533 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000153692229745841 ETH
0x3c20801b15cf9a6f815371c4b401f82c0bf905f4ccf118a5b1e29eaa088cb7d1132274892024-04-16 5:12:0533 secs ago 0x6bf98654205b1ac38645880ae20fc00b0bb9ffca 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000153692229745841 ETH
0x91831915461977e2281f9be306a9f9f112fe0a3b2330186c50d5b6e1dccfc11f132274892024-04-16 5:12:0533 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000115657440678879 ETH
0x91831915461977e2281f9be306a9f9f112fe0a3b2330186c50d5b6e1dccfc11f132274892024-04-16 5:12:0533 secs ago Stargate: Bridge 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000115657440678879 ETH
0x9a3b8a4ca1e55d1f0af3420192308e5e5b4cbcc7e9569a758ff2d43e25e3c1e4132274892024-04-16 5:12:0533 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000035491596859634 ETH
0x9a3b8a4ca1e55d1f0af3420192308e5e5b4cbcc7e9569a758ff2d43e25e3c1e4132274892024-04-16 5:12:0533 secs ago Stargate: Bridge 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000035491596859634 ETH
0xe16d74deedf0dedf7ab3299b699b8071b697c3b5dc591f7b99ae254d6e3ec916132274862024-04-16 5:11:5939 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000043191662166111 ETH
0xe16d74deedf0dedf7ab3299b699b8071b697c3b5dc591f7b99ae254d6e3ec916132274862024-04-16 5:11:5939 secs ago 0x4d2a00b2155ed0ed7d26dce1b4f51a7ba2a271e1 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000043191662166111 ETH
0xe4c0dc16e043c932de6f8a0d46c6c9d2fd536d3b489f941e4290ba44f33bdf50132274852024-04-16 5:11:5741 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000116073888206879 ETH
0xe4c0dc16e043c932de6f8a0d46c6c9d2fd536d3b489f941e4290ba44f33bdf50132274852024-04-16 5:11:5741 secs ago Stargate: Bridge 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd70.000116073888206879 ETH
0xfb321dd31a190f83ed3f754188390cf204393a6b7cf32837814fc152e0d64af5132274812024-04-16 5:11:4949 secs ago 0xb6319cc6c8c27a8f5daf0dd3df91ea35c4720dd7 LayerZero: Ultra Light Node V20.000019573587443843 ETH
[ Download CSV Export 
Latest 1 Deposit
L2 Txn Hash L1 Deposit Txn Value Token
0x30d5b208d988d21c10c37bcca049cfcc173efbf1513681ff70c98a7b9eb657c52023-07-31 10:26:27259 days 18 hrs ago0x8f8795fa899681e1df03af061385d7095b96d1d3a47df0cde008dc27773a46cf0.1 Ether (ETH)
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Endpoint

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, BSL 1.1 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2023-07-17
*/

// Sources flattened with hardhat v2.17.0 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]

// License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


// File @openzeppelin/contracts/access/[email protected]

// License-Identifier: MIT

pragma solidity ^0.7.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: 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 virtual 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 virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


// File contracts/interfaces/ILayerZeroUserApplicationConfig.sol

// License-Identifier: BUSL-1.1

pragma solidity >=0.5.0;

interface ILayerZeroUserApplicationConfig {
    // @notice set the configuration of the LayerZero messaging library of the specified version
    // @param _version - messaging library version
    // @param _chainId - the chainId for the pending config change
    // @param _configType - type of configuration. every messaging library has its own convention.
    // @param _config - configuration in the bytes. can encode arbitrary content.
    function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;

    // @notice set the send() LayerZero messaging library version to _version
    // @param _version - new messaging library version
    function setSendVersion(uint16 _version) external;

    // @notice set the lzReceive() LayerZero messaging library version to _version
    // @param _version - new messaging library version
    function setReceiveVersion(uint16 _version) external;

    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload
    // @param _srcChainId - the chainId of the source chain
    // @param _srcAddress - the contract address of the source contract at the source chain
    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;
}


// File contracts/interfaces/ILayerZeroEndpoint.sol

// License-Identifier: BUSL-1.1

pragma solidity >=0.5.0;

interface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {
    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.
    // @param _dstChainId - the destination chain identifier
    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains
    // @param _payload - a custom bytes payload to send to the destination contract
    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address
    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction
    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination
    function send(
        uint16 _dstChainId,
        bytes calldata _destination,
        bytes calldata _payload,
        address payable _refundAddress,
        address _zroPaymentAddress,
        bytes calldata _adapterParams
    ) external payable;

    // @notice used by the messaging library to publish verified payload
    // @param _srcChainId - the source chain identifier
    // @param _srcAddress - the source contract (as bytes) at the source chain
    // @param _dstAddress - the address on destination chain
    // @param _nonce - the unbound message ordering nonce
    // @param _gasLimit - the gas limit for external contract execution
    // @param _payload - verified payload to send to the destination contract
    function receivePayload(
        uint16 _srcChainId,
        bytes calldata _srcAddress,
        address _dstAddress,
        uint64 _nonce,
        uint _gasLimit,
        bytes calldata _payload
    ) external;

    // @notice get the inboundNonce of a receiver from a source chain which could be EVM or non-EVM chain
    // @param _srcChainId - the source chain identifier
    // @param _srcAddress - the source chain contract address
    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);

    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM
    // @param _srcAddress - the source chain contract address
    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);

    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery
    // @param _dstChainId - the destination chain identifier
    // @param _userApplication - the user app address on this EVM chain
    // @param _payload - the custom message to send over LayerZero
    // @param _payInZRO - if false, user app pays the protocol fee in native token
    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain
    function estimateFees(
        uint16 _dstChainId,
        address _userApplication,
        bytes calldata _payload,
        bool _payInZRO,
        bytes calldata _adapterParam
    ) external view returns (uint nativeFee, uint zroFee);

    // @notice get this Endpoint's immutable source identifier
    function getChainId() external view returns (uint16);

    // @notice the interface to retry failed message on this Endpoint destination
    // @param _srcChainId - the source chain identifier
    // @param _srcAddress - the source chain contract address
    // @param _payload - the payload to be retried
    function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;

    // @notice query if any STORED payload (message blocking) at the endpoint.
    // @param _srcChainId - the source chain identifier
    // @param _srcAddress - the source chain contract address
    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);

    // @notice query if the _libraryAddress is valid for sending msgs.
    // @param _userApplication - the user app address on this EVM chain
    function getSendLibraryAddress(address _userApplication) external view returns (address);

    // @notice query if the _libraryAddress is valid for receiving msgs.
    // @param _userApplication - the user app address on this EVM chain
    function getReceiveLibraryAddress(address _userApplication) external view returns (address);

    // @notice query if the non-reentrancy guard for send() is on
    // @return true if the guard is on. false otherwise
    function isSendingPayload() external view returns (bool);

    // @notice query if the non-reentrancy guard for receive() is on
    // @return true if the guard is on. false otherwise
    function isReceivingPayload() external view returns (bool);

    // @notice get the configuration of the LayerZero messaging library of the specified version
    // @param _version - messaging library version
    // @param _chainId - the chainId for the pending config change
    // @param _userApplication - the contract address of the user application
    // @param _configType - type of configuration. every messaging library has its own convention.
    function getConfig(
        uint16 _version,
        uint16 _chainId,
        address _userApplication,
        uint _configType
    ) external view returns (bytes memory);

    // @notice get the send() LayerZero messaging library version
    // @param _userApplication - the contract address of the user application
    function getSendVersion(address _userApplication) external view returns (uint16);

    // @notice get the lzReceive() LayerZero messaging library version
    // @param _userApplication - the contract address of the user application
    function getReceiveVersion(address _userApplication) external view returns (uint16);
}


// File contracts/interfaces/ILayerZeroMessagingLibrary.sol

// License-Identifier: BUSL-1.1

pragma solidity >=0.7.0;

interface ILayerZeroMessagingLibrary {
    // send(), messages will be inflight.
    function send(
        address _userApplication,
        uint64 _lastNonce,
        uint16 _chainId,
        bytes calldata _destination,
        bytes calldata _payload,
        address payable refundAddress,
        address _zroPaymentAddress,
        bytes calldata _adapterParams
    ) external payable;

    // estimate native fee at the send side
    function estimateFees(
        uint16 _chainId,
        address _userApplication,
        bytes calldata _payload,
        bool _payInZRO,
        bytes calldata _adapterParam
    ) external view returns (uint nativeFee, uint zroFee);

    //---------------------------------------------------------------------------
    // setConfig / getConfig are User Application (UA) functions to specify Oracle, Relayer, blockConfirmations, libraryVersion
    function setConfig(uint16 _chainId, address _userApplication, uint _configType, bytes calldata _config) external;

    function getConfig(
        uint16 _chainId,
        address _userApplication,
        uint _configType
    ) external view returns (bytes memory);
}


// File contracts/interfaces/ILayerZeroReceiver.sol

// License-Identifier: BUSL-1.1

pragma solidity >=0.5.0;

interface ILayerZeroReceiver {
    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination
    // @param _srcChainId - the source endpoint identifier
    // @param _srcAddress - the source sending contract address from the source chain
    // @param _nonce - the ordered message nonce
    // @param _payload - the signed payload is the UA bytes has encoded to be sent
    function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;
}


// File contracts/Endpoint.sol

// License-Identifier: BUSL-1.1

pragma solidity 0.7.6;



contract Endpoint is Ownable, ILayerZeroEndpoint {
    uint16 public immutable chainId;

    // installed libraries and reserved versions
    uint16 public constant BLOCK_VERSION = 65535;
    uint16 public constant DEFAULT_VERSION = 0;
    uint16 public latestVersion;
    mapping(uint16 => ILayerZeroMessagingLibrary) public libraryLookup; // version -> ILayerZeroEndpointLibrary

    // default send/receive libraries
    uint16 public defaultSendVersion;
    uint16 public defaultReceiveVersion;
    ILayerZeroMessagingLibrary public defaultSendLibrary;
    address public defaultReceiveLibraryAddress;

    struct LibraryConfig {
        uint16 sendVersion;
        uint16 receiveVersion;
        address receiveLibraryAddress;
        ILayerZeroMessagingLibrary sendLibrary;
    }

    struct StoredPayload {
        uint64 payloadLength;
        address dstAddress;
        bytes32 payloadHash;
    }

    // user app config = [uaAddress]
    mapping(address => LibraryConfig) public uaConfigLookup;
    // inboundNonce = [srcChainId][srcAddress].
    mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;
    // outboundNonce = [dstChainId][srcAddress].
    mapping(uint16 => mapping(address => uint64)) public outboundNonce;
    // storedPayload = [srcChainId][srcAddress]
    mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;

    // library versioning events
    event NewLibraryVersionAdded(uint16 version);
    event DefaultSendVersionSet(uint16 version);
    event DefaultReceiveVersionSet(uint16 version);
    event UaSendVersionSet(address ua, uint16 version);
    event UaReceiveVersionSet(address ua, uint16 version);
    event UaForceResumeReceive(uint16 chainId, bytes srcAddress);
    // payload events
    event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);
    event PayloadStored(
        uint16 srcChainId,
        bytes srcAddress,
        address dstAddress,
        uint64 nonce,
        bytes payload,
        bytes reason
    );

    constructor(uint16 _chainId) {
        chainId = _chainId;
    }

    //---------------------------------------------------------------------------
    // send and receive nonreentrant lock
    uint8 internal constant _NOT_ENTERED = 1;
    uint8 internal constant _ENTERED = 2;
    uint8 internal _send_entered_state = 1;
    uint8 internal _receive_entered_state = 1;

    modifier sendNonReentrant() {
        require(_send_entered_state == _NOT_ENTERED, "LayerZero: no send reentrancy");
        _send_entered_state = _ENTERED;
        _;
        _send_entered_state = _NOT_ENTERED;
    }
    modifier receiveNonReentrant() {
        require(_receive_entered_state == _NOT_ENTERED, "LayerZero: no receive reentrancy");
        _receive_entered_state = _ENTERED;
        _;
        _receive_entered_state = _NOT_ENTERED;
    }

    // BLOCK_VERSION is also a valid version
    modifier validVersion(uint16 _version) {
        require(_version <= latestVersion || _version == BLOCK_VERSION, "LayerZero: invalid messaging library version");
        _;
    }

    //---------------------------------------------------------------------------
    // User Application Calls - Endpoint Interface

    function send(
        uint16 _dstChainId,
        bytes calldata _destination,
        bytes calldata _payload,
        address payable _refundAddress,
        address _zroPaymentAddress,
        bytes calldata _adapterParams
    ) external payable override sendNonReentrant {
        LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
        uint64 nonce = ++outboundNonce[_dstChainId][msg.sender];
        _getSendLibrary(uaConfig).send{value: msg.value}(
            msg.sender,
            nonce,
            _dstChainId,
            _destination,
            _payload,
            _refundAddress,
            _zroPaymentAddress,
            _adapterParams
        );
    }

    //---------------------------------------------------------------------------
    // authenticated Library (msg.sender) Calls to pass through Endpoint to UA (dstAddress)
    function receivePayload(
        uint16 _srcChainId,
        bytes calldata _srcAddress,
        address _dstAddress,
        uint64 _nonce,
        uint _gasLimit,
        bytes calldata _payload
    ) external override receiveNonReentrant {
        // assert and increment the nonce. no message shuffling
        require(_nonce == ++inboundNonce[_srcChainId][_srcAddress], "LayerZero: wrong nonce");

        LibraryConfig storage uaConfig = uaConfigLookup[_dstAddress];

        // authentication to prevent cross-version message validation
        // protects against a malicious library from passing arbitrary data
        if (uaConfig.receiveVersion == DEFAULT_VERSION) {
            require(defaultReceiveLibraryAddress == msg.sender, "LayerZero: invalid default library");
        } else {
            require(uaConfig.receiveLibraryAddress == msg.sender, "LayerZero: invalid library");
        }

        // block if any message blocking
        StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
        require(sp.payloadHash == bytes32(0), "LayerZero: in message blocking");

        try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _srcAddress, _nonce, _payload) {
            // success, do nothing, end of the message delivery
        } catch (bytes memory reason) {
            // revert nonce if any uncaught errors/exceptions if the ua chooses the blocking mode
            storedPayload[_srcChainId][_srcAddress] = StoredPayload(
                uint64(_payload.length),
                _dstAddress,
                keccak256(_payload)
            );
            emit PayloadStored(_srcChainId, _srcAddress, _dstAddress, _nonce, _payload, reason);
        }
    }

    function retryPayload(
        uint16 _srcChainId,
        bytes calldata _srcAddress,
        bytes calldata _payload
    ) external override receiveNonReentrant {
        StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
        require(sp.payloadHash != bytes32(0), "LayerZero: no stored payload");
        require(
            _payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash,
            "LayerZero: invalid payload"
        );

        address dstAddress = sp.dstAddress;
        // empty the storedPayload
        sp.payloadLength = 0;
        sp.dstAddress = address(0);
        sp.payloadHash = bytes32(0);

        uint64 nonce = inboundNonce[_srcChainId][_srcAddress];

        ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _srcAddress, nonce, _payload);
        emit PayloadCleared(_srcChainId, _srcAddress, nonce, dstAddress);
    }

    //---------------------------------------------------------------------------
    // Owner Calls, only new library version upgrade (3 steps)

    // note libraryLookup[0] = 0x0, no library implementation
    // LIBRARY UPGRADE step 1: set _newLayerZeroLibraryAddress be the new version
    function newVersion(address _newLayerZeroLibraryAddress) external onlyOwner {
        require(_newLayerZeroLibraryAddress != address(0x0), "LayerZero: new version cannot be zero address");
        require(latestVersion < 65535, "LayerZero: can not add new messaging library");
        latestVersion++;
        libraryLookup[latestVersion] = ILayerZeroMessagingLibrary(_newLayerZeroLibraryAddress);
        emit NewLibraryVersionAdded(latestVersion);
    }

    // LIBRARY UPGRADE step 2: stop sending messages from the old version
    function setDefaultSendVersion(
        uint16 _newDefaultSendVersion
    ) external onlyOwner validVersion(_newDefaultSendVersion) {
        require(_newDefaultSendVersion != DEFAULT_VERSION, "LayerZero: default send version must > 0");
        defaultSendVersion = _newDefaultSendVersion;
        defaultSendLibrary = libraryLookup[defaultSendVersion];
        emit DefaultSendVersionSet(_newDefaultSendVersion);
    }

    // LIBRARY UPGRADE step 3: stop receiving messages from the old version
    function setDefaultReceiveVersion(
        uint16 _newDefaultReceiveVersion
    ) external onlyOwner validVersion(_newDefaultReceiveVersion) {
        require(_newDefaultReceiveVersion != DEFAULT_VERSION, "LayerZero: default receive version must > 0");
        defaultReceiveVersion = _newDefaultReceiveVersion;
        defaultReceiveLibraryAddress = address(libraryLookup[defaultReceiveVersion]);
        emit DefaultReceiveVersionSet(_newDefaultReceiveVersion);
    }

    //---------------------------------------------------------------------------
    // User Application Calls - UA set/get Interface

    function setConfig(
        uint16 _version,
        uint16 _chainId,
        uint _configType,
        bytes calldata _config
    ) external override validVersion(_version) {
        if (_version == DEFAULT_VERSION) {
            require(
                defaultSendVersion == defaultReceiveVersion,
                "LayerZero: can not set Config during DEFAULT migration"
            );
            _version = defaultSendVersion;
        }
        require(_version != BLOCK_VERSION, "LayerZero: can not set config for BLOCK_VERSION");
        libraryLookup[_version].setConfig(_chainId, msg.sender, _configType, _config);
    }

    // Migration step 1: set the send version
    // Define what library the UA points too
    function setSendVersion(uint16 _newVersion) external override validVersion(_newVersion) {
        // write into config
        LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
        uaConfig.sendVersion = _newVersion;
        // the libraryLookup[BLOCK_VERSION || DEFAULT_VERSION] = 0x0
        uaConfig.sendLibrary = libraryLookup[_newVersion];
        emit UaSendVersionSet(msg.sender, _newVersion);
    }

    // Migration step 2: set the receive version
    // after all messages sent from the old version are received
    // the UA can now safely switch to the new receive version
    // it is the UA's responsibility make sure all messages from the old version are processed
    function setReceiveVersion(uint16 _newVersion) external override validVersion(_newVersion) {
        // write into config
        LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
        uaConfig.receiveVersion = _newVersion;
        // the libraryLookup[BLOCK_VERSION || DEFAULT_VERSION] = 0x0
        uaConfig.receiveLibraryAddress = address(libraryLookup[_newVersion]);
        emit UaReceiveVersionSet(msg.sender, _newVersion);
    }

    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override {
        StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
        // revert if no messages are cached. safeguard malicious UA behaviour
        require(sp.payloadHash != bytes32(0), "LayerZero: no stored payload");
        require(sp.dstAddress == msg.sender, "LayerZero: invalid caller");

        // empty the storedPayload
        sp.payloadLength = 0;
        sp.dstAddress = address(0);
        sp.payloadHash = bytes32(0);

        // emit the event with the new nonce
        emit UaForceResumeReceive(_srcChainId, _srcAddress);
    }

    //---------------------------------------------------------------------------
    // view helper function

    function estimateFees(
        uint16 _dstChainId,
        address _userApplication,
        bytes calldata _payload,
        bool _payInZRO,
        bytes calldata _adapterParams
    ) external view override returns (uint nativeFee, uint zroFee) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        ILayerZeroMessagingLibrary lib = uaConfig.sendVersion == DEFAULT_VERSION
            ? defaultSendLibrary
            : uaConfig.sendLibrary;
        return lib.estimateFees(_dstChainId, _userApplication, _payload, _payInZRO, _adapterParams);
    }

    function _getSendLibrary(LibraryConfig storage uaConfig) internal view returns (ILayerZeroMessagingLibrary) {
        if (uaConfig.sendVersion == DEFAULT_VERSION) {
            // check if the in send-blocking upgrade
            require(defaultSendVersion != BLOCK_VERSION, "LayerZero: default in BLOCK_VERSION");
            return defaultSendLibrary;
        } else {
            // check if the in send-blocking upgrade
            require(uaConfig.sendVersion != BLOCK_VERSION, "LayerZero: in BLOCK_VERSION");
            return uaConfig.sendLibrary;
        }
    }

    function getSendLibraryAddress(
        address _userApplication
    ) external view override returns (address sendLibraryAddress) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        uint16 sendVersion = uaConfig.sendVersion;
        require(sendVersion != BLOCK_VERSION, "LayerZero: send version is BLOCK_VERSION");
        if (sendVersion == DEFAULT_VERSION) {
            require(defaultSendVersion != BLOCK_VERSION, "LayerZero: send version (default) is BLOCK_VERSION");
            sendLibraryAddress = address(defaultSendLibrary);
        } else {
            sendLibraryAddress = address(uaConfig.sendLibrary);
        }
    }

    function getReceiveLibraryAddress(
        address _userApplication
    ) external view override returns (address receiveLibraryAddress) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        uint16 receiveVersion = uaConfig.receiveVersion;
        require(receiveVersion != BLOCK_VERSION, "LayerZero: receive version is BLOCK_VERSION");
        if (receiveVersion == DEFAULT_VERSION) {
            require(defaultReceiveVersion != BLOCK_VERSION, "LayerZero: receive version (default) is BLOCK_VERSION");
            receiveLibraryAddress = defaultReceiveLibraryAddress;
        } else {
            receiveLibraryAddress = uaConfig.receiveLibraryAddress;
        }
    }

    function isSendingPayload() external view override returns (bool) {
        return _send_entered_state == _ENTERED;
    }

    function isReceivingPayload() external view override returns (bool) {
        return _receive_entered_state == _ENTERED;
    }

    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view override returns (uint64) {
        return inboundNonce[_srcChainId][_srcAddress];
    }

    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view override returns (uint64) {
        return outboundNonce[_dstChainId][_srcAddress];
    }

    function getChainId() external view override returns (uint16) {
        return chainId;
    }

    function getSendVersion(address _userApplication) external view override returns (uint16) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        return uaConfig.sendVersion == DEFAULT_VERSION ? defaultSendVersion : uaConfig.sendVersion;
    }

    function getReceiveVersion(address _userApplication) external view override returns (uint16) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        return uaConfig.receiveVersion == DEFAULT_VERSION ? defaultReceiveVersion : uaConfig.receiveVersion;
    }

    function getConfig(
        uint16 _version,
        uint16 _chainId,
        address _userApplication,
        uint _configType
    ) external view override validVersion(_version) returns (bytes memory) {
        if (_version == DEFAULT_VERSION) {
            require(defaultSendVersion == defaultReceiveVersion, "LayerZero: no DEFAULT config while migration");
            _version = defaultSendVersion;
        }
        require(_version != BLOCK_VERSION, "LayerZero: can not get config for BLOCK_VERSION");
        return libraryLookup[_version].getConfig(_chainId, _userApplication, _configType);
    }

    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view override returns (bool) {
        StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
        return sp.payloadHash != bytes32(0);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"DefaultReceiveVersionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"DefaultSendVersionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"NewLibraryVersionAdded","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":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ua","type":"address"},{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"UaReceiveVersionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ua","type":"address"},{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"UaSendVersionSet","type":"event"},{"inputs":[],"name":"BLOCK_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultSendLibrary","outputs":[{"internalType":"contract ILayerZeroMessagingLibrary","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"receiveLibraryAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"sendLibraryAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"libraryLookup","outputs":[{"internalType":"contract ILayerZeroMessagingLibrary","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newLayerZeroLibraryAddress","type":"address"}],"name":"newVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_destination","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newDefaultReceiveVersion","type":"uint16"}],"name":"setDefaultReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newDefaultSendVersion","type":"uint16"}],"name":"setDefaultSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newVersion","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newVersion","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"uaConfigLookup","outputs":[{"internalType":"uint16","name":"sendVersion","type":"uint16"},{"internalType":"uint16","name":"receiveVersion","type":"uint16"},{"internalType":"address","name":"receiveLibraryAddress","type":"address"},{"internalType":"contract ILayerZeroMessagingLibrary","name":"sendLibrary","type":"address"}],"stateMutability":"view","type":"function"}]

60a06040526008805461ff001960ff19909116600117166101001790553480156200002957600080fd5b506040516200378e3803806200378e833981810160405260208110156200004f57600080fd5b505160006200005d620000bd565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060f01b6001600160f01b031916608052620000c1565b3390565b60805160f01c6136aa620000e4600039806116855280611c5952506136aa6000f3fe6080604052600436106102855760003560e01c80639c729da111610153578063ca066b35116100cb578063f2fde38b1161007f578063f5ecbdbc11610064578063f5ecbdbc14610e54578063faee093f14610f16578063fdc07c7014610f2b57610285565b8063f2fde38b14610db8578063f4abee4b14610deb57610285565b8063da1a7c9a116100b0578063da1a7c9a14610d5b578063e97a448a14610d8e578063ebfea6e014610da357610285565b8063ca066b3514610cae578063cbed8b9c14610cc357610285565b8063bd42a71311610122578063c2fa481311610107578063c2fa481314610a49578063c580310014610b48578063c7e3711714610c8057610285565b8063bd42a71314610a06578063c07f47d414610a3457610285565b80639c729da1146108a7578063a91606df146108da578063aaff5f16146108ef578063b2086499146109c957610285565b806342d65a8d1161020157806376a386dc116101b55780638da5cb5b1161019a5780638da5cb5b146107bf5780639924d33b146107d45780639a8a05921461089257610285565b806376a386dc146106765780637a1457481461076557610285565b80635d9ef01a116101e65780635d9ef01a14610619578063715018a61461062e57806371ba2fd61461064357610285565b806342d65a8d146105605780634afb422b146105e857610285565b806310ddb1371161025857806324ba3f2c1161023d57806324ba3f2c1461042f5780633408e4701461044457806340a7bb101461045957610285565b806310ddb137146103ce578063158c81ad146103fc57610285565b806307e0db171461028a578063096568f6146102ba5780630b837bb5146103045780630eaf6ea614610332575b600080fd5b34801561029657600080fd5b506102b8600480360360208110156102ad57600080fd5b503561ffff16610fb3565b005b3480156102c657600080fd5b506102ed600480360360208110156102dd57600080fd5b50356001600160a01b03166110ea565b6040805161ffff9092168252519081900360200190f35b34801561031057600080fd5b506102b86004803603602081101561032757600080fd5b503561ffff16611129565b34801561033e57600080fd5b506103ba6004803603604081101561035557600080fd5b61ffff823516919081019060408101602082013564010000000081111561037b57600080fd5b82018360208201111561038d57600080fd5b803590602001918460018302840111640100000000831117156103af57600080fd5b509092509050611309565b604080519115158252519081900360200190f35b3480156103da57600080fd5b506102b8600480360360208110156103f157600080fd5b503561ffff16611355565b34801561040857600080fd5b506102b86004803603602081101561041f57600080fd5b50356001600160a01b0316611495565b34801561043b57600080fd5b506102ed61167e565b34801561045057600080fd5b506102ed611683565b34801561046557600080fd5b50610547600480360360a081101561047c57600080fd5b61ffff823516916001600160a01b03602082013516918101906060810160408201356401000000008111156104b057600080fd5b8201836020820111156104c257600080fd5b803590602001918460018302840111640100000000831117156104e457600080fd5b91939092823515159260408101906020013564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b5090925090506116a7565b6040805192835260208301919091528051918290030190f35b34801561056c57600080fd5b506102b86004803603604081101561058357600080fd5b61ffff82351691908101906040810160208201356401000000008111156105a957600080fd5b8201836020820111156105bb57600080fd5b803590602001918460018302840111640100000000831117156105dd57600080fd5b509092509050611800565b3480156105f457600080fd5b506105fd6119a0565b604080516001600160a01b039092168252519081900360200190f35b34801561062557600080fd5b506102ed6119b7565b34801561063a57600080fd5b506102b86119c1565b34801561064f57600080fd5b506105fd6004803603602081101561066657600080fd5b50356001600160a01b0316611a97565b34801561068257600080fd5b506107346004803603604081101561069957600080fd5b61ffff82351691908101906040810160208201356401000000008111156106bf57600080fd5b8201836020820111156106d157600080fd5b803590602001918460018302840111640100000000831117156106f357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611b81945050505050565b6040805167ffffffffffffffff90941684526001600160a01b03909216602084015282820152519081900360600190f35b34801561077157600080fd5b506107a26004803603604081101561078857600080fd5b50803561ffff1690602001356001600160a01b0316611bd8565b6040805167ffffffffffffffff9092168252519081900360200190f35b3480156107cb57600080fd5b506105fd611c10565b3480156107e057600080fd5b506107a2600480360360408110156107f757600080fd5b61ffff823516919081019060408101602082013564010000000081111561081d57600080fd5b82018360208201111561082f57600080fd5b8035906020019184600183028401116401000000008311171561085157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611c1f945050505050565b34801561089e57600080fd5b506102ed611c57565b3480156108b357600080fd5b506105fd600480360360208110156108ca57600080fd5b50356001600160a01b0316611c7b565b3480156108e657600080fd5b506102ed611d58565b3480156108fb57600080fd5b506102b86004803603606081101561091257600080fd5b61ffff823516919081019060408101602082013564010000000081111561093857600080fd5b82018360208201111561094a57600080fd5b8035906020019184600183028401116401000000008311171561096c57600080fd5b91939092909160208101903564010000000081111561098a57600080fd5b82018360208201111561099c57600080fd5b803590602001918460018302840111640100000000831117156109be57600080fd5b509092509050611d5e565b3480156109d557600080fd5b506107a2600480360360408110156109ec57600080fd5b50803561ffff1690602001356001600160a01b0316612143565b348015610a1257600080fd5b506102b860048036036020811015610a2957600080fd5b503561ffff1661216a565b348015610a4057600080fd5b506102ed612350565b348015610a5557600080fd5b506102b8600480360360c0811015610a6c57600080fd5b61ffff8235169190810190604081016020820135640100000000811115610a9257600080fd5b820183602082011115610aa457600080fd5b80359060200191846001830284011164010000000083111715610ac657600080fd5b919390926001600160a01b038335169267ffffffffffffffff602082013516926040820135929091608081019060600135640100000000811115610b0957600080fd5b820183602082011115610b1b57600080fd5b80359060200191846001830284011164010000000083111715610b3d57600080fd5b509092509050612372565b6102b8600480360360c0811015610b5e57600080fd5b61ffff8235169190810190604081016020820135640100000000811115610b8457600080fd5b820183602082011115610b9657600080fd5b80359060200191846001830284011164010000000083111715610bb857600080fd5b919390929091602081019035640100000000811115610bd657600080fd5b820183602082011115610be857600080fd5b80359060200191846001830284011164010000000083111715610c0a57600080fd5b919390926001600160a01b0383358116936020810135909116929190606081019060400135640100000000811115610c4157600080fd5b820183602082011115610c5357600080fd5b80359060200191846001830284011164010000000083111715610c7557600080fd5b509092509050612995565b348015610c8c57600080fd5b506105fd60048036036020811015610ca357600080fd5b503561ffff16612bf4565b348015610cba57600080fd5b506103ba612c0f565b348015610ccf57600080fd5b506102b860048036036080811015610ce657600080fd5b61ffff823581169260208101359091169160408201359190810190608081016060820135640100000000811115610d1c57600080fd5b820183602082011115610d2e57600080fd5b80359060200191846001830284011164010000000083111715610d5057600080fd5b509092509050612c20565b348015610d6757600080fd5b506102ed60048036036020811015610d7e57600080fd5b50356001600160a01b0316612e16565b348015610d9a57600080fd5b506103ba612e64565b348015610daf57600080fd5b506105fd612e70565b348015610dc457600080fd5b506102b860048036036020811015610ddb57600080fd5b50356001600160a01b0316612e7f565b348015610df757600080fd5b50610e1e60048036036020811015610e0e57600080fd5b50356001600160a01b0316612fab565b6040805161ffff95861681529390941660208401526001600160a01b039182168385015216606082015290519081900360800190f35b348015610e6057600080fd5b50610ea160048036036080811015610e7757600080fd5b5061ffff81358116916020810135909116906001600160a01b036040820135169060600135612fea565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610edb578181015183820152602001610ec3565b50505050905090810190601f168015610f085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f2257600080fd5b506102ed61327a565b348015610f3757600080fd5b506107a260048036036040811015610f4e57600080fd5b61ffff8235169190810190604081016020820135640100000000811115610f7457600080fd5b820183602082011115610f8657600080fd5b80359060200191846001830284011164010000000083111715610fa857600080fd5b50909250905061328a565b600054819061ffff740100000000000000000000000000000000000000009091048116908216111580610fe9575061ffff818116145b6110245760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b336000818152600460209081526040808320805461ffff88167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909116811782558085526001808552948390205494820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039690961695909517909455815194855291840192909252815190927ff2bc255571446a2f9b7cb2f0c75fd6a279bdb469f515d5a5c9910f713aeb32ca92908290030190a1505050565b6001600160a01b0381166000908152600460205260408120805461ffff161561111857805461ffff16611120565b60025461ffff165b9150505b919050565b6111316132d7565b6001600160a01b0316611142611c10565b6001600160a01b03161461119d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff7401000000000000000000000000000000000000000090910481169082161115806111d3575061ffff818116145b61120e5760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b61ffff821661124e5760405162461bcd60e51b81526004018080602001828103825260288152602001806135f36028913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff848116918217808455908116600090815260016020908152604091829020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff9093166001600160a01b039093166401000000000292909217909355825191825291517feb685c087d38029bbde35299b748c6b80f099c7e5c3f9fe2dbb3ace1099e3b07929181900390910190a15050565b61ffff8316600090815260076020526040808220905182919085908590808383808284379190910194855250506040519283900360200190922060010154151593505050509392505050565b600054819061ffff74010000000000000000000000000000000000000000909104811690821611158061138b575061ffff818116145b6113c65760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b33600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8916908102919091178083558186526001855294839020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff9095166001600160a01b0390951664010000000002949094178155815194855291840192909252815190927f9c199418af68d1547d7b99c71ee6a9eb18b27990dfcfb38982f3e3fb8c7b6bef92908290030190a1505050565b61149d6132d7565b6001600160a01b03166114ae611c10565b6001600160a01b031614611509576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661154e5760405162461bcd60e51b815260040180806020018281038252602d815260200180613549602d913960400191505060405180910390fd5b60005461ffff740100000000000000000000000000000000000000009091048116106115ab5760405162461bcd60e51b815260040180806020018281038252602c81526020018061351d602c913960400191505060405180910390fd5b60008054600161ffff7401000000000000000000000000000000000000000080840482168301821681027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff90941693909317808555839004811684526020918252604080852080546001600160a01b0388167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790559354845193900416825291517f18c7402e58a1bec57f4eb75af242f65ababbbe09d9db383e0542f00635e5b8c5929181900390910190a150565b600081565b7f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b03861660009081526004602052604081208054829190829061ffff16156116e25760018201546001600160a01b03166116f7565b60025464010000000090046001600160a01b03165b9050806001600160a01b03166340a7bb108c8c8c8c8c8c8c6040518863ffffffff1660e01b8152600401808861ffff168152602001876001600160a01b03168152602001806020018515158152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509950505050505050505050604080518083038186803b1580156117bb57600080fd5b505afa1580156117cf573d6000803e3d6000fd5b505050506040513d60408110156117e557600080fd5b508051602090910151909c909b509950505050505050505050565b61ffff831660009081526007602052604080822090518490849080838380828437919091019485525050604051928390036020019092206001810154909350151591506118969050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b80546801000000000000000090046001600160a01b03163314611900576040805162461bcd60e51b815260206004820152601960248201527f4c617965725a65726f3a20696e76616c69642063616c6c657200000000000000604482015290519081900360640190fd5b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040805161ffff86168152602081018281529181018490527f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f98918691869186919060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a150505050565b60025464010000000090046001600160a01b031681565b60025461ffff1681565b6119c96132d7565b6001600160a01b03166119da611c10565b6001600160a01b031614611a35576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6001600160a01b0381166000908152600460205260408120805461ffff62010000909104811690811415611afc5760405162461bcd60e51b815260040180806020018281038252602b81526020018061364a602b913960400191505060405180910390fd5b61ffff8116611b645760025462010000900461ffff9081161415611b515760405162461bcd60e51b81526004018080602001828103825260358152602001806133e46035913960400191505060405180910390fd5b6003546001600160a01b03169250611b7a565b815464010000000090046001600160a01b031692505b5050919050565b600760209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff8216916801000000000000000090046001600160a01b03169083565b61ffff821660009081526006602090815260408083206001600160a01b038516845290915290205467ffffffffffffffff1692915050565b6000546001600160a01b031690565b6005602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600460205260408120805461ffff90811690811415611cda5760405162461bcd60e51b81526004018080602001828103825260288152602001806134f56028913960400191505060405180910390fd5b61ffff8116611d445760025461ffff9081161415611d295760405162461bcd60e51b815260040180806020018281038252603281526020018061348d6032913960400191505060405180910390fd5b60025464010000000090046001600160a01b03169250611b7a565b50600101546001600160a01b031692915050565b61ffff81565b600854610100900460ff16600114611dbd576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff85166000908152600760205260408082209051869086908083838082843791909101948552505060405192839003602001909220600181015490935015159150611e7f9050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b805467ffffffffffffffff1682148015611eba5750806001015483836040518083838082843780830192505050925050506040518091039020145b611f0b576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964207061796c6f6164000000000000604482015290519081900360640190fd5b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff88168152600560205260408082209051680100000000000000009093046001600160a01b0316928890889080838380828437919091019485525050604051928390036020018320547e1d356700000000000000000000000000000000000000000000000000000000845261ffff8c166004850190815267ffffffffffffffff90911660448501819052608060248601908152608486018c90529095506001600160a01b03871694621d356794508d93508c928c9288928d928d929091606481019060a401888880828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b15801561206657600080fd5b505af115801561207a573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051808661ffff168152602001806020018467ffffffffffffffff168152602001836001600160a01b031681526020018281038252868682818152602001925080828437600083820152604051601f909101601f19169092018290039850909650505050505050a15050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055505050505050565b600660209081526000928352604080842090915290825290205467ffffffffffffffff1681565b6121726132d7565b6001600160a01b0316612183611c10565b6001600160a01b0316146121de576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff740100000000000000000000000000000000000000009091048116908216111580612214575061ffff818116145b61224f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b61ffff821661228f5760405162461bcd60e51b815260040180806020018281038252602b8152602001806135a5602b913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8581168281029390931793849055920490911660009081526001602090815260409182902054600380546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055815192835290517f96874dbe70c8a59e7996847475489a70a1b5096ed92cdc858b63ebabd071f8199281900390910190a15050565b60005474010000000000000000000000000000000000000000900461ffff1681565b600854610100900460ff166001146123d1576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff8816600090815260056020526040908190209051889088908083838082843791909101948552505060405192839003602001909220805467ffffffffffffffff80821660010181167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090921682179092559087161491506124ca9050576040805162461bcd60e51b815260206004820152601660248201527f4c617965725a65726f3a2077726f6e67206e6f6e636500000000000000000000604482015290519081900360640190fd5b6001600160a01b0385166000908152600460205260409020805462010000900461ffff16612540576003546001600160a01b0316331461253b5760405162461bcd60e51b81526004018080602001828103825260228152602001806134196022913960400191505060405180910390fd5b6125a6565b805464010000000090046001600160a01b031633146125a6576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964206c696272617279000000000000604482015290519081900360640190fd5b61ffff891660009081526007602052604080822090518a908a908083838082843791909101948552505060405192839003602001909220600181015490935015915061263b9050576040805162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f3a20696e206d65737361676520626c6f636b696e670000604482015290519081900360640190fd5b866001600160a01b0316621d3567868c8c8c8b8a8a6040518863ffffffff1660e01b8152600401808761ffff168152602001806020018567ffffffffffffffff168152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600088803b1580156126f757600080fd5b5087f193505050508015612709575060015b61295d573d808015612737576040519150601f19603f3d011682016040523d82523d6000602084013e61273c565b606091505b5060405180606001604052808686905067ffffffffffffffff168152602001896001600160a01b0316815260200186866040518083838082843780830192505050925050506040518091039020815250600760008d61ffff1661ffff1681526020019081526020016000208b8b604051808383808284378083019250505092505050908152602001604051809103902060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600101559050507f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db8b8b8b8b8b8a8a88604051808961ffff16815260200180602001876001600160a01b031681526020018667ffffffffffffffff168152602001806020018060200184810384528b8b82818152602001925080828437600083820152601f01601f1916909101858103845287815260200190508787808284376000838201819052601f909101601f191690920186810384528751815287516020918201939189019250908190849084905b83811015612918578181015183820152602001612900565b50505050905090810190601f1680156129455780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390a1505b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555050505050505050565b60085460ff166001146129ef576040805162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f3a206e6f2073656e64207265656e7472616e6379000000604482015290519081900360640190fd5b6008805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911617905533600081815260046020908152604080832061ffff8e1684526006835281842094845293909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811667ffffffffffffffff91821660010191821617909155612a89826132db565b6001600160a01b0316634d3a0f7c3433848f8f8f8f8f8f8f8f8f6040518d63ffffffff1660e01b8152600401808c6001600160a01b031681526020018b67ffffffffffffffff1681526020018a61ffff1681526020018060200180602001876001600160a01b03168152602001866001600160a01b031681526020018060200184810384528c8c82818152602001925080828437600083820152601f01601f191690910185810384528a815260200190508a8a80828437600083820152601f01601f191690910185810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509e5050505050505050505050505050506000604051808303818588803b158015612ba357600080fd5b505af1158015612bb7573d6000803e3d6000fd5b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050565b6001602052600090815260409020546001600160a01b031681565b600854610100900460ff1660021490565b600054859061ffff740100000000000000000000000000000000000000009091048116908216111580612c56575061ffff818116145b612c915760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b61ffff8616612cf15760025461ffff808216620100009092041614612ce75760405162461bcd60e51b81526004018080602001828103825260368152602001806134bf6036913960400191505060405180910390fd5b60025461ffff1695505b61ffff8681161415612d345760405162461bcd60e51b815260040180806020018281038252602f81526020018061361b602f913960400191505060405180910390fd5b61ffff808716600090815260016020526040908190205490517ff8e1734c00000000000000000000000000000000000000000000000000000000815291871660048301908152336024840181905260448401889052608060648501908152608485018790526001600160a01b039093169363f8e1734c938a938a928a928a929160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015612df657600080fd5b505af1158015612e0a573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0381166000908152600460205260408120805462010000900461ffff1615612e5057805462010000900461ffff16611120565b505060025462010000900461ffff16919050565b60085460ff1660021490565b6003546001600160a01b031681565b612e876132d7565b6001600160a01b0316612e98611c10565b6001600160a01b031614612ef3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116612f385760405162461bcd60e51b815260040180806020018281038252602681526020018061343b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6004602052600090815260409020805460019091015461ffff80831692620100008104909116916001600160a01b036401000000009092048216911684565b600054606090859061ffff740100000000000000000000000000000000000000009091048116908216111580613023575061ffff818116145b61305e5760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b61ffff86166130be5760025461ffff8082166201000090920416146130b45760405162461bcd60e51b815260040180806020018281038252602c815260200180613461602c913960400191505060405180910390fd5b60025461ffff1695505b61ffff86811614156131015760405162461bcd60e51b815260040180806020018281038252602f815260200180613576602f913960400191505060405180910390fd5b61ffff8087166000908152600160205260408082205481517f52d2871f00000000000000000000000000000000000000000000000000000000815293891660048501526001600160a01b0388811660248601526044850188905291519116926352d2871f926064808301939192829003018186803b15801561318257600080fd5b505afa158015613196573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156131bf57600080fd5b81019080805160405193929190846401000000008211156131df57600080fd5b9083019060208201858111156131f457600080fd5b825164010000000081118282018810171561320e57600080fd5b82525081516020918201929091019080838360005b8381101561323b578181015183820152602001613223565b50505050905090810190601f1680156132685780820380516001836020036101000a031916815260200191505b50604052505050915050949350505050565b60025462010000900461ffff1681565b61ffff831660009081526005602052604080822090518490849080838380828437919091019485525050604051928390036020019092205467ffffffffffffffff16925050509392505050565b3390565b805460009061ffff166133485760025461ffff908116141561332e5760405162461bcd60e51b81526004018080602001828103825260238152602001806135d06023913960400191505060405180910390fd5b5060025464010000000090046001600160a01b0316611124565b815461ffff90811614156133a3576040805162461bcd60e51b815260206004820152601b60248201527f4c617965725a65726f3a20696e20424c4f434b5f56455253494f4e0000000000604482015290519081900360640190fd5b5060018101546001600160a01b031661112456fe4c617965725a65726f3a20696e76616c6964206d6573736167696e67206c6962726172792076657273696f6e4c617965725a65726f3a20726563656976652076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a20696e76616c69642064656661756c74206c6962726172794f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c617965725a65726f3a206e6f2044454641554c5420636f6e666967207768696c65206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f742073657420436f6e66696720647572696e672044454641554c54206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e20697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f7420616464206e6577206d6573736167696e67206c6962726172794c617965725a65726f3a206e65772076657273696f6e2063616e6e6f74206265207a65726f20616464726573734c617965725a65726f3a2063616e206e6f742067657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c7420726563656976652076657273696f6e206d757374203e20304c617965725a65726f3a2064656661756c7420696e20424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c742073656e642076657273696f6e206d757374203e20304c617965725a65726f3a2063616e206e6f742073657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a20726563656976652076657273696f6e20697320424c4f434b5f56455253494f4ea26469706673582212208ed5abf804b10b0f71da77c570eb372ab4e36974c6a955e66c94b397fe506a9e64736f6c6343000706003300000000000000000000000000000000000000000000000000000000000000b8

Deployed Bytecode

0x6080604052600436106102855760003560e01c80639c729da111610153578063ca066b35116100cb578063f2fde38b1161007f578063f5ecbdbc11610064578063f5ecbdbc14610e54578063faee093f14610f16578063fdc07c7014610f2b57610285565b8063f2fde38b14610db8578063f4abee4b14610deb57610285565b8063da1a7c9a116100b0578063da1a7c9a14610d5b578063e97a448a14610d8e578063ebfea6e014610da357610285565b8063ca066b3514610cae578063cbed8b9c14610cc357610285565b8063bd42a71311610122578063c2fa481311610107578063c2fa481314610a49578063c580310014610b48578063c7e3711714610c8057610285565b8063bd42a71314610a06578063c07f47d414610a3457610285565b80639c729da1146108a7578063a91606df146108da578063aaff5f16146108ef578063b2086499146109c957610285565b806342d65a8d1161020157806376a386dc116101b55780638da5cb5b1161019a5780638da5cb5b146107bf5780639924d33b146107d45780639a8a05921461089257610285565b806376a386dc146106765780637a1457481461076557610285565b80635d9ef01a116101e65780635d9ef01a14610619578063715018a61461062e57806371ba2fd61461064357610285565b806342d65a8d146105605780634afb422b146105e857610285565b806310ddb1371161025857806324ba3f2c1161023d57806324ba3f2c1461042f5780633408e4701461044457806340a7bb101461045957610285565b806310ddb137146103ce578063158c81ad146103fc57610285565b806307e0db171461028a578063096568f6146102ba5780630b837bb5146103045780630eaf6ea614610332575b600080fd5b34801561029657600080fd5b506102b8600480360360208110156102ad57600080fd5b503561ffff16610fb3565b005b3480156102c657600080fd5b506102ed600480360360208110156102dd57600080fd5b50356001600160a01b03166110ea565b6040805161ffff9092168252519081900360200190f35b34801561031057600080fd5b506102b86004803603602081101561032757600080fd5b503561ffff16611129565b34801561033e57600080fd5b506103ba6004803603604081101561035557600080fd5b61ffff823516919081019060408101602082013564010000000081111561037b57600080fd5b82018360208201111561038d57600080fd5b803590602001918460018302840111640100000000831117156103af57600080fd5b509092509050611309565b604080519115158252519081900360200190f35b3480156103da57600080fd5b506102b8600480360360208110156103f157600080fd5b503561ffff16611355565b34801561040857600080fd5b506102b86004803603602081101561041f57600080fd5b50356001600160a01b0316611495565b34801561043b57600080fd5b506102ed61167e565b34801561045057600080fd5b506102ed611683565b34801561046557600080fd5b50610547600480360360a081101561047c57600080fd5b61ffff823516916001600160a01b03602082013516918101906060810160408201356401000000008111156104b057600080fd5b8201836020820111156104c257600080fd5b803590602001918460018302840111640100000000831117156104e457600080fd5b91939092823515159260408101906020013564010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b5090925090506116a7565b6040805192835260208301919091528051918290030190f35b34801561056c57600080fd5b506102b86004803603604081101561058357600080fd5b61ffff82351691908101906040810160208201356401000000008111156105a957600080fd5b8201836020820111156105bb57600080fd5b803590602001918460018302840111640100000000831117156105dd57600080fd5b509092509050611800565b3480156105f457600080fd5b506105fd6119a0565b604080516001600160a01b039092168252519081900360200190f35b34801561062557600080fd5b506102ed6119b7565b34801561063a57600080fd5b506102b86119c1565b34801561064f57600080fd5b506105fd6004803603602081101561066657600080fd5b50356001600160a01b0316611a97565b34801561068257600080fd5b506107346004803603604081101561069957600080fd5b61ffff82351691908101906040810160208201356401000000008111156106bf57600080fd5b8201836020820111156106d157600080fd5b803590602001918460018302840111640100000000831117156106f357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611b81945050505050565b6040805167ffffffffffffffff90941684526001600160a01b03909216602084015282820152519081900360600190f35b34801561077157600080fd5b506107a26004803603604081101561078857600080fd5b50803561ffff1690602001356001600160a01b0316611bd8565b6040805167ffffffffffffffff9092168252519081900360200190f35b3480156107cb57600080fd5b506105fd611c10565b3480156107e057600080fd5b506107a2600480360360408110156107f757600080fd5b61ffff823516919081019060408101602082013564010000000081111561081d57600080fd5b82018360208201111561082f57600080fd5b8035906020019184600183028401116401000000008311171561085157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611c1f945050505050565b34801561089e57600080fd5b506102ed611c57565b3480156108b357600080fd5b506105fd600480360360208110156108ca57600080fd5b50356001600160a01b0316611c7b565b3480156108e657600080fd5b506102ed611d58565b3480156108fb57600080fd5b506102b86004803603606081101561091257600080fd5b61ffff823516919081019060408101602082013564010000000081111561093857600080fd5b82018360208201111561094a57600080fd5b8035906020019184600183028401116401000000008311171561096c57600080fd5b91939092909160208101903564010000000081111561098a57600080fd5b82018360208201111561099c57600080fd5b803590602001918460018302840111640100000000831117156109be57600080fd5b509092509050611d5e565b3480156109d557600080fd5b506107a2600480360360408110156109ec57600080fd5b50803561ffff1690602001356001600160a01b0316612143565b348015610a1257600080fd5b506102b860048036036020811015610a2957600080fd5b503561ffff1661216a565b348015610a4057600080fd5b506102ed612350565b348015610a5557600080fd5b506102b8600480360360c0811015610a6c57600080fd5b61ffff8235169190810190604081016020820135640100000000811115610a9257600080fd5b820183602082011115610aa457600080fd5b80359060200191846001830284011164010000000083111715610ac657600080fd5b919390926001600160a01b038335169267ffffffffffffffff602082013516926040820135929091608081019060600135640100000000811115610b0957600080fd5b820183602082011115610b1b57600080fd5b80359060200191846001830284011164010000000083111715610b3d57600080fd5b509092509050612372565b6102b8600480360360c0811015610b5e57600080fd5b61ffff8235169190810190604081016020820135640100000000811115610b8457600080fd5b820183602082011115610b9657600080fd5b80359060200191846001830284011164010000000083111715610bb857600080fd5b919390929091602081019035640100000000811115610bd657600080fd5b820183602082011115610be857600080fd5b80359060200191846001830284011164010000000083111715610c0a57600080fd5b919390926001600160a01b0383358116936020810135909116929190606081019060400135640100000000811115610c4157600080fd5b820183602082011115610c5357600080fd5b80359060200191846001830284011164010000000083111715610c7557600080fd5b509092509050612995565b348015610c8c57600080fd5b506105fd60048036036020811015610ca357600080fd5b503561ffff16612bf4565b348015610cba57600080fd5b506103ba612c0f565b348015610ccf57600080fd5b506102b860048036036080811015610ce657600080fd5b61ffff823581169260208101359091169160408201359190810190608081016060820135640100000000811115610d1c57600080fd5b820183602082011115610d2e57600080fd5b80359060200191846001830284011164010000000083111715610d5057600080fd5b509092509050612c20565b348015610d6757600080fd5b506102ed60048036036020811015610d7e57600080fd5b50356001600160a01b0316612e16565b348015610d9a57600080fd5b506103ba612e64565b348015610daf57600080fd5b506105fd612e70565b348015610dc457600080fd5b506102b860048036036020811015610ddb57600080fd5b50356001600160a01b0316612e7f565b348015610df757600080fd5b50610e1e60048036036020811015610e0e57600080fd5b50356001600160a01b0316612fab565b6040805161ffff95861681529390941660208401526001600160a01b039182168385015216606082015290519081900360800190f35b348015610e6057600080fd5b50610ea160048036036080811015610e7757600080fd5b5061ffff81358116916020810135909116906001600160a01b036040820135169060600135612fea565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610edb578181015183820152602001610ec3565b50505050905090810190601f168015610f085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f2257600080fd5b506102ed61327a565b348015610f3757600080fd5b506107a260048036036040811015610f4e57600080fd5b61ffff8235169190810190604081016020820135640100000000811115610f7457600080fd5b820183602082011115610f8657600080fd5b80359060200191846001830284011164010000000083111715610fa857600080fd5b50909250905061328a565b600054819061ffff740100000000000000000000000000000000000000009091048116908216111580610fe9575061ffff818116145b6110245760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b336000818152600460209081526040808320805461ffff88167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909116811782558085526001808552948390205494820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039690961695909517909455815194855291840192909252815190927ff2bc255571446a2f9b7cb2f0c75fd6a279bdb469f515d5a5c9910f713aeb32ca92908290030190a1505050565b6001600160a01b0381166000908152600460205260408120805461ffff161561111857805461ffff16611120565b60025461ffff165b9150505b919050565b6111316132d7565b6001600160a01b0316611142611c10565b6001600160a01b03161461119d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff7401000000000000000000000000000000000000000090910481169082161115806111d3575061ffff818116145b61120e5760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b61ffff821661124e5760405162461bcd60e51b81526004018080602001828103825260288152602001806135f36028913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff848116918217808455908116600090815260016020908152604091829020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff9093166001600160a01b039093166401000000000292909217909355825191825291517feb685c087d38029bbde35299b748c6b80f099c7e5c3f9fe2dbb3ace1099e3b07929181900390910190a15050565b61ffff8316600090815260076020526040808220905182919085908590808383808284379190910194855250506040519283900360200190922060010154151593505050509392505050565b600054819061ffff74010000000000000000000000000000000000000000909104811690821611158061138b575061ffff818116145b6113c65760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b33600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8916908102919091178083558186526001855294839020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff9095166001600160a01b0390951664010000000002949094178155815194855291840192909252815190927f9c199418af68d1547d7b99c71ee6a9eb18b27990dfcfb38982f3e3fb8c7b6bef92908290030190a1505050565b61149d6132d7565b6001600160a01b03166114ae611c10565b6001600160a01b031614611509576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661154e5760405162461bcd60e51b815260040180806020018281038252602d815260200180613549602d913960400191505060405180910390fd5b60005461ffff740100000000000000000000000000000000000000009091048116106115ab5760405162461bcd60e51b815260040180806020018281038252602c81526020018061351d602c913960400191505060405180910390fd5b60008054600161ffff7401000000000000000000000000000000000000000080840482168301821681027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff90941693909317808555839004811684526020918252604080852080546001600160a01b0388167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790559354845193900416825291517f18c7402e58a1bec57f4eb75af242f65ababbbe09d9db383e0542f00635e5b8c5929181900390910190a150565b600081565b7f00000000000000000000000000000000000000000000000000000000000000b890565b6001600160a01b03861660009081526004602052604081208054829190829061ffff16156116e25760018201546001600160a01b03166116f7565b60025464010000000090046001600160a01b03165b9050806001600160a01b03166340a7bb108c8c8c8c8c8c8c6040518863ffffffff1660e01b8152600401808861ffff168152602001876001600160a01b03168152602001806020018515158152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509950505050505050505050604080518083038186803b1580156117bb57600080fd5b505afa1580156117cf573d6000803e3d6000fd5b505050506040513d60408110156117e557600080fd5b508051602090910151909c909b509950505050505050505050565b61ffff831660009081526007602052604080822090518490849080838380828437919091019485525050604051928390036020019092206001810154909350151591506118969050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b80546801000000000000000090046001600160a01b03163314611900576040805162461bcd60e51b815260206004820152601960248201527f4c617965725a65726f3a20696e76616c69642063616c6c657200000000000000604482015290519081900360640190fd5b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040805161ffff86168152602081018281529181018490527f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f98918691869186919060608201848480828437600083820152604051601f909101601f1916909201829003965090945050505050a150505050565b60025464010000000090046001600160a01b031681565b60025461ffff1681565b6119c96132d7565b6001600160a01b03166119da611c10565b6001600160a01b031614611a35576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6001600160a01b0381166000908152600460205260408120805461ffff62010000909104811690811415611afc5760405162461bcd60e51b815260040180806020018281038252602b81526020018061364a602b913960400191505060405180910390fd5b61ffff8116611b645760025462010000900461ffff9081161415611b515760405162461bcd60e51b81526004018080602001828103825260358152602001806133e46035913960400191505060405180910390fd5b6003546001600160a01b03169250611b7a565b815464010000000090046001600160a01b031692505b5050919050565b600760209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff8216916801000000000000000090046001600160a01b03169083565b61ffff821660009081526006602090815260408083206001600160a01b038516845290915290205467ffffffffffffffff1692915050565b6000546001600160a01b031690565b6005602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b7f00000000000000000000000000000000000000000000000000000000000000b881565b6001600160a01b0381166000908152600460205260408120805461ffff90811690811415611cda5760405162461bcd60e51b81526004018080602001828103825260288152602001806134f56028913960400191505060405180910390fd5b61ffff8116611d445760025461ffff9081161415611d295760405162461bcd60e51b815260040180806020018281038252603281526020018061348d6032913960400191505060405180910390fd5b60025464010000000090046001600160a01b03169250611b7a565b50600101546001600160a01b031692915050565b61ffff81565b600854610100900460ff16600114611dbd576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff85166000908152600760205260408082209051869086908083838082843791909101948552505060405192839003602001909220600181015490935015159150611e7f9050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b805467ffffffffffffffff1682148015611eba5750806001015483836040518083838082843780830192505050925050506040518091039020145b611f0b576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964207061796c6f6164000000000000604482015290519081900360640190fd5b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff88168152600560205260408082209051680100000000000000009093046001600160a01b0316928890889080838380828437919091019485525050604051928390036020018320547e1d356700000000000000000000000000000000000000000000000000000000845261ffff8c166004850190815267ffffffffffffffff90911660448501819052608060248601908152608486018c90529095506001600160a01b03871694621d356794508d93508c928c9288928d928d929091606481019060a401888880828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b15801561206657600080fd5b505af115801561207a573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051808661ffff168152602001806020018467ffffffffffffffff168152602001836001600160a01b031681526020018281038252868682818152602001925080828437600083820152604051601f909101601f19169092018290039850909650505050505050a15050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055505050505050565b600660209081526000928352604080842090915290825290205467ffffffffffffffff1681565b6121726132d7565b6001600160a01b0316612183611c10565b6001600160a01b0316146121de576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff740100000000000000000000000000000000000000009091048116908216111580612214575061ffff818116145b61224f5760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b61ffff821661228f5760405162461bcd60e51b815260040180806020018281038252602b8152602001806135a5602b913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8581168281029390931793849055920490911660009081526001602090815260409182902054600380546001600160a01b039092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055815192835290517f96874dbe70c8a59e7996847475489a70a1b5096ed92cdc858b63ebabd071f8199281900390910190a15050565b60005474010000000000000000000000000000000000000000900461ffff1681565b600854610100900460ff166001146123d1576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff8816600090815260056020526040908190209051889088908083838082843791909101948552505060405192839003602001909220805467ffffffffffffffff80821660010181167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090921682179092559087161491506124ca9050576040805162461bcd60e51b815260206004820152601660248201527f4c617965725a65726f3a2077726f6e67206e6f6e636500000000000000000000604482015290519081900360640190fd5b6001600160a01b0385166000908152600460205260409020805462010000900461ffff16612540576003546001600160a01b0316331461253b5760405162461bcd60e51b81526004018080602001828103825260228152602001806134196022913960400191505060405180910390fd5b6125a6565b805464010000000090046001600160a01b031633146125a6576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964206c696272617279000000000000604482015290519081900360640190fd5b61ffff891660009081526007602052604080822090518a908a908083838082843791909101948552505060405192839003602001909220600181015490935015915061263b9050576040805162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f3a20696e206d65737361676520626c6f636b696e670000604482015290519081900360640190fd5b866001600160a01b0316621d3567868c8c8c8b8a8a6040518863ffffffff1660e01b8152600401808761ffff168152602001806020018567ffffffffffffffff168152602001806020018381038352888882818152602001925080828437600083820152601f01601f191690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600088803b1580156126f757600080fd5b5087f193505050508015612709575060015b61295d573d808015612737576040519150601f19603f3d011682016040523d82523d6000602084013e61273c565b606091505b5060405180606001604052808686905067ffffffffffffffff168152602001896001600160a01b0316815260200186866040518083838082843780830192505050925050506040518091039020815250600760008d61ffff1661ffff1681526020019081526020016000208b8b604051808383808284378083019250505092505050908152602001604051809103902060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600101559050507f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db8b8b8b8b8b8a8a88604051808961ffff16815260200180602001876001600160a01b031681526020018667ffffffffffffffff168152602001806020018060200184810384528b8b82818152602001925080828437600083820152601f01601f1916909101858103845287815260200190508787808284376000838201819052601f909101601f191690920186810384528751815287516020918201939189019250908190849084905b83811015612918578181015183820152602001612900565b50505050905090810190601f1680156129455780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390a1505b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555050505050505050565b60085460ff166001146129ef576040805162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f3a206e6f2073656e64207265656e7472616e6379000000604482015290519081900360640190fd5b6008805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911617905533600081815260046020908152604080832061ffff8e1684526006835281842094845293909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811667ffffffffffffffff91821660010191821617909155612a89826132db565b6001600160a01b0316634d3a0f7c3433848f8f8f8f8f8f8f8f8f6040518d63ffffffff1660e01b8152600401808c6001600160a01b031681526020018b67ffffffffffffffff1681526020018a61ffff1681526020018060200180602001876001600160a01b03168152602001866001600160a01b031681526020018060200184810384528c8c82818152602001925080828437600083820152601f01601f191690910185810384528a815260200190508a8a80828437600083820152601f01601f191690910185810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509e5050505050505050505050505050506000604051808303818588803b158015612ba357600080fd5b505af1158015612bb7573d6000803e3d6000fd5b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050565b6001602052600090815260409020546001600160a01b031681565b600854610100900460ff1660021490565b600054859061ffff740100000000000000000000000000000000000000009091048116908216111580612c56575061ffff818116145b612c915760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b61ffff8616612cf15760025461ffff808216620100009092041614612ce75760405162461bcd60e51b81526004018080602001828103825260368152602001806134bf6036913960400191505060405180910390fd5b60025461ffff1695505b61ffff8681161415612d345760405162461bcd60e51b815260040180806020018281038252602f81526020018061361b602f913960400191505060405180910390fd5b61ffff808716600090815260016020526040908190205490517ff8e1734c00000000000000000000000000000000000000000000000000000000815291871660048301908152336024840181905260448401889052608060648501908152608485018790526001600160a01b039093169363f8e1734c938a938a928a928a929160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015612df657600080fd5b505af1158015612e0a573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b0381166000908152600460205260408120805462010000900461ffff1615612e5057805462010000900461ffff16611120565b505060025462010000900461ffff16919050565b60085460ff1660021490565b6003546001600160a01b031681565b612e876132d7565b6001600160a01b0316612e98611c10565b6001600160a01b031614612ef3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116612f385760405162461bcd60e51b815260040180806020018281038252602681526020018061343b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6004602052600090815260409020805460019091015461ffff80831692620100008104909116916001600160a01b036401000000009092048216911684565b600054606090859061ffff740100000000000000000000000000000000000000009091048116908216111580613023575061ffff818116145b61305e5760405162461bcd60e51b815260040180806020018281038252602c8152602001806133b8602c913960400191505060405180910390fd5b61ffff86166130be5760025461ffff8082166201000090920416146130b45760405162461bcd60e51b815260040180806020018281038252602c815260200180613461602c913960400191505060405180910390fd5b60025461ffff1695505b61ffff86811614156131015760405162461bcd60e51b815260040180806020018281038252602f815260200180613576602f913960400191505060405180910390fd5b61ffff8087166000908152600160205260408082205481517f52d2871f00000000000000000000000000000000000000000000000000000000815293891660048501526001600160a01b0388811660248601526044850188905291519116926352d2871f926064808301939192829003018186803b15801561318257600080fd5b505afa158015613196573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156131bf57600080fd5b81019080805160405193929190846401000000008211156131df57600080fd5b9083019060208201858111156131f457600080fd5b825164010000000081118282018810171561320e57600080fd5b82525081516020918201929091019080838360005b8381101561323b578181015183820152602001613223565b50505050905090810190601f1680156132685780820380516001836020036101000a031916815260200191505b50604052505050915050949350505050565b60025462010000900461ffff1681565b61ffff831660009081526005602052604080822090518490849080838380828437919091019485525050604051928390036020019092205467ffffffffffffffff16925050509392505050565b3390565b805460009061ffff166133485760025461ffff908116141561332e5760405162461bcd60e51b81526004018080602001828103825260238152602001806135d06023913960400191505060405180910390fd5b5060025464010000000090046001600160a01b0316611124565b815461ffff90811614156133a3576040805162461bcd60e51b815260206004820152601b60248201527f4c617965725a65726f3a20696e20424c4f434b5f56455253494f4e0000000000604482015290519081900360640190fd5b5060018101546001600160a01b031661112456fe4c617965725a65726f3a20696e76616c6964206d6573736167696e67206c6962726172792076657273696f6e4c617965725a65726f3a20726563656976652076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a20696e76616c69642064656661756c74206c6962726172794f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c617965725a65726f3a206e6f2044454641554c5420636f6e666967207768696c65206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f742073657420436f6e66696720647572696e672044454641554c54206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e20697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f7420616464206e6577206d6573736167696e67206c6962726172794c617965725a65726f3a206e65772076657273696f6e2063616e6e6f74206265207a65726f20616464726573734c617965725a65726f3a2063616e206e6f742067657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c7420726563656976652076657273696f6e206d757374203e20304c617965725a65726f3a2064656661756c7420696e20424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c742073656e642076657273696f6e206d757374203e20304c617965725a65726f3a2063616e206e6f742073657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a20726563656976652076657273696f6e20697320424c4f434b5f56455253494f4ea26469706673582212208ed5abf804b10b0f71da77c570eb372ab4e36974c6a955e66c94b397fe506a9e64736f6c63430007060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000b8

-----Decoded View---------------
Arg [0] : _chainId (uint16): 184

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000b8


Deployed ByteCode Sourcemap

12988:16381:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22621:428;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22621:428:0;;;;:::i;:::-;;27918:275;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27918:275:0;-1:-1:-1;;;;;27918:275:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;20741:427;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20741:427:0;;;;:::i;29123:243::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29123:243:0;;-1:-1:-1;29123:243:0;-1:-1:-1;29123:243:0;:::i;:::-;;;;;;;;;;;;;;;;;;23333:456;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23333:456:0;;;;:::i;20197:461::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20197:461:0;-1:-1:-1;;;;;20197:461:0;;:::i;13185:42::-;;;;;;;;;;;;;:::i;27815:95::-;;;;;;;;;;;;;:::i;24587:592::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24587:592:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24587:592:0;;-1:-1:-1;24587:592:0;-1:-1:-1;24587:592:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;23797:668;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23797:668:0;;-1:-1:-1;23797:668:0;-1:-1:-1;23797:668:0;:::i;13503:52::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;13503:52:0;;;;;;;;;;;;;;13422:32;;;;;;;;;;;;;:::i;2884:148::-;;;;;;;;;;;;;:::i;26462:713::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26462:713:0;-1:-1:-1;;;;;26462:713:0;;:::i;14319:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14319:71:0;;-1:-1:-1;14319:71:0;;-1:-1:-1;;;;;14319:71:0:i;:::-;;;;;;;;;;-1:-1:-1;;;;;14319:71:0;;;;;;;;;;;;;;;;;;;;27635:172;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27635:172:0;;;;;;;;-1:-1:-1;;;;;27635:172:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;2233:87;;;;;;;;;;;;;:::i;14077:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14077:63:0;;-1:-1:-1;14077:63:0;;-1:-1:-1;;;;;14077:63:0:i;13044:31::-;;;;;;;;;;;;;:::i;25776:678::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25776:678:0;-1:-1:-1;;;;;25776:678:0;;:::i;13134:44::-;;;;;;;;;;;;;:::i;18973:921::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18973:921:0;;-1:-1:-1;18973:921:0;-1:-1:-1;18973:921:0;:::i;14197:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14197:66:0;;;;;;;;-1:-1:-1;;;;;14197:66:0;;:::i;21253:476::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21253:476:0;;;;:::i;13234:27::-;;;;;;;;;;;;;:::i;17204:1761::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17204:1761:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17204:1761:0;;-1:-1:-1;17204:1761:0;-1:-1:-1;17204:1761:0;:::i;16311:709::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16311:709:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16311:709:0;;-1:-1:-1;16311:709:0;-1:-1:-1;16311:709:0;:::i;13268:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13268:66:0;;;;:::i;27314:128::-;;;;;;;;;;;;;:::i;21876:644::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21876:644:0;;-1:-1:-1;21876:644:0;-1:-1:-1;21876:644:0;:::i;28201:287::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28201:287:0;-1:-1:-1;;;;;28201:287:0;;:::i;27183:123::-;;;;;;;;;;;;;:::i;13562:43::-;;;;;;;;;;;;;:::i;3187:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3187:244:0;-1:-1:-1;;;;;3187:244:0;;:::i;13966:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13966:55:0;-1:-1:-1;;;;;13966:55:0;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13966:55:0;;;;;;;;;;;;;;;;;;;;;;28496:619;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28496:619:0;;;;;;;;;;;;;;-1:-1:-1;;;;;28496:619:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13461:35;;;;;;;;;;;;;:::i;27450:177::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27450:177:0;;-1:-1:-1;27450:177:0;-1:-1:-1;27450:177:0;:::i;22621:428::-;16055:13;;22696:11;;16055:13;;;;;;;16043:25;;;;;;:54;;-1:-1:-1;13173:5:0;16072:25;;;;16043:54;16035:111;;;;-1:-1:-1;;;16035:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22798:10:::1;22750:30;22783:26:::0;;;:14:::1;:26;::::0;;;;;;;22820:34;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;22958:26;;;22820:34;22958:26;;;;;;;;22935:20;;::::1;:49:::0;;;::::1;-1:-1:-1::0;;;;;22958:26:0;;;::::1;22935:49:::0;;;::::1;::::0;;;23000:41;;;;;;;::::1;::::0;;;;;;22783:26;;23000:41:::1;::::0;;;;;;;::::1;16157:1;22621:428:::0;;:::o;27918:275::-;-1:-1:-1;;;;;28052:32:0;;28000:6;28052:32;;;:14;:32;;;;;28102:20;;:39;:20;:39;:83;;28165:20;;;;28102:83;;;28144:18;;;;28102:83;28095:90;;;27918:275;;;;:::o;20741:427::-;2464:12;:10;:12::i;:::-;-1:-1:-1;;;;;2453:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2453:23:0;;2445:68;;;;;-1:-1:-1;;;2445:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16055:13:::1;::::0;20851:22;;16055:13:::1;::::0;;;::::1;::::0;::::1;16043:25:::0;;::::1;;;::::0;:54:::1;;-1:-1:-1::0;13173:5:0::1;16072:25:::0;;::::1;;16043:54;16035:111;;;;-1:-1:-1::0;;;16035:111:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20894:41:::2;::::0;::::2;20886:94;;;;-1:-1:-1::0;;;20886:94:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20991:18;:43:::0;;;::::2;;::::0;;::::2;::::0;;::::2;::::0;;;21080:18;;::::2;-1:-1:-1::0;21066:33:0;;;-1:-1:-1;21066:33:0::2;::::0;;;;;;;;;21045:54;;;::::2;-1:-1:-1::0;;;;;21066:33:0;;::::2;21045:54:::0;::::2;::::0;;;::::2;::::0;;;21115:45;;;;;;;::::2;::::0;;;;;;;;;::::2;2524:1:::1;20741:427:::0;:::o;29123:243::-;29273:26;;;29229:4;29273:26;;;:13;:26;;;;;;:39;;29229:4;;29273:26;29300:11;;;;29273:39;29300:11;;;;29273:39;;;;;;;;;-1:-1:-1;;29273:39:0;;;;;;;;;;;29330:14;;;:28;;;-1:-1:-1;;;;29123:243:0;;;;;:::o;23333:456::-;16055:13;;23411:11;;16055:13;;;;;;;16043:25;;;;;;:54;;-1:-1:-1;13173:5:0;16072:25;;;;16043:54;16035:111;;;;-1:-1:-1;;;16035:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23513:10:::1;23465:30;23498:26:::0;;;:14:::1;:26;::::0;;;;;;;23535:37;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;23694:26;;;-1:-1:-1;23694:26:0;;;;;;;23653:68;;;::::1;-1:-1:-1::0;;;;;23694:26:0;;::::1;23653:68:::0;::::1;::::0;;;::::1;::::0;;23737:44;;;;;;;::::1;::::0;;;;;;23498:26;;23737:44:::1;::::0;;;;;;;::::1;16157:1;23333:456:::0;;:::o;20197:461::-;2464:12;:10;:12::i;:::-;-1:-1:-1;;;;;2453:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2453:23:0;;2445:68;;;;;-1:-1:-1;;;2445:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20292:43:0;::::1;20284:101;;;;-1:-1:-1::0;;;20284:101:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20404:13;::::0;20420:5:::1;20404:13:::0;;;::::1;::::0;::::1;:21;20396:78;;;;-1:-1:-1::0;;;20396:78:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20485:13;:15:::0;;::::1;;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;20525:13;;::::1;::::0;::::1;20511:28:::0;;::::1;::::0;;;;;;;:86;;-1:-1:-1;;;;;20511:86:0;::::1;::::0;;;::::1;;::::0;;20636:13;;20613:37;;20636:13;;::::1;;20613:37:::0;;;;::::1;::::0;;;;;;;;;::::1;20197:461:::0;:::o;13185:42::-;13226:1;13185:42;:::o;27815:95::-;27895:7;27815:95;:::o;24587:592::-;-1:-1:-1;;;;;24884:32:0;;24811:14;24884:32;;;:14;:32;;;;;24960:20;;24811:14;;24884:32;24811:14;;24960:39;:20;:39;:109;;25049:20;;;;-1:-1:-1;;;;;25049:20:0;24960:109;;;25015:18;;;;;-1:-1:-1;;;;;25015:18:0;24960:109;24927:142;;25087:3;-1:-1:-1;;;;;25087:16:0;;25104:11;25117:16;25135:8;;25145:9;25156:14;;25087:84;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25087:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25087:84:0;;;;;;;;;;;;;;;-1:-1:-1;25087:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25087:84:0;;;;;;;;;;;-1:-1:-1;24587:592:0;-1:-1:-1;;;;;;;;;;24587:592:0:o;23797:668::-;23929:26;;;23902:24;23929:26;;;:13;:26;;;;;;:39;;23956:11;;;;23929:39;23956:11;;;;23929:39;;;;;;;;;-1:-1:-1;;23929:39:0;;;;;;;;;;;24066:14;;;;23929:39;;-1:-1:-1;24066:28:0;;;-1:-1:-1;24058:69:0;;-1:-1:-1;24058:69:0;;;;-1:-1:-1;;;24058:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24146:13;;;;;-1:-1:-1;;;;;24146:13:0;24163:10;24146:27;24138:65;;;;;-1:-1:-1;;;24138:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24252:20;;24283:26;;;;24271:1;24252:20;24320:14;;:27;24411:46;;;;;;;;;;;;;;;;;;;;;;24432:11;;24445;;;;24411:46;;;;24445:11;;;;24411:46;;;;;;;;;;;;;-1:-1:-1;;24411:46:0;;;;;;;;-1:-1:-1;24411:46:0;;-1:-1:-1;;;;;24411:46:0;23797:668;;;;:::o;13503:52::-;;;;;;-1:-1:-1;;;;;13503:52:0;;:::o;13422:32::-;;;;;;:::o;2884:148::-;2464:12;:10;:12::i;:::-;-1:-1:-1;;;;;2453:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2453:23:0;;2445:68;;;;;-1:-1:-1;;;2445:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2991:1:::1;2975:6:::0;;2954:40:::1;::::0;-1:-1:-1;;;;;2975:6:0;;::::1;::::0;2954:40:::1;::::0;2991:1;;2954:40:::1;3022:1;3005:19:::0;;;::::1;::::0;;2884:148::o;26462:713::-;-1:-1:-1;;;;;26645:32:0;;26570:29;26645:32;;;:14;:32;;;;;26712:23;;;;;;;;;;26754:31;;;26746:87;;;;-1:-1:-1;;;26746:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26848:33;;;26844:324;;26906:21;;;;;13173:5;26906:21;;;:38;;26898:104;;;;-1:-1:-1;;;26898:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27041:28;;-1:-1:-1;;;;;27041:28:0;;-1:-1:-1;26844:324:0;;;27126:30;;;;;-1:-1:-1;;;;;27126:30:0;;-1:-1:-1;26844:324:0;26462:713;;;;;:::o;14319:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14319:71:0;;;:::o;27635:172::-;27760:26;;;27734:6;27760:26;;;:13;:26;;;;;;;;-1:-1:-1;;;;;27760:39:0;;;;;;;;;;;;27635:172;;;;:::o;2233:87::-;2279:7;2306:6;-1:-1:-1;;;;;2306:6:0;2233:87;:::o;14077:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13044:31::-;;;:::o;25776:678::-;-1:-1:-1;;;;;25953:32:0;;25881:26;25953:32;;;:14;:32;;;;;26017:20;;;;;;;26056:28;;;26048:81;;;;-1:-1:-1;;;26048:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26144:30;;;26140:307;;26199:18;;13173:5;26199:18;;;:35;;26191:98;;;;-1:-1:-1;;;26191:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26333:18;;;;;-1:-1:-1;;;;;26333:18:0;;-1:-1:-1;26140:307:0;;;-1:-1:-1;26414:20:0;;;-1:-1:-1;;;;;26414:20:0;;25776:678;-1:-1:-1;;25776:678:0:o;13134:44::-;13173:5;13134:44;:::o;18973:921::-;15744:22;;;;;:38;:22;15320:1;15744:38;15736:83;;;;;-1:-1:-1;;;15736:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15830:22;:33;;;;;;;;19178:26:::1;::::0;::::1;-1:-1:-1::0;19178:26:0;;;:13:::1;:26;::::0;;;;;:39;;19205:11;;;;19178:39;19205:11;;;;19178:39;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;19178:39:0::1;::::0;;;;;::::1;::::0;;;;19236:14:::1;::::0;::::1;::::0;19178:39;;-1:-1:-1;19236:28:0;::::1;::::0;-1:-1:-1;19228:69:0::1;::::0;-1:-1:-1;19228:69:0::1;;::::0;;-1:-1:-1;;;19228:69:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;19349:16:::0;;::::1;;19330:35:::0;::::1;:76:::0;::::1;;;;19392:2;:14;;;19379:8;;19369:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;19330:76;19308:152;;;::::0;;-1:-1:-1;;;19308:152:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;19494:13:::0;;19585:26;;;;;-1:-1:-1;;19622:14:0;::::1;:27:::0;;;19677:25:::1;::::0;::::1;::::0;;:12:::1;:25;::::0;;;;;:38;;19494:13;;;::::1;-1:-1:-1::0;;;;;19494:13:0::1;::::0;19703:11;;;;19677:38;19703:11;;;;19677:38;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;19677:38:0::1;::::0;;;;;::::1;::::0;;;;19728:83;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;19677:38:::1;::::0;;::::1;19728:83:::0;;;;;;;;;;;;;;;;;;;19677:38;;-1:-1:-1;;;;;;19728:40:0;::::1;::::0;::::1;::::0;-1:-1:-1;19769:11:0;;-1:-1:-1;19782:11:0;;;;19677:38;;19802:8;;;;19728:83;;;;;;;;19782:11;;;;19728:83;::::1;;::::0;;::::1;::::0;::::1;;-1:-1:-1::0;;19728:83:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;19728:83:0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19827:59;19842:11;19855;;19868:5;19875:10;19827:59;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;19827:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;-1:-1:-1::0;;19827:59:0::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;19827:59:0;;-1:-1:-1;;;;;;;19827:59:0::1;-1:-1:-1::0;;15886:22:0;:37;;;;;;;;-1:-1:-1;;;;;;18973:921:0:o;14197:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21253:476::-;2464:12;:10;:12::i;:::-;-1:-1:-1;;;;;2453:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2453:23:0;;2445:68;;;;;-1:-1:-1;;;2445:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16055:13:::1;::::0;21369:25;;16055:13:::1;::::0;;;::::1;::::0;::::1;16043:25:::0;;::::1;;;::::0;:54:::1;;-1:-1:-1::0;13173:5:0::1;16072:25:::0;;::::1;;16043:54;16035:111;;;;-1:-1:-1::0;;;16035:111:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21415:44:::2;::::0;::::2;21407:100;;;;-1:-1:-1::0;;;21407:100:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21518:21;:49:::0;;;::::2;::::0;::::2;::::0;;::::2;::::0;;::::2;::::0;;;::::2;::::0;;;;21631:21;::::2;::::0;;::::2;-1:-1:-1::0;21617:36:0;;;-1:-1:-1;21617:36:0::2;::::0;;;;;;;;;21578:28:::2;:76:::0;;-1:-1:-1;;;;;21617:36:0;;::::2;21578:76:::0;;;::::2;::::0;;;::::2;::::0;;21670:51;;;;;;;::::2;::::0;;;;;;;;::::2;2524:1:::1;21253:476:::0;:::o;13234:27::-;;;;;;;;;:::o;17204:1761::-;15744:22;;;;;:38;:22;15320:1;15744:38;15736:83;;;;;-1:-1:-1;;;15736:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15830:22;:33;;;;;;;;17548:25:::1;::::0;::::1;-1:-1:-1::0;17548:25:0;;;:12:::1;:25;::::0;;;;;;:38;;17574:11;;;;17548:38;17574:11;;;;17548:38;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;17548:38:0::1;::::0;;;;;::::1;::::0;;;;17546:40;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;17536:50;;::::1;;::::0;-1:-1:-1;17528:85:0::1;::::0;-1:-1:-1;17528:85:0::1;;::::0;;-1:-1:-1;;;17528:85:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;17659:27:0;::::1;17626:30;17659:27:::0;;;:14:::1;:27;::::0;;;;17851:23;;;;::::1;:42;:23;17847:280;;17918:28;::::0;-1:-1:-1;;;;;17918:28:0::1;17950:10;17918:42;17910:89;;;;-1:-1:-1::0;;;17910:89:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17847:280;;;18040:30:::0;;;;::::1;-1:-1:-1::0;;;;;18040:30:0::1;18074:10;18040:44;18032:83;;;::::0;;-1:-1:-1;;;18032:83:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18208:26;::::0;::::1;18181:24;18208:26:::0;;;:13:::1;:26;::::0;;;;;:39;;18235:11;;;;18208:39;18235:11;;;;18208:39;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;18208:39:0::1;::::0;;;;;::::1;::::0;;;;18266:14:::1;::::0;::::1;::::0;18208:39;;-1:-1:-1;18266:28:0;;-1:-1:-1;18258:71:0::1;::::0;-1:-1:-1;18258:71:0::1;;::::0;;-1:-1:-1;;;18258:71:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18365:11;-1:-1:-1::0;;;;;18346:41:0::1;;18393:9;18404:11;18417;;18430:6;18438:8;;18346:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;;-1:-1:-1::0;;18346:101:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;18346:101:0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;18342:616;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18710:138;;;;;;;;18749:8;;:15;;18710:138;;;;;;18784:11;-1:-1:-1::0;;;;;18710:138:0::1;;;;;18824:8;;18814:19;;;;;;;;;;;;;;;;;;;;;;;;;;;18710:138;;::::0;18668:13:::1;:26;18682:11;18668:26;;;;;;;;;;;;;;;18695:11;;18668:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18668:180:0::1;;;;;-1:-1:-1::0;;;;;18668:180:0::1;;;;;;;;;;;;;;;;;18868:78;18882:11;18895;;18908;18921:6;18929:8;;18939:6;18868:78;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18868:78:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;;-1:-1:-1::0;;18868:78:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;18868:78:0;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;18868:78:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;-1:-1:-1;18868:78:0;;;;;;;::::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18526:432;18342:616;-1:-1:-1::0;;15886:22:0;:37;;;;;;;;-1:-1:-1;;;;;;;;17204:1761:0:o;16311:709::-;15513:19;;:35;:19;15320:1;15513:35;15505:77;;;;;-1:-1:-1;;;15505:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15593:19;:30;;15363:1;15593:30;;;;;;;16653:10:::1;-1:-1:-1::0;16638:26:0;;;:14:::1;:26;::::0;;;;;;;16692::::1;::::0;::::1;::::0;;:13:::1;:26:::0;;;;;:38;;;;;;;;;16690:40;;;;::::1;;::::0;;::::1;-1:-1:-1::0;16690:40:0::1;::::0;;::::1;;::::0;;;16741:25:::1;16638:26:::0;16741:15:::1;:25::i;:::-;-1:-1:-1::0;;;;;16741:30:0::1;;16779:9;16804:10;16829:5;16849:11;16875:12;;16902:8;;16925:14;16954:18;16987:14;;16741:271;;;;;;;;;;;;;-1:-1:-1::0;;;;;16741:271:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;16741:271:0::1;;;;;;-1:-1:-1::0;;;;;16741:271:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;;-1:-1:-1::0;;16741:271:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;16741:271:0;;;;;::::1;;::::0;;::::1;::::0;::::1;;-1:-1:-1::0;;16741:271:0::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;16741:271:0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;15646:19:0;:34;;;;15320:1;15646:34;;;-1:-1:-1;;;;;;;;;;;;;;16311:709:0:o;13268:66::-;;;;;;;;;;;;-1:-1:-1;;;;;13268:66:0;;:::o;27314:128::-;27400:22;;;;;:34;:22;15363:1;27400:34;27314:128;:::o;21876:644::-;16055:13;;22045:8;;16055:13;;;;;;;16043:25;;;;;;:54;;-1:-1:-1;13173:5:0;16072:25;;;;16043:54;16035:111;;;;-1:-1:-1;;;16035:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22070:27:::1;::::0;::::1;22066:263;;22162:21;::::0;::::1;22140:18:::0;;::::1;22162:21:::0;;;::::1;;22140:43;22114:159;;;;-1:-1:-1::0;;;22114:159:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22299:18;::::0;::::1;;::::0;-1:-1:-1;22066:263:0::1;13173:5;22347:25:::0;;::::1;;;22339:85;;;;-1:-1:-1::0;;;22339:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22435:23;::::0;;::::1;;::::0;;;:13:::1;:23;::::0;;;;;;;:77;;;;;;;::::1;;::::0;::::1;::::0;;;22479:10:::1;22435:77:::0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22435:23:0;;::::1;::::0;:33:::1;::::0;22469:8;;22491:11;;22504:7;;;;22435:77;;;22504:7;;;;22435:77;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21876:644:::0;;;;;;:::o;28201:287::-;-1:-1:-1;;;;;28338:32:0;;28286:6;28338:32;;;:14;:32;;;;;28388:23;;;;;:42;:23;:42;:92;;28457:23;;;;;;;28388:92;;;-1:-1:-1;;28433:21:0;;;;;;;;28201:287;-1:-1:-1;28201:287:0:o;27183:123::-;27267:19;;:31;:19;15363:1;27267:31;27183:123;:::o;13562:43::-;;;-1:-1:-1;;;;;13562:43:0;;:::o;3187:244::-;2464:12;:10;:12::i;:::-;-1:-1:-1;;;;;2453:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2453:23:0;;2445:68;;;;;-1:-1:-1;;;2445:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3276:22:0;::::1;3268:73;;;;-1:-1:-1::0;;;3268:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3378:6;::::0;;3357:38:::1;::::0;-1:-1:-1;;;;;3357:38:0;;::::1;::::0;3378:6;::::1;::::0;3357:38:::1;::::0;::::1;3406:6;:17:::0;;;::::1;-1:-1:-1::0;;;;;3406:17:0;;;::::1;::::0;;;::::1;::::0;;3187:244::o;13966:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13966:55:0;;;;;;;;;:::o;28496:619::-;16055:13;;28691:12;;28672:8;;16055:13;;;;;;;16043:25;;;;;;:54;;-1:-1:-1;13173:5:0;16072:25;;;;16043:54;16035:111;;;;-1:-1:-1;;;16035:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28720:27:::1;::::0;::::1;28716:204;;28794:21;::::0;::::1;28772:18:::0;;::::1;28794:21:::0;;;::::1;;28772:43;28764:100;;;;-1:-1:-1::0;;;28764:100:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28890:18;::::0;::::1;;::::0;-1:-1:-1;28716:204:0::1;13173:5;28938:25:::0;;::::1;;;28930:85;;;;-1:-1:-1::0;;;28930:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29033:23;::::0;;::::1;;::::0;;;:13:::1;:23;::::0;;;;;;:74;;;;;;;::::1;;::::0;::::1;::::0;-1:-1:-1;;;;;29033:74:0;;::::1;::::0;;;;;;;;;;;;:23;::::1;::::0;:33:::1;::::0;:74;;;;;:23;;:74;;;;;:23;:74;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;29033:74:0::1;::::0;::::1;;::::0;::::1;::::0;::::1;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;;;;;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;-1:-1:-1;29033:74:0::1;;;;;::::0;::::1;;::::0;;-1:-1:-1;29033:74:0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;29026:81;;28496:619:::0;;;;;;;:::o;13461:35::-;;;;;;;;;:::o;27450:177::-;27581:25;;;27555:6;27581:25;;;:12;:25;;;;;;:38;;27607:11;;;;27581:38;27607:11;;;;27581:38;;;;;;;;;-1:-1:-1;;27581:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;27450:177:0;;;;;:::o;742:106::-;830:10;742:106;:::o;25187:581::-;25310:20;;25267:26;;25310:39;:20;25306:455;;25428:18;;13173:5;25428:18;;;:35;;25420:83;;;;-1:-1:-1;;;25420:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25525:18:0;;;;;-1:-1:-1;;;;;25525:18:0;25518:25;;25306:455;25638:20;;13173:5;25638:20;;;:37;;25630:77;;;;;-1:-1:-1;;;25630:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25729:20:0;;;;-1:-1:-1;;;;;25729:20:0;25722:27;

Swarm Source

ipfs://8ed5abf804b10b0f71da77c570eb372ab4e36974c6a955e66c94b397fe506a9e
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.