Contract 0xf4d73326c13a4fc5fd7a064217e12780e9bd62c3 19

 

Contract Overview

SushiSwap: MiniChefV2
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xda71a9fe2974ab303308adebd875c44c4e930acaec015b5f9bb2f47d234335daWithdraw And Har...1950428352024-03-28 9:07:1031 mins ago0x41fa9cf827a2fa29f755fe97161963d6ab4cd714 IN  SushiSwap: MiniChefV20 ETH0.00000542 0.010002
0x5e0c7d23457191973c016990cad61c1b3bb9c797716148e7ec6485e149a84785Harvest1950060082024-03-28 6:33:453 hrs 4 mins ago0x0b818dc9d41732617dfc5bc8dff03dac632780e1 IN  SushiSwap: MiniChefV20 ETH0.00000311 0.01
0xa1db5105e56cf50bbfa4d8d4ace0c8d897623d72500a99dec9b5ef475a83c2aaHarvest1950054832024-03-28 6:31:363 hrs 6 mins ago0x0b818dc9d41732617dfc5bc8dff03dac632780e1 IN  SushiSwap: MiniChefV20 ETH0.00000316 0.01
0xa770788fb254fe23cfd8da3fd38f8ad96cae61183eca7cee734b48c4c33c3e87Deposit1948999262024-03-27 23:09:5910 hrs 28 mins ago0x38107bea024a5e78070208ef859972a828e7fb5f IN  SushiSwap: MiniChefV20 ETH0.00001042 0.01
0x383fa078aca652d42abc27c41ad81908e179c708b6ed649573f9ab6328fe9b12Harvest1948899112024-03-27 22:27:5411 hrs 10 mins ago0x85204a5e932b69455822033f33e378dff4bb8960 IN  SushiSwap: MiniChefV20 ETH0.00000489 0.01
0x0de23a2ed79ba23276bb08ed7d72d55a2111388813f6eb609f93ff4e4913a86cHarvest1948699442024-03-27 21:04:0512 hrs 34 mins ago0xa8d032e3d65f2c009bce3cd4e68d68978624abff IN  SushiSwap: MiniChefV20 ETH0.000002120.01
0xebe667d5352adb947eada8422e46ec9add4459e325c87fb25cb27e49902660ffDeposit1948649532024-03-27 20:43:0712 hrs 55 mins ago0xa8d032e3d65f2c009bce3cd4e68d68978624abff IN  SushiSwap: MiniChefV20 ETH0.000002020.01
0x5612699846853dbc18ac5b65e6e3d3afe922a12c9707ca26a789b3fd53526cffHarvest1948365392024-03-27 18:44:2414 hrs 54 mins ago0xfecd0cb6ee16c61bc7e8c5c7a464f6b3a8f1a075 IN  SushiSwap: MiniChefV20 ETH0.00001332 0.01
0xf33f5ceb551161096e38323f0f11186ac2d1b975a1c841b7558fdd88fd9d9df6Harvest1948363242024-03-27 18:43:3014 hrs 55 mins ago0xfecd0cb6ee16c61bc7e8c5c7a464f6b3a8f1a075 IN  SushiSwap: MiniChefV20 ETH0.00001332 0.01
0x7902d151829a67e46b1fbeb9129064937cba2f2089b28245720f1434e45ae5ffHarvest1948362352024-03-27 18:43:0614 hrs 55 mins ago0xfecd0cb6ee16c61bc7e8c5c7a464f6b3a8f1a075 IN  SushiSwap: MiniChefV20 ETH0.00001332 0.01
0x5481ad91f46d2d5766cfc5f43ff25435d4a57a69831fb9ebda23eff46980597aDeposit1948304312024-03-27 18:18:5215 hrs 19 mins ago0xa8d032e3d65f2c009bce3cd4e68d68978624abff IN  SushiSwap: MiniChefV20 ETH0.000033440.01
0x6f356e6cc8cd5cf9d3e38adbc80a9b1c6ff70c55a9273c0a218f470fcbebb6b6Withdraw And Har...1948280972024-03-27 18:09:0815 hrs 29 mins ago0xdbe2258624f94ab8ee30ceb67b2a078b24bb6d6d IN  SushiSwap: MiniChefV20 ETH0.00001724 0.01
0x7e7d7d63f12b96d012922e5d93176bcecc1796b2855f46777a37e2654f3ec2b1Harvest1948279922024-03-27 18:08:4215 hrs 29 mins ago0xdbe2258624f94ab8ee30ceb67b2a078b24bb6d6d IN  SushiSwap: MiniChefV20 ETH0.00001453 0.01
0x0d230365c755e87db1b9827d2b37b376954e650cc245c15eeb7bb8fdba5986aeHarvest1948204542024-03-27 17:37:1316 hrs 1 min ago0x4ca7ceb2d96f660f46c8bc9416d56a52ca99bd36 IN  SushiSwap: MiniChefV20 ETH0.000005740.01
0x294f04f2edaf87f5e9871fe9eb74eb0d269fd85ae533898c111a5cadec0fd2acHarvest1948147682024-03-27 17:13:2516 hrs 25 mins ago0x424a5d72b31912e88d1352cd5020763aa92acd31 IN  SushiSwap: MiniChefV20 ETH0.00000233 0.01
0xc28377bf366fbff392725b42df64b8191831dcf0ebfc7900da46a7c1433022a7Harvest1948047022024-03-27 16:31:1617 hrs 7 mins ago0x85204a5e932b69455822033f33e378dff4bb8960 IN  SushiSwap: MiniChefV20 ETH0.00000378 0.01
0x2acf885b7396faa921aa94b772bc04ebe867565b0679343a94e468933700643cHarvest1948040872024-03-27 16:28:4017 hrs 9 mins ago0x85204a5e932b69455822033f33e378dff4bb8960 IN  SushiSwap: MiniChefV20 ETH0.00000378 0.01
0x001057da566ca6486a3c04078fbcb23378da8860cb37d57439ef929dc6fa98e8Withdraw And Har...1948022082024-03-27 16:20:5117 hrs 17 mins ago0x85204a5e932b69455822033f33e378dff4bb8960 IN  SushiSwap: MiniChefV20 ETH0.00000508 0.022976
0x66595267b81f63b88e3a172d67ea14a8fa6cde2f65da6c0f5d36ce17135d44efHarvest1947990292024-03-27 16:07:3217 hrs 31 mins ago0x2f061aa574882c84649230b475a44d35795cc018 IN  SushiSwap: MiniChefV20 ETH0.0000019 0.01
0xd4d1d75be756b231b987e1c380a09d4d04f973e2e80616893941b18479d6807dHarvest1947897432024-03-27 15:28:3718 hrs 9 mins ago0x72a3e5d532d46f49488026739c6dec2ec2feb275 IN  SushiSwap: MiniChefV20 ETH0.00000214 0.011653
0x00f3975758607a6a9784caf7758c0a12a5b0bdf3459c524c1b52922a505aa540Harvest1947700542024-03-27 14:05:5019 hrs 32 mins ago0x1feeccae66cebbd30f6efddcd9f7ae3a5fe94ded IN  SushiSwap: MiniChefV20 ETH0.00001958 0.298754
0x517f16b63549c42a9757f2837dbb07404e438cced344e0151087f37a9455af3bDeposit1947500782024-03-27 12:42:1020 hrs 56 mins ago0xd442f0ff0842ade97ccdfba64e28b9e3e96f5e21 IN  SushiSwap: MiniChefV20 ETH0.00000219 0.01
0x83c7a814af67b669989b7d6e63c6c56e483e931eeedd11f327ba5b9514b11998Harvest1947322722024-03-27 11:27:4322 hrs 10 mins ago0x53beb1e70d3d051d1e8b061ab93a6212c728317d IN  SushiSwap: MiniChefV20 ETH0.00000125 0.01
0x161667759cd76d6fe10e7bc12613307c3a82e6977133d4e008f208d16cf6ee2aHarvest1947199382024-03-27 10:36:1723 hrs 2 mins ago0xaead010e6b8355537f4453e980204b067d208548 IN  SushiSwap: MiniChefV20 ETH0.00000146 0.01
0x169eb5c67f02fab1363e945a03c87ed19cfa986c5ecaebf57d4f06136189851aHarvest1947198552024-03-27 10:35:5623 hrs 2 mins ago0xaead010e6b8355537f4453e980204b067d208548 IN  SushiSwap: MiniChefV20 ETH0.00000146 0.01
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x2a0d4385766e2ca64c56d349b1bb1411c28e612c8029b8d1952924f61471921b720865162023-03-21 10:18:10372 days 23 hrs ago SushiSwap: MiniChefV2 0xcb0e5bfa72bbb4d16ab5aa0c60601c438f04b4ad0 ETH
0x2a0d4385766e2ca64c56d349b1bb1411c28e612c8029b8d1952924f61471921b720865162023-03-21 10:18:10372 days 23 hrs ago SushiSwap: MiniChefV2 0xcb0e5bfa72bbb4d16ab5aa0c60601c438f04b4ad0 ETH
0x2a0d4385766e2ca64c56d349b1bb1411c28e612c8029b8d1952924f61471921b720865162023-03-21 10:18:10372 days 23 hrs ago 0xadb9ddfa24e326dc9d337561f6c7ba2a6ecec697 SushiSwap: MiniChefV20 ETH
0x2a0d4385766e2ca64c56d349b1bb1411c28e612c8029b8d1952924f61471921b720865162023-03-21 10:18:10372 days 23 hrs ago 0xadb9ddfa24e326dc9d337561f6c7ba2a6ecec697 SushiSwap: MiniChefV20 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago 0x88a0b00bbe918ee00e3482f71962070dc052984b SushiSwap: MiniChefV20 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago SushiSwap: MiniChefV2 0xb7e50106a5bd3cf21af210a755f9c8740890a8c90 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e606 SushiSwap: MiniChefV20 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago SushiSwap: MiniChefV2 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e6060 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago 0x88a0b00bbe918ee00e3482f71962070dc052984b SushiSwap: MiniChefV20 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e606 SushiSwap: MiniChefV20 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e606 SushiSwap: MiniChefV20 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago SushiSwap: MiniChefV2 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e6060 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago SushiSwap: MiniChefV2 SushiSwap: SushiToken0 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago SushiSwap: MiniChefV2 0xb7e50106a5bd3cf21af210a755f9c8740890a8c90 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago 0x88a0b00bbe918ee00e3482f71962070dc052984b SushiSwap: MiniChefV20 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e606 SushiSwap: MiniChefV20 ETH
0xe5fb7c086b8d18f20d8297ba9256b0f7a5192a7e008d9ca8c5c449f383e8539c720864322023-03-21 10:17:55372 days 23 hrs ago 0x88a0b00bbe918ee00e3482f71962070dc052984b SushiSwap: MiniChefV20 ETH
0x1de6b958a6d63575c3602ba9da3f2f9f165e588f5ace062b9df212b567d3264b720864252023-03-21 10:17:53372 days 23 hrs ago SushiSwap: MiniChefV2 0xb7e50106a5bd3cf21af210a755f9c8740890a8c90 ETH
0x1de6b958a6d63575c3602ba9da3f2f9f165e588f5ace062b9df212b567d3264b720864252023-03-21 10:17:53372 days 23 hrs ago 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e606 SushiSwap: MiniChefV20 ETH
0x1de6b958a6d63575c3602ba9da3f2f9f165e588f5ace062b9df212b567d3264b720864252023-03-21 10:17:53372 days 23 hrs ago 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e606 SushiSwap: MiniChefV20 ETH
0x1de6b958a6d63575c3602ba9da3f2f9f165e588f5ace062b9df212b567d3264b720864252023-03-21 10:17:53372 days 23 hrs ago SushiSwap: MiniChefV2 0x1a9c20e2b0ac11ebecbdca626bba566c4ce8e6060 ETH
0x1de6b958a6d63575c3602ba9da3f2f9f165e588f5ace062b9df212b567d3264b720864252023-03-21 10:17:53372 days 23 hrs ago SushiSwap: MiniChefV2 0xb7e50106a5bd3cf21af210a755f9c8740890a8c90 ETH
0x4978448cd2c4a46f6fa98be367702e267b0e9b31d1c0012a5b7eadd9b72965aa720843902023-03-21 10:09:22372 days 23 hrs ago SushiSwap: MiniChefV2 0x7418f5a2621e13c05d1efbd71ec922070794b90a0 ETH
0x4978448cd2c4a46f6fa98be367702e267b0e9b31d1c0012a5b7eadd9b72965aa720843902023-03-21 10:09:22372 days 23 hrs ago 0x294eadcc534084c1333dc99e1afcf3e92c5c1297 SushiSwap: MiniChefV20 ETH
0x4978448cd2c4a46f6fa98be367702e267b0e9b31d1c0012a5b7eadd9b72965aa720843902023-03-21 10:09:22372 days 23 hrs ago 0x294eadcc534084c1333dc99e1afcf3e92c5c1297 SushiSwap: MiniChefV20 ETH
[ Download CSV Export 
Latest 25 Deposits
L2 Txn Hash L1 Deposit Txn Value Token
0x0b06a40d29542bee436ba05fb93a87992cf0b95652f348846b2a329cb88b36f02023-11-29 1:18:59120 days 8 hrs ago0x224b5048dc70013a21961dc68595a70a82b36c509e75e7d78e054d6cd27cb4ba1,464.343767727943729561 SushiToken (SUSHI)
0x865632ec5229c0447e2541d4780a20f384c2c6b688a6072c4d05930ce67b59b82023-11-26 0:01:23123 days 9 hrs ago0xf91b5d1c878adab054a186e7f44373f5760e0f5ff8fd97876a4ead993228f398775.61704610335112739 SushiToken (SUSHI)
0x0d1f74bbee375f7725f3140cafca8d595376314bf1225278cd7dea93dd5734132023-11-24 14:36:59124 days 19 hrs ago0x2a91c05428ed3f467424ebc98fe669d10ffdcc2c0e0e276b64be63148e1ff9d8481.484716974656728618 SushiToken (SUSHI)
0x2d6d73d39029c1caf559a551a3bfecd01e46e727021ca536188d3cd6fb8363672023-11-23 17:50:11125 days 15 hrs ago0x68c8d497f6dcc2d4f418bad853e8e8798f636c038b83e27dc2880a63b4b578b75,383.92419794146368858 SushiToken (SUSHI)
0x820b4cee4a4f0b49579cc0cb0bdd6dd7aac3c4433f40825e6a9528ce321cbab72023-11-14 1:57:35135 days 7 hrs ago0x203b7dd5a77d2ca0ee8dd908b92079733eb74af7068b775ad8f0c2d7bf931d515,062.258399658054592707 SushiToken (SUSHI)
0x8797f9e13a7162eea638a97c8bbb00aaafa8b467442c46d314874cfba096dc1e2023-11-05 0:00:35144 days 9 hrs ago0xe8a348c43ca4327e5e6c50c2c0e0d7ba67eaa600b32e0504ca88888f534d88f51,111.71256618172401636 SushiToken (SUSHI)
0x924ffed70cf4f84240de41b10125fa3d0d4f517de3b021ca11704edde24c468b2023-11-03 0:04:47146 days 9 hrs ago0x67879a46113154dd47eacddda3682ba2647c948c30ec53906f5975e27c05ef172,785.950286878468983118 SushiToken (SUSHI)
0x11b322c2afbaef4c524ecc197c987fb1b06f2e4a3ab34b216081deb8710420f82023-10-29 0:00:47151 days 9 hrs ago0x70e2e75e127090861a9df195d9c9b04ae6da24d6b17edd8191a9f90698e0678c2,405.707617957125786614 SushiToken (SUSHI)
0x21299d8efb4d282266318ff4c3014c2ccbdb7e7b366eaece47e2c2534a56f5872023-10-15 0:00:59165 days 9 hrs ago0xc32cc574ff3e07dbc5209eaaf70d1da25ef5ddb970d4bc954eea2d3fe5a6bf782,494.079914139255395155 SushiToken (SUSHI)
0x202fb0a9701e3c974ca30a70a3df059b4d252fb283ccc171b330d119f219943a2023-10-10 12:34:47169 days 21 hrs ago0xde8d08f4571b4aea4f98ff4d0b0851cee20e07e238182f34e27ed7f7e637632d9,214.040353301988337664 SushiToken (SUSHI)
0xcf63ff55368b6b82f8741ad49d7f078345fb20c2200cf43c57c7e35c4403c62a2023-09-24 0:01:11186 days 9 hrs ago0x37e9c716e7c683543f339b7d537dd1359162be0f5f6f51df1511a2b9d56b2e1f3,888.38103201370277581 SushiToken (SUSHI)
0x2ecb1f4e279cf0e2ef6febd7cdcf5a13b3a1314c4511ed4ddcc68c89fd765f112023-09-17 0:00:59193 days 9 hrs ago0x3d37ee6d720a82ddb766d32f10a538528b7f005c5f4e5118bf0bd2c4ac3e6dde4,897.88592875929352082 SushiToken (SUSHI)
0xb7be89874f7c9e3f5f519f9202eaac6e5557c15d9efc4d5c2b894de36d95f9522023-09-10 0:00:59200 days 9 hrs ago0x6219a922528a1d3e30a785a0cd76538bb50727e5ce7fdfb02bb6be57b4c95ea914,742.796838876946452472 SushiToken (SUSHI)
0x39a64b0608203f4600038e7a85d5a90e5b587f4dbc003be21e9f082f1f1d4adb2023-08-20 0:00:59221 days 9 hrs ago0x7e3fe9d46ab53844bb35414ad62bcd38fdd631c73d0f8b8c7894bd6577f7a4734,917.443271693721745044 SushiToken (SUSHI)
0x0fc5627c43464802c417fa3fc8d10a697f42aa51d35104f8565b99794945d73f2023-08-13 0:00:47228 days 9 hrs ago0x650c2a5ce9655e8ed922f022af24ef1764b2babe663bae49ba0e02ca18bf46124,914.789762853372186984 SushiToken (SUSHI)
0x2d2308fc94da33f9834f39e841b727714f29c49506b91fa2ff0cc26044b2d2a32023-08-06 0:00:47235 days 9 hrs ago0xf8b0c464c0d3a4d3963cc10aacc0a585d7eca49232800d489f664f2acf0fadef8,030.433141249036718572 SushiToken (SUSHI)
0xdd00dd533163e6e011775559afa298ec9c51f369fa3ac46dad30f4dafc5bbef82023-07-30 0:00:59242 days 9 hrs ago0xa59d08483717fa7f90f907215a1b0120d1eb6526c1805f8979f23dbf5d90c0ce8,023.056355473466471566 SushiToken (SUSHI)
0xb5e6de80bb7df2bb3c3f170443031382b5f597da47aad5a94fb7f186c5ca4f122023-07-23 0:00:47249 days 9 hrs ago0xd50a3e95acab69ba96cdb597c9db812658e1a3fc4699d953c72bc1998cdfdea88,007.340594473338554032 SushiToken (SUSHI)
0x1bd74bbb49deb4eced57d08acc691d3830b252835f3c2300810ab39d48ab6af52023-07-16 0:00:47256 days 9 hrs ago0xa7088815842618f54fab53b05762b9d0b837baaa2504b7842068406fab7e15de15,964.486972691166514309 SushiToken (SUSHI)
0x3450060808e1ba68146902b07ddfd84fbad0146520ed0233fa4b83003237bfc62023-07-02 0:00:35270 days 9 hrs ago0xe354cef4645b49e194cc18f6e62009477971ddf746022007484f1e40c55b22487,989.540089667071218866 SushiToken (SUSHI)
0xefc469b4bc3e3f6133ebdc06db2c72025d69da868f6c1b3c2634827ad87e4e1d2023-06-25 0:00:35277 days 9 hrs ago0xe4f371691c3fbfdc18a50ec2b9a7b10a024ee5eaa1f644d87221a55f0cd05b9d15,623.49479708922438479 SushiToken (SUSHI)
0xf707c78df55dd9d40f8707a161def974046c9cb52985cafdb31671398f8cc0062023-06-18 0:00:47284 days 9 hrs ago0x7eb055c1d16619b973857550ec036d3b237e84d41d9a6bc88f00b1f7d60b517215,604.684906892873283917 SushiToken (SUSHI)
0xb1202ae79499bd740fd3e58fed7b8fad055b92754881d794a5e93b6978a3a53e2023-06-11 0:00:47291 days 9 hrs ago0x5f156b809205883911ec4faf828000352996009b5ccab261debba6d83c31d6ba15,559.037540788631026806 SushiToken (SUSHI)
0xa390117fcc5d80c08b54a125d249e685545633dff6a68941a872238c26cba2102023-06-04 0:00:47298 days 9 hrs ago0x62bf9e3df5b11d6171774cb2503e2b7653c3934645d54c4049926397e985a27215,592.895611600744106614 SushiToken (SUSHI)
0xc56fc45ad89403988e037b6eda74a43d15207a9c7546afb0c25837686af3411d2023-05-28 0:00:47305 days 9 hrs ago0x5acc055073edf17cd99c57a75fcaf53703a37be1bc511a237ce1e116c2e923c315,601.98713061510780397 SushiToken (SUSHI)
[ Download CSV Export 
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
MiniChefV2

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2021-08-31
*/

/**
 *Submitted for verification at polygonscan.com on 2021-06-09
*/

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

// File @boringcrypto/boring-solidity/contracts/libraries/[email protected]

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;
// a library for performing overflow-safe math, updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math)
library BoringMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {require(b == 0 || (c = a * b)/b == a, "BoringMath: Mul Overflow");}
    function to128(uint256 a) internal pure returns (uint128 c) {
        require(a <= uint128(-1), "BoringMath: uint128 Overflow");
        c = uint128(a);
    }
    function to64(uint256 a) internal pure returns (uint64 c) {
        require(a <= uint64(-1), "BoringMath: uint64 Overflow");
        c = uint64(a);
    }
    function to32(uint256 a) internal pure returns (uint32 c) {
        require(a <= uint32(-1), "BoringMath: uint32 Overflow");
        c = uint32(a);
    }
}

library BoringMath128 {
    function add(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

library BoringMath64 {
    function add(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}

library BoringMath32 {
    function add(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
    function sub(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a - b) <= a, "BoringMath: Underflow");}
}


// File @boringcrypto/boring-solidity/contracts/interfaces/[email protected]

pragma solidity 0.6.12;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    // EIP 2612
    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
}


// File @boringcrypto/boring-solidity/contracts/libraries/[email protected]

pragma solidity 0.6.12;
library BoringERC20 {
    function safeSymbol(IERC20 token) internal view returns(string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x95d89b41));
        return success && data.length > 0 ? abi.decode(data, (string)) : "???";
    }

    function safeName(IERC20 token) internal view returns(string memory) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x06fdde03));
        return success && data.length > 0 ? abi.decode(data, (string)) : "???";
    }

    function safeDecimals(IERC20 token) internal view returns (uint8) {
        (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x313ce567));
        return success && data.length == 32 ? abi.decode(data, (uint8)) : 18;
    }

    function safeTransfer(IERC20 token, address to, uint256 amount) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0xa9059cbb, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: Transfer failed");
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 amount) internal {
        (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0x23b872dd, from, to, amount));
        require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: TransferFrom failed");
    }
}


