Token Tether USD
Overview CRC20
Price
$1.00 @ 6.634588 CRO (+0.12%)
Fully Diluted Market Cap
Total Supply:
87,824,964.111949 USDT
Holders:
43,763 addresses
Contract:
Decimals:
6
Official Site:
Balance
317.535752 USDTValue
$317.85 ( ~2,106.6970 CRO) [0.0004%]
[ Download CSV Export ]
[ Download CSV Export ]
OVERVIEW
Tether gives you the joint benefits of open blockchain technology and traditional currency by converting your cash into a stable digital currency equivalent.Market
Volume (24H) | : | $74,748,005,597.00 |
Market Capitalization | : | $104,494,794,429.00 |
Circulating Supply | : | 104,454,161,511.00 USDT |
Market Data Source: Coinmarketcap |
Update? Click here to update the token ICO / general information
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|---|---|---|---|---|
1 | Binance | BTC-USDT | $0.9996 0.0000142 Btc | $3,545,808,062.00 50,893.465 BTC | 0.0000% |
2 | OrangeX | BTC-USDT | $0.9999 0.0000142 Btc | $2,642,468,843.00 37,977.552 BTC | 0.0000% |
3 | Binance | ETH-USDT | $0.9999 0.0000142 Btc | $1,900,418,219.00 537,275.055 ETH | 0.0005% |
4 | Binance | USDC-USDT | $1.00 0.0000142 Btc | $1,359,421,960.00 1,359,010,392.000 USDC | 1.2254% |
5 | OKX | BTC-USDT | $0.9996 0.0000142 Btc | $1,175,869,050.00 16,871.318 BTC | 0.0000% |
6 | Binance | DOGE-USDT | $0.9997 0.0000142 Btc | $1,046,956,086.00 5,463,961,897.000 DOGE | 4.9267% |
7 | Bitget | BTC-USDT | $0.9997 0.0000142 Btc | $998,462,174.00 14,350.624 BTC | 0.0000% |
8 | Bybit | BTC-USDT | $0.9996 0.0000142 Btc | $988,731,124.00 14,213.597 BTC | 0.0000% |
9 | Binance | SOL-USDT | $0.9997 0.0000142 Btc | $985,561,293.00 5,324,725.750 SOL | 0.0048% |
10 | Coinbase Exchange | USDT-USD | $0.9995 0.0000142 Btc | $952,042,983.00 952,566,022.690 USDT | 0.8589% |
11 | DigiFinex | BTC-USDT | $0.9997 0.0000142 Btc | $860,339,466.00 12,184.062 BTC | 0.0000% |
12 | Pionex | BTC-USDT | $0.9993 0.0000142 Btc | $831,385,829.00 11,935.095 BTC | 0.0000% |
13 | BitMart | ETH-USDT | $0.9997 0.0000142 Btc | $816,244,692.00 228,008.800 ETH | 0.0002% |
14 | Binance | ETHFI-USDT | $0.9997 0.0000142 Btc | $811,891,233.00 112,182,329.300 ETHFI | 0.1012% |
15 | Bitget | ETH-USDT | $0.9997 0.0000142 Btc | $649,521,627.00 183,746.293 ETH | 0.0002% |
16 | OKX | ETH-USDT | $0.9993 0.0000142 Btc | $582,404,466.00 164,607.899 ETH | 0.0001% |
17 | OrangeX | ETH-USDT | $0.9999 0.0000142 Btc | $574,867,619.00 162,666.447 ETH | 0.0001% |
18 | Hotcoin Global | ETH-USDT | $0.9999 0.0000142 Btc | $506,683,220.00 141,573.863 ETH | 0.0001% |
19 | Bybit | ETH-USDT | $0.9996 0.0000142 Btc | $472,155,570.00 133,437.041 ETH | 0.0001% |
20 | Pionex | ETH-USDT | $0.9993 0.0000142 Btc | $447,289,118.00 126,501.868 ETH | 0.0001% |
21 | Crypto.com Exchange | BTC-USDT | $0.9996 0.0000142 Btc | $407,660,439.00 5,776.452 BTC | 0.0000% |
22 | KuCoin | BTC-USDT | $0.9993 0.0000142 Btc | $399,467,677.00 5,657.557 BTC | 0.0000% |
23 | CoinW | BTC-USDT | $0.9993 0.0000141 Btc | $396,805,570.00 5,604.939 BTC | 0.0000% |
24 | Binance | BNB-USDT | $0.9999 0.0000142 Btc | $390,970,241.00 676,172.322 BNB | 0.0006% |
25 | HTX | BTC-USDT | $0.9997 0.0000142 Btc | $384,220,172.00 5,494.605 BTC | 0.0000% |
26 | Binance | FET-USDT | $0.9992 0.0000141 Btc | $374,730,741.00 119,049,696.900 FET | 0.1073% |
27 | Binance | XRP-USDT | $0.9999 0.0000142 Btc | $365,803,214.00 593,699,784.000 XRP | 0.5353% |
28 | BigONE | BTC-USDT | $0.9999 0.0000142 Btc | $353,305,939.00 4,989.623 BTC | 0.0000% |
29 | BingX | BTC-USDT | $0.9997 0.0000142 Btc | $336,970,412.00 4,840.836 BTC | 0.0000% |
30 | Crypto.com Exchange | ETH-USDT | $0.9997 0.0000142 Btc | $310,769,336.00 86,919.151 ETH | 0.0001% |
31 | CoinTR Pro | BTC-USDT | $0.9993 0.0000142 Btc | $303,563,921.00 4,362.476 BTC | 0.0000% |
32 | OKX | SOL-USDT | $0.9993 0.0000142 Btc | $226,353,886.00 1,225,304.005 SOL | 0.0011% |
33 | Fastex | BTC-USDT | $0.9993 0.0000142 Btc | $214,415,681.00 3,036.817 BTC | 0.0000% |
34 | Kraken | USDT-USD | $0.9997 0.0000142 Btc | $209,012,792.00 209,081,600.753 USDT | 0.1885% |
35 | Toobit | ETH-USDT | $0.9999 0.0000142 Btc | $190,789,064.00 53,989.485 ETH | 0.0000% |
36 | Tapbit | BTC-USDT | $1.00 0.0000142 Btc | $187,580,769.00 2,691.962 BTC | 0.0000% |
37 | Gate.io | ETH-USDT | $0.9997 0.0000142 Btc | $182,119,352.00 51,380.375 ETH | 0.0000% |
38 | Gate.io | BTC-USDT | $0.9997 0.0000142 Btc | $179,506,189.00 2,578.543 BTC | 0.0000% |
39 | Binance | WLD-USDT | $0.9997 0.0000142 Btc | $174,761,374.00 20,087,551.000 WLD | 0.0181% |
40 | DigiFinex | DOGE-USDT | $0.9997 0.0000142 Btc | $174,308,189.00 862,053,073.720 DOGE | 0.7773% |
41 | Gate.io | DOGE-USDT | $0.9997 0.0000142 Btc | $148,862,544.00 776,446,623.880 DOGE | 0.7001% |
42 | Binance | LTC-USDT | $0.9999 0.0000142 Btc | $144,803,396.00 1,523,494.405 LTC | 0.0014% |
43 | Tapbit | ETH-USDT | $1.00 0.0000142 Btc | $130,057,305.00 36,777.800 ETH | 0.0000% |
44 | Binance | APT-USDT | $0.9997 0.0000142 Btc | $122,502,707.00 6,854,581.730 APT | 0.0062% |
45 | FMFW.io | BTC-USDT | $0.9997 0.0000142 Btc | $106,211,210.00 1,504.255 BTC | 0.0000% |
46 | BitVenus | SOL-USDT | $0.9999 0.0000142 Btc | $101,558,820.00 548,858.730 SOL | 0.0005% |
47 | DigiFinex | SOL-USDT | $0.9997 0.0000142 Btc | $100,516,742.00 536,758.000 SOL | 0.0005% |
48 | Binance | ORDI-USDT | $0.9997 0.0000142 Btc | $93,118,430.00 1,479,431.300 ORDI | 0.0013% |
49 | Gate.io | SOL-USDT | $0.9997 0.0000142 Btc | $77,744,295.00 420,524.313 SOL | 0.0004% |
50 | Bitunix | USDC-USDT | $0.9998 0.0000142 Btc | $68,129,524.00 68,122,256.236 USDC | 0.0614% |
51 | Bitunix | DOGE-USDT | $0.9998 0.0000142 Btc | $60,514,192.00 302,771,748.000 DOGE | 0.2730% |
52 | BingX | SOL-USDT | $0.9997 0.0000142 Btc | $52,084,753.00 282,033.624 SOL | 0.0003% |
53 | HTX | ETH-USDT | $0.9997 0.0000142 Btc | $50,854,676.00 14,371.824 ETH | 0.0000% |
54 | OKX | USDC-USDT | $0.9993 0.0000142 Btc | $37,459,951.00 37,474,708.128 USDC | 0.0338% |
55 | Kraken | BTC-USDT | $0.9996 0.0000142 Btc | $33,343,332.00 472.168 BTC | 0.0000% |
56 | Bitfinex | BTC-USDT | $0.9996 0.0000142 Btc | $31,656,421.00 448.297 BTC | 0.0000% |
57 | FMFW.io | ETH-USDT | $0.9997 0.0000142 Btc | $30,424,283.00 8,505.419 ETH | 0.0000% |
58 | HitBTC | ETH-USDT | $0.9997 0.0000142 Btc | $30,089,872.00 8,505.407 ETH | 0.0000% |
59 | BitVenus | BNB-USDT | $0.9999 0.0000142 Btc | $25,932,786.00 44,849.284 BNB | 0.0000% |
60 | Toobit | SOL-USDT | $0.9999 0.0000142 Btc | $25,707,340.00 138,936.380 SOL | 0.0001% |
61 | WhiteBIT | LINK-USDT | $0.9993 0.0000141 Btc | $23,188,986.00 1,189,205.050 LINK | 0.0011% |
62 | OrangeX | XRP-USDT | $0.9999 0.0000142 Btc | $22,036,069.00 35,770,444.000 XRP | 0.0323% |
63 | Bitget | USDC-USDT | $0.9997 0.0000142 Btc | $20,564,283.00 20,563,721.615 USDC | 0.0185% |
64 | BitVenus | XRP-USDT | $0.9999 0.0000142 Btc | $19,718,221.00 32,025,906.000 XRP | 0.0289% |
65 | DigiFinex | SUI-USDT | $0.9997 0.0000142 Btc | $19,503,638.00 9,785,961.800 SUI | 0.0088% |
66 | WOO X | BTC-USDT | $0.9997 0.0000142 Btc | $19,270,757.00 272.814 BTC | 0.0000% |
67 | FMFW.io | SOL-USDT | $0.9997 0.0000142 Btc | $17,208,318.00 91,731.499 SOL | 0.0001% |
68 | BingX | BNB-USDT | $0.9997 0.0000142 Btc | $17,071,626.00 29,526.069 BNB | 0.0000% |
69 | HitBTC | SOL-USDT | $0.9997 0.0000142 Btc | $16,899,322.00 91,615.517 SOL | 0.0001% |
70 | MEXC | USDC-USDT | $0.9992 0.0000141 Btc | $16,638,835.00 16,644,940.350 USDC | 0.0150% |
71 | Bitrue | USDC-USDT | $0.9993 0.0000141 Btc | $15,058,257.00 15,063,187.700 USDC | 0.0136% |
72 | DigiFinex | XRP-USDT | $0.9997 0.0000142 Btc | $14,751,774.00 23,637,718.000 XRP | 0.0213% |
73 | Hotcoin Global | USDC-USDT | $0.9999 0.0000142 Btc | $13,024,149.00 13,021,036.000 USDC | 0.0117% |
74 | DigiFinex | BNB-USDT | $0.9997 0.0000142 Btc | $9,584,918.00 16,256.662 BNB | 0.0000% |
75 | WOO X | ETH-USDT | $0.9997 0.0000142 Btc | $8,183,424.00 2,286.138 ETH | 0.0000% |
76 | Bitunix | LTC-USDT | $0.9998 0.0000142 Btc | $8,023,836.00 83,711.144 LTC | 0.0001% |
77 | Hotcoin Global | LTC-USDT | $0.9999 0.0000142 Btc | $5,400,045.00 56,253.894 LTC | 0.0001% |
78 | Gate.io | USDC-USDT | $0.9993 0.0000142 Btc | $5,254,809.00 5,256,919.510 USDC | 0.0047% |
79 | DigiFinex | APT-USDT | $0.9997 0.0000142 Btc | $5,180,673.00 287,741.990 APT | 0.0003% |
80 | XT.COM | APT-USDT | $0.9992 0.0000141 Btc | $4,900,531.00 274,295.094 APT | 0.0002% |
81 | Crypto.com Exchange | USDT-USD | $0.9995 0.0000142 Btc | $4,405,737.00 4,408,025.500 USDT | 0.0040% |
82 | MEXC | BNB-USDT | $0.9992 0.0000141 Btc | $4,084,800.00 6,924.007 BNB | 0.0000% |
83 | Tapbit | XRP-USDT | $1.00 0.0000142 Btc | $4,077,336.00 6,619,748.340 XRP | 0.0060% |
84 | Hotcoin Global | ADA-USDT | $0.9999 0.0000142 Btc | $3,917,401.00 6,013,260.600 ADA | 0.0054% |
85 | HitBTC | BCH-USDT | $0.9997 0.0000142 Btc | $3,853,387.00 7,275.947 BCH | 0.0000% |
86 | WEEX | BNB-USDT | $0.9999 0.0000142 Btc | $3,501,539.00 6,065.348 BNB | 0.0000% |
87 | Deepcoin | SOL-USDT | $0.9993 0.0000142 Btc | $3,293,606.00 17,831.757 SOL | 0.0000% |
88 | WEEX | XRP-USDT | $0.9999 0.0000142 Btc | $3,150,865.00 5,114,653.817 XRP | 0.0046% |
89 | Tapbit | BNB-USDT | $1.00 0.0000142 Btc | $3,095,951.00 5,354.215 BNB | 0.0000% |
90 | OrangeX | BONK-USDT | $0.9999 0.0000142 Btc | $2,583,435.00 99,800,088,870.000 BONK | 89.9866% |
91 | FMFW.io | FIL-USDT | $0.9997 0.0000142 Btc | $2,450,813.00 266,665.613 FIL | 0.0002% |
92 | Tapbit | SOL-USDT | $1.00 0.0000142 Btc | $2,071,934.00 11,195.060 SOL | 0.0000% |
93 | CEX.IO | USDT-EUR | $0.9982 0.0000141 Btc | $1,915,585.00 1,922,395.518 USDT | 0.0017% |
94 | WOO X | SOL-USDT | $0.9997 0.0000142 Btc | $1,832,180.00 9,782.140 SOL | 0.0000% |
95 | BitVenus | FDUSD-USDT | $0.9999 0.0000142 Btc | $1,115,266.00 1,116,974.000 FDUSD | 0.0010% |
96 | BitVenus | TUSD-USDT | $0.9993 0.0000141 Btc | $959,144.00 956,384.000 TUSD | 0.0009% |
97 | TokoCrypto | DOGE-USDT | $0.9995 0.0000142 Btc | $950,426.00 4,751,812.827 DOGE | 0.0043% |
98 | CEX.IO | USDT-USD | $1.001 0.0000141 Btc | $923,161.00 922,602.940 USDT | 0.0008% |
99 | XT.COM | ADA-USDT | $0.9992 0.0000141 Btc | $711,084.00 1,100,040.975 ADA | 0.0010% |
100 | TokoCrypto | XRP-USDT | $0.9997 0.0000142 Btc | $327,743.00 525,232.608 XRP | 0.0005% |
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xc21223249ca28397b4b6541dffaecc539bff0c59 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
CronosCRC20
Compiler Version
v0.6.11+commit.5ef660b1
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com 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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80639dc29fac11610104578063bf7e214f116100a2578063dd62ed3e11610071578063dd62ed3e14610a59578063e978206414610ad1578063ee36665414610b1f578063f2d5d56b14610ba2576101da565b8063bf7e214f146108a0578063c47f0027146108ea578063d3d78b9b146109a5578063daea85c5146109fd576101da565b8063a9059cbb116100de578063a9059cbb14610774578063b753a98c146107da578063bb35783b14610828578063be9a655514610896576101da565b80639dc29fac14610633578063a0712d6814610681578063a515cb40146106af576101da565b806340c10f191161017c57806375f12b211161014b57806375f12b21146105005780637a9e5e4b146105225780638da5cb5b1461056657806395d89b41146105b0576101da565b806340c10f19146103de57806342966c681461042c57806370a082311461045a57806375620d6f146104b2576101da565b806313af4035116101b857806313af4035146102d257806318160ddd1461031657806323b872dd14610334578063313ce567146103ba576101da565b806306fdde03146101df57806307da68f514610262578063095ea7b31461026c575b600080fd5b6101e7610bf0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026a610c8e565b005b6102b86004803603604081101561028257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d76565b604051808215151515815260200191505060405180910390f35b610314600480360360208110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eeb565b005b61031e611034565b6040518082815260200191505060405180910390f35b6103a06004803603606081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103a565b604051808215151515815260200191505060405180910390f35b6103c26115d2565b604051808260ff1660ff16815260200191505060405180910390f35b61042a600480360360408110156103f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b005b6104586004803603602081101561044257600080fd5b81019080803590602001909291905050506117f8565b005b61049c6004803603602081101561047057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611805565b6040518082815260200191505060405180910390f35b6104fe600480360360408110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061181d565b005b610508611877565b604051808215151515815260200191505060405180910390f35b6105646004803603602081101561053857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188a565b005b61056e6119d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105b86119f7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f85780820151818401526020810190506105dd565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61067f6004803603604081101561064957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a95565b005b6106ad6004803603602081101561069757600080fd5b8101908080359060200190929190505050612033565b005b610772600480360360408110156106c557600080fd5b81019080803590602001906401000000008111156106e257600080fd5b8201836020820111156106f457600080fd5b8035906020019184600183028401116401000000008311171561071657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050612040565b005b6107c06004803603604081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612126565b604051808215151515815260200191505060405180910390f35b610826600480360360408110156107f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061213b565b005b6108946004803603606081101561083e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061214b565b005b61089e61215c565b005b6108a8612245565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a36004803603602081101561090057600080fd5b810190808035906020019064010000000081111561091d57600080fd5b82018360208201111561092f57600080fd5b8035906020019184600183028401116401000000008311171561095157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061226a565b005b6109fb600480360360608110156109bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612324565b005b610a3f60048036036020811015610a1357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123af565b604051808215151515815260200191505060405180910390f35b610abb60048036036040811015610a6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123e2565b6040518082815260200191505060405180910390f35b610b1d60048036036040811015610ae757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612407565b005b610b27612461565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b67578082015181840152602081019050610b4c565b50505050905090810190601f168015610b945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610bee60048036036040811015610bb857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612503565b005b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c865780601f10610c5b57610100808354040283529160200191610c86565b820191906000526020600020905b815481529060010190602001808311610c6957829003601f168201915b505050505081565b610cbc336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b610d2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507fbedf0f4abfe86d4ffad593d9607fe70e83ea706033d44d24b3b6283cf3fc4f6b60405160405180910390a1565b6000600160149054906101000a900460ff1615610dfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610f19336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b610f8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b60025481565b6000600160149054906101000a900460ff16156110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561119757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156113955781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c000081525060200191505060405180910390fd5b611314600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361276c565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b611493600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361276c565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061151f600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836127ef565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600660009054906101000a900460ff1681565b611613336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b611685576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b611751600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826127ef565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a0600254826127ef565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a25050565b6118023382611a95565b50565b60036020528060005260406000206000915090505481565b7389a7ef2f08b1c018d5cc88836249b84dd539290573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186957600080fd5b6118738282612872565b5050565b600160149054906101000a900460ff1681565b6118b8336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b61192a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a8d5780601f10611a6257610100808354040283529160200191611a8d565b820191906000526020600020905b815481529060010190602001808311611a7057829003601f168201915b505050505081565b611ac3336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b611b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615611bb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611c9057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611e8e5780600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611d87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c000081525060200191505060405180910390fd5b611e0d600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b611f8c600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fdb6002548261276c565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b61203d33826115e5565b50565b61204a3382612872565b7f7835232045347ac086653cbd9c0e6303f23502bb796f671a56755142063df2b2338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156120e65780820151818401526020810190506120cb565b50505050905090810190601f1680156121135780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b600061213333848461103a565b905092915050565b61214633838361103a565b505050565b61215683838361103a565b50505050565b61218a336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b6121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f1b55ba3aa851a46be3b365aee5b5c140edd620d578922f3e8466d2cbd96f954b60405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612298336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b61230a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b8060079080519060200190612320929190612a17565b5050565b6123373361233284846127ef565b612872565b7f937492d2511a2fbc9b51ea08825f1e252247d339dfd50904ebf4f4411f1d8136838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1505050565b60006123db827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d76565b9050919050565b6004602052816000526040600020602052806000526040600020600091509150505481565b7389a7ef2f08b1c018d5cc88836249b84dd539290573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461245357600080fd5b61245d82826115e5565b5050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b5050505050905090565b61250e82338361103a565b505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125525760019050612766565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125b15760019050612766565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156126105760009050612766565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b15801561272857600080fd5b505afa15801561273c573d6000803e3d6000fd5b505050506040513d602081101561275257600080fd5b810190808051906020019092919050505090505b92915050565b60008282840391508111156127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b600082828401915081101561286c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b612970600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129bf6002548261276c565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a5857805160ff1916838001178555612a86565b82800160010185558215612a86579182015b82811115612a85578251825591602001919060010190612a6a565b5b509050612a939190612a97565b5090565b612ab991905b80821115612ab5576000816000905550600101612a9d565b5090565b9056fea26469706673582212207d1371c93de00a190d16292f8a6a4b87b05d0e439fb42a4f18abd31faadc684664736f6c634300060b0033
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