Token ATOM

Overview CRC20

Price
$10.32 @ 158.039816 CRO (-1.10%)
Fully Diluted Market Cap
Total Supply:
274,853.319153 ATOM

Holders:
10,603 addresses
Balance
0 ATOM

Value
$0.00
0xd7f7c46e2930955109a2fae6b64cfd69dc7b6397
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

Cosmos is a decentralized network of independent parallel blockchains, each powered by BFT consensus algorithms like Tendermint consensus.

Market

Volume (24H):$129,017,948.00
Market Capitalization:$3,017,653,864.00
Circulating Supply:292,586,164.00 ATOM
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
1
Binance
ATOM-USDT$10.34
0.0006057 Btc
$18,655,581.00
1,804,576.765 ATOM
17.9309%
2
MEXC Global
ATOM-USDT$10.32
0.0006056 Btc
$9,213,293.00
892,791.220 ATOM
8.8711%
3
Coinbase Exchange
ATOM-USD$10.29
0.0006036 Btc
$8,626,878.00
838,700.910 ATOM
8.3336%
4
Binance
ATOM-BUSD$10.33
0.0006063 Btc
$6,201,121.00
600,157.002 ATOM
5.9634%
5
Bitget
ATOM-USDT$10.32
0.0006055 Btc
$5,083,088.00
486,821.948 ATOM
4.8372%
6
Upbit
ATOM-KRW$10.66
0.0006255 Btc
$4,630,311.00
434,403.467 ATOM
4.3164%
7
Bitget
ATOM-BTC$10.33
0.0006062 Btc
$4,606,056.00
443,983.059 ATOM
4.4116%
8
BingX
ATOM-USDT$10.31
0.0006055 Btc
$3,068,382.00
294,189.341 ATOM
2.9232%
9
XT.COM
ATOM-USDT$10.31
0.0006051 Btc
$2,883,896.00
276,564.194 ATOM
2.7480%
10
OKX
ATOM-USDT$10.30
0.0006055 Btc
$2,871,307.00
275,195.804 ATOM
2.7344%
11
DigiFinex
ATOM-USDT$10.31
0.0006051 Btc
$2,702,840.00
262,130.964 ATOM
2.6046%
12
P2B
ATOM-USDT$10.31
0.0006051 Btc
$2,546,658.00
247,007.900 ATOM
2.4544%
13
BigONE
ATOM-BTC$10.32
0.0006058 Btc
$2,438,001.00
236,171.400 ATOM
2.3467%
14
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-UOSMO$10.37
0.0006083 Btc
$2,311,898.00
223,047.782 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
2.2163%
15
LBank
ATOM-USDT$10.31
0.0006048 Btc
$1,954,582.00
189,646.455 ATOM
1.8844%
16
AscendEX (BitMax)
ATOM-USDT$10.32
0.0006054 Btc
$1,711,221.00
165,875.900 ATOM
1.6482%
17
BKEX
ATOM-USDT$10.31
0.0006052 Btc
$1,551,072.00
148,812.689 ATOM
1.4787%
18
WhiteBIT
ATOM-USDT$10.35
0.0006073 Btc
$1,461,768.00
141,249.301 ATOM
1.4035%
19
Gate.io
ATOM-USDT$10.31
0.0006049 Btc
$1,319,470.00
126,455.407 ATOM
1.2565%
20
Binance
ATOM-ETH$10.28
0.0006043 Btc
$1,245,080.00
121,098.012 ATOM
1.2033%
21
Phemex
ATOM-USDT$10.30
0.0006053 Btc
$1,201,937.00
116,663.010 ATOM
1.1592%
22
Binance US
ATOM-USD$10.29
0.0006039 Btc
$1,092,184.00
106,140.339 ATOM
1.0546%
23
Binance
ATOM-BTC$10.35
0.0006061 Btc
$1,050,676.00
101,558.117 ATOM
1.0091%
24
Bibox
ATOM-USDT$10.30
0.0006044 Btc
$1,011,867.00
98,245.000 ATOM
0.9762%
25
KickEX
ATOM-USDT$10.32
0.0006056 Btc
$951,647.00
92,225.126 ATOM
0.9164%
26
Bybit
ATOM-USDT$10.32
0.0006057 Btc
$928,875.00
89,987.530 ATOM
0.8941%
27
Kraken
ATOM-USD$10.28
0.0006034 Btc
$798,531.00
77,651.673 ATOM
0.7716%
28
BTCEX
ATOM-USDT$10.31
0.0006051 Btc
$774,977.00
74,350.980 ATOM
0.7388%
29
P2B
ATOM-BUSD$10.33
0.0006064 Btc
$754,132.00
72,984.310 ATOM
0.7252%
30
Dex-Trade
ATOM-USDT$10.32
0.0006057 Btc
$587,982.00
56,972.980 ATOM
0.5661%
31
BtcTurk PRO
ATOM-TRY$10.47
0.0006143 Btc
$459,341.00
43,883.780 ATOM
0.4360%
32
AscendEX (BitMax)
ATOM-BTC$10.31
0.0006050 Btc
$381,122.00
36,971.800 ATOM
0.3674%
33
ProBit Global
ATOM-USDT$10.32
0.0006055 Btc
$357,699.00
34,669.652 ATOM
0.3445%
34
Canto Dex
0XECEEEFCEE421D8062EF8D6B4D814EFE4DC898265-0X826551890DC65655A0ACECA109AB11ABDBD7A07B$10.32
0.0006056 Btc
$355,205.00
34,296.059 0XECEEEFCEE421D8062EF8D6B4D814EFE4DC898265
0.3408%
35
OKX
ATOM-USDC$10.30
0.0006044 Btc
$354,624.00
33,995.388 ATOM
0.3378%
36
Bitget
ATOM-ETH$10.32
0.0006058 Btc
$343,187.00
33,143.827 ATOM
0.3293%
37
Huobi
ATOM-USDT$10.31
0.0006052 Btc
$322,345.00
30,865.750 ATOM
0.3067%
38
Kraken
ATOM-EUR$10.29
0.0006037 Btc
$293,352.00
28,515.349 ATOM
0.2833%
39
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED$10.37
0.0006083 Btc
$283,450.00
27,344.445 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.2717%
40
LATOKEN
ATOM-USDT$10.32
0.0006054 Btc
$265,262.00
25,713.439 ATOM
0.2555%
41
LocalTrade
ATOM-USDT$10.32
0.0006054 Btc
$240,857.00
23,350.077 ATOM
0.2320%
42
Bitvavo
ATOM-EUR$10.30
0.0006046 Btc
$223,449.00
21,686.989 ATOM
0.2155%
43
VVS Finance
0XB888D8DD1733D72681B30C00EE76BDE93AE7AA93-0X5C7F8A570D578ED84E63FDFA7B1EE72DEAE1AE23$10.38
0.0006089 Btc
$175,962.00
16,374.583 0XB888D8DD1733D72681B30C00EE76BDE93AE7AA93
0.1627%
44
Crypto.com Exchange
ATOM-USDT$10.32
0.0006054 Btc
$162,032.00
15,705.790 ATOM
0.1561%
45
WhiteBIT
ATOM-BTC$10.31
0.0006050 Btc
$152,885.00
14,830.620 ATOM
0.1474%
46
Coinbase Exchange
ATOM-BTC$10.32
0.0006054 Btc
$138,482.00
13,423.900 ATOM
0.1334%
47
Binance
ATOM-TRY$10.42
0.0006127 Btc
$136,310.00
13,076.398 ATOM
0.1299%
48
DigiFinex
ATOM-ETH$10.31
0.0006052 Btc
$121,220.00
11,755.681 ATOM
0.1168%
49
Crypto.com Exchange
ATOM-USD$10.29
0.0006040 Btc
$120,824.00
11,737.290 ATOM
0.1166%
50
Hotbit
ATOM-USDT$10.29
0.0006038 Btc
$119,769.00
11,640.430 ATOM
0.1157%
51
Binance
ATOM-BNB$10.35
0.0006066 Btc
$117,336.00
11,332.932 ATOM
0.1126%
52
DigiFinex
ATOM-BTC$10.30
0.0006047 Btc
$116,249.00
11,282.634 ATOM
0.1121%
53
BKEX
ATOM-USDC$10.31
0.0006053 Btc
$111,379.00
10,673.110 ATOM
0.1061%
54
OKX
ATOM-BTC$10.30
0.0006054 Btc
$110,370.00
10,631.007 ATOM
0.1056%
55
BtcTurk PRO
ATOM-USDT$10.27
0.0006027 Btc
$104,946.00
10,218.820 ATOM
0.1015%
56
CoinEx
ATOM-USDT$10.31
0.0006053 Btc
$100,654.00
9,657.208 ATOM
0.0960%
57
Osmosis
IBC/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A-IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2$10.36
0.0006083 Btc
$100,545.00
123,589.551 IBC/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A
1.2280%
58
Binance US
ATOM-USDT$10.31
0.0006049 Btc
$92,934.00
9,016.094 ATOM
0.0896%
59
Coinbase Exchange
ATOM-EUR$10.29
0.0006040 Btc
$90,610.00
8,803.093 ATOM
0.0875%
60
Bitget
ATOM-USDC$10.30
0.0006047 Btc
$76,767.00
7,358.740 ATOM
0.0731%
61
Binance
ATOM-EUR$10.28
0.0006038 Btc
$67,900.00
6,607.136 ATOM
0.0657%
62
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/E6931F78057F7CC5DA0FD6CEF82FF39373A6E0452BF1FD76910B93292CF356C1$10.36
0.0006083 Btc
$66,735.00
6,438.546 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0640%
63
Bitfinex
ATO-USD$10.27
0.0006029 Btc
$65,128.00
6,339.101 ATO
0.0630%
64
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/987C17B11ABC2B20019178ACE62929FE9840202CE79498E29FE8E5CB02B7C0A4$10.36
0.0006082 Btc
$55,955.00
5,398.849 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0536%
65
Coinbase Exchange
ATOM-GBP$10.27
0.0006027 Btc
$54,554.00
5,312.305 ATOM
0.0528%
66
BitMart
ATOM-BTC$10.30
0.0006054 Btc
$52,375.00
5,083.060 ATOM
0.0505%
67
Osmosis
IBC/1480B8FD20AD5FCAE81EA87584D269547DD4D436843C1D20F15E00EB64743EF4-IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2$10.36
0.0006083 Btc
$46,134.00
180,385.200 IBC/1480B8FD20AD5FCAE81EA87584D269547DD4D436843C1D20F15E00EB64743EF4
1.7924%
68
BitMart
ATOM-USDT$10.31
0.0006058 Btc
$44,573.00
4,323.000 ATOM
0.0430%
69
Coinbase Exchange
ATOM-USDT$10.29
0.0006037 Btc
$43,470.00
4,225.292 ATOM
0.0420%
70
XT.COM
ATOM-XT$10.31
0.0006051 Btc
$41,548.00
4,004.168 ATOM
0.0398%
71
Dex-Trade
ATOM-BTC$10.31
0.0006051 Btc
$40,934.00
3,970.100 ATOM
0.0394%
72
Crypto.com Exchange
ATOM-CRO$10.34
0.0006070 Btc
$37,937.00
3,667.830 ATOM
0.0364%
73
LATOKEN
ATOM-BTC$10.31
0.0006053 Btc
$37,039.00
3,590.983 ATOM
0.0357%
74
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/A0CC0CF735BFB30E730C70019D4218A1244FF383503FF7579C9201AB93CA9293$10.36
0.0006083 Btc
$32,746.00
3,159.308 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0314%
75
Biswap
0X0EB3A705FC54725037CC9E008BDEDE697F62F335-0XBB4CDB9CBD36B01BD1CBAEBF2DE08D9173BC095C$10.34
0.0006067 Btc
$31,201.00
3,042.033 0X0EB3A705FC54725037CC9E008BDEDE697F62F335
0.0302%
76
Crypto.com Exchange
ATOM-BTC$10.31
0.0006050 Btc
$30,563.00
2,964.560 ATOM
0.0295%
77
Huobi
ATOM-ETH$10.32
0.0006058 Btc
$28,574.00
2,757.977 ATOM
0.0274%
78
Huobi
ATOM-BTC$10.32
0.0006056 Btc
$24,175.00
2,328.142 ATOM
0.0231%
79
Sifchain
ATOM-ROWAN$10.72
0.0006291 Btc
$23,865.00
2,226.120 ATOM
0.0221%
80
Diffusion Finance
0XC5E00D3B04563950941F7137B5AFA3A534F0D6D6-0XD4949664CD82660AAE99BEDC034A0DEA8A0BD517$10.22
0.0006004 Btc
$22,101.00
2,165.575 0XC5E00D3B04563950941F7137B5AFA3A534F0D6D6
0.0215%
81
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/C140AFD542AE77BD7DCC83F13FDD8C5E5BB8C4929785E6EC2F4C636F98F17901$10.37
0.0006083 Btc
$18,083.34
1,744.485 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0173%
82
Bitkub
ATOM-THB$10.36
0.0006082 Btc
$16,462.50
1,588.668 ATOM
0.0158%
83
Binance US
ATOM-BTC$10.32
0.0006054 Btc
$15,061.52
1,460.022 ATOM
0.0145%
84
Bittrex
ATOM-USD$10.27
0.0006026 Btc
$14,155.23
1,378.521 ATOM
0.0137%
85
Kraken
ATOM-ETH$10.31
0.0006049 Btc
$10,924.04
1,059.785 ATOM
0.0105%
86
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/5973C068568365FFF40DEDCF1A1CB7582B6116B731CD31A12231AE25E20B871F$10.36
0.0006083 Btc
$9,569.12
923.226 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0092%
87
Bitfinex
ATO-BTC$10.31
0.0006052 Btc
$8,818.20
855.111 ATO
0.0085%
88
Bitfinex
ATO-USDT$10.31
0.0006056 Btc
$8,207.84
796.286 ATO
0.0079%
89
Kraken
ATOM-GBP$10.29
0.0006035 Btc
$7,884.91
766.619 ATOM
0.0076%
90
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0$10.36
0.0006083 Btc
$7,036.74
678.903 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0067%
91
Kraken
ATOM-USDT$10.26
0.0006030 Btc
$6,889.72
671.353 ATOM
0.0067%
92
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/9712DBB13B9631EDFA9BF61B55F1B2D290B2ADB67E3A4EB3A875F3B6081B3B84$10.36
0.0006083 Btc
$5,436.20
524.483 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0052%
93
BabySwap
0X0EB3A705FC54725037CC9E008BDEDE697F62F335-0XBB4CDB9CBD36B01BD1CBAEBF2DE08D9173BC095C$10.30
0.0006053 Btc
$4,567.88
445.677 0X0EB3A705FC54725037CC9E008BDEDE697F62F335
0.0044%
94
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/EA3E1640F9B1532AB129A571203A0B9F789A7F14BB66E350DCBFA18E1A1931F0$10.36
0.0006083 Btc
$4,462.91
430.580 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0043%
95
Bittrex
ATOM-USDT$10.34
0.0006068 Btc
$3,868.97
374.161 ATOM
0.0037%
96
Bittrex
ATOM-BTC$10.30
0.0006045 Btc
$3,263.33
316.807 ATOM
0.0031%
97
CoinEx
ATOM-USDC$10.30
0.0006046 Btc
$2,824.66
270.564 ATOM
0.0027%
98
CoinEx
ATOM-BTC$10.34
0.0006067 Btc
$2,769.33
267.033 ATOM
0.0027%
99
Osmosis
IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2-IBC/D805F1DA50D31B96E4282C1D4181EDDFB1A44A598BFF5666F4B43E4B8BEA95A5$10.36
0.0006083 Btc
$1,588.14
153.223 IBC/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
0.0015%
100
Bitazza
ATOM-THB$10.27
0.0006042 Btc
$1,587.20
150.340 ATOM
0.0015%

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xc21223249ca28397b4b6541dffaecc539bff0c59