// File @boringcrypto/boring-solidity/contracts/[email protected]

// Audit on 5-Jan-2021 by Keno and BoringCrypto

// P1 - P3: OK
pragma solidity 0.6.12;
// solhint-disable avoid-low-level-calls
// T1 - T4: OK
contract BaseBoringBatchable {
    function _getRevertMsg(bytes memory _returnData) internal pure returns (string memory) {
        // If the _res length is less than 68, then the transaction failed silently (without a revert message)
        if (_returnData.length < 68) return "Transaction reverted silently";

        assembly {
            // Slice the sighash.
            _returnData := add(_returnData, 0x04)
        }
        return abi.decode(_returnData, (string)); // All that remains is the revert string
    }    
    
    // F3 - F9: OK
    // F1: External is ok here because this is the batch function, adding it to a batch makes no sense
    // F2: Calls in the batch may be payable, delegatecall operates in the same context, so each call in the batch has access to msg.value
    // C1 - C21: OK
    // C3: The length of the loop is fully under user control, so can't be exploited
    // C7: Delegatecall is only used on the same contract, so it's safe
    function batch(bytes[] calldata calls, bool revertOnFail) external payable returns(bool[] memory successes, bytes[] memory results) {
        // Interactions
        successes = new bool[](calls.length);
        results = new bytes[](calls.length);
        for (uint256 i = 0; i < calls.length; i++) {
            (bool success, bytes memory result) = address(this).delegatecall(calls[i]);
            require(success || !revertOnFail, _getRevertMsg(result));
            successes[i] = success;
            results[i] = result;
        }
    }
}

