Contract 0xfed67cc40e9c5934f157221169d772b328cb138e 6

 
Txn Hash Method
Block
From
To
Value
0xdc3e6bc2e904583a8ab9822c237ac100345655aaa044e3615a6577a1fc8fa312Claim Velo Rewar...1062172262023-06-29 10:07:0991 days 4 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0000227864430.000000627
0xef03bef32390165ba838f4ad2c227b1b12e9787587bc5e194e96d0cf15112e4dClaim Velo Rewar...1061988192023-06-28 23:53:3591 days 14 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.000022377960.000000156
0xd98a82d62d38afe569c3243fdc5bcf8ce6a14486bdea96c9339e9303a4d3bbdaClaim Velo Rewar...1059890542023-06-24 3:21:2596 days 11 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.000017027610.000000059
0x9d863b841a4e78316b7ac84f566669ceb1021ddcaacaf4dba9b6d74f43aa91e2Claim Velo Rewar...1056994942023-06-17 10:29:25103 days 4 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0000192227190.000000076
0x4cea4a9ccd9888e697a59a68b68a1f7efb6f1000ac5c4426029e21574683bd13Claim Velo Rewar...1054989672023-06-12 19:05:11107 days 19 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0003717789961.000000061
0xdd713e6ac390f64216053ce7f0b947a980c1b4c460cc2966f02b197b93d587efClaim Velo Rewar...1053694292023-06-09 19:07:15110 days 19 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0003971372341.000000195
0x3cbfd08f3966dab74eb47f62a144aeaa8cfe36070e98871419e34c412c2900e8Claim Velo Rewar...1039059082023-06-02 15:39:24117 days 22 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0001551570260.001
0xf3b37918d5e50a1b205d0f36bb73f352b3e1ed12a9c87be87251705843427f37Claim Velo Rewar...1021212462023-05-27 19:14:29123 days 19 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0000956873780.001
0x5bd4b1b449615d0fe3f0592028816c427abbc5523e9abdb8f7552b6f1e560513Claim Velo Rewar...1014376612023-05-25 15:13:00125 days 23 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0002142557830.001
0x0eeb4596f10206e43ac8a0884af8d1a9932d818c2e1f0061f232f00666786b21Claim Velo Rewar...997888922023-05-19 16:36:05131 days 21 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0002008878190.001
0xbdcd61f2d94e67dfe1f9fcbbe181c488c8d39b18a948504c77afd8b471c44006Claim Velo Rewar...977867652023-05-12 19:37:40138 days 18 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0002970091250.001048154
0x4846829e19bc4691750c0de8d43812900106d97d3ab6e242eca8a7b96150f8dfClaim Velo Rewar...965552092023-05-05 18:43:01145 days 19 hrs ago0xec092c15e8d5a48a77cde36827f8e228ce39471a IN  Inverse Finance: Velo Fed0 ETH0.0006297193280.001005971
0xd1cbdc2a4352011408d8eaacbbf9fd22336f542acadb497f9a5ef2fc35420c4cClaim Velo Rewar...950861162023-04-28 19:23:48152 days 19 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001423601310.001
0x7791a1f2baa44472c47887e4b8afc72569c2a72387c5cbcf3b6e8fd8d2dc186eClaim Velo Rewar...928934812023-04-21 14:08:43160 days 26 mins ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001306393860.001
0x05ee98067a42cdf66494c6a1e31eda5b3b8a35f1b7b37c6d785182c715528df4Claim Velo Rewar...904088242023-04-14 17:42:43166 days 20 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.000102972220.001
0x7e91e60f19ef195c7d8aa0292803a545478e92c8bd8d97ec427f7bae3b316ad6Claim Velo Rewar...904077412023-04-14 17:36:58166 days 20 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001025062370.001
0xa8fec6173bb118a7309e55bd982aa6afc7929038110655601002f8f23135d744Claim Velo Rewar...873487792023-04-07 16:47:04173 days 21 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0000968529560.001
0x3033f65bdd5c92d0194b7801eef6c56bff886f90b4cb2101ff1fecb6117ed9efClaim Velo Rewar...870100882023-04-06 18:46:35174 days 19 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001147467760.001
0x498d11029d761362cac6225e0da7ecc025c6f3668c533ef10b088802f8e1f225Claim Velo Rewar...852404842023-03-31 20:49:02180 days 17 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0000971290420.001
0xe81cb2183ad29641e8eb195c9f1b8434ac20fbca9a1d50b06d2bc1df0b319282Claim Velo Rewar...834419852023-03-24 17:14:18187 days 21 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001084899950.001
0x62f262e08098bbf3f7cba1b38ae724eba09b0f3b4b5f2c8862d44d9e54f0b79eClaim Velo Rewar...816864722023-03-17 15:31:45194 days 23 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.000098513870.001
0x96ea1f44436d96e9ce7118cda5f3394d379819cfa3e80d1ba0b21c9434ac96a4Claim Velo Rewar...798405032023-03-10 14:43:41201 days 23 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001581585870.001
0x0114307efd93de9237088f57c6344b487542d6916f13512433e7ec3df143aa09Claim Velo Rewar...784354082023-03-03 17:29:24208 days 21 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001857918630.001
0xac286bd6bdb59f36dc4ec7a29e6f58c6115059bd1aa1927d3ebbc68a32c0920aClaim Velo Rewar...767675992023-02-24 18:10:21215 days 20 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001154329020.001
0xce35f47753aa578fa38ec03a720bf0d6a44de8fbe0cbcd5c9fa0ec5be87607cbClaim Velo Rewar...750261682023-02-17 19:28:55222 days 19 hrs ago0x962228a90eac69238c7d1f216d80037e61ea9255 IN  Inverse Finance: Velo Fed0 ETH0.0001448643450.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xfc73d6e331e3a7af5b257ec0ee9702091bd31fbec1718f8fed0354bc10223c511062183172023-06-29 10:43:3191 days 3 hrs ago Inverse Finance: Velo FedOptimism Bridge0 ETH
0xfc73d6e331e3a7af5b257ec0ee9702091bd31fbec1718f8fed0354bc10223c511062183172023-06-29 10:43:3191 days 3 hrs ago Inverse Finance: Velo FedOptimism Bridge0 ETH
0xfc73d6e331e3a7af5b257ec0ee9702091bd31fbec1718f8fed0354bc10223c511062183172023-06-29 10:43:3191 days 3 hrs ago Inverse Finance: Velo Fed 0x7f5c764cbc14f9669b88837ca1490cca17c316070 ETH
0xfc73d6e331e3a7af5b257ec0ee9702091bd31fbec1718f8fed0354bc10223c511062183172023-06-29 10:43:3191 days 3 hrs ago Inverse Finance: Velo Fed InverseFinance: DOLA Token0 ETH
0xfc73d6e331e3a7af5b257ec0ee9702091bd31fbec1718f8fed0354bc10223c511062183172023-06-29 10:43:3191 days 3 hrs ago 0x9f9fa2c6b432689dcd4e3ad55f86fde6c03694ee Inverse Finance: Velo Fed0 ETH
0xd9b67ba24556a17d956fe36887073a60b5e72c830b39795b62546b775ebbc12d1062181352023-06-29 10:37:2791 days 3 hrs ago Inverse Finance: Velo Fed 0xa132dab612db5cb9fc9ac426a0cc215a3423f9c90 ETH
0xd9b67ba24556a17d956fe36887073a60b5e72c830b39795b62546b775ebbc12d1062181352023-06-29 10:37:2791 days 3 hrs ago Inverse Finance: Velo Fed 0x6c5019d345ec05004a7e7b0623a91a0d9b8d590d0 ETH
0xd9b67ba24556a17d956fe36887073a60b5e72c830b39795b62546b775ebbc12d1062181352023-06-29 10:37:2791 days 3 hrs ago Inverse Finance: Velo Fed 0xafd2c84b9d1cd50e7e18a55e419749a6c9055e1f0 ETH
0xd9b67ba24556a17d956fe36887073a60b5e72c830b39795b62546b775ebbc12d1062181352023-06-29 10:37:2791 days 3 hrs ago Inverse Finance: Velo Fed 0xafd2c84b9d1cd50e7e18a55e419749a6c9055e1f0 ETH
0xd9b67ba24556a17d956fe36887073a60b5e72c830b39795b62546b775ebbc12d1062181352023-06-29 10:37:2791 days 3 hrs ago Inverse Finance: Velo Fed 0xa132dab612db5cb9fc9ac426a0cc215a3423f9c90 ETH
0xd9b67ba24556a17d956fe36887073a60b5e72c830b39795b62546b775ebbc12d1062181352023-06-29 10:37:2791 days 3 hrs ago Inverse Finance: Velo Fed 0xa132dab612db5cb9fc9ac426a0cc215a3423f9c90 ETH
0xd9b67ba24556a17d956fe36887073a60b5e72c830b39795b62546b775ebbc12d1062181352023-06-29 10:37:2791 days 3 hrs ago Inverse Finance: Velo Fed 0xa132dab612db5cb9fc9ac426a0cc215a3423f9c90 ETH
0xd9b67ba24556a17d956fe36887073a60b5e72c830b39795b62546b775ebbc12d1062181352023-06-29 10:37:2791 days 3 hrs ago 0x9f9fa2c6b432689dcd4e3ad55f86fde6c03694ee Inverse Finance: Velo Fed0 ETH
0xdc3e6bc2e904583a8ab9822c237ac100345655aaa044e3615a6577a1fc8fa3121062172262023-06-29 10:07:0991 days 4 hrs ago Inverse Finance: Velo Fed Velodrome Finance: VELO Token0 ETH
0xdc3e6bc2e904583a8ab9822c237ac100345655aaa044e3615a6577a1fc8fa3121062172262023-06-29 10:07:0991 days 4 hrs ago Inverse Finance: Velo Fed Velodrome Finance: VELO Token0 ETH
0xdc3e6bc2e904583a8ab9822c237ac100345655aaa044e3615a6577a1fc8fa3121062172262023-06-29 10:07:0991 days 4 hrs ago Inverse Finance: Velo Fed 0xafd2c84b9d1cd50e7e18a55e419749a6c9055e1f0 ETH
0xef03bef32390165ba838f4ad2c227b1b12e9787587bc5e194e96d0cf15112e4d1061988192023-06-28 23:53:3591 days 14 hrs ago Inverse Finance: Velo Fed Velodrome Finance: VELO Token0 ETH
0xef03bef32390165ba838f4ad2c227b1b12e9787587bc5e194e96d0cf15112e4d1061988192023-06-28 23:53:3591 days 14 hrs ago Inverse Finance: Velo Fed Velodrome Finance: VELO Token0 ETH
0xef03bef32390165ba838f4ad2c227b1b12e9787587bc5e194e96d0cf15112e4d1061988192023-06-28 23:53:3591 days 14 hrs ago Inverse Finance: Velo Fed 0xafd2c84b9d1cd50e7e18a55e419749a6c9055e1f0 ETH
0xbb4781461a999f562dc04b924bf4c270d70bb57ab2e28ff76b40b634b86029221060593352023-06-25 18:24:0794 days 20 hrs ago Inverse Finance: Velo FedOptimism Bridge0 ETH
0xbb4781461a999f562dc04b924bf4c270d70bb57ab2e28ff76b40b634b86029221060593352023-06-25 18:24:0794 days 20 hrs ago Inverse Finance: Velo Fed InverseFinance: DOLA Token0 ETH
0xbb4781461a999f562dc04b924bf4c270d70bb57ab2e28ff76b40b634b86029221060593352023-06-25 18:24:0794 days 20 hrs ago 0x9f9fa2c6b432689dcd4e3ad55f86fde6c03694ee Inverse Finance: Velo Fed0 ETH
0xb86dd5eecfea57c32fd175dfee2b0a658cd621b68347018d752ee38817fcbbdb1060561802023-06-25 16:38:5794 days 21 hrs ago Inverse Finance: Velo Fed 0xa132dab612db5cb9fc9ac426a0cc215a3423f9c90 ETH
0xb86dd5eecfea57c32fd175dfee2b0a658cd621b68347018d752ee38817fcbbdb1060561802023-06-25 16:38:5794 days 21 hrs ago Inverse Finance: Velo Fed 0x7f5c764cbc14f9669b88837ca1490cca17c316070 ETH
0xb86dd5eecfea57c32fd175dfee2b0a658cd621b68347018d752ee38817fcbbdb1060561802023-06-25 16:38:5794 days 21 hrs ago Inverse Finance: Velo Fed 0xa132dab612db5cb9fc9ac426a0cc215a3423f9c90 ETH
[ Download CSV Export 
Latest 25 Deposits
L2 Txn Hash L1 Deposit Txn Value Token
0x6c61dd06e7ce0f05b1f84976145d9ecf69ae165bba78cd5dab2c7bc60e314b832023-04-10 13:46:11171 days 48 mins ago0x40f6d86b0a4e4d2d39a9199ec337fe64e5318af21ceb9792a42f8b87bed1f2b41,000,000 Dola USD Sta... (DOLA)
0xe9b8f0252f243830eb3d972906469d3fa4cb1efa04d7990928e8c0ef279fb4792023-04-05 19:33:50175 days 19 hrs ago0xae218093d058889f5e09dd13a7e10b33d2597f701d8c5c95a68140c2ad9f9ae51,000,000 Dola USD Sta... (DOLA)
0xe4ba9245acdfae98d06a58e5059b3ca440da445a7d78c5fad8d598621a7e73432023-02-21 22:39:42218 days 15 hrs ago0x9f62841b158c4baf1b7cb37fb0011ce4f6d12a8b8150495924069751700be9102,171,868.638132 USD Coin (Br... (USDC.e)
0x24e6b1cfb901bef078fcdab1d5ec08cffe866ac7535892a3dc7a56bf55ec633c2023-02-21 22:39:42218 days 15 hrs ago0x9f62841b158c4baf1b7cb37fb0011ce4f6d12a8b8150495924069751700be9102,524,000 Dola USD Sta... (DOLA)
0x48ea303b912410923adb7ea0bca5d21eb7f29bb345375cfe8ff4fd33675d9ec12023-02-21 14:34:36219 days ago0xe4a4d60c9245e0264e934e35022589e84c377f720a08a40ad2c4f209c9fb79473,500,000 Dola USD Sta... (DOLA)
0xcc1a328b8e9f585bb7b3005b616e9f065b86f933254de2c98d01563be5ebeb322023-02-17 4:02:45223 days 10 hrs ago0x3cf972f01a8ab9aaef17338977bb3e8f2cf9f37a35216dbe7abf5050893f9e903,000,000 Dola USD Sta... (DOLA)
0x827d17cebe13641a6908c048147ee1189c3bccf1cb97aa93b4c9e02163316bfd2023-02-17 3:52:25223 days 10 hrs ago0x9d1203adb6e68d0eb4bdc43814193946eb1f3749f3080651a872389f8d1243a11,496,685.446189 USD Coin (Br... (USDC.e)
0xce7299943f1a0ad4826686f93a9622c097f476f1e11ab047cfbd781cb0ab363c2023-02-17 3:52:25223 days 10 hrs ago0x9d1203adb6e68d0eb4bdc43814193946eb1f3749f3080651a872389f8d1243a11,500,000 Dola USD Sta... (DOLA)
0xb6902f97ebf6a71a9b5ac9eb63797597896697425ffdb7c7c1b60e309debef932023-02-06 19:37:14233 days 18 hrs ago0x18ef7d8f2b2e94a3ab9bb5bc34bf97409c6a3290e650ece52eb99b0ea62b43b22,000,000 Dola USD Sta... (DOLA)
0x1dd6867915a869095d87d538a0a44dfb7d14e89d929b02f867e63fa44380e2502023-02-06 18:29:01233 days 20 hrs ago0x1bd62a5f67c2de73fa248455662f273effffeac31ae1f4f1ab34fb9a8af5c31a998,693.17385 USD Coin (Br... (USDC.e)
0x07012479199d91e985a3c86ca16aa9fd9c919ca65b25badbec1cb3a491c638982023-02-06 18:29:01233 days 20 hrs ago0x1bd62a5f67c2de73fa248455662f273effffeac31ae1f4f1ab34fb9a8af5c31a1,000,000 Dola USD Sta... (DOLA)
0x090b4f1d9ea9014bb3e867e0abebf1fcc0bad956fa5918783069ea4c2019dbc72023-02-01 14:40:08238 days 23 hrs ago0x252969f9d2cf108cd6ddc328a0d98b160a0e11c1c395b345011e4445199fa5f3600,000 Dola USD Sta... (DOLA)
0x5db4a1b891c359be38c6ad2fc6b31faa51b5485d15322eb273f510b04e85baf62023-01-24 14:34:34247 days ago0xf641c99851baccd1e0971583f3bef639c84f9696830835fe357e46a0e8523fdc149,548.761099 USD Coin (Br... (USDC.e)
0x34849134a56f0c6a7756b3942b37e1a17c015353e7e698e48e4a67480171db342023-01-24 14:34:34247 days ago0xf641c99851baccd1e0971583f3bef639c84f9696830835fe357e46a0e8523fdc1,000 Dola USD Sta... (DOLA)
0xe97c944f8b4ae80002eef3074fb3926586bc0c63666ece4558a4a9125b47f0652023-01-24 0:51:35247 days 13 hrs ago0x033cf5a6fcd0e777d24e30579e944cdc4d9eda1cdb8fd9954a749fc641f24f1e498,755.778873 USD Coin (Br... (USDC.e)
0x3f4dea8cf5f9d93c9b9a1d8788ab7e68984e145100a8471dcf6133d564eb270f2023-01-24 0:51:35247 days 13 hrs ago0x033cf5a6fcd0e777d24e30579e944cdc4d9eda1cdb8fd9954a749fc641f24f1e1,500,000 Dola USD Sta... (DOLA)
0xda36232d6b6789da4613967c2af929655a073aa888a27ad139197e3bfbc7d7662023-01-22 21:28:44248 days 17 hrs ago0xf76cdfaf21458b961970b3eab3c7e8bf723873a212eb266ce2b5782400af8ede294,983 Dola USD Sta... (DOLA)
0x15c6b795a1a2f032bd5692e773f5daed1caa6011b3ad591bafc0e0b304fd14de2023-01-22 15:08:38248 days 23 hrs ago0x87105003d073da888ed412b72d603d76e06a0497c2c8d65f672796d5b6b58257748,197.613036 USD Coin (Br... (USDC.e)
0x8060d65e80bfea6f627e923180375329f6f11511ea5ef68914eaeeaa767d69082023-01-22 15:08:38248 days 23 hrs ago0x87105003d073da888ed412b72d603d76e06a0497c2c8d65f672796d5b6b582571,250,000 Dola USD Sta... (DOLA)
0x08e0ec9da47eeb809420c7e1f5a3a46e1e850c8ee3c9fd2710611060de8c2ead2023-01-16 17:40:13254 days 20 hrs ago0xaa71a67140e8f03431a0f5d5835062a9960c613b5e19b1cf3d00e91a7daa11f51,250,000 Dola USD Sta... (DOLA)
0xea6fe086ab81370ec837327ff83b9e4a45f29fc2d64674d1d1f34aadb57a9eca2023-01-16 17:40:13254 days 20 hrs ago0xaa71a67140e8f03431a0f5d5835062a9960c613b5e19b1cf3d00e91a7daa11f5498,847.854637 USD Coin (Br... (USDC.e)
0xa2fdcdf259d4bc11633d5f6b62f4f08445f03c773c43ae960c93d83043d02ccf2023-01-13 22:28:53257 days 16 hrs ago0x864975d2e12b73713c78fba938da8083c8f2491ab28fd230d595f71559799572184,832.893861 Dola USD Sta... (DOLA)
0xd0cee7215f7aa1c778d26c659b7af7c0d1c0f092e7480deb06c0df7f63f9e1302023-01-13 19:36:10257 days 18 hrs ago0x94d2e3ffb6d868a6e8e088506f4c7c6ad8df69ef9bf319065fb494102089eb3a498,307.116051 USD Coin (Br... (USDC.e)
0x01b1f31250d8c3f6742bd43a0f5d88417a1f465e1ec19da2c4f7e9d54cf2d8f32023-01-13 19:36:10257 days 18 hrs ago0x94d2e3ffb6d868a6e8e088506f4c7c6ad8df69ef9bf319065fb494102089eb3a1,000,000 Dola USD Sta... (DOLA)
0x502378714851b968035b1faf9454e0eba400c40b8ba8f8ab2959fbfef84efcbd2023-01-11 20:46:17259 days 17 hrs ago0xaa2bd408d440c09b6b14dccb2362358363dbda4c4b30eabd4215a381270ec4fb498,404.434911 USD Coin (Br... (USDC.e)
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VeloFarmer

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol)

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */

interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the decimal points used by the token.
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
    
    /**
     * @dev Burns `amount` of token, shringking total supply
     */
    function burn(uint amount) external;

    /**
     * @dev Mints `amount` of token to address `to` increasing total supply
     */
    function mint(address to, uint amount) external;

    //For testing
    function addMinter(address minter_) external;
}

interface IRouter {

    struct route {
        address from;
        address to;
        bool stable;
    }
    
    function pairFor(address tokenA, address tokenB, bool stable) external view returns (address pair);

    function getAmountOut(uint amountIn, address tokenIn, address tokenOut) external view returns (uint amount, bool stable);

    function getAmountsOut(uint amountIn, route[] memory routes) external view returns (uint[] memory amounts);

    function quoteAddLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint amountADesired,
        uint amountBDesired
    ) external view returns (uint amountA, uint amountB, uint liquidity);

    function quoteRemoveLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint liquidity
    ) external view returns (uint amountA, uint amountB);

    function addLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        bool stable,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    function swapExactTokensForTokensSimple(
        uint amountIn,
        uint amountOutMin,
        address tokenFrom,
        address tokenTo,
        bool stable,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface IGauge {
    function deposit(uint amount, uint tokenId) external;
    function getReward(address account, address[] memory tokens) external;
    function withdraw(uint shares) external;
    function balanceOf(address account) external returns (uint);
}

/**
 * @title IL2ERC20Bridge
 */
interface IL2ERC20Bridge {
    /**********
     * Events *
     **********/

    event WithdrawalInitiated(
        address indexed _l1Token,
        address indexed _l2Token,
        address indexed _from,
        address _to,
        uint256 _amount,
        bytes _data
    );

    event DepositFinalized(
        address indexed _l1Token,
        address indexed _l2Token,
        address indexed _from,
        address _to,
        uint256 _amount,
        bytes _data
    );

    event DepositFailed(
        address indexed _l1Token,
        address indexed _l2Token,
        address indexed _from,
        address _to,
        uint256 _amount,
        bytes _data
    );

    /********************
     * Public Functions *
     ********************/

    /**
     * @dev get the address of the corresponding L1 bridge contract.
     * @return Address of the corresponding L1 bridge contract.
     */
    function l1TokenBridge() external returns (address);

    /**
     * @dev initiate a withdraw of some tokens to the caller's account on L1
     * @param _l2Token Address of L2 token where withdrawal was initiated.
     * @param _amount Amount of the token to withdraw.
     * param _l1Gas Unused, but included for potential forward compatibility considerations.
     * @param _data Optional data to forward to L1. This data is provided
     *        solely as a convenience for external contracts. Aside from enforcing a maximum
     *        length, these contracts provide no guarantees about its content.
     */
    function withdraw(
        address _l2Token,
        uint256 _amount,
        uint32 _l1Gas,
        bytes calldata _data
    ) external;

    /**
     * @dev initiate a withdraw of some token to a recipient's account on L1.
     * @param _l2Token Address of L2 token where withdrawal is initiated.
     * @param _to L1 adress to credit the withdrawal to.
     * @param _amount Amount of the token to withdraw.
     * param _l1Gas Unused, but included for potential forward compatibility considerations.
     * @param _data Optional data to forward to L1. This data is provided
     *        solely as a convenience for external contracts. Aside from enforcing a maximum
     *        length, these contracts provide no guarantees about its content.
     */
    function withdrawTo(
        address _l2Token,
        address _to,
        uint256 _amount,
        uint32 _l1Gas,
        bytes calldata _data
    ) external;

    /*************************
     * Cross-chain Functions *
     *************************/

    /**
     * @dev Complete a deposit from L1 to L2, and credits funds to the recipient's balance of this
     * L2 token. This call will fail if it did not originate from a corresponding deposit in
     * L1StandardTokenBridge.
     * @param _l1Token Address for the l1 token this is called with
     * @param _l2Token Address for the l2 token this is called with
     * @param _from Account to pull the deposit from on L2.
     * @param _to Address to receive the withdrawal at
     * @param _amount Amount of the token to withdraw
     * @param _data Data provider by the sender on L1. This data is provided
     *        solely as a convenience for external contracts. Aside from enforcing a maximum
     *        length, these contracts provide no guarantees about its content.
     */
    function finalizeDeposit(
        address _l1Token,
        address _l2Token,
        address _from,
        address _to,
        uint256 _amount,
        bytes calldata _data
    ) external;
}

/**
 * @title ICrossDomainMessenger
 */
interface ICrossDomainMessenger {
    /**********
     * Events *
     **********/

    event SentMessage(
        address indexed target,
        address sender,
        bytes message,
        uint256 messageNonce,
        uint256 gasLimit
    );
    event RelayedMessage(bytes32 indexed msgHash);
    event FailedRelayedMessage(bytes32 indexed msgHash);

    /*************
     * Variables *
     *************/

    function xDomainMessageSender() external view returns (address);

    /********************
     * Public Functions *
     ********************/

    /**
     * Sends a cross domain message to the target messenger.
     * @param _target Target contract address.
     * @param _message Message to send to the target.
     * @param _gasLimit Gas limit for the provided message.
     */
    function sendMessage(
        address _target,
        bytes calldata _message,
        uint32 _gasLimit
    ) external;
}

contract VeloFarmer {
    address public chair;
    address public l2chair;
    address public pendingGov;
    address public gov;
    address public treasury;
    address public guardian;
    uint public maxSlippageBpsDolaToUsdc;
    uint public maxSlippageBpsUsdcToDola;
    uint public maxSlippageBpsLiquidity;

    uint public constant DOLA_USDC_CONVERSION_MULTI= 1e12;
    uint public constant PRECISION = 10_000;

    IGauge public constant dolaGauge = IGauge(0xAFD2c84b9d1cd50E7E18a55e419749A6c9055E1F);
    IERC20 public constant LP_TOKEN = IERC20(0x6C5019D345Ec05004A7E7B0623A91a0D9B8D590d);
    address public constant veloTokenAddr = 0x3c8B650257cFb5f272f799F5e2b4e65093a11a05;
    ICrossDomainMessenger public constant ovmL2CrossDomainMessenger = ICrossDomainMessenger(0x4200000000000000000000000000000000000007);
    IRouter public constant router = IRouter(0xa132DAB612dB5cB9fC9Ac426A0Cc215A3423F9c9);
    IERC20 public constant DOLA = IERC20(0x8aE125E8653821E851F12A49F7765db9a9ce7384);
    IERC20 public constant USDC = IERC20(0x7F5c764cBc14f9669B88837ca1490cCa17c31607);
    IL2ERC20Bridge public bridge;
    address public optiFed;

    error OnlyChair();
    error OnlyGov();
    error OnlyPendingGov();
    error OnlyGovOrGuardian();
    error MaxSlippageTooHigh();
    error NotEnoughTokens();
    error LiquiditySlippageTooHigh();
    
    constructor(
            address gov_,
            address chair_,
            address l2chair_,
            address treasury_,
            address guardian_,
            address bridge_,
            address optiFed_,
            uint maxSlippageBpsDolaToUsdc_,
            uint maxSlippageBpsUsdcToDola_,
            uint maxSlippageBpsLiquidity_
        )
    {
        gov = gov_;
        chair = chair_;
        l2chair = l2chair_;
        treasury = treasury_;
        guardian = guardian_;
        bridge = IL2ERC20Bridge(bridge_);
        optiFed = optiFed_;
        maxSlippageBpsDolaToUsdc = maxSlippageBpsDolaToUsdc_;
        maxSlippageBpsUsdcToDola = maxSlippageBpsUsdcToDola_;
        maxSlippageBpsLiquidity = maxSlippageBpsLiquidity_;
    }

    modifier onlyGov() {
        if (msg.sender != address(ovmL2CrossDomainMessenger) ||
            ovmL2CrossDomainMessenger.xDomainMessageSender() != gov
        ) revert OnlyGov();
        _;
    }

    modifier onlyPendingGov() {
        if (msg.sender != address(ovmL2CrossDomainMessenger) ||
            ovmL2CrossDomainMessenger.xDomainMessageSender() != pendingGov
        ) revert OnlyPendingGov();
        _;
    }

    modifier onlyChair() {
        if ((msg.sender != address(ovmL2CrossDomainMessenger) ||
            ovmL2CrossDomainMessenger.xDomainMessageSender() != chair) &&
            msg.sender != l2chair
        ) revert OnlyChair();
        _;
    }

    modifier onlyGovOrGuardian() {
        if ((msg.sender != address(ovmL2CrossDomainMessenger) ||
            (ovmL2CrossDomainMessenger.xDomainMessageSender() != gov) &&
             ovmL2CrossDomainMessenger.xDomainMessageSender() != guardian)
        ) revert OnlyGovOrGuardian();
        _;
    }

    /**
    @notice Claims all VELO token rewards accrued by this contract & transfer all VELO owned by this contract to `treasury`
    */
    function claimVeloRewards() external {
        address[] memory addr = new address[](1);
        addr[0] = veloTokenAddr;
        dolaGauge.getReward(address(this), addr);

        IERC20(addr[0]).transfer(treasury, IERC20(addr[0]).balanceOf(address(this)));
    }

    /**
    @notice Attempts to claim token rewards & transfer all reward tokens owned by this contract to `treasury`
    @param addrs Array of token addresses to claim rewards of.
    */
    function claimRewards(address[] calldata addrs) external onlyChair {
        dolaGauge.getReward(address(this), addrs);

        for (uint i = 0; i < addrs.length; i++) {
            IERC20(addrs[i]).transfer(treasury, IERC20(addrs[i]).balanceOf(address(this)));
        }
    }

    /**
    @notice Attempts to deposit `dolaAmount` of DOLA & `usdcAmount` of USDC into Velodrome DOLA/USDC stable pool. Then, deposits LP tokens into gauge.
    @param dolaAmount Amount of DOLA to be added as liquidity in Velodrome DOLA/USDC pool
    @param usdcAmount Amount of USDC to be added as liquidity in Velodrome DOLA/USDC pool
    */
    function deposit(uint dolaAmount, uint usdcAmount) public onlyChair {
        uint lpTokenPrice = getLpTokenPrice(false);

        DOLA.approve(address(router), dolaAmount);
        USDC.approve(address(router), usdcAmount);
        (uint dolaSpent, uint usdcSpent, uint lpTokensReceived) = router.addLiquidity(address(DOLA), address(USDC), true, dolaAmount, usdcAmount, 0, 0, address(this), block.timestamp);

        uint totalDolaValue = dolaSpent + (usdcSpent * DOLA_USDC_CONVERSION_MULTI);

        uint expectedLpTokens = totalDolaValue * 1e18 / lpTokenPrice * (PRECISION - maxSlippageBpsLiquidity) / PRECISION;
        if (lpTokensReceived < expectedLpTokens) revert LiquiditySlippageTooHigh();
        
        LP_TOKEN.approve(address(dolaGauge), LP_TOKEN.balanceOf(address(this)));
        dolaGauge.deposit(LP_TOKEN.balanceOf(address(this)), 0);
    }

    /**
    @notice Calls `deposit()` with entire DOLA & USDC token balance of this contract.
    */
    function depositAll() external {
        deposit(DOLA.balanceOf(address(this)), USDC.balanceOf(address(this)));
    }

    /**
    @notice Withdraws `dolaAmount` worth of LP tokens from gauge. Then, redeems LP tokens for DOLA/USDC.
    @dev If attempting to remove more DOLA than total LP tokens are worth, will remove all LP tokens.
    @param dolaAmount Desired dola value to remove from DOLA/USDC pool. Will attempt to remove 50/50 while allowing for `maxSlippageBpsLiquidity` bps of variance.
    @return Amount of USDC received from liquidity removal. Used by withdrawLiquidityAndSwap wrapper.
    */
    function withdrawLiquidity(uint dolaAmount) public onlyChair returns (uint) {
        uint lpTokenPrice = getLpTokenPrice(true);
        uint liquidityToWithdraw = dolaAmount * 1e18 / lpTokenPrice;
        uint ownedLiquidity = dolaGauge.balanceOf(address(this));

        if (liquidityToWithdraw > ownedLiquidity) liquidityToWithdraw = ownedLiquidity;

        dolaGauge.withdraw(liquidityToWithdraw);

        LP_TOKEN.approve(address(router), liquidityToWithdraw);
        (uint amountDola, uint amountUSDC) = router.removeLiquidity(address(DOLA), address(USDC), true, liquidityToWithdraw, 0, 0, address(this), block.timestamp);

        uint totalDolaReceived = amountDola + (amountUSDC * DOLA_USDC_CONVERSION_MULTI);

        if ((dolaAmount * (PRECISION - maxSlippageBpsLiquidity) / PRECISION) > totalDolaReceived) {
            revert LiquiditySlippageTooHigh();
        }

        return amountUSDC;
    }

    /**
    @notice Withdraws `dolaAmount` worth of LP tokens from gauge. Then, redeems LP tokens for DOLA/USDC and swaps redeemed USDC to DOLA.
    @param dolaAmount Desired dola value to remove from DOLA/USDC pool. Will attempt to remove 50/50 while allowing for `maxSlippageBpsLiquidity` bps of variance.
    */
    function withdrawLiquidityAndSwapToDOLA(uint dolaAmount) external {
        uint usdcAmount = withdrawLiquidity(dolaAmount);

        swapUSDCtoDOLA(usdcAmount);
    }

    /**
    @notice Withdraws `dolaAmount` of DOLA to optiFed on L1. Will take 7 days before withdraw is claimable on L1.
    @param dolaAmount Amount of DOLA to withdraw and send to L1 OptiFed
    */
    function withdrawToL1OptiFed(uint dolaAmount) external onlyChair {
        if (dolaAmount > DOLA.balanceOf(address(this))) revert NotEnoughTokens();

        bridge.withdrawTo(address(DOLA), optiFed, dolaAmount, 0, "");
    }

    /**
    @notice Withdraws `dolaAmount` of DOLA & `usdcAmount` of USDC to optiFed on L1. Will take 7 days before withdraw is claimable on L1.
    @param dolaAmount Amount of DOLA to withdraw and send to L1 OptiFed
    @param usdcAmount Amount of USDC to withdraw and send to L1 OptiFed
    */
    function withdrawToL1OptiFed(uint dolaAmount, uint usdcAmount) external onlyChair {
        if (dolaAmount > DOLA.balanceOf(address(this))) revert NotEnoughTokens();
        if (usdcAmount > USDC.balanceOf(address(this))) revert NotEnoughTokens();

        bridge.withdrawTo(address(DOLA), optiFed, dolaAmount, 0, "");
        bridge.withdrawTo(address(USDC), optiFed, usdcAmount, 0, "");
    }

    /**
    @notice Withdraws `amount` of `l2Token` to address `to` on L1. Will take 7 days before withdraw is claimable.
    @param l2Token Address of the L2 token to be withdrawn
    @param to L1 Address that tokens will be sent to
    @param amount Amount of the L2 token to be withdrawn
    */
    function withdrawTokensToL1(address l2Token, address to, uint amount) external onlyChair {
        if (amount > IERC20(l2Token).balanceOf(address(this))) revert NotEnoughTokens();

        IERC20(l2Token).approve(address(bridge), amount);
        bridge.withdrawTo(address(l2Token), to, amount, 0, "");
    }

    /**
    @notice Swap `usdcAmount` of USDC to DOLA through velodrome.
    @param usdcAmount Amount of USDC to swap to DOLA
    */
    function swapUSDCtoDOLA(uint usdcAmount) public onlyChair {
        uint minOut = usdcAmount * (PRECISION - maxSlippageBpsUsdcToDola) / PRECISION * DOLA_USDC_CONVERSION_MULTI;

        USDC.approve(address(router), usdcAmount);
        router.swapExactTokensForTokensSimple(usdcAmount, minOut, address(USDC), address(DOLA), true, address(this), block.timestamp);
    }

    /**
    @notice Swap `dolaAmount` of DOLA to USDC through velodrome.
    @param dolaAmount Amount of DOLA to swap to USDC
    */
    function swapDOLAtoUSDC(uint dolaAmount) public onlyChair { 
        uint minOut = dolaAmount * (PRECISION - maxSlippageBpsDolaToUsdc) / PRECISION / DOLA_USDC_CONVERSION_MULTI;
        
        DOLA.approve(address(router), dolaAmount);
        router.swapExactTokensForTokensSimple(dolaAmount, minOut, address(DOLA), address(USDC), true, address(this), block.timestamp);
    }

    /**
    @notice Calculates approximate price of 1 Velodrome DOLA/USDC stable pool LP token
    */
    function getLpTokenPrice(bool withdraw_) internal view returns (uint) {
        (uint dolaAmountOneLP, uint usdcAmountOneLP) = router.quoteRemoveLiquidity(address(DOLA), address(USDC), true, 0.001 ether);
        (uint dolaForRemovedUsdc,) = router.getAmountOut(usdcAmountOneLP, address(USDC), address(DOLA));
        (uint usdcForRemovedDola,) = router.getAmountOut(dolaAmountOneLP, address(DOLA), address(USDC));
        usdcForRemovedDola *= DOLA_USDC_CONVERSION_MULTI;
        usdcAmountOneLP *= DOLA_USDC_CONVERSION_MULTI;

        if (dolaAmountOneLP + dolaForRemovedUsdc > usdcAmountOneLP + usdcForRemovedDola && withdraw_) {
            return (dolaAmountOneLP + dolaForRemovedUsdc) * 1000;
        } else {
            return (usdcAmountOneLP + usdcForRemovedDola) * 1000;
        }
    }

    /**
    @notice Method for current chair of the fed to resign
    */
    function resign() external onlyChair {
        if (msg.sender == l2chair) {
            l2chair = address(0);
        } else {
            chair = address(0);
        }
    }

    /**
    @notice Governance only function for setting acceptable slippage when swapping DOLA -> USDC
    @param newMaxSlippageBps The new maximum allowed loss for DOLA -> USDC swaps. 1 = 0.01%
    */
    function setMaxSlippageDolaToUsdc(uint newMaxSlippageBps) onlyGovOrGuardian external {
        if (newMaxSlippageBps > 10000) revert MaxSlippageTooHigh();
        maxSlippageBpsDolaToUsdc = newMaxSlippageBps;
    }

    /**
    @notice Governance only function for setting acceptable slippage when swapping USDC -> DOLA
    @param newMaxSlippageBps The new maximum allowed loss for USDC -> DOLA swaps. 1 = 0.01%
    */
    function setMaxSlippageUsdcToDola(uint newMaxSlippageBps) onlyGovOrGuardian external {
        if (newMaxSlippageBps > 10000) revert MaxSlippageTooHigh();
        maxSlippageBpsUsdcToDola = newMaxSlippageBps;
    }

    /**
    @notice Governance only function for setting acceptable slippage when adding or removing liquidty from DOLA/USDC pool
    @param newMaxSlippageBps The new maximum allowed loss for adding/removing liquidity from DOLA/USDC pool. 1 = 0.01%
    */
    function setMaxSlippageLiquidity(uint newMaxSlippageBps) onlyGovOrGuardian external {
        if (newMaxSlippageBps > 10000) revert MaxSlippageTooHigh();
        maxSlippageBpsLiquidity = newMaxSlippageBps;
    }

    /**
    @notice Method for `gov` to change `pendingGov` address
    @dev `pendingGov` will have to call `claimGov` to complete `gov` transfer
    @dev `pendingGov` should be an L1 address
    @param newPendingGov_ L1 address to be set as `pendingGov`
    */
    function setPendingGov(address newPendingGov_) onlyGov external {
        pendingGov = newPendingGov_;
    }

    /**
    @notice Method for `pendingGov` to claim `gov` role.
    */
    function claimGov() external onlyPendingGov {
        gov = pendingGov;
        pendingGov = address(0);
    }

    /**
    @notice Method for gov to change treasury address, the address that receives all rewards
    @param newTreasury_ L2 address to be set as treasury
    */
    function changeTreasury(address newTreasury_) external onlyGov {
        treasury = newTreasury_;
    }

    /**
    @notice Method for gov to change the chair
    @dev chair address should be set to the address of L1 VeloFarmerMessenger if it is being used
    @param newChair_ L1 address to be set as chair
    */
    function changeChair(address newChair_) external onlyGov {
        chair = newChair_;
    }

    /**
    @notice Method for gov to change the L2 chair
    @param newL2Chair_ L2 address to be set as l2chair
    */
    function changeL2Chair(address newL2Chair_) external onlyGov {
        l2chair = newL2Chair_;
    }

    /**
    @notice Method for gov to change the guardian
    @param guardian_ L1 address to be set as guardian
    */
    function changeGuardian(address guardian_) external onlyGov {
        guardian = guardian_;
    }

    /**
    @notice Method for gov to change the L1 optiFed address
    @dev optiFed is the L1 address that receives all bridged DOLA/USDC from both withdrawToL1OptiFed functions
    @param newOptiFed_ L1 address to be set as optiFed
    */
    function changeOptiFed(address newOptiFed_) external onlyGov {
        optiFed = newOptiFed_;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"gov_","type":"address"},{"internalType":"address","name":"chair_","type":"address"},{"internalType":"address","name":"l2chair_","type":"address"},{"internalType":"address","name":"treasury_","type":"address"},{"internalType":"address","name":"guardian_","type":"address"},{"internalType":"address","name":"bridge_","type":"address"},{"internalType":"address","name":"optiFed_","type":"address"},{"internalType":"uint256","name":"maxSlippageBpsDolaToUsdc_","type":"uint256"},{"internalType":"uint256","name":"maxSlippageBpsUsdcToDola_","type":"uint256"},{"internalType":"uint256","name":"maxSlippageBpsLiquidity_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"LiquiditySlippageTooHigh","type":"error"},{"inputs":[],"name":"MaxSlippageTooHigh","type":"error"},{"inputs":[],"name":"NotEnoughTokens","type":"error"},{"inputs":[],"name":"OnlyChair","type":"error"},{"inputs":[],"name":"OnlyGov","type":"error"},{"inputs":[],"name":"OnlyGovOrGuardian","type":"error"},{"inputs":[],"name":"OnlyPendingGov","type":"error"},{"inputs":[],"name":"DOLA","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOLA_USDC_CONVERSION_MULTI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LP_TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridge","outputs":[{"internalType":"contract IL2ERC20Bridge","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newChair_","type":"address"}],"name":"changeChair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guardian_","type":"address"}],"name":"changeGuardian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newL2Chair_","type":"address"}],"name":"changeL2Chair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOptiFed_","type":"address"}],"name":"changeOptiFed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTreasury_","type":"address"}],"name":"changeTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"claimRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimVeloRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dolaAmount","type":"uint256"},{"internalType":"uint256","name":"usdcAmount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"depositAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dolaGauge","outputs":[{"internalType":"contract IGauge","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l2chair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSlippageBpsDolaToUsdc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSlippageBpsLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSlippageBpsUsdcToDola","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"optiFed","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ovmL2CrossDomainMessenger","outputs":[{"internalType":"contract ICrossDomainMessenger","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingGov","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"resign","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSlippageBps","type":"uint256"}],"name":"setMaxSlippageDolaToUsdc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSlippageBps","type":"uint256"}],"name":"setMaxSlippageLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSlippageBps","type":"uint256"}],"name":"setMaxSlippageUsdcToDola","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingGov_","type":"address"}],"name":"setPendingGov","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dolaAmount","type":"uint256"}],"name":"swapDOLAtoUSDC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"usdcAmount","type":"uint256"}],"name":"swapUSDCtoDOLA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"veloTokenAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"dolaAmount","type":"uint256"}],"name":"withdrawLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dolaAmount","type":"uint256"}],"name":"withdrawLiquidityAndSwapToDOLA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dolaAmount","type":"uint256"}],"name":"withdrawToL1OptiFed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dolaAmount","type":"uint256"},{"internalType":"uint256","name":"usdcAmount","type":"uint256"}],"name":"withdrawToL1OptiFed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"l2Token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTokensToL1","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051620032f1380380620032f18339810160408190526200003491620000e2565b600380546001600160a01b03199081166001600160a01b039c8d16179091556000805482169a8c169a909a17909955600180548a16988b1698909817909755600480548916968a16969096179095556005805488169489169490941790935560098054871692881692909217909155600a805490951695169490941790925560069290925560075560085562000196565b80516001600160a01b0381168114620000dd57600080fd5b919050565b6000806000806000806000806000806101408b8d0312156200010357600080fd5b6200010e8b620000c5565b99506200011e60208c01620000c5565b98506200012e60408c01620000c5565b97506200013e60608c01620000c5565b96506200014e60808c01620000c5565b95506200015e60a08c01620000c5565b94506200016e60c08c01620000c5565b935060e08b015192506101008b015191506101208b015190509295989b9194979a5092959850565b61314b80620001a66000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c8063aaf5eb6811610146578063df399616116100c3578063eb52d09911610087578063eb52d099146104f8578063efdf0bb01461050b578063f887ea401461051e578063f9f031df14610533578063fa2459d214610546578063fdf893f51461055957600080fd5b8063df399616146104a4578063e2bbb158146104b7578063e78cea92146104ca578063e80aff84146104dd578063e8c4b699146104e557600080fd5b8063c565f7b71161010a578063c565f7b714610448578063c611551114610463578063cdb2fc5f14610476578063de5f626814610489578063de5feb281461049157600080fd5b8063aaf5eb68146103eb578063b14f2a39146103f4578063bcb03ef614610407578063bfd9041b1461041a578063c002e56e1461043557600080fd5b806344139778116101df57806369652fcf116101a357806369652fcf1461038a57806389a302711461039257806389d47495146103a757806392c592d0146103ba578063a97eb55c146103cf578063a9cd0258146103d857600080fd5b8063441397781461033b578063452a932014610349578063544835411461035c57806361d027b31461036f57806364371ae21461038257600080fd5b8063272d5db711610226578063272d5db7146102e5578063289a6581146103005780632a0902ba146103095780632fcb4f041461031c5780633c635ee51461032f57600080fd5b80630a861f2a1461026357806312d43a511461028957806319a19e0f146102b457806325240810146102c957806326f4bb51146102dc575b600080fd5b610276610271366004612bfb565b61056c565b6040519081526020015b60405180910390f35b60035461029c906001600160a01b031681565b6040516001600160a01b039091168152602001610280565b6102c76102c2366004612bfb565b610910565b005b60025461029c906001600160a01b031681565b61027660065481565b61029c733c8b650257cfb5f272f799f5e2b4e65093a11a0581565b61027660085481565b6102c7610317366004612bfb565b610a71565b6102c761032a366004612c2c565b610ca0565b61027664e8d4a5100081565b61029c6007602160991b0181565b60055461029c906001600160a01b031681565b6102c761036a366004612bfb565b610d73565b60045461029c906001600160a01b031681565b6102c7610f56565b6102c761102e565b61029c6000805160206130b683398151915281565b6102c76103b5366004612bfb565b61112d565b61029c6000805160206130f683398151915281565b61027660075481565b6102c76103e6366004612bfb565b611301565b61027661271081565b6102c7610402366004612c2c565b611462565b6102c7610415366004612bfb565b611535565b61029c736c5019d345ec05004a7e7b0623a91a0d9b8d590d81565b6102c7610443366004612c2c565b611696565b61029c73afd2c84b9d1cd50e7e18a55e419749a6c9055e1f81565b600a5461029c906001600160a01b031681565b6102c7610484366004612bfb565b611769565b6102c7611783565b6102c761049f366004612c50565b611861565b60015461029c906001600160a01b031681565b6102c76104c5366004612c50565b611b3d565b60095461029c906001600160a01b031681565b6102c7612066565b6102c76104f3366004612c2c565b612268565b6102c7610506366004612c72565b61233b565b6102c7610519366004612c2c565b612571565b61029c6000805160206130d683398151915281565b6102c7610541366004612cb3565b612644565b6102c7610554366004612c2c565b6128d4565b60005461029c906001600160a01b031681565b6000336007602160991b01141580610601575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156105d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f59190612d28565b6001600160a01b031614155b801561061857506001546001600160a01b03163314155b156106365760405163d0f6c81f60e01b815260040160405180910390fd5b600061064260016129a7565b905060008161065985670de0b6b3a7640000612d5b565b6106639190612d78565b6040516370a0823160e01b815230600482015290915060009073afd2c84b9d1cd50e7e18a55e419749a6c9055e1f906370a08231906024016020604051808303816000875af11580156106ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106de9190612d9a565b9050808211156106ec578091505b604051632e1a7d4d60e01b81526004810183905273afd2c84b9d1cd50e7e18a55e419749a6c9055e1f90632e1a7d4d90602401600060405180830381600087803b15801561073957600080fd5b505af115801561074d573d6000803e3d6000fd5b505060405163095ea7b360e01b81526000805160206130d6833981519152600482015260248101859052736c5019d345ec05004a7e7b0623a91a0d9b8d590d925063095ea7b391506044016020604051808303816000875af11580156107b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107db9190612dc3565b5060405163037b79b160e21b81526000805160206130f683398151915260048201526000805160206130b68339815191526024820152600160448201526064810183905260006084820181905260a482018190523060c48301524260e48301529081906000805160206130d683398151915290630dede6c4906101040160408051808303816000875af1158015610876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089a9190612dde565b909250905060006108b064e8d4a5100083612d5b565b6108ba9084612e02565b9050806127106008546127106108d09190612e15565b6108da908b612d5b565b6108e49190612d78565b111561090357604051634798348560e01b815260040160405180910390fd5b509450505050505b919050565b336007602160991b01141580610a2b575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190612d28565b6001600160a01b031614158015610a2b575060055460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156109fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1f9190612d28565b6001600160a01b031614155b15610a4957604051630f8d4d1160e41b815260040160405180910390fd5b612710811115610a6c57604051636dabd5db60e01b815260040160405180910390fd5b600755565b336007602160991b01141580610b04575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190612d28565b6001600160a01b031614155b8015610b1b57506001546001600160a01b03163314155b15610b395760405163d0f6c81f60e01b815260040160405180910390fd5b600064e8d4a51000612710600654612710610b549190612e15565b610b5e9085612d5b565b610b689190612d78565b610b729190612d78565b60405163095ea7b360e01b81526000805160206130d68339815191526004820152602481018490529091506000805160206130f68339815191529063095ea7b3906044016020604051808303816000875af1158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf99190612dc3565b506040516313dcfc5960e01b81526000805160206130d6833981519152906313dcfc5990610c5490859085906000805160206130f6833981519152906000805160206130b68339815191529060019030904290600401612e28565b6000604051808303816000875af1158015610c73573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c9b9190810190612e79565b505050565b336007602160991b01141580610d33575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015610d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d279190612d28565b6001600160a01b031614155b15610d5157604051639097750360e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336007602160991b01141580610e06575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015610dd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfa9190612d28565b6001600160a01b031614155b8015610e1d57506001546001600160a01b03163314155b15610e3b5760405163d0f6c81f60e01b815260040160405180910390fd5b600064e8d4a51000612710600754612710610e569190612e15565b610e609085612d5b565b610e6a9190612d78565b610e749190612d5b565b60405163095ea7b360e01b81526000805160206130d68339815191526004820152602481018490529091506000805160206130b68339815191529063095ea7b3906044016020604051808303816000875af1158015610ed7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efb9190612dc3565b506040516313dcfc5960e01b81526000805160206130d6833981519152906313dcfc5990610c5490859085906000805160206130b6833981519152906000805160206130f68339815191529060019030904290600401612e28565b336007602160991b01141580610fe9575060025460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015610fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdd9190612d28565b6001600160a01b031614155b15611007576040516307b70d3960e11b815260040160405180910390fd5b60028054600380546001600160a01b03199081166001600160a01b03841617909155169055565b336007602160991b011415806110c1575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015611091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b59190612d28565b6001600160a01b031614155b80156110d857506001546001600160a01b03163314155b156110f65760405163d0f6c81f60e01b815260040160405180910390fd5b6001546001600160a01b0316330361111a57600180546001600160a01b0319169055565b600080546001600160a01b03191690555b565b336007602160991b011415806111c0575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015611190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b49190612d28565b6001600160a01b031614155b80156111d757506001546001600160a01b03163314155b156111f55760405163d0f6c81f60e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000805160206130f6833981519152906370a0823190602401602060405180830381865afa15801561123e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112629190612d9a565b811115611282576040516308aeed0f60e21b815260040160405180910390fd5b600954600a54604051631474f2a960e31b81526001600160a01b039283169263a3a79548926112cc926000805160206130f683398151915292909116908690600090600401612f37565b600060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b5050505050565b336007602160991b0114158061141c575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015611364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113889190612d28565b6001600160a01b03161415801561141c575060055460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156113ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114109190612d28565b6001600160a01b031614155b1561143a57604051630f8d4d1160e41b815260040160405180910390fd5b61271081111561145d57604051636dabd5db60e01b815260040160405180910390fd5b600855565b336007602160991b011415806114f5575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156114c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e99190612d28565b6001600160a01b031614155b1561151357604051639097750360e01b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b336007602160991b01141580611650575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bc9190612d28565b6001600160a01b031614158015611650575060055460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015611620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116449190612d28565b6001600160a01b031614155b1561166e57604051630f8d4d1160e41b815260040160405180910390fd5b61271081111561169157604051636dabd5db60e01b815260040160405180910390fd5b600655565b336007602160991b01141580611729575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156116f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171d9190612d28565b6001600160a01b031614155b1561174757604051639097750360e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006117748261056c565b905061177f81610d73565b5050565b6040516370a0823160e01b815230600482015261112b906000805160206130f6833981519152906370a0823190602401602060405180830381865afa1580156117d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f49190612d9a565b6040516370a0823160e01b81523060048201526000805160206130b6833981519152906370a0823190602401602060405180830381865afa15801561183d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c59190612d9a565b336007602160991b011415806118f4575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e89190612d28565b6001600160a01b031614155b801561190b57506001546001600160a01b03163314155b156119295760405163d0f6c81f60e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000805160206130f6833981519152906370a0823190602401602060405180830381865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119969190612d9a565b8211156119b6576040516308aeed0f60e21b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000805160206130b6833981519152906370a0823190602401602060405180830381865afa1580156119ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a239190612d9a565b811115611a43576040516308aeed0f60e21b815260040160405180910390fd5b600954600a54604051631474f2a960e31b81526001600160a01b039283169263a3a7954892611a8d926000805160206130f683398151915292909116908790600090600401612f37565b600060405180830381600087803b158015611aa757600080fd5b505af1158015611abb573d6000803e3d6000fd5b5050600954600a54604051631474f2a960e31b81526001600160a01b03928316945063a3a795489350611b07926000805160206130b68339815191529216908690600090600401612f37565b600060405180830381600087803b158015611b2157600080fd5b505af1158015611b35573d6000803e3d6000fd5b505050505050565b336007602160991b01141580611bd0575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015611ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc49190612d28565b6001600160a01b031614155b8015611be757506001546001600160a01b03163314155b15611c055760405163d0f6c81f60e01b815260040160405180910390fd5b6000611c1160006129a7565b60405163095ea7b360e01b81526000805160206130d68339815191526004820152602481018590529091506000805160206130f68339815191529063095ea7b3906044016020604051808303816000875af1158015611c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c989190612dc3565b5060405163095ea7b360e01b81526000805160206130d68339815191526004820152602481018390526000805160206130b68339815191529063095ea7b3906044016020604051808303816000875af1158015611cf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1d9190612dc3565b50604051635a47ddc360e01b81526000805160206130f683398151915260048201526000805160206130b68339815191526024820152600160448201526064810184905260848101839052600060a4820181905260c482018190523060e48301524261010483015290819081906000805160206130d683398151915290635a47ddc390610124016060604051808303816000875af1158015611dc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de79190612f74565b919450925090506000611dff64e8d4a5100084612d5b565b611e099085612e02565b90506000612710600854612710611e209190612e15565b87611e3385670de0b6b3a7640000612d5b565b611e3d9190612d78565b611e479190612d5b565b611e519190612d78565b905080831015611e7457604051634798348560e01b815260040160405180910390fd5b6040516370a0823160e01b8152306004820152736c5019d345ec05004a7e7b0623a91a0d9b8d590d9063095ea7b39073afd2c84b9d1cd50e7e18a55e419749a6c9055e1f9083906370a0823190602401602060405180830381865afa158015611ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f059190612d9a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611f50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f749190612dc3565b506040516370a0823160e01b815230600482015273afd2c84b9d1cd50e7e18a55e419749a6c9055e1f9063e2bbb15890736c5019d345ec05004a7e7b0623a91a0d9b8d590d906370a0823190602401602060405180830381865afa158015611fe0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120049190612d9a565b6040516001600160e01b031960e084901b168152600481019190915260006024820152604401600060405180830381600087803b15801561204457600080fd5b505af1158015612058573d6000803e3d6000fd5b505050505050505050505050565b60408051600180825281830190925260009160208083019080368337019050509050733c8b650257cfb5f272f799f5e2b4e65093a11a05816000815181106120b0576120b0612fa2565b6001600160a01b03909216602092830291909101909101526040516331279d3d60e01b815273afd2c84b9d1cd50e7e18a55e419749a6c9055e1f906331279d3d906121019030908590600401612fb8565b600060405180830381600087803b15801561211b57600080fd5b505af115801561212f573d6000803e3d6000fd5b505050508060008151811061214657612146612fa2565b60200260200101516001600160a01b031663a9059cbb600460009054906101000a90046001600160a01b03168360008151811061218557612185612fa2565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156121d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f99190612d9a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015612244573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177f9190612dc3565b336007602160991b011415806122fb575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156122cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ef9190612d28565b6001600160a01b031614155b1561231957604051639097750360e01b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b336007602160991b011415806123ce575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa15801561239e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c29190612d28565b6001600160a01b031614155b80156123e557506001546001600160a01b03163314155b156124035760405163d0f6c81f60e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015612447573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246b9190612d9a565b81111561248b576040516308aeed0f60e21b815260040160405180910390fd5b60095460405163095ea7b360e01b81526001600160a01b039182166004820152602481018390529084169063095ea7b3906044016020604051808303816000875af11580156124de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125029190612dc3565b50600954604051631474f2a960e31b81526001600160a01b039091169063a3a795489061253a90869086908690600090600401612f37565b600060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b50505050505050565b336007602160991b01141580612604575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156125d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f89190612d28565b6001600160a01b031614155b1561262257604051639097750360e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b336007602160991b011415806126d7575060005460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa1580156126a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cb9190612d28565b6001600160a01b031614155b80156126ee57506001546001600160a01b03163314155b1561270c5760405163d0f6c81f60e01b815260040160405180910390fd5b6040516331279d3d60e01b815273afd2c84b9d1cd50e7e18a55e419749a6c9055e1f906331279d3d9061274790309086908690600401613014565b600060405180830381600087803b15801561276157600080fd5b505af1158015612775573d6000803e3d6000fd5b5050505060005b81811015610c9b5782828281811061279657612796612fa2565b90506020020160208101906127ab9190612c2c565b6004546001600160a01b039182169163a9059cbb91168585858181106127d3576127d3612fa2565b90506020020160208101906127e89190612c2c565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa15801561282e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128529190612d9a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561289d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c19190612dc3565b50806128cc81613070565b91505061277c565b336007602160991b01141580612967575060035460408051636e296e4560e01b815290516001600160a01b03909216916007602160991b0191636e296e459160048083019260209291908290030181865afa158015612937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295b9190612d28565b6001600160a01b031614155b1561298557604051639097750360e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6040516310e1b98f60e21b81526000805160206130f683398151915260048201526000805160206130b683398151915260248201526001604482015266038d7ea4c680006064820152600090819081906000805160206130d683398151915290634386e63c906084016040805180830381865afa158015612a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a509190612dde565b604051635e1e632560e01b8152600481018290526000805160206130b683398151915260248201526000805160206130f6833981519152604482015291935091506000906000805160206130d683398151915290635e1e6325906064016040805180830381865afa158015612ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aed9190613089565b50604051635e1e632560e01b8152600481018590526000805160206130f683398151915260248201526000805160206130b683398151915260448201529091506000906000805160206130d683398151915290635e1e6325906064016040805180830381865afa158015612b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b899190613089565b509050612b9b64e8d4a5100082612d5b565b9050612bac64e8d4a5100084612d5b565b9250612bb88184612e02565b612bc28386612e02565b118015612bcc5750855b15612bf157612bdb8285612e02565b612be7906103e8612d5b565b9695505050505050565b612bdb8184612e02565b600060208284031215612c0d57600080fd5b5035919050565b6001600160a01b0381168114612c2957600080fd5b50565b600060208284031215612c3e57600080fd5b8135612c4981612c14565b9392505050565b60008060408385031215612c6357600080fd5b50508035926020909101359150565b600080600060608486031215612c8757600080fd5b8335612c9281612c14565b92506020840135612ca281612c14565b929592945050506040919091013590565b60008060208385031215612cc657600080fd5b823567ffffffffffffffff80821115612cde57600080fd5b818501915085601f830112612cf257600080fd5b813581811115612d0157600080fd5b8660208260051b8501011115612d1657600080fd5b60209290920196919550909350505050565b600060208284031215612d3a57600080fd5b8151612c4981612c14565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417612d7257612d72612d45565b92915050565b600082612d9557634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612dac57600080fd5b5051919050565b8051801515811461090b57600080fd5b600060208284031215612dd557600080fd5b612c4982612db3565b60008060408385031215612df157600080fd5b505080516020909101519092909150565b80820180821115612d7257612d72612d45565b81810381811115612d7257612d72612d45565b96875260208701959095526001600160a01b0393841660408701529183166060860152151560808501521660a083015260c082015260e00190565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215612e8c57600080fd5b825167ffffffffffffffff80821115612ea457600080fd5b818501915085601f830112612eb857600080fd5b815181811115612eca57612eca612e63565b8060051b604051601f19603f83011681018181108582111715612eef57612eef612e63565b604052918252848201925083810185019188831115612f0d57600080fd5b938501935b82851015612f2b57845184529385019392850192612f12565b98975050505050505050565b6001600160a01b039485168152929093166020830152604082015263ffffffff909116606082015260a06080820181905260009082015260c00190565b600080600060608486031215612f8957600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038381168252604060208084018290528451918401829052600092858201929091906060860190855b81811015613006578551851683529483019491830191600101612fe8565b509098975050505050505050565b6001600160a01b03848116825260406020808401829052908301849052600091859160608501845b8781101561306357843561304f81612c14565b84168252938201939082019060010161303c565b5098975050505050505050565b60006001820161308257613082612d45565b5060010190565b6000806040838503121561309c57600080fd5b825191506130ac60208401612db3565b9050925092905056fe0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607000000000000000000000000a132dab612db5cb9fc9ac426a0cc215a3423f9c90000000000000000000000008ae125e8653821e851f12a49f7765db9a9ce7384a2646970667358221220f2a33283cd1cb41509d9cf67109cee950e7a0c218f9d32dcbd2013372d1d280564736f6c63430008110033000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae0000000000000000000000009f9fa2c6b432689dcd4e3ad55f86fde6c03694ee000000000000000000000000a283139017a2f5bade8d8e25412c600055d318f8000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae0000000000000000000000004200000000000000000000000000000000000010000000000000000000000000fed533e0ec584d6ff40281a7850c4621d258b43d000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e

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

000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae0000000000000000000000009f9fa2c6b432689dcd4e3ad55f86fde6c03694ee000000000000000000000000a283139017a2f5bade8d8e25412c600055d318f8000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae0000000000000000000000004200000000000000000000000000000000000010000000000000000000000000fed533e0ec584d6ff40281a7850c4621d258b43d000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e

-----Decoded View---------------
Arg [0] : gov_ (address): 0xFed673A89c1B661D9DCA1401FBf3B279DffEaBAe
Arg [1] : chair_ (address): 0xFed673A89c1B661D9DCA1401FBf3B279DffEaBAe
Arg [2] : l2chair_ (address): 0x9f9Fa2C6b432689Dcd4E3ad55f86FdE6c03694EE
Arg [3] : treasury_ (address): 0xa283139017a2f5BAdE8d8e25412C600055D318F8
Arg [4] : guardian_ (address): 0xFed673A89c1B661D9DCA1401FBf3B279DffEaBAe
Arg [5] : bridge_ (address): 0x4200000000000000000000000000000000000010
Arg [6] : optiFed_ (address): 0xfEd533e0Ec584D6FF40281a7850c4621D258b43d
Arg [7] : maxSlippageBpsDolaToUsdc_ (uint256): 30
Arg [8] : maxSlippageBpsUsdcToDola_ (uint256): 30
Arg [9] : maxSlippageBpsLiquidity_ (uint256): 30

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae
Arg [1] : 000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae
Arg [2] : 0000000000000000000000009f9fa2c6b432689dcd4e3ad55f86fde6c03694ee
Arg [3] : 000000000000000000000000a283139017a2f5bade8d8e25412c600055d318f8
Arg [4] : 000000000000000000000000fed673a89c1b661d9dca1401fbf3b279dffeabae
Arg [5] : 0000000000000000000000004200000000000000000000000000000000000010
Arg [6] : 000000000000000000000000fed533e0ec584d6ff40281a7850c4621d258b43d
Arg [7] : 000000000000000000000000000000000000000000000000000000000000001e
Arg [8] : 000000000000000000000000000000000000000000000000000000000000001e
Arg [9] : 000000000000000000000000000000000000000000000000000000000000001e


Deployed ByteCode Sourcemap

10094:14838:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16146:932;;;;;;:::i;:::-;;:::i;:::-;;;345:25:1;;;333:2;318:18;16146:932:0;;;;;;;;10209:18;;;;;-1:-1:-1;;;;;10209:18:0;;;;;;-1:-1:-1;;;;;545:32:1;;;527:51;;515:2;500:18;10209::0;381:203:1;22230:217:0;;;;;;:::i;:::-;;:::i;:::-;;10177:25;;;;;-1:-1:-1;;;;;10177:25:0;;;10294:36;;;;;;10715:82;;10755:42;10715:82;;10380:35;;;;;;20015:382;;;;;;:::i;:::-;;:::i;24475:99::-;;;;;;:::i;:::-;;:::i;10424:53::-;;10473:4;10424:53;;10804:131;;-1:-1:-1;;;;;10804:131:0;;10264:23;;;;;-1:-1:-1;;;;;10264:23:0;;;19497:373;;;;;;:::i;:::-;;:::i;10234:23::-;;;;;-1:-1:-1;;;;;10234:23:0;;;23399:113;;;:::i;21403:180::-;;;:::i;11120:80::-;;-1:-1:-1;;;;;;;;;;;11120:80:0;;17789:229;;;;;;:::i;:::-;;:::i;11033:80::-;;-1:-1:-1;;;;;;;;;;;11033:80:0;;10337:36;;;;;;22715:215;;;;;;:::i;:::-;;:::i;10484:39::-;;10517:6;10484:39;;23689:105;;;;;;:::i;:::-;;:::i;21798:217::-;;;;;;:::i;:::-;;:::i;10624:84::-;;10665:42;10624:84;;24018:93;;;;;;:::i;:::-;;:::i;10532:85::-;;10574:42;10532:85;;11242:22;;;;;-1:-1:-1;;;;;11242:22:0;;;17405:171;;;;;;:::i;:::-;;:::i;15526:119::-;;;:::i;18327:400::-;;;;;;:::i;:::-;;:::i;10148:22::-;;;;;-1:-1:-1;;;;;10148:22:0;;;14538:876;;;;;;:::i;:::-;;:::i;11207:28::-;;;;;-1:-1:-1;;;;;11207:28:0;;;13425:270;;;:::i;24828:101::-;;;;;;:::i;:::-;;:::i;19039:313::-;;;;;;:::i;:::-;;:::i;23206:110::-;;;;;;:::i;:::-;;:::i;10942:84::-;;-1:-1:-1;;;;;;;;;;;10942:84:0;;13895:284;;;;;;:::i;:::-;;:::i;24243:101::-;;;;;;:::i;:::-;;:::i;10121:20::-;;;;;-1:-1:-1;;;;;10121:20:0;;;16146:932;16216:4;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;16233:17:::1;16253:21;16269:4;16253:15;:21::i;:::-;16233:41:::0;-1:-1:-1;16285:24:0::1;16233:41:::0;16312:17:::1;:10:::0;16325:4:::1;16312:17;:::i;:::-;:32;;;;:::i;:::-;16377:34;::::0;-1:-1:-1;;;16377:34:0;;16405:4:::1;16377:34;::::0;::::1;527:51:1::0;16285:59:0;;-1:-1:-1;16355:19:0::1;::::0;10574:42:::1;::::0;16377:19:::1;::::0;500:18:1;;16377:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16355:56;;16450:14;16428:19;:36;16424:78;;;16488:14;16466:36;;16424:78;16515:39;::::0;-1:-1:-1;;;16515:39:0;;::::1;::::0;::::1;345:25:1::0;;;10574:42:0::1;::::0;16515:18:::1;::::0;318::1;;16515:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;16567:54:0::1;::::0;-1:-1:-1;;;16567:54:0;;-1:-1:-1;;;;;;;;;;;16567:54:0::1;::::0;::::1;4591:51:1::0;4658:18;;;4651:34;;;10665:42:0::1;::::0;-1:-1:-1;16567:16:0::1;::::0;-1:-1:-1;4564:18:1;;16567:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;16669:117:0::1;::::0;-1:-1:-1;;;16669:117:0;;-1:-1:-1;;;;;;;;;;;16669:117:0::1;::::0;::::1;5463:34:1::0;-1:-1:-1;;;;;;;;;;;5513:18:1;;;5506:43;16722:4:0::1;5565:18:1::0;;;5558:50;5624:18;;;5617:34;;;16633:15:0::1;5667:19:1::0;;;5660:35;;;5711:19;;;5704:35;;;16763:4:0::1;5755:19:1::0;;;5748:44;16770:15:0::1;5808:19:1::0;;;5801:35;16633:15:0;;;-1:-1:-1;;;;;;;;;;;10983:42:0;16669:22:::1;::::0;5397:19:1;;16669:117:0::1;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16632:154:::0;;-1:-1:-1;16632:154:0;-1:-1:-1;16799:22:0::1;16838:39;10473:4;16632:154:::0;16838:39:::1;:::i;:::-;16824:54;::::0;:10;:54:::1;:::i;:::-;16799:79;;16962:17;10517:6;16922:23;;10517:6;16910:35;;;;:::i;:::-;16896:50;::::0;:10;:50:::1;:::i;:::-;:62;;;;:::i;:::-;16895:84;16891:150;;;17003:26;;-1:-1:-1::0;;;17003:26:0::1;;;;;;;;;;;16891:150;-1:-1:-1::0;17060:10:0;-1:-1:-1;;;;;12954:1:0::1;16146:932:::0;;;:::o;22230:217::-;13016:10;-1:-1:-1;;;;;13016:48:0;;;:200;;-1:-1:-1;13134:3:0;;13082:48;;;-1:-1:-1;;;13082:48:0;;;;-1:-1:-1;;;;;13134:3:0;;;;-1:-1:-1;;;;;10892:42:0;13082:46;;:48;;;;;;;;;;;;;;10892:42;13082:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13082:55:0;;;13081:135;;;;-1:-1:-1;13208:8:0;;13156:48;;;-1:-1:-1;;;13156:48:0;;;;-1:-1:-1;;;;;13208:8:0;;;;-1:-1:-1;;;;;10892:42:0;13156:46;;:48;;;;;;;;;;;;;;10892:42;13156:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13156:60:0;;;13081:135;13011:244;;;13236:19;;-1:-1:-1;;;13236:19:0;;;;;;;;;;;13011:244;22350:5:::1;22330:17;:25;22326:58;;;22364:20;;-1:-1:-1::0;;;22364:20:0::1;;;;;;;;;;;22326:58;22395:24;:44:::0;22230:217::o;20015:382::-;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;20085:11:::1;10473:4;10517:6;20125:24;;10517:6;20113:36;;;;:::i;:::-;20099:51;::::0;:10;:51:::1;:::i;:::-;:63;;;;:::i;:::-;:92;;;;:::i;:::-;20212:41;::::0;-1:-1:-1;;;20212:41:0;;-1:-1:-1;;;;;;;;;;;20212:41:0::1;::::0;::::1;4591:51:1::0;4658:18;;;4651:34;;;20085:106:0;;-1:-1:-1;;;;;;;;;;;;11070:42:0;20212:12:::1;::::0;4564:18:1;;20212:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;20264:125:0::1;::::0;-1:-1:-1;;;20264:125:0;;-1:-1:-1;;;;;;;;;;;10983:42:0;20264:37:::1;::::0;:125:::1;::::0;20302:10;;20314:6;;-1:-1:-1;;;;;;;;;;;11070:42:0;-1:-1:-1;;;;;;;;;;;11157:42:0;20352:4:::1;::::0;20366::::1;::::0;20373:15:::1;::::0;20264:125:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;20264:125:0::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;;20073:324;20015:382:::0;:::o;24475:99::-;12308:10;-1:-1:-1;;;;;12308:48:0;;;:120;;-1:-1:-1;12425:3:0;;12373:48;;;-1:-1:-1;;;12373:48:0;;;;-1:-1:-1;;;;;12425:3:0;;;;-1:-1:-1;;;;;10892:42:0;12373:46;;:48;;;;;;;;;;;;;;10892:42;12373:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12373:55:0;;;12308:120;12304:152;;;12447:9;;-1:-1:-1;;;12447:9:0;;;;;;;;;;;12304:152;24546:8:::1;:20:::0;;-1:-1:-1;;;;;;24546:20:0::1;-1:-1:-1::0;;;;;24546:20:0;;;::::1;::::0;;;::::1;::::0;;24475:99::o;19497:373::-;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;19566:11:::1;10473:4;10517:6;19606:24;;10517:6;19594:36;;;;:::i;:::-;19580:51;::::0;:10;:51:::1;:::i;:::-;:63;;;;:::i;:::-;:92;;;;:::i;:::-;19685:41;::::0;-1:-1:-1;;;19685:41:0;;-1:-1:-1;;;;;;;;;;;19685:41:0::1;::::0;::::1;4591:51:1::0;4658:18;;;4651:34;;;19566:106:0;;-1:-1:-1;;;;;;;;;;;;11157:42:0;19685:12:::1;::::0;4564:18:1;;19685:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;19737:125:0::1;::::0;-1:-1:-1;;;19737:125:0;;-1:-1:-1;;;;;;;;;;;10983:42:0;19737:37:::1;::::0;:125:::1;::::0;19775:10;;19787:6;;-1:-1:-1;;;;;;;;;;;11157:42:0;-1:-1:-1;;;;;;;;;;;11070:42:0;19825:4:::1;::::0;19839::::1;::::0;19846:15:::1;::::0;19737:125:::1;;;:::i;23399:113::-:0;12525:10;-1:-1:-1;;;;;12525:48:0;;;:127;;-1:-1:-1;12642:10:0;;12590:48;;;-1:-1:-1;;;12590:48:0;;;;-1:-1:-1;;;;;12642:10:0;;;;-1:-1:-1;;;;;10892:42:0;12590:46;;:48;;;;;;;;;;;;;;10892:42;12590:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12590:62:0;;;12525:127;12521:166;;;12671:16;;-1:-1:-1;;;12671:16:0;;;;;;;;;;;12521:166;23460:10:::1;::::0;;23454:3:::1;:16:::0;;-1:-1:-1;;;;;;23454:16:0;;::::1;-1:-1:-1::0;;;;;23460:10:0;::::1;23454:16;::::0;;;23481:23:::1;::::0;;23399:113::o;21403:180::-;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;21469:7:::1;::::0;-1:-1:-1;;;;;21469:7:0::1;21455:10;:21:::0;21451:125:::1;;21493:7;:20:::0;;-1:-1:-1;;;;;;21493:20:0::1;::::0;;21403:180::o;21451:125::-:1;21562:1;21546:18:::0;;-1:-1:-1;;;;;;21546:18:0::1;::::0;;21451:125:::1;21403:180::o:0;17789:229::-;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;17882:29:::1;::::0;-1:-1:-1;;;17882:29:0;;17905:4:::1;17882:29;::::0;::::1;527:51:1::0;-1:-1:-1;;;;;;;;;;;11070:42:0;17882:14:::1;::::0;500:18:1;;17882:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17869:10;:42;17865:72;;;17920:17;;-1:-1:-1::0;;;17920:17:0::1;;;;;;;;;;;17865:72;17950:6;::::0;17983:7:::1;::::0;17950:60:::1;::::0;-1:-1:-1;;;17950:60:0;;-1:-1:-1;;;;;17950:6:0;;::::1;::::0;:17:::1;::::0;:60:::1;::::0;-1:-1:-1;;;;;;;;;;;11070:42:0;17983:7;;::::1;::::0;17992:10;;17950:6:::1;::::0;:60:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;17789:229:::0;:::o;22715:215::-;13016:10;-1:-1:-1;;;;;13016:48:0;;;:200;;-1:-1:-1;13134:3:0;;13082:48;;;-1:-1:-1;;;13082:48:0;;;;-1:-1:-1;;;;;13134:3:0;;;;-1:-1:-1;;;;;10892:42:0;13082:46;;:48;;;;;;;;;;;;;;10892:42;13082:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13082:55:0;;;13081:135;;;;-1:-1:-1;13208:8:0;;13156:48;;;-1:-1:-1;;;13156:48:0;;;;-1:-1:-1;;;;;13208:8:0;;;;-1:-1:-1;;;;;10892:42:0;13156:46;;:48;;;;;;;;;;;;;;10892:42;13156:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13156:60:0;;;13081:135;13011:244;;;13236:19;;-1:-1:-1;;;13236:19:0;;;;;;;;;;;13011:244;22834:5:::1;22814:17;:25;22810:58;;;22848:20;;-1:-1:-1::0;;;22848:20:0::1;;;;;;;;;;;22810:58;22879:23;:43:::0;22715:215::o;23689:105::-;12308:10;-1:-1:-1;;;;;12308:48:0;;;:120;;-1:-1:-1;12425:3:0;;12373:48;;;-1:-1:-1;;;12373:48:0;;;;-1:-1:-1;;;;;12425:3:0;;;;-1:-1:-1;;;;;10892:42:0;12373:46;;:48;;;;;;;;;;;;;;10892:42;12373:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12373:55:0;;;12308:120;12304:152;;;12447:9;;-1:-1:-1;;;12447:9:0;;;;;;;;;;;12304:152;23763:8:::1;:23:::0;;-1:-1:-1;;;;;;23763:23:0::1;-1:-1:-1::0;;;;;23763:23:0;;;::::1;::::0;;;::::1;::::0;;23689:105::o;21798:217::-;13016:10;-1:-1:-1;;;;;13016:48:0;;;:200;;-1:-1:-1;13134:3:0;;13082:48;;;-1:-1:-1;;;13082:48:0;;;;-1:-1:-1;;;;;13134:3:0;;;;-1:-1:-1;;;;;10892:42:0;13082:46;;:48;;;;;;;;;;;;;;10892:42;13082:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13082:55:0;;;13081:135;;;;-1:-1:-1;13208:8:0;;13156:48;;;-1:-1:-1;;;13156:48:0;;;;-1:-1:-1;;;;;13208:8:0;;;;-1:-1:-1;;;;;10892:42:0;13156:46;;:48;;;;;;;;;;;;;;10892:42;13156:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13156:60:0;;;13081:135;13011:244;;;13236:19;;-1:-1:-1;;;13236:19:0;;;;;;;;;;;13011:244;21918:5:::1;21898:17;:25;21894:58;;;21932:20;;-1:-1:-1::0;;;21932:20:0::1;;;;;;;;;;;21894:58;21963:24;:44:::0;21798:217::o;24018:93::-;12308:10;-1:-1:-1;;;;;12308:48:0;;;:120;;-1:-1:-1;12425:3:0;;12373:48;;;-1:-1:-1;;;12373:48:0;;;;-1:-1:-1;;;;;12425:3:0;;;;-1:-1:-1;;;;;10892:42:0;12373:46;;:48;;;;;;;;;;;;;;10892:42;12373:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12373:55:0;;;12308:120;12304:152;;;12447:9;;-1:-1:-1;;;12447:9:0;;;;;;;;;;;12304:152;24086:5:::1;:17:::0;;-1:-1:-1;;;;;;24086:17:0::1;-1:-1:-1::0;;;;;24086:17:0;;;::::1;::::0;;;::::1;::::0;;24018:93::o;17405:171::-;17482:15;17500:29;17518:10;17500:17;:29::i;:::-;17482:47;;17542:26;17557:10;17542:14;:26::i;:::-;17471:105;17405:171;:::o;15526:119::-;15576:29;;-1:-1:-1;;;15576:29:0;;15599:4;15576:29;;;527:51:1;15568:69:0;;-1:-1:-1;;;;;;;;;;;11070:42:0;15576:14;;500:18:1;;15576:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15607;;-1:-1:-1;;;15607:29:0;;15630:4;15607:29;;;527:51:1;-1:-1:-1;;;;;;;;;;;11157:42:0;15607:14;;500:18:1;;15607:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18327:400::-;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;18437:29:::1;::::0;-1:-1:-1;;;18437:29:0;;18460:4:::1;18437:29;::::0;::::1;527:51:1::0;-1:-1:-1;;;;;;;;;;;11070:42:0;18437:14:::1;::::0;500:18:1;;18437:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18424:10;:42;18420:72;;;18475:17;;-1:-1:-1::0;;;18475:17:0::1;;;;;;;;;;;18420:72;18520:29;::::0;-1:-1:-1;;;18520:29:0;;18543:4:::1;18520:29;::::0;::::1;527:51:1::0;-1:-1:-1;;;;;;;;;;;11157:42:0;18520:14:::1;::::0;500:18:1;;18520:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18507:10;:42;18503:72;;;18558:17;;-1:-1:-1::0;;;18558:17:0::1;;;;;;;;;;;18503:72;18588:6;::::0;18621:7:::1;::::0;18588:60:::1;::::0;-1:-1:-1;;;18588:60:0;;-1:-1:-1;;;;;18588:6:0;;::::1;::::0;:17:::1;::::0;:60:::1;::::0;-1:-1:-1;;;;;;;;;;;11070:42:0;18621:7;;::::1;::::0;18630:10;;18588:6:::1;::::0;:60:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;18659:6:0::1;::::0;18692:7:::1;::::0;18659:60:::1;::::0;-1:-1:-1;;;18659:60:0;;-1:-1:-1;;;;;18659:6:0;;::::1;::::0;-1:-1:-1;18659:17:0::1;::::0;-1:-1:-1;18659:60:0::1;::::0;-1:-1:-1;;;;;;;;;;;11157:42:0;18692:7:::1;::::0;18701:10;;18659:6:::1;::::0;:60:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18327:400:::0;;:::o;14538:876::-;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;14617:17:::1;14637:22;14653:5;14637:15;:22::i;:::-;14672:41;::::0;-1:-1:-1;;;14672:41:0;;-1:-1:-1;;;;;;;;;;;14672:41:0::1;::::0;::::1;4591:51:1::0;4658:18;;;4651:34;;;14617:42:0;;-1:-1:-1;;;;;;;;;;;;11070:42:0;14672:12:::1;::::0;4564:18:1;;14672:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14724:41:0::1;::::0;-1:-1:-1;;;14724:41:0;;-1:-1:-1;;;;;;;;;;;14724:41:0::1;::::0;::::1;4591:51:1::0;4658:18;;;4651:34;;;-1:-1:-1;;;;;;;;;;;11157:42:0;14724:12:::1;::::0;4564:18:1;;14724:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14834:117:0::1;::::0;-1:-1:-1;;;14834:117:0;;-1:-1:-1;;;;;;;;;;;14834:117:0::1;::::0;::::1;9364:34:1::0;-1:-1:-1;;;;;;;;;;;9414:18:1;;;9407:43;14884:4:0::1;9466:18:1::0;;;9459:50;9525:18;;;9518:34;;;9568:19;;;9561:35;;;14777:14:0::1;9612:19:1::0;;;9605:35;;;9656:19;;;9649:35;;;14928:4:0::1;9700:19:1::0;;;9693:44;14935:15:0::1;9753:19:1::0;;;9746:35;14777:14:0;;;;;-1:-1:-1;;;;;;;;;;;10983:42:0;14834:19:::1;::::0;9298::1;;14834:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14776:175:::0;;-1:-1:-1;14776:175:0;-1:-1:-1;14776:175:0;-1:-1:-1;14964:19:0::1;14999:38;10473:4;14776:175:::0;14999:38:::1;:::i;:::-;14986:52;::::0;:9;:52:::1;:::i;:::-;14964:74;;15051:21;10517:6;15127:23;;10517:6;15115:35;;;;:::i;:::-;15099:12:::0;15075:21:::1;:14:::0;15092:4:::1;15075:21;:::i;:::-;:36;;;;:::i;:::-;:76;;;;:::i;:::-;:88;;;;:::i;:::-;15051:112;;15197:16;15178;:35;15174:74;;;15222:26;;-1:-1:-1::0;;;15222:26:0::1;;;;;;;;;;;15174:74;15306:33;::::0;-1:-1:-1;;;15306:33:0;;15333:4:::1;15306:33;::::0;::::1;527:51:1::0;10665:42:0::1;::::0;15269:16:::1;::::0;10574:42:::1;::::0;10665;;15306:18:::1;::::0;500::1;;15306:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15269:71;::::0;-1:-1:-1;;;;;;15269:71:0::1;::::0;;;;;;-1:-1:-1;;;;;4609:32:1;;;15269:71:0::1;::::0;::::1;4591:51:1::0;4658:18;;;4651:34;4564:18;;15269:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15369:33:0::1;::::0;-1:-1:-1;;;15369:33:0;;15396:4:::1;15369:33;::::0;::::1;527:51:1::0;10574:42:0::1;::::0;15351:17:::1;::::0;10665:42:::1;::::0;15369:18:::1;::::0;500::1;;15369:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15351:55;::::0;-1:-1:-1;;;;;;15351:55:0::1;::::0;;;;;;::::1;::::0;::::1;10285:25:1::0;;;;15404:1:0::1;10326:18:1::0;;;10319:34;10258:18;;15351:55:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14606:808;;;;;;14538:876:::0;;:::o;13425:270::-;13497:16;;;13511:1;13497:16;;;;;;;;;13473:21;;13497:16;;;;;;;;;;;-1:-1:-1;13497:16:0;13473:40;;10755:42;13524:4;13529:1;13524:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13524:23:0;;;:7;;;;;;;;;;;:23;13558:40;;-1:-1:-1;;;13558:40:0;;10574:42;;13558:19;;:40;;13586:4;;13593;;13558:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13618:4;13623:1;13618:7;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;13611:24:0;;13636:8;;;;;;;;;-1:-1:-1;;;;;13636:8:0;13653:4;13658:1;13653:7;;;;;;;;:::i;:::-;;;;;;;;;;;13646:40;;-1:-1:-1;;;13646:40:0;;13680:4;13646:40;;;527:51:1;-1:-1:-1;;;;;13646:25:0;;;;;;500:18:1;;13646:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13611:76;;-1:-1:-1;;;;;;13611:76:0;;;;;;;-1:-1:-1;;;;;4609:32:1;;;13611:76:0;;;4591:51:1;4658:18;;;4651:34;4564:18;;13611:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;24828:101::-;12308:10;-1:-1:-1;;;;;12308:48:0;;;:120;;-1:-1:-1;12425:3:0;;12373:48;;;-1:-1:-1;;;12373:48:0;;;;-1:-1:-1;;;;;12425:3:0;;;;-1:-1:-1;;;;;10892:42:0;12373:46;;:48;;;;;;;;;;;;;;10892:42;12373:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12373:55:0;;;12308:120;12304:152;;;12447:9;;-1:-1:-1;;;12447:9:0;;;;;;;;;;;12304:152;24900:7:::1;:21:::0;;-1:-1:-1;;;;;;24900:21:0::1;-1:-1:-1::0;;;;;24900:21:0;;;::::1;::::0;;;::::1;::::0;;24828:101::o;19039:313::-;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;19152:40:::1;::::0;-1:-1:-1;;;19152:40:0;;19186:4:::1;19152:40;::::0;::::1;527:51:1::0;-1:-1:-1;;;;;19152:25:0;::::1;::::0;::::1;::::0;500:18:1;;19152:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19143:6;:49;19139:79;;;19201:17;;-1:-1:-1::0;;;19201:17:0::1;;;;;;;;;;;19139:79;19263:6;::::0;19231:48:::1;::::0;-1:-1:-1;;;19231:48:0;;-1:-1:-1;;;;;19263:6:0;;::::1;19231:48;::::0;::::1;4591:51:1::0;4658:18;;;4651:34;;;19231:23:0;;::::1;::::0;::::1;::::0;4564:18:1;;19231:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;19290:6:0::1;::::0;:54:::1;::::0;-1:-1:-1;;;19290:54:0;;-1:-1:-1;;;;;19290:6:0;;::::1;::::0;:17:::1;::::0;:54:::1;::::0;19316:7;;19326:2;;19330:6;;19290::::1;::::0;:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19039:313:::0;;;:::o;23206:110::-;12308:10;-1:-1:-1;;;;;12308:48:0;;;:120;;-1:-1:-1;12425:3:0;;12373:48;;;-1:-1:-1;;;12373:48:0;;;;-1:-1:-1;;;;;12425:3:0;;;;-1:-1:-1;;;;;10892:42:0;12373:46;;:48;;;;;;;;;;;;;;10892:42;12373:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12373:55:0;;;12308:120;12304:152;;;12447:9;;-1:-1:-1;;;12447:9:0;;;;;;;;;;;12304:152;23281:10:::1;:27:::0;;-1:-1:-1;;;;;;23281:27:0::1;-1:-1:-1::0;;;;;23281:27:0;;;::::1;::::0;;;::::1;::::0;;23206:110::o;13895:284::-;12752:10;-1:-1:-1;;;;;12752:48:0;;;:122;;-1:-1:-1;12869:5:0;;12817:48;;;-1:-1:-1;;;12817:48:0;;;;-1:-1:-1;;;;;12869:5:0;;;;-1:-1:-1;;;;;10892:42:0;12817:46;;:48;;;;;;;;;;;;;;10892:42;12817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:57:0;;;12752:122;12751:162;;;;-1:-1:-1;12906:7:0;;-1:-1:-1;;;;;12906:7:0;12892:10;:21;;12751:162;12747:196;;;12932:11;;-1:-1:-1;;;12932:11:0;;;;;;;;;;;12747:196;13973:41:::1;::::0;-1:-1:-1;;;13973:41:0;;10574:42:::1;::::0;13973:19:::1;::::0;:41:::1;::::0;14001:4:::1;::::0;14008:5;;;;13973:41:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14032:6;14027:145;14044:16:::0;;::::1;14027:145;;;14089:5;;14095:1;14089:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14108;::::0;-1:-1:-1;;;;;14082:25:0;;::::1;::::0;::::1;::::0;14108:8:::1;14125:5:::0;;14131:1;14125:8;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14118:41;::::0;-1:-1:-1;;;14118:41:0;;14153:4:::1;14118:41;::::0;::::1;527:51:1::0;-1:-1:-1;;;;;14118:26:0;;;::::1;::::0;::::1;::::0;500:18:1;;14118:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14082:78;::::0;-1:-1:-1;;;;;;14082:78:0::1;::::0;;;;;;-1:-1:-1;;;;;4609:32:1;;;14082:78:0::1;::::0;::::1;4591:51:1::0;4658:18;;;4651:34;4564:18;;14082:78:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14062:3:0;::::1;::::0;::::1;:::i;:::-;;;;14027:145;;24243:101:::0;12308:10;-1:-1:-1;;;;;12308:48:0;;;:120;;-1:-1:-1;12425:3:0;;12373:48;;;-1:-1:-1;;;12373:48:0;;;;-1:-1:-1;;;;;12425:3:0;;;;-1:-1:-1;;;;;10892:42:0;12373:46;;:48;;;;;;;;;;;;;;10892:42;12373:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12373:55:0;;;12308:120;12304:152;;;12447:9;;-1:-1:-1;;;12447:9:0;;;;;;;;;;;12304:152;24315:7:::1;:21:::0;;-1:-1:-1;;;;;;24315:21:0::1;-1:-1:-1::0;;;;;24315:21:0;;;::::1;::::0;;;::::1;::::0;;24243:101::o;20510:809::-;20638:76;;-1:-1:-1;;;20638:76:0;;-1:-1:-1;;;;;;;;;;;20638:76:0;;;12497:34:1;-1:-1:-1;;;;;;;;;;;12547:18:1;;;12540:43;20696:4:0;12599:18:1;;;12592:50;20702:11:0;12658:18:1;;;12651:34;20574:4:0;;;;;;-1:-1:-1;;;;;;;;;;;10983:42:0;20638:27;;12431:19:1;;20638:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20754:66;;-1:-1:-1;;;20754:66:0;;;;;12898:25:1;;;-1:-1:-1;;;;;;;;;;;12977:18:1;;;12970:43;-1:-1:-1;;;;;;;;;;;13029:18:1;;;13022:43;20591:123:0;;-1:-1:-1;20591:123:0;-1:-1:-1;20726:23:0;;-1:-1:-1;;;;;;;;;;;10983:42:0;20754:19;;12871:18:1;;20754:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;20860:66:0;;-1:-1:-1;;;20860:66:0;;;;;12898:25:1;;;-1:-1:-1;;;;;;;;;;;12977:18:1;;;12970:43;-1:-1:-1;;;;;;;;;;;13029:18:1;;;13022:43;20725:95:0;;-1:-1:-1;20832:23:0;;-1:-1:-1;;;;;;;;;;;10983:42:0;20860:19;;12871:18:1;;20860:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;20831:95:0;-1:-1:-1;20937:48:0;10473:4;20831:95;20937:48;:::i;:::-;;-1:-1:-1;20996:45:0;10473:4;20996:45;;:::i;:::-;;-1:-1:-1;21097:36:0;21115:18;20996:45;21097:36;:::i;:::-;21058;21076:18;21058:15;:36;:::i;:::-;:75;:88;;;;;21137:9;21058:88;21054:258;;;21171:36;21189:18;21171:15;:36;:::i;:::-;21170:45;;21211:4;21170:45;:::i;:::-;21163:52;20510:809;-1:-1:-1;;;;;;20510:809:0:o;21054:258::-;21256:36;21274:18;21256:15;:36;:::i;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;589:131::-;-1:-1:-1;;;;;664:31:1;;654:42;;644:70;;710:1;707;700:12;644:70;589:131;:::o;725:247::-;784:6;837:2;825:9;816:7;812:23;808:32;805:52;;;853:1;850;843:12;805:52;892:9;879:23;911:31;936:5;911:31;:::i;:::-;961:5;725:247;-1:-1:-1;;;725:247:1:o;1658:248::-;1726:6;1734;1787:2;1775:9;1766:7;1762:23;1758:32;1755:52;;;1803:1;1800;1793:12;1755:52;-1:-1:-1;;1826:23:1;;;1896:2;1881:18;;;1868:32;;-1:-1:-1;1658:248:1:o;2141:456::-;2218:6;2226;2234;2287:2;2275:9;2266:7;2262:23;2258:32;2255:52;;;2303:1;2300;2293:12;2255:52;2342:9;2329:23;2361:31;2386:5;2361:31;:::i;:::-;2411:5;-1:-1:-1;2468:2:1;2453:18;;2440:32;2481:33;2440:32;2481:33;:::i;:::-;2141:456;;2533:7;;-1:-1:-1;;;2587:2:1;2572:18;;;;2559:32;;2141:456::o;2825:615::-;2911:6;2919;2972:2;2960:9;2951:7;2947:23;2943:32;2940:52;;;2988:1;2985;2978:12;2940:52;3028:9;3015:23;3057:18;3098:2;3090:6;3087:14;3084:34;;;3114:1;3111;3104:12;3084:34;3152:6;3141:9;3137:22;3127:32;;3197:7;3190:4;3186:2;3182:13;3178:27;3168:55;;3219:1;3216;3209:12;3168:55;3259:2;3246:16;3285:2;3277:6;3274:14;3271:34;;;3301:1;3298;3291:12;3271:34;3354:7;3349:2;3339:6;3336:1;3332:14;3328:2;3324:23;3320:32;3317:45;3314:65;;;3375:1;3372;3365:12;3314:65;3406:2;3398:11;;;;;3428:6;;-1:-1:-1;2825:615:1;;-1:-1:-1;;;;2825:615:1:o;3445:251::-;3515:6;3568:2;3556:9;3547:7;3543:23;3539:32;3536:52;;;3584:1;3581;3574:12;3536:52;3616:9;3610:16;3635:31;3660:5;3635:31;:::i;3701:127::-;3762:10;3757:3;3753:20;3750:1;3743:31;3793:4;3790:1;3783:15;3817:4;3814:1;3807:15;3833:168;3906:9;;;3937;;3954:15;;;3948:22;;3934:37;3924:71;;3975:18;;:::i;:::-;3833:168;;;;:::o;4006:217::-;4046:1;4072;4062:132;;4116:10;4111:3;4107:20;4104:1;4097:31;4151:4;4148:1;4141:15;4179:4;4176:1;4169:15;4062:132;-1:-1:-1;4208:9:1;;4006:217::o;4228:184::-;4298:6;4351:2;4339:9;4330:7;4326:23;4322:32;4319:52;;;4367:1;4364;4357:12;4319:52;-1:-1:-1;4390:16:1;;4228:184;-1:-1:-1;4228:184:1:o;4696:164::-;4772:13;;4821;;4814:21;4804:32;;4794:60;;4850:1;4847;4840:12;4865:202;4932:6;4985:2;4973:9;4964:7;4960:23;4956:32;4953:52;;;5001:1;4998;4991:12;4953:52;5024:37;5051:9;5024:37;:::i;5847:245::-;5926:6;5934;5987:2;5975:9;5966:7;5962:23;5958:32;5955:52;;;6003:1;6000;5993:12;5955:52;-1:-1:-1;;6026:16:1;;6082:2;6067:18;;;6061:25;6026:16;;6061:25;;-1:-1:-1;5847:245:1:o;6097:125::-;6162:9;;;6183:10;;;6180:36;;;6196:18;;:::i;6227:128::-;6294:9;;;6315:11;;;6312:37;;;6329:18;;:::i;6360:682::-;6669:25;;;6725:2;6710:18;;6703:34;;;;-1:-1:-1;;;;;6811:15:1;;;6806:2;6791:18;;6784:43;6863:15;;;6858:2;6843:18;;6836:43;6923:14;6916:22;6910:3;6895:19;;6888:51;6976:15;6764:3;6955:19;;6948:44;7023:3;7008:19;;7001:35;6656:3;6641:19;;6360:682::o;7047:127::-;7108:10;7103:3;7099:20;7096:1;7089:31;7139:4;7136:1;7129:15;7163:4;7160:1;7153:15;7179:1105;7274:6;7305:2;7348;7336:9;7327:7;7323:23;7319:32;7316:52;;;7364:1;7361;7354:12;7316:52;7397:9;7391:16;7426:18;7467:2;7459:6;7456:14;7453:34;;;7483:1;7480;7473:12;7453:34;7521:6;7510:9;7506:22;7496:32;;7566:7;7559:4;7555:2;7551:13;7547:27;7537:55;;7588:1;7585;7578:12;7537:55;7617:2;7611:9;7639:2;7635;7632:10;7629:36;;;7645:18;;:::i;:::-;7691:2;7688:1;7684:10;7723:2;7717:9;7786:2;7782:7;7777:2;7773;7769:11;7765:25;7757:6;7753:38;7841:6;7829:10;7826:22;7821:2;7809:10;7806:18;7803:46;7800:72;;;7852:18;;:::i;:::-;7888:2;7881:22;7938:18;;;7972:15;;;;-1:-1:-1;8014:11:1;;;8010:20;;;8042:19;;;8039:39;;;8074:1;8071;8064:12;8039:39;8098:11;;;;8118:135;8134:6;8129:3;8126:15;8118:135;;;8200:10;;8188:23;;8151:12;;;;8231;;;;8118:135;;;8272:6;7179:1105;-1:-1:-1;;;;;;;;7179:1105:1:o;8289:651::-;-1:-1:-1;;;;;8647:15:1;;;8629:34;;8699:15;;;;8694:2;8679:18;;8672:43;8746:2;8731:18;;8724:34;8806:10;8794:23;;;8789:2;8774:18;;8767:51;8609:3;8849;8834:19;;8827:32;;;-1:-1:-1;8875:19:1;;;8868:30;8930:3;8915:19;;8289:651::o;9792:306::-;9880:6;9888;9896;9949:2;9937:9;9928:7;9924:23;9920:32;9917:52;;;9965:1;9962;9955:12;9917:52;9994:9;9988:16;9978:26;;10044:2;10033:9;10029:18;10023:25;10013:35;;10088:2;10077:9;10073:18;10067:25;10057:35;;9792:306;;;;;:::o;10364:127::-;10425:10;10420:3;10416:20;10413:1;10406:31;10456:4;10453:1;10446:15;10480:4;10477:1;10470:15;10496:759;-1:-1:-1;;;;;10782:15:1;;;10764:34;;10714:2;10817;10835:18;;;10828:30;;;10907:13;;10699:18;;;10929:22;;;10666:4;;11008:15;;;;10736:19;;10817:2;10982;10967:18;;;10666:4;11051:178;11065:6;11062:1;11059:13;11051:178;;;11130:13;;11126:22;;11114:35;;11204:15;;;;11169:12;;;;11087:1;11080:9;11051:178;;;-1:-1:-1;11246:3:1;;10496:759;-1:-1:-1;;;;;;;;10496:759:1:o;11260:806::-;-1:-1:-1;;;;;11556:15:1;;;11538:34;;11488:2;11591;11609:18;;;11602:30;;;11473:18;;;11667:22;;;11440:4;;11746:6;;11720:2;11705:18;;11440:4;11780:260;11794:6;11791:1;11788:13;11780:260;;;11869:6;11856:20;11889:31;11914:5;11889:31;:::i;:::-;11945:14;;11933:27;;12015:15;;;;11980:12;;;;11816:1;11809:9;11780:260;;;-1:-1:-1;12057:3:1;11260:806;-1:-1:-1;;;;;;;;11260:806:1:o;12071:135::-;12110:3;12131:17;;;12128:43;;12151:18;;:::i;:::-;-1:-1:-1;12198:1:1;12187:13;;12071:135::o;13076:263::-;13152:6;13160;13213:2;13201:9;13192:7;13188:23;13184:32;13181:52;;;13229:1;13226;13219:12;13181:52;13258:9;13252:16;13242:26;;13287:46;13329:2;13318:9;13314:18;13287:46;:::i;:::-;13277:56;;13076:263;;;;;:::o

Swarm Source

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