Contract Name:
CronosCRC20

Compiler Version
v0.6.11+commit.5ef660b1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-11
*/

// File contracts/ModuleCRC20.sol

// SPDX-License-Identifier: GNU-3
pragma solidity >0.4.13 >=0.4.23 >=0.6.11 <0.7.0;

////// lib/ds-token/lib/ds-auth/src/auth.sol
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity >=0.4.23; */

interface DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) external view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
    public
    auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
    public
    auth
    {
        authority = authority_;
        emit LogSetAuthority(address(authority));
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig), "ds-auth-unauthorized");
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(address(0))) {
            return false;
        } else {
            return authority.canCall(src, address(this), sig);
        }
    }
}

////// lib/ds-token/lib/ds-math/src/math.sol
/// math.sol -- mixin for inline numerical wizardry

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity >0.4.13; */

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, "ds-math-add-overflow");
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, "ds-math-sub-underflow");
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow");
    }

    function min(uint x, uint y) internal pure returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal pure returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal pure returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal pure returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    //rounds to zero if x*y < WAD / 2
    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    //rounds to zero if x*y < WAD / 2
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    //rounds to zero if x*y < WAD / 2
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    //rounds to zero if x*y < RAY / 2
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}

////// lib/ds-token/src/token.sol
/// token.sol -- ERC20 implementation with minting and burning

