Token Dai Stablecoin

 

Overview ERC20

Price
$1.00 @ 0.000267 ETH (+0.01%)
Fully Diluted Market Cap
Total Supply:
130,460.800349 DAI

Holders:
79,685 addresses
Balance
0.793048018943123604 DAI

Value
$0.79 ( ~0.000211236901244881 ETH) [0.0006%]
0x4bb4c1b0745ef7b4642feeccd0740dec417ca0a0
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

Multi-Collateral Dai, brings a lot of new and exciting features, such as support for new CDP collateral types and Dai Savings Rate.

Market

Volume (24H):$276,863,246.00
Market Capitalization:$5,309,521,485.00
Circulating Supply:5,310,226,712.00 DAI
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
1
Uniswap V3 (Ethereum)
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XDAC17F958D2EE523A2206206994597C13D831EC7$1.00
0.0000145 Btc
$6,837,511.00
7,003,293.619 0X6B175474E89094C44DA98B954EEDEAC495271D0F
15.1005%
2
Uniswap V3 (Ethereum)
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48$0.9998
0.0000145 Btc
$4,801,413.00
4,801,556.944 0X6B175474E89094C44DA98B954EEDEAC495271D0F
10.3531%
3
HTX
DAI-USDT$0.9998
0.0000145 Btc
$4,586,655.00
4,588,690.373 DAI
9.8941%
4
WhiteBIT
DAI-USDT$1.00
0.0000145 Btc
$4,511,697.00
4,511,089.970 DAI
9.7268%
5
Uniswap V3 (Ethereum)
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.00
0.0000145 Btc
$4,171,852.00
4,276,319.747 0X6B175474E89094C44DA98B954EEDEAC495271D0F
9.2206%
6
Binance
USDT-DAI$1.00
0.0000145 Btc
$2,666,872.00
2,667,377.900 USDT
5.7514%
7
LBank
DAI-USDT$1.00
0.0000145 Btc
$1,352,448.00
1,352,040.610 DAI
2.9153%
8
DigiFinex
DAI-USDT$0.9998
0.0000145 Btc
$1,217,374.00
1,217,560.680 DAI
2.6253%
9
Bitrue
DAI-USDT$0.9997
0.0000145 Btc
$1,134,565.00
1,134,853.000 DAI
2.4470%
10
Uniswap V3 (Arbitrum One)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFD086BC7CD5C481DCC9C85EBE478A1C0B69FCBB9$0.9993
0.0000145 Btc
$1,047,296.00
1,048,020.910 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
2.2597%
11
Uniswap V3 (Polygon)
0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-0XC2132D05D31C914A87C6611C10748AEB04B58E8F$1.00
0.0000145 Btc
$989,029.00
988,973.422 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063
2.1324%
12
OKX
DAI-USDT$0.9998
0.0000145 Btc
$963,997.00
962,983.510 DAI
2.0764%
13
Quickswap (v3)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$0.9999
0.0000145 Btc
$868,969.00
869,096.937 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
1.8739%
14
XT.COM
DAI-USDT$0.9999
0.0000145 Btc
$716,075.00
715,421.950 DAI
1.5426%
15
Uniswap V3 (Optimism)
0X8C6F28F2F1A3C87F0F938B96D27520D9751EC8D9-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$0.9982
0.0000144 Btc
$690,139.00
694,727.539 0X8C6F28F2F1A3C87F0F938B96D27520D9751EC8D9
1.4980%
16
Azbit
DAI-USDT$1.00
0.0000145 Btc
$577,522.00
577,319.374 DAI
1.2448%
17
Bitget
DAI-USDT$0.9999
0.0000145 Btc
$559,884.00
559,903.000 DAI
1.2073%
18
Uniswap V3 (Polygon)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.00
0.0000145 Btc
$527,371.00
527,309.012 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
1.1370%
19
BitMart
BTC-DAI$1.00
0.0000145 Btc
$509,978.00
7.376 BTC
0.0000%
20
Tapbit
DAI-USDT$0.9998
0.0000145 Btc
$471,081.00
470,915.900 DAI
1.0154%
21
Uniswap V3 (Optimism)
0X94B008AA00579C1307B0EF2C499AD98A8CE58E58-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$0.9982
0.0000144 Btc
$467,242.00
467,866.316 0X94B008AA00579C1307B0EF2C499AD98A8CE58E58
1.0088%
22
Quickswap
0XEB51D9A39AD5EEF215DC0BF39A8821FF804A0F01-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.00
0.0000145 Btc
$464,327.00
10,110.010 0XEB51D9A39AD5EEF215DC0BF39A8821FF804A0F01
0.0218%
23
Bybit
DAI-USDT$0.9999
0.0000145 Btc
$397,993.00
398,058.390 DAI
0.8583%
24
BitMart
DAI-USDT$0.9998
0.0000145 Btc
$391,023.00
391,114.560 DAI
0.8433%
25
Camelot V3
0XAF88D065E77C8CC2239327C5EDB3A432268E5831-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.00
0.0000145 Btc
$382,902.00
382,803.075 0XAF88D065E77C8CC2239327C5EDB3A432268E5831
0.8254%
26
Hotcoin
DAI-USDT$0.9999
0.0000145 Btc
$375,980.00
376,022.393 DAI
0.8108%
27
Trader Joe V2.1 (Arbitrum)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XAF88D065E77C8CC2239327C5EDB3A432268E5831$0.9998
0.0000145 Btc
$373,030.00
373,094.074 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
0.8045%
28
Uniswap V3 (Optimism)
0X7F5C764CBC14F9669B88837CA1490CCA17C31607-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$0.9982
0.0000144 Btc
$371,212.00
371,574.863 0X7F5C764CBC14F9669B88837CA1490CCA17C31607
0.8012%
29
BitMart
ETH-DAI$1.00
0.0000145 Btc
$357,374.00
95.440 ETH
0.0002%
30
Binance
ETH-DAI$1.00
0.0000145 Btc
$337,538.00
90.199 ETH
0.0002%
31
Bitunix
DAI-USDT$0.9998
0.0000145 Btc
$333,785.00
333,827.200 DAI
0.7198%
32
Uniswap V3 (Polygon)
0X3C499C542CEF5E3811E1192CE70D8CC03D5C3359-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.00
0.0000145 Btc
$301,974.00
301,918.613 0X3C499C542CEF5E3811E1192CE70D8CC03D5C3359
0.6510%
33
XT.COM
ETH-DAI$1.00
0.0000145 Btc
$290,707.00
77.654 ETH
0.0002%
34
Coinbase Exchange
DAI-USD$1.00
0.0000145 Btc
$288,567.00
288,538.353 DAI
0.6221%
35
BitMart
DAI-USDC$0.9998
0.0000145 Btc
$275,536.00
275,589.200 DAI
0.5942%
36
Uniswap V2 (Ethereum)
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.001
0.0000145 Btc
$262,601.00
262,159.331 0X6B175474E89094C44DA98B954EEDEAC495271D0F
0.5653%
37
Uniswap V3 (Base)
0X50C5725949A6F0C72E6C4A641F24049A917DB0CB-0X833589FCD6EDB6E08F4C7C32D4F71B54BDA02913$1.00
0.0000145 Btc
$216,003.00
215,949.486 0X50C5725949A6F0C72E6C4A641F24049A917DB0CB
0.4656%
38
Pancakeswap V3 (Base)
0X50C5725949A6F0C72E6C4A641F24049A917DB0CB-0X833589FCD6EDB6E08F4C7C32D4F71B54BDA02913$1.00
0.0000145 Btc
$205,698.00
205,672.060 0X50C5725949A6F0C72E6C4A641F24049A917DB0CB
0.4435%
39
Uniswap V3 (Optimism)
0X8C6F28F2F1A3C87F0F938B96D27520D9751EC8D9-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$0.9982
0.0000144 Btc
$198,462.00
199,959.289 0X8C6F28F2F1A3C87F0F938B96D27520D9751EC8D9
0.4312%
40
Bitcointry
USDT-DAI$1.00
0.0000145 Btc
$169,123.00
169,137.111 USDT
0.3647%
41
XT.COM
BTC-DAI$1.00
0.0000145 Btc
$160,765.00
2.332 BTC
0.0000%
42
Balancer V2 (Arbitrum)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFD086BC7CD5C481DCC9C85EBE478A1C0B69FCBB9$0.9998
0.0000145 Btc
$159,549.00
159,583.306 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
0.3441%
43
Kraken
DAI-USD$0.9992
0.0000145 Btc
$151,670.00
151,797.315 DAI
0.3273%
44
Velodrome SlipStream
0X4200000000000000000000000000000000000006-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$0.9997
0.0000145 Btc
$147,112.00
39.364 0X4200000000000000000000000000000000000006
0.0001%
45
Slex
USDT-DAI$1.00
0.0000145 Btc
$145,289.00
145,305.700 USDT
0.3133%
46
Pancakeswap V3 (Base)
0X50C5725949A6F0C72E6C4A641F24049A917DB0CB-0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA$1.00
0.0000145 Btc
$132,235.00
132,226.033 0X50C5725949A6F0C72E6C4A641F24049A917DB0CB
0.2851%
47
Curve (Optimism)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0X94B008AA00579C1307B0EF2C499AD98A8CE58E58$0.9995
0.0000145 Btc
$126,905.00
126,982.711 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
0.2738%
48
Uniswap V3 (Arbitrum One)
0XAF88D065E77C8CC2239327C5EDB3A432268E5831-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.00
0.0000145 Btc
$118,243.00
118,211.066 0XAF88D065E77C8CC2239327C5EDB3A432268E5831
0.2549%
49
MEXC
DAI-USDT$1.00
0.0000145 Btc
$102,400.00
102,391.610 DAI
0.2208%
50
Balancer V2
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.001
0.0000145 Btc
$101,671.00
87,096.474 0X6B175474E89094C44DA98B954EEDEAC495271D0F
0.1878%
51
Uniswap V3 (Arbitrum One)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFF970A61A04B1CA14834A43F5DE4533EBDDB5CC8$0.9999
0.0000145 Btc
$92,254.00
92,245.069 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
0.1989%
52
Uniswap V3 (Ethereum)
0X02F92800F57BCD74066F5709F1DAA1A4302DF875-0X6B175474E89094C44DA98B954EEDEAC495271D0F$0.9951
0.0000144 Btc
$90,930.00
19,956.070 0X02F92800F57BCD74066F5709F1DAA1A4302DF875
0.0430%
53
Uniswap V3 (Ethereum)
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0X9F8F72AA9304C8B593D555F12EF6589CC3A579A2$0.9915
0.0000143 Btc
$82,418.00
82,070.904 0X6B175474E89094C44DA98B954EEDEAC495271D0F
0.1770%
54
Uniswap V3 (Optimism)
0X4200000000000000000000000000000000000006-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.001
0.0000145 Btc
$80,343.00
21.414 0X4200000000000000000000000000000000000006
0.0000%
55
Curve (Optimism)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0X7F5C764CBC14F9669B88837CA1490CCA17C31607$0.9993
0.0000145 Btc
$78,567.00
78,632.391 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
0.1695%
56
Balancer V2
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48$0.9998
0.0000145 Btc
$75,923.00
75,928.492 0X6B175474E89094C44DA98B954EEDEAC495271D0F
0.1637%
57
Tokpie
DAI-USDC$1.001
0.0000145 Btc
$71,647.00
71,588.120 DAI
0.1544%
58
Beethoven X (Optimism)
0X7F5C764CBC14F9669B88837CA1490CCA17C31607-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$0.9994
0.0000145 Btc
$67,688.00
67,678.113 0X7F5C764CBC14F9669B88837CA1490CCA17C31607
0.1459%
59
Aerodrome (Base)
0X50C5725949A6F0C72E6C4A641F24049A917DB0CB-0X833589FCD6EDB6E08F4C7C32D4F71B54BDA02913$1.00
0.0000145 Btc
$66,017.00
65,979.021 0X50C5725949A6F0C72E6C4A641F24049A917DB0CB
0.1423%
60
Beethoven X (Optimism)
0X0B2C639C533813F4AA9D7837CAF62653D097FF85-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$0.9994
0.0000145 Btc
$60,910.00
60,897.089 0X0B2C639C533813F4AA9D7837CAF62653D097FF85
0.1313%
61
BingX
DAI-USDT$0.9997
0.0000145 Btc
$59,571.00
59,544.060 DAI
0.1284%
62
Kraken
DAI-USDT$0.9998
0.0000145 Btc
$56,058.00
56,067.889 DAI
0.1209%
63
Uniswap V3 (Arbitrum One)
0X912CE59144191C1204E64559FE8253A0E49E6548-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$0.9946
0.0000144 Btc
$50,688.00
43,125.208 0X912CE59144191C1204E64559FE8253A0E49E6548
0.0930%
64
CoinEx
DAI-USDT$1.001
0.0000145 Btc
$40,396.00
40,402.910 DAI
0.0871%
65
FameEX
DAI-USDT$1.00
0.0000145 Btc
$39,926.00
39,911.341 DAI
0.0861%
66
Balancer V2 (Polygon)
0XC2132D05D31C914A87C6611C10748AEB04B58E8F-DAI$1.00
0.0000145 Btc
$38,277.00
38,283.192 0XC2132D05D31C914A87C6611C10748AEB04B58E8F
0.0825%
67
Balancer V2 (Polygon)
0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-USDT$1.00
0.0000145 Btc
$38,276.00
38,272.165 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063
0.0825%
68
Quickswap (v3)
0X3C499C542CEF5E3811E1192CE70D8CC03D5C3359-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$0.9999
0.0000145 Btc
$37,506.00
37,510.275 0X3C499C542CEF5E3811E1192CE70D8CC03D5C3359
0.0809%
69
KuCoin
USDT-DAI$1.00
0.0000145 Btc
$36,782.00
36,745.223 USDT
0.0792%
70
Bitvavo
DAI-EUR$1.003
0.0000145 Btc
$36,359.00
36,267.567 DAI
0.0782%
71
Uniswap V3 (Optimism)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0X4200000000000000000000000000000000000006$1.001
0.0000145 Btc
$34,984.00
34,856.607 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
0.0752%
72
EXMO
DAI-USDT$0.9998
0.0000145 Btc
$28,353.00
28,357.441 DAI
0.0611%
73
Uniswap V2 (Ethereum)
0X40803CEA2B2A32BDA1BE61D3604AF6A814E70976-0X6B175474E89094C44DA98B954EEDEAC495271D0F$1.00
0.0000145 Btc
$24,676.00
133,240.638 0X40803CEA2B2A32BDA1BE61D3604AF6A814E70976
0.2873%
74
SyncSwap
0X4B9EB6C0B6EA15176BBF62841C6B2A8A398CB656-0X3355DF6D4C9C3035724FD0E3914DE96A5A83AAF4$1.00
0.0000145 Btc
$23,614.00
23,618.642 0X4B9EB6C0B6EA15176BBF62841C6B2A8A398CB656
0.0509%
75
OKX
ETH-DAI$1.00
0.0000145 Btc
$23,524.00
6.301 ETH
0.0000%
76
Balancer V2
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XDAC17F958D2EE523A2206206994597C13D831EC7$1.00
0.0000145 Btc
$20,670.00
20,669.810 0X6B175474E89094C44DA98B954EEDEAC495271D0F
0.0446%
77
Uniswap V3 (Ethereum)
0X03AB458634910AAD20EF5F1C8EE96F1D6AC54919-0X6B175474E89094C44DA98B954EEDEAC495271D0F$0.9986
0.0000145 Btc
$14,542.35
5,173.955 0X03AB458634910AAD20EF5F1C8EE96F1D6AC54919
0.0112%
78
Quickswap (Polygon zkEVM)
0XA8CE8AEE21BC2A48A5EF670AFCC9274C7BBBC035-0XC5015B9D9161DCA7E18E32F6F25C4AD850731FD4$0.9994
0.0000145 Btc
$14,001.38
13,932.749 0XA8CE8AEE21BC2A48A5EF670AFCC9274C7BBBC035
0.0300%
79
PointPay
DAI-USDT$0.9998
0.0000145 Btc
$11,750.76
11,742.222 DAI
0.0253%
80
KuCoin
ETH-DAI$1.00
0.0000145 Btc
$10,533.71
2.804 ETH
0.0000%
81
Bybit
BTC-DAI$1.00
0.0000145 Btc
$10,233.79
0.148 BTC
0.0000%
82
Alien Base
0X50C5725949A6F0C72E6C4A641F24049A917DB0CB-0XD9AAEC86B65D86F6A7B5B1B0C42FFA531710B6CA$0.997
0.0000144 Btc
$9,438.30
9,453.665 0X50C5725949A6F0C72E6C4A641F24049A917DB0CB
0.0204%
83
Uniswap V3 (Arbitrum One)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFF970A61A04B1CA14834A43F5DE4533EBDDB5CC8$0.9994
0.0000145 Btc
$8,724.75
8,724.050 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
0.0188%
84
Bybit
ETH-DAI$1.00
0.0000145 Btc
$7,914.92
2.132 ETH
0.0000%
85
Bitso
BTC-DAI$1.002
0.0000145 Btc
$7,878.25
0.114 BTC
0.0000%
86
Sushiswap (Polygon POS)
0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$0.9973
0.0000144 Btc
$7,735.79
2.069 0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619
0.0000%
87
Phemex
DAI-USDT$0.9994
0.0000145 Btc
$7,171.58
7,175.980 DAI
0.0155%
88
Coinbase Exchange
ETH-DAI$1.00
0.0000145 Btc
$6,849.64
1.826 ETH
0.0000%
89
Crypto.com Exchange
DAI-USDT$0.9979
0.0000144 Btc
$5,113.22
5,123.800 DAI
0.0110%
90
Crypto.com Exchange
DAI-USD$0.9985
0.0000145 Btc
$4,690.15
4,697.200 DAI
0.0101%
91
Balancer V2 (Polygon)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-DAI$1.00
0.0000145 Btc
$4,258.67
4,257.698 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
0.0092%
92
Balancer V2 (Polygon)
0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-USDC$0.9999
0.0000145 Btc
$4,256.82
4,257.423 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063
0.0092%
93
Osmosis
IBC/0CD3A0285E1341859B5E86B6AB7682F023D03E97607CCC1DC95706411D866DF7-UOSMO$0.9987
0.0000145 Btc
$2,155.92
2,158.737 IBC/0CD3A0285E1341859B5E86B6AB7682F023D03E97607CCC1DC95706411D866DF7
0.0047%
94
Osmosis
IBC/0CD3A0285E1341859B5E86B6AB7682F023D03E97607CCC1DC95706411D866DF7-UOSMO$0.9987
0.0000145 Btc
$2,067.51
2,070.250 IBC/0CD3A0285E1341859B5E86B6AB7682F023D03E97607CCC1DC95706411D866DF7
0.0045%
95
Quickswap
0XE5417AF564E4BFDA1C483642DB72007871397896-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.001
0.0000145 Btc
$1,530.88
478.440 0XE5417AF564E4BFDA1C483642DB72007871397896
0.0010%
96
Quickswap
0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.001
0.0000145 Btc
$749.62
0.200 0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619
0.0000%
97
Balancer V1
0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48-DAI$1.00
0.0000145 Btc
$718.20
717.991 0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48
0.0015%
98
Balancer V1
0X6B175474E89094C44DA98B954EEDEAC495271D0F-USDC$0.9998
0.0000145 Btc
$717.94
718.088 0X6B175474E89094C44DA98B954EEDEAC495271D0F
0.0015%
99
SpookySwap
0X21BE370D5312F44CB42CE377BC9B8A0CEF1A4C83-0X8D11EC38A3EB5E956B052F67DA8BDC9BEF8ABF3E$0.0384
0.0000006 Btc
$554.73
681.551 0X21BE370D5312F44CB42CE377BC9B8A0CEF1A4C83
0.0015%
100
Polycat Finance
0X1BFD67037B42CF73ACF2047067BD4F2C47D9BFD6-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.00
0.0000145 Btc
$486.04
0.007 0X1BFD67037B42CF73ACF2047067BD4F2C47D9BFD6
0.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
Dai