// T1 - T4: OK
contract BoringBatchable is BaseBoringBatchable {
    // F1 - F9: OK
    // F6: Parameters can be used front-run the permit and the user's permit will fail (due to nonce or other revert)
    //     if part of a batch this could be used to grief once as the second call would not need the permit
    // C1 - C21: OK
    function permitToken(IERC20 token, address from, address to, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {
        // Interactions
        // X1 - X5
        token.permit(from, to, amount, deadline, v, r, s);
    }
}


// File @boringcrypto/boring-solidity/contracts/[email protected]

// Audit on 5-Jan-2021 by Keno and BoringCrypto

// P1 - P3: OK
pragma solidity 0.6.12;

// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol
// Edited by BoringCrypto

// T1 - T4: OK
contract BoringOwnableData {
    // V1 - V5: OK
    address public owner;
    // V1 - V5: OK
    address public pendingOwner;
}

// T1 - T4: OK
contract BoringOwnable is BoringOwnableData {
    // E1: OK
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () public {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

    // F1 - F9: OK
    // C1 - C21: OK
    function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner {
        if (direct) {
            // Checks
            require(newOwner != address(0) || renounce, "Ownable: zero address");

            // Effects
            emit OwnershipTransferred(owner, newOwner);
            owner = newOwner;
            pendingOwner = address(0);
        } else {
            // Effects
            pendingOwner = newOwner;
        }
    }

    // F1 - F9: OK
    // C1 - C21: OK
    function claimOwnership() public {
        address _pendingOwner = pendingOwner;
        
        // Checks
        require(msg.sender == _pendingOwner, "Ownable: caller != pending owner");

        // Effects
        emit OwnershipTransferred(owner, _pendingOwner);
        owner = _pendingOwner;
        pendingOwner = address(0);
    }

    // M1 - M5: OK
    // C1 - C21: OK
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }
}


// File contracts/libraries/SignedSafeMath.sol

pragma solidity 0.6.12;

library SignedSafeMath {
    int256 constant private _INT256_MIN = -2**255;

    /**
     * @dev Returns the multiplication of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        require(!(a == -1 && b == _INT256_MIN), "SignedSafeMath: multiplication overflow");

        int256 c = a * b;
        require(c / a == b, "SignedSafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two signed integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != 0, "SignedSafeMath: division by zero");
        require(!(b == -1 && a == _INT256_MIN), "SignedSafeMath: division overflow");

        int256 c = a / b;

        return c;
    }

    /**
     * @dev Returns the subtraction of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a), "SignedSafeMath: subtraction overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two signed integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a), "SignedSafeMath: addition overflow");

        return c;
    }

    function toUInt256(int256 a) internal pure returns (uint256) {
        require(a >= 0, "Integer < 0");
        return uint256(a);
    }
}


// File contracts/interfaces/IRewarder.sol

pragma solidity 0.6.12;

interface IRewarder {
    using BoringERC20 for IERC20;
    function onSushiReward(uint256 pid, address user, address recipient, uint256 sushiAmount, uint256 newLpAmount) external;
    function pendingTokens(uint256 pid, address user, uint256 sushiAmount) external view returns (IERC20[] memory, uint256[] memory);
}


// File contracts/interfaces/IMasterChef.sol

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

interface IMasterChef {
    using BoringERC20 for IERC20;
    struct UserInfo {
        uint256 amount;     // How many LP tokens the user has provided.
        uint256 rewardDebt; // Reward debt. See explanation below.
    }

    struct PoolInfo {
        IERC20 lpToken;           // Address of LP token contract.
        uint256 allocPoint;       // How many allocation points assigned to this pool. SUSHI to distribute per block.
        uint256 lastRewardBlock;  // Last block number that SUSHI distribution occurs.
        uint256 accSushiPerShare; // Accumulated SUSHI per share, times 1e12. See below.
    }

    function poolInfo(uint256 pid) external view returns (IMasterChef.PoolInfo memory);
    function totalAllocPoint() external view returns (uint256);
    function deposit(uint256 _pid, uint256 _amount) external;
}


// File contracts/MiniChefV2.sol

pragma solidity 0.6.12;

interface IMigratorChef {
    // Take the current LP token address and return the new LP token address.
    // Migrator should have full access to the caller's LP token.
    function migrate(IERC20 token) external returns (IERC20);
}

/// @notice The (older) MasterChef contract gives out a constant number of SUSHI tokens per block.
/// It is the only address with minting rights for SUSHI.
/// The idea for this MasterChef V2 (MCV2) contract is therefore to be the owner of a dummy token
/// that is deposited into the MasterChef V1 (MCV1) contract.
/// The allocation point for this pool on MCV1 is the total allocation point for all pools that receive double incentives.
contract MiniChefV2 is BoringOwnable, BoringBatchable {
    using BoringMath for uint256;
    using BoringMath128 for uint128;
    using BoringERC20 for IERC20;
    using SignedSafeMath for int256;

    /// @notice Info of each MCV2 user.
    /// `amount` LP token amount the user has provided.
    /// `rewardDebt` The amount of SUSHI entitled to the user.
    struct UserInfo {
        uint256 amount;
        int256 rewardDebt;
    }

    /// @notice Info of each MCV2 pool.
    /// `allocPoint` The amount of allocation points assigned to the pool.
    /// Also known as the amount of SUSHI to distribute per block.
    struct PoolInfo {
        uint128 accSushiPerShare;
        uint64 lastRewardTime;
        uint64 allocPoint;
    }

    /// @notice Address of SUSHI contract.
    IERC20 public immutable SUSHI;
    // @notice The migrator contract. It has a lot of power. Can only be set through governance (owner).
    IMigratorChef public migrator;

    /// @notice Info of each MCV2 pool.
    PoolInfo[] public poolInfo;
    /// @notice Address of the LP token for each MCV2 pool.
    IERC20[] public lpToken;
    /// @notice Address of each `IRewarder` contract in MCV2.
    IRewarder[] public rewarder;

    /// @notice Info of each user that stakes LP tokens.
    mapping (uint256 => mapping (address => UserInfo)) public userInfo;
    /// @dev Total allocation points. Must be the sum of all allocation points in all pools.
    uint256 public totalAllocPoint;

    uint256 public sushiPerSecond;
    uint256 private constant ACC_SUSHI_PRECISION = 1e12;

    event Deposit(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event Withdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event EmergencyWithdraw(address indexed user, uint256 indexed pid, uint256 amount, address indexed to);
    event Harvest(address indexed user, uint256 indexed pid, uint256 amount);
    event LogPoolAddition(uint256 indexed pid, uint256 allocPoint, IERC20 indexed lpToken, IRewarder indexed rewarder);
    event LogSetPool(uint256 indexed pid, uint256 allocPoint, IRewarder indexed rewarder, bool overwrite);
    event LogUpdatePool(uint256 indexed pid, uint64 lastRewardTime, uint256 lpSupply, uint256 accSushiPerShare);
    event LogSushiPerSecond(uint256 sushiPerSecond);

    /// @param _sushi The SUSHI token contract address.
    constructor(IERC20 _sushi) public {
        SUSHI = _sushi;
    }

    /// @notice Returns the number of MCV2 pools.
    function poolLength() public view returns (uint256 pools) {
        pools = poolInfo.length;
    }

    /// @notice Add a new LP to the pool. Can only be called by the owner.
    /// DO NOT add the same LP token more than once. Rewards will be messed up if you do.
    /// @param allocPoint AP of the new pool.
    /// @param _lpToken Address of the LP ERC-20 token.
    /// @param _rewarder Address of the rewarder delegate.
    function add(uint256 allocPoint, IERC20 _lpToken, IRewarder _rewarder) public onlyOwner {
        totalAllocPoint = totalAllocPoint.add(allocPoint);
        lpToken.push(_lpToken);
        rewarder.push(_rewarder);

        poolInfo.push(PoolInfo({
            allocPoint: allocPoint.to64(),
            lastRewardTime: block.timestamp.to64(),
            accSushiPerShare: 0
        }));
        emit LogPoolAddition(lpToken.length.sub(1), allocPoint, _lpToken, _rewarder);
    }

    /// @notice Update the given pool's SUSHI allocation point and `IRewarder` contract. Can only be called by the owner.
    /// @param _pid The index of the pool. See `poolInfo`.
    /// @param _allocPoint New AP of the pool.
    /// @param _rewarder Address of the rewarder delegate.
    /// @param overwrite True if _rewarder should be `set`. Otherwise `_rewarder` is ignored.
    function set(uint256 _pid, uint256 _allocPoint, IRewarder _rewarder, bool overwrite) public onlyOwner {
        totalAllocPoint = totalAllocPoint.sub(poolInfo[_pid].allocPoint).add(_allocPoint);
        poolInfo[_pid].allocPoint = _allocPoint.to64();
        if (overwrite) { rewarder[_pid] = _rewarder; }
        emit LogSetPool(_pid, _allocPoint, overwrite ? _rewarder : rewarder[_pid], overwrite);
    }

    /// @notice Sets the sushi per second to be distributed. Can only be called by the owner.
    /// @param _sushiPerSecond The amount of Sushi to be distributed per second.
    function setSushiPerSecond(uint256 _sushiPerSecond) public onlyOwner {
        sushiPerSecond = _sushiPerSecond;
        emit LogSushiPerSecond(_sushiPerSecond);
    }

    /// @notice Set the `migrator` contract. Can only be called by the owner.
    /// @param _migrator The contract address to set.
    function setMigrator(IMigratorChef _migrator) public onlyOwner {
        migrator = _migrator;
    }

    /// @notice Migrate LP token to another LP contract through the `migrator` contract.
    /// @param _pid The index of the pool. See `poolInfo`.
    function migrate(uint256 _pid) public {
        require(address(migrator) != address(0), "MasterChefV2: no migrator set");
        IERC20 _lpToken = lpToken[_pid];
        uint256 bal = _lpToken.balanceOf(address(this));
        _lpToken.approve(address(migrator), bal);
        IERC20 newLpToken = migrator.migrate(_lpToken);
        require(bal == newLpToken.balanceOf(address(this)), "MasterChefV2: migrated balance must match");
        lpToken[_pid] = newLpToken;
    }

    /// @notice View function to see pending SUSHI on frontend.
    /// @param _pid The index of the pool. See `poolInfo`.
    /// @param _user Address of user.
    /// @return pending SUSHI reward for a given user.
    function pendingSushi(uint256 _pid, address _user) external view returns (uint256 pending) {
        PoolInfo memory pool = poolInfo[_pid];
        UserInfo storage user = userInfo[_pid][_user];
        uint256 accSushiPerShare = pool.accSushiPerShare;
        uint256 lpSupply = lpToken[_pid].balanceOf(address(this));
        if (block.timestamp > pool.lastRewardTime && lpSupply != 0) {
            uint256 time = block.timestamp.sub(pool.lastRewardTime);
            uint256 sushiReward = time.mul(sushiPerSecond).mul(pool.allocPoint) / totalAllocPoint;
            accSushiPerShare = accSushiPerShare.add(sushiReward.mul(ACC_SUSHI_PRECISION) / lpSupply);
        }
        pending = int256(user.amount.mul(accSushiPerShare) / ACC_SUSHI_PRECISION).sub(user.rewardDebt).toUInt256();
    }

    /// @notice Update reward variables for all pools. Be careful of gas spending!
    /// @param pids Pool IDs of all to be updated. Make sure to update all active pools.
    function massUpdatePools(uint256[] calldata pids) external {
        uint256 len = pids.length;
        for (uint256 i = 0; i < len; ++i) {
            updatePool(pids[i]);
        }
    }

    /// @notice Update reward variables of the given pool.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @return pool Returns the pool that was updated.
    function updatePool(uint256 pid) public returns (PoolInfo memory pool) {
        pool = poolInfo[pid];
        if (block.timestamp > pool.lastRewardTime) {
            uint256 lpSupply = lpToken[pid].balanceOf(address(this));
            if (lpSupply > 0) {
                uint256 time = block.timestamp.sub(pool.lastRewardTime);
                uint256 sushiReward = time.mul(sushiPerSecond).mul(pool.allocPoint) / totalAllocPoint;
                pool.accSushiPerShare = pool.accSushiPerShare.add((sushiReward.mul(ACC_SUSHI_PRECISION) / lpSupply).to128());
            }
            pool.lastRewardTime = block.timestamp.to64();
            poolInfo[pid] = pool;
            emit LogUpdatePool(pid, pool.lastRewardTime, lpSupply, pool.accSushiPerShare);
        }
    }

    /// @notice Deposit LP tokens to MCV2 for SUSHI allocation.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to deposit.
    /// @param to The receiver of `amount` deposit benefit.
    function deposit(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][to];

        // Effects
        user.amount = user.amount.add(amount);
        user.rewardDebt = user.rewardDebt.add(int256(amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION));

        // Interactions
        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSushiReward(pid, to, to, 0, user.amount);
        }

        lpToken[pid].safeTransferFrom(msg.sender, address(this), amount);

        emit Deposit(msg.sender, pid, amount, to);
    }

    /// @notice Withdraw LP tokens from MCV2.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to withdraw.
    /// @param to Receiver of the LP tokens.
    function withdraw(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];

        // Effects
        user.rewardDebt = user.rewardDebt.sub(int256(amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION));
        user.amount = user.amount.sub(amount);

        // Interactions
        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSushiReward(pid, msg.sender, to, 0, user.amount);
        }
        
        lpToken[pid].safeTransfer(to, amount);

        emit Withdraw(msg.sender, pid, amount, to);
    }

    /// @notice Harvest proceeds for transaction sender to `to`.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param to Receiver of SUSHI rewards.
    function harvest(uint256 pid, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];
        int256 accumulatedSushi = int256(user.amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION);
        uint256 _pendingSushi = accumulatedSushi.sub(user.rewardDebt).toUInt256();

        // Effects
        user.rewardDebt = accumulatedSushi;

        // Interactions
        if (_pendingSushi != 0) {
            SUSHI.safeTransfer(to, _pendingSushi);
        }
        
        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSushiReward( pid, msg.sender, to, _pendingSushi, user.amount);
        }

        emit Harvest(msg.sender, pid, _pendingSushi);
    }
    
    /// @notice Withdraw LP tokens from MCV2 and harvest proceeds for transaction sender to `to`.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param amount LP token amount to withdraw.
    /// @param to Receiver of the LP tokens and SUSHI rewards.
    function withdrawAndHarvest(uint256 pid, uint256 amount, address to) public {
        PoolInfo memory pool = updatePool(pid);
        UserInfo storage user = userInfo[pid][msg.sender];
        int256 accumulatedSushi = int256(user.amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION);
        uint256 _pendingSushi = accumulatedSushi.sub(user.rewardDebt).toUInt256();

        // Effects
        user.rewardDebt = accumulatedSushi.sub(int256(amount.mul(pool.accSushiPerShare) / ACC_SUSHI_PRECISION));
        user.amount = user.amount.sub(amount);
        
        // Interactions
        SUSHI.safeTransfer(to, _pendingSushi);

        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSushiReward(pid, msg.sender, to, _pendingSushi, user.amount);
        }

        lpToken[pid].safeTransfer(to, amount);

        emit Withdraw(msg.sender, pid, amount, to);
        emit Harvest(msg.sender, pid, _pendingSushi);
    }

    /// @notice Withdraw without caring about rewards. EMERGENCY ONLY.
    /// @param pid The index of the pool. See `poolInfo`.
    /// @param to Receiver of the LP tokens.
    function emergencyWithdraw(uint256 pid, address to) public {
        UserInfo storage user = userInfo[pid][msg.sender];
        uint256 amount = user.amount;
        user.amount = 0;
        user.rewardDebt = 0;

        IRewarder _rewarder = rewarder[pid];
        if (address(_rewarder) != address(0)) {
            _rewarder.onSushiReward(pid, msg.sender, to, 0, 0);
        }

        // Note: transfer can fail or succeed if `amount` is zero.
        lpToken[pid].safeTransfer(to, amount);
        emit EmergencyWithdraw(msg.sender, pid, amount, to);
    }
}

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_sushi","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Harvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IERC20","name":"lpToken","type":"address"},{"indexed":true,"internalType":"contract IRewarder","name":"rewarder","type":"address"}],"name":"LogPoolAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allocPoint","type":"uint256"},{"indexed":true,"internalType":"contract IRewarder","name":"rewarder","type":"address"},{"indexed":false,"internalType":"bool","name":"overwrite","type":"bool"}],"name":"LogSetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sushiPerSecond","type":"uint256"}],"name":"LogSushiPerSecond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accSushiPerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"SUSHI","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"contract IRewarder","name":"_rewarder","type":"address"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"calls","type":"bytes[]"},{"internalType":"bool","name":"revertOnFail","type":"bool"}],"name":"batch","outputs":[{"internalType":"bool[]","name":"successes","type":"bool[]"},{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lpToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"pids","type":"uint256[]"}],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrator","outputs":[{"internalType":"contract IMigratorChef","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingSushi","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permitToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"uint128","name":"accSushiPerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"internalType":"uint64","name":"allocPoint","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"pools","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rewarder","outputs":[{"internalType":"contract IRewarder","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IRewarder","name":"_rewarder","type":"address"},{"internalType":"bool","name":"overwrite","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMigratorChef","name":"_migrator","type":"address"}],"name":"setMigrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sushiPerSecond","type":"uint256"}],"name":"setSushiPerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sushiPerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"}],"name":"updatePool","outputs":[{"components":[{"internalType":"uint128","name":"accSushiPerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"internalType":"uint64","name":"allocPoint","type":"uint64"}],"internalType":"struct MiniChefV2.PoolInfo","name":"pool","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"int256","name":"rewardDebt","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawAndHarvest","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040523480156200001157600080fd5b5060405162002c3038038062002c30833981016040819052620000349162000089565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360601b6001600160601b031916608052620000b9565b6000602082840312156200009b578081fd5b81516001600160a01b0381168114620000b2578182fd5b9392505050565b60805160601c612b4f620000e16000398061089552806117425280611a155250612b4f6000f3fe6080604052600436106101b75760003560e01c80637c516e94116100ec578063a06e408b1161008a578063c346253d11610064578063c346253d146104be578063d1abb907146104de578063d2423b51146104fe578063e30c39781461051f576101b7565b8063a06e408b14610474578063ab560e1014610489578063ab7de0981461049e576101b7565b80638da5cb5b116100c65780638da5cb5b146103f15780638dbdbe6d1461040657806393f1a40b146104265780639baf58c314610454576101b7565b80637c516e941461039c5780637cd07e47146103bc57806388bba42f146103d1576101b7565b806323cf3118116101595780634e71e0c8116101335780634e71e0c81461030d57806351eb05a61461032257806357a5b58c1461034f57806378ed5d1f1461036f576101b7565b806323cf3118146102ad5780632f940c70146102cd578063454b0608146102ed576101b7565b80631526fe27116101955780631526fe271461022957806317caf6f11461025857806318fccc761461026d578063195426ec1461028d576101b7565b8063078dfbe7146101bc578063081e3eda146101de5780630ad58d2f14610209575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461217d565b610534565b005b3480156101ea57600080fd5b506101f3610623565b6040516102009190612a03565b60405180910390f35b34801561021557600080fd5b506101dc610224366004612459565b610629565b34801561023557600080fd5b506102496102443660046123c4565b6107b9565b604051610200939291906129d9565b34801561026457600080fd5b506101f36107fb565b34801561027957600080fd5b506101dc6102883660046123f4565b610801565b34801561029957600080fd5b506101f36102a83660046123f4565b61099b565b3480156102b957600080fd5b506101dc6102c836600461230e565b610b9b565b3480156102d957600080fd5b506101dc6102e83660046123f4565b610be7565b3480156102f957600080fd5b506101dc6103083660046123c4565b610d08565b34801561031957600080fd5b506101dc610fb4565b34801561032e57600080fd5b5061034261033d3660046123c4565b611041565b60405161020091906129a0565b34801561035b57600080fd5b506101dc61036a366004612210565b6112c5565b34801561037b57600080fd5b5061038f61038a3660046123c4565b6112fb565b6040516102009190612527565b3480156103a857600080fd5b506101dc6103b7366004612287565b611322565b3480156103c857600080fd5b5061038f611396565b3480156103dd57600080fd5b506101dc6103ec366004612486565b6113a5565b3480156103fd57600080fd5b5061038f611512565b34801561041257600080fd5b506101dc610421366004612459565b611521565b34801561043257600080fd5b506104466104413660046123f4565b6116ac565b604051610200929190612a4b565b34801561046057600080fd5b506101dc61046f3660046123c4565b6116d0565b34801561048057600080fd5b506101f361173a565b34801561049557600080fd5b5061038f611740565b3480156104aa57600080fd5b506101dc6104b9366004612423565b611764565b3480156104ca57600080fd5b5061038f6104d93660046123c4565b61193a565b3480156104ea57600080fd5b506101dc6104f9366004612459565b611947565b61051161050c3660046121c7565b611b7a565b6040516102009291906125b9565b34801561052b57600080fd5b5061038f611d0a565b6000546001600160a01b031633146105675760405162461bcd60e51b815260040161055e90612818565b60405180910390fd5b8115610602576001600160a01b0383161515806105815750805b61059d5760405162461bcd60e51b815260040161055e90612732565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b03199182161790915560018054909116905561061e565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60035490565b610631612115565b61063a84611041565b6000858152600660209081526040808320338452909152902081519192509061068c9064e8d4a51000906106789087906001600160801b0316611d19565b8161067f57fe5b6001840154919004611d56565b6001820155805461069d9085611da3565b81556005805460009190879081106106b157fe5b6000918252602090912001546001600160a01b0316905080156107375781546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291610704918a9133918a9160009190600401612a0c565b600060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b505050505b61076584866004898154811061074957fe5b6000918252602090912001546001600160a01b03169190611dc6565b836001600160a01b031686336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec2132886040516107a99190612a03565b60405180910390a4505050505050565b600381815481106107c657fe5b6000918252602090912001546001600160801b03811691506001600160401b03600160801b8204811691600160c01b90041683565b60075481565b610809612115565b61081283611041565b6000848152600660209081526040808320338452909152812082518154939450909264e8d4a510009161084e91906001600160801b0316611d19565b8161085557fe5b0490506000610879610874846001015484611d5690919063ffffffff16565b611eb4565b60018401839055905080156108bc576108bc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611dc6565b6000600587815481106108cb57fe5b6000918252602090912001546001600160a01b0316905080156109505783546040516345fb1ba160e11b81526001600160a01b03831691638bf637429161091d918b9133918c91899190600401612a0c565b600060405180830381600087803b15801561093757600080fd5b505af115801561094b573d6000803e3d6000fd5b505050505b86336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae06609249548460405161098a9190612a03565b60405180910390a350505050505050565b60006109a5612115565b600384815481106109b257fe5b600091825260208083206040805160608101825291909301546001600160801b0380821683526001600160401b03600160801b8304811684860152600160c01b90920490911682850152888552600683528385206001600160a01b0389168652909252918320825160048054949650919492169288908110610a3057fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a0823190610a69903090600401612527565b60206040518083038186803b158015610a8157600080fd5b505afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab991906123dc565b905083602001516001600160401b031642118015610ad657508015155b15610b62576000610afd85602001516001600160401b031642611da390919063ffffffff16565b90506000600754610b3087604001516001600160401b0316610b2a60085486611d1990919063ffffffff16565b90611d19565b81610b3757fe5b049050610b5d83610b4d8364e8d4a51000611d19565b81610b5457fe5b86919004611eda565b935050505b60018301548354610b90916108749164e8d4a5100090610b829087611d19565b81610b8957fe5b0490611d56565b979650505050505050565b6000546001600160a01b03163314610bc55760405162461bcd60e51b815260040161055e90612818565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526006602090815260408083203384529091528120805482825560018201839055600580549293919286908110610c1e57fe5b6000918252602090912001546001600160a01b031690508015610ca3576040516345fb1ba160e11b81526001600160a01b03821690638bf6374290610c70908890339089906000908190600401612a0c565b600060405180830381600087803b158015610c8a57600080fd5b505af1158015610c9e573d6000803e3d6000fd5b505050505b610cb584836004888154811061074957fe5b836001600160a01b031685336001600160a01b03167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b85604051610cf99190612a03565b60405180910390a45050505050565b6002546001600160a01b0316610d305760405162461bcd60e51b815260040161055e906128b9565b600060048281548110610d3f57fe5b60009182526020822001546040516370a0823160e01b81526001600160a01b03909116925082906370a0823190610d7a903090600401612527565b60206040518083038186803b158015610d9257600080fd5b505afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca91906123dc565b60025460405163095ea7b360e01b81529192506001600160a01b038085169263095ea7b392610dff92169085906004016125a0565b602060405180830381600087803b158015610e1957600080fd5b505af1158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061224f565b5060025460405163ce5494bb60e01b81526000916001600160a01b03169063ce5494bb90610e83908690600401612527565b602060405180830381600087803b158015610e9d57600080fd5b505af1158015610eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed5919061226b565b6040516370a0823160e01b81529091506001600160a01b038216906370a0823190610f04903090600401612527565b60206040518083038186803b158015610f1c57600080fd5b505afa158015610f30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5491906123dc565b8214610f725760405162461bcd60e51b815260040161055e90612761565b8060048581548110610f8057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b6001546001600160a01b0316338114610fdf5760405162461bcd60e51b815260040161055e9061284d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b611049612115565b6003828154811061105657fe5b60009182526020918290206040805160608101825292909101546001600160801b03811683526001600160401b03600160801b82048116948401859052600160c01b909104169082015291504211156112c0576000600483815481106110b857fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a08231906110f1903090600401612527565b60206040518083038186803b15801561110957600080fd5b505afa15801561111d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114191906123dc565b905080156111e457600061116b83602001516001600160401b031642611da390919063ffffffff16565b9050600060075461119885604001516001600160401b0316610b2a60085486611d1990919063ffffffff16565b8161119f57fe5b0490506111d66111c5846111b88464e8d4a51000611d19565b816111bf57fe5b04611efd565b85516001600160801b031690611f26565b6001600160801b0316845250505b6111ed42611f55565b6001600160401b03166020830152600380548391908590811061120c57fe5b6000918252602091829020835191018054848401516040958601516001600160801b03199092166001600160801b039094169390931767ffffffffffffffff60801b1916600160801b6001600160401b0394851602176001600160c01b0316600160c01b93909116929092029190911790558301518351915185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad353926112b69290918691612a59565b60405180910390a2505b919050565b8060005b818110156112f5576112ec8484838181106112e057fe5b90506020020135611041565b506001016112c9565b50505050565b6004818154811061130857fe5b6000918252602090912001546001600160a01b0316905081565b60405163d505accf60e01b81526001600160a01b0389169063d505accf9061135a908a908a908a908a908a908a908a9060040161255f565b600060405180830381600087803b15801561137457600080fd5b505af1158015611388573d6000803e3d6000fd5b505050505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146113cf5760405162461bcd60e51b815260040161055e90612818565b61140e83611408600387815481106113e357fe5b60009182526020909120015460075490600160c01b90046001600160401b0316611da3565b90611eda565b60075561141a83611f55565b6003858154811061142757fe5b9060005260206000200160000160186101000a8154816001600160401b0302191690836001600160401b03160217905550801561149b57816005858154811061146c57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b806114c757600584815481106114ad57fe5b6000918252602090912001546001600160a01b03166114c9565b815b6001600160a01b0316847f95895a6ab1df54420d241b55243258a33e61b2194db66c1179ec521aae8e18658584604051611504929190612a3b565b60405180910390a350505050565b6000546001600160a01b031681565b611529612115565b61153284611041565b60008581526006602090815260408083206001600160a01b038716845290915290208054919250906115649085611eda565b8155815161159b9064e8d4a51000906115879087906001600160801b0316611d19565b8161158e57fe5b6001840154919004611f7e565b81600101819055506000600586815481106115b257fe5b6000918252602090912001546001600160a01b0316905080156116385781546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291611605918a918991829160009190600401612a0c565b600060405180830381600087803b15801561161f57600080fd5b505af1158015611633573d6000803e3d6000fd5b505050505b61166833308760048a8154811061164b57fe5b6000918252602090912001546001600160a01b0316929190611fc4565b836001600160a01b031686336001600160a01b03167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47886040516107a99190612a03565b60066020908152600092835260408084209091529082529020805460019091015482565b6000546001600160a01b031633146116fa5760405162461bcd60e51b815260040161055e90612818565b60088190556040517fc6ce5eff3291fb2c1517b943daa5067ea76c83816bbf674307fbc7fea3b311d09061172f908390612a03565b60405180910390a150565b60085481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b0316331461178e5760405162461bcd60e51b815260040161055e90612818565b60075461179b9084611eda565b6007556004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b038086166001600160a01b03199283161790925560058054938401815560009081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090930180549285169290911691909117905560408051606081019091529081526003906020810161184842611f55565b6001600160401b0316815260200161185f86611f55565b6001600160401b039081169091528254600181810185556000948552602094859020845192018054958501516040909501518416600160c01b026001600160c01b0395909416600160801b0267ffffffffffffffff60801b196001600160801b039094166001600160801b0319909716969096179290921694909417929092161790556004546001600160a01b0380841692908516916118fe91611da3565b7f81ee0f8c5c46e2cb41984886f77a84181724abb86c32a5f6de539b07509d45e58660405161192d9190612a03565b60405180910390a4505050565b6005818154811061130857fe5b61194f612115565b61195884611041565b6000858152600660209081526040808320338452909152812082518154939450909264e8d4a510009161199491906001600160801b0316611d19565b8161199b57fe5b04905060006119ba610874846001015484611d5690919063ffffffff16565b90506119f564e8d4a510006119e586600001516001600160801b031689611d1990919063ffffffff16565b816119ec57fe5b84919004611d56565b60018401558254611a069087611da3565b8355611a3c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168683611dc6565b600060058881548110611a4b57fe5b6000918252602090912001546001600160a01b031690508015611ad05783546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291611a9d918c9133918c91899190600401612a0c565b600060405180830381600087803b158015611ab757600080fd5b505af1158015611acb573d6000803e3d6000fd5b505050505b611ae2868860048b8154811061074957fe5b856001600160a01b031688336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec21328a604051611b269190612a03565b60405180910390a487336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495484604051611b689190612a03565b60405180910390a35050505050505050565b606080836001600160401b0381118015611b9357600080fd5b50604051908082528060200260200182016040528015611bbd578160200160208202803683370190505b509150836001600160401b0381118015611bd657600080fd5b50604051908082528060200260200182016040528015611c0a57816020015b6060815260200190600190039081611bf55790505b50905060005b84811015611d01576000606030888885818110611c2957fe5b9050602002810190611c3b9190612a83565b604051611c499291906124fb565b600060405180830381855af49150503d8060008114611c84576040519150601f19603f3d011682016040523d82523d6000602084013e611c89565b606091505b50915091508180611c98575085155b611ca1826120b5565b90611cbf5760405162461bcd60e51b815260040161055e9190612653565b5081858481518110611ccd57fe5b60200260200101901515908115158152505080848481518110611cec57fe5b60209081029190910101525050600101611c10565b50935093915050565b6001546001600160a01b031681565b6000811580611d3457505080820282828281611d3157fe5b04145b611d505760405162461bcd60e51b815260040161055e90612969565b92915050565b6000818303818312801590611d6b5750838113155b80611d805750600083128015611d8057508381135b611d9c5760405162461bcd60e51b815260040161055e906128f0565b9392505050565b80820382811115611d505760405162461bcd60e51b815260040161055e90612666565b60006060846001600160a01b031663a9059cbb8585604051602401611dec9291906125a0565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e25919061250b565b6000604051808303816000865af19150503d8060008114611e62576040519150601f19603f3d011682016040523d82523d6000602084013e611e67565b606091505b5091509150818015611e91575080511580611e91575080806020019051810190611e91919061224f565b611ead5760405162461bcd60e51b815260040161055e906126ba565b5050505050565b600080821215611ed65760405162461bcd60e51b815260040161055e90612695565b5090565b81810181811015611d505760405162461bcd60e51b815260040161055e906127e1565b60006001600160801b03821115611ed65760405162461bcd60e51b815260040161055e906127aa565b8181016001600160801b038083169082161015611d505760405162461bcd60e51b815260040161055e906127e1565b60006001600160401b03821115611ed65760405162461bcd60e51b815260040161055e90612882565b6000828201818312801590611f935750838112155b80611fa85750600083128015611fa857508381125b611d9c5760405162461bcd60e51b815260040161055e906126f1565b60006060856001600160a01b03166323b872dd868686604051602401611fec9392919061253b565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612025919061250b565b6000604051808303816000865af19150503d8060008114612062576040519150601f19603f3d011682016040523d82523d6000602084013e612067565b606091505b5091509150818015612091575080511580612091575080806020019051810190612091919061224f565b6120ad5760405162461bcd60e51b815260040161055e90612934565b505050505050565b60606044825110156120fb575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c7900000060208201526112c0565b60048201915081806020019051810190611d50919061232a565b604080516060810182526000808252602082018190529181019190915290565b60008083601f840112612146578182fd5b5081356001600160401b0381111561215c578182fd5b602083019150836020808302850101111561217657600080fd5b9250929050565b600080600060608486031215612191578283fd5b833561219c81612af3565b925060208401356121ac81612b0b565b915060408401356121bc81612b0b565b809150509250925092565b6000806000604084860312156121db578283fd5b83356001600160401b038111156121f0578384fd5b6121fc86828701612135565b90945092505060208401356121bc81612b0b565b60008060208385031215612222578182fd5b82356001600160401b03811115612237578283fd5b61224385828601612135565b90969095509350505050565b600060208284031215612260578081fd5b8151611d9c81612b0b565b60006020828403121561227c578081fd5b8151611d9c81612af3565b600080600080600080600080610100898b0312156122a3578384fd5b88356122ae81612af3565b975060208901356122be81612af3565b965060408901356122ce81612af3565b9550606089013594506080890135935060a089013560ff811681146122f1578384fd5b979a969950949793969295929450505060c08201359160e0013590565b60006020828403121561231f578081fd5b8135611d9c81612af3565b60006020828403121561233b578081fd5b81516001600160401b0380821115612351578283fd5b818401915084601f830112612364578283fd5b815181811115612372578384fd5b604051601f8201601f191681016020018381118282101715612392578586fd5b6040528181528382016020018710156123a9578485fd5b6123ba826020830160208701612ac7565b9695505050505050565b6000602082840312156123d5578081fd5b5035919050565b6000602082840312156123ed578081fd5b5051919050565b60008060408385031215612406578182fd5b82359150602083013561241881612af3565b809150509250929050565b600080600060608486031215612437578081fd5b83359250602084013561244981612af3565b915060408401356121bc81612af3565b60008060006060848603121561246d578081fd5b833592506020840135915060408401356121bc81612af3565b6000806000806080858703121561249b578182fd5b843593506020850135925060408501356124b481612af3565b915060608501356124c481612b0b565b939692955090935050565b600081518084526124e7816020860160208601612ac7565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b6000825161251d818460208701612ac7565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156125f45781511515845292840192908401906001016125d6565b5050508381038285015280855161260b8184612a03565b91508192508381028201848801865b838110156126445785830385526126328383516124cf565b9487019492509086019060010161261a565b50909998505050505050505050565b600060208252611d9c60208301846124cf565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252600b908201526a0496e7465676572203c20360ac1b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b60208082526029908201527f4d61737465724368656656323a206d696772617465642062616c616e6365206d6040820152680eae6e840dac2e8c6d60bb1b606082015260800190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252601d908201527f4d61737465724368656656323a206e6f206d69677261746f7220736574000000604082015260600190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604082015263666c6f7760e01b606082015260800190565b6020808252818101527f426f72696e6745524332303a205472616e7366657246726f6d206661696c6564604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516001600160801b031681526020808301516001600160401b0390811691830191909152604092830151169181019190915260600190565b6001600160801b039390931683526001600160401b03918216602084015216604082015260600190565b90815260200190565b9485526001600160a01b0393841660208601529190921660408401526060830191909152608082015260a00190565b9182521515602082015260400190565b918252602082015260400190565b6001600160401b0393909316835260208301919091526001600160801b0316604082015260600190565b6000808335601e19843603018112612a99578283fd5b8301803591506001600160401b03821115612ab2578283fd5b60200191503681900382131561217657600080fd5b60005b83811015612ae2578181015183820152602001612aca565b838111156112f55750506000910152565b6001600160a01b0381168114612b0857600080fd5b50565b8015158114612b0857600080fdfea2646970667358221220e2d1a9f56644ca4817bf80a09d379303c4317666a34a64c22b10ed1ebbed38c864736f6c634300060c0033000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a

Deployed Bytecode

0x6080604052600436106101b75760003560e01c80637c516e94116100ec578063a06e408b1161008a578063c346253d11610064578063c346253d146104be578063d1abb907146104de578063d2423b51146104fe578063e30c39781461051f576101b7565b8063a06e408b14610474578063ab560e1014610489578063ab7de0981461049e576101b7565b80638da5cb5b116100c65780638da5cb5b146103f15780638dbdbe6d1461040657806393f1a40b146104265780639baf58c314610454576101b7565b80637c516e941461039c5780637cd07e47146103bc57806388bba42f146103d1576101b7565b806323cf3118116101595780634e71e0c8116101335780634e71e0c81461030d57806351eb05a61461032257806357a5b58c1461034f57806378ed5d1f1461036f576101b7565b806323cf3118146102ad5780632f940c70146102cd578063454b0608146102ed576101b7565b80631526fe27116101955780631526fe271461022957806317caf6f11461025857806318fccc761461026d578063195426ec1461028d576101b7565b8063078dfbe7146101bc578063081e3eda146101de5780630ad58d2f14610209575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461217d565b610534565b005b3480156101ea57600080fd5b506101f3610623565b6040516102009190612a03565b60405180910390f35b34801561021557600080fd5b506101dc610224366004612459565b610629565b34801561023557600080fd5b506102496102443660046123c4565b6107b9565b604051610200939291906129d9565b34801561026457600080fd5b506101f36107fb565b34801561027957600080fd5b506101dc6102883660046123f4565b610801565b34801561029957600080fd5b506101f36102a83660046123f4565b61099b565b3480156102b957600080fd5b506101dc6102c836600461230e565b610b9b565b3480156102d957600080fd5b506101dc6102e83660046123f4565b610be7565b3480156102f957600080fd5b506101dc6103083660046123c4565b610d08565b34801561031957600080fd5b506101dc610fb4565b34801561032e57600080fd5b5061034261033d3660046123c4565b611041565b60405161020091906129a0565b34801561035b57600080fd5b506101dc61036a366004612210565b6112c5565b34801561037b57600080fd5b5061038f61038a3660046123c4565b6112fb565b6040516102009190612527565b3480156103a857600080fd5b506101dc6103b7366004612287565b611322565b3480156103c857600080fd5b5061038f611396565b3480156103dd57600080fd5b506101dc6103ec366004612486565b6113a5565b3480156103fd57600080fd5b5061038f611512565b34801561041257600080fd5b506101dc610421366004612459565b611521565b34801561043257600080fd5b506104466104413660046123f4565b6116ac565b604051610200929190612a4b565b34801561046057600080fd5b506101dc61046f3660046123c4565b6116d0565b34801561048057600080fd5b506101f361173a565b34801561049557600080fd5b5061038f611740565b3480156104aa57600080fd5b506101dc6104b9366004612423565b611764565b3480156104ca57600080fd5b5061038f6104d93660046123c4565b61193a565b3480156104ea57600080fd5b506101dc6104f9366004612459565b611947565b61051161050c3660046121c7565b611b7a565b6040516102009291906125b9565b34801561052b57600080fd5b5061038f611d0a565b6000546001600160a01b031633146105675760405162461bcd60e51b815260040161055e90612818565b60405180910390fd5b8115610602576001600160a01b0383161515806105815750805b61059d5760405162461bcd60e51b815260040161055e90612732565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b03199182161790915560018054909116905561061e565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60035490565b610631612115565b61063a84611041565b6000858152600660209081526040808320338452909152902081519192509061068c9064e8d4a51000906106789087906001600160801b0316611d19565b8161067f57fe5b6001840154919004611d56565b6001820155805461069d9085611da3565b81556005805460009190879081106106b157fe5b6000918252602090912001546001600160a01b0316905080156107375781546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291610704918a9133918a9160009190600401612a0c565b600060405180830381600087803b15801561071e57600080fd5b505af1158015610732573d6000803e3d6000fd5b505050505b61076584866004898154811061074957fe5b6000918252602090912001546001600160a01b03169190611dc6565b836001600160a01b031686336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec2132886040516107a99190612a03565b60405180910390a4505050505050565b600381815481106107c657fe5b6000918252602090912001546001600160801b03811691506001600160401b03600160801b8204811691600160c01b90041683565b60075481565b610809612115565b61081283611041565b6000848152600660209081526040808320338452909152812082518154939450909264e8d4a510009161084e91906001600160801b0316611d19565b8161085557fe5b0490506000610879610874846001015484611d5690919063ffffffff16565b611eb4565b60018401839055905080156108bc576108bc6001600160a01b037f000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a168683611dc6565b6000600587815481106108cb57fe5b6000918252602090912001546001600160a01b0316905080156109505783546040516345fb1ba160e11b81526001600160a01b03831691638bf637429161091d918b9133918c91899190600401612a0c565b600060405180830381600087803b15801561093757600080fd5b505af115801561094b573d6000803e3d6000fd5b505050505b86336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae06609249548460405161098a9190612a03565b60405180910390a350505050505050565b60006109a5612115565b600384815481106109b257fe5b600091825260208083206040805160608101825291909301546001600160801b0380821683526001600160401b03600160801b8304811684860152600160c01b90920490911682850152888552600683528385206001600160a01b0389168652909252918320825160048054949650919492169288908110610a3057fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a0823190610a69903090600401612527565b60206040518083038186803b158015610a8157600080fd5b505afa158015610a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab991906123dc565b905083602001516001600160401b031642118015610ad657508015155b15610b62576000610afd85602001516001600160401b031642611da390919063ffffffff16565b90506000600754610b3087604001516001600160401b0316610b2a60085486611d1990919063ffffffff16565b90611d19565b81610b3757fe5b049050610b5d83610b4d8364e8d4a51000611d19565b81610b5457fe5b86919004611eda565b935050505b60018301548354610b90916108749164e8d4a5100090610b829087611d19565b81610b8957fe5b0490611d56565b979650505050505050565b6000546001600160a01b03163314610bc55760405162461bcd60e51b815260040161055e90612818565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60008281526006602090815260408083203384529091528120805482825560018201839055600580549293919286908110610c1e57fe5b6000918252602090912001546001600160a01b031690508015610ca3576040516345fb1ba160e11b81526001600160a01b03821690638bf6374290610c70908890339089906000908190600401612a0c565b600060405180830381600087803b158015610c8a57600080fd5b505af1158015610c9e573d6000803e3d6000fd5b505050505b610cb584836004888154811061074957fe5b836001600160a01b031685336001600160a01b03167f2cac5e20e1541d836381527a43f651851e302817b71dc8e810284e69210c1c6b85604051610cf99190612a03565b60405180910390a45050505050565b6002546001600160a01b0316610d305760405162461bcd60e51b815260040161055e906128b9565b600060048281548110610d3f57fe5b60009182526020822001546040516370a0823160e01b81526001600160a01b03909116925082906370a0823190610d7a903090600401612527565b60206040518083038186803b158015610d9257600080fd5b505afa158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca91906123dc565b60025460405163095ea7b360e01b81529192506001600160a01b038085169263095ea7b392610dff92169085906004016125a0565b602060405180830381600087803b158015610e1957600080fd5b505af1158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e51919061224f565b5060025460405163ce5494bb60e01b81526000916001600160a01b03169063ce5494bb90610e83908690600401612527565b602060405180830381600087803b158015610e9d57600080fd5b505af1158015610eb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed5919061226b565b6040516370a0823160e01b81529091506001600160a01b038216906370a0823190610f04903090600401612527565b60206040518083038186803b158015610f1c57600080fd5b505afa158015610f30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5491906123dc565b8214610f725760405162461bcd60e51b815260040161055e90612761565b8060048581548110610f8057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b6001546001600160a01b0316338114610fdf5760405162461bcd60e51b815260040161055e9061284d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b611049612115565b6003828154811061105657fe5b60009182526020918290206040805160608101825292909101546001600160801b03811683526001600160401b03600160801b82048116948401859052600160c01b909104169082015291504211156112c0576000600483815481106110b857fe5b6000918252602090912001546040516370a0823160e01b81526001600160a01b03909116906370a08231906110f1903090600401612527565b60206040518083038186803b15801561110957600080fd5b505afa15801561111d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114191906123dc565b905080156111e457600061116b83602001516001600160401b031642611da390919063ffffffff16565b9050600060075461119885604001516001600160401b0316610b2a60085486611d1990919063ffffffff16565b8161119f57fe5b0490506111d66111c5846111b88464e8d4a51000611d19565b816111bf57fe5b04611efd565b85516001600160801b031690611f26565b6001600160801b0316845250505b6111ed42611f55565b6001600160401b03166020830152600380548391908590811061120c57fe5b6000918252602091829020835191018054848401516040958601516001600160801b03199092166001600160801b039094169390931767ffffffffffffffff60801b1916600160801b6001600160401b0394851602176001600160c01b0316600160c01b93909116929092029190911790558301518351915185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad353926112b69290918691612a59565b60405180910390a2505b919050565b8060005b818110156112f5576112ec8484838181106112e057fe5b90506020020135611041565b506001016112c9565b50505050565b6004818154811061130857fe5b6000918252602090912001546001600160a01b0316905081565b60405163d505accf60e01b81526001600160a01b0389169063d505accf9061135a908a908a908a908a908a908a908a9060040161255f565b600060405180830381600087803b15801561137457600080fd5b505af1158015611388573d6000803e3d6000fd5b505050505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146113cf5760405162461bcd60e51b815260040161055e90612818565b61140e83611408600387815481106113e357fe5b60009182526020909120015460075490600160c01b90046001600160401b0316611da3565b90611eda565b60075561141a83611f55565b6003858154811061142757fe5b9060005260206000200160000160186101000a8154816001600160401b0302191690836001600160401b03160217905550801561149b57816005858154811061146c57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b806114c757600584815481106114ad57fe5b6000918252602090912001546001600160a01b03166114c9565b815b6001600160a01b0316847f95895a6ab1df54420d241b55243258a33e61b2194db66c1179ec521aae8e18658584604051611504929190612a3b565b60405180910390a350505050565b6000546001600160a01b031681565b611529612115565b61153284611041565b60008581526006602090815260408083206001600160a01b038716845290915290208054919250906115649085611eda565b8155815161159b9064e8d4a51000906115879087906001600160801b0316611d19565b8161158e57fe5b6001840154919004611f7e565b81600101819055506000600586815481106115b257fe5b6000918252602090912001546001600160a01b0316905080156116385781546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291611605918a918991829160009190600401612a0c565b600060405180830381600087803b15801561161f57600080fd5b505af1158015611633573d6000803e3d6000fd5b505050505b61166833308760048a8154811061164b57fe5b6000918252602090912001546001600160a01b0316929190611fc4565b836001600160a01b031686336001600160a01b03167f02d7e648dd130fc184d383e55bb126ac4c9c60e8f94bf05acdf557ba2d540b47886040516107a99190612a03565b60066020908152600092835260408084209091529082529020805460019091015482565b6000546001600160a01b031633146116fa5760405162461bcd60e51b815260040161055e90612818565b60088190556040517fc6ce5eff3291fb2c1517b943daa5067ea76c83816bbf674307fbc7fea3b311d09061172f908390612a03565b60405180910390a150565b60085481565b7f000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a81565b6000546001600160a01b0316331461178e5760405162461bcd60e51b815260040161055e90612818565b60075461179b9084611eda565b6007556004805460018181019092557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b038086166001600160a01b03199283161790925560058054938401815560009081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db090930180549285169290911691909117905560408051606081019091529081526003906020810161184842611f55565b6001600160401b0316815260200161185f86611f55565b6001600160401b039081169091528254600181810185556000948552602094859020845192018054958501516040909501518416600160c01b026001600160c01b0395909416600160801b0267ffffffffffffffff60801b196001600160801b039094166001600160801b0319909716969096179290921694909417929092161790556004546001600160a01b0380841692908516916118fe91611da3565b7f81ee0f8c5c46e2cb41984886f77a84181724abb86c32a5f6de539b07509d45e58660405161192d9190612a03565b60405180910390a4505050565b6005818154811061130857fe5b61194f612115565b61195884611041565b6000858152600660209081526040808320338452909152812082518154939450909264e8d4a510009161199491906001600160801b0316611d19565b8161199b57fe5b04905060006119ba610874846001015484611d5690919063ffffffff16565b90506119f564e8d4a510006119e586600001516001600160801b031689611d1990919063ffffffff16565b816119ec57fe5b84919004611d56565b60018401558254611a069087611da3565b8355611a3c6001600160a01b037f000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a168683611dc6565b600060058881548110611a4b57fe5b6000918252602090912001546001600160a01b031690508015611ad05783546040516345fb1ba160e11b81526001600160a01b03831691638bf6374291611a9d918c9133918c91899190600401612a0c565b600060405180830381600087803b158015611ab757600080fd5b505af1158015611acb573d6000803e3d6000fd5b505050505b611ae2868860048b8154811061074957fe5b856001600160a01b031688336001600160a01b03167f8166bf25f8a2b7ed3c85049207da4358d16edbed977d23fa2ee6f0dde3ec21328a604051611b269190612a03565b60405180910390a487336001600160a01b03167f71bab65ced2e5750775a0613be067df48ef06cf92a496ebf7663ae066092495484604051611b689190612a03565b60405180910390a35050505050505050565b606080836001600160401b0381118015611b9357600080fd5b50604051908082528060200260200182016040528015611bbd578160200160208202803683370190505b509150836001600160401b0381118015611bd657600080fd5b50604051908082528060200260200182016040528015611c0a57816020015b6060815260200190600190039081611bf55790505b50905060005b84811015611d01576000606030888885818110611c2957fe5b9050602002810190611c3b9190612a83565b604051611c499291906124fb565b600060405180830381855af49150503d8060008114611c84576040519150601f19603f3d011682016040523d82523d6000602084013e611c89565b606091505b50915091508180611c98575085155b611ca1826120b5565b90611cbf5760405162461bcd60e51b815260040161055e9190612653565b5081858481518110611ccd57fe5b60200260200101901515908115158152505080848481518110611cec57fe5b60209081029190910101525050600101611c10565b50935093915050565b6001546001600160a01b031681565b6000811580611d3457505080820282828281611d3157fe5b04145b611d505760405162461bcd60e51b815260040161055e90612969565b92915050565b6000818303818312801590611d6b5750838113155b80611d805750600083128015611d8057508381135b611d9c5760405162461bcd60e51b815260040161055e906128f0565b9392505050565b80820382811115611d505760405162461bcd60e51b815260040161055e90612666565b60006060846001600160a01b031663a9059cbb8585604051602401611dec9291906125a0565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611e25919061250b565b6000604051808303816000865af19150503d8060008114611e62576040519150601f19603f3d011682016040523d82523d6000602084013e611e67565b606091505b5091509150818015611e91575080511580611e91575080806020019051810190611e91919061224f565b611ead5760405162461bcd60e51b815260040161055e906126ba565b5050505050565b600080821215611ed65760405162461bcd60e51b815260040161055e90612695565b5090565b81810181811015611d505760405162461bcd60e51b815260040161055e906127e1565b60006001600160801b03821115611ed65760405162461bcd60e51b815260040161055e906127aa565b8181016001600160801b038083169082161015611d505760405162461bcd60e51b815260040161055e906127e1565b60006001600160401b03821115611ed65760405162461bcd60e51b815260040161055e90612882565b6000828201818312801590611f935750838112155b80611fa85750600083128015611fa857508381125b611d9c5760405162461bcd60e51b815260040161055e906126f1565b60006060856001600160a01b03166323b872dd868686604051602401611fec9392919061253b565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051612025919061250b565b6000604051808303816000865af19150503d8060008114612062576040519150601f19603f3d011682016040523d82523d6000602084013e612067565b606091505b5091509150818015612091575080511580612091575080806020019051810190612091919061224f565b6120ad5760405162461bcd60e51b815260040161055e90612934565b505050505050565b60606044825110156120fb575060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c7900000060208201526112c0565b60048201915081806020019051810190611d50919061232a565b604080516060810182526000808252602082018190529181019190915290565b60008083601f840112612146578182fd5b5081356001600160401b0381111561215c578182fd5b602083019150836020808302850101111561217657600080fd5b9250929050565b600080600060608486031215612191578283fd5b833561219c81612af3565b925060208401356121ac81612b0b565b915060408401356121bc81612b0b565b809150509250925092565b6000806000604084860312156121db578283fd5b83356001600160401b038111156121f0578384fd5b6121fc86828701612135565b90945092505060208401356121bc81612b0b565b60008060208385031215612222578182fd5b82356001600160401b03811115612237578283fd5b61224385828601612135565b90969095509350505050565b600060208284031215612260578081fd5b8151611d9c81612b0b565b60006020828403121561227c578081fd5b8151611d9c81612af3565b600080600080600080600080610100898b0312156122a3578384fd5b88356122ae81612af3565b975060208901356122be81612af3565b965060408901356122ce81612af3565b9550606089013594506080890135935060a089013560ff811681146122f1578384fd5b979a969950949793969295929450505060c08201359160e0013590565b60006020828403121561231f578081fd5b8135611d9c81612af3565b60006020828403121561233b578081fd5b81516001600160401b0380821115612351578283fd5b818401915084601f830112612364578283fd5b815181811115612372578384fd5b604051601f8201601f191681016020018381118282101715612392578586fd5b6040528181528382016020018710156123a9578485fd5b6123ba826020830160208701612ac7565b9695505050505050565b6000602082840312156123d5578081fd5b5035919050565b6000602082840312156123ed578081fd5b5051919050565b60008060408385031215612406578182fd5b82359150602083013561241881612af3565b809150509250929050565b600080600060608486031215612437578081fd5b83359250602084013561244981612af3565b915060408401356121bc81612af3565b60008060006060848603121561246d578081fd5b833592506020840135915060408401356121bc81612af3565b6000806000806080858703121561249b578182fd5b843593506020850135925060408501356124b481612af3565b915060608501356124c481612b0b565b939692955090935050565b600081518084526124e7816020860160208601612ac7565b601f01601f19169290920160200192915050565b6000828483379101908152919050565b6000825161251d818460208701612ac7565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156125f45781511515845292840192908401906001016125d6565b5050508381038285015280855161260b8184612a03565b91508192508381028201848801865b838110156126445785830385526126328383516124cf565b9487019492509086019060010161261a565b50909998505050505050505050565b600060208252611d9c60208301846124cf565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252600b908201526a0496e7465676572203c20360ac1b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b60208082526029908201527f4d61737465724368656656323a206d696772617465642062616c616e6365206d6040820152680eae6e840dac2e8c6d60bb1b606082015260800190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252601d908201527f4d61737465724368656656323a206e6f206d69677261746f7220736574000000604082015260600190565b60208082526024908201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604082015263666c6f7760e01b606082015260800190565b6020808252818101527f426f72696e6745524332303a205472616e7366657246726f6d206661696c6564604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b81516001600160801b031681526020808301516001600160401b0390811691830191909152604092830151169181019190915260600190565b6001600160801b039390931683526001600160401b03918216602084015216604082015260600190565b90815260200190565b9485526001600160a01b0393841660208601529190921660408401526060830191909152608082015260a00190565b9182521515602082015260400190565b918252602082015260400190565b6001600160401b0393909316835260208301919091526001600160801b0316604082015260600190565b6000808335601e19843603018112612a99578283fd5b8301803591506001600160401b03821115612ab2578283fd5b60200191503681900382131561217657600080fd5b60005b83811015612ae2578181015183820152602001612aca565b838111156112f55750506000910152565b6001600160a01b0381168114612b0857600080fd5b50565b8015158114612b0857600080fdfea2646970667358221220e2d1a9f56644ca4817bf80a09d379303c4317666a34a64c22b10ed1ebbed38c864736f6c634300060c0033

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

000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a

-----Decoded View---------------
Arg [0] : _sushi (address): 0xd4d42F0b6DEF4CE0383636770eF773390d85c61A

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d4d42f0b6def4ce0383636770ef773390d85c61a


Deployed ByteCode Sourcemap

13694:12804:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7731:472;;;;;;;;;;-1:-1:-1;7731:472:0;;;;;:::i;:::-;;:::i;:::-;;16279:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22771:687;;;;;;;;;;-1:-1:-1;22771:687:0;;;;;:::i;:::-;;:::i;14727:26::-;;;;;;;;;;-1:-1:-1;14727:26:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;15175:30::-;;;;;;;;;;;;;:::i;23637:808::-;;;;;;;;;;-1:-1:-1;23637:808:0;;;;;:::i;:::-;;:::i;19481:802::-;;;;;;;;;;-1:-1:-1;19481:802:0;;;;;:::i;:::-;;:::i;18511:102::-;;;;;;;;;;-1:-1:-1;18511:102:0;;;;;:::i;:::-;;:::i;25920:575::-;;;;;;;;;;-1:-1:-1;25920:575:0;;;;;:::i;:::-;;:::i;18771:482::-;;;;;;;;;;-1:-1:-1;18771:482:0;;;;;:::i;:::-;;:::i;8252:348::-;;;;;;;;;;;;;:::i;20842:785::-;;;;;;;;;;-1:-1:-1;20842:785:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;20465:193::-;;;;;;;;;;-1:-1:-1;20465:193:0;;;;;:::i;:::-;;:::i;14821:23::-;;;;;;;;;;-1:-1:-1;14821:23:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6659:246::-;;;;;;;;;;-1:-1:-1;6659:246:0;;;;;:::i;:::-;;:::i;14648:29::-;;;;;;;;;;;;;:::i;17603:411::-;;;;;;;;;;-1:-1:-1;17603:411:0;;;;;:::i;:::-;;:::i;7307:20::-;;;;;;;;;;;;;:::i;21871:688::-;;;;;;;;;;-1:-1:-1;21871:688:0;;;;;:::i;:::-;;:::i;15008:66::-;;;;;;;;;;-1:-1:-1;15008:66:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;18199:170::-;;;;;;;;;;-1:-1:-1;18199:170:0;;;;;:::i;:::-;;:::i;15214:29::-;;;;;;;;;;;;;:::i;14506:::-;;;;;;;;;;;;;:::i;16718:491::-;;;;;;;;;;-1:-1:-1;16718:491:0;;;;;:::i;:::-;;:::i;14914:27::-;;;;;;;;;;-1:-1:-1;14914:27:0;;;;;:::i;:::-;;:::i;24731:1004::-;;;;;;;;;;-1:-1:-1;24731:1004:0;;;;;:::i;:::-;;:::i;5758:554::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;7354:27::-;;;;;;;;;;;;;:::i;7731:472::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;;;;;;;;;7836:6:::1;7832:364;;;-1:-1:-1::0;;;;;7890:22:0;::::1;::::0;::::1;::::0;:34:::1;;;7916:8;7890:34;7882:68;;;;-1:-1:-1::0;;;7882:68:0::1;;;;;;;:::i;:::-;8017:5;::::0;;7996:37:::1;::::0;-1:-1:-1;;;;;7996:37:0;;::::1;::::0;8017:5;::::1;::::0;7996:37:::1;::::0;::::1;8048:5;:16:::0;;-1:-1:-1;;;;;8048:16:0;::::1;-1:-1:-1::0;;;;;;8048:16:0;;::::1;;::::0;;;;8079:25;;;;::::1;::::0;;7832:364:::1;;;8161:12;:23:::0;;-1:-1:-1;;;;;;8161:23:0::1;-1:-1:-1::0;;;;;8161:23:0;::::1;;::::0;;7832:364:::1;7731:472:::0;;;:::o;16279:100::-;16356:8;:15;;16279:100::o;22771:687::-;22848:20;;:::i;:::-;22871:15;22882:3;22871:10;:15::i;:::-;22897:21;22921:13;;;:8;:13;;;;;;;;22935:10;22921:25;;;;;;;23035:21;;22848:38;;-1:-1:-1;22921:25:0;22997:84;;15297:4;;23024:33;;:6;;-1:-1:-1;;;;;23024:33:0;:10;:33::i;:::-;:55;;;;;22997:15;;;;;23024:55;;22997:19;:84::i;:::-;22979:15;;;:102;23106:11;;:23;;23122:6;23106:15;:23::i;:::-;23092:37;;23189:8;:13;;23092:11;;23189:8;23198:3;;23189:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23189:13:0;;-1:-1:-1;23217:32:0;;23213:125;;23314:11;;23266:60;;-1:-1:-1;;;23266:60:0;;-1:-1:-1;;;;;23266:23:0;;;;;:60;;23290:3;;23295:10;;23307:2;;23311:1;;23314:11;23266:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23213:125;23358:37;23384:2;23388:6;23358:7;23366:3;23358:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23358:12:0;;:37;:25;:37::i;:::-;23447:2;-1:-1:-1;;;;;23413:37:0;23434:3;23422:10;-1:-1:-1;;;;;23413:37:0;;23439:6;23413:37;;;;;;:::i;:::-;;;;;;;;22771:687;;;;;;:::o;14727:26::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14727:26:0;;;-1:-1:-1;;;;;;;;;14727:26:0;;;;;-1:-1:-1;;;14727:26:0;;;;:::o;15175:30::-;;;;:::o;23637:808::-;23697:20;;:::i;:::-;23720:15;23731:3;23720:10;:15::i;:::-;23746:21;23770:13;;;:8;:13;;;;;;;;23784:10;23770:25;;;;;;;23855:21;;23839:11;;23697:38;;-1:-1:-1;23770:25:0;;15297:4;;23839:38;;:11;-1:-1:-1;;;;;23839:38:0;:15;:38::i;:::-;:60;;;;;;23806:94;;23911:21;23935:49;:37;23956:4;:15;;;23935:16;:20;;:37;;;;:::i;:::-;:47;:49::i;:::-;24017:15;;;:34;;;23911:73;-1:-1:-1;24093:18:0;;24089:88;;24128:37;-1:-1:-1;;;;;24128:5:0;:18;24147:2;24151:13;24128:18;:37::i;:::-;24197:19;24219:8;24228:3;24219:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24219:13:0;;-1:-1:-1;24247:32:0;;24243:138;;24357:11;;24296:73;;-1:-1:-1;;;24296:73:0;;-1:-1:-1;;;;;24296:23:0;;;;;:73;;24321:3;;24326:10;;24338:2;;24342:13;;24357:11;24296:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24243:138;24418:3;24406:10;-1:-1:-1;;;;;24398:39:0;;24423:13;24398:39;;;;;;:::i;:::-;;;;;;;;23637:808;;;;;;;:::o;19481:802::-;19555:15;19583:20;;:::i;:::-;19606:8;19615:4;19606:14;;;;;;;;;;;;;;;;19583:37;;;;;;;;19606:14;;;;19583:37;-1:-1:-1;;;;;19583:37:0;;;;;-1:-1:-1;;;;;;;;19583:37:0;;;;;;;;-1:-1:-1;;;19583:37:0;;;;;;;;;;19655:14;;;:8;:14;;;;;-1:-1:-1;;;;;19655:21:0;;;;;;;;;;19714;;19765:7;:13;;19583:37;;-1:-1:-1;19655:21:0;;19687:48;;;19664:4;;19765:13;;;;;;;;;;;;;;;;:38;;-1:-1:-1;;;19765:38:0;;-1:-1:-1;;;;;19765:13:0;;;;:23;;:38;;19797:4;;19765:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19746:57;;19836:4;:19;;;-1:-1:-1;;;;;19818:37:0;:15;:37;:54;;;;-1:-1:-1;19859:13:0;;;19818:54;19814:345;;;19889:12;19904:40;19924:4;:19;;;-1:-1:-1;;;;;19904:40:0;:15;:19;;:40;;;;:::i;:::-;19889:55;;19959:19;20029:15;;19981:45;20010:4;:15;;;-1:-1:-1;;;;;19981:45:0;:24;19990:14;;19981:4;:8;;:24;;;;:::i;:::-;:28;;:45::i;:::-;:63;;;;;;;-1:-1:-1;20078:69:0;20138:8;20099:36;19981:63;15297:4;20099:15;:36::i;:::-;:47;;;;;20078:16;;20099:47;;20078:20;:69::i;:::-;20059:88;;19814:345;;;20247:15;;;;20186:11;;20179:96;;:84;;15297:4;;20186:33;;20202:16;20186:15;:33::i;:::-;:55;;;;;;;20179:67;:84::i;:96::-;20169:106;19481:802;-1:-1:-1;;;;;;;19481:802:0:o;18511:102::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;18585:8:::1;:20:::0;;-1:-1:-1;;;;;;18585:20:0::1;-1:-1:-1::0;;;;;18585:20:0;;;::::1;::::0;;;::::1;::::0;;18511:102::o;25920:575::-;25990:21;26014:13;;;:8;:13;;;;;;;;26028:10;26014:25;;;;;;;26067:11;;26089:15;;;-1:-1:-1;26115:15:0;;:19;;;26169:8;:13;;26014:25;;26067:11;;26023:3;;26169:13;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26169:13:0;;-1:-1:-1;26197:32:0;;26193:115;;26246:50;;-1:-1:-1;;;26246:50:0;;-1:-1:-1;;;;;26246:23:0;;;;;:50;;26270:3;;26275:10;;26287:2;;26291:1;;;;26246:50;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26193:115;26388:37;26414:2;26418:6;26388:7;26396:3;26388:12;;;;;;;:37;26484:2;-1:-1:-1;;;;;26441:46:0;26471:3;26459:10;-1:-1:-1;;;;;26441:46:0;;26476:6;26441:46;;;;;;:::i;:::-;;;;;;;;25920:575;;;;;:::o;18771:482::-;18836:8;;-1:-1:-1;;;;;18836:8:0;18820:73;;;;-1:-1:-1;;;18820:73:0;;;;;;;:::i;:::-;18904:15;18922:7;18930:4;18922:13;;;;;;;;;;;;;;;;;18960:33;;-1:-1:-1;;;18960:33:0;;-1:-1:-1;;;;;18922:13:0;;;;-1:-1:-1;18922:13:0;;18960:18;;:33;;18987:4;;18960:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19029:8;;19004:40;;-1:-1:-1;;;19004:40:0;;18946:47;;-1:-1:-1;;;;;;19004:16:0;;;;;;:40;;19029:8;;18946:47;;19004:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;19075:8:0;;:26;;-1:-1:-1;;;19075:26:0;;19055:17;;-1:-1:-1;;;;;19075:8:0;;:16;;:26;;19092:8;;19075:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19127:35;;-1:-1:-1;;;19127:35:0;;19055:46;;-1:-1:-1;;;;;;19127:20:0;;;;;:35;;19156:4;;19127:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19120:3;:42;19112:96;;;;-1:-1:-1;;;19112:96:0;;;;;;;:::i;:::-;19235:10;19219:7;19227:4;19219:13;;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1;;;;;19219:26:0;;;;;-1:-1:-1;;;;;19219:26:0;;;;;;18771:482;;;;:::o;8252:348::-;8320:12;;-1:-1:-1;;;;;8320:12:0;8380:10;:27;;8372:72;;;;-1:-1:-1;;;8372:72:0;;;;;;;:::i;:::-;8503:5;;;8482:42;;-1:-1:-1;;;;;8482:42:0;;;;8503:5;;;8482:42;;;8535:5;:21;;-1:-1:-1;;;;;8535:21:0;;;-1:-1:-1;;;;;;8535:21:0;;;;;;;8567:25;;;;;;;8252:348::o;20842:785::-;20891:20;;:::i;:::-;20931:8;20940:3;20931:13;;;;;;;;;;;;;;;;;20924:20;;;;;;;;20931:13;;;;20924:20;-1:-1:-1;;;;;20924:20:0;;;;-1:-1:-1;;;;;;;;20924:20:0;;;;;;;;;;-1:-1:-1;;;20924:20:0;;;;;;;;;-1:-1:-1;20959:15:0;:37;20955:665;;;21013:16;21032:7;21040:3;21032:12;;;;;;;;;;;;;;;;;;:37;;-1:-1:-1;;;21032:37:0;;-1:-1:-1;;;;;21032:12:0;;;;:22;;:37;;21063:4;;21032:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21013:56;-1:-1:-1;21088:12:0;;21084:339;;21121:12;21136:40;21156:4;:19;;;-1:-1:-1;;;;;21136:40:0;:15;:19;;:40;;;;:::i;:::-;21121:55;;21195:19;21265:15;;21217:45;21246:4;:15;;;-1:-1:-1;;;;;21217:45:0;:24;21226:14;;21217:4;:8;;:24;;;;:::i;:45::-;:63;;;;;;;-1:-1:-1;21323:84:0;21349:57;21389:8;21350:36;21217:63;15297:4;21350:15;:36::i;:::-;:47;;;;;;21349:55;:57::i;:::-;21323:21;;-1:-1:-1;;;;;21323:25:0;;;:84::i;:::-;-1:-1:-1;;;;;21299:108:0;;;-1:-1:-1;;21084:339:0;21459:22;:15;:20;:22::i;:::-;-1:-1:-1;;;;;21437:44:0;:19;;;:44;21496:8;:13;;21437:4;;21496:8;21505:3;;21496:13;;;;;;;;;;;;;;;:20;;:13;;:20;;;;;;;;;;;-1:-1:-1;;;;;;21496:20:0;;;-1:-1:-1;;;;;21496:20:0;;;;;;;-1:-1:-1;;;;21496:20:0;-1:-1:-1;;;;;;;;21496:20:0;;;;;-1:-1:-1;;;;;21496:20:0;-1:-1:-1;;;21496:20:0;;;;;;;;;;;;;;21555:19;;;21586:21;;21536:72;;21550:3;;21536:72;;;;21555:19;;21576:8;;21536:72;:::i;:::-;;;;;;;;20955:665;;20842:785;;;:::o;20465:193::-;20549:4;20535:11;20571:80;20595:3;20591:1;:7;20571:80;;;20620:19;20631:4;;20636:1;20631:7;;;;;;;;;;;;;20620:10;:19::i;:::-;-1:-1:-1;20600:3:0;;20571:80;;;;20465:193;;;:::o;14821:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14821:23:0;;-1:-1:-1;14821:23:0;:::o;6659:246::-;6848:49;;-1:-1:-1;;;6848:49:0;;-1:-1:-1;;;;;6848:12:0;;;;;:49;;6861:4;;6867:2;;6871:6;;6879:8;;6889:1;;6892;;6895;;6848:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6659:246;;;;;;;;:::o;14648:29::-;;;-1:-1:-1;;;;;14648:29:0;;:::o;17603:411::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;17734:63:::1;17785:11;17734:46;17754:8;17763:4;17754:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;:25:::0;17734:15:::1;::::0;;-1:-1:-1;;;17754:25:0;::::1;-1:-1:-1::0;;;;;17754:25:0::1;17734:19;:46::i;:::-;:50:::0;::::1;:63::i;:::-;17716:15;:81:::0;17836:18:::1;:11:::0;:16:::1;:18::i;:::-;17808:8;17817:4;17808:14;;;;;;;;;;;;;;;:25;;;:46;;;;;-1:-1:-1::0;;;;;17808:46:0::1;;;;;-1:-1:-1::0;;;;;17808:46:0::1;;;;;;17869:9;17865:46;;;17899:9;17882:8;17891:4;17882:14;;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1::0;;;;;17882:26:0::1;;;;;-1:-1:-1::0;;;;;17882:26:0::1;;;;;;17865:46;17956:9;:38;;17980:8;17989:4;17980:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;17980:14:0::1;17956:38;;;17968:9;17956:38;-1:-1:-1::0;;;;;17926:80:0::1;17937:4;17926:80;17943:11;17996:9;17926:80;;;;;;;:::i;:::-;;;;;;;;17603:411:::0;;;;:::o;7307:20::-;;;-1:-1:-1;;;;;7307:20:0;;:::o;21871:688::-;21947:20;;:::i;:::-;21970:15;21981:3;21970:10;:15::i;:::-;21996:21;22020:13;;;:8;:13;;;;;;;;-1:-1:-1;;;;;22020:17:0;;;;;;;;;22084:11;;21947:38;;-1:-1:-1;22020:17:0;22084:23;;22100:6;22084:15;:23::i;:::-;22070:37;;22174:21;;22136:84;;15297:4;;22163:33;;:6;;-1:-1:-1;;;;;22163:33:0;:10;:33::i;:::-;:55;;;;;22136:15;;;;;22163:55;;22136:19;:84::i;:::-;22118:4;:15;;:102;;;;22258:19;22280:8;22289:3;22280:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22280:13:0;;-1:-1:-1;22308:32:0;;22304:117;;22397:11;;22357:52;;-1:-1:-1;;;22357:52:0;;-1:-1:-1;;;;;22357:23:0;;;;;:52;;22381:3;;22386:2;;;;22394:1;;22397:11;22357:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22304:117;22433:64;22463:10;22483:4;22490:6;22433:7;22441:3;22433:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22433:12:0;;:64;;:29;:64::i;:::-;22548:2;-1:-1:-1;;;;;22515:36:0;22535:3;22523:10;-1:-1:-1;;;;;22515:36:0;;22540:6;22515:36;;;;;;:::i;15008:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18199:170::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;18279:14:::1;:32:::0;;;18327:34:::1;::::0;::::1;::::0;::::1;::::0;18296:15;;18327:34:::1;:::i;:::-;;;;;;;;18199:170:::0;:::o;15214:29::-;;;;:::o;14506:::-;;;:::o;16718:491::-;8703:5;;-1:-1:-1;;;;;8703:5:0;8689:10;:19;8681:64;;;;-1:-1:-1;;;8681:64:0;;;;;;;:::i;:::-;16835:15:::1;::::0;:31:::1;::::0;16855:10;16835:19:::1;:31::i;:::-;16817:15;:49:::0;16877:7:::1;:22:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;16877:22:0;;::::1;-1:-1:-1::0;;;;;;16877:22:0;;::::1;;::::0;;;16910:8:::1;:24:::0;;;;::::1;::::0;;-1:-1:-1;16910:24:0;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;16961:152:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;;16877:22:0::1;16961:152:::0;::::1;17045:22;:15;:20;:22::i;:::-;-1:-1:-1::0;;;;;16961:152:0::1;;;;;16997:17;:10;:15;:17::i;:::-;-1:-1:-1::0;;;;;16961:152:0;;::::1;::::0;;;16947:167;;::::1;::::0;;::::1;::::0;;-1:-1:-1;16947:167:0;;;::::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;16947:167:0::1;-1:-1:-1::0;;;;;16947:167:0;;;::::1;-1:-1:-1::0;;;16947:167:0::1;-1:-1:-1::0;;;;;;;;;16947:167:0;;::::1;-1:-1:-1::0;;;;;;16947:167:0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;::::1;;::::0;;17146:7:::1;:14:::0;-1:-1:-1;;;;;17130:71:0;;::::1;::::0;;;::::1;::::0;17146:21:::1;::::0;:18:::1;:21::i;:::-;17130:71;17169:10;17130:71;;;;;;:::i;:::-;;;;;;;;16718:491:::0;;;:::o;14914:27::-;;;;;;;;;;24731:1004;24818:20;;:::i;:::-;24841:15;24852:3;24841:10;:15::i;:::-;24867:21;24891:13;;;:8;:13;;;;;;;;24905:10;24891:25;;;;;;;24976:21;;24960:11;;24818:38;;-1:-1:-1;24891:25:0;;15297:4;;24960:38;;:11;-1:-1:-1;;;;;24960:38:0;:15;:38::i;:::-;:60;;;;;;24927:94;;25032:21;25056:49;:37;25077:4;:15;;;25056:16;:20;;:37;;;;:::i;:49::-;25032:73;;25156:85;15297:4;25184:33;25195:4;:21;;;-1:-1:-1;;;;;25184:33:0;:6;:10;;:33;;;;:::i;:::-;:55;;;;;25156:16;;25184:55;;25156:20;:85::i;:::-;25138:15;;;:103;25266:11;;:23;;25282:6;25266:15;:23::i;:::-;25252:37;;25335;-1:-1:-1;;;;;25335:5:0;:18;25354:2;25358:13;25335:18;:37::i;:::-;25385:19;25407:8;25416:3;25407:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25407:13:0;;-1:-1:-1;25435:32:0;;25431:137;;25544:11;;25484:72;;-1:-1:-1;;;25484:72:0;;-1:-1:-1;;;;;25484:23:0;;;;;:72;;25508:3;;25513:10;;25525:2;;25529:13;;25544:11;25484:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25431:137;25580:37;25606:2;25610:6;25580:7;25588:3;25580:12;;;;;;;:37;25669:2;-1:-1:-1;;;;;25635:37:0;25656:3;25644:10;-1:-1:-1;;;;;25635:37:0;;25661:6;25635:37;;;;;;:::i;:::-;;;;;;;;25708:3;25696:10;-1:-1:-1;;;;;25688:39:0;;25713:13;25688:39;;;;;;:::i;:::-;;;;;;;;24731:1004;;;;;;;;:::o;5758:554::-;5841:23;;5949:5;-1:-1:-1;;;;;5938:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5938:24:0;-1:-1:-1;5926:36:0;-1:-1:-1;5995:5:0;-1:-1:-1;;;;;5983:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5973:35;;6024:9;6019:286;6039:16;;;6019:286;;;6078:12;6092:19;6123:4;6142:5;;6148:1;6142:8;;;;;;;;;;;;;;;;;;:::i;:::-;6115:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6077:74;;;;6174:7;:24;;;;6186:12;6185:13;6174:24;6200:21;6214:6;6200:13;:21::i;:::-;6166:56;;;;;-1:-1:-1;;;6166:56:0;;;;;;;;:::i;:::-;;6252:7;6237:9;6247:1;6237:12;;;;;;;;;;;;;:22;;;;;;;;;;;6287:6;6274:7;6282:1;6274:10;;;;;;;;;;;;;;;;;:19;-1:-1:-1;;6057:3:0;;6019:286;;;;5758:554;;;;;;:::o;7354:27::-;;;-1:-1:-1;;;;;7354:27:0;;:::o;694:137::-;752:9;772:6;;;:28;;-1:-1:-1;;787:5:0;;;799:1;794;787:5;794:1;782:13;;;;;:18;772:28;764:65;;;;-1:-1:-1;;;764:65:0;;;;;;;:::i;:::-;694:137;;;;:::o;10748:218::-;10804:6;10834:5;;;10859:6;;;;;;:16;;;10874:1;10869;:6;;10859:16;10858:38;;;;10885:1;10881;:5;:14;;;;;10894:1;10890;:5;10881:14;10850:87;;;;-1:-1:-1;;;10850:87:0;;;;;;;:::i;:::-;10957:1;10748:218;-1:-1:-1;;;10748:218:0:o;566:122::-;649:5;;;644:16;;;;636:50;;;;-1:-1:-1;;;636:50:0;;;;;;;:::i;3885:304::-;3970:12;3984:17;4013:5;-1:-1:-1;;;;;4005:19:0;4048:10;4060:2;4064:6;4025:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4025:46:0;;;;;;;;;;;4005:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3969:103;;;;4091:7;:57;;;;-1:-1:-1;4103:11:0;;:16;;:44;;;4134:4;4123:24;;;;;;;;;;;;:::i;:::-;4083:98;;;;-1:-1:-1;;;4083:98:0;;;;;;;:::i;:::-;3885:304;;;;;:::o;11434:138::-;11486:7;11519:1;11514;:6;;11506:30;;;;-1:-1:-1;;;11506:30:0;;;;;;;:::i;:::-;-1:-1:-1;11562:1:0;11434:138::o;435:125::-;518:5;;;513:16;;;;505:53;;;;-1:-1:-1;;;505:53:0;;;;;;;:::i;837:161::-;886:9;-1:-1:-1;;;;;916:16:0;;;908:57;;;;-1:-1:-1;;;908:57:0;;;;;;;:::i;1358:125::-;1441:5;;;-1:-1:-1;;;;;1436:16:0;;;;;;;;1428:53;;;;-1:-1:-1;;;1428:53:0;;;;;;;:::i;1004:156::-;1052:8;-1:-1:-1;;;;;1081:15:0;;;1073:55;;;;-1:-1:-1;;;1073:55:0;;;;;;;:::i;11211:215::-;11267:6;11297:5;;;11322:6;;;;;;:16;;;11337:1;11332;:6;;11322:16;11321:38;;;;11348:1;11344;:5;:14;;;;;11357:1;11353;:5;11344:14;11313:84;;;;-1:-1:-1;;;11313:84:0;;;;;;;:::i;4197:332::-;4300:12;4314:17;4343:5;-1:-1:-1;;;;;4335:19:0;4378:10;4390:4;4396:2;4400:6;4355:52;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4355:52:0;;;;;;;;;;;4335:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4299:109;;;;4427:7;:57;;;;-1:-1:-1;4439:11:0;;:16;;:44;;;4470:4;4459:24;;;;;;;;;;;;:::i;:::-;4419:102;;;;-1:-1:-1;;;4419:102:0;;;;;;;:::i;:::-;4197:332;;;;;;:::o;4802:496::-;4874:13;5037:2;5016:11;:18;:23;5012:67;;;-1:-1:-1;5041:38:0;;;;;;;;;;;;;;;;;;;5012:67;5183:4;5170:11;5166:22;5151:37;;5227:11;5216:33;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;158:363::-;;;299:3;292:4;284:6;280:17;276:27;266:2;;-1:-1;;307:12;266:2;-1:-1;337:20;;-1:-1;;;;;366:30;;363:2;;;-1:-1;;399:12;363:2;443:4;435:6;431:17;419:29;;494:3;443:4;;478:6;474:17;435:6;460:32;;457:41;454:2;;;511:1;;501:12;454:2;259:262;;;;;:::o;2862:479::-;;;;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;-1:-1;;3000:12;2962:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3052:63;-1:-1;3152:2;3188:22;;971:20;996:30;971:20;996:30;:::i;:::-;3160:60;-1:-1;3257:2;3293:22;;971:20;996:30;971:20;996:30;:::i;:::-;3265:60;;;;2956:385;;;;;:::o;3348:538::-;;;;3512:2;3500:9;3491:7;3487:23;3483:32;3480:2;;;-1:-1;;3518:12;3480:2;3576:17;3563:31;-1:-1;;;;;3606:6;3603:30;3600:2;;;-1:-1;;3636:12;3600:2;3674:91;3757:7;3748:6;3737:9;3733:22;3674:91;:::i;:::-;3656:109;;-1:-1;3656:109;-1:-1;;3802:2;3838:22;;971:20;996:30;971:20;996:30;:::i;3893:397::-;;;4032:2;4020:9;4011:7;4007:23;4003:32;4000:2;;;-1:-1;;4038:12;4000:2;4096:17;4083:31;-1:-1;;;;;4126:6;4123:30;4120:2;;;-1:-1;;4156:12;4120:2;4194:80;4266:7;4257:6;4246:9;4242:22;4194:80;:::i;:::-;4176:98;;;;-1:-1;3994:296;-1:-1;;;;3994:296::o;4297:257::-;;4409:2;4397:9;4388:7;4384:23;4380:32;4377:2;;;-1:-1;;4415:12;4377:2;1119:6;1113:13;1131:30;1155:5;1131:30;:::i;4561:291::-;;4690:2;4678:9;4669:7;4665:23;4661:32;4658:2;;;-1:-1;;4696:12;4658:2;1573:6;1567:13;1585:47;1626:5;1585:47;:::i;4859:1145::-;;;;;;;;;5094:3;5082:9;5073:7;5069:23;5065:33;5062:2;;;-1:-1;;5101:12;5062:2;1404:6;1391:20;1416:47;1457:5;1416:47;:::i;:::-;5153:77;-1:-1;5267:2;5306:22;;72:20;97:33;72:20;97:33;:::i;:::-;5275:63;-1:-1;5375:2;5414:22;;72:20;97:33;72:20;97:33;:::i;:::-;5383:63;-1:-1;5483:2;5522:22;;2518:20;;-1:-1;5591:3;5631:22;;2518:20;;-1:-1;5700:3;5738:22;;2794:20;40581:4;40570:16;;43669:33;;43659:2;;-1:-1;;43706:12;43659:2;5056:948;;;;-1:-1;5056:948;;;;;;5709:61;;-1:-1;;;5807:3;5847:22;;1240:20;;5916:3;5956:22;1240:20;;5056:948::o;6011:285::-;;6137:2;6125:9;6116:7;6112:23;6108:32;6105:2;;;-1:-1;;6143:12;6105:2;1746:6;1733:20;1758:55;1807:5;1758:55;:::i;6303:362::-;;6428:2;6416:9;6407:7;6403:23;6399:32;6396:2;;;-1:-1;;6434:12;6396:2;6485:17;6479:24;-1:-1;;;;;6523:18;6515:6;6512:30;6509:2;;;-1:-1;;6545:12;6509:2;6632:6;6621:9;6617:22;;;2112:3;2105:4;2097:6;2093:17;2089:27;2079:2;;-1:-1;;2120:12;2079:2;2160:6;2154:13;6523:18;37217:6;37214:30;37211:2;;;-1:-1;;37247:12;37211:2;36880;36874:9;37320;37301:17;;-1:-1;;37297:33;36906:17;;6428:2;36906:17;36966:34;;;37002:22;;;36963:62;36960:2;;;-1:-1;;37028:12;36960:2;36880;37047:22;2253:21;;;2353:16;;;6428:2;2353:16;2350:25;-1:-1;2347:2;;;-1:-1;;2378:12;2347:2;2398:39;2430:6;6428:2;2329:5;2325:16;6428:2;2295:6;2291:17;2398:39;:::i;:::-;6565:84;6390:275;-1:-1;;;;;;6390:275::o;6672:241::-;;6776:2;6764:9;6755:7;6751:23;6747:32;6744:2;;;-1:-1;;6782:12;6744:2;-1:-1;2518:20;;6738:175;-1:-1;6738:175::o;6920:263::-;;7035:2;7023:9;7014:7;7010:23;7006:32;7003:2;;;-1:-1;;7041:12;7003:2;-1:-1;2666:13;;6997:186;-1:-1;6997:186::o;7190:366::-;;;7311:2;7299:9;7290:7;7286:23;7282:32;7279:2;;;-1:-1;;7317:12;7279:2;2531:6;2518:20;7369:63;;7469:2;7512:9;7508:22;72:20;97:33;124:5;97:33;:::i;:::-;7477:63;;;;7273:283;;;;;:::o;7563:555::-;;;;7733:2;7721:9;7712:7;7708:23;7704:32;7701:2;;;-1:-1;;7739:12;7701:2;2531:6;2518:20;7791:63;;7891:2;7948:9;7944:22;1391:20;1416:47;1457:5;1416:47;:::i;:::-;7899:77;-1:-1;8013:2;8070:22;;1910:20;1935:51;1910:20;1935:51;:::i;8125:491::-;;;;8263:2;8251:9;8242:7;8238:23;8234:32;8231:2;;;-1:-1;;8269:12;8231:2;2531:6;2518:20;8321:63;;8421:2;8464:9;8460:22;2518:20;8429:63;;8529:2;8572:9;8568:22;72:20;97:33;124:5;97:33;:::i;8623:647::-;;;;;8793:3;8781:9;8772:7;8768:23;8764:33;8761:2;;;-1:-1;;8800:12;8761:2;2531:6;2518:20;8852:63;;8952:2;8995:9;8991:22;2518:20;8960:63;;9060:2;9121:9;9117:22;1910:20;1935:51;1980:5;1935:51;:::i;:::-;9068:81;-1:-1;9186:2;9222:22;;971:20;996:30;971:20;996:30;:::i;:::-;8755:515;;;;-1:-1;8755:515;;-1:-1;;8755:515::o;12241:323::-;;12373:5;37832:12;38647:6;38642:3;38635:19;12456:52;12501:6;38684:4;38679:3;38675:14;38684:4;12482:5;12478:16;12456:52;:::i;:::-;37320:9;42605:14;-1:-1;;42601:28;12520:39;;;;38684:4;12520:39;;12321:243;-1:-1;;12321:243::o;20773:291::-;;42188:6;42183:3;42178;42165:30;42226:16;;42219:27;;;42226:16;20917:147;-1:-1;20917:147::o;21071:271::-;;12731:5;37832:12;12842:52;12887:6;12882:3;12875:4;12868:5;12864:16;12842:52;:::i;:::-;12906:16;;;;;21205:137;-1:-1;;21205:137::o;21349:222::-;-1:-1;;;;;40262:54;;;;9865:37;;21476:2;21461:18;;21447:124::o;21578:444::-;-1:-1;;;;;40262:54;;;9865:37;;40262:54;;;;21925:2;21910:18;;9865:37;22008:2;21993:18;;11851:37;;;;21761:2;21746:18;;21732:290::o;22029:884::-;-1:-1;;;;;40262:54;;;9865:37;;40262:54;;;;22485:2;22470:18;;9865:37;22568:2;22553:18;;11851:37;;;;22651:2;22636:18;;11851:37;;;;40581:4;40570:16;22730:3;22715:19;;20726:35;40273:42;22799:19;;11851:37;22898:3;22883:19;;11851:37;;;;22320:3;22305:19;;22291:622::o;22920:333::-;-1:-1;;;;;40262:54;;;;9865:37;;23239:2;23224:18;;11851:37;23075:2;23060:18;;23046:207::o;23260:653::-;23527:2;23541:47;;;37832:12;;23512:18;;;38635:19;;;23260:653;;38684:4;;38675:14;;;;37522;;;23260:653;10332:251;10357:6;10354:1;10351:13;10332:251;;;10418:13;;39549;39542:21;11623:34;;9419:14;;;;38369;;;;10379:1;10372:9;10332:251;;;10336:14;;;23752:9;23746:4;23742:20;38684:4;23726:9;23722:18;23715:48;23777:126;10860:5;37832:12;10879:95;10967:6;10962:3;10879:95;:::i;:::-;10872:102;;;;;38684:4;11031:6;11027:17;11022:3;11018:27;38684:4;11125:5;37522:14;-1:-1;11164:357;11189:6;11186:1;11183:13;11164:357;;;11251:9;11245:4;11241:20;11236:3;11229:33;9567:64;9627:3;11296:6;11290:13;9567:64;:::i;:::-;11500:14;;;;11310:90;-1:-1;38369:14;;;;10379:1;11204:9;11164:357;;;-1:-1;23769:134;;23498:415;-1:-1;;;;;;;;;23498:415::o;24715:310::-;;24862:2;24883:17;24876:47;24937:78;24862:2;24851:9;24847:18;25001:6;24937:78;:::i;25032:416::-;25232:2;25246:47;;;14286:2;25217:18;;;38635:19;-1:-1;;;38675:14;;;14302:44;14365:12;;;25203:245::o;25455:416::-;25655:2;25669:47;;;14616:2;25640:18;;;38635:19;-1:-1;;;38675:14;;;14632:34;14685:12;;;25626:245::o;25878:416::-;26078:2;26092:47;;;14936:2;26063:18;;;38635:19;14972:30;38675:14;;;14952:51;15022:12;;;26049:245::o;26301:416::-;26501:2;26515:47;;;15273:2;26486:18;;;38635:19;15309:34;38675:14;;;15289:55;-1:-1;;;15364:12;;;15357:25;15401:12;;;26472:245::o;26724:416::-;26924:2;26938:47;;;15652:2;26909:18;;;38635:19;-1:-1;;;38675:14;;;15668:44;15731:12;;;26895:245::o;27147:416::-;27347:2;27361:47;;;15982:2;27332:18;;;38635:19;16018:34;38675:14;;;15998:55;-1:-1;;;16073:12;;;16066:33;16118:12;;;27318:245::o;27570:416::-;27770:2;27784:47;;;16369:2;27755:18;;;38635:19;16405:30;38675:14;;;16385:51;16455:12;;;27741:245::o;27993:416::-;28193:2;28207:47;;;16706:2;28178:18;;;38635:19;16742:26;38675:14;;;16722:47;16788:12;;;28164:245::o;28416:416::-;28616:2;28630:47;;;28601:18;;;38635:19;17075:34;38675:14;;;17055:55;17129:12;;;28587:245::o;28839:416::-;29039:2;29053:47;;;29024:18;;;38635:19;17416:34;38675:14;;;17396:55;17470:12;;;29010:245::o;29262:416::-;29462:2;29476:47;;;17721:2;29447:18;;;38635:19;17757:29;38675:14;;;17737:50;17806:12;;;29433:245::o;29685:416::-;29885:2;29899:47;;;18057:2;29870:18;;;38635:19;18093:31;38675:14;;;18073:52;18144:12;;;29856:245::o;30108:416::-;30308:2;30322:47;;;18395:2;30293:18;;;38635:19;18431:34;38675:14;;;18411:55;-1:-1;;;18486:12;;;18479:28;18526:12;;;30279:245::o;30531:416::-;30731:2;30745:47;;;30716:18;;;38635:19;18813:34;38675:14;;;18793:55;18867:12;;;30702:245::o;30954:416::-;31154:2;31168:47;;;19118:2;31139:18;;;38635:19;19154:26;38675:14;;;19134:47;19200:12;;;31125:245::o;31377:326::-;19512:23;;-1:-1;;;;;40142:46;20013:37;;19693:4;19682:16;;;19676:23;-1:-1;;;;;40468:30;;;19751:14;;;20494:36;;;;19851:4;19840:16;;;19834:23;40468:30;19909:14;;;20494:36;;;;31556:2;31541:18;;31527:176::o;31710:436::-;-1:-1;;;;;40142:46;;;;20013:37;;-1:-1;;;;;40468:30;;;32051:2;32036:18;;20494:36;40468:30;32132:2;32117:18;;20494:36;31889:2;31874:18;;31860:286::o;32153:222::-;11851:37;;;32280:2;32265:18;;32251:124::o;32382:716::-;11851:37;;;-1:-1;;;;;40262:54;;;32818:2;32803:18;;9724:58;40262:54;;;;32901:2;32886:18;;9865:37;32992:2;32977:18;;13637:58;;;;33083:3;33068:19;;13637:58;32645:3;32630:19;;32616:482::o;35194:321::-;11851:37;;;39549:13;39542:21;35501:2;35486:18;;11623:34;35343:2;35328:18;;35314:201::o;35522:329::-;11851:37;;;35837:2;35822:18;;11851:37;35675:2;35660:18;;35646:205::o;35858:440::-;-1:-1;;;;;40468:30;;;;20494:36;;36201:2;36186:18;;11851:37;;;;-1:-1;;;;;40142:46;36284:2;36269:18;;20253:50;36039:2;36024:18;;36010:288::o;36305:506::-;;;36440:11;36427:25;36491:48;;36515:8;36499:14;36495:29;36491:48;36471:18;36467:73;36457:2;;-1:-1;;36544:12;36457:2;36571:33;;36625:18;;;-1:-1;;;;;;36652:30;;36649:2;;;-1:-1;;36685:12;36649:2;36530:4;36713:13;;-1:-1;36499:14;36745:38;;;36735:49;;36732:2;;;36797:1;;36787:12;42261:268;42326:1;42333:101;42347:6;42344:1;42341:13;42333:101;;;42414:11;;;42408:18;42395:11;;;42388:39;42369:2;42362:10;42333:101;;;42449:6;42446:1;42443:13;42440:2;;;-1:-1;;42326:1;42496:16;;42489:27;42310:219::o;42642:117::-;-1:-1;;;;;40262:54;;42701:35;;42691:2;;42750:1;;42740:12;42691:2;42685:74;:::o;42766:111::-;42847:5;39549:13;39542:21;42825:5;42822:32;42812:2;;42868:1;;42858:12

Metadata Hash

e2d1a9f56644ca4817bf80a09d379303c4317666a34a64c22b10ed1ebbed38c8
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.