// Copyright (C) 2015, 2016, 2017  DappHub, LLC

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity >=0.4.23; */

/* import "ds-math/math.sol"; */
/* import "ds-auth/auth.sol"; */


contract DSToken is DSMath, DSAuth {
    bool                                              public  stopped;
    uint256                                           public  totalSupply;
    mapping (address => uint256)                      public  balanceOf;
    mapping (address => mapping (address => uint256)) public  allowance;
    string                                            public  symbol;
    uint8                                             public  decimals = 18; // standard token precision. override to customize
    string                                            public  name = "";     // Optional token name


    constructor(string memory symbol_) public {
        symbol = symbol_;
    }

    event Approval(address indexed src, address indexed guy, uint wad);
    event Transfer(address indexed src, address indexed dst, uint wad);
    event Mint(address indexed guy, uint wad);
    event Burn(address indexed guy, uint wad);
    event Stop();
    event Start();

    modifier stoppable {
        require(!stopped, "ds-stop-is-stopped");
        _;
    }

    function approve(address guy) external returns (bool) {
        return approve(guy, uint(-1));
    }

    function approve(address guy, uint wad) public stoppable returns (bool) {
        allowance[msg.sender][guy] = wad;

        emit Approval(msg.sender, guy, wad);

        return true;
    }

    function transfer(address dst, uint wad) external returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad)
    public
    stoppable
    returns (bool)
    {
        if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {
            require(allowance[src][msg.sender] >= wad, "ds-token-insufficient-approval");
            allowance[src][msg.sender] = sub(allowance[src][msg.sender], wad);
        }

        require(balanceOf[src] >= wad, "ds-token-insufficient-balance");
        balanceOf[src] = sub(balanceOf[src], wad);
        balanceOf[dst] = add(balanceOf[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }

    function push(address dst, uint wad) external {
        transferFrom(msg.sender, dst, wad);
    }

    function pull(address src, uint wad) external {
        transferFrom(src, msg.sender, wad);
    }

    function move(address src, address dst, uint wad) external {
        transferFrom(src, dst, wad);
    }


    function mint(uint wad) external {
        mint(msg.sender, wad);
    }

    function burn(uint wad) external {
        burn(msg.sender, wad);
    }

    function mint(address guy, uint wad) public auth stoppable {
        balanceOf[guy] = add(balanceOf[guy], wad);
        totalSupply = add(totalSupply, wad);
        emit Mint(guy, wad);
    }

    function burn(address guy, uint wad) public auth stoppable {
        if (guy != msg.sender && allowance[guy][msg.sender] != uint(-1)) {
            require(allowance[guy][msg.sender] >= wad, "ds-token-insufficient-approval");
            allowance[guy][msg.sender] = sub(allowance[guy][msg.sender], wad);
        }

        require(balanceOf[guy] >= wad, "ds-token-insufficient-balance");
        balanceOf[guy] = sub(balanceOf[guy], wad);
        totalSupply = sub(totalSupply, wad);
        emit Burn(guy, wad);
    }

    function stop() public auth {
        stopped = true;
        emit Stop();
    }

    function start() public auth {
        stopped = false;
        emit Start();
    }


    function setName(string memory name_) public auth {
        name = name_;
    }
}

////// src/ModuleCRC20.sol
/* pragma solidity ^0.6.11; */

/* import "ds-token/token.sol"; */

contract ModuleCRC20 is DSToken  {
    // sha256('cronos')[:20]
    address constant module_address = 0x89A7EF2F08B1c018D5Cc88836249b84Dd5392905;
    string denom;

    event __CronosSendToEthereum(address recipient, uint256 amount, uint256 bridge_fee);
    event __CronosSendToIbc(address sender, string recipient, uint256 amount);

    constructor(string memory denom_, uint8 decimals_) DSToken(denom_) public {
        decimals = decimals_;
        denom = denom_;
    }

    // unsafe_burn burn tokens without user's approval and authentication, used internally
    function unsafe_burn(address addr, uint amount) private {
        // Deduct user's balance without approval
        require(balanceOf[addr] >= amount, "ds-token-insufficient-balance");
        balanceOf[addr] = sub(balanceOf[addr], amount);
        totalSupply = sub(totalSupply, amount);
        emit Burn(addr, amount);
    }

    function native_denom() public view returns (string memory) {
        return denom;
    }

    function mint_by_cronos_module(address addr, uint amount) public {
        require(msg.sender == module_address);
        mint(addr, amount);
    }

    function burn_by_cronos_module(address addr, uint amount) public {
        require(msg.sender == module_address);
        unsafe_burn(addr, amount);
    }

    // send to ethereum through gravity bridge
    function send_to_ethereum(address recipient, uint amount, uint bridge_fee) external {
        unsafe_burn(msg.sender, add(amount, bridge_fee));
        emit __CronosSendToEthereum(recipient, amount, bridge_fee);
    }

    // send an "amount" of the contract token to recipient through IBC
    function send_to_ibc(string memory recipient, uint amount) public {
        unsafe_burn(msg.sender, amount);
        emit __CronosSendToIbc(msg.sender, recipient, amount);
    }
}


// File contracts/CronosCRC20.sol

pragma solidity 0.6.11;

contract CronosCRC20 is ModuleCRC20 {
    constructor (
        string memory _name,
        string memory _denom,
        uint8 _decimal
    ) ModuleCRC20(_denom, _decimal) public {
        setName(_name);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_denom","type":"string"},{"internalType":"uint8","name":"_decimal","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"Start","type":"event"},{"anonymous":false,"inputs":[],"name":"Stop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bridge_fee","type":"uint256"}],"name":"__CronosSendToEthereum","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"string","name":"recipient","type":"string"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"__CronosSendToIbc","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract DSAuthority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn_by_cronos_module","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint_by_cronos_module","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"move","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"native_denom","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"pull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"bridge_fee","type":"uint256"}],"name":"send_to_ethereum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"recipient","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"send_to_ibc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract DSAuthority","name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526012600660006101000a81548160ff021916908360ff1602179055506040518060200160405280600081525060079080519060200190620000479291906200061e565b503480156200005557600080fd5b50604051620031cf380380620031cf833981810160405260608110156200007b57600080fd5b81019080805160405193929190846401000000008211156200009c57600080fd5b83820191506020820185811115620000b357600080fd5b8251866001820283011164010000000082111715620000d157600080fd5b8083526020830192505050908051906020019080838360005b8381101562000107578082015181840152602081019050620000ea565b50505050905090810190601f168015620001355780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200015957600080fd5b838201915060208201858111156200017057600080fd5b82518660018202830111640100000000821117156200018e57600080fd5b8083526020830192505050908051906020019080838360005b83811015620001c4578082015181840152602081019050620001a7565b50505050905090810190601f168015620001f25780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919050505081818133600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a28060059080519060200190620002a59291906200061e565b505080600660006101000a81548160ff021916908360ff1602179055508160089080519060200190620002da9291906200061e565b505050620002ee83620002f760201b60201c565b505050620006cd565b6200032d336000357fffffffff0000000000000000000000000000000000000000000000000000000016620003bc60201b60201c565b620003a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b8060079080519060200190620003b89291906200061e565b5050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620003fd576001905062000618565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200045e576001905062000618565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415620004bf576000905062000618565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b158015620005d857600080fd5b505afa158015620005ed573d6000803e3d6000fd5b505050506040513d60208110156200060457600080fd5b810190808051906020019092919050505090505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200066157805160ff191683800117855562000692565b8280016001018555821562000692579182015b828111156200069157825182559160200191906001019062000674565b5b509050620006a19190620006a5565b5090565b620006ca91905b80821115620006c6576000816000905550600101620006ac565b5090565b90565b612af280620006dd6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80639dc29fac11610104578063bf7e214f116100a2578063dd62ed3e11610071578063dd62ed3e14610a59578063e978206414610ad1578063ee36665414610b1f578063f2d5d56b14610ba2576101da565b8063bf7e214f146108a0578063c47f0027146108ea578063d3d78b9b146109a5578063daea85c5146109fd576101da565b8063a9059cbb116100de578063a9059cbb14610774578063b753a98c146107da578063bb35783b14610828578063be9a655514610896576101da565b80639dc29fac14610633578063a0712d6814610681578063a515cb40146106af576101da565b806340c10f191161017c57806375f12b211161014b57806375f12b21146105005780637a9e5e4b146105225780638da5cb5b1461056657806395d89b41146105b0576101da565b806340c10f19146103de57806342966c681461042c57806370a082311461045a57806375620d6f146104b2576101da565b806313af4035116101b857806313af4035146102d257806318160ddd1461031657806323b872dd14610334578063313ce567146103ba576101da565b806306fdde03146101df57806307da68f514610262578063095ea7b31461026c575b600080fd5b6101e7610bf0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026a610c8e565b005b6102b86004803603604081101561028257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d76565b604051808215151515815260200191505060405180910390f35b610314600480360360208110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eeb565b005b61031e611034565b6040518082815260200191505060405180910390f35b6103a06004803603606081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103a565b604051808215151515815260200191505060405180910390f35b6103c26115d2565b604051808260ff1660ff16815260200191505060405180910390f35b61042a600480360360408110156103f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b005b6104586004803603602081101561044257600080fd5b81019080803590602001909291905050506117f8565b005b61049c6004803603602081101561047057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611805565b6040518082815260200191505060405180910390f35b6104fe600480360360408110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061181d565b005b610508611877565b604051808215151515815260200191505060405180910390f35b6105646004803603602081101561053857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188a565b005b61056e6119d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105b86119f7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f85780820151818401526020810190506105dd565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61067f6004803603604081101561064957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a95565b005b6106ad6004803603602081101561069757600080fd5b8101908080359060200190929190505050612033565b005b610772600480360360408110156106c557600080fd5b81019080803590602001906401000000008111156106e257600080fd5b8201836020820111156106f457600080fd5b8035906020019184600183028401116401000000008311171561071657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050612040565b005b6107c06004803603604081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612126565b604051808215151515815260200191505060405180910390f35b610826600480360360408110156107f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061213b565b005b6108946004803603606081101561083e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061214b565b005b61089e61215c565b005b6108a8612245565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a36004803603602081101561090057600080fd5b810190808035906020019064010000000081111561091d57600080fd5b82018360208201111561092f57600080fd5b8035906020019184600183028401116401000000008311171561095157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061226a565b005b6109fb600480360360608110156109bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612324565b005b610a3f60048036036020811015610a1357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123af565b604051808215151515815260200191505060405180910390f35b610abb60048036036040811015610a6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123e2565b6040518082815260200191505060405180910390f35b610b1d60048036036040811015610ae757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612407565b005b610b27612461565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b67578082015181840152602081019050610b4c565b50505050905090810190601f168015610b945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610bee60048036036040811015610bb857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612503565b005b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c865780601f10610c5b57610100808354040283529160200191610c86565b820191906000526020600020905b815481529060010190602001808311610c6957829003601f168201915b505050505081565b610cbc336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b610d2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507fbedf0f4abfe86d4ffad593d9607fe70e83ea706033d44d24b3b6283cf3fc4f6b60405160405180910390a1565b6000600160149054906101000a900460ff1615610dfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610f19336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b610f8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b60025481565b6000600160149054906101000a900460ff16156110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561119757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156113955781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c000081525060200191505060405180910390fd5b611314600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361276c565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b611493600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361276c565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061151f600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836127ef565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600660009054906101000a900460ff1681565b611613336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b611685576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b611751600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826127ef565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a0600254826127ef565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a25050565b6118023382611a95565b50565b60036020528060005260406000206000915090505481565b7389a7ef2f08b1c018d5cc88836249b84dd539290573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186957600080fd5b6118738282612872565b5050565b600160149054906101000a900460ff1681565b6118b8336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b61192a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a8d5780601f10611a6257610100808354040283529160200191611a8d565b820191906000526020600020905b815481529060010190602001808311611a7057829003601f168201915b505050505081565b611ac3336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b611b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615611bb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611c9057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611e8e5780600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611d87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c000081525060200191505060405180910390fd5b611e0d600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b611f8c600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fdb6002548261276c565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b61203d33826115e5565b50565b61204a3382612872565b7f7835232045347ac086653cbd9c0e6303f23502bb796f671a56755142063df2b2338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156120e65780820151818401526020810190506120cb565b50505050905090810190601f1680156121135780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b600061213333848461103a565b905092915050565b61214633838361103a565b505050565b61215683838361103a565b50505050565b61218a336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b6121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f1b55ba3aa851a46be3b365aee5b5c140edd620d578922f3e8466d2cbd96f954b60405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612298336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b61230a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b8060079080519060200190612320929190612a17565b5050565b6123373361233284846127ef565b612872565b7f937492d2511a2fbc9b51ea08825f1e252247d339dfd50904ebf4f4411f1d8136838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1505050565b60006123db827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d76565b9050919050565b6004602052816000526040600020602052806000526040600020600091509150505481565b7389a7ef2f08b1c018d5cc88836249b84dd539290573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461245357600080fd5b61245d82826115e5565b5050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b5050505050905090565b61250e82338361103a565b505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125525760019050612766565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125b15760019050612766565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156126105760009050612766565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b15801561272857600080fd5b505afa15801561273c573d6000803e3d6000fd5b505050506040513d602081101561275257600080fd5b810190808051906020019092919050505090505b92915050565b60008282840391508111156127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b600082828401915081101561286c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b612970600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129bf6002548261276c565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a5857805160ff1916838001178555612a86565b82800160010185558215612a86579182015b82811115612a85578251825591602001919060010190612a6a565b5b509050612a939190612a97565b5090565b612ab991905b80821115612ab5576000816000905550600101612a9d565b5090565b9056fea26469706673582212207d1371c93de00a190d16292f8a6a4b87b05d0e439fb42a4f18abd31faadc684664736f6c634300060b0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000855534420436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

12031:222:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6832:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9708:83;;;:::i;:::-;;7512:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1352:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6408:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7848:621;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6703:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8968:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8887:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6484:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11265:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6336:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1488:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1212:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6632:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9171:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8806:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11778:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7715:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8477:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8691:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9799:86;;;:::i;:::-;;1175:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9895:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11478:220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7402:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6558:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11107:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11008:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8584:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6832:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9708:83::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9757:4:::1;9747:7:::0;::::1;:14;;;;;;;;;;;;;;;;;;9777:6;;;;;;;;;;9708:83::o:0;7512:195::-;7578:4;7344:7;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:3:::1;7595:9;:21;7605:10;7595:21;;;;;;;;;;;;;;;:26;7617:3;7595:26;;;;;;;;;;;;;;;:32;;;;7666:3;7645:30;;7654:10;7645:30;;;7671:3;7645:30;;;;;;;;;;;;;;;;;;7695:4;7688:11;;7512:195:::0;;;;:::o;1352:128::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:6:::1;1424:5;;:14;;;;;;;;;;;;;;;;;;1466:5;;;;;;;;;;;1454:18;;;;;;;;;;;;1352:128:::0;:::o;6408:69::-;;;;:::o;7848:621::-;7947:4;7344:7;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7980:10:::1;7973:17;;:3;:17;;;;:59;;;;;8029:2;7994:9;:14;8004:3;7994:14;;;;;;;;;;;;;;;:26;8009:10;7994:26;;;;;;;;;;;;;;;;:38;;7973:59;7969:248;;;8087:3;8057:9;:14;8067:3;8057:14;;;;;;;;;;;;;;;:26;8072:10;8057:26;;;;;;;;;;;;;;;;:33;;8049:76;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8169:36;8173:9;:14;8183:3;8173:14;;;;;;;;;;;;;;;:26;8188:10;8173:26;;;;;;;;;;;;;;;;8201:3;8169;:36::i;:::-;8140:9;:14;8150:3;8140:14;;;;;;;;;;;;;;;:26;8155:10;8140:26;;;;;;;;;;;;;;;:65;;;;7969:248;8255:3;8237:9;:14;8247:3;8237:14;;;;;;;;;;;;;;;;:21;;8229:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8320:24;8324:9;:14;8334:3;8324:14;;;;;;;;;;;;;;;;8340:3;8320;:24::i;:::-;8303:9;:14;8313:3;8303:14;;;;;;;;;;;;;;;:41;;;;8372:24;8376:9;:14;8386:3;8376:14;;;;;;;;;;;;;;;;8392:3;8372;:24::i;:::-;8355:9;:14;8365:3;8355:14;;;;;;;;;;;;;;;:41;;;;8428:3;8414:23;;8423:3;8414:23;;;8433:3;8414:23;;;;;;;;;;;;;;;;;;8457:4;8450:11;;7848:621:::0;;;;;:::o;6703:71::-;;;;;;;;;;;;;:::o;8968:195::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:7:::1;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9055:24:::2;9059:9;:14;9069:3;9059:14;;;;;;;;;;;;;;;;9075:3;9055;:24::i;:::-;9038:9;:14;9048:3;9038:14;;;;;;;;;;;;;;;:41;;;;9104:21;9108:11;;9121:3;9104;:21::i;:::-;9090:11;:35;;;;9146:3;9141:14;;;9151:3;9141:14;;;;;;;;;;;;;;;;;;8968:195:::0;;:::o;8887:73::-;8931:21;8936:10;8948:3;8931:4;:21::i;:::-;8887:73;:::o;6484:67::-;;;;;;;;;;;;;;;;;:::o;11265:157::-;10187:42;11349:28;;:10;:28;;;11341:37;;;;;;11389:25;11401:4;11407:6;11389:11;:25::i;:::-;11265:157;;:::o;6336:65::-;;;;;;;;;;;;;:::o;1488:165::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1584:10:::1;1572:9;::::0;:22:::1;;;;;;;;;;;;;;;;;;1634:9;::::0;::::1;;;;;;;;;1610:35;;;;;;;;;;;;1488:165:::0;:::o;1212:26::-;;;;;;;;;;;;;:::o;6632:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9171:529::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:7:::1;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9252:10:::2;9245:17;;:3;:17;;;;:59;;;;;9301:2;9266:9;:14;9276:3;9266:14;;;;;;;;;;;;;;;:26;9281:10;9266:26;;;;;;;;;;;;;;;;:38;;9245:59;9241:248;;;9359:3;9329:9;:14;9339:3;9329:14;;;;;;;;;;;;;;;:26;9344:10;9329:26;;;;;;;;;;;;;;;;:33;;9321:76;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9441:36;9445:9;:14;9455:3;9445:14;;;;;;;;;;;;;;;:26;9460:10;9445:26;;;;;;;;;;;;;;;;9473:3;9441;:36::i;:::-;9412:9;:14;9422:3;9412:14;;;;;;;;;;;;;;;:26;9427:10;9412:26;;;;;;;;;;;;;;;:65;;;;9241:248;9527:3;9509:9;:14;9519:3;9509:14;;;;;;;;;;;;;;;;:21;;9501:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9592:24;9596:9;:14;9606:3;9596:14;;;;;;;;;;;;;;;;9612:3;9592;:24::i;:::-;9575:9;:14;9585:3;9575:14;;;;;;;;;;;;;;;:41;;;;9641:21;9645:11;;9658:3;9641;:21::i;:::-;9627:11;:35;;;;9683:3;9678:14;;;9688:3;9678:14;;;;;;;;;;;;;;;;;;9171:529:::0;;:::o;8806:73::-;8850:21;8855:10;8867:3;8850:4;:21::i;:::-;8806:73;:::o;11778:180::-;11855:31;11867:10;11879:6;11855:11;:31::i;:::-;11902:48;11920:10;11932:9;11943:6;11902:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11778:180;;:::o;7715:125::-;7774:4;7798:34;7811:10;7823:3;7828;7798:12;:34::i;:::-;7791:41;;7715:125;;;;:::o;8477:99::-;8534:34;8547:10;8559:3;8564;8534:12;:34::i;:::-;;8477:99;;:::o;8691:105::-;8761:27;8774:3;8779;8784;8761:12;:27::i;:::-;;8691:105;;;:::o;9799:86::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9849:5:::1;9839:7;;:15;;;;;;;;;;;;;;;;;;9870:7;;;;;;;;;;9799:86::o:0;1175:30::-;;;;;;;;;;;;;:::o;9895:81::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9963:5:::1;9956:4;:12;;;;;;;;;;;;:::i;:::-;;9895:81:::0;:::o;11478:220::-;11573:48;11585:10;11597:23;11601:6;11609:10;11597:3;:23::i;:::-;11573:11;:48::i;:::-;11637:53;11660:9;11671:6;11679:10;11637:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11478:220;;;:::o;7402:102::-;7450:4;7474:22;7482:3;7492:2;7474:7;:22::i;:::-;7467:29;;7402:102;;;:::o;6558:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11107:150::-;10187:42;11191:28;;:10;:28;;;11183:37;;;;;;11231:18;11236:4;11242:6;11231:4;:18::i;:::-;11107:150;;:::o;11008:91::-;11053:13;11086:5;11079:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11008:91;:::o;8584:99::-;8641:34;8654:3;8659:10;8671:3;8641:12;:34::i;:::-;;8584:99;;:::o;1780:389::-;1850:4;1886;1871:20;;:3;:20;;;1867:295;;;1915:4;1908:11;;;;1867:295;1948:5;;;;;;;;;;;1941:12;;:3;:12;;;1937:225;;;1977:4;1970:11;;;;1937:225;2036:1;2003:36;;:9;;;;;;;;;;;:36;;;1999:163;;;2063:5;2056:12;;;;1999:163;2108:9;;;;;;;;;;;:17;;;2126:3;2139:4;2146:3;2108:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2101:49;;1780:389;;;;;:::o;3124:129::-;3176:6;3218:1;3212;3208;:5;3204:9;;;3203:16;;3195:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:129;;;;:::o;2990:128::-;3042:6;3084:1;3078;3074;:5;3070:9;;;3069:16;;3061:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2990:128;;;;:::o;10667:333::-;10812:6;10793:9;:15;10803:4;10793:15;;;;;;;;;;;;;;;;:25;;10785:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10881:28;10885:9;:15;10895:4;10885:15;;;;;;;;;;;;;;;;10902:6;10881:3;:28::i;:::-;10863:9;:15;10873:4;10863:15;;;;;;;;;;;;;;;:46;;;;10934:24;10938:11;;10951:6;10934:3;:24::i;:::-;10920:11;:38;;;;10979:4;10974:18;;;10985:6;10974:18;;;;;;;;;;;;;;;;;;10667:333;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://7d1371c93de00a190d16292f8a6a4b87b05d0e439fb42a4f18abd31faadc6846
Loading