Compiler Version
v0.6.11+commit.5ef660b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license
/**
 *Submitted for verification at Nova.Arbiscan.io on 2022-10-28
*/

// SPDX-License-Identifier: AGPL-3.0-or-later

// Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico
// Copyright (C) 2022 Dai Foundation

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity ^0.6.11;

// Improved Dai token

contract Dai {

  // --- Auth ---
  mapping (address => uint256) public wards;
  function rely(address usr) external auth {
    wards[usr] = 1;
    emit Rely(usr);
  }
  function deny(address usr) external auth {
    wards[usr] = 0;
    emit Deny(usr);
  }
  modifier auth {
    require(wards[msg.sender] == 1, "Dai/not-authorized");
    _;
  }

  // --- ERC20 Data ---
  string  public constant name     = "Dai Stablecoin";
  string  public constant symbol   = "DAI";
  string  public constant version  = "2";
  uint8   public constant decimals = 18;
  uint256 public totalSupply;

  mapping (address => uint256)                      public balanceOf;
  mapping (address => mapping (address => uint256)) public allowance;
  mapping (address => uint256)                      public nonces;

  event Approval(address indexed owner, address indexed spender, uint256 value);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Rely(address indexed usr);
  event Deny(address indexed usr);

  // --- Math ---
  function _add(uint256 x, uint256 y) internal pure returns (uint256 z) {
    require((z = x + y) >= x);
  }
  function _sub(uint256 x, uint256 y) internal pure returns (uint256 z) {
    require((z = x - y) <= x);
  }

  // --- EIP712 niceties ---
  uint256 public immutable deploymentChainId;
  bytes32 private immutable _DOMAIN_SEPARATOR;
  bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

  constructor() public {
    wards[msg.sender] = 1;
    emit Rely(msg.sender);

    uint256 chainId;
    assembly {chainId := chainid()}
    deploymentChainId = chainId;
    _DOMAIN_SEPARATOR = _calculateDomainSeparator(chainId);
  }

  function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) {
    return keccak256(
      abi.encode(
        keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
        keccak256(bytes(name)),
        keccak256(bytes(version)),
        chainId,
        address(this)
      )
    );
  }
  function DOMAIN_SEPARATOR() external view returns (bytes32) {
    uint256 chainId;
    assembly {chainId := chainid()}
    return chainId == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId);
  }

  // --- ERC20 Mutations ---
  function transfer(address to, uint256 value) external returns (bool) {
    require(to != address(0) && to != address(this), "Dai/invalid-address");
    uint256 balance = balanceOf[msg.sender];
    require(balance >= value, "Dai/insufficient-balance");

    balanceOf[msg.sender] = balance - value;
    balanceOf[to] += value;

    emit Transfer(msg.sender, to, value);

    return true;
  }
  function transferFrom(address from, address to, uint256 value) external returns (bool) {
    require(to != address(0) && to != address(this), "Dai/invalid-address");
    uint256 balance = balanceOf[from];
    require(balance >= value, "Dai/insufficient-balance");

    if (from != msg.sender) {
      uint256 allowed = allowance[from][msg.sender];
      if (allowed != type(uint256).max) {
        require(allowed >= value, "Dai/insufficient-allowance");

        allowance[from][msg.sender] = allowed - value;
      }
    }

    balanceOf[from] = balance - value;
    balanceOf[to] += value;

    emit Transfer(from, to, value);

    return true;
  }
  function approve(address spender, uint256 value) external returns (bool) {
    allowance[msg.sender][spender] = value;

    emit Approval(msg.sender, spender, value);

    return true;
  }
  function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
    uint256 newValue = _add(allowance[msg.sender][spender], addedValue);
    allowance[msg.sender][spender] = newValue;

    emit Approval(msg.sender, spender, newValue);

    return true;
  }
  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
    uint256 allowed = allowance[msg.sender][spender];
    require(allowed >= subtractedValue, "Dai/insufficient-allowance");
    allowed = allowed - subtractedValue;
    allowance[msg.sender][spender] = allowed;

    emit Approval(msg.sender, spender, allowed);

    return true;
  }

  // --- Mint/Burn ---
  function mint(address to, uint256 value) external auth {
    require(to != address(0) && to != address(this), "Dai/invalid-address");
    balanceOf[to] = balanceOf[to] + value; // note: we don't need an overflow check here b/c balanceOf[to] <= totalSupply and there is an overflow check below
    totalSupply   = _add(totalSupply, value);

    emit Transfer(address(0), to, value);
  }
  function burn(address from, uint256 value) external {
    uint256 balance = balanceOf[from];
    require(balance >= value, "Dai/insufficient-balance");

    if (from != msg.sender && wards[msg.sender] != 1) {
      uint256 allowed = allowance[from][msg.sender];
      if (allowed != type(uint256).max) {
        require(allowed >= value, "Dai/insufficient-allowance");

        allowance[from][msg.sender] = allowed - value;
      }
    }

    balanceOf[from] = balance - value; // note: we don't need overflow checks b/c require(balance >= value) and balance <= totalSupply
    totalSupply     = totalSupply - value;

    emit Transfer(from, address(0), value);
  }

  // --- Approve by signature ---
  function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external {
    require(block.timestamp <= deadline, "Dai/permit-expired");

    uint256 chainId;
    assembly {chainId := chainid()}

    bytes32 digest =
      keccak256(abi.encodePacked(
          "\x19\x01",
          chainId == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(chainId),
          keccak256(abi.encode(
            PERMIT_TYPEHASH,
            owner,
            spender,
            value,
            nonces[owner]++,
            deadline
          ))
      ));

    require(owner != address(0) && owner == ecrecover(digest, v, r, s), "Dai/invalid-permit");

    allowance[owner][spender] = value;
    emit Approval(owner, spender, value);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"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":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deploymentChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60c060405234801561001057600080fd5b503360008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a2466080819052610062816001600160e01b0361006b16565b60a0525061013f565b600060405180806114af60529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b60805160a05161133e6101716000398061077f5280610f2b52508061074a5280610e855280610ef6525061133e6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103b0578063a9059cbb146103dc578063bf353dbb14610408578063cd0d00961461042e578063d505accf14610436578063dd62ed3e1461048757610142565b806370a082311461030a5780637ecebe001461033057806395d89b41146103565780639c52a7f11461035e5780639dc29fac1461038457610142565b8063313ce5671161010a578063313ce5671461025c5780633644e5151461027a578063395093511461028257806340c10f19146102ae57806354fd4d50146102dc57806365fae35e146102e457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f6104b5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b0381351690602001356104df565b604080519115158252519081900360200190f35b61020c610534565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b0381358116916020810135909116906040013561053a565b61020c610725565b610264610740565b6040805160ff9092168252519081900360200190f35b61020c610745565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356107a5565b6102da600480360360408110156102c457600080fd5b506001600160a01b03813516906020013561082c565b005b61014f61094e565b6102da600480360360208110156102fa57600080fd5b50356001600160a01b031661096b565b61020c6004803603602081101561032057600080fd5b50356001600160a01b0316610a09565b61020c6004803603602081101561034657600080fd5b50356001600160a01b0316610a1b565b61014f610a2d565b6102da6004803603602081101561037457600080fd5b50356001600160a01b0316610a4c565b6102da6004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610ae9565b6101f0600480360360408110156103c657600080fd5b506001600160a01b038135169060200135610c7b565b6101f0600480360360408110156103f257600080fd5b506001600160a01b038135169060200135610d4c565b61020c6004803603602081101561041e57600080fd5b50356001600160a01b0316610e71565b61020c610e83565b6102da600480360360e081101561044c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610ea7565b61020c6004803603604081101561049d57600080fd5b506001600160a01b0381358116916020013516611123565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390926000805160206112e9833981519152928290030190a35060015b92915050565b60015481565b60006001600160a01b0383161580159061055d57506001600160a01b0383163014155b6105a4576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548281101561060d576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b03851633146106c7576001600160a01b038516600090815260036020908152604080832033845290915290205460001981146106c5578381101561069c576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b0380861660008181526002602090815260408083208887039055938816808352918490208054880190558351878152935191936000805160206112c9833981519152929081900390910190a3506001949350505050565b60405180605261122582396052019050604051809103902081565b601281565b6000467f0000000000000000000000000000000000000000000000000000000000000000811461077d5761077881611140565b61079f565b7f00000000000000000000000000000000000000000000000000000000000000005b91505090565b3360009081526003602090815260408083206001600160a01b038616845290915281205481906107d59084611214565b3360008181526003602090815260408083206001600160a01b038a16808552908352928190208590558051858152905194955091936000805160206112e98339815191529281900390910190a35060019392505050565b33600090815260208190526040902054600114610885576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038216158015906108a657506001600160a01b0382163014155b6108ed576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090208054820190556001546109189082611214565b6001556040805182815290516001600160a01b038416916000916000805160206112c98339815191529181900360200190a35050565b604051806040016040528060018152602001601960f91b81525081565b336000908152602081905260409020546001146109c4576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610aa5576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526002602052604090205481811015610b52576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0383163314801590610b7b575033600090815260208190526040902054600114155b15610c2a576001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610c285782811015610bff576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b03831660008181526002602090815260408083208686039055600180548790039055805186815290519293926000805160206112c9833981519152929181900390910190a3505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610cf1576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b3360008181526003602090815260408083206001600160a01b038916808552908352928190209487900394859055805185815290519293926000805160206112e9833981519152929181900390910190a35060019392505050565b60006001600160a01b03831615801590610d6f57506001600160a01b0383163014155b610db6576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b3360009081526002602052604090205482811015610e16576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b33600081815260026020908152604080832087860390556001600160a01b03881680845292819020805488019055805187815290519293926000805160206112c9833981519152929181900390910190a35060019392505050565b60006020819052908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b83421115610ef1576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b4660007f00000000000000000000000000000000000000000000000000000000000000008214610f2957610f2482611140565b610f4b565b7f00000000000000000000000000000000000000000000000000000000000000005b6040518060526112258239604080519182900360520182206001600160a01b03808f166000818152600460209081529085902080546001810190915581870194909452858501829052918f166060860152608085018e905260a085019290925260c08085018d90528351808603909101815260e08501845280519082012061190160f01b6101008601526101028501969096526101228085019690965282518085039096018652610142909301909152835193909101929092209250501580159061108757506040805160008152602080820180845284905260ff8816828401526060820187905260808201869052915160019260a0808401939192601f1981019281900390910190855afa158015611068573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b6110cd576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600360209081526040808320948d16808452948252918290208b905581518b815291516000805160206112e98339815191529281900390910190a3505050505050505050565b600360209081526000928352604080842090915290825290205481565b6000604051808061127760529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b8082018281101561052e57600080fdfe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db5264736f6c634300060b0033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103b0578063a9059cbb146103dc578063bf353dbb14610408578063cd0d00961461042e578063d505accf14610436578063dd62ed3e1461048757610142565b806370a082311461030a5780637ecebe001461033057806395d89b41146103565780639c52a7f11461035e5780639dc29fac1461038457610142565b8063313ce5671161010a578063313ce5671461025c5780633644e5151461027a578063395093511461028257806340c10f19146102ae57806354fd4d50146102dc57806365fae35e146102e457610142565b806306fdde0314610147578063095ea7b3146101c457806318160ddd1461020457806323b872dd1461021e57806330adf81f14610254575b600080fd5b61014f6104b5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b0381351690602001356104df565b604080519115158252519081900360200190f35b61020c610534565b60408051918252519081900360200190f35b6101f06004803603606081101561023457600080fd5b506001600160a01b0381358116916020810135909116906040013561053a565b61020c610725565b610264610740565b6040805160ff9092168252519081900360200190f35b61020c610745565b6101f06004803603604081101561029857600080fd5b506001600160a01b0381351690602001356107a5565b6102da600480360360408110156102c457600080fd5b506001600160a01b03813516906020013561082c565b005b61014f61094e565b6102da600480360360208110156102fa57600080fd5b50356001600160a01b031661096b565b61020c6004803603602081101561032057600080fd5b50356001600160a01b0316610a09565b61020c6004803603602081101561034657600080fd5b50356001600160a01b0316610a1b565b61014f610a2d565b6102da6004803603602081101561037457600080fd5b50356001600160a01b0316610a4c565b6102da6004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610ae9565b6101f0600480360360408110156103c657600080fd5b506001600160a01b038135169060200135610c7b565b6101f0600480360360408110156103f257600080fd5b506001600160a01b038135169060200135610d4c565b61020c6004803603602081101561041e57600080fd5b50356001600160a01b0316610e71565b61020c610e83565b6102da600480360360e081101561044c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135610ea7565b61020c6004803603604081101561049d57600080fd5b506001600160a01b0381358116916020013516611123565b6040518060400160405280600e81526020016d2230b49029ba30b13632b1b7b4b760911b81525081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390926000805160206112e9833981519152928290030190a35060015b92915050565b60015481565b60006001600160a01b0383161580159061055d57506001600160a01b0383163014155b6105a4576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b0384166000908152600260205260409020548281101561060d576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b03851633146106c7576001600160a01b038516600090815260036020908152604080832033845290915290205460001981146106c5578381101561069c576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b0380861660008181526002602090815260408083208887039055938816808352918490208054880190558351878152935191936000805160206112c9833981519152929081900390910190a3506001949350505050565b60405180605261122582396052019050604051809103902081565b601281565b6000467f000000000000000000000000000000000000000000000000000000000000a4ba811461077d5761077881611140565b61079f565b7f0ae683d31980dfc7ea418b48aaaa6811348e3e2118d7c8614bb7456ec780f6605b91505090565b3360009081526003602090815260408083206001600160a01b038616845290915281205481906107d59084611214565b3360008181526003602090815260408083206001600160a01b038a16808552908352928190208590558051858152905194955091936000805160206112e98339815191529281900390910190a35060019392505050565b33600090815260208190526040902054600114610885576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038216158015906108a657506001600160a01b0382163014155b6108ed576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090208054820190556001546109189082611214565b6001556040805182815290516001600160a01b038416916000916000805160206112c98339815191529181900360200190a35050565b604051806040016040528060018152602001601960f91b81525081565b336000908152602081905260409020546001146109c4576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b60026020526000908152604090205481565b60046020526000908152604090205481565b6040518060400160405280600381526020016244414960e81b81525081565b33600090815260208190526040902054600114610aa5576040805162461bcd60e51b815260206004820152601260248201527111185a4bdb9bdd0b585d5d1a1bdc9a5e995960721b604482015290519081900360640190fd5b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b03821660009081526002602052604090205481811015610b52576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b6001600160a01b0383163314801590610b7b575033600090815260208190526040902054600114155b15610c2a576001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610c285782811015610bff576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b03831660008181526002602090815260408083208686039055600180548790039055805186815290519293926000805160206112c9833981519152929181900390910190a3505050565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610cf1576040805162461bcd60e51b815260206004820152601a6024820152794461692f696e73756666696369656e742d616c6c6f77616e636560301b604482015290519081900360640190fd5b3360008181526003602090815260408083206001600160a01b038916808552908352928190209487900394859055805185815290519293926000805160206112e9833981519152929181900390910190a35060019392505050565b60006001600160a01b03831615801590610d6f57506001600160a01b0383163014155b610db6576040805162461bcd60e51b81526020600482015260136024820152724461692f696e76616c69642d6164647265737360681b604482015290519081900360640190fd5b3360009081526002602052604090205482811015610e16576040805162461bcd60e51b81526020600482015260186024820152774461692f696e73756666696369656e742d62616c616e636560401b604482015290519081900360640190fd5b33600081815260026020908152604080832087860390556001600160a01b03881680845292819020805488019055805187815290519293926000805160206112c9833981519152929181900390910190a35060019392505050565b60006020819052908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000a4ba81565b83421115610ef1576040805162461bcd60e51b815260206004820152601260248201527111185a4bdc195c9b5a5d0b595e1c1a5c995960721b604482015290519081900360640190fd5b4660007f000000000000000000000000000000000000000000000000000000000000a4ba8214610f2957610f2482611140565b610f4b565b7f0ae683d31980dfc7ea418b48aaaa6811348e3e2118d7c8614bb7456ec780f6605b6040518060526112258239604080519182900360520182206001600160a01b03808f166000818152600460209081529085902080546001810190915581870194909452858501829052918f166060860152608085018e905260a085019290925260c08085018d90528351808603909101815260e08501845280519082012061190160f01b6101008601526101028501969096526101228085019690965282518085039096018652610142909301909152835193909101929092209250501580159061108757506040805160008152602080820180845284905260ff8816828401526060820187905260808201869052915160019260a0808401939192601f1981019281900390910190855afa158015611068573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b0316145b6110cd576040805162461bcd60e51b815260206004820152601260248201527111185a4bda5b9d985b1a590b5c195c9b5a5d60721b604482015290519081900360640190fd5b6001600160a01b03808a166000818152600360209081526040808320948d16808452948252918290208b905581518b815291516000805160206112e98339815191529281900390910190a3505050505050505050565b600360209081526000928352604080842090915290825290205481565b6000604051808061127760529139604080519182900360520182208282018252600e83526d2230b49029ba30b13632b1b7b4b760911b6020938401528151808301835260018152601960f91b908401528151808401919091527f0b1461ddc0c1d5ded79a1db0f74dae949050a7c0b28728c724b24958c27a328b818301527fad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a56060820152608081018690523060a0808301919091528251808303909101815260c09091019091528051910120915050919050565b8082018281101561052e57600080fdfe5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a2646970667358221220c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db5264736f6c634300060b0033

Deployed ByteCode Sourcemap

881:6368:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4401:194;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4401:194:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1457:26;;;:::i;:::-;;;;;;;;;;;;;;;;3726:671;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3726:671:0;;;;;;;;;;;;;;;;;:::i;2304:137::-;;;:::i;1415:37::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3061:224;;;:::i;4599:289::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4599:289:0;;;;;;;;:::i;5309:391::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5309:391:0;;;;;;;;:::i;:::-;;1372:38;;;:::i;966:89::-;;;;;;;;;;;;;;;;-1:-1:-1;966:89:0;-1:-1:-1;;;;;966:89:0;;:::i;1490:66::-;;;;;;;;;;;;;;;;-1:-1:-1;1490:66:0;-1:-1:-1;;;;;1490:66:0;;:::i;1632:63::-;;;;;;;;;;;;;;;;-1:-1:-1;1632:63:0;-1:-1:-1;;;;;1632:63:0;;:::i;1327:40::-;;;:::i;1059:89::-;;;;;;;;;;;;;;;;-1:-1:-1;1059:89:0;-1:-1:-1;;;;;1059:89:0;;:::i;5704:683::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5704:683:0;;;;;;;;:::i;4892:387::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4892:387:0;;;;;;;;:::i;3321:401::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3321:401:0;;;;;;;;:::i;920:41::-;;;;;;;;;;;;;;;;-1:-1:-1;920:41:0;-1:-1:-1;;;;;920:41:0;;:::i;2209:42::-;;;:::i;6428:818::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6428:818:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1561:66::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1561:66:0;;;;;;;;;;:::i;1271:51::-;;;;;;;;;;;;;;-1:-1:-1;;;1271:51:0;;;;:::o;4401:194::-;4491:10;4468:4;4481:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4481:30:0;;;;;;;;;;;:38;;;4533:36;;;;;;;4468:4;;4481:30;;4491:10;;-1:-1:-1;;;;;;;;;;;4533:36:0;;;;;;;-1:-1:-1;4585:4:0;4401:194;;;;;:::o;1457:26::-;;;;:::o;3726:671::-;3807:4;-1:-1:-1;;;;;3828:16:0;;;;;;:39;;-1:-1:-1;;;;;;3848:19:0;;3862:4;3848:19;;3828:39;3820:71;;;;;-1:-1:-1;;;3820:71:0;;;;;;;;;;;;-1:-1:-1;;;3820:71:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3916:15:0;;3898;3916;;;:9;:15;;;;;;3946:16;;;;3938:53;;;;;-1:-1:-1;;;3938:53:0;;;;;;;;;;;;-1:-1:-1;;;3938:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4004:18:0;;4012:10;4004:18;4000:262;;-1:-1:-1;;;;;4051:15:0;;4033;4051;;;:9;:15;;;;;;;;4067:10;4051:27;;;;;;;;-1:-1:-1;;4091:28:0;;4087:168;;4151:5;4140:7;:16;;4132:55;;;;;-1:-1:-1;;;4132:55:0;;;;;;;;;;;;-1:-1:-1;;;4132:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4200:15:0;;;;;;:9;:15;;;;;;;;4216:10;4200:27;;;;;;;4230:15;;;4200:45;;4087:168;4000:262;;-1:-1:-1;;;;;4270:15:0;;;;;;;:9;:15;;;;;;;;4288;;;4270:33;;4310:13;;;;;;;;;;:22;;;;;;4346:25;;;;;;;4310:13;;-1:-1:-1;;;;;;;;;;;4346:25:0;;;;;;;;;;-1:-1:-1;4387:4:0;;3726:671;-1:-1:-1;;;;3726:671:0:o;2304:137::-;2346:95;;;;;;;;;;;;;;;;;;2304:137;:::o;1415:37::-;1450:2;1415:37;:::o;3061:224::-;3112:7;3171:9;3205:17;3194:28;;:85;;3245:34;3271:7;3245:25;:34::i;:::-;3194:85;;;3225:17;3194:85;3187:92;;;3061:224;:::o;4599:289::-;4728:10;4681:4;4718:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4718:30:0;;;;;;;;;;4681:4;;4713:48;;4750:10;4713:4;:48::i;:::-;4778:10;4768:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;4768:30:0;;;;;;;;;;;;:41;;;4823:39;;;;;;;4694:67;;-1:-1:-1;4768:30:0;;-1:-1:-1;;;;;;;;;;;4823:39:0;;;;;;;;;-1:-1:-1;4878:4:0;;4599:289;-1:-1:-1;;;4599:289:0:o;5309:391::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5379:16:0;::::1;::::0;;::::1;::::0;:39:::1;;-1:-1:-1::0;;;;;;5399:19:0;::::1;5413:4;5399:19;;5379:39;5371:71;;;::::0;;-1:-1:-1;;;5371:71:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5371:71:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5465:13:0;::::1;;::::0;;;:9:::1;:13;::::0;;;;;;:21;::::1;5449:37:::0;;-1:-1:-1;5630:11:0;5625:24:::1;::::0;5481:5;5625:4:::1;:24::i;:::-;5609:11;:40:::0;5663:31:::1;::::0;;;;;;;-1:-1:-1;;;;;5663:31:0;::::1;::::0;5680:1:::1;::::0;-1:-1:-1;;;;;;;;;;;5663:31:0;;;;::::1;::::0;;::::1;5309:391:::0;;:::o;1372:38::-;;;;;;;;;;;;;;-1:-1:-1;;;1372:38:0;;;;:::o;966:89::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1014:10:0;::::1;:5;:10:::0;;;::::1;::::0;;;;;;;1027:1:::1;1014:14:::0;;1040:9;::::1;::::0;1014:5;1040:9:::1;966:89:::0;:::o;1490:66::-;;;;;;;;;;;;;:::o;1632:63::-;;;;;;;;;;;;;:::o;1327:40::-;;;;;;;;;;;;;;-1:-1:-1;;;1327:40:0;;;;:::o;1059:89::-;1187:10;1181:5;:17;;;;;;;;;;;1202:1;1181:22;1173:53;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;-1:-1:-1;;;1173:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1107:10:0;::::1;1120:1;1107:10:::0;;;::::1;::::0;;;;;;;:14;;;1133:9;::::1;::::0;1120:1;1133:9:::1;1059:89:::0;:::o;5704:683::-;-1:-1:-1;;;;;5781:15:0;;5763;5781;;;:9;:15;;;;;;5811:16;;;;5803:53;;;;;-1:-1:-1;;;5803:53:0;;;;;;;;;;;;-1:-1:-1;;;5803:53:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5869:18:0;;5877:10;5869:18;;;;:44;;-1:-1:-1;5897:10:0;5891:5;:17;;;;;;;;;;;5912:1;5891:22;;5869:44;5865:288;;;-1:-1:-1;;;;;5942:15:0;;5924;5942;;;:9;:15;;;;;;;;5958:10;5942:27;;;;;;;;-1:-1:-1;;5982:28:0;;5978:168;;6042:5;6031:7;:16;;6023:55;;;;;-1:-1:-1;;;6023:55:0;;;;;;;;;;;;-1:-1:-1;;;6023:55:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6091:15:0;;;;;;:9;:15;;;;;;;;6107:10;6091:27;;;;;;;6121:15;;;6091:45;;5978:168;5865:288;;-1:-1:-1;;;;;6161:15:0;;;;;;:9;:15;;;;;;;;6179;;;6161:33;;6315:11;;;:19;;;6297:37;;6348:33;;;;;;;6161:15;;;-1:-1:-1;;;;;;;;;;;6348:33:0;;;;;;;;;;5704:683;;;:::o;4892:387::-;5020:10;4979:4;5010:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;5010:30:0;;;;;;;;;;5055:26;;;;5047:65;;;;;-1:-1:-1;;;5047:65:0;;;;;;;;;;;;-1:-1:-1;;;5047:65:0;;;;;;;;;;;;;;;5171:10;5161:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;5161:30:0;;;;;;;;;;;;5129:25;;;;5161:40;;;;5215:38;;;;;;;5161:30;;5171:10;-1:-1:-1;;;;;;;;;;;5215:38:0;;;;;;;;;;-1:-1:-1;5269:4:0;;4892:387;-1:-1:-1;;;4892:387:0:o;3321:401::-;3384:4;-1:-1:-1;;;;;3405:16:0;;;;;;:39;;-1:-1:-1;;;;;;3425:19:0;;3439:4;3425:19;;3405:39;3397:71;;;;;-1:-1:-1;;;3397:71:0;;;;;;;;;;;;-1:-1:-1;;;3397:71:0;;;;;;;;;;;;;;;3503:10;3475:15;3493:21;;;:9;:21;;;;;;3529:16;;;;3521:53;;;;;-1:-1:-1;;;3521:53:0;;;;;;;;;;;;-1:-1:-1;;;3521:53:0;;;;;;;;;;;;;;;3593:10;3583:21;;;;:9;:21;;;;;;;;3607:15;;;3583:39;;-1:-1:-1;;;;;3629:13:0;;;;;;;;;:22;;;;;;3665:31;;;;;;;3629:13;;3593:10;-1:-1:-1;;;;;;;;;;;3665:31:0;;;;;;;;;;-1:-1:-1;3712:4:0;;3321:401;-1:-1:-1;;;3321:401:0:o;920:41::-;;;;;;;;;;;;;;:::o;2209:42::-;;;:::o;6428:818::-;6583:8;6564:15;:27;;6556:58;;;;;-1:-1:-1;;;6556:58:0;;;;;;;;;;;;-1:-1:-1;;;6556:58:0;;;;;;;;;;;;;;;6666:9;6623:15;6781:17;6770:28;;:85;;6821:34;6847:7;6821:25;:34::i;:::-;6770:85;;;6801:17;6770:85;2346:95;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6995:13:0;;;;;;;:6;:13;;;;;;;;:15;;;;;;;;6878:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6868:179;;;;;;-1:-1:-1;;;6718:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6708:349;;;;;;;;;;;-1:-1:-1;;7074:19:0;;;;:58;;-1:-1:-1;7106:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7106:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7097:35:0;:5;-1:-1:-1;;;;;7097:35:0;;7074:58;7066:89;;;;;-1:-1:-1;;;7066:89:0;;;;;;;;;;;;-1:-1:-1;;;7066:89:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7164:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;7209:31;;;;;;;-1:-1:-1;;;;;;;;;;;7209:31:0;;;;;;;;;6428:818;;;;;;;;;:::o;1561:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2693:364::-;2767:7;2829:95;;;;;;;;;;;;;;;;;;;2951:4;;;;;;;;-1:-1:-1;;;2951:4:0;;;;;2984:7;;;;;;;;;;-1:-1:-1;;;2984:7:0;;;;2808:236;;;;;;;;;2935:22;2808:236;;;;2968:25;2808:236;;;;;;;;;;3030:4;2808:236;;;;;;;;;;;;;;;;;;;;;;;;;2790:261;;;;;;-1:-1:-1;;2693:364:0;;;:::o;1953:108::-;2043:5;;;2038:16;;;;2030:25;;;;

Metadata Hash

ipfs://c10a8f863458f6eaf33751a084e6c9f731275ed9c3b4b35baeb97c5150f7db52
